@charset "UTF-8";
/* ==========================================================================
   page.css — ページ専用(p-)。TOP(p-hero / p-top-*)と職員の声タブ(p-voices)だけ
   ========================================================================== */

/* --------------------------------------------------------------------------
   p-hero 「Swedish」ヒーロー(hero-src/swedish-hero を移植)
   1段目: リード帯 c-tagline(共通部品。見た目は style.css。ここでは grid の置き場所だけ)
   2段目: 左だけ余白を残し写真は右端まで。縦向き(90度回転)の「Swedish」を写真左端の境界に半分重ね、
          余白側=ロゴの水色・写真側=ロゴの黄色(トークン --hero-title-a/-b。.p-hero--mono で黒/白)。大きさ・字間はデモの値
   3段目: 操作ボタン(写真の下)
   写真の高さ=デモの高さ(SP max(560px, 90svh) / PC max(720px, 100svh))+デモの上余白 8px − リード帯の高さ
   → リード帯+写真の合計はデモと同じ。写真入りの丸2つ(SVG)は js/script.js が実寸で配置する(2026-11-03 斜めの写真パネル12枚から変更)
   2026-11-03 SP の写真の枠は 縦長 3:4(それまで max(532px, 90svh - 28px)。クライアント指示で詰めた)。枠が短くなり下の固定ボタン帯に重ならないので、カウンターは下 88px → 16px。
   2026-11-03 3段目の操作ボタン(一時停止・次の画像)は削除。.p-hero__controls / .p-hero__btn の指定は未使用
   -------------------------------------------------------------------------- */
.p-hero { display: grid; grid-template-columns: 44px minmax(0, 1fr); }
.l-content > .p-hero + * { margin-top: calc(var(--space-section) / 2); }
.p-hero > .c-tagline { grid-area: 1 / 1 / 2 / -1; } /* 1段目のリード帯(見た目は style.css の c-tagline)を2列にまたがせる */
.p-hero__title { position: relative; z-index: 2; display: grid; grid-area: 2 / 1; align-self: center; justify-self: end; margin: 0; writing-mode: vertical-rl; text-orientation: mixed; white-space: nowrap; font-family: var(--font-display); font-size: clamp(54px, 12vw, 80px); font-weight: 400; line-height: 1; letter-spacing: .045em; transform: translateX(50%); pointer-events: none; }
/* 文字は data-text の1か所だけ。::after に境界50%で分けたグラデーションを文字にクリップ */
.p-hero__title::after { content: attr(data-text); grid-area: 1 / 1; color: transparent; background: linear-gradient(to right, var(--hero-title-a) 0 50%, var(--hero-title-b) 50% 100%); -webkit-background-clip: text; background-clip: text; }
/* 白黒版(旧配色): .p-hero に p-hero--mono を付ける */
.p-hero--mono { --hero-title-a: var(--ink); --hero-title-b: var(--white); }
.p-hero__stage { position: relative; grid-area: 2 / 2; height: auto; aspect-ratio: 3 / 4; overflow: visible; background: linear-gradient(115deg, #8D8D8D, #C9C9C9 62%, #9A9A9A); }
.p-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.p-hero__mask { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; } /* 丸を枠の外へはみ出させる(PC は右、SP・タブレットは下) */
.p-hero__circle { transform-box: view-box; } /* ぷるんの中心(transform-origin)は js が丸の中心の px で入れる */
.p-hero__ring { fill: var(--white); } /* 丸の白い縁 */
.p-hero__line { fill: none; stroke: var(--ink-mute); stroke-width: 3; opacity: 0; } /* 切り替えのときだけ丸の外側に描く線(js が stroke-dashoffset と opacity を動かす)。色は「Swedish」・リード帯と同じグレー */
/* SP は固定バー(body の padding-bottom 68px)に隠れないよう、番号を 68px+20px 上げる */
.p-hero__count { position: absolute; right: 16px; bottom: 16px; font-family: var(--font-display); font-size: 11px; letter-spacing: .08em; white-space: nowrap; text-shadow: 0 0 16px var(--white), 0 1px 2px var(--white); }
@media (max-width: 767px) {
  .p-hero__title { font-weight: 500; letter-spacing: .12em; } /* 2026-11-03 SP は枠が 3:4 で短くなったので、縦書きの字間を少し開ける(.045em → .12em)・少し太く(400 → 500。端末に 500 が無ければ標準の太さのまま)。クライアント指示 */
}
.p-hero__controls { display: flex; grid-area: 3 / 2; justify-self: end; margin: 12px 16px 0 0; padding: 4px; border: 1px solid var(--line); border-radius: 28px; background: var(--white); }
.p-hero__btn { min-height: 38px; padding: 8px 12px; border: 0; border-radius: 22px; background: none; font-size: 12px; color: var(--ink); cursor: pointer; }
.p-hero__btn:hover { background: rgba(0, 0, 0, .035); }
.p-hero__btn + .p-hero__btn { border-left: 1px solid var(--line); border-radius: 0 22px 22px 0; }
.p-hero__btn span { margin-left: 12px; }
@media (min-width: 768px) {
  .p-hero { grid-template-columns: clamp(64px, 8vw, 132px) minmax(0, 1fr); }
  .p-hero__title { font-size: clamp(72px, 9vw, 144px); }
  .p-hero__stage { height: max(672px, 100svh - 48px); aspect-ratio: auto; } /* SP の 3:4 を外す(高さが決まっていると幅が 3:4 で縮むため。2026-11-03) */
  .p-hero__count { right: 28px; bottom: 24px; font-size: 11px; }
  .p-hero__controls { margin: 16px 28px 0 0; }
  .p-hero__btn { padding: 9px 16px; }
}
/* 2026-11-03 丸が写真の右下にかかる(SP・タブレットは下の端、PC は右端の外の下の丸)ので、カウンターは全幅で左下へ */
@media (max-width: 767px) {
  .p-hero__count { right: auto; left: 16px; }
  .l-content > .p-hero + * { margin-top: 88px; } /* 2026-11-03 SP は丸が写真の下にはみ出すので、下のバナーを少し下げる(56 → 88px。クライアント指示) */
}
@media (min-width: 768px) {
  .p-hero__count { right: auto; left: 28px; }
}
/* PC(1200以上)のヒーロー(2026-11-03 クライアントと試作で決定)
   ・ヒーロー全体を、下のバナー3枚・お知らせ・トムテと同じ幅(l-container)に収める。
     「Swedish」の字の左端=入園のご案内バナーの左端、写真の右端=ファミリアのバナーの右端。
   ・「Swedish」は写真に重ねず、写真の左に 8px あけて置く。色はリード帯「Swedish style nursery / Ichihara」と同じグレー(--ink-mute)。
     (写真の端をまたぐ前提の水色×黄色は、重ねなくなったのでやめた。SP・タブレットは今までどおり写真の左端に重ねて2色)
   ・写真の幅は「バナー帯の幅 − Swedish の幅 − 8px」、比率は 1.8:1(幅 1440 で約 1020×567)。
   ・左右の余白(--hero-edge)は l-container の余白と同じ式。grid の1列目・4列目で取る
     (margin に var(--hero-edge) を使うと式の 100% が別の幅で計算されてずれるため)。
   これまでの経緯: 2026-10-28 写真・字をひと回り小さく(見比べ②⑤⑧)→ 2026-11-03 右に余白・比率固定 → 右端をバナーに → 右端固定で 90% → 今の形 */
@media (min-width: 1200px) {
  .p-hero { --hero-title-size: clamp(64px, 6.4vw, 104px); --hero-edge: max(var(--gutter), calc((100% - var(--container)) / 2)); grid-template-columns: var(--hero-edge) auto minmax(0, 1fr) var(--hero-edge); }
  .p-hero__title { grid-area: 2 / 2; margin-right: 8px; font-size: var(--hero-title-size); transform: none; }
  .p-hero__title::after { background-image: linear-gradient(var(--ink-mute), var(--ink-mute)); }
  .p-hero__stage { grid-area: 2 / 3; height: auto; aspect-ratio: 1.8 / 1; overflow: visible; } /* 2026-11-03 丸3つを写真の右端の外へ出すため、PC は枠からはみ出しを見せる(写真は枠ぴったりなので変わらない) */
  .p-hero__mask { overflow: visible; }
  .p-hero > .c-tagline { padding-right: calc(var(--hero-edge) - .22em); } /* 字間 .22em の最後の1字ぶんを引いて、見た目の右端を合わせる */
  /* リード帯の字とヒーローの写真の間を詰める(字の下 37px → 12px)。字の上の余白(ヘッダーから約 36px)はそのまま、帯の高さ 96 → 72px */
  .p-hero > .c-tagline { height: 72px; align-items: flex-end; padding-bottom: 12px; }
}

/* --------------------------------------------------------------------------
   TOP ヒーロー下のバナー3枚
   -------------------------------------------------------------------------- */
.p-top-banners { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: min(85%, 600px); margin: 0 auto; padding: 0; list-style: none; } /* 2026-11-03 SP は横いっぱいにせず 85% に(クライアント指示。それまで max-width: 600px のみ) */
.p-top-banners li { flex: 0 0 100%; }
.p-top-banners a { display: block; overflow: hidden; transition: opacity .2s; }
.p-top-banners a:hover { opacity: .8; }
.p-top-banners img { width: 100%; height: auto; }
@media (min-width: 768px) {
  .p-top-banners { gap: 20px; max-width: none; }
  .p-top-banners li { flex-basis: calc((100% - 20px) / 2); }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .p-top-banners li:nth-child(2) { order: 1; }
}
@media (min-width: 1200px) {
  .p-top-banners li { flex-basis: calc((100% - 40px) / 3); }
}
/* 2026-11-03 バナーの帯はお知らせ・トムテと同じ l-container の幅にした(クライアント指示)。
   それまでは l-container--banner で 1200px・1600 以上はヘッダーと同じ幅(2026-10-28 見比べ2・7)。common.css の --container-banner / .l-container--banner は今は未使用 */

.l-content > .p-top-news { margin-top: var(--space-block); } /* ヒーロー下バナー → お知らせ/トムテ の間は詰める(2026-09-26 クライアント指示。--space-section → --space-block) */
/* お知らせ: 見出しを中央に置き、一覧はその下に全幅(2026-09-26 クライアント指示) */
/* お知らせ: 2カラム(左=お知らせ / 右=トムテ)。各カラムは見出し中央・一覧全幅。1200以上で横並び */
.p-top-news__col { display: flex; flex-direction: column; align-items: center; }
.p-top-news__col > * + * { width: 100%; margin-top: 32px; }
.p-top-news__col .c-heading--line + .c-pinned { margin-top: 32px; }
.p-top-news__col .c-pinned { margin-bottom: 0; }
.p-top-news__col .c-pinned + .news-list { margin-top: 24px; }
.p-top-news__col .news-list { flex: 1; }
/* TOPのお知らせ一覧: 区切り線を手描き風SVGに(上端1本+各記事の下)。news.html 等の一覧は基準どおりの罫のまま */
.p-top-news .news-list { position: relative; border-top: 0; padding-top: 6px; }
.p-top-news .news-list::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--line-hand); -webkit-mask: url("../img/deco-line-2.svg") no-repeat center / 100% 100%; mask: url("../img/deco-line-2.svg") no-repeat center / 100% 100%; }
.p-top-news .news-list li { position: relative; border-bottom: 0; padding-bottom: 6px; }
.p-top-news .news-link { padding-top: 10px; padding-bottom: 10px; } /* 1件ごとの上下余白を詰める(2026-09-26 クライアント指示。既定 18/22px → 10px) */
.p-top-news .news-list li::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--line-hand); -webkit-mask: url("../img/deco-line.svg") no-repeat center / 100% 100%; mask: url("../img/deco-line.svg") no-repeat center / 100% 100%; pointer-events: none; }
.p-top-news .news-list li:nth-child(even)::after { -webkit-mask-image: url("../img/deco-line-2.svg"); mask-image: url("../img/deco-line-2.svg"); transform: scaleX(-1); }
.l-section > .p-top-news__grid > * + * { margin-top: var(--space-section); }
@media (min-width: 768px) {
  .p-top-news__col > * + * { margin-top: 48px; }
  .p-top-news__col .c-heading--line + .c-pinned { margin-top: 48px; }
  .p-top-news__col .c-pinned + .news-list { margin-top: 24px; }
}
@media (min-width: 1200px) {
  /* 左右の段(見出し/固定枠/一覧/一覧を見る)を subgrid で揃え、固定枠は短い側を同じ高さに伸ばして中身を上下中央に */
  .p-top-news__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 0 64px; align-items: stretch; }
  .p-top-news__col { display: grid; grid-template-rows: subgrid; grid-row: span 4; justify-items: center; align-items: stretch; }
  .p-top-news__col .c-pinned { display: flex; flex-direction: column; justify-content: center; }
  .p-top-news__col .c-more { align-self: end; }
  .l-section > .p-top-news__grid > * + * { margin-top: 0; }
  .p-top-news .news-link { grid-template-columns: 1fr; gap: 6px; }
}

