@charset "utf-8";
/*
 * ======================================
 * ときわ東保育園（ros-serv066_4701002330）サイト固有CSS
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * ---- 共通 ----
 * .tkw-header / __inner / __right / __tel / __cta / __wave  - sticky ヘッダー（波型下端・アイコン付きナビ）
 * .tkw-logo / __mark / __sub / __name                       - ロゴマーク＋法人名＋園名の2段ロゴ
 * .tkw-nav / __icon / __ja / __sep                          - アイコン＋日本語の縦積みナビ＋点線区切り
 * .tkw-nav-icon--pink/yellow/green/blue/orange              - ナビアイコンの色
 * .tkw-sp-nav / __tel / __note                              - SPナビの色調整
 * .tkw-hero / __bg / __wave / __body / __title              - 下層ページ共通ヒーロー（山型SVG抜き）
 * .tkw-heading / __en / __ja / --greet / --left             - 英字（手書き）＋日本語のセクション見出し
 * .tkw-btn / --pink / --blue / --outline / __circle         - pill型ボタン
 * .tkw-dotline                                              - 文字下のドット下線
 * .tkw-bar--pink/yellow/blue/green                          - 見出し左の縦バー色
 * .tkw-footer 一式（__mark / __logo-body 含む）              - サーモンピンクのフッター
 * .tkw-fixed-bar / .tkw-page-top                            - SP固定バー・ページトップの配色
 * .tkw-deco / --sun / --cloud1〜3 / .tkw-sand               - 浮遊装飾・砂テクスチャ
 *
 * ---- TOP ----
 * .tkw-mv 一式          - メインビュー（CMSスライダー差し替え枠＋縦書きキャッチ＋山型SVG）
 * .tkw-greet 一式       - ごあいさつ（左右の円形写真・太陽と雲）
 * .tkw-news 一式        - お知らせ（木枠フレーム＋くまの飛行機）
 * .tkw-bnr-sec / .tkw-bnr 一式 - 3つの案内バナー
 * .tkw-ground 一式      - 地面イラストの帯
 * .tkw-recruit-bnr 一式 - 採用バナー
 *
 * ---- 下層 ----
 * .tkw-anchor-nav / __item              - ページ内アンカーのpillナビ
 * .tkw-card / --pink/blue/yellow/plain  - 白・淡色のコンテンツカード
 * .tkw-tag                              - pill型の小見出しラベル
 * .tkw-dotlist / __item / __item--em    - 丸ポチ付きリスト（--em は赤字強調）
 * .tkw-subhead                          - 縦バー付き小見出し
 * .tkw-table-grid                       - 横並びマトリクス表（クラス定員・職員構成）
 * .tkw-tab / __item / --panel-box       - タブ（情報開示・園の一日・募集要項）
 * .tkw-flow / __row / __time / __text   - 園の一日のタイムライン
 * .tkw-feat / __img / __body            - 園の特色カード
 * .tkw-month / __icon / __body          - 年間行事の月カード
 * .tkw-chip                             - 定例行事のチップ
 * .tkw-outline-table                    - 施設概要テーブル
 * .tkw-room / __name                    - お部屋カード
 * .tkw-mapholder                        - 施設案内マップのプレースホルダ
 * .tkw-lead / .tkw-point / .tkw-num     - 採用リード・働く魅力カード・数字カード
 * .tkw-job / __head / __table / __hl     - 募集要項テーブル
 * .tkw-entry / __dots                   - 応募方法ブロック
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * ・構造不足：position:sticky のヘッダー（header-bar=fixed / header-sticky=absolute+JS のみ）
 * ・構造不足：セクション境界の「山型・波型SVG抜き」（wave-divider は独立帯で、
 *   写真の上に重ねて背景色で抜くパターンがない）
 * ・構造不足：カード上端の縦書きラベル（card-bnr__title は横書き前提）
 * ・装飾パターン不足：文字下のドット下線（marker は蛍光ペンのみ）
 * ・装飾パターン不足：木枠風グラデーション＋インセット影のフレーム
 * ・値の粒度不足：デザインが clamp() 主体のため、fz-* / mt-* の固定px刻みでは一致しない
 * ・指定方向不足：装飾画像の任意座標配置（deco-item は四隅・中央のみ）
 *
 * ======================================
 * claude-design-output からの意図的な差分
 * ======================================
 *
 * 1) ヘッダー：デザインは 1100px 以下でナビを横スクロールさせるが、実装指示書 §8 に従い
 *    PCナビ（header__nav）とSPナビ（sp-nav＋nav-toggle）を別要素で用意した。
 * 2) アイコン：デザインのインラインSVGは使わず Font Awesome 6 に置き換え（社内ルール）。
 *    採用ページの魅力カードは、SVGの行ボックス分（5px）を見込んで見出しの上余白を19pxにしている。
 * 3) グリッドの列数：デザインは全幅で3列固定だが、共通CSSの grid-3 に合わせて
 *    896px以下で2列 → 639px以下で1列に落とす。PC表示は完全一致。
 * 4) メインビュー：本番のCMSスライダー差し替えに備え、実装指示書 §10.1 に従って
 *    #slideshow 内は静止画1枚（.swiper-slide）とし、Swiperの初期化は書いていない。
 *    デザインの3枚フェード切替は行わない。
 * 5) お知らせ：実装指示書 §11 に従い、ダミー記事＋CMS呼び出しタグのコメントを併記。
 *
 */

/* ==========================================================================
   0. ベース調整 ＋ Font Awesome 6 互換
   共通SCSSの疑似要素アイコンは "Font Awesome 5 Free" 指定のため、
   FA6 CDN 環境で表示されるよう family を上書きする
   ========================================================================== */
.header__tel::before,
.btn-cta-tel::before,
.btn-cta-mail::before,
.sp-nav__link::after,
.news-cat-nav a::after,
.heading-category::before,
.footer-cta__tel::before {
  font-family: "Font Awesome 6 Free";
}

body {
  font-weight: 500;
}

a {
  color: #D9536F;
}
a:hover {
  color: #03A3F8;
  opacity: 1;
}