/* Instagram(お知らせの下): 見出し+最新投稿のタイル(SP 3列 / 768以上 6列)+アカウントへのボタン。
   静的HTMLでは投稿を取得できないため、タイルは仮置き(p-top-insta__ph)。WP 移植時に Instagram Graph API(Smash Balloon 等)で差し替える(_publish 54) */
.l-content > .p-top-insta { margin-top: calc(var(--space-section) / 2); } /* お知らせ/トムテ → Instagram の間は少し詰める(2026-09-26 クライアント指示。半分=56/96px) */
.p-top-insta .c-heading--line { display: flex; width: fit-content; margin-inline: auto; } /* 手描き下線の見出しを中央に */
.p-top-insta__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.p-top-insta__item { position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; overflow: hidden; background: var(--mist); color: var(--ink-mute); transition: opacity .2s; }
.p-top-insta__item:hover { opacity: .8; }
.p-top-insta__item img { width: 100%; height: 100%; object-fit: cover; }
.p-top-insta__item .c-icon { width: 28px; height: 28px; }
.p-top-insta__more { text-align: center; }
.p-top-insta__more .c-btn { max-width: 100%; white-space: normal; }
.p-top-insta__more .c-btn .c-icon { width: 20px; height: 20px; }
@media (min-width: 768px) {
  .p-top-insta__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  .p-top-insta__item .c-icon { width: 36px; height: 36px; }
}

/* スウェディシュな幼稚舎: 現行サイト(.fr-charm)と同じ構成。白地。
   SP=縦積み(縦書き見出し → 本文 → 写真2枚 → 写真2枚 → 森)/ 768以上=3列(左 本文+写真2 / 中央 縦書き / 右 写真2+森) */
.p-top-swedish { background: var(--white); }
/* SP は現行と同じ並び: [冬の写真2枚+森 | 縦書きの題字] → 本文 → [秋・夏の写真2枚]。列の箱(__col)は display: contents で外し、grid-area で置く */
.p-top-swedish__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "winter title" "forest title" "text text" "autumn autumn"; gap: 14px; }
.p-top-swedish .p-top-swedish__grid > * { margin-top: 0; } /* l-section の部品間余白(--space-block)は使わず gap で組む */
.p-top-swedish__title { grid-area: title; justify-self: center; writing-mode: vertical-rl; font-family: var(--font-heading); font-size: 28px; font-weight: 700; line-height: 1.4; letter-spacing: .14em; color: var(--blue); }
.p-top-swedish__title span { display: block; }
.p-top-swedish__title span + span { padding-top: 7em; } /* 2行目「幼稚舎」は現行どおり左・下にずらす(vertical-rl の padding-top=行頭側) */
.p-top-swedish__col { display: contents; }
.p-top-swedish__text { grid-area: text; margin-top: 12px; margin-bottom: 12px; line-height: 2.1; letter-spacing: .1em; }
.p-top-swedish__col:nth-child(2) .p-top-swedish__pair { grid-area: autumn; }
.p-top-swedish__col:last-child .p-top-swedish__pair { grid-area: winter; align-self: end; }
.p-top-swedish__forest { grid-area: forest; align-self: start; }
.p-top-swedish__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.p-top-swedish__pair img,
.p-top-swedish__forest { width: 100%; }
@media (min-width: 768px) {
  .p-top-swedish__grid { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: none; column-gap: 40px; align-items: start; }
  .p-top-swedish__title { grid-area: 1 / 2; justify-self: center; font-size: 36px; }
  .p-top-swedish__col { display: grid; grid-row: 1; gap: 14px; }
  .p-top-swedish__col:nth-child(2) { grid-column: 1; gap: 56px; }
  .p-top-swedish__col:last-child { grid-column: 3; }
  .p-top-swedish__text,
  .p-top-swedish__col:nth-child(n) .p-top-swedish__pair,
  .p-top-swedish__forest { grid-area: auto; align-self: auto; margin-block: 0; } /* SP の grid-area 指定を戻す(:nth-child(n) は基本側と同じ詳細度にするため) */
}
@media (min-width: 1200px) {
  .p-top-swedish__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 60px; } /* 現行の 360px×3・間 60px */
  .p-top-swedish__title { font-size: 44px; }
}

/* 街並みの帯(お知らせの直下・スウェディシュな幼稚舎の上): 見出しを持たない装飾の帯(div)。画面幅いっぱい・写真のみ。前後の余白は帯のルール(l-section--band の margin)に任せ、内側の padding は持たない
   SP=2×2(隙間2px・正方形)/ 768以上=4枚横並び(隙間0・高さ 240〜300px で横長寄りに切り抜き) */
.p-top-strip { padding-block: 0; }
.p-top-strip__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; margin: 0; padding: 0; list-style: none; }
.p-top-strip__list img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
@media (min-width: 768px) {
  .p-top-strip__list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  .p-top-strip__list img { height: clamp(240px, 18vw, 300px); aspect-ratio: auto; } /* 2026-10-28 clamp(280px, 24vw, 380px) から低く(見比べ6) */
}
/* 写真の帯(学び舎/生活/仲間・愛育の森)は、広い画面ではヘッダーと同じ幅で止める。2026-10-28 PC で写真が大きすぎるため(見比べ6)。
   帯の背景色(p-top-nav のクリーム)は画面幅いっぱいのまま、中身だけ止める。街並みの帯と c-accessmap は画面幅いっぱいのまま(2026-10-28 勝亦さん) */
@media (min-width: 1440px) {
  .p-top-nav__row,
  .p-top-corp { max-width: var(--container-wide); margin-inline: auto; }
}

/* 理事長メッセージ: 現行サイト(.fr-greeting)と同じ構成。模様の帯(img/pattern-greeting.svg=旧 bg001.png の描き直し)の上に白い箱。
   SP=見出し → 本文 → 写真 → 名札 → ボタン / 768以上=本文+ボタン 左・写真+名札 右。名札は写真の下端に 30px 重ねる */
.p-top-greeting { padding-inline: 12px; background: url(../img/pattern-greeting.svg) repeat left top / 1600px 640px; }
.p-top-greeting__box { max-width: var(--container-wide); margin-inline: auto; padding: 32px 20px; background: var(--white); }
.p-top-greeting__title { margin-bottom: 24px; font-family: var(--font-heading); font-size: 22px; font-weight: 700; line-height: 1.5; letter-spacing: .04em; text-align: center; color: var(--ink); }
.p-top-greeting__body { display: grid; gap: 32px; }
.p-top-greeting__text { line-height: 2.1; letter-spacing: .06em; color: var(--ink-soft); }
.p-top-greeting__photo img { width: 100%; }
.p-top-greeting__name { position: relative; display: grid; margin: -30px 20px 0; padding: 16px 20px; background: var(--pale-yellow); font-size: 14px; font-weight: 700; line-height: 1.7; letter-spacing: .2em; color: var(--ink-soft); }
.p-top-greeting__name em { margin-left: 15px; font-size: 21px; font-style: normal; }
@media (min-width: 768px) {
  .p-top-greeting { padding-inline: clamp(20px, 2.5vw, 36px); }
  .p-top-greeting__box { padding: 60px 40px; }
  .p-top-greeting__title { margin-bottom: 40px; font-size: 32px; }
  .p-top-greeting__body { grid-template-columns: minmax(0, 11fr) minmax(0, 8fr); gap: 24px 40px; align-items: start; max-width: 1080px; margin-inline: auto; }
  .p-top-greeting__text { grid-area: 1 / 1; line-height: 2.3; }
  .p-top-greeting__photo { grid-area: 1 / 2 / 3 / 3; margin-top: 10px; }
  .p-top-greeting__more { grid-area: 2 / 1; }
  .p-top-greeting__name { margin: -30px 16px 0; padding: 16px; font-size: 15px; letter-spacing: .12em; }
  .p-top-greeting__name em { margin-left: 10px; font-size: 20px; }
}
@media (min-width: 1200px) {
  .p-top-greeting__box { padding: 60px 90px; }
  .p-top-greeting__body { column-gap: 54px; } /* 現行: 本文 594px+間 54px+写真 432px=1080px */
  .p-top-greeting__name { margin-inline: 61px; padding: 20px 30px; letter-spacing: 3px; } /* 現行: 幅 310px・字間 3px・氏名 23px */
  .p-top-greeting__name em { margin-left: 15px; font-size: 23px; }
}

/* 学び舎・生活・仲間: 現行サイト(.fr-navi-01)と同じ3段。クリーム地の帯に「テキスト列+写真」。帯の内側 padding は持たない(写真が端まで)
   SP=各段 テキスト → 写真(2枚の段は2列)/ 768〜1199=同じ並びで写真を高く / 1200以上=現行の3列(高さ 503px、列幅は 1440 の実測比) */