/* 太陽の回転（ゆっくり一周） */
@keyframes tkw-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* 浮遊アニメーション（デザインの floaty） */
@keyframes tkw-floaty {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

/* 雲の流れ：上下の浮遊に横のドリフトと膨らみを足したもの（右向き） */
@keyframes tkw-cloud-drift {
  0%   { transform: translate(0, 0) scale(1); }
  20%  { transform: translate(12px, -9px) scale(1.02); }
  45%  { transform: translate(26px, 1px) scale(1); }
  70%  { transform: translate(14px, -13px) scale(.98); }
  100% { transform: translate(0, 0) scale(1); }
}
/* 同上（左向き） */
@keyframes tkw-cloud-drift-rev {
  0%   { transform: translate(0, 0) scale(1); }
  20%  { transform: translate(-14px, -7px) scale(.98); }
  45%  { transform: translate(-28px, 3px) scale(1.03); }
  70%  { transform: translate(-12px, -14px) scale(1); }
  100% { transform: translate(0, 0) scale(1); }
}


/* はみ出す装飾を横方向だけクリップする外枠（デザインの overflow-x:clip 相当） */
.tkw-wrap { overflow-x: clip; }

/* 砂テクスチャ（セクション背景に薄く重ねる） */
.tkw-sand {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .1;
  pointer-events: none;
}

/* 浮遊装飾（太陽・雲） */
.tkw-deco {
  position: absolute;
  height: auto;
  pointer-events: none;
  z-index: 0;
}

/* ==========================================================================
   1. ヘッダー
   ========================================================================== */
.tkw-header {
  position: sticky;
  top: 0;
  background: #FFFBF6;
}
.tkw-header__inner {
  /* 電話番号を大きくした分、ロゴ・ナビ・右側が一列に収まるよう横幅を確保 */
  max-width: 1320px;
  height: auto;
  padding: 12px 20px 8px;
  gap: clamp(12px, 2vw, 28px);
  flex-wrap: nowrap;
}

/* -- ロゴ（マーク＋法人名＋園名） */
.tkw-logo {
  flex: none;
  gap: 10px;
}
/* ロゴマーク（背景透過PNG／新シス配信の webp を参照） */
.tkw-logo__mark {
  flex: none;
  width: auto;
  height: clamp(40px, 3.4vw, 50px);
}
.tkw-logo .header-logo__body { gap: 0; }
.tkw-logo__sub {
  font-size: 13px;
  color: #7A5A55;
  letter-spacing: normal;
  font-weight: 500;
}
.tkw-logo__name {
  font-size: clamp(24px, 2.2vw, 31px);
  font-weight: 700;
  color: #D9536F;
  letter-spacing: .03em;
  white-space: nowrap;
  line-height: normal;
}
.tkw-logo:hover { opacity: .8; }

/* -- PCナビ */
.tkw-nav {
  align-items: stretch;
  margin-left: 0;
  margin-right: 0;
  gap: 0;
  flex: none;
}
.tkw-nav .header__nav-item a {
  gap: 2px;
  padding: 2px clamp(12px, 1.8vw, 24px);
}
.tkw-nav .header__nav-item a::after { display: none; }
.tkw-nav .header__nav-item a:hover .tkw-nav__ja { color: #03A3F8; }
.tkw-nav__icon {
  display: block;
  width: 34px;
  height: 34px;
  object-fit: contain;
  margin-bottom: 0;
}
.tkw-nav__ja {
  font-size: 17px;
  font-weight: 700;
  color: #56483C;
  white-space: nowrap;
  line-height: normal;
  margin-top: 0;
  transition: color .3s ease;
}
.tkw-nav__sep {
  width: 1px;
  align-self: stretch;
  background-image: linear-gradient(#E4D5CF 40%, transparent 0);
  background-size: 1px 6px;
  background-repeat: repeat-y;
  flex: none;
}

/* -- 右側（電話・情報開示） */
.tkw-header__right { gap: 10px; }
.tkw-header__tel {
  /* フッターの電話番号と同じ手書き風フォントに揃える */
  font-family: "Walter Turncoat", cursive;
  font-size: 25px;
  font-weight: 600;
  color: #D9536F;
  gap: 8px;
}
.tkw-header__tel::before {
  font-size: 17px;
  margin-right: 0;
  color: #D9536F;
}
.tkw-header__cta {
  display: inline-flex;
  align-items: center;
  font-size: 15.5px;
  font-weight: 700;
  color: #fff;
  background: #03A3F8;
  border-radius: 999px;
  padding: 11px 22px;
  white-space: nowrap;
  transition: all .3s ease;
}
.tkw-header__cta:hover { background: #0288d1; color: #fff; opacity: 1; }

/* -- ヘッダー下端の波型ライン */
.tkw-header__wave {
  position: absolute;
  bottom: -14px;
  left: 0;
  width: 100%;
  height: 15px;
  display: block;
  z-index: 2;
  fill: #FFFBF6;
  pointer-events: none;
}

/* -- PC最小幅（〜1240px）：ロゴマークを足した分、ナビの左右余白を詰めて1行に収める */
@media (max-width: 1240px) {
  .tkw-logo__mark { height: 40px; }
  .tkw-nav .header__nav-item a { padding: 2px clamp(8px, 1.1vw, 20px); }
}

/* -- ハンバーガー／SPナビ */
.tkw-nav-toggle { background: rgba(255, 255, 255, .85); }
.tkw-sp-nav { background: linear-gradient(135deg, #F5849C, #D9536F); }
.tkw-sp-nav__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
}
.tkw-sp-nav__note {
  margin-top: 8px;
  font-size: 1.2rem;
  color: rgba(255, 255, 255, .85);
}

/* ==========================================================================
   2. 下層ページ共通ヒーロー
   ========================================================================== */
.tkw-hero {
  position: relative;
  overflow: hidden;
  background: #FED6D5;
  /* 最小値320pxは据え置き＝スマホの高さは従来のまま、PC幅だけ高くなる */
  height: clamp(320px, 35vw, 480px);
}
.tkw-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.tkw-hero__wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  z-index: 2;
  width: 100%;
  /* MVと同じ山型パス。頂点が上端まで届く形なので高さは控えめにする */
  height: clamp(125px, 11vw, 153px);
  display: block;
  fill: #FFFBF6;
  pointer-events: none;
}
/* スマホ用の山は既定で隠す（639px以下でPC用と入れ替える） */
.tkw-hero__wave--sp { display: none; }
.tkw-hero__body {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  height: clamp(180px, 15vw, 200px);
  padding-bottom: clamp(30px, 4.5vw, 48px);
}
/* セクション見出しの日本語と同じ文字色に揃える */
.tkw-hero__title {
  margin: 0;
  font-size: clamp(26px, 3.8vw, 38px);
  font-weight: 700;
  color: #56483C;
}

/* ==========================================================================
   3. 見出し・ボタン・共通パーツ
   ========================================================================== */
.tkw-heading__en {
  display: block;
  font-family: "Walter Turncoat", cursive;
  font-size: clamp(28px, 3.6vw, 43px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .005em;
  color: #D9536F;
  margin: 0 0 2px;
}
.tkw-heading__ja {
  display: block;
  margin: 0;
  font-size: clamp(17px, 1.8vw, 21px);
  font-weight: 700;
  color: #56483C;
  letter-spacing: .06em;
  line-height: 1.7;
}
/* -- ごあいさつ用（英字小さめ・日本語大きめ） */
.tkw-heading--greet .tkw-heading__en {
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.2;
  letter-spacing: .02em;
  margin-bottom: 6px;
}
.tkw-heading--greet .tkw-heading__ja {
  font-size: clamp(20px, 2.4vw, 27px);
  letter-spacing: .08em;
}

/* -- pill型ボタン */
.tkw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-radius: 999px;
  padding: 16px 42px;
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  transition: all .3s ease;
}
.tkw-btn i { font-size: 15px; width: 15px; text-align: center; }
.tkw-btn--pink { background: #F5849C; }
.tkw-btn--pink:hover { background: #D9536F; color: #fff; opacity: 1; }
.tkw-btn--blue {
  background: #03A3F8;
  gap: 12px;
  padding: 13px 34px;
  font-size: 15.5px;
}
.tkw-btn--blue:hover { background: #0288d1; color: #fff; opacity: 1; }
.tkw-btn--lg { padding: 15px 42px; font-size: 17px; gap: 0; }
.tkw-btn__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  color: #03A3F8;
  flex: none;
  font-size: 9px;
}
.tkw-btn__circle i { font-size: 9px; }

/* -- 文字下のドット下線 */
.tkw-dotline {
  display: inline-block;
  padding-bottom: 6px;
  background-image: radial-gradient(#F5AEB9 2px, transparent 2px);
  background-size: 10px 4px;
  background-position: bottom left;
  background-repeat: repeat-x;
}

/* ==========================================================================
   4. TOP：メインビュー
   ========================================================================== */
.tkw-mv {
  position: relative;
  background: #FED6D5;
  height: 98vh;
  min-height: 500px;
}
.tkw-mv__slideshow {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.tkw-mv__slideshow .swiper-slide,
.tkw-mv__slide-inner {
  width: 100%;
  height: 100%;
}
.tkw-mv__slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tkw-mv__catch {
  position: absolute;
  top: clamp(24px, 6vw, 56px);
  right: clamp(16px, 4vw, 70px);
  z-index: 2;
  display: flex;
  flex-direction: row-reverse;
  /* 既定の stretch だと2列の白帯が同じ長さに揃ってしまうため、
     それぞれの文字数ぶんの長さで止める */
  align-items: flex-start;
  gap: 18px;
  margin: 0;
}
.tkw-mv__catch-line {
  writing-mode: vertical-rl;
  background: #fff;
  border-radius: 5px;
  padding: 24px 15px;
  font-size: clamp(25px, 3.2vw, 47px);
  font-weight: 700;
  color: #56483C;
  letter-spacing: .12em;
  line-height: 1;
  /* 白帯は文字の表示に合わせて上から下へ伸びていく。
     --tkw-line-start / --tkw-line-len は出力時に行の開始番号と文字数を入れている */
  clip-path: inset(0 0 100% 0);
  animation: tkw-catch-box-in calc(var(--tkw-line-len, 10) * .08s + .12s) linear both;
  animation-delay: calc(var(--tkw-line-start, 0) * .08s + .3s);
}
.tkw-mv__char {
  display: inline-block;
  animation: tkw-char-in .32s ease-out both;
  /* --tkw-char-i は出力時に文字の並び順を入れている */
  animation-delay: calc(var(--tkw-char-i, 0) * .08s + .3s);
}
@keyframes tkw-catch-box-in {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes tkw-char-in {
  from { opacity: 0; transform: scale(.9); }
  to   { opacity: 1; transform: none; }
}
.tkw-mv__wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  z-index: 2;
  width: 100%;
  height: clamp(70px, 11vw, 150px);
  display: block;
  fill: #FFFBF6;
  pointer-events: none;
}
.tkw-mv__gap {
  position: relative;
  display: flow-root;
  background: #FFFBF6;
  padding: 0 20px 8px;
}

/* ==========================================================================
   5. TOP：ごあいさつ
   ========================================================================== */
.tkw-greet {
  position: relative;
  z-index: 3;
  max-width: 1400px;
  margin: clamp(-80px, -6vw, -40px) auto 0;
  padding: 0 20px clamp(40px, 5.5vw, 72px);
  text-align: center;
}
.tkw-greet__photo {
  position: absolute;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}
.tkw-greet__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tkw-greet__photo--left {
  left: clamp(-160px, -7.5vw, -64px);
  top: clamp(140px, 16vw, 215px);
  width: clamp(215px, 25vw, 380px);
  aspect-ratio: 1 / 0.92;
  border-radius: 42% 58% 54% 46% / 46% 52% 48% 54%;
  transform: rotate(4deg);
  animation: tkw-blob-left 20s ease-in-out infinite;
}
.tkw-greet__photo--right {
  right: clamp(-160px, -7.5vw, -64px);
  top: clamp(205px, 22vw, 230px);
  width: clamp(225px, 26vw, 395px);
  aspect-ratio: 1 / 0.92;
  border-radius: 58% 42% 46% 54% / 52% 46% 54% 48%;
  transform: rotate(-4deg);
  animation: tkw-blob-right 24s ease-in-out 1.5s infinite;
}
/* 写真は動かさず、切り抜きのふくらみだけが円周をめぐるように動く */
@keyframes tkw-blob-left {
  0%, 100% { border-radius: 42% 58% 54% 46% / 46% 52% 48% 54%; }
  25%      { border-radius: 52% 48% 44% 56% / 55% 45% 55% 45%; }
  50%      { border-radius: 58% 42% 46% 54% / 52% 46% 54% 48%; }
  75%      { border-radius: 47% 53% 57% 43% / 43% 57% 43% 57%; }
}
@keyframes tkw-blob-right {
  0%, 100% { border-radius: 58% 42% 46% 54% / 52% 46% 54% 48%; }
  25%      { border-radius: 47% 53% 57% 43% / 44% 56% 44% 56%; }
  50%      { border-radius: 42% 58% 54% 46% / 46% 52% 48% 54%; }
  75%      { border-radius: 53% 47% 43% 57% / 56% 44% 56% 44%; }
}
.tkw-deco--sun {
  left: clamp(-6px, 2vw, 40px);
  top: clamp(-70px, -3.8vw, -30px);
  width: clamp(80px, 10vw, 150px);
  animation: tkw-spin 20s linear infinite;
}
.tkw-deco--cloud1 {
  left: clamp(80px, 14vw, 240px);
  top: clamp(-50px, -1.8vw, -14px);
  width: clamp(90px, 11vw, 170px);
  animation: tkw-cloud-drift 16s ease-in-out .6s infinite;
}
.tkw-deco--cloud2 {
  right: clamp(60px, 11vw, 200px);
  top: clamp(-56px, -2.8vw, -22px);
  width: clamp(120px, 15vw, 230px);
  animation: tkw-cloud-drift-rev 21s ease-in-out 1.4s infinite;
}
.tkw-deco--cloud3 {
  right: clamp(-10px, 1.5vw, 30px);
  top: clamp(-10px, 2.2vw, 40px);
  width: clamp(70px, 8vw, 120px);
  animation: tkw-cloud-drift 13s ease-in-out 2.2s infinite;
}
.tkw-greet__body {
  position: relative;
  z-index: 2;
  max-width: 980px;
  margin: 0 auto;
  padding: 0 clamp(20px, 6vw, 80px);
}
.tkw-greet__text {
  margin: 0 auto 34px;
  max-width: 620px;
  font-size: clamp(14.5px, 1.35vw, 16.5px);
  line-height: 2.25;
  text-align: left;
  text-wrap: pretty;
}

/* ==========================================================================
   6. TOP：お知らせ
   ========================================================================== */
.tkw-news {
  position: relative;
  z-index: 3;
  max-width: 1000px;
  margin: 0 auto;
  padding: clamp(36px, 5vw, 64px) 20px clamp(20px, 3vw, 40px);
}
.tkw-news__plane {
  position: absolute;
  animation: tkw-floaty 4.5s ease-in-out infinite;
  left: clamp(0px, 2vw, 26px);
  top: clamp(-52px, -3.5vw, -22px);
  width: clamp(120px, 15vw, 196px);
  height: auto;
  z-index: 2;
  pointer-events: none;
}
.tkw-news__frame {
  background: linear-gradient(180deg, #C79461 0%, #B2794A 22%, #A96F42 50%, #B98555 78%, #96613A 100%);
  border-radius: 8px;
  padding: 12px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .18), inset 0 2px 6px rgba(0, 0, 0, .18), 0 5px 14px rgba(150, 97, 58, .28);
}
.tkw-news__inner {
  background: #fff;
  border-radius: 6px;
  padding: clamp(34px, 4.5vw, 52px) clamp(20px, 3vw, 40px);
  display: grid;
  grid-template-columns: minmax(150px, 170px) 1fr;
  gap: clamp(16px, 2.4vw, 31px);
  align-items: center;
}
.tkw-news__label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tkw-news__en {
  font-family: "Walter Turncoat", cursive;
  font-size: clamp(28px, 3.6vw, 43px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .005em;
  color: #D9536F;
}
.tkw-news__ja {
  margin: 0;
  font-size: clamp(17px, 1.8vw, 21px);
  font-weight: 700;
  color: #56483C;
  letter-spacing: .06em;
  line-height: 1.7;
}
/* CMS出力は <p class="blog-list__link tkw-news__link"> が並ぶ。行間に点線を引く */
.tkw-news__link + .tkw-news__link {
  border-top: 1px dashed #F5C9CC;
}
/* 4件目以降はスクロール（高さはJSで3件分に固定） */
.tkw-news__body.is-scrollable {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #F5AEB9 transparent;
}
.tkw-news__body.is-scrollable::-webkit-scrollbar { width: 6px; }
.tkw-news__body.is-scrollable::-webkit-scrollbar-thumb {
  background: #F5AEB9;
  border-radius: 999px;
}
.tkw-news__link {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 18px;
  padding: 14px 4px;
}
.tkw-news__link { margin: 0; }
.tkw-news__link:hover { background: transparent; }
.tkw-news__date {
  font-family: "Walter Turncoat", cursive;
  font-size: 15px;
  line-height: normal;
  color: #D9536F;
}
.tkw-news__title {
  flex: 1 1 300px;
  font-size: 16.5px;
  font-weight: 500;
  line-height: normal;
  color: #56483C;
}
a.tkw-news__link:hover .tkw-news__title { color: #03A3F8; }

/* ==========================================================================
   7. TOP：3つの案内バナー
   ========================================================================== */
.tkw-bnr-sec {
  position: relative;
  z-index: 1;
  background: #FFFBEC;
  padding: clamp(150px, 17vw, 230px) 20px clamp(20px, 3vw, 36px);
  margin-top: clamp(-180px, -15vw, -100px);
}
.tkw-bnr-sec__wave {
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: clamp(26px, 4vw, 44px);
  display: block;
  transform: rotate(180deg);
  fill: #FFFBF6;
  pointer-events: none;
}
.tkw-bnr-sec__inner {
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
  text-align: center;
}
.tkw-bnr-grid { gap: clamp(20px, 3vw, 42px); }
.tkw-bnr {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 5px;
  overflow: hidden;
  color: #56483C;
  transition: transform .3s ease, box-shadow .3s ease;
}
.tkw-bnr:hover {
  color: #56483C;
  opacity: 1;
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(190, 150, 140, .22);
}
.tkw-bnr__img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.tkw-bnr__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.tkw-bnr:hover .tkw-bnr__img img { transform: scale(1.06); }
.tkw-bnr__label {
  position: absolute;
  top: 0;
  left: 12px;
  writing-mode: vertical-rl;
  padding: 16px 11px;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: .14em;
  color: #fff;
}
.tkw-bnr__body {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  padding: 16px 14px 18px;
  margin-top: auto;
  text-align: left;
}
.tkw-bnr__desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
}
.tkw-bnr__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  font-size: 13px;
  flex: none;
}
.tkw-bnr--pink .tkw-bnr__label,
.tkw-bnr--pink .tkw-bnr__arrow { background: #F5849C; }
.tkw-bnr--yellow .tkw-bnr__label { background: #D9A211; }
.tkw-bnr--yellow .tkw-bnr__arrow { background: #F6C445; }
.tkw-bnr--blue .tkw-bnr__label,
.tkw-bnr--blue .tkw-bnr__arrow { background: #03A3F8; }

/* ==========================================================================
   8. TOP：地面イラストの帯
   ========================================================================== */
/* 上のバナー帯と同じ地色。砂の稜線だけを次セクションとの境目にする */
.tkw-ground {
  position: relative;
  background: #FFFBEC;
  margin-top: -1px;
}
.tkw-ground__img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  /* 画像が未取得でも帯の高さが潰れないよう比率を明示（1708x268） */
  aspect-ratio: 1708 / 268;
  pointer-events: none;
  /* 地面イラストを下にずらして採用バナーセクションに重ね、境目に淡い帯を残さない */
  bottom: -1.875vw;
  z-index: 10;
}
.tkw-ground__dog {
  /* 画像の向きに合わせて反転したい場合は -1 にする */
  --tkw-dog-flip: 1;
  position: absolute;
  left: 50%;
  bottom: 8%;
  transform: translateX(-50%) scaleX(var(--tkw-dog-flip));
  /* 194px / 1440px = 13.5%。地面イラストが幅100%で拡縮するため、%指定にすると
     どの画面幅でも丘に対して同じ位置・同じ大きさになる */
  width: 13.5%;
  height: auto;
  z-index: 20;
  pointer-events: none;
}
/* 画面内に入ったらJSで .is-walking を付与し、中央より少し右から歩いて中央で止まる */
.tkw-ground__dog.is-walking {
  animation:
    tkw-dog-walkin 5.6s cubic-bezier(.3, .5, .35, 1) both,
    tkw-dog-step .62s ease-in-out 9 both;
}
/* 横移動（着地位置は left:50% ＝ 通常時と同じ中央） */
@keyframes tkw-dog-walkin {
  from { left: 72%; }
  to   { left: 50%; }
}
/* 歩幅に合わせた上下の弾みと前後のゆれ */
@keyframes tkw-dog-step {
  0%, 100% { transform: translateX(-50%) scaleX(var(--tkw-dog-flip)) translateY(0) rotate(0deg); }
  25%      { transform: translateX(-50%) scaleX(var(--tkw-dog-flip)) translateY(-6%) rotate(-2deg); }
  50%      { transform: translateX(-50%) scaleX(var(--tkw-dog-flip)) translateY(0) rotate(0deg); }
  75%      { transform: translateX(-50%) scaleX(var(--tkw-dog-flip)) translateY(-6%) rotate(2deg); }
}
@media (prefers-reduced-motion: reduce) {
  .tkw-ground__dog.is-walking,
  .tkw-greet__photo--left,
  .tkw-greet__photo--right,
  .tkw-mv__char { animation: none; }
  /* アニメーションを止めるときは白帯のクリップも解除して全体を表示する */
  .tkw-mv__catch-line { animation: none; clip-path: none; }
}

/* ==========================================================================
   9. TOP：採用バナー
   ========================================================================== */
.tkw-recruit-bnr-sec {
  /* 上に重ねる量。この分だけ上パディングを増やして同じ量だけ引き上げるので、
     中身の位置は変えずに背景だけが地面イラストの裏側へ回り込む */
  --tkw-overlap: clamp(14px, 1.7vw, 26px);
  position: relative;
  background: #fff0c2;
  padding: calc(var(--tkw-overlap) + clamp(40px, 6vw, 80px)) 20px clamp(40px, 6vw, 80px);
  margin-top: calc(var(--tkw-overlap) * -1);
}
.tkw-recruit-bnr-sec__dots {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(#F5C9CC 2px, transparent 2px),
    radial-gradient(#F5C9CC 2px, transparent 2px);
  background-size: 20px 20px;
  background-position: 0 0, 10px 10px;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, transparent 45%, rgba(0, 0, 0, .85) 100%);
  mask-image: linear-gradient(180deg, transparent 0%, transparent 45%, rgba(0, 0, 0, .85) 100%);
  pointer-events: none;
}
.tkw-recruit-bnr {
  display: block;
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 26px rgba(190, 150, 140, .2);
  padding: clamp(24px, 3.4vw, 44px);
  color: #56483C;
  overflow: hidden;
  transition: box-shadow .3s ease, transform .3s ease;
}
.tkw-recruit-bnr:hover {
  color: #56483C;
  opacity: 1;
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(190, 150, 140, .3);
}
.tkw-recruit-bnr__blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.tkw-recruit-bnr__blob--a {
  left: -40px;
  bottom: -60px;
  width: 180px;
  height: 180px;
  background: #FEF3EF;
}
.tkw-recruit-bnr__blob--b {
  right: -30px;
  top: -40px;
  width: 140px;
  height: 140px;
  background: #FEF9E6;
}
.tkw-recruit-bnr__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(20px, 3.4vw, 48px);
  align-items: center;
}
.tkw-recruit-bnr__en {
  display: block;
  text-align: left;
  line-height: 1;
}
.tkw-recruit-bnr__catch {
  margin: 14px 0 0;
  font-size: clamp(20px, 2.4vw, 29px);
  font-weight: 700;
  line-height: 1.6;
}
.tkw-recruit-bnr__lead {
  margin: 14px 0 0;
  font-size: 15.5px;
  line-height: 2;
}
.tkw-recruit-bnr .tkw-btn { margin-top: 20px; }
.tkw-recruit-bnr__figure {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.tkw-recruit-bnr__photos {
  position: relative;
  display: block;
  width: min(100%, 320px);
  flex: none;
}
.tkw-recruit-bnr__photo {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(190, 150, 140, .24);
}
.tkw-recruit-bnr__photo-sub {
  position: absolute;
  left: -20%;
  bottom: -4%;
  width: 46%;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  border: 5px solid #fff;
  box-shadow: 0 6px 16px rgba(190, 150, 140, .22);
}
.tkw-recruit-bnr__photo img,
.tkw-recruit-bnr__photo-sub img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tkw-recruit-bnr__sun {
  position: absolute;
  left: 4%;
  top: 2%;
  width: 22%;
  max-width: 84px;
  height: auto;
  animation: tkw-spin 20s linear infinite;
  pointer-events: none;
}
.tkw-recruit-bnr__cloud {
  position: absolute;
  right: 2%;
  bottom: 6%;
  width: 30%;
  max-width: 116px;
  height: auto;
  animation: tkw-floaty 10s ease-in-out 1s infinite;
  pointer-events: none;
}

/* ==========================================================================
   10. フッター
   ========================================================================== */
.tkw-footer {
  background: #ffdfde;
  color: #5C2B2B;
  padding: 0 0 30px;
}
.tkw-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(32px, 4vw, 56px) 20px clamp(40px, 5vw, 64px);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 36px;
  align-items: stretch;
}
.tkw-footer__info { flex: 1 1 300px; }
.tkw-footer__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
}
/* ロゴマーク（ヘッダーと同じ画像） */
.tkw-footer__mark {
  flex: none;
  width: auto;
  height: 44px;
}
.tkw-footer__logo-body {
  display: flex;
  flex-direction: column;
}
.tkw-footer__corp { font-size: 14px; color: #5C2B2B; }
.tkw-footer__name { font-size: 22px; font-weight: 700; color: #5C2B2B; }
.tkw-footer__address {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: 1.9;
  color: #5C2B2B;
}
.tkw-footer__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Walter Turncoat", cursive;
  font-size: 26px;
  font-weight: 600;
  color: #5C2B2B;
}
.tkw-footer__tel:hover { color: #fff; }
.tkw-footer__tel i { font-size: 19px; }
.tkw-footer__hours {
  margin: 10px 0 22px;
  font-size: 15.5px;
  line-height: 1.9;
  color: #5C2B2B;
}
.tkw-footer__nav { gap: 8px 20px; }
.tkw-footer__nav a {
  font-size: 15.5px;
  color: #5C2B2B;
}
.tkw-footer__nav a:hover { color: #fff; }
.tkw-footer__map {
  flex: 1 1 340px;
  display: flex;
}
.tkw-footer__map-frame {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid #FED6D5;
}
.tkw-footer__map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.tkw-footer__copyright {
  margin: 0;
  text-align: center;
  font-family: "Walter Turncoat", cursive;
  font-size: 13px;
  letter-spacing: .1em;
  color: #5C2B2B;
}

/* SP固定バー・ページトップ */
.tkw-fixed-bar { background: #F5849C; }
.tkw-page-top .page-top__link { background: #F5849C; }
.tkw-page-top .page-top__link:hover { background: #D9536F; }

/* ==========================================================================
   12. 下層ページ共通パーツ
   ========================================================================== */

/* -- セクション枠と幅 */
.tkw-sec { padding: clamp(44px, 6vw, 80px) 20px; }
.tkw-sec--pb-lg { padding-bottom: clamp(60px, 8vw, 100px); }
.tkw-sec--pt0 { padding-top: 0; }
.tkw-anchor { scroll-margin-top: 120px; }
.tkw-w-900  { max-width: 900px;  margin-left: auto; margin-right: auto; }
.tkw-w-960  { max-width: 960px;  margin-left: auto; margin-right: auto; }
.tkw-w-1000 { max-width: 1000px; margin-left: auto; margin-right: auto; }
.tkw-w-1080 { max-width: 1080px; margin-left: auto; margin-right: auto; }
.tkw-w-1180 { max-width: 1180px; margin-left: auto; margin-right: auto; }


/* -- 見出しの左寄せ版 */
.tkw-heading--left { text-align: left; }

/* -- 色付きセクションの上下を波線で抜く */
.tkw-wavesec {
  position: relative;
}
.tkw-wavesec > *:not(svg) {
  position: relative;
  z-index: 2;
}
.tkw-wavesec__wave {
  position: absolute;
  left: 0;
  width: 100%;
  height: clamp(26px, 4vw, 44px);
  display: block;
  fill: #FFFBF6;
  pointer-events: none;
  z-index: 1;
}
.tkw-wavesec__wave--top {
  top: -1px;
  transform: rotate(180deg);
}
.tkw-wavesec__wave--bottom {
  bottom: -1px;
}
/* 直下がフッターの場合はフッター色で抜く */
.tkw-wavesec__wave--footer {
  fill: #ffdfde;
}

/* -- ページ内アンカーナビ */
.tkw-anchor-nav {
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(12px, 1.6vw, 20px) 20px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.tkw-anchor-nav__item {
  font-size: 15.5px;
  font-weight: 500;
  color: #56483C;
  background: #fff;
  border: 2px solid #FED6D5;
  border-radius: 999px;
  padding: 10px 22px;
  transition: background .3s ease, color .3s ease;
}
.tkw-anchor-nav__item:hover { background: #FED6D5; color: #56483C; opacity: 1; }

/* -- コンテンツカード */
.tkw-card {
  background: #fff;
  border-radius: 10px;
  padding: clamp(24px, 3.5vw, 40px);
  box-shadow: 0 6px 20px rgba(240, 170, 175, .18);
}
.tkw-card--flat { box-shadow: none; }
.tkw-card--sky   { background: #EAF7FE; padding: clamp(24px, 3.5vw, 36px); }
.tkw-card--cream { background: #FEF9E6; padding: clamp(24px, 3.5vw, 36px); }
/* 保育理念カード：本文の右側にシンボルマーク */
.tkw-card--rinen {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 40px);
}
.tkw-card--rinen .tkw-card__body { flex: 1 1 auto; min-width: 0; }
.tkw-card__mark {
  flex: 0 0 auto;
  width: clamp(150px, 19vw, 210px);
  margin: 0;
}
.tkw-card__mark img { display: block; width: 100%; height: auto; }
.tkw-grid-auto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

/* -- pill型ラベル */
.tkw-tag {
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  border-radius: 999px;
  padding: 7px 24px;
  letter-spacing: .08em;
  margin: 0;
}
.tkw-tag--pink   { background: #F5849C; }
.tkw-tag--blue   { background: #03A3F8; }
.tkw-tag--yellow { background: #D9A211; }

/* -- 本文 */
.tkw-lead-text {
  margin: 0;
  font-size: 17.5px;
  line-height: 2.2;
  text-wrap: pretty;
}
.tkw-text-17 { margin: 0; font-size: 17px; line-height: 2; }

/* -- 丸ポチ付きリスト */
.tkw-dotlist {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tkw-dotlist__item {
  position: relative;
  padding-left: 22px;
  font-size: 16.5px;
  line-height: 1.9;
}
.tkw-dotlist__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #F5849C;
}
.tkw-dotlist--blue   .tkw-dotlist__item::before { background: #03A3F8; }
.tkw-dotlist--yellow .tkw-dotlist__item::before { background: #F6C445; }
.tkw-dotlist--pink   .tkw-dotlist__item::before { background: #F5849C; }
/* 小さめドット（保育時間の注記・食事について） */
.tkw-dotlist--gap-10 { gap: 10px; }
.tkw-dotlist--sm .tkw-dotlist__item { padding-left: 20px; line-height: 1.95; }
.tkw-dotlist--sm .tkw-dotlist__item::before { width: 8px; height: 8px; top: 8px; }
/* 注意喚起の赤字（食事についての展示案内など） */
.tkw-dotlist__item--em { color: #D93F3F; font-weight: 700; }

/* -- 縦バー付き小見出し */
.tkw-subhead {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: clamp(19px, 2.4vw, 24px);
  font-weight: 700;
  color: #56483C;
}
.tkw-subhead--wrap { flex-wrap: wrap; gap: 6px 12px; }
.tkw-subhead__note { font-size: 16px; font-weight: 500; color: #56483C; }
.tkw-bar {
  width: 6px;
  height: 1.1em;
  border-radius: 999px;
  flex: none;
  background: #F5849C;
}
.tkw-bar--pink   { background: #F5849C; }
.tkw-bar--blue   { background: #03A3F8; }
.tkw-bar--yellow { background: #F6C445; }
.tkw-bar--green  { background: #7BC46C; }

/* -- カード内の淡色ボックス */
.tkw-inbox {
  background: #FEF9E6;
  border-radius: 8px;
  padding: 20px 24px;
}
.tkw-inbox__title {
  margin: 0 0 8px;
  font-size: 16.5px;
  font-weight: 700;
  color: #A97C12;
}
.tkw-inbox__text { margin: 0; font-size: 16.5px; line-height: 2; }

/* -- 横並びマトリクス表 */
.tkw-table-wrap {
  border-radius: 6px;
  background: #fff;
  overflow-x: auto;
}
.tkw-table-grid {
  width: 100%;
  min-width: 720px;
  text-align: center;
  border-collapse: collapse;
}
.tkw-table-grid th {
  padding: 14px 10px;
  font-size: 15.5px;
  font-weight: 700;
  color: #fff;
  background: #D9536F;
  border-right: 1px solid rgba(255, 255, 255, .35);
  white-space: nowrap;
  text-align: center;
}
.tkw-table-grid td {
  padding: 14px 10px;
  text-align: center;
  background: #fff;
  border-right: 1px solid #F2E3DE;
  white-space: nowrap;
}
.tkw-table-grid__name { font-size: 17px; font-weight: 700; color: #D9536F; }
.tkw-table-grid__num {
  font-size: 20px;
  font-weight: 700;
  color: #56483C;
  border-top: 1px solid #F2E3DE;
}
.tkw-table-grid__num span { font-size: 15px; }
.tkw-table-grid td.tkw-table-grid__num--lg { padding: 16px 10px; border-top: none; }
.tkw-total {
  margin: 20px 0 0;
  font-size: 17px;
  font-weight: 700;
  color: #C8455F;
  text-align: right;
}
.tkw-total span { font-size: 14px; font-weight: 400; color: #7A5A55; }

/* -- タブ */
.tkw-tab {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: -2px;
}
.tkw-tab__item {
  flex: 1 1 180px;
  text-align: center;
  font-size: 16.5px;
  font-weight: 700;
  font-family: inherit;
  border-radius: 8px 18px 0 0;
  padding: 15px 18px;
  background: #fff;
  color: #7A5A55;
  border: 2px solid #FED6D5;
  border-bottom: none;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.tkw-tab__item.is-active { background: #FED6D5; color: #8A2E48; }
.tkw-tab__item:hover { background: #FEEFF0; }
.tkw-tab__item.is-active:hover { background: #FED6D5; }
.tkw-tab-box {
  background: #fff;
  border: 2px solid #FED6D5;
  border-radius: 0 0 10px 10px;
  padding: clamp(24px, 3.5vw, 40px);
}
.tkw-panel-title {
  margin: 0 0 18px;
  font-size: 20px;
  font-weight: 700;
  color: #C8455F;
}

/* -- 用語＋内容の行リスト */
.tkw-deflist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.tkw-deflist__item {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px dashed #F5C9CC;
}
.tkw-deflist__item:last-child { border-bottom: none; }
.tkw-deflist__term {
  font-size: 16px;
  color: #56483C;
  min-width: 88px;
}
.tkw-deflist__term--en { font-family: "Walter Turncoat", cursive; }
.tkw-deflist--wide .tkw-deflist__term { min-width: 140px; }
.tkw-deflist__link { font-size: 16.5px; }
.tkw-deflist__text { font-size: 16.5px; }

/* ==========================================================================
   13. 園の特色（feature.php）
   ========================================================================== */
.tkw-feat-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.tkw-feat {
  background: #fff;
  border-radius: 10px;
  padding: clamp(24px, 3.5vw, 38px);
  box-shadow: 0 6px 20px rgba(240, 170, 175, .18);
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
  scroll-margin-top: 150px;
}
.tkw-feat__img {
  flex: 0 1 300px;
  max-width: 300px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}
.tkw-feat__body { flex: 1 1 300px; }
.tkw-feat__text {
  margin: 0;
  font-size: 14px;
  line-height: 2.1;
  text-wrap: pretty;
}
.tkw-subhead--md { font-size: clamp(19px, 2.2vw, 23px); }
.tkw-subhead--sm { font-size: 20px; }

/* -- 園の一日：pill型タブ */
.tkw-tab--pill { margin-bottom: 22px; gap: 8px; }
.tkw-tab--pill .tkw-tab__item {
  flex: 1 1 200px;
  border-radius: 999px;
  padding: 13px 20px;
  border: 2px solid #F5AEB9;
  border-bottom: 2px solid #F5AEB9;
  background: #fff;
  color: #7A5A55;
}
.tkw-tab--pill .tkw-tab__item--pink.is-active { background: #FED6D5; color: #8A2E48; }
.tkw-tab--pill .tkw-tab__item--blue { border-color: #8FD3F7; }
.tkw-tab--pill .tkw-tab__item--blue.is-active { background: #D5EEFB; color: #08507C; }
.tkw-tab--pill .tkw-tab__item:hover { background: #FEEFF0; }
.tkw-tab--pill .tkw-tab__item--blue:hover { background: #EAF7FE; }
.tkw-tab--pill .tkw-tab__item.is-active:hover { filter: none; }
.tkw-tab--pill .tkw-tab__item--pink.is-active:hover { background: #FED6D5; }
.tkw-tab--pill .tkw-tab__item--blue.is-active:hover { background: #D5EEFB; }

/* -- 園の一日：タイムライン */
.tkw-day {
  background: #fff;
  border-radius: 10px;
  padding: clamp(20px, 3vw, 34px);
}
.tkw-flow {
  position: relative;
  padding-left: clamp(58px, 8vw, 76px);
}
.tkw-flow::before {
  content: "";
  position: absolute;
  left: clamp(24px, 4vw, 33px);
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 999px;
  background: #F5AEB9;
}
.tkw-flow--blue::before { background: #8FD3F7; }
.tkw-flow__row {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  align-items: baseline;
  padding: 15px 4px;
}
.tkw-flow__row::before {
  content: "";
  position: absolute;
  left: clamp(-52px, -6.5vw, -42px);
  top: 12px;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #F5849C;
  border: 4px solid #fff;
  box-shadow: 0 0 0 2px #F5AEB9;
}
.tkw-flow--blue .tkw-flow__row::before { background: #03A3F8; box-shadow: 0 0 0 2px #8FD3F7; }
.tkw-flow__time {
  font-size: 17px;
  font-weight: 700;
  color: #F5849C;
  min-width: 130px;
}
.tkw-flow--blue .tkw-flow__time { color: #03A3F8; }
.tkw-flow__text {
  flex: 1 1 260px;
  font-size: 16.5px;
  line-height: 1.85;
}

/* -- 食事について */
.tkw-shokuji { margin-top: clamp(28px, 4vw, 44px); padding: clamp(24px, 3.5vw, 38px); }
.tkw-lead-text--sm { font-size: 17.5px; line-height: 2.1; }

/* -- 年間行事 */
.tkw-month-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: clamp(20px, 3vw, 40px) clamp(24px, 4vw, 56px);
  max-width: 960px;
  margin: 0 auto;
}
.tkw-month {
  display: flex;
  gap: clamp(14px, 2vw, 24px);
  align-items: center;
}
.tkw-month__icon {
  flex: none;
  width: clamp(96px, 11vw, 130px);
  aspect-ratio: 1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FEEFF0;
}
.tkw-month__icon img {
  width: 72%;
  height: 72%;
  object-fit: contain;
  pointer-events: none;
}
.tkw-month__body { display: block; }
.tkw-month__head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 8px;
}
.tkw-month__num {
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  color: #F5849C;
}
.tkw-month__en {
  font-family: "Walter Turncoat", cursive;
  font-size: 16px;
  color: #F5849C;
}
.tkw-month__item {
  display: block;
  font-size: 15.5px;
  line-height: 1.9;
}
.tkw-month--pink   .tkw-month__icon { background: #FEEFF0; }
.tkw-month--blue   .tkw-month__icon { background: #E9F6FE; }
.tkw-month--orange .tkw-month__icon { background: #FEF4E7; }
.tkw-month--green  .tkw-month__icon { background: #EFF8EC; }
.tkw-month--blue   .tkw-month__num,
.tkw-month--blue   .tkw-month__en   { color: #03A3F8; }
.tkw-month--orange .tkw-month__num,
.tkw-month--orange .tkw-month__en   { color: #E08A2E; }
.tkw-month--green  .tkw-month__num,
.tkw-month--green  .tkw-month__en   { color: #5EA84F; }

.tkw-note {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.9;
  color: #7A5A55;
}
.tkw-note--tight { line-height: normal; }

/* -- 定例行事 */
.tkw-regular {
  background: #EAF7FE;
  border-radius: 10px;
  padding: clamp(22px, 3vw, 32px);
}
/* 年間行事セクション内の要素を月グリッド（960px）と同じ幅に揃える */
.tkw-nenkan-block {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.tkw-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tkw-chip {
  font-size: 16px;
  background: #fff;
  border-radius: 999px;
  padding: 9px 20px;
}

/* ==========================================================================
   14. 施設案内（facility.php）
   ========================================================================== */
.tkw-outline {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  align-items: flex-start;
}
.tkw-outline__img {
  flex: 1 1 340px;
  width: 100%;
  max-height: 280px;
  object-fit: cover;
  border-radius: 10px;
}
.tkw-outline-table {
  flex: 1 1 380px;
  width: 100%;
  border-collapse: collapse;
}
.tkw-outline-table th {
  text-align: left;
  vertical-align: top;
  padding: 14px 0;
  font-size: 16px;
  font-weight: 700;
  color: #D9536F;
  width: 120px;
  border-bottom: 1px dashed #F5C9CC;
  background: none;
}
.tkw-outline-table td {
  padding: 14px 0;
  font-size: 16.5px;
  line-height: 1.9;
  border-bottom: 1px dashed #F5C9CC;
}
.tkw-outline-table tr:last-child th,
.tkw-outline-table tr:last-child td { border-bottom: none; }

.tkw-access {
  margin-top: clamp(28px, 4vw, 44px);
  scroll-margin-top: 140px;
}
.tkw-subhead--access { font-size: clamp(18px, 2vw, 21px); }
.tkw-access__map {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 8;
  border-radius: 10px;
  overflow: hidden;
  border: 3px solid #FED6D5;
}
.tkw-access__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* -- 施設案内マップ（差し替え用プレースホルダ） */
.tkw-mapholder {
  background: #fff;
  border: 2px dashed #F5AEB9;
  border-radius: 10px;
  aspect-ratio: 16 / 7;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.tkw-mapholder__icon {
  font-size: 54px;
  color: #FED6D5;
  line-height: 1;
}
.tkw-mapholder__text {
  margin: 0;
  font-size: 16px;
  color: #A88680;
  text-align: center;
  padding: 0 20px;
}

/* -- お部屋カード */
.tkw-room-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}
.tkw-room {
  display: block;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 5px 16px rgba(240, 170, 175, .18);
  color: #56483C;
  transition: transform .3s ease, box-shadow .3s ease;
}
.tkw-room:hover {
  color: #56483C;
  opacity: 1;
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(190, 150, 140, .22);
}
.tkw-room img { transition: transform .5s ease; }
.tkw-room:hover img { transform: scale(1.06); }
.tkw-room img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}
.tkw-room__name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 14px 18px;
  font-size: 16.5px;
  font-weight: 700;
  color: #56483C;
}
.tkw-room__zoom {
  font-size: 14px;
  color: #F5AEB9;
  flex: none;
}

/* ==========================================================================
   15. 採用情報（recruit.php）
   ========================================================================== */
.tkw-lead {
  max-width: 1180px;
  margin: clamp(20px, 3vw, 44px) auto 0;
  padding: 0 20px;
}
.tkw-lead__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
.tkw-lead__catch {
  margin: 0 0 18px;
  font-size: clamp(24px, 3.2vw, 36px);
  line-height: 1.9;
  font-weight: 700;
  color: #56483C;
  text-wrap: pretty;
}
.tkw-dotline--lg { padding-bottom: 8px; }
.tkw-lead__desc {
  margin: 0 0 26px;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 2;
  font-weight: 500;
}
.tkw-lead__img {
  border-radius: 6px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.tkw-lead__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tkw-sec--pt-lg { padding-top: clamp(44px, 6vw, 84px); padding-bottom: clamp(44px, 6vw, 84px); }
.tkw-sec--pb0 { padding-bottom: 0; }
.tkw-bg-sky { background: #EAF7FE; }

/* -- 働く魅力カード */
.tkw-point-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.tkw-point {
  background: #fff;
  border-radius: 10px;
  padding: 28px;
  box-shadow: 0 5px 16px rgba(240, 170, 175, .18);
}
.tkw-point__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #FED6D5;
  color: #fff;
  font-size: 21px;
}
/* アイコン下端〜見出し上端の実測間隔は19px（デザインはインラインSVGの行ボックス分を含む） */
.tkw-point__title {
  margin: 19px 0 10px;
  font-size: 19px;
  font-weight: 700;
  color: #C8455F;
}
.tkw-point__text {
  margin: 0;
  font-size: 16.5px;
  line-height: 1.95;
}
.tkw-point__note {
  margin: 10px 0 0;
  font-size: 13.5px;
  color: #9A837F;
}
.tkw-point--yellow .tkw-point__icon { background: #FEF38E; }
.tkw-point--yellow .tkw-point__title { color: #A97C12; }
.tkw-point--blue   .tkw-point__icon { background: #BFE7FB; }
.tkw-point--blue   .tkw-point__title { color: #0B6396; }
.tkw-point--green  .tkw-point__icon { background: #CDE9C6; }
.tkw-point--green  .tkw-point__title { color: #3E7A34; }

/* -- 数字カード */
.tkw-num-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 18px;
}
.tkw-num {
  background: #fff;
  border-radius: 10px;
  padding: 26px 18px;
}
.tkw-num__label {
  margin: 0 0 8px;
  font-size: 15px;
  color: #7A5A55;
}
.tkw-num__value {
  margin: 0;
  font-family: "Walter Turncoat", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1;
  color: #F5849C;
}
.tkw-num__value span {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 17px;
  color: #56483C;
}
.tkw-num__note {
  margin: 8px 0 0;
  font-size: 15px;
  color: #7A5A55;
}
.tkw-num--blue   .tkw-num__value { color: #03A3F8; }
.tkw-num--yellow .tkw-num__value { color: #F6C445; }
.tkw-num--green  .tkw-num__value { color: #7BC46C; }

/* -- 原稿確認中ボックス */
.tkw-pending {
  background: #FEF9E6;
  border: 2px dashed #F6C445;
  border-radius: 10px;
  padding: 30px 28px;
}
.tkw-pending__text {
  margin: 0;
  font-size: 16.5px;
  line-height: 2;
  color: #7A5A20;
}

/* -- 募集要項テーブル */
.tkw-job {
  margin-bottom: 26px;
  background: #fff;
  border: 2px solid #FED6D5;
  border-radius: 10px;
  overflow: hidden;
}
.tkw-job__head {
  background: #FED6D5;
  padding: 18px 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: baseline;
}
.tkw-job__name {
  font-size: 21px;
  font-weight: 700;
  color: #8A2E48;
}
.tkw-job__count {
  font-size: 15.5px;
  font-weight: 700;
  color: #8A4457;
  background: #fff;
  border-radius: 999px;
  padding: 4px 14px;
}
.tkw-job__table {
  width: 100%;
  border-collapse: collapse;
}
.tkw-job__table th {
  text-align: left;
  vertical-align: top;
  padding: 16px 26px;
  font-size: 16px;
  font-weight: 700;
  color: #D9536F;
  width: 170px;
  border-bottom: 1px dashed #F5C9CC;
  background: none;
}
.tkw-job__table td {
  padding: 16px 26px;
  font-size: 16.5px;
  line-height: 1.95;
  border-bottom: 1px dashed #F5C9CC;
}
.tkw-job__table tr:last-child th,
.tkw-job__table tr:last-child td { border-bottom: none; }
.tkw-job__hl {
  display: inline-block;
  background: #FEF38E;
  color: #7A5A20;
  font-weight: 700;
  border-radius: 6px;
  padding: 8px 16px;
}
.tkw-job__hl--block { display: block; width: fit-content; margin-top: 10px; }
.tkw-job--blue { border-color: #BFE7FB; }
.tkw-job--blue .tkw-job__head { background: #D5EEFB; }
.tkw-job--blue .tkw-job__name { color: #08507C; }
.tkw-job--blue .tkw-job__count { color: #0B6396; }
.tkw-job--blue .tkw-job__table th { color: #0B6396; border-bottom-color: #CFE6F2; }
.tkw-job--blue .tkw-job__table td { border-bottom-color: #CFE6F2; }

/* -- 応募方法（募集要項セクション内のカード） */
.tkw-entry {
  position: relative;
  max-width: 820px;
  margin: clamp(32px, 4vw, 52px) auto 0;
  background: transparent;
  padding: clamp(28px, 4vw, 48px) clamp(20px, 3vw, 40px) 0;
  text-align: center;
}
.tkw-entry__title {
  margin: 0 0 12px;
  font-size: clamp(20px, 2.2vw, 25px);
  font-weight: 700;
  color: #56483C;
  letter-spacing: .06em;
  line-height: 1.7;
}
.tkw-entry__dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 24px;
}
.tkw-entry__dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #F5849C;
}
.tkw-entry__text {
  margin: 0 0 30px;
  font-size: 17px;
  line-height: 2.1;
  text-align: left;
  text-wrap: pretty;
}
.tkw-entry__name {
  margin: 0 0 10px;
  font-size: 16.5px;
  font-weight: 700;
  color: #56483C;
}
.tkw-entry__tel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #F5849C;
  color: #fff;
  border-radius: 999px;
  padding: 16px 44px;
  font-family: "Walter Turncoat", cursive;
  font-size: 28px;
  font-weight: 600;
  transition: background .3s ease;
}
.tkw-entry__tel i { font-size: 22px; }
.tkw-entry__tel:hover { background: #D9536F; color: #fff; opacity: 1; }


/* -- SP用：1行1項目の縦組みテーブル（クラス定員・職員構成） */
.tkw-table-stack {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
}
.tkw-table-stack th {
  width: 34%;
  padding: 12px 14px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: #D9536F;
  text-align: left;
  white-space: nowrap;
  border-bottom: 1px solid rgba(255, 255, 255, .35);
}
.tkw-table-stack tr:last-child th { border-bottom: none; }
.tkw-table-stack td {
  padding: 12px 14px;
  font-size: 16px;
  color: #56483C;
  border-bottom: 1px solid #F2E3DE;
  vertical-align: middle;
}
.tkw-table-stack tr:last-child td { border-bottom: none; }
.tkw-table-stack__name {
  font-weight: 700;
  color: #D9536F;
  white-space: nowrap;
}
.tkw-table-stack__num {
  font-size: 18px;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}
.tkw-table-stack__num span { font-size: 14px; }

/* -- フッター住所（スマホでは郵便番号のあとで改行） */
.tkw-footer__zip { margin-right: .5em; }

/* ==========================================================================
   99. 余白ユーティリティ（デザインの実測値）
   コンポーネントの margin を上書きするため、必ず最後に読み込む
   ========================================================================== */
.tkw-mb-0  { margin-bottom: 0; }
.tkw-mb-8  { margin-bottom: 8px; }
.tkw-mb-10 { margin-bottom: 10px; }
.tkw-mb-12 { margin-bottom: 12px; }
.tkw-mb-14 { margin-bottom: 14px; }
.tkw-mb-16 { margin-bottom: 16px; }
.tkw-mb-18 { margin-bottom: 18px; }
.tkw-mb-20 { margin-bottom: 20px; }
.tkw-mb-22 { margin-bottom: 22px; }
.tkw-mb-24 { margin-bottom: 24px; }
.tkw-mb-26 { margin-bottom: 26px; }
.tkw-mb-28 { margin-bottom: 28px; }
.tkw-mb-30 { margin-bottom: 30px; }
.tkw-mb-32 { margin-bottom: 32px; }
.tkw-mb-34 { margin-bottom: 34px; }
.tkw-mb-40 { margin-bottom: 40px; }
.tkw-mt-16 { margin-top: 16px; }
.tkw-mt-20 { margin-top: 20px; }
.tkw-mt-22 { margin-top: 22px; }
.tkw-mt-40 { margin-top: 40px; }

/* ==========================================================================
   100. レスポンシブ（コンポーネント定義より後ろに置いて確実に上書きする）
   ========================================================================== */
@media (max-width: 1100px) {
  .tkw-header__inner { padding: 10px 15px; }
  .tkw-header__wave { bottom: -10px; height: 11px; }
}

@media (max-width: 896px) {
  .tkw-mv { height: 78vh; }
  .tkw-greet__photo--left,
  .tkw-greet__photo--right { display: none; }
  .tkw-greet { margin-top: -30px; }
  .tkw-recruit-bnr__inner { grid-template-columns: 1fr; }
  .tkw-recruit-bnr__figure { width: 100%; max-width: 420px; justify-self: center; }
  .tkw-lead__inner { grid-template-columns: 1fr; }
  .tkw-lead__img { max-width: 460px; width: 100%; justify-self: center; }
  .tkw-card--rinen { flex-direction: column; align-items: center; gap: 20px; }
  .tkw-card__mark { width: 180px; }
  .tkw-footer__inner { gap: 28px; }
  /* -- フッターは main.css 側で flex-direction:column になり flex-basis が
        そのまま高さになるため、高さは中身に合わせる。
        マップは高さ100%だと実機で潰れて上下に余白ができるので実寸で指定 */
  .tkw-footer__info { flex: 0 0 auto; }
  .tkw-footer__map { flex: 0 0 auto; display: block; }
  .tkw-footer__map-frame {
    height: clamp(200px, 58vw, 300px);
    min-height: 0;
  }
}

@media (max-width: 639px) {
  /* -- ページヒーローの山はスマホだけ従来の形・高さに戻す */
  .tkw-hero__wave--pc { display: none; }
  .tkw-hero__wave--sp { display: block; }
  .tkw-hero__wave { height: clamp(180px, 15vw, 200px); }

  /* -- 園の一日の本文・お知らせのタイトルはスマホでは小さく */
  .tkw-flow__text { font-size: 14.5px; }
  .tkw-news__title { font-size: 14.5px; }

  /* ------------------------------------------------------------------
     スマホの文字サイズ調整
     本文14.5px／小さい注記13px前後／見出し・数字はそれに合わせて縮小
     ※ clamp指定のものは自動で縮むためここでは触らない
     ------------------------------------------------------------------ */
  /* -- 本文まわり */
  .tkw-lead-text,
  .tkw-lead-text--sm,
  .tkw-text-17,
  .tkw-dotlist__item,
  .tkw-inbox__text,
  .tkw-deflist__text,
  .tkw-deflist__link,
  .tkw-point__text,
  .tkw-pending__text,
  .tkw-entry__text,
  .tkw-mapholder__text,
  .tkw-month__item,
  .tkw-outline-table td,
  .tkw-job__table td,
  .tkw-table-stack td { font-size: 14.5px; }
  .tkw-bnr__desc { font-size: 14px; }
  .tkw-recruit-bnr__lead { font-size: 14px; }
  .tkw-tag,
  .tkw-chip,
  .tkw-tab__item { font-size: 14px; }

  /* -- 表の見出し・項目名 */
  .tkw-table-grid th,
  .tkw-outline-table th,
  .tkw-job__table th,
  .tkw-table-stack th { font-size: 13.5px; }
  .tkw-deflist__term { font-size: 14px; }

  /* -- 注記・補足 */
  .tkw-note { font-size: 13px; }
  .tkw-point__note { font-size: 12.5px; }
  .tkw-news__date,
  .tkw-num__label,
  .tkw-num__note,
  .tkw-job__count,
  .tkw-anchor-nav__item,
  .tkw-table-grid__num span,
  .tkw-total span { font-size: 13px; }

  /* -- 小見出し・ラベル */
  .tkw-panel-title,
  .tkw-subhead--sm { font-size: 17px; }
  .tkw-subhead__note { font-size: 14px; }
  .tkw-point__title,
  .tkw-bnr__label { font-size: 16.5px; }
  .tkw-point__icon { font-size: 18px; }
  .tkw-job__name { font-size: 18px; }
  .tkw-inbox__title,
  .tkw-entry__name,
  .tkw-flow__time { font-size: 15px; }
  .tkw-table-grid__name { font-size: 14.5px; }

  /* -- 数字まわり */
  .tkw-num__value { font-size: 32px; }
  .tkw-num__value span { font-size: 14px; }
  .tkw-month__num { font-size: 21px; }
  .tkw-month__en { font-size: 14px; }
  .tkw-table-grid__num { font-size: 17px; }
  .tkw-table-stack__num { font-size: 16px; }
  .tkw-total { font-size: 15px; }
  .tkw-mapholder__icon { font-size: 40px; }

  /* -- フッター */
  .tkw-footer__address { font-size: 14px; }
  .tkw-footer__hours { font-size: 14px; }
  .tkw-footer__corp { font-size: 13px; }
  .tkw-footer__copyright { font-size: 12px; }
  .tkw-footer__tel { font-size: 22px; }
  .tkw-footer__tel i { font-size: 16px; }

  /* -- スマホでは text-wrap: pretty を解除（行末が不揃いになるのを防ぐ） */
  .tkw-greet__text,
  .tkw-lead-text,
  .tkw-feat__text,
  .tkw-lead__catch,
  .tkw-entry__text { text-wrap: wrap; }

  .tkw-mv { height: 68vh; min-height: 420px; }
  .tkw-mv__catch-line { padding: 18px 12px; }
  .tkw-news__inner { grid-template-columns: 1fr; gap: 14px; }
  .tkw-news__label { flex-direction: row; align-items: baseline; gap: 10px; }
  .tkw-news__plane { width: 110px; top: -30px; }
  /* -- ごあいさつの装飾：スマホは見出し「ときわ東保育園へようこそ」の
        左に太陽、右に雲を並べる（セクション上端＝見出しの位置） */
  .tkw-deco--cloud2, .tkw-deco--cloud3 { display: none; }
  .tkw-deco--sun { left: 0; top: 16px; width: 56px; }
  .tkw-deco--cloud1 { left: auto; right: -4px; top: 22px; width: 64px; }
  .tkw-btn { padding: 14px 28px; font-size: 15px; }
  .tkw-recruit-bnr__sun { left: -3%; top: -3%; }
  .tkw-recruit-bnr__cloud { right: -4%; bottom: 0; }
  .tkw-recruit-bnr__photo-sub { left: 0; bottom: 0; width: 42%; }
  .tkw-footer__name { font-size: 20px; }
/* -- フッターのナビリンクはスマホでは非表示（ヘッダーのメニューと固定バーで導線を確保） */
  .tkw-footer__nav { display: none; }
  .tkw-footer__hours { margin-bottom: 0; }

  /* -- 項目名＋内容のテーブルは縦積みにして、内容の折り返しを減らす */
  .tkw-job__table tr,
  .tkw-outline-table tr {
    display: block;
    border-bottom: 1px dashed #F5C9CC;
  }
  .tkw-job--blue .tkw-job__table tr { border-bottom-color: #CFE6F2; }
  .tkw-job__table tr:last-child,
  .tkw-outline-table tr:last-child { border-bottom: none; }
  .tkw-job__table th,
  .tkw-job__table td,
  .tkw-outline-table th,
  .tkw-outline-table td {
    display: block;
    width: 100%;
    border-bottom: none;
  }
  .tkw-job__table th { padding: 16px 20px 0; }
  .tkw-job__table td { padding: 4px 20px 16px; }
  .tkw-outline-table th { padding: 14px 0 0; }
  .tkw-outline-table td { padding: 2px 0 14px; }

  /* -- ごあいさつの太陽と雲が見出しに重ならないよう上へ逃がす */
  .tkw-deco--sun { top: -56px; width: 74px; }
  .tkw-deco--cloud1 { top: -44px; left: 64px; width: 78px; }

  /* -- 施設案内マップ下のギャラリーは2カラム */
  .tkw-room-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .tkw-room img { height: 110px; }
  .tkw-room__name { padding: 10px 12px; font-size: 12px; }
  .tkw-room__zoom { font-size: 12px; }

  /* -- フッター：郵便番号のあとで改行 */
  .tkw-footer__zip { display: block; margin-right: 0; }

  /* -- 応募方法の電話ボタン */
  .tkw-entry__tel { padding: 16px 44px; font-size: 21px; }
  .tkw-entry__tel i { font-size: 18px; }

  /* -- ページトップボタンは固定バーと重なるため非表示 */
  .tkw-page-top { display: none; }

  /* -- 画面下の固定バーはpill型ボタン2つに */
  .tkw-fixed-bar {
    display: flex;
    gap: 10px;
    padding: 10px 12px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
    background: rgba(255, 251, 246, .96);
    backdrop-filter: blur(8px);
    border-top: 2px solid #FED6D5;
    box-shadow: 0 -3px 14px rgba(190, 150, 140, .18);
  }
  .tkw-fixed-bar .sp-fixed-bar__link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 8px;
    border-radius: 999px;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    background: #F5849C;
    box-shadow: 0 3px 10px rgba(217, 83, 111, .28);
  }
  .tkw-fixed-bar .sp-fixed-bar__link i { font-size: 1.5rem; }
  .tkw-fixed-bar .sp-fixed-bar__item:last-child .sp-fixed-bar__link {
    background: #03A3F8;
    box-shadow: 0 3px 10px rgba(3, 163, 248, .28);
  }
}