.p-top-nav { padding-block: 0; background: var(--cream); }
.p-top-nav__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.p-top-nav__text { display: grid; grid-column: 1 / -1; justify-items: center; align-content: center; padding: 48px 20px; text-align: center; }
.p-top-nav__title { display: grid; justify-items: center; gap: 10px; font-size: 18px; font-weight: 700; letter-spacing: .06em; color: var(--ink-soft); }
.p-top-nav__logo { width: auto; height: 135px; } /* 現行 SP 135px / 768以上 155px */
.p-top-nav__text p { max-width: 380px; margin-top: 24px; text-align: left; line-height: 1.8; color: var(--ink-soft); }
.p-top-nav__text .c-btn { margin-top: 32px; }
.p-top-nav__photo { width: 100%; height: 240px; object-fit: cover; }
.p-top-nav__photo--wide { grid-column: 1 / -1; }
@media (min-width: 768px) {
  .p-top-nav__logo { height: 155px; }
  .p-top-nav__text { padding: 64px 32px; }
  .p-top-nav__photo { height: 400px; }
}
@media (min-width: 1200px) {
  .p-top-nav__row { grid-template-rows: 448px; } /* 2026-10-28 503→448(見比べ6) */
  .p-top-nav__logo { height: 112px; } /* 2026-10-28 帯を低くしたぶん字の絵を小さくし、HOME・LIFE にも上下の余白を残す(見比べ7) */
  .p-top-nav__row--home { grid-template-columns: minmax(0, 475fr) minmax(0, 965fr); }
  .p-top-nav__row--life,
  .p-top-nav__row--friend { grid-template-columns: minmax(0, 475fr) minmax(0, 475fr) minmax(0, 490fr); }
  .p-top-nav__text { grid-column: auto; padding: 0 24px; }
  .p-top-nav__row--life .p-top-nav__text { grid-area: 1 / 3; }  /* 写真2枚が左・中へ自動で入る */
  .p-top-nav__row--friend .p-top-nav__text { grid-area: 1 / 2; } /* 写真が左・右へ */
  .p-top-nav__title { font-size: 19px; }
  .p-top-nav__text p { margin-top: 30px; }
  .p-top-nav__text .c-btn { margin-top: 44px; }
  .p-top-nav__photo { height: 100%; }
  .p-top-nav__photo--wide { grid-column: auto; }
}

/* 保護者の方へ: 現行サイト(.fr-message)と同じ。白地・中央揃え・写真3枚を隙間なく横並び */
.p-top-parents { background: var(--white); text-align: center; }
.p-top-parents .l-container > * + * { margin-top: 24px; } /* 現行の 30px に合わせ --space-block より詰める */
.p-top-parents__title { font-family: var(--font-heading); font-size: 24px; font-weight: 700; letter-spacing: .06em; color: var(--accent-lime); }
.p-top-parents__photos { display: grid; max-width: 1200px; margin-inline: auto; padding: 0; list-style: none; }
.p-top-parents__photos img { width: 100%; }
.p-top-parents .l-container > .p-top-parents__photos + * { margin-top: 40px; }
.p-top-parents__cta { display: grid; place-items: center; margin-top: -8px; padding: 37px 16px; background: #F2F2F2 url("../img/parents-bg-grid.webp") center top / 1600px auto repeat; } /* 現行 .btn-01: 高さ 125px・写真の下端に 8px 重なる */
@media (min-width: 768px) {
  .p-top-parents .l-container > * + * { margin-top: 30px; }
  .p-top-parents__title { font-size: 32px; }
  .p-top-parents__photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 愛育の森(法人)への導線: 現行サイト(.fr-navi-02)と同じ構成。写真4枚を 2×2 に敷き詰め、中央に白い箱(ロゴマーク・愛育の森・CORPORATION・文・線のボタン)。
   写真は現行の1枚絵 aiiku_bg_01.png を4分割した corp-*.webp。帯どうしの間隔は帯のルール(前後の帯の padding)に任せ、内側の padding は持たない
   SP=写真は縦長(5:8)で箱に文も出す(現行は文を隠して「+」だけ) / 768以上=写真は横長(現行と同じ 600:365)・箱 440px */
.p-top-corp { position: relative; padding-block: 0; }
.p-top-corp__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.p-top-corp__photos img { width: 100%; height: 100%; aspect-ratio: 5 / 8; object-fit: cover; }
/* SP は現行 aiiku_bg_01_sp と同じ: 写真は縦位置の切り出し(corp-*-sp.webp 281×450)を 2×2、白い箱は 203×260(ロゴ・題字・英字・罫・丸い+)。本文と線のボタンは 768以上 */
.p-top-corp__card { position: absolute; inset: 0; width: 203px; height: fit-content; margin: auto; padding: 22px 16px 24px; background: var(--white); text-align: center; }
.p-top-corp__mark { width: 56px; height: 56px; margin-inline: auto; }
.p-top-corp__title { margin-top: 10px; font-family: var(--font-heading); font-size: 22px; font-weight: 700; line-height: 1.4; letter-spacing: .14em; color: var(--ink); }
.p-top-corp__en { display: block; margin-top: 2px; padding-bottom: 12px; border-bottom: 1px solid var(--ink); font-family: var(--font-heading); font-size: 12px; font-style: italic; font-weight: 700; line-height: 1.4; letter-spacing: .16em; color: var(--ink); }
.p-top-corp__text { display: none; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--blue-line); font-size: 14px; line-height: 1.9; letter-spacing: .06em; text-align: left; }
.p-top-corp__more { display: none; margin-top: 24px; }
.p-top-corp__plus { display: grid; place-items: center; width: 52px; height: 52px; margin: 18px auto 0; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); transition: background-color .2s, color .2s; }
.p-top-corp__plus .c-icon { width: 22px; height: 22px; }
.p-top-corp__plus:hover { background: var(--ink); color: var(--white); }
.p-top-corp .c-btn--line { padding: 14px 28px 14px 22px; font-size: 15px; }
@media (min-width: 768px) {
  .p-top-corp__photos img { aspect-ratio: 600 / 300; } /* 2026-10-28 600/365 から低く(見比べ6) */
  .p-top-corp__card { width: 440px; padding: 70px 60px 30px; }
  .p-top-corp__mark { width: 70px; height: 70px; }
  .p-top-corp__title { font-size: 28px; }
  .p-top-corp__en { padding-bottom: 0; border-bottom: 0; font-size: 13px; }
  .p-top-corp__text { display: block; margin-top: 30px; padding-top: 30px; font-size: 14px; }
  .p-top-corp__more { display: block; margin-top: 30px; }
  .p-top-corp__plus { display: none; }
  .p-top-corp .c-btn--line { padding: 17px 40px 17px 34px; font-size: 16px; }
}

/* 連携園・法人: 説明文を中央に */
.p-top-partner .c-text { margin-inline: auto; text-align: center; }

/* --------------------------------------------------------------------------
   p-voices 職員の声タブ(data-type で絞込。JS無効時は全件表示)
   -------------------------------------------------------------------------- */
.p-voices__grid { margin-top: 32px; }

/* --------------------------------------------------------------------------
   p-about 当園について(現行「当園について」を 2026-09-26 に 1440/375 で実測して再現。Worker 0)
   並び: メッセージ(理事長 → 理事 舎長 → 役員表)→ 施設情報 → 保育理念 → 領域 → 保育方針
   見出しは c-heading--live。このページだけ現行が英字と和字を同じ書体で1行に並べている(Messageメッセージ)ので p-about-heading で寄せる
   本文の文字は現行どおり 16px・行間 1.5・字間 1px(色はサイトの --ink-soft)
   -------------------------------------------------------------------------- */
.p-about-heading { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; }
.p-about-heading .c-heading__en { margin: 0; font-family: var(--font-heading); font-size: 24px; font-weight: 700; line-height: 1.4; letter-spacing: 2px; color: var(--brand-brown); }
.p-about-member__text,
.p-about-idea .c-media__body { font-size: 16px; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }

/* メッセージ: SP=写真 → 名札 → 本文(間 40px。現行と同じ)/ 768以上=写真・名札・本文の箱を重ねる(下に続く @media) */
.p-about-member { display: grid; gap: 40px; }
.p-about-member__photo { width: 100%; }
.p-about-member--rev .p-about-member__photo { width: 77.75%; margin-inline: auto; } /* 現行は左右に透明の余白を持つ 800px 画像。見える写真の幅 622/800 に合わせる */
.p-about-member__name { padding: 15px; background: #EBF7F9; font-size: 14.4px; font-weight: 700; line-height: 1.4; letter-spacing: 2px; text-align: center; color: var(--ink-soft); } /* 現行の水色 #EBF7F9 */
.p-about-member__name span { display: block; }
.p-about-member__name span + span { margin-top: 5px; }
.p-about-member__name em { margin-left: 15px; font-size: 21.6px; font-style: normal; }
.p-about-member__text { padding: 20px 15px 10px; background: #FCFCF5; } /* 現行のクリーム #FCFCF5(施設情報の箱と同じ) */
.p-about-member__title { margin-bottom: 15px; font-size: 18px; font-weight: 500; line-height: 1.4; letter-spacing: .15em; color: var(--brand-blue); }

/* 施設情報: クリームの箱に横罫だけの表(dl)。SP は見出し 40% */
.p-about-info { padding: 15px; background: #FCFCF5; }
.p-about-info__dl { display: grid; grid-template-columns: 40% minmax(0, 1fr); border-bottom: 1px solid #CCC; font-size: 14.4px; line-height: 1.5; }
.p-about-info__dl dt,
.p-about-info__dl dd { border-top: 1px solid #CCC; }
.p-about-info__dl dt { padding: 13px 10px 10px 0; color: var(--brand-brown); }
.p-about-info__dl dd { padding: 10px 0; color: var(--ink-soft); }
.p-about-info__dl a { color: var(--brand-blue); }
.p-about-info__list { margin: 0 0 10px; padding: 0; list-style: none; }
.p-about-info__list li { margin-bottom: 10px; }

/* 保育理念: SP=写真 → 文 / 768以上=文(55%)・写真(40%)を上揃え */
.p-about-idea { align-items: start; gap: 19px; }
.p-about-idea > img { border-radius: 0; }

/* 領域: 淡い黄色の帯の見出し+文+線のボタン「more」。SP 縦積み / 768以上 3列 */
.p-about-region { display: grid; gap: 30px; margin: 0; padding: 0; list-style: none; text-align: center; }
.p-about-region__item { padding-bottom: 20px; }
.p-about-region__title { padding: 10px 0; background: linear-gradient(to right, #FDF3D5 60px, #FCF7E5 200px); font-size: 16px; font-weight: 700; line-height: 1.3; letter-spacing: 1px; color: #AAA; } /* 現行の見出し画像 sub-about-bg01.png の色をグラデーションで描き直し。文字色 #AAA も現行どおり */
.p-about-region__text { margin-top: 15px; font-size: 16px; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }
.p-about-region__more { margin-top: 20px; }
.p-about-region__more a { display: inline-block; padding: 10px 30px; border: 1px solid var(--brand-blue); font-family: var(--font-display); font-size: 14px; line-height: 18px; letter-spacing: 1px; color: var(--brand-blue); transition: background-color .5s, color .5s; }
.p-about-region__more a:hover { background: var(--brand-blue); color: var(--white); }

/* 保育方針: 緑の点線の枠に中央揃えの文 */
.p-about-policy { padding: 36px 36px 46px; border: 1px dotted #4FAF69; background: rgba(255, 255, 255, .4); }
.p-about-policy__list { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.45; letter-spacing: 1px; text-align: center; color: var(--ink-soft); }
.p-about-policy__list li + li { margin-top: 15px; }

@media (min-width: 768px) {
  .p-about-heading .c-heading__en { font-size: 30.4px; line-height: 1.7; letter-spacing: 5px; }
  /* メッセージ(現行 1080px 幅での実測を比率で持つ): 写真 430px(左端)/ 本文の箱 690px(右端・上 20px 下げ・写真に 40px 重ねる)/ 名札 410px(左 30px・写真の下端に 36px 重ねる)
     列: 30 | 写真の残り | 重なり 40 | 10 | 本文の残り。行: 20 | 写真 | 36 | 名札 | 本文の残り(1fr) */
  .p-about-member { grid-template-columns: 30px minmax(0, 36fr) 40px 10px minmax(0, 64fr); grid-template-rows: 20px auto 36px auto 1fr; gap: 0; }
  .p-about-member__photo { position: relative; z-index: 1; grid-area: 1 / 1 / 4 / 4; align-self: start; }
  .p-about-member__text { position: relative; z-index: 2; grid-area: 2 / 3 / 6 / 6; padding: 40px 40px 40px 70px; } /* 名札が 50px 重なる側は 70px(文字に名札を載せない) */
  .p-about-member__name { position: relative; z-index: 3; grid-area: 3 / 2 / 5 / 5; padding: 20px 24px; text-align: left; } /* 768〜1199 は名札が狭いので詰める */
  .p-about-member__title { margin-bottom: 26px; font-size: 22px; }
  /* 理事 舎長は左右逆: 本文の箱 690px(左端)/ 写真 334px(右から 66px)/ 名札 410px(右 30px) */
  .p-about-member--rev { grid-template-columns: minmax(0, 64fr) 40px 10px minmax(0, 32.4fr) 36px 30px; }
  .p-about-member--rev .p-about-member__photo { width: 100%; margin: 0; grid-area: 1 / 3 / 4 / 5; }
  .p-about-member--rev .p-about-member__text { grid-area: 2 / 1 / 6 / 4; padding: 40px 70px 40px 40px; }
  .p-about-member--rev .p-about-member__name { grid-area: 3 / 2 / 5 / 6; }
  .p-about-info { padding: 70px; }
  .p-about-info__dl { grid-template-columns: 12em minmax(0, 1fr); border-bottom: 0; font-size: 16px; }
  .p-about-info__dl dt { padding: 15px 15px 0; }
  .p-about-info__dl dd { padding: 15px; }
  .p-about-info__list { margin-left: 20px; }
  .p-about-idea { grid-template-columns: minmax(0, 11fr) minmax(0, 8fr); column-gap: 5%; }
  .p-about-region { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 2%; }
  .p-about-policy { padding: 50px 30px 60px; }
  .p-about-policy__list { font-size: 16px; line-height: 1.5; }
  .p-about-policy__list li + li { margin-top: 20px; }
}
@media (min-width: 1200px) {
  .p-about-member__text,
  .p-about-member--rev .p-about-member__text { padding: 70px; }
  .p-about-member__name { padding: 30px 40px; letter-spacing: 3px; } /* 現行: 左右 40px・字間 3px */
}

/* ==========================================================================
   Worker A: life / activities / facility / gallery(現行サイトを 2026-09-26 に 1440/375 で実測して再現)
   現行の緑 #50AF6A・黄緑 #E7F14C・ピンク #F19DB5 / #FBEBEE・橙 #F7B53E / #F9F5D5 はこの4ページだけの色なので直書き
   ========================================================================== */
/* 本文幅・余白はサイト共通(.l-container 1200px / --space-block)。2026-09-26 規格統一で現行の 1080px・実測余白の上書きを削除 */
/* 見出し帯+その本文のまとまり(p-*-group): 帯と本文の間だけ --space-block の半分。まとまりどうしは --space-block */
.p-life-group > * + *,
.p-activities-group > * + *,
.p-familia-group > * + *,
.p-contact-group > * + * { margin-top: calc(var(--space-block) / 2); }

/* 緑の見出し帯(現行 .title03。life / activities 共通) */
.p-life-bar,
.p-activities-bar { padding: 12px 10px 12px 15px; border-bottom: 4px solid #E7F14C; background: #50AF6A; font-size: 16px; font-weight: 700; line-height: 21px; letter-spacing: 1px; color: var(--white); }

/* --------------------------------------------------------------------------
   p-life 園生活について
   -------------------------------------------------------------------------- */
/* ページ内メニュー(現行 .sub-navi-link。SP は縦積み・PC は3つ横並びで下向きの矢印) */
.p-life-nav__list { display: grid; gap: 26px; margin: 0; padding: 0; list-style: none; }
.p-life-nav__list li { width: 90%; margin-inline: auto; }
.p-life-nav__link { position: relative; display: block; padding: 8px 10px 11px; border: 1px solid #50AF6A; font-size: 16px; line-height: 24px; letter-spacing: 1px; text-align: center; color: #50AF6A; transition: background-color .4s, color .4s; }
.p-life-nav__link:hover { background: #50AF6A; color: var(--white); }
.p-life-group > .p-life-year { margin-top: calc(var(--space-block) / 2 + 24px); } /* 枠の上に出る木の飾り(SP 24px / PC 38px)の分だけ空ける */
@media (min-width: 768px) {
  .p-life-nav__list { display: flex; justify-content: center; gap: 15px; }
  .p-life-nav__list li { flex: 0 1 288px; width: auto; margin: 0; } /* 現行は画面幅の20%(1440で288px)。広い画面で伸びないよう 288px で止める */
  .p-life-nav__link { padding: 12px 10px 15px; font-weight: 700; }
  .p-life-nav__link::before { content: ""; position: absolute; left: 0; right: 0; bottom: 15%; width: 6px; height: 6px; margin: auto; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(135deg); }
  .p-life-group > .p-life-year { margin-top: calc(var(--space-block) / 2 + 38px); }
}

/* 1日の流れ(現行 .life-box-01。SP は白の半透明を重ねてイラストを薄く、PC はイラストをそのまま) */
.p-life-day { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 20px 0 55px; border-radius: 15px; background: #FBEBEE; }
.p-life-day__age { justify-self: center; padding: 8px 12px; border-radius: 15px; background: #F19DB5; font-size: 16px; font-weight: 700; line-height: 17px; letter-spacing: 1px; color: var(--white); }
.p-life-day__body { position: relative; grid-column: 1 / -1; margin-top: 35px; }
.p-life-day__body::before { content: ""; position: absolute; z-index: 3; top: -10px; left: 0; right: 0; width: 40px; height: calc(100% + 20px); margin-inline: auto; border-radius: 40px; background: #F19DB5; } /* 中央の時刻の帯 */
.p-life-day__body::after { content: ""; position: absolute; z-index: 2; top: -5%; left: 0; right: 0; width: 95%; height: 110%; margin-inline: auto; border-radius: 15px; background: rgba(255, 255, 255, .8); } /* SP だけ: イラストを薄める白 */
.p-life-day__table { position: relative; z-index: 3; width: 100%; border-collapse: collapse; font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .5px; color: var(--ink-soft); }
.p-life-day__table tbody td,
.p-life-day__table tbody th { width: 41%; padding: 8px 0; font-weight: 700; }
.p-life-day__table tbody td:first-child { text-align: right; }
.p-life-day__table tbody td:last-child { text-align: left; }
.p-life-day__table tbody th { width: 18%; text-align: center; color: var(--white); }
.p-life-day__ill { position: absolute; }
.p-life-day__ill--hug { top: 15%; left: 3%; width: 80px; }
.p-life-day__ill--nap { top: 40%; left: 3%; width: 110px; }
.p-life-day__ill--play { top: 70%; left: 4%; width: 90px; }
.p-life-day__ill--sing { top: 23%; right: 3%; width: 100px; }
.p-life-day__ill--lunch { top: 55%; right: 3%; width: 80px; }
.p-life-day__ill--goodbye { top: 82%; right: 3%; width: 90px; }
@media (min-width: 768px) {
  .p-life-day { padding: 19px 30px 50px; border-radius: 30px; }
  .p-life-day__age { padding: 13px 40px 12px; border-radius: 30px; font-size: 24px; line-height: 27px; }
  .p-life-day__body { margin-top: 21px; }
  .p-life-day__body::before { top: -15px; width: 80px; height: calc(100% + 30px); }
  .p-life-day__body::after { content: none; }
  .p-life-day__table { width: 95%; margin-inline: auto; font-size: 16px; }
  .p-life-day__table tbody td,
  .p-life-day__table tbody th { padding: 10px; }
  /* 768〜1199 は表の文字に掛からないよう端に寄せて小さく */
  .p-life-day__ill--hug { top: 12%; left: 2%; width: 11%; }
  .p-life-day__ill--nap { top: 42%; left: 1%; width: 13%; }
  .p-life-day__ill--play { top: 76%; left: 2%; width: 13%; }
  .p-life-day__ill--sing { top: 23%; right: 2%; width: 14%; }
  .p-life-day__ill--lunch { top: 51%; right: 4%; width: 11%; }
  .p-life-day__ill--goodbye { top: 80%; right: 2%; width: 13%; }
}
@media (min-width: 1200px) {
  .p-life-day__table { font-size: 19.2px; } /* 現行 120% */
  /* イラストの位置は箱に対する割合(現行 1080px の箱での位置) */
  .p-life-day__ill--hug { left: 8%; width: 12.96%; }
  .p-life-day__ill--nap { left: 8%; width: 17.59%; }
  .p-life-day__ill--play { left: 9%; width: 15.74%; }
  .p-life-day__ill--sing { right: 8%; width: 16.67%; }
  .p-life-day__ill--lunch { right: 13%; width: 12.96%; }
  .p-life-day__ill--goodbye { right: 8%; width: 15.74%; }
}

/* 年間行事(現行 .life-box-02。上に木の並んだ飾り life-trees.webp) */
.p-life-year { position: relative; border: 1px solid #F7B53E; background: #F9F5D5; }
.p-life-year::before { content: ""; position: absolute; top: -24px; right: 10px; width: 140px; height: 24px; background: url(../img/life-trees.webp) no-repeat 0 0 / 200% auto; }
.p-life-year__list { margin: 0; padding: 0; list-style: none; }
.p-life-year__item { display: grid; grid-template-columns: 75px minmax(0, 1fr); background: #F7B53E; }
.p-life-year__item + .p-life-year__item { border-top: 1px solid #F7B53E; }
.p-life-year__month { padding: 8px 10px 0; font-size: 16px; line-height: 22.4px; letter-spacing: 1px; white-space: nowrap; color: var(--white); }
.p-life-year__item + .p-life-year__item .p-life-year__month { border-top: 1px solid var(--white); }
.p-life-year__month span { margin-right: 2px; font-weight: 700; }
.p-life-year__events { margin: 0; padding: 10px; list-style: none; background: var(--white); font-size: 14.4px; font-weight: 400; line-height: 21.6px; letter-spacing: 1px; color: var(--ink-soft); }
.p-life-year__events li { margin-bottom: 10px; }
.p-life-year__ill { position: absolute; z-index: 3; right: 0; opacity: .3; pointer-events: none; }
.p-life-year__ill--walk { top: 3%; width: 80px; }
.p-life-year__ill--tanabata { top: 18%; right: 4%; width: 100px; }
.p-life-year__ill--lantern { top: 33%; width: 70px; transform: rotate(-30deg); }
.p-life-year__ill--sweetpotato { top: 47%; width: 50px; }
.p-life-year__ill--halloween { top: 49%; right: 6%; width: 110px; }
.p-life-year__ill--christmas { top: 64%; width: 105px; }
.p-life-year__ill--setsubun { top: 80%; right: 9%; width: 105px; }
@media (min-width: 768px) {
  .p-life-year { padding: 30px 30px 100px; border: 5px solid #F7B53E; border-radius: 30px; } /* 下 100px: 現行は行事の縦書きが月の段からはみ出す分を含めて 610px の高さ */
  .p-life-year::before { top: -38px; right: 30px; width: 400px; max-width: calc(100% - 60px); height: 34px; background-size: 100% auto; background-position: right 0; }
  .p-life-year::after { content: ""; position: absolute; inset: 0; width: 98%; height: 96%; margin: auto; border-radius: 25px; background: rgba(255, 255, 255, .8); } /* 白の半透明でイラストを薄める */
  .p-life-year__list { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 70px 0; }
  .p-life-year__item { display: block; height: 200px; background: none; }
  .p-life-year__item + .p-life-year__item { border-top: 0; }
  .p-life-year__month,
  .p-life-year__item + .p-life-year__item .p-life-year__month { display: flex; align-items: baseline; justify-content: center; width: 60px; height: 60px; margin: -3px auto 0; padding: 4px 0 0 4px; border: 0; border-radius: 50%; background: #F7B53E; line-height: 47px; }
  .p-life-year__month span { margin-right: 3px; font-size: 32px; }
  .p-life-year__events { display: flex; justify-content: center; gap: 5px; margin-top: 43px; padding: 0; background: none; font-size: 16px; font-weight: 700; line-height: 1.4; }
  .p-life-year__events li { position: relative; height: 150px; margin: 0; writing-mode: vertical-rl; }
  .p-life-year__events li::before { content: ""; position: absolute; top: -13px; left: 50%; width: 3px; height: 3px; margin-left: -1.5px; border-radius: 50%; background: #666; } /* 行事の頭の点 */
  .p-life-year__ill { z-index: auto; opacity: 1; right: auto; }
  .p-life-year__ill--walk { top: 28%; left: 12%; width: 12.96%; }
  .p-life-year__ill--tanabata { top: 27%; left: 40%; right: auto; width: 16.67%; }
  .p-life-year__ill--lantern { top: 33%; right: 15%; width: 12.04%; transform: none; }
  .p-life-year__ill--sweetpotato { top: auto; bottom: 4%; left: 3%; width: 9.26%; }
  .p-life-year__ill--halloween { top: auto; bottom: 0; left: 13%; right: auto; width: 15.74%; }
  .p-life-year__ill--christmas { top: auto; bottom: 6%; right: 45%; width: 15.28%; }
  .p-life-year__ill--setsubun { top: auto; bottom: 1%; right: 20%; width: 15.28%; }
}
@media (min-width: 1200px) {
  .p-life-year__events { font-size: 19.2px; } /* 現行 120% */
}

/* --------------------------------------------------------------------------
   p-activities アクティビティ
   -------------------------------------------------------------------------- */
.p-activities-text { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-activities-text p + p { margin-top: 16px; }
/* 講師紹介(現行 .activity-box) */
.p-activities-teacher { display: grid; gap: 20px; }
.p-activities-teacher__photo { width: 100%; }
.p-activities-teacher__name { margin-bottom: 20px; padding-bottom: 10px; border-bottom: 2px solid; font-size: 17.6px; font-weight: 700; line-height: 24px; color: #F8B47C; } /* 現行の薄橙 #F8B47C */
.p-activities-teacher__career { padding: 20px; background: #FCFCF5; font-size: 16px; line-height: 24px; letter-spacing: 1px; color: var(--ink-soft); }
.p-activities-teacher__career dt { margin-bottom: 10px; padding-bottom: 3px; }
.p-activities-teacher__career dt span { border-bottom: 1px solid #4FAF69; font-weight: 700; color: var(--brand-brown); }
.p-activities-teacher__career dd { margin-bottom: 15px; padding-left: 10px; }
.p-activities-teacher__photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; } /* 活動写真4枚・2列2段(クライアント指示 2026-09-27。SPで3列だと小さいため)。768以上は経歴の列(右)に揃える */
.p-activities-teacher__photos img { width: 100%; }
@media (min-width: 768px) {
  .p-activities-teacher { grid-template-columns: 30fr 65fr; align-items: start; gap: 0 5%; }
  .p-activities-teacher__photos { grid-column: 2; margin-top: 20px; gap: 20px; }
  .p-activities-teacher__name { margin: 10px 0 15px; padding: 5px 10px; font-size: 19.2px; line-height: 26px; letter-spacing: 1px; }
}


/* ==========================================================================
   Worker B: admission / for-parents / familia / tomte / access / contact / privacy / news(+page2) / news-detail-01〜03
   現行サイトを 2026-09-26 に 1440/375 で実測して再現。現行の本文色 #555・灰 #666 は --ink-soft で代用
   現行の緑 #50AF6A・黄緑 #E7F14C・水色リンク #21ADE5(≒ --brand-blue)・橙 #F9B37D は下層共通の色なので直書き(c- 統合時にトークン化)
   ========================================================================== */
/* 本文幅・余白はサイト共通(.l-container 1200px / --space-block)。2026-09-26 規格統一で現行の 920/1080px・実測余白の上書きを削除 */

/* 緑の見出し帯(現行 .title03。p-life-bar と同じ見た目。contact の帯・記事タイトル) */
.p-contact-bar,
.p-post .news-detail-title { margin: 0; padding: 12px 10px 12px 15px; border-bottom: 4px solid #E7F14C; background: #50AF6A; font-family: var(--font); font-size: 16px; font-weight: 700; line-height: 21px; letter-spacing: 1px; color: var(--white); }

/* 橙の丸の小見出し(現行 .title02。丸は旧 radius-orange-icon.png を CSS の同心円で描き直し) */
.p-parents-title,
.p-familia-title,
.p-tomte-guide__title,
.p-post-title { padding-left: 30px; background: radial-gradient(circle closest-side, #F8B47D 65%, transparent 66% 89%, #F8B47D 90% 96%, transparent 97%) no-repeat 0 0 / 25px 25px; font-family: var(--font-heading); font-size: 19.2px; font-weight: 700; line-height: 1.4; letter-spacing: 3px; color: var(--brand-brown); }
@media (min-width: 768px) {
  .p-parents-title,
  .p-familia-title,
  .p-tomte-guide__title,
  .p-post-title { padding-left: 40px; background-position: 0 center; background-size: 30px 30px; font-size: 20.8px; line-height: 1.5; }
}

/* 箇条書き(現行 .message-list-01。SP は行ごとに薄い罫) */
.p-parents-list,
.p-familia-list { margin: 0; padding: 0; list-style: none; font-size: 16px; line-height: 1.7; letter-spacing: 1px; color: var(--ink-soft); }
.p-parents-list li,
.p-familia-list li { margin-bottom: 10px; padding: 7px 0; border-bottom: 1px solid #EEE; }
.p-parents-list li:first-child,
.p-familia-list li:first-child { border-top: 1px solid #EEE; }
@media (min-width: 768px) {
  .p-parents-list,
  .p-familia-list { margin: 0 15px 0 30px; line-height: 1.5; }
  .p-parents-list li,
  .p-familia-list li,
  .p-parents-list li:first-child,
  .p-familia-list li:first-child { padding: 5px 0; border: 0; }
}

/* --------------------------------------------------------------------------
   p-admission 入園のご案内
   -------------------------------------------------------------------------- */
.p-admission-lead { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
/* 園児募集の表(現行 .admission-dl-01): 左 25% クリーム地 / 右 白地。SP は現行 10px を 12px に上げた */
.p-admission-dl { display: grid; grid-template-columns: 32% minmax(0, 1fr); border: 1px solid #CCC; border-top: 0; background: #FFF8E1; font-size: 14px; line-height: 1.5; letter-spacing: 1px; }
.p-admission-dl dt,
.p-admission-dl dd { padding: 7px 10px 7px 7px; border-top: 1px solid #CCC; }
.p-admission-dl dt { color: var(--ink-soft); }
.p-admission-dl dd { border-left: 1px solid #CCC; background: var(--white); color: var(--ink-soft); }
.p-admission-dl__item { display: block; }
/* 保育時間(現行 .admission-dl-02): SP は札を全幅・時間を中央 */
.p-admission-hours { font-size: 16px; line-height: 1.5; letter-spacing: 1px; text-align: center; color: var(--ink-soft); }
.p-admission-hours dt { margin-bottom: 10px; }
.p-admission-hours dd { margin-bottom: 15px; }
.p-admission-hours__label { display: block; padding: 3px; border-radius: 5px; background: #6ABE84; color: var(--white); }
.p-admission-hours__label--ext { background: #F9B37D; }
.p-admission-hours__dots { display: none; }
/* 延長保育の料金表(現行 .admission-table-01) */
.p-admission-fee { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 1.3; letter-spacing: 1px; text-align: center; color: var(--ink-soft); }
.p-admission-fee th,
.p-admission-fee td { width: 25%; padding: 8px 5px; border: 1px solid #CCC; }
.p-admission-fee th { background: #FFF8E1; font-weight: 700; }
.p-admission-fee td { background: var(--white); }
@media (min-width: 768px) {
  .p-admission-dl { font-size: 16px; }
  .p-admission-dl dt,
  .p-admission-dl dd { padding: 15px; }
  .p-admission-dl__item { display: inline-block; margin-right: 15px; }
  .p-admission-hours { display: grid; grid-template-columns: 205px minmax(0, 1fr); align-items: center; row-gap: 30px; text-align: left; }
  .p-admission-hours dt,
  .p-admission-hours dd { margin: 0; }
  .p-admission-hours__label { display: inline-block; margin-right: 5px; padding: 7px 15px; }
  .p-admission-hours__dots { display: inline; color: #C00; }
  .p-admission-fee { font-size: 16px; letter-spacing: 3px; }
  .p-admission-fee th,
  .p-admission-fee td { padding: 12px 36px; }
}

/* --------------------------------------------------------------------------
   p-parents 保護者の方へ(for-parents.html)
   -------------------------------------------------------------------------- */
/* ページ内メニュー(現行 .sub-navi-link。p-life-nav と同じ見た目・4つ並び) */
.p-parents-nav__list { display: grid; gap: 26px; margin: 0; padding: 0; list-style: none; }
.p-parents-nav__list li { width: 90%; margin-inline: auto; }
.p-parents-nav__link { position: relative; display: block; padding: 8px 10px 11px; border: 1px solid #50AF6A; font-size: 16px; line-height: 24px; letter-spacing: 1px; text-align: center; color: #50AF6A; transition: background-color .4s, color .4s; }
.p-parents-nav__link:hover { background: #50AF6A; color: var(--white); }
.p-parents-hint { font-size: 16px; line-height: 1.9; letter-spacing: 1px; text-align: center; color: var(--ink-soft); }
.p-parents-nav > .p-parents-hint { margin-top: calc(var(--space-block) / 2); } /* 「クリックで移動します」はメニューの注記なのでメニューの中に置く */
/* 項目の箱(現行 .message-rule-box。白地に白 40% なので背景は付けない) */
.p-parents-box { padding: 20px 15px; }
.p-parents-title + * { margin-top: 15px; }
.p-parents-link { color: var(--brand-blue); }
.p-parents-link:hover { text-decoration: underline; }
/* アレルギー: 文 60% + 写真 35%。SP は縦積み(写真は文の下 20px) */
.p-parents-allergy { display: grid; gap: 20px; }
.p-parents-allergy__photo { width: 100%; }
@media (min-width: 768px) {
  .p-parents-nav__list { display: flex; justify-content: center; gap: 15px; }
  .p-parents-nav__list li { flex: 0 1 216px; width: auto; margin: 0; } /* 現行は本文幅の20%(216px) */
  .p-parents-nav__link { padding: 12px 10px 15px; font-weight: 700; }
  .p-parents-nav__link::before { content: ""; position: absolute; left: 0; right: 0; bottom: 15%; width: 6px; height: 6px; margin: auto; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(135deg); }
  .p-parents-box { padding: 20px 30px; }
  .p-parents-title + * { margin-top: 30px; }
  .p-parents-allergy { grid-template-columns: 60fr 35fr; justify-content: space-between; align-items: start; gap: 0 5%; }
}

/* --------------------------------------------------------------------------
   p-familia 一時預かり「ファミリア」
   -------------------------------------------------------------------------- */
/* 冒頭の案内画像2枚: 本文幅より広い(画面幅の 70% / 80%)。元画像の幅で止める */
.p-familia-box { padding: 20px 15px; }
.p-familia-list + *,
.p-familia-note + .p-familia-note { margin-top: 10px; }
.p-familia-note,
.p-familia-towel,
.p-familia-address p { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-note__mark { border-bottom: 2px solid #78E1FF; }
.p-familia-note + .p-familia-towel { margin-top: 40px; }
.p-familia-towel { display: flex; align-items: flex-start; gap: 20px; }
.p-familia-towel img { flex: none; width: 70px; margin-top: 4px; }
/* お願い: 緑の●(現行 #0FCC0C)。2行目以降は●の幅だけ下げる */
.p-familia-list--rule li { position: relative; padding-left: 1.3em; }
.p-familia-list--rule li::before { content: "●"; position: absolute; left: 0; color: #0FCC0C; }
/* 連絡先の箱(水色の太枠・角丸) */
.p-familia-address { padding: 16px; border: 3px solid #1FD7FF; border-radius: 10px; background: #DBF9FF; }
.p-familia-address p { margin-bottom: 16px; }
.p-familia-address a { color: inherit; }
@media (min-width: 768px) {
  .p-familia-box { padding: 20px 30px; }
  .p-familia-list--rule li,
  .p-familia-list--rule li:first-child { padding: 5px 0 5px 1.3em; }
}

/* --------------------------------------------------------------------------
   p-tomte 子育て支援センター「トムテ」
   -------------------------------------------------------------------------- */
.p-tomte-character { width: 170px; margin-inline: auto; }
/* 案内(旧 tomte-guide.webp の HTML 化)。サイトの下層の書式に合わせる: 見出しは「保護者の方へ」と同じ橙の丸の小見出し(.p-parents-title と同じ宣言)、本文は --ink-soft、強調は下線のみ */
.p-tomte-guide { width: 100%; } /* 保護者の方へ・ファミリアの箱と同じく本文の外枠(l-container 1200px)いっぱいに。文は短いので --text-width で絞らない(2026-09-26 幅調査) */
.p-tomte-guide__lead { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-tomte-guide__box { padding: 20px 15px; }
.p-tomte-guide__lead + .p-tomte-guide__box { margin-top: 30px; }
.p-tomte-guide__box + .p-tomte-guide__box { margin-top: 20px; }
.p-tomte-guide__title + * { margin-top: 15px; }
.p-tomte-guide__box p,
.p-tomte-guide__hours { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-tomte-guide__em { font-style: normal; font-weight: 700; color: var(--brand-brown); text-decoration: underline; text-decoration-color: var(--accent-orange); text-decoration-thickness: 2px; text-underline-offset: .25em; }
.p-tomte-guide__hours { display: grid; grid-template-columns: 3em minmax(0, 1fr); gap: 6px 12px; margin: 12px 0 0; padding: 14px 16px; background: var(--cream); }
.p-tomte-guide__hours dt { font-weight: 700; color: var(--brand-brown); }
.p-tomte-guide__hours dd { margin: 0; }
@media (min-width: 768px) {
  .p-tomte-guide__box { padding: 20px 30px; }
  .p-tomte-guide__title + * { margin-top: 30px; }
  .p-tomte-guide__hours { max-width: 460px; }
}
.p-tomte-text { font-size: 16px; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }
.p-tomte-text a { color: var(--brand-blue); }
.p-tomte-text a:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   p-access アクセス
   -------------------------------------------------------------------------- */
/* 園の情報(現行 .access-table): 横罫だけ。項目は緑。SP は項目 32%・文字 80% */
.p-access-table { border-top: 1px solid #DDD; font-size: 14px; line-height: 1.7; letter-spacing: 1px; }
.p-access-table__row { display: grid; grid-template-columns: 32% minmax(0, 1fr); padding: 15px 0 16px; border-bottom: 1px solid #DDD; }
.p-access-table dt { padding: 0 10px 0 5px; color: #50AF6A; }
.p-access-table dd { padding: 0 10px; color: var(--ink-soft); }
.p-access-table a { color: inherit; }
.p-access-table__zip { display: block; }
/* 地図2枚(灰色の太枠・角丸)。SP 縦積み / 768以上 45% ずつ左右 */
.p-access-maps { display: grid; gap: 20px; }
.p-access-maps img { width: 100%; border: 4px solid #DDD; border-radius: 10px; }
@media (min-width: 768px) {
  .p-access-table { font-size: 16px; line-height: 1.5; }
  .p-access-table__row { grid-template-columns: 25% minmax(0, 1fr); padding: 20px 0 21px; }
  .p-access-table dt { padding: 0 10px 0 20px; }
  .p-access-table__zip { display: inline; margin-right: 15px; }
  .p-access-maps { grid-template-columns: repeat(2, minmax(0, 480px)); justify-content: center; align-items: center; gap: 0 5%; } /* 外観写真(横長)と地図(正方形)を 480px 幅で中央に2枚。高さが違うので上下中央揃え */
}

/* --------------------------------------------------------------------------
   p-contact お問合わせ
   -------------------------------------------------------------------------- */
/* 3園の連絡先(現行 .contact-box-01): 灰色の線の箱・中央揃え。SP 縦積み / 768以上 2列(45%ずつ左右) */
.p-contact-list { display: grid; gap: 20px; margin: 0; padding: 0; list-style: none; }
.p-contact-card { padding: 15px 0 5px; border: 1px solid #DDD; font-size: 16px; line-height: 1.9; letter-spacing: 1px; text-align: center; color: var(--ink-soft); }
.p-contact-card__name { font-size: 17.6px; font-weight: 700; line-height: 1.4; color: #F9B37D; }
.p-contact-card p { margin-bottom: 16px; }
.p-contact-card a { color: inherit; }
.p-contact-text,
.p-contact-link { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-contact-link { padding: 10px 15px; border: 1px dashed #DDD; }
.p-contact-link a { color: var(--brand-blue); }
.p-contact-link a:hover { text-decoration: underline; }
@media (min-width: 768px) {
  .p-contact-list { grid-template-columns: repeat(2, 45%); justify-content: space-between; gap: 24px 0; }
}
@media (min-width: 1200px) {
  .p-contact-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } /* 本文幅 1200px では3園を1段に */
}

/* --------------------------------------------------------------------------
   p-privacy 個人情報について
   -------------------------------------------------------------------------- */
.p-privacy-list { margin: 0; padding: 0; list-style: none; font-size: 16px; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }
.p-privacy-list li + li { margin-top: 10px; }

/* --------------------------------------------------------------------------
   p-news お知らせ一覧(news.html / news-page2.html)。news-* は基準§8 の固定名なので、見た目だけこのページで上書き(TOP の一覧は変えない)
   -------------------------------------------------------------------------- */
/* 見出し: 現行は和字が上・英字が下 */
.p-news-heading { display: flex; flex-direction: column-reverse; }
.p-news-heading .c-heading__en { margin: 4px 0 0; }
.p-news .news-list { border-top: 0; }
.p-news .news-list li { padding: 20px 0; border-bottom: 1px solid #EDEBE8; }
.p-news .news-link { display: block; padding: 0; background: none; }
.p-news .news-link:hover .news-title { text-decoration: none; }
.p-news .news-meta { gap: 8px; margin-bottom: 8px; padding: 5px; }
.p-news .news-date { font-size: 14.4px; line-height: 24px; letter-spacing: 1px; color: var(--ink-soft); }
.p-news .tag-news { padding: 2px 7px; border-radius: 0; background: #FFC107; font-size: 12.8px; line-height: 14px; letter-spacing: 1px; color: var(--white); } /* 現行の橙 #FFC107 */
.p-news .news-title { display: block; margin-bottom: 5px; padding: 0 0 2px 10px; font-size: 18.4px; line-height: 1.2; letter-spacing: 1px; text-decoration: underline; text-underline-offset: .15em; color: var(--brand-blue); }
.p-news-excerpt { display: block; padding: 5px; font-size: 16px; line-height: 24px; letter-spacing: 1px; color: var(--ink-soft); }
/* ページ送り(現行 WP-PageNavi 風: 水色の線の四角・現在ページは塗り) */
.p-news .pagination { gap: 6px; }
.p-news .pagination a,
.p-news .pagination span { display: block; min-width: 0; min-height: 0; padding: 6px 10px; border: 1px solid var(--brand-blue); border-radius: 0; background: var(--white); font-size: 16px; line-height: 22.4px; color: var(--brand-blue); }
.p-news .pagination a:hover { background: var(--brand-blue); color: var(--white); }
.p-news .pagination .is-current { border-color: var(--brand-blue); background: var(--brand-blue); color: var(--white); }

/* --------------------------------------------------------------------------
   p-post お知らせ記事(news-detail-*)。パンくず・記事・前後ボタンは l-container--narrow(本文幅 760px)
   -------------------------------------------------------------------------- */
/* パンくず(現行 #paikuzu): SP は淡い黄色の帯で題字帯に接する / PC は帯の下 30px・背景なし */
.p-post .news-detail-body { margin-top: 50px; padding-top: 0; border-top: 0; font-size: 16px; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }
.p-post .news-detail-body > * + * { margin-top: 1.5em; }
/* 親御様の声: ピンクの箱(影を同色で広げて角をぼかす) */
.p-post .news-detail-body > .p-post-title + .p-post-voice { margin-top: 25px; }
.p-post .news-detail-body > .p-post-voice + .p-post-voice { margin-top: 44px; }
.p-post .news-detail-body > .p-post-voice + .p-post-title { margin-top: 34px; }
.p-post-voice { margin-inline: 10px; padding: 20px; background: #FCEFF2; box-shadow: 0 0 10px 10px #FCEFF2; }
.p-post-voice p + p { margin-top: 1.5em; }
/* 前後の記事(現行 .next-prev-box): 次=左・前=右の白いボタン */
.p-post-nav { padding-top: 20px; border-top: 2px solid #F7F5F2; font-size: 16px; }
.p-post-nav .p-post-nav__link { position: relative; padding: 15px 30px 15px 15px; border: 1px solid #ECECEC; border-radius: 3px; background: var(--white); line-height: 16px; letter-spacing: 1px; text-decoration: none; color: #656565; }
.p-post-nav .p-post-nav__link--next { padding: 15px 15px 15px 30px; }
.p-post-nav .p-post-nav__link--prev { margin-left: auto; }
.p-post-nav__link::after { content: ""; position: absolute; top: 50%; width: 6px; height: 6px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; }
.p-post-nav__link--prev::after { right: 14px; transform: translateY(-50%) rotate(45deg); }
.p-post-nav__link--next::after { left: 14px; transform: translateY(-50%) rotate(-135deg); }
.p-post-nav .p-post-nav__link:hover { border-color: #CCC; }
@media (min-width: 768px) {
  .p-post .news-detail-body > .p-post-title + .p-post-voice { margin-top: 40px; }
}
/* p-parents ページ内メニュー: 768〜1199 は4つ並びが窮屈なので文字を詰め、高さを揃える */
@media (min-width: 768px) {
  .p-parents-nav__list li { display: grid; }
  .p-parents-nav__link { font-size: 14px; }
}
@media (min-width: 1200px) {
  .p-parents-nav__link { font-size: 16px; }
}

/* TOP: スクロールで写真が横から入る間(js-reveal の left/right)に横スクロールを出さない。縦方向ははみ出してよい(clip は x だけ切る) */
.p-top-strip,
.p-top-nav { overflow-x: clip; }
/* ==========================================================================
   p-life 完全コピー(2026-09-26 追加指示。現行「園生活について」を 1440/1280/1024/768/375 で並べて実測し、上の p-life-* を上書き)
   書体の実体(CDP で確認): 現行の本文 "hiraginoCl-W3" は Noto Sans JP Light(サーバーの hiragic-W3.otf。全OSで同じ)、
   緑の帯と年齢の札は "ヒラギノ角ゴ Pro W3" 始まりのシステム書体(Mac=ヒラギノ角ゴ)、英字ラベルは Economica(サーバーの otf)。
   本文: Light は読み込んでいない(ウェイト3つまでの規格)ので Noto Sans JP で代用。現行の 700 は Light の擬似太字で
   Regular 相当に見えるため 400、現行の 400 は 300 と書いて Regular に落とす(Light を足せばそのまま一致する書き方)
   ========================================================================== */
/* Economica(SIL OFL 1.1。fonts/Economica-OFL.txt)。現行と同じく Regular 1書体だけ持ち、700 は擬似太字にする */
@font-face { font-family: "Economica"; src: url(../fonts/Economica-Regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
.p-life .p-life-nav,
.p-life .p-life-day,
.p-life .p-life-year,
.p-life .c-heading__en { font-family: "Economica", var(--font-display); font-size: 14.4px; font-weight: 700; line-height: 20.16px; letter-spacing: 4px; } /* 現行 .title01 span: 見出しの 60% */
/* 緑の帯・年齢の札: 現行と同じ書体の並び(Mac はヒラギノ角ゴの太字)。行の高さも現行どおり書体まかせ */
.p-life-bar,
.p-life-day__age { font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; line-height: normal; }
.p-life-nav__link { font-weight: 300; color: #50AF6A; }
.p-life-day { padding-top: 13px; } /* SP: 札の上端は箱の上から 13px */
.p-life-day__table { font-weight: 400; line-height: 19.33px; color: #555; }
.p-life-day__table tbody td,
.p-life-day__table tbody th { font-weight: 400; }
.p-life-day__table tbody th { color: var(--white); }
.p-life-year__month { font-weight: 300; }
.p-life-year__month span { font-weight: 400; }
.p-life-year__events { font-weight: 400; color: #555; }
@media (min-width: 768px) {
  .p-life .c-heading__en { font-size: 18.24px; line-height: 31px; }
  .p-life-nav__link { font-weight: 400; }
  .p-life-day { padding-top: 19px; }
  /* 年間行事: 現行と同じく1段目 16.5%×6、2段目 16%×5+20%(2段目の月の丸は1段目とずれる)。月の丸は項目の ::before */
  .p-life-year__list { display: flex; flex-wrap: wrap; gap: 70px 0; }
  .p-life-year__item { position: relative; flex: none; width: 16.5%; }
  .p-life-year__item:nth-child(n+7) { width: 16%; }
  .p-life-year__item:nth-child(12) { width: 20%; }
  .p-life-year__item::before { content: ""; position: absolute; top: -3px; left: 0; right: 0; width: 60px; height: 60px; margin: auto; border-radius: 50%; background: #F7B53E; }
  .p-life-year__month,
  .p-life-year__item + .p-life-year__item .p-life-year__month { position: relative; display: block; width: auto; height: auto; margin: 0; padding: 0 0 3px 8px; border-radius: 0; background: none; font-weight: 300; line-height: 47px; text-align: center; } /* 現行: 1桁の月は left 4px+数字の右 3px → 8px 右へ */
  .p-life-year__item:nth-child(n+7):nth-child(-n+9) .p-life-year__month { padding-left: 6px; } /* 10〜12月(2桁)は left 2px */
  .p-life-year__month span { margin-right: 3px; font-weight: 400; }
  .p-life-year__events { margin-top: 50px; } /* 月の行 50px+50px=項目の上から 100px */
  /* 下端基準のイラストは現行の li の下余白 10px+行の隙間 1px 分だけ上 */
  .p-life-year__ill--sweetpotato { bottom: calc(4% + 11px); }
  .p-life-year__ill--halloween { bottom: 11px; }
  .p-life-year__ill--christmas { bottom: calc(6% + 11px); }
  .p-life-year__ill--setsubun { bottom: calc(1% + 11px); }
}
@media (min-width: 1200px) {
  /* 1200 以上は現行と同寸(イラストは px 指定) */
  .p-life-day__ill--hug { width: 140px; }
  .p-life-day__ill--nap { width: 190px; }
  .p-life-day__ill--play { width: 170px; }
  .p-life-day__ill--sing { width: 180px; }
  .p-life-day__ill--lunch { width: 140px; }
  .p-life-day__ill--goodbye { width: 170px; }
  .p-life-year__ill--walk { width: 140px; }
  .p-life-year__ill--tanabata { width: 180px; }
  .p-life-year__ill--lantern { width: 130px; }
  .p-life-year__ill--sweetpotato { width: 100px; }
  .p-life-year__ill--halloween { width: 170px; }
  .p-life-year__ill--christmas { width: 165px; }
  .p-life-year__ill--setsubun { width: 165px; }
}
/* 年齢の札: 現行と同じく「16px の行」の中に 24px(SP 16px)の札を inline で置く(札は行からはみ出す。行の高さは書体まかせ) */
.p-life-day { padding-top: 20px; }
.p-life-day__age,
.p-life-day__age + .p-life-day__age { justify-self: stretch; padding: 0; border-radius: 0; background: none; font-size: 16px; text-align: center; }
.p-life-day__age span { padding: 8px 12px; border-radius: 15px; background: #F19DB5; }
.p-life-day__body { margin-top: 40px; }
@media (min-width: 768px) {
  .p-life-day { padding-top: 30px; }
  .p-life-day__age span { padding: 13px 40px 12px; border-radius: 30px; font-size: 24px; }
  .p-life-day__body { margin-top: 30px; }
  .p-life-year__month,
  .p-life-year__item + .p-life-year__item .p-life-year__month,
  .p-life-year__month span { line-height: normal; }
}
@media (min-width: 768px) {
  .p-life-nav__list li { flex: 0 1 20vw; } /* 現行: ボタン幅は画面幅の 20%(1280 で 256px、1440 で 288px) */
}
.p-life-year { overflow-x: clip; } /* SP: 傾けた提灯のイラストが右端から 2px 出るので横だけ切る(上の木の飾りは切らない) */

/* ==========================================================================
   p-life の太さを現行の CSS 値そのままに(2026-09-26 指揮者承認: Noto Sans JP Light 追加。50-A-7 の暫定 300/400 を解除)
   現行の本文は Noto Sans JP Light 1書体だけの webfont で、700 はその擬似太字。Google Fonts の 700(本物の Bold)では現行より太くなるため、
   現行と同じ Light だけの書体(現行サーバーの OTF をこのページの文字だけに絞った fonts/NotoSansJP-Light-life.woff2。SIL OFL 1.1)を別名で持ち、
   CSS の太さは現行値(400 / 700)のまま、擬似太字も現行と同じ出方にする。文言を変えたら文字の追加が要る(無い字は Noto Sans JP で出る)
   ========================================================================== */
@font-face { font-family: "Noto Sans JP Light Live"; src: url(../fonts/NotoSansJP-Light-life.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
.p-life-nav,
.p-life-day__table,
.p-life-year__list,
.p-life-nav__link { font-weight: 400; }
.p-life-day__table,
.p-life-day__table tbody td,
.p-life-day__table tbody th { font-weight: 700; }
.p-life-year__month { font-weight: 400; }
.p-life-year__month span { font-weight: 700; }
.p-life-year__events { font-weight: 700; }
@media (min-width: 768px) {
  .p-life-nav__link { font-weight: 700; }
  .p-life-year__month,
  .p-life-year__item + .p-life-year__item .p-life-year__month { font-weight: 400; }
  .p-life-year__month span { font-weight: 700; }
}

/* トムテ: ページ末尾の投稿一覧(カテゴリー「子育て支援センター」)。見出し→一覧→一覧を見る */
.p-tomte-posts .news-list { width: 100%; }
.p-tomte-posts .c-more { text-align: right; }

/* ==========================================================================
   Worker D: トムテ投稿(news-tomte.html 一覧 / news-tomte-YYYYMM.html 記事。2026-09-26)
   取り込み元 = 社会福祉法人 愛育の森 広報ブログ。記事は p-post、一覧は p-news をそのまま使い、足りない所だけ
   ========================================================================== */
/* 記事の日付+カテゴリ札(取り込み元のブログは日付を表示するので、トムテ記事は画面に出す) */
.p-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; padding: 5px; }
.p-post-meta .news-detail-date { font-size: 14.4px; line-height: 24px; letter-spacing: 1px; }
.p-post-meta .tag { margin-left: 0; vertical-align: baseline; }
/* カテゴリ札「子育て支援センター」: 一覧の「お知らせ」札(.p-news .tag-news)と同じ四角い形。色は TOP と同じ tag-tomte のまま */
.p-news .tag-tomte,
.p-post-meta .tag-tomte { padding: 2px 7px; border-radius: 0; font-size: 12.8px; line-height: 14px; letter-spacing: 1px; }
/* 本文: 取り込み元どおり中央揃えの段落。カレンダー・チラシ画像は中央に置く */
.p-post-center { text-align: center; }
.p-post-figure img { margin-inline: auto; }
.p-post .news-detail-body > .p-post-figure + .p-post-figure { margin-top: var(--space-block); }

/* ==========================================================================
   Worker E: familia「ファミリアの持ち物」(旧 familia-belongings.webp の HTML 化。2026-09-26)
   クライアント提供の ChatGPT 版 HTML を移植。配色(水色の箱 #E6F5FC・二重線 #AF9C70・記名ラベルの枠 #BFDFEB)はその版の値を直書き
   見出しは下層の書式(大見出し c-heading--live / 小見出し p-familia-title / 箱の見出しは明朝・茶)、本文 --ink-soft、強調は tomte 案内と同じ
   イラストは元画像から切り出した個別ファイル(img/familia-item-*.webp。原寸)
   ========================================================================== */
/* 全体: SP 縦積み → 1200 以上で左(着替え・おむつ)420px+右(持ってくるもの・お昼寝) */
.p-familia-items { display: grid; gap: var(--space-block); }
.p-familia-items__sets,
.p-familia-items__carry { display: grid; gap: 24px; align-content: start; }

/* 水色の箱(着替えセット・おむつセット・お昼寝セット) */
.p-familia-items-set { border: 3px solid #AF9C70; border-radius: 3px; background: #E6F5FC; }
.p-familia-items-set__title { padding: 12px 16px; border-bottom: 8px double #AF9C70; font-family: var(--font-heading); font-size: 19.2px; font-weight: 700; line-height: 1.4; letter-spacing: 3px; color: var(--brand-brown); }
.p-familia-items-set__body { padding: 20px 16px; }
/* 記名例のラベル(白地・水色の枠) */
.p-familia-items-set__name { width: fit-content; max-width: 100%; margin: 0 auto 16px; padding: 6px 24px; border: 3px solid #BFDFEB; background: var(--white); font-size: 22px; font-weight: 700; line-height: 1.5; letter-spacing: .08em; text-align: center; color: var(--ink-soft); }
.p-familia-items-set__img { margin-inline: auto; }
/* 箱の中の品目(白い札を横に並べる) */
.p-familia-items-set__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; padding: 0; list-style: none; }
.p-familia-items-set__list li { padding: 2px 14px; border-radius: var(--radius-pill); background: var(--white); font-size: 15px; line-height: 1.7; letter-spacing: 1px; color: var(--ink-soft); }

/* 数量(2〜3組・5枚・2枚)と記名のお願いの強調 */
.p-familia-items-qty { font-weight: 700; color: var(--brand-brown); }
.p-familia-items-em { font-weight: 700; color: var(--brand-brown); text-decoration: underline; text-decoration-color: var(--accent-orange); text-decoration-thickness: 2px; text-underline-offset: .25em; }

/* 着替えの注記 */
.p-familia-items-note p { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-items-note .p-familia-items-note__lead { font-weight: 700; }

/* いっしょに持ってくるもの: 白いカード。SP は2列(余りは中央) */
.p-familia-items-carry > * + * { margin-top: calc(var(--space-block) / 2); }
.p-familia-items-cards { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; padding: 0; list-style: none; }
.p-familia-items-card { display: flex; flex: 0 1 calc((100% - 12px) / 2); flex-direction: column; align-items: center; padding: 16px 8px; border: 1px solid #D6EAF3; border-radius: var(--radius-sm); background: var(--white); text-align: center; }
.p-familia-items-card img { width: auto; height: 110px; margin-bottom: 8px; }
.p-familia-items-card__name { font-size: 16px; font-weight: 700; line-height: 1.5; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-items-card__text { margin-top: 4px; font-size: 14px; line-height: 1.6; letter-spacing: 1px; color: var(--ink-soft); }

/* お昼寝セット: 品名(太字)+説明 */
.p-familia-items-nap { display: grid; gap: 8px; margin-top: 16px; padding: 0; list-style: none; }
.p-familia-items-nap li { padding: 8px 14px; border-radius: var(--radius-sm); background: var(--white); font-size: 14px; line-height: 1.6; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-items-nap__name { display: block; font-size: 16px; font-weight: 700; }

@media (min-width: 768px) {
  /* 着替え・おむつの箱を横並び、注記はその下に全幅 */
  .p-familia-items__sets { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 24px 32px; }
  .p-familia-items-note { grid-column: 1 / -1; grid-row: 2; }
  .p-familia-items-set__title { padding: 14px 20px; font-size: 20.8px; }
  .p-familia-items-set__body { padding: 24px; }
  /* カードは3列(余りは中央) */
  .p-familia-items-cards { gap: 16px; }
  .p-familia-items-card { flex-basis: calc((100% - 32px) / 3); padding: 20px 10px; }
  .p-familia-items-card img { height: 130px; }
  /* お昼寝: イラスト左・品名右 */
  .p-familia-items-set--nap .p-familia-items-set__body { display: flex; align-items: center; gap: 24px; }
  .p-familia-items-set--nap .p-familia-items-set__img { flex: 0 1 391px; min-width: 0; margin: 0; }
  .p-familia-items-set--nap .p-familia-items-nap { flex: 1 1 200px; margin-top: 0; }
}
@media (min-width: 1200px) {
  .p-familia-items { grid-template-columns: 420px minmax(0, 1fr); gap: 48px; align-items: start; }
  /* 左列は縦積みに戻す(着替え → 注記 → おむつ) */
  .p-familia-items__sets { grid-template-columns: minmax(0, 1fr); }
  .p-familia-items-note { grid-column: auto; grid-row: auto; }
}

/* ==========================================================================
   Worker E: familia「一時保育 利用の仕方」(旧 familia-guide.webp の HTML 化。2026-09-26)
   クライアント提供の HTML 版を移植。黄緑の帯 #EAFAAD・空き状況の枠 #88C53D はその版の値を直書き
   見出しは下層の書式(大見出し c-heading--live / 小見出し p-familia-title)、手順の見出しは --accent-orange、注意書きは --alert、本文 --ink-soft
   イラストは元画像から切り出した個別ファイル(img/familia-step-*.webp・familia-status-face.webp。原寸)
   ========================================================================== */
/* ご利用の手順: 黄緑の帯 */
.p-familia-guide-flow { padding: 24px 16px; border-radius: var(--radius-lg); background: #EAFAAD; }
.p-familia-guide-flow__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.p-familia-guide-flow__panda { flex: none; width: 65px; }
.p-familia-guide-steps { display: grid; gap: 16px; margin-top: 16px; padding: 0; list-style: none; }

/* 手順カード: 白・角丸。見出し(番号の丸+文)とイラストは中央、本文は左揃え */
.p-familia-guide-step { min-width: 0; padding: 24px 20px; border-radius: var(--radius-lg); background: var(--white); }
.p-familia-guide-step__title { font-size: 18px; font-weight: 700; line-height: 1.6; letter-spacing: 1px; text-align: center; color: var(--accent-orange); word-break: auto-phrase; } /* auto-phrase: 「来舎」「お預かり」が1文字だけ次行に落ちないよう文節で折る */
.p-familia-guide-step__num { display: inline-grid; place-items: center; width: 1.6em; height: 1.6em; margin-right: 8px; vertical-align: 2px; border: 2px solid currentColor; border-radius: 50%; font-size: 15px; line-height: 1; letter-spacing: 0; }
.p-familia-guide-step__img { width: auto; height: 96px; margin: 16px auto; }
.p-familia-guide-step__text,
.p-familia-guide-step__caution { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-guide-step__caution { margin-top: 10px; font-size: 15px; line-height: 1.8; color: var(--alert); }

/* 今月の空き状況: 緑の枠+見出し帯 */
.p-familia-guide-status { overflow: hidden; border: 3px solid #88C53D; border-radius: var(--radius-lg); background: var(--white); }
.p-familia-guide-status__title { padding: 12px 20px; background: #88C53D; font-family: var(--font-heading); font-size: 19.2px; font-weight: 700; line-height: 1.4; letter-spacing: 3px; color: var(--brand-brown); }
.p-familia-guide-status__body { display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 16px 18px; align-items: center; padding: 24px 20px; }
.p-familia-guide-status__face { width: 66px; }
.p-familia-guide-status__text p { font-size: 16px; line-height: 1.9; letter-spacing: 1px; color: var(--ink-soft); }
.p-familia-guide-status__text .p-familia-guide-status__label { margin-bottom: 4px; font-size: 20px; font-weight: 700; line-height: 1.6; color: var(--brand-brown); }
.p-familia-guide-status__text .p-familia-guide-status__note { margin-top: 4px; font-size: 14px; }
.p-familia-guide-status__tel { grid-column: 1 / -1; justify-self: center; }

@media (min-width: 768px) {
  .p-familia-guide-flow { padding: 32px; }
  .p-familia-guide-flow__panda { width: 80px; }
  .p-familia-guide-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .p-familia-guide-step { padding: 28px 26px; }
  .p-familia-guide-status__title { padding: 14px 30px; font-size: 20.8px; }
  .p-familia-guide-status__body { grid-template-columns: 105px minmax(0, 1fr); gap: 20px 28px; padding: 28px 32px; }
  .p-familia-guide-status__face { width: 105px; }
  .p-familia-guide-status__text .p-familia-guide-status__label { font-size: 24px; }
}
@media (min-width: 1200px) {
  .p-familia-guide-flow { padding: 40px; }
  .p-familia-guide-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
  .p-familia-guide-step { padding: 32px 30px; }
  /* 空き状況: 顔 | 文 | 電話ボタン を1行に */
  .p-familia-guide-status__body { grid-template-columns: 105px minmax(0, 1fr) auto; padding: 32px 40px; }
  .p-familia-guide-status__tel { grid-column: auto; }
}

/* --------------------------------------------------------------------------
   SP は本文を左寄せ(2026-09-27 クライアント指示「スマホ時のテキストは中央寄せではなく左寄せ」)。
   768以上は現行どおり中央。見出し・名札・ボタンは中央のまま
   -------------------------------------------------------------------------- */
.p-top-parents .l-container > p { text-align: left; }
.p-top-partner .c-text { text-align: left; }
.p-about-policy__list { text-align: left; }
.p-admission-hours { text-align: left; }
.p-contact-card { padding-inline: 15px; text-align: left; }
@media (min-width: 768px) {
  .p-top-parents .l-container > p,
  .p-top-partner .c-text,
  .p-about-policy__list,
  .p-admission-hours,
  .p-contact-card { text-align: center; }
  .p-contact-card { padding-inline: 0; }
}
