/* ============================================================
   サイト共通スタイル
   役割：PC基準のすべてのスタイル
   スマホ対応は末尾の @media (max-width: 991px) にまとめる
   ============================================================ */

/* ------------------------------------------------------------
   フォント定義
   ------------------------------------------------------------ */
@font-face {
  font-family: "sp-setofont";
  src: url("sp-setofont.woff") format("woff");
  font-display: swap;
}
@font-face {
  font-family: "KFhimaji";
  src: url("KFhimaji.woff2") format("woff2");
  font-display: swap;
}
@font-face {
  font-family: "KTEGAKI";
  src: url("KTEGAKI.woff2") format("woff2");
  font-display: swap;
}

/* ------------------------------------------------------------
   ベース
   ------------------------------------------------------------ */
html, body {
  position: relative;
  height: auto;
  min-height: 100%;
}

body {
  font-family: "KTEGAKI", "KFhimaji";
  font-size: 19px;
  color: #000;
  width: 100%;
  margin: 0;
  padding: 0;
  min-width: 0;
  overflow-y: auto;
}

h1 {
  font-size: 0.9em;
}

h2 {
  color: #232323;
  font-size: 2rem;
  font-weight: bold;
}

body.home h3 {
  color: #232323;
  font-size: 1.5rem;
  font-weight: bold;
}

body.home h4 {
  font-size: 1.2rem;
  font-weight: bold;
}

/* サブページ（施設ページ等）の見出し */
body:not(.home) h3 {
  font-size: 1.5rem; /* トップページh3と同サイズ */
  line-height: 1em;
  font-weight: bold;
  color: #eb5d00;
  padding: 15px 60px 15px 10px; /* 右60px=風船部分への文字かぶり防止 */
  /* 風船はline_hand1.png(980x51px)自体の右端に描かれている。
     旧指定の left + repeat-x では右端の風船が常に切れていたため、
     右端基準・繰り返しなしに変更（SPでも右側=線+風船が見える） */
  background: url(https://minna-ns.co.jp/images/common/line_hand1.png) right bottom no-repeat;
}

body:not(.home) h4 {
  font-size: 1.4rem; /* 本文19px < h4 22.4px < h3 24px の階段 */
  line-height: 1em;
  font-weight: bold;
  color: #eb5d00;
  padding: 30px 0;
  text-align: center;
  /* 画像がh4幅(980px)より大きく両端の縦線が切れていたため、
     箱全体にフィットさせて左右の端まで表示する */
  background: url(https://minna-ns.co.jp/images/common/sub_title2.png) center center no-repeat;
  background-size: 100% 100%;
}

p {
  color: #232323;
}

hr {
  border-top: 1px dashed #ccc;
  border-bottom: 1px dashed #eee;
  text-align: center;
  margin: 0 auto 50px;
}

img {
  max-width: 100%;
  height: auto;
}

/* ------------------------------------------------------------
   レイアウト共通
   ------------------------------------------------------------ */
.wrapper {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  clear: both;
  float: none;
}

.wrapper2 {
  width: 1140px;
  margin: 0 auto;
  clear: both;
  float: none;
}

.inner {
  position: relative;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  clear: both;
  float: none;
}

.section {
  width: 100%;
}

.section-content {
  margin: 0 auto;
  padding: 40px 60px;
  text-align: center;
}

section {
  padding: 60px 0;
}

.row {
  display: flex;
}

.display-flex {
  display: flex;
  justify-content: center;
}

.text-center {
  text-align: center;
}

.w-980 {
  width: 980px;
}

.w-900 {
  width: 800px;
  margin: 0 auto;
}

.pc-display {
  display: block;
}

.sp-display {
  display: none;
}

/* お知らせセクションの巨大星(背景演出)を復元：
   旧フルサイズ版Bootstrapの .w-100 { width:100% } に依存していたが、
   軽量ローカル版Bootstrapへの切替で定義が失われたため自前で再定義。
   スマホでは末尾@media内の .w-100 { width:80px } が後勝ちで優先(従来通り) */
.w-100 {
  width: 100% !important;
}

/* ------------------------------------------------------------
   ヘッダー
   ------------------------------------------------------------ */
.header {
  background: #daf2bd;
  padding: 0 30px;
  width: 100%;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  height: 115px;
}

.header a {
  color: #333;
  text-decoration: none;
}

.header_top {
  padding-top: 70px;
  background: #daf2bd;
}

.gnavi {
  margin-top: 30px;
  display: flex;
  justify-content: flex-end;
  width: 60%;
  float: right;
  list-style: none;
}

.gnavi li {
  border-left: 1px solid #aaa;
}

.gnavi a {
  color: #333;
  text-decoration: none;
}

.gnavi span {
  display: block;
  text-align: center;
  padding: 0 10px;
  font-weight: bold;
  font-size: 17px;
}

/* ------------------------------------------------------------
   lotusページ
   ------------------------------------------------------------ */
/* h2タイトル画像 */
h2.sub_ttl {
  font-size: 0;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: block;
  width: 100%;
}

h2.sub_ttl img {
  width: 100%;
  height: auto;
  display: block;
}

/* セクション背景色 */
.section-green {
  background: #daf2bd;
}

/* コンテンツボックス */
.commentBox {
  background: #fbfbf0;
  padding: 30px;
  line-height: 2em;
  font-weight: bold;
}

.commentBox2 {
  background: #ffffff;
  padding: 30px;
  line-height: 2em;
  font-weight: bold;
}

.note {
  background: url(https://minna-ns.co.jp/images/note.jpg) left top repeat-x #ffffff;
  padding: 80px 0 40px;
  width: 100%;
}

.lineBox1 {
  border: 1px solid #cccccc;
  background: #ffffff;
}

.line1 {
  border-bottom: 1px dashed #cccccc;
  padding: 0 0 15px 0;
}

.line2 {
  background: url(https://minna-ns.co.jp/images/common/line_dot.png) left center repeat-x;
}

.line3 {
  border-bottom: 1px dotted #cccccc;
  padding: 20px 15px;
}

.otherBox {
  border: 3px solid #eb5d00;
  border-radius: 10px;
  background: #fbfbf0;
  padding: 20px;
}

.otherBox2 {
  line-height: 1.6em;
  font-size: 1.1em;
}

.otherBox3 {
  border: 3px solid #eb5d00;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
}

.otherBox3 a {
  color: #06c;
  font-weight: bold;
  text-decoration: underline;
}

.otherBox3 a:hover {
  opacity: 0.5;
  text-decoration: none;
}

.aboutCmt {
  background: url(https://minna-ns.co.jp/images/about/aboutCmt.png) center center no-repeat;
  padding: 80px 0;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.5em;
}

.tayoriTitle {
  background: #f60;
  color: #ffffff;
  font-weight: bold;
}

h3.gochic,
.gochic td {
  font-family: "游ゴシック", YuGothic, "游ゴシック体", "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}

/* 一日の過ごし方：時刻バッジ */
.scheBox-time span {
  padding: 3px 5px;
  background: #a0c910;
  color: #ffffff;
  text-align: center;
  font-size: 0.8em;
  margin-right: 10px;
}

/* 一日の過ごし方：タイトル（バッジ装飾を打ち消してオレンジ太字に） */
.scheBox-time span.scheTitle {
  padding: 0;
  background: none;
  color: #eb5d00;
  font-size: 1.1em; /* h4(1.4rem=22.4px)を超えないサイズに調整 */
  font-weight: bold;
  margin-right: 0;
}

/* 補足用の小さめテキスト */
.txtSmall {
  font-size: 0.8em;
  line-height: 1.7;
}

.schedule1 {
  background: #e1f0ad;
  border-radius: 5px;
  padding: 30px;
  font-weight: bold;
}

.schedule2 {
  background: #fedcdc;
  border-radius: 5px;
  padding: 30px;
  font-weight: bold;
}

.fcRed {
  color: #c00;
}

/* ------------------------------------------------------------
   トップページ：タイトル・サブタイトル
   ------------------------------------------------------------ */
.title {
  font-size: 40px;
  padding-bottom: 35px;
  text-align: center;
}

.sub_title {
  font-size: 26px;
}

/* セクション見出しの統一(トップ:グループについて・お知らせ) */
.sec03 h3.text-center,
.sec-news h3.text-center {
  font-size: 40px;
  margin-bottom: 15px;
}

/* お知らせリスト */
.news-item {
  display: flex;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid #ddd;
}

.news-date {
  flex: 0 0 110px;
  font-size: 16px;
  color: #666;
}

.news-title {
  flex: 1;
  font-size: 20px;
  color: #333;
  text-decoration: none;
}

.cont01 {
  font-size: 1.1em;
  line-height: 2.2em;
}

.infoNote {
  background: #ffffff;
  padding: 40px;
  font-size: 1.05em;
  font-weight: bold;
}

.infoNote .date {
  color: #eb5d00;
}

.info {
  background: url(https://minna-ns.co.jp/images/illustBg.jpg) center top no-repeat;
  padding: 130px 0 100px;
  width: 100%;
}

.topTxt {
  font-size: 0.9em;
  line-height: 1.7em;
}

/* ------------------------------------------------------------
   トップページ：スワイパー
   ------------------------------------------------------------ */
.swiper-container {
  width: 100%;
  height: 100%;
}

.swiper-container {
  height: calc(100vh - 115px);
  overflow: hidden;
}

.swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper-container02 {
  position: relative;
  width: 823px;
  height: 100%;
  box-sizing: border-box;
  overflow: hidden;
  margin: 0 auto;
  border-radius: 66px;
  padding-bottom: 0;
}

.swiper-container02 .swiper-slide {
  background: none;
  text-align: center;
  font-size: 18px;
  border-radius: 30px;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper-container02 .swiper-pagination {
  position: absolute;
}

.swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: #fff;
}

.swiper-container02 .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: #E55F00;
}

.section01 .swiper-pagination-bullet {
  opacity: 0.5;
}

.section01 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: #E55F00;
  opacity: 1;
}

.section01 .swiper-pagination-bullet-active {
  background: none;
  background: url(bullet.svg) no-repeat center center !important;
  width: 60px;
  height: 60px;
  margin-left: -20px !important;
}

.section01 .swiper-container-horizontal > .swiper-pagination-bullets,
.section01 .swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: inherit;
  top: 260px;
  left: 50px; /* 右側の採用情報・園児募集サークルとの重なり回避のため左へ移動 */
  right: auto;
  width: 30px;
}

.section01 .swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  background: #E36425;
  padding: 10px;
}

.section01 .swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: inherit;
  bottom: 20px;
}

.progress-outer {
  position: absolute;
  right: 10px;
  top: 230px;
  height: 200px;
  width: 5px;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.5);
}

.progress-outer02 {
  position: absolute;
  right: 10px;
  bottom: 150px;
  height: 150px;
  width: 5px;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.5);
}

.swiper-hero-progress {
  width: 5px;
  height: 0;
  background: #E55F00;
  z-index: 5;
}

.swiper-hero-progress02 {
  width: 5px;
  background: #E55F00;
  z-index: 5;
}

/* スライドアニメーション */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.swiper-slide-active .ttl {
  animation-name: fade-in;
  animation-duration: 2s;
  animation-delay: 1s;
  animation-fill-mode: both;
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
  animation: sk-scaleout 2s linear 0s 1 normal both;
  filter: blur(5px);
}

@keyframes sk-scaleout {
  0%   { filter: blur(5px); }
  100% { filter: blur(0); }
}

@keyframes zoomUp {
  0%   { transform: scale(1); }
  100% { transform: scale(1.15); }
}

/* ------------------------------------------------------------
   トップページ：ローディング
   ------------------------------------------------------------ */
#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #fff6cc;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  display: flex;
  justify-content: center;
  align-items: center;
}

.spinner {
  top: 50%;
  width: 100px;
  margin: 0 auto;
}

.spinner img {
  margin-left: -100px;
  margin-top: -50px;
}

.loaded {
  opacity: 0;
  visibility: hidden;
}

/* ------------------------------------------------------------
   トップページ：サークルナビ
   ------------------------------------------------------------ */
.circle-1,
.circle-2,
.circle-3,
.circle-4 {
  color: #fff;
  padding: 5%;
  box-sizing: border-box;
  width: 300px;
  height: 300px;
  margin: 0 10px;
  mix-blend-mode: multiply;
  position: relative;
}

.circle-5 {
  width: 115px;
  height: 115px;
  display: none;
}

.circle-2,
.circle-3 {
  margin-top: 50px;
}

.circle-1 p,
.circle-2 p,
.circle-3 p,
.circle-4 p,
.circle-5 p {
  visibility: hidden;
}

.circle-1 h2,
.circle-2 h2,
.circle-3 h2,
.circle-4 h2,
.circle-5 h2 {
  margin-bottom: 0;
}

.circle-1 h2 i,
.circle-2 h2 i,
.circle-3 h2 i,
.circle-4 h2 i,
.circle-5 h2 i {
  margin-left: 5px;
  margin-bottom: 0;
}

.circle-5 i {
  margin: 0 auto;
}

.circle-1 {
  border: 10px solid #79AB70;
  background: url("img/men01.jpg") no-repeat center center;
  background-size: 150%;
  border-radius: 50% 50% 50% 70% / 50% 50% 70% 60%;
}

.circle-1 i { color: #79AB70; display: inline; margin: 0 auto; }

.circle-2 {
  border: 10px solid #F4A721;
  background: url("img/men02.jpg") no-repeat center center;
  background-size: 120%;
  border-radius: 80% 30% 50% 50% / 50%;
}

.circle-2 i { color: #F4A721; }

.circle-3 {
  border: 10px solid #88B6C9;
  background: url("img/men03.jpg") no-repeat center center;
  background-size: 150%;
  border-radius: 40% 40% 50% 40% / 30% 50% 50% 50%;
}

.circle-3 i { color: #88B6C9; }

.circle-4 {
  border: 10px solid #F3ABCA;
  background: url("img/men04.jpg") no-repeat center center;
  background-size: 100%;
  border-radius: 50% 50% 50% 70% / 50% 50% 70% 60%;
}

.circle-4 i { color: #F3ABCA; }

.circle-5 {
  border: 10px solid #E55F00;
  background: #E55F00;
  background-size: 150%;
  overflow: hidden;
  border-radius: 50% 50% 50% 70% / 50% 50% 70% 60%;
  color: #fff;
}

/* .nav（旧 .nav）*/
.circle-1 .nav,
.circle-2 .nav,
.circle-3 .nav,
.circle-4 .nav {
  padding: 10px;
  background: #FFFCC6;
}

.circle-1 .nav,
.circle-2 .nav,
.circle-3 .nav,
.circle-4 .nav {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #FFFCC6;
  width: 120px;
  height: 120px;
  border-radius: 60px;
}

/* .navi（新） */
.circle-1 .navi,
.circle-2 .navi,
.circle-3 .navi,
.circle-4 .navi {
  position: absolute;
  bottom: 0;
  right: 0;
  background: #FFFCC6;
  width: 120px;
  height: 120px;
  border-radius: 60px;
}

.circle-5 .nav h2,
.circle-5 .navi h2 {
  padding-top: 23px;
  font-size: 23px;
  text-align: center;
  color: #fff;
}

.circle-1 .nav img {
  width: 100px;
  padding-top: 30px;
  padding-left: 10px;
}

.circle-2 .nav img {
  width: 60px;
  padding-top: 15px;
  padding-left: 30px;
}

.circle-3 .nav img,
.circle-4 .nav img {
  width: 80px;
  padding-top: 20px;
  padding-left: 20px;
}

.circle-5 .nav img {
  width: 80px;
  padding-top: 20px;
  padding-left: 20px;
}

.circle-1 .navi img {
  width: 100px;
  padding-top: 10px;
  padding-left: 10px;
  margin-left: 18px;
}

.circle-2 .navi img {
  width: 85px;
  padding-top: 15px;
  padding-left: 30px;
}

.circle-3 .navi img,
.circle-4 .navi img {
  width: 80px;
  padding-top: 10px;
  padding-left: 20px;
  margin-left: 10px;
}

.sec03 .circle-1 h2,
.sec03 .circle-2 h2,
.sec03 .circle-3 h2,
.sec03 .circle-4 h2 {
  color: #232323;
  position: absolute;
  bottom: -105px;
  width: auto;
  white-space: nowrap;
  font-size: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
}

/* ------------------------------------------------------------
   トップページ：各セクション
   ------------------------------------------------------------ */
.section01 {
  position: relative;
}

.bg-white {
  background: #fff;
  padding: 50px 10px;
  font-size: 20px;
  width: 800px; /* お知らせの白枠(.bg-white02)と幅を統一 */
  margin: 0 auto;
  margin-top: -480px;
  margin-bottom: 50px;
  box-sizing: border-box;
}

.bg-white02 {
  background: #fff;
  width: 800px;
  margin: 0 auto;
  padding: 50px;
  margin-top: 50px;
  position: relative;
  font-size: 20px;
  padding-bottom: 120px;
}

.p-00 .row {
  display: flex !important;
}

.p-00 .col-md-6 {
  width: 50%;
  padding: 15px;
}

/* フッター Googleマップ iframe をレスポンシブ化 */
.p-00 .box iframe {
  width: 100%;
  max-width: 100%;
  border: 0;
}

.box_in {
  font-size: 18px;
}

.box_in li {
  color: #7F4726;
  font-weight: bold;
  list-style: none;
  font-size: 25px;
  margin: 10px;
}

.box_in ul {
  padding: 0;
}

.cotainer {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

h2.ttl {
  left: 50px;
  position: absolute;
  z-index: 999;
  text-align: left;
  margin: 0;
}

h2.ttl span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 20%;
  flex-flow: column;
  vertical-align: top;
  background: #DAF2BD;
  color: #098257;
  padding: 0.1rem 0.5rem;
  margin: 0.5rem;
  font-size: 2.5rem;
}

h2.ttl span:nth-child(2n) {
  background: #fff;
}

h2.ttl .even span:nth-child(2n+1) {
  background: #fff;
}

h2.ttl .even span:nth-child(2n) {
  background: #DAF2BD;
}

h3 span {
  background: linear-gradient(transparent 60%, #ff6 60%);
}

/* ------------------------------------------------------------
   ボタン
   ------------------------------------------------------------ */
.button014 a {
  background: rgba(255, 255, 255, 0.9);
  position: relative;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  margin: 0 auto;
  max-width: 300px;
  padding: 22px 33px;
  color: #313131;
  transition: 0.3s ease-in-out;
  font-weight: 500;
}

.button014 a::before {
  content: '';
  position: absolute;
  top: -13px;
  left: -15px;
  width: calc(100% - -4px);
  height: calc(100% - -4px);
  border: 3px solid #F9EB8B;
  transition: 0.2s;
}

.button014 a::after {
  content: '';
  width: 11px;
  height: 11px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: rotate(45deg);
}

.button014 a:hover::before {
  top: 0;
  left: 0;
}

.button014 a:hover {
  text-decoration: none;
  background-color: #F9EB8B;
}

.btn-more {
  display: inline-block;
  background-color: #eb5d00;
  color: #fff;
  font-weight: bold;
  padding: 12px 32px;
  border-radius: 50px;
  transition: all 0.3s ease;
  text-decoration: none;
}

.btn-more:hover {
  background-color: #d45000;
  color: #fff;
  transform: translateY(-2px);
}

/* ------------------------------------------------------------
   テーブル共通
   ------------------------------------------------------------ */
body table {
  letter-spacing: -0.1rem;
}

body table.gothic td {
  font-family: "游ゴシック", YuGothic, "游ゴシック体", "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-weight: bold;
  font-size: 15px;
  padding: 15px;
}

body table td,
body table th {
  padding: 0;
}

/* ------------------------------------------------------------
   ブログ
   ------------------------------------------------------------ */
.blogWrap {
  font-family: "sp-setofont";
  width: 100%;
  max-width: 980px;
  margin: 30px auto 0; /* タイトル画像下の点線hr削除に伴う余白確保 */
  display: flex; /* float廃止。flex化で追従サイドバー(sticky)を安定動作させる */
  justify-content: space-between;
}

/* ※クラス名は互換のため Left/Right のまま。実配置は「記事＝左、ナビ＝右」 */
.blogLeftCol {
  width: 250px;
  flex: 0 0 250px;
  order: 2; /* ナビを右側へ（記事優先のレイアウト） */
}

.blogLeftBox h3 {
  font-size: 1.1em;
}

.blogLeftBox {
  padding: 0;
  position: sticky; /* スクロールに追従する右ナビ */
  top: 20px;
}

/* 左カラムのリスト項目（最近の投稿など） */
.blogLeftBox li {
  line-height: 1.6;
}

.blogLeftBox li + li {
  margin-top: 6px;
}

/* ウィジェット同士（最上位li間）の縦間隔は一律30pxに統一
   ※リスト項目間の6pxと同詳細度のため、必ずこの位置（後）に置くこと */
.blogLeftBox > li + li {
  margin-top: 30px;
}

/* 最近の投稿などのリンク：長いタイトルは1行で「…」省略 */
.blogLeftBox li a {
  display: block;
  font-size: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 既読リンクはグレーに（未読との区別） */
.blogLeftBox li a:visited {
  color: #8a8a8a;
}

.blogRightCol {
  width: 700px;
  flex: 0 0 700px;
  order: 1; /* 記事本体を左側へ（視線の起点に最新記事を置く） */
}

.blogArticle {
  /* 記事の区切りに手書き風点線（ヘッダー・lotusページと同じ素材で統一感） */
  padding-bottom: 10px;
  margin-bottom: 30px;
  background: url(https://minna-ns.co.jp/images/common/line_dot.png) left bottom repeat-x;
}

.blogArticle h2 {
  display: block;
  background: #c63;
  color: #ffffff;
  font-weight: bold;
  padding: 0; /* 余白はリンク(a)側に持たせる。二重paddingで帯が太るのを解消 */
  margin-bottom: 10px;
  border-radius: 10px; /* 角丸でサイトのやわらかい世界観に合わせる */
  overflow: hidden;
}

.blogArticle h2 a {
  display: block;
  background: #c63;
  color: #ffffff;
  font-weight: bold;
  padding: 12px 18px;
  border-radius: 10px;
  text-decoration: none;
  transition: background .2s;
}

/* 既読の記事はくすんだ色に（未読＝鮮やか、既読＝落ち着いた色） */
.blogArticle h2 a:visited {
  background-color: #bd9075;
}

/* タイトル帯がリンクだと分かるホバー演出（明るいオレンジへ）
   ※:visitedより後に置き、既読でもホバーは効かせる */
.blogArticle h2 a:hover {
  background: #eb5d00;
  color: #ffffff;
}

/* 個別記事のタイトル帯：リンクが無くh2自体に余白が必要
   （一覧は余白をa側に持たせているため、個別用に上書き） */
.blogArticle h2.blogSingleTitle {
  padding: 12px 18px;
}

/* NEWバッジ（投稿3日以内） */
.blogNew {
  display: inline-block;
  background: #ffd84d;
  color: #7a4a12;
  font-size: 11px;
  font-weight: bold;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 10px;
  margin-left: 10px;
  vertical-align: 2px;
}

/* 一覧サムネイル（記事の最初の写真） */
.blogSummary {
  overflow: hidden;
}

.blogThumb {
  float: left;
  display: block;
  width: 150px;
  height: 110px;
  margin: 0 15px 5px 0;
  border-radius: 8px;
  overflow: hidden;
}

.blogThumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.blogDate {
  text-align: right;
  font-size: 13px;
  margin-bottom: 15px;
}

/* 「続きを読む」ボタン */
.blogMore {
  text-align: right;
  margin: 10px 0 20px;
}

.blogMore a {
  display: inline-block;
  background: #c63;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  padding: 9px 18px;
  border-radius: 18px;
  text-decoration: none;
}

.blogMore a:hover {
  opacity: .8;
}

.blogText {
  font-size: 0.9em;
}

.blogCate {
  background: #f7f7f7;
  padding: 5px 10px;
  font-weight: bold;
  font-size: 0.8em;
  margin: 15px 0;
  text-align: right;
}

.blogLeftCol li {
  list-style: none;
}

.blog-list__item {
  display: block;
  text-decoration: none;
  margin-bottom: 20px;
  box-sizing: border-box;
  padding: 10px;
  max-width: 33%;
}

.blog-card {
  background-color: #fff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.blog-card:hover {
  transform: translateY(-3px);
}

.blog-card__image-wrap img {
  width: 100%;
  height: auto;
  display: block;
}

.blog-card__content {
  padding: 1rem;
}

.blog-card__date {
  font-size: 0.9rem;
  color: #777;
  margin-bottom: 0.5rem;
}

.blog-card__title {
  font-size: 1.1rem;
  font-weight: bold;
  color: #333;
}

.blog-list .row {
  row-gap: 20px;
}

/* ------------------------------------------------------------
   カレンダー
   ------------------------------------------------------------ */
#wp-calendar {
  width: 100%;
  table-layout: fixed; /* 表がカラム幅250pxからはみ出し、見出し線と右端がずれていたのを解消 */
}

#wp-calendar caption {
  caption-side: top; /* bootstrapのcaption-side:bottomで月名が下に落ちていたのを上へ */
  text-align: center;
  color: #333;
  font-size: 14px;
  font-weight: bold;
  padding: 0;
  margin: 0 0 8px;
}

#wp-calendar thead {
  font-size: 10px;
}

#wp-calendar thead th {
  padding: 6px 0; /* 旧padding-bottom:10pxで文字が上寄りだったのを上下均等に */
  text-align: center;
  vertical-align: middle;
  background: #eb5d00;
  color: #fff;
  border: 1px solid #fff;
  font-size: 15px;
}

/* 土曜・日曜の曜日ヘッダーを色分け（土=青、日=赤の慣習に合わせる）
   ※日曜の赤は平日のオレンジ#eb5d00と区別がつく濃さにすること */
#wp-calendar thead th:nth-child(6) {
  background: #4a90d9;
}

#wp-calendar thead th:nth-child(7) {
  background: #d64545;
}

#wp-calendar tbody {
  color: #aaa;
}

#wp-calendar tbody td {
  background: #f5f5f5;
  border: 1px solid #fff;
  text-align: center;
  vertical-align: middle;
  padding: 8px 0;
  font-size: 14px; /* リンク有無で数字サイズが揃うよう統一 */
}

/* カレンダー内のリンクは「最近の投稿」用の装飾(.blogLeftBox li a)から除外 */
#wp-calendar a {
  display: inline;
  font-size: inherit;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

#wp-calendar tbody td:hover {
  background: #fff;
}

#wp-calendar tbody .pad {
  background: none;
}

.widget_calendar {
  float: none; /* 旧float:leftで「«5月」や次のウィジェットが回り込んでいたのを解除 */
  width: 100%;
}

/* 月別アーカイブのプルダウンを中央寄せ。文字サイズは右メニューの他要素(14px)に統一 */
.blogLeftCol select {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  font-size: 14px;
  color: #333;
  padding: 4px 6px;
  border: 1px solid #ddd;
  border-radius: 6px;
}

/* 検索ボックス（標準ウィジェット。新旧どちらのマークアップにも対応）
   旧型は form > div > input の構造のため、内側のdivにも横並びを指定 */
.blogLeftBox .search-form,
.blogLeftBox #searchform,
.blogLeftBox #searchform > div {
  display: flex;
  gap: 6px;
  width: 100%;
}

.blogLeftBox .search-field,
.blogLeftBox #s {
  flex: 1;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #ddd;
  border-radius: 6px;
  box-sizing: border-box;
  font-size: 14px;
}

.blogLeftBox .search-submit,
.blogLeftBox #searchsubmit {
  background: #c63;
  color: #fff;
  border: 0;
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
}

.blogLeftBox .search-submit:hover,
.blogLeftBox #searchsubmit:hover {
  opacity: .8;
}

/* 検索結果ページの見出し（「○○」の検索結果） */
.blogSearchTitle {
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  color: #c63;
  margin: 25px 0 0;
}

/* カレンダー下の前月・翌月ナビ（« 5月 など） */
.wp-calendar-nav {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  margin: 6px 0 0; /* ウィジェット間の余白は.blogLeftBox > li + liに一本化 */
}

/* スクリーンリーダー用テキストを視覚的に隠す
   （未定義のため「月別アーカイブ」ラベルが二重表示されていた） */
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

.widgettitle {
  font-size: 1em;
  line-height: 1em;
  font-weight: bold;
  color: #eb5d00;
  padding: 15px 0 15px 10px;
  background: url(https://minna-ns.co.jp/images/common/line_hand1.png) left bottom repeat-x;
}

.wp-pagenavi {
  text-align: center;
  margin: 20px 0 10px;
}

.wp-pagenavi a,
.wp-pagenavi span {
  display: inline-block;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  line-height: 1; /* »だけ別フォント指定(yu-gochicのスペルミス)で高さがずれていたのを統一 */
  padding: 9px 12px;
  margin: 3px 2px;
  background: #c63;
  color: #fff;
  border: 0; /* プラグイン標準CSSの枠線(現在ページが黒枠)を打ち消し */
  border-radius: 6px;
}

.wp-pagenavi a:hover {
  opacity: .8;
}

/* 現在ページ：枠線ではなく色で区別 */
.wp-pagenavi span.current {
  background: #eb5d00;
  border: 0;
}

/* 「1 / 183」などの総ページ表示：箱にせず控えめなテキストに */
.wp-pagenavi span.pages {
  background: none;
  color: #888;
  border: 0;
  font-weight: normal;
}

/* 個別記事下の前後ナビ：「« 前の記事｜一覧へ｜次の記事 »」を横一列に
   （前後の記事が無い場合も空の枠を保ち、ボタン位置がずれないようにする） */
.blogPostNav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.blogPostNav > div {
  flex: 1;
}

.blogPostNav .alignleft {
  text-align: left;
}

.blogPostNav .center {
  text-align: center;
}

.blogPostNav .alignright {
  text-align: right;
}

/* ------------------------------------------------------------
   お問い合わせフォーム（旧:固定ページ内のインラインstyleから移設）
   ------------------------------------------------------------ */
.contactInput {
  max-width: 980px;
  margin: 0 auto;
}

.contactForm table th,
.contactForm table td {
  padding: 15px 25px;
  display: table-cell;
  border-right: 1px solid #e2e0de;
  border-bottom: 1px solid #e2e0de;
  font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}

.contactForm table th {
  background: #f7f7f7;
}

/* 旧:#contact table th（フォーム側のidに依存していたためクラス側にも適用） */
#contact table th,
.contactInput table th {
  min-width: 300px;
}

/* 旧:.main table input（.mainラッパー廃止に伴いスコープを.contactInputへ変更） */
.contactInput table input,
.contactInput table textarea {
  position: relative;
  opacity: 1;
  max-width: 500px;
}

.btnArea {
  margin: 20px 0;
  text-align: center;
}

.btnArea input {
  background: #333;
  color: #fff;
  padding: 15px 30px;
  border: 0;
  cursor: pointer; /* マウスオーバーで指マークにし、押せることを伝える */
  transition: opacity .2s;
}

.btnArea input:hover {
  opacity: .75;
}

/* 旧:.btn（グローバルだとBootstrapの.btnと衝突するためフォーム内に限定） */
.contactInput .btn {
  background: #333;
  color: #fff;
  padding: 15px;
}

.require {
  color: #ad0c0c;
  font-weight: bold;
  font-size: 85%;
}

.contactNotice {
  max-width: 980px;
  margin: 40px auto 0;
}

/* フォームのステップ見出し（送信内容の確認／送信完了） */
.contactStep {
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  color: #c63;
  margin: 25px 0 0;
}

/* 完了ページの「トップへ戻る」ボタン */
.returnTop {
  display: inline-block;
  background: #c63;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  padding: 12px 30px;
  border-radius: 22px;
  text-decoration: none;
}

.returnTop:hover {
  opacity: .8;
  color: #fff;
}

#recent-posts-2 ul {
  padding: 0;
}

/* ------------------------------------------------------------
   その他
   ------------------------------------------------------------ */
.daily-timeline__time {
  background-color: #eb5d00;
  color: white;
  border-radius: 20px;
  display: inline-block;
  padding: 0 18px;
  font-size: 16px;
}

.daily-timeline__desc {
  font-size: 18px;
}

.daily-timeline__text {
  padding: 0 50px;
}

.single-kids__content {
  padding: 50px;
}

.main {
  padding: 15px;
}

.main section {
  padding-top: 0;
}

/* PC専用表示制御 */
@media screen and (min-width: 992px) {
  .sp-header-top {
    display: none;
  }
  .section01 {
    padding-top: 0;
  }

  /* トップページヘッダー：ロゴとナビを上下中央揃え+上下余白 */
  .section01 .header.pc-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .section01 .header.pc-display > a img {
    margin-top: 0 !important;
    max-width: none !important; /* インラインのmax-width:60%がflex内で誤作動しロゴが縮むのを防止 */
  }

  .section01 .header.pc-display .gnavi {
    margin: 0; /* bootstrapの ul{margin-bottom:1rem} を打ち消す */
    float: none;
  }

  /* aをブロック化：ラベル下に生じる見えない空行を除去(ナビ上寄り対策) */
  .section01 .header.pc-display .gnavi a,
  .sp-header .gnavi a {
    display: block;
  }

  /* 下層ページヘッダー：ロゴとナビを上下中央揃え */
  .sp-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .sp-header > a img {
    margin-top: 0 !important;
    max-width: none !important; /* インラインのmax-width:50%がflex内で誤作動しロゴが縮むのを防止 */
  }

  .sp-header .gnavi {
    margin: 0; /* bootstrapの ul{margin-bottom:1rem} を打ち消す */
    float: none;
  }

  /* トップ・下層ページでヘッダー帯の高さ・余白を統一(header.phpのインラインstyleを上書き) */
  .section01 .header.pc-display,
  .sp-header {
    height: 115px !important;
    padding: 10px 30px !important;
  }

  /* サブページ：固定ヘッダー(115px)の下に最初のセクションが潜らないようオフセット。
     ※:first-of-typeはヘッダーdivが兄弟にいるため不発 → 専用クラスで指定 */
  body:not(.home) .lotus-section--first {
    margin-top: 115px;
  }
}

/* ========================================
   lotusページ PC スタイル
   ======================================== */

/* セクション */
.lotus-section {
  padding: 40px 0;
  background: #ffffff;
}

/* 交互配色の2色目（旧:薄緑 #daf2bd → トップ「グループについて」と同じクリーム色） */
.lotus-section--green {
  background: #fff6cc;
}

/* コンテンツ幅は設計どおり980px（旧padding:0 40pxで900pxに縮み、
   980px幅で設計された装飾画像の左右が切れていた） */
.lotus-inner {
  max-width: 980px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* リード文 */
.lotus-lead {
  text-align: center;
  margin-bottom: 20px;
}

/* 区切り線 */
.lotus-hr {
  border: none;
  height: 10px;
  margin: 0 0 30px;
  background: url(https://minna-ns.co.jp/images/common/line_dot.png) left center repeat-x;
}

/* 施設情報2カラム */
.lotus-info-wrap {
  display: flex;
  gap: 20px;
  margin-bottom: 30px;
}

.lotus-info-col {
  width: 50%;
}

/* テーブル共通 */
.lotus-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 30px;
}

.lotus-table th {
  background: #eeeeee;
  text-align: center;
  padding: 10px;
  border: 1px solid #cccccc;
  font-weight: normal; /* thはブラウザ標準が太字のためnormalを明示 */
  white-space: nowrap;
}

.lotus-table td {
  background: #ffffff;
  padding: 10px;
  border: 1px solid #cccccc;
}

.lotus-table--full {
  width: 100%;
}

/* セル文言を中央寄せするテーブル（定員・食育目標） */
.lotus-table--center td {
  text-align: center;
}

/* 列数の多い表の横スクロール枠（収まるPCでは何も起きない） */
.lotus-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* スケジュール一覧 */
.lotus-schedule {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 30px;
}

.scheBox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 0 0 20px;
  border-bottom: 1px solid #cccccc;
}

.scheBox img {
  width: 80px;
  height: auto;
  flex-shrink: 0;
}

.scheBox-body {
  flex: 1;
}

.scheBox-time {
  margin-bottom: 5px;
}

/* 年間行事 */
.lotus-schedule-season {
  display: flex;
  gap: 20px;
  margin-bottom: 30px;
}

.lotus-schedule-season > div {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.lotus-season-ill {
  text-align: center;
  margin-top: auto; /* リスト件数が違ってもイラストを下端揃えに */
}

.lotus-season-img {
  text-align: center;
  margin-bottom: 15px;
}

.lotus-season-img img {
  max-width: 100%;
  height: auto;
}

.lotus-season-period {
  text-align: center;
  font-size: 0.9em;
  margin-bottom: 10px;
  background: #F5FAE4;
  padding: 5px;
}

.lotus-season-list {
  text-align: center;
  margin-bottom: 20px;
  min-height: 120px;
}

.lotus-season-ill img {
  max-width: 100%;
  height: auto;
}

/* 保育理念 */
.aboutCmt-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  text-align: center;
  padding: 40px 0;
  font-size: 1.2em;
  font-weight: bold;
}

/* 保育目標 */
.lotus-goals {
  text-align: center;
  margin-bottom: 30px;
}

.lotus-goals-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  max-width: 720px; /* 600pxでは末尾1文字が折り返していたため拡幅 */
  margin: 0 auto 30px;
  font-size: 1.1em;
}

.lotus-goals-img img {
  max-width: 100%;
  height: auto;
}

/* 食育考え方リスト */
.lotus-list-line {
  list-style: none;
  padding: 0;
  margin-bottom: 30px;
}

.lotus-list-line li {
  border-bottom: 1px dotted #cccccc;
  padding: 15px;
  background: #ffffff;
}

/* 一般テキスト */
.lotus-text {
  line-height: 2;
  padding: 10px;
}

/* ============================================================
   スマホ対応 @media (max-width: 991px)
   ※ スマホ向けルールはすべてここに集約する
   ============================================================ */
@media screen and (max-width: 991px) {

  /* ベース */
  html, body {
    height: auto;
    min-height: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 15px;
    min-width: inherit;
  }

  h2 {
    font-size: 1.5rem;
  }

  h3 {
    font-size: 1.3rem;
  }

  h4 {
    font-size: 1.1rem;
  }

  img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* レイアウト */
  .inner {
    width: 100%;
    padding: 0 15px;
    box-sizing: border-box;
  }

  .row {
    display: block;
    margin: 0;
  }

  .display-flex {
    display: block;
  }

  .w-980 {
    width: 100%;
  }

  .w-900 {
    width: 100%;
  }

  .cotainer {
    width: 100%;
    box-sizing: border-box;
    padding: 0 10px;
  }

  .pc-display {
    display: none;
  }

  .sp-display {
    display: inherit;
  }

  .main {
    padding: 0 15px;
    margin: 0;
  }

  .section-content {
    padding: 10px;
  }

  /* テーブル */
  table {
    max-width: 100%;
  }

  .aboutCmt {
    background: none;
  }

  .aboutCmt td {
    width: 100%;
    display: block;
    padding: 5px;
  }

  .aboutCmt td br {
    display: none;
  }

  .sp-table td {
    width: 100%;
    display: block;
    padding: 5px;
  }

  .aboutTable td {
    width: 100%;
    display: block;
  }

  .scheduleTable td {
    width: 100%;
    display: block;
  }

  .mrgnB40 td {
    display: block;
  }

  /* note */
  .note {
    background: url(https://minna-ns.co.jp/images/note.jpg) left top repeat-x #ffffff;
    padding: 20px;
    width: calc(100% - 20px);
    margin: 0 10px;
    box-sizing: border-box;
  }

  /* ヘッダー・ナビ */
  .gnavi {
    display: block;
    margin: 0;
    padding: 0;
  }

  .gnavi li {
    border-left: none;
    border-bottom: 1px solid #aaa;
    padding: 5px;
  }

  .animal {
    display: none;
  }

  /* h2タイトル画像 */
  h2.sub_ttl,
  .sub_ttl {
    width: 100%;
    margin: 0 0 12px;
    padding: 0;
    line-height: 1;
    display: block;
    font-size: 0;
  }

  h2.sub_ttl img,
  .sub_ttl img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* lotusページ：固定ヘッダー対応 */
  body:not(.home) .header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    background: #daf2bd;
    z-index: 999999;
    box-sizing: border-box;
  }

  body:not(.home) .main,
  body:not(.home) #contents {
    margin-top: 80px;
  }

  /* 固定ヘッダー逃げは最初のセクションのみ
     （旧:全.lotus-sectionに80pxが付き、セクション間に白い隙間ができていた） */
  body:not(.home) .lotus-section--first {
    margin-top: 80px;
  }

  .drawer-nav {
    padding-top: 80px;
  }

  /* トップページ：スワイパー */
  .swiper-container {
    height: auto;
    min-height: 0;
  }

  .section01 {
    position: relative;
    height: auto;
    min-height: 0;
  }

  .section01 .swiper-slide {
    height: auto;
    display: block;
    min-height: 0;
  }

  .section01 .swiper-slide img {
    width: 100%;
    height: auto;
    display: block;
  }

  .section01 .swiper-container {
    margin-top: 0;
  }

  .section01 .header.pc-display {
    display: none;
  }

  /* トップページ スマホ用ヘッダー(.sp-header-top)：スクロール追従のため fixed に変更
     旧: position:absolute（section01内先頭に貼りつくだけでスクロール追従なし）
     新: position:fixed（サブページの.sp-headerと同じ挙動に統一）
     ※インラインの position:relative を !important で上書き */
  .section01 .header.sp-header-top {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99999;
  }

  /* トップページ SP：固定ヘッダー分だけスワイパーを押し下げる
     sp-header-topの実高さ(padding:8px 15px + ロゴ高さ)に合わせて調整
     ※確認後、実測値に合わせて微調整すること */
  body.home .section01 .swiper-container {
    margin-top: 56px !important;
  }

  .swiper-container02 {
    width: 100%;
  }

  .swiper-container02 .swiper-pagination {
    position: absolute;
    bottom: 10px;
  }

  /* 特徴スライダーの進行バー：写真の右下に収める */
  .progress-outer02 {
    top: auto;
    bottom: 15px;
    height: 100px;
  }

  .progress-outer {
    display: none;
  }

  body .section01 {
    background: #daf2bd;
  }

  .section01 .swiper-slide {
    background: #daf2bd;
  }

  /* トップページ：タイトル・パーツ */
  .title {
    font-size: 26px;
    padding-top: 20px;
    padding-bottom: 5px;
    margin-bottom: 5px;
  }

  .sub_title {
    font-size: 19px;
  }

  /* セクション見出しの統一(スマホ) */
  .sec03 h3.text-center,
  .sec-news h3.text-center {
    font-size: 26px;
  }

  /* お知らせリスト(スマホ) */
  .news-item {
    padding: 10px 0;
  }

  .news-date {
    flex: 0 0 90px;
    font-size: 13px;
  }

  .news-title {
    font-size: 17px;
  }

  /* セクション余白の統一 */
  .sec03 .display-flex {
    margin-bottom: 40px !important; /* インラインの120pxを上書き */
  }

  .footer-contact {
    padding: 30px 0 !important; /* インラインの60px 0を上書き */
  }

  /* お問い合わせ：ロゴを控えめに */
  .box_in > img {
    width: 170px !important;
  }

  /* お知らせの装飾：文字に被らない位置・サイズで表示 */
  .animal-news01 {
    top: -20px !important;
    right: 0 !important;
    width: 60px !important;
  }

  .animal-news02 {
    width: 140px !important;
    bottom: -30px !important;
    left: 5px !important;
  }

  .animal-news03 {
    display: none !important; /* 小サイズでは潰れるため非表示を維持 */
  }

  .p-00 {
    padding-bottom: 0 !important;
  }

  .p-00 .row {
    display: inherit !important;
  }

  .p-00 .col-md-6 {
    width: 100%;
    padding: 15px;
    box-sizing: border-box;
  }

  .bg-white {
    width: 100%;
    margin-top: 0;
    box-sizing: border-box;
  }

  .bg-white02 {
    width: 100%;
    box-sizing: border-box;
    padding: 15px;
  }

  .even {
    margin-left: 0 !important;
  }

  .spinner img {
    margin-left: 0;
  }

  .greeting {
    display: none;
  }

  /* トップページ：サークルナビ */
  .circle-1,
  .circle-2,
  .circle-3 {
    margin: 0 auto 60px;
    display: block;
    text-align: center;
  }

  .circle-4 {
    margin: 0 auto 80px;
    display: block;
    text-align: center;
  }

  .sec03 .circle-1 h2,
  .sec03 .circle-2 h2,
  .sec03 .circle-3 h2,
  .sec03 .circle-4 h2 {
    bottom: -40px;
    font-size: 1.1rem;
    width: auto;
    white-space: nowrap;
    text-align: center;
    left: 50%;
    transform: translateX(-50%);
  }

  h2.ttl span {
    font-size: 1.8rem;
    margin: 0.2rem;
  }

  .ttl {
    left: 10px;
    bottom: 10px;
  }

  /* クジラ：虹の見出しと重ならないよう左上隅に小さく配置 */
  img[src="kujira.svg"] {
    width: 50px !important;
    top: 10px !important;
    left: 10px !important;
  }

  /* ゾウ：ヘッダー上に浮かないよう写真の右下へ */
  .animal01 {
    top: auto !important;
    bottom: 20px !important;
    width: 80px !important;
  }

  /* トップページ：その他パーツ */
  .bg-white {
    padding-top: 30px;
    margin-bottom: 20px;
  }

  .animal01 {
    width: 60px;
  }

  img[src="star.svg"] {
    width: 20px;
    height: 20px;
  }

  img[src*="mizuumi"] {
    display: none;
  }

  img[src*="news02"] {
    width: 150px;
    bottom: -10px;
  }

  .w-100 {
    width: 80px !important;
  }

  /* ブログ */
  .blogLeftBox {
    margin: 0 auto;
    padding: 0;
  }

  .blogLeftBox li {
    display: block;
    width: 100%;
  }

  .blogWrap {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  .blogLeftCol {
    width: 100%;
    flex: none;
    order: 2;
    display: block;
  }

  /* スマホでは追従(sticky)を無効化 */
  .blogLeftBox {
    position: static;
  }

  /* スマホ：一覧のサムネイルを一回り小さくし、本文の幅を確保 */
  .blogThumb {
    width: 120px;
    height: 90px;
    margin-right: 12px;
  }

  /* スマホ：記事エリアと下に回り込むメニューとの間隔を確保 */
  .blogLeftCol {
    margin-top: 30px;
  }

  /* お問い合わせフォーム（旧:固定ページ内のインラインstyleから移設） */
  .contactForm table.sp-table {
    width: 100%;
  }

  .contactForm table.sp-table th,
  .contactForm table.sp-table td {
    display: block;
    width: 100%;
  }

  /* 確認画面：戻る/送信ボタンが縦に並ぶ際の間隔 */
  .btnArea input {
    margin-bottom: 20px;
  }

  .contactInput table input,
  .contactInput table textarea {
    width: 100%;
  }

  .blogRightCol {
    order: 1;
    width: 100%;
    display: block;
  }

  /* ヘッダーSP */
  .sp-header-top {
    display: block;
    margin: 0 !important;
    padding: 8px 15px !important;
    height: auto; /* PC用 .header{height:115px} の解除。帯の下半分が空き、写真上の謎の余白(約33px)に見えていた根本原因 */
  }

  /* サブページSPヘッダー：トップの.sp-header-topと高さ・余白を統一
     (header.phpのインラインstyle padding:10px 15px を上書き) */
  .sp-header {
    height: auto !important;
    padding: 8px 15px !important;
  }

  /* ヘッダー帯と写真の間の余白を詰める：
     行ボックスの余り・margin類を一括で除去 */
  .sp-header-top a {
    display: block;
    line-height: 0;
  }

  .sp-header-top a img {
    margin: 0 !important;
  }

  .section01 .swiper-container,
  .section01 .swiper-wrapper {
    margin-top: 0 !important;
  }

  /* ヒーロースライダーのドット(front-page.phpのインラインstyleから移管・位置調整) */
  .section01 .swiper-pagination-bullet-active {
    background: none;
    background: url(bullet.svg) no-repeat center center !important;
    width: 50px;
    height: 50px;
    margin-left: -20px !important;
  }

  .section01 .swiper-container-horizontal > .swiper-pagination-bullets,
  .section01 .swiper-pagination-custom,
  .swiper-pagination-fraction {
    bottom: inherit;
    top: 40px;
    left: 10px; /* 右上の固定バナー・メニューとの重なり回避のため左へ移動 */
    right: auto;
    width: 30px;
  }

  /* ロゴ：全imgのmax-width:100%!importantに負けないよう!important指定 */
  .sp-header-top img,
  body:not(.home) .header img {
    max-width: 200px !important;
  }

  /* サブページヘッダー：スマホ */
  .sp-header .gnavi {
    display: none;
  }

  .sp-header img {
    max-width: 150px !important;
  }

  div[role="banner"].sp-display {
    display: block;
  }

  /* ========================================
     lotusページ スマホ対応
     ======================================== */

.lotus-section {
    padding: 20px 0;
  }

  .lotus-section--first {
    padding-top: 0;
  }

  .lotus-inner h2.sub_ttl {
    margin-bottom: 15px;
  }

  .lotus-inner {
    padding: 0 15px;
  }

  /* 見出しのSPサイズ。メディア外のサブページ用ルール(1.5rem/1.4rem)より
     後勝ちさせるため同じ詳細度で再定義（トップSPのh3 1.3remに整合） */
  body:not(.home) h3 {
    font-size: 1.3rem;
  }

  body:not(.home) h4 {
    font-size: 1.2rem;
  }

  .lotus-info-wrap {
    flex-direction: column;
  }

  .lotus-info-col {
    width: 100%;
  }

  /* 定員テーブル：横スクロールではなく、グリッドで行列を転置して全表示
     （HTMLの横持ち＝列に年齢が並ぶ構造を、SPでは年齢が縦に並ぶ3列/2列の表に） */
  .lotus-table-scroll {
    overflow-x: visible;
  }

  .lotus-table-scroll .lotus-table {
    display: block;
    border-top: 1px solid #cccccc;
    border-left: 1px solid #cccccc;
  }

  .lotus-table-scroll .lotus-table tbody {
    display: grid;
    grid-template-rows: repeat(5, auto); /* 元の5列ぶん */
    grid-auto-flow: column;
  }

  .lotus-table-scroll .lotus-table tr {
    display: contents;
  }

  .lotus-table-scroll .lotus-table th,
  .lotus-table-scroll .lotus-table td {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: solid #cccccc;
    border-width: 0 1px 1px 0;
    padding: 8px 6px;
    white-space: normal;
    text-align: center;
  }

  .lotus-schedule {
    grid-template-columns: 1fr;
  }

  .lotus-schedule-season {
    flex-direction: column;
  }

  /* 保育理念：SPは水彩背景画像(980px設計)が使えないため、CSSの円で再現 */
  .aboutCmt {
    padding: 10px 0;
    font-size: 15px;
  }

  .aboutCmt-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 10px 0;
    font-size: 17px;
  }

  .aboutCmt-grid > div {
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.5;
  }

  .aboutCmt-grid > div:nth-child(1) { background: #fbdcb8; }
  .aboutCmt-grid > div:nth-child(2) { background: #cfe6f3; }
  .aboutCmt-grid > div:nth-child(3) { background: #cfe9c0; }
  .aboutCmt-grid > div:nth-child(4) { background: #e9ecc5; }

  .lotus-goals-grid {
    grid-template-columns: 1fr 1fr;
  }

  /* 食育目標テーブル：HTMLは横持ち(1行目=見出し×5、2行目=文言×5)のまま、
     グリッドで「見出し|文言」のペア×5行に組み替える（PC表示は無変更） */
  .lotus-shokuiku-table {
    display: block;
    border: none;
  }

  .lotus-shokuiku-table tbody {
    display: grid;
    grid-template-columns: 38% 62%;
    grid-template-rows: repeat(5, auto);
    grid-auto-flow: column;
    row-gap: 6px;
  }

  .lotus-shokuiku-table tr {
    display: contents;
  }

  .lotus-shokuiku-table th {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: #eeeeee;
    border: 1px solid #cccccc;
    padding: 8px;
    font-weight: normal;
    white-space: normal;
  }

  .lotus-shokuiku-table td {
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #cccccc;
    border-left: none;
    padding: 8px 12px;
    text-align: left;
  }

  /* ========================================
     header.php の <style> から移行(2026-06)
     ======================================== */

  div[role="banner"].sp-display {
    position: fixed !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 9999999 !important;
    width: 70px !important;
    height: 70px !important;
    overflow: hidden !important;
  }

  .ttl img[src="star.svg"] {
    width: 15px !important;
    height: 15px !important;
    display: inline-block !important;
  }

  .section01 .swiper-container {
    height: 70vw !important;
    overflow: hidden !important;
  }

  .section01 .swiper-slide img:not([src="star.svg"]) {
    width: 100% !important;
    height: 70vw !important;
    object-fit: cover !important;
  }

}

/* ============================================================
   固定バナー(採用情報・園児募集の丸ナビ)非表示
   ※ ハンバーガーメニュー出現(991px以下)と同じタイミングで消す
   (旧: 768px以下のみ非表示 → 991pxに変更 2026-06)
   ============================================================ */
@media screen and (max-width: 991px) {
  .fixed-bnr {
    display: none !important;
  }
}

/* ============================================================
   lotus-plus(ろぉたすぷらす)ページ用 追加スタイル(2026-06)
   ※前回追記したこのブロック全体を、この内容に差し替える
   (style.cssの最後尾のブロック)
   ============================================================ */

/* 保育理念(ぷらす)：項目が3つのため、PC用の水彩背景画像
   (aboutCmt.png＝丸4つ・980px設計)は使用せず、PC/SPともCSSの円で表現する */
.aboutCmt--plus {
  background: none;
  padding: 20px 0;
  font-size: 1.2em; /* 基本の1.5emでは「人間力を伸ばし、」が円からはみ出すため縮小 */
}

.aboutCmt--plus .aboutCmt-grid {
  grid-template-columns: repeat(3, 1fr);
  max-width: 820px;
  margin: 0 auto;
  gap: 25px;
  font-size: 1em; /* 親(.aboutCmt--plus)のサイズをそのまま使う */
}

.aboutCmt--plus .aboutCmt-grid > div {
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.7;
  padding: 15px;
  box-sizing: border-box;
}

.aboutCmt--plus .aboutCmt-grid > div:nth-child(1) { background: #fbdcb8; }
.aboutCmt--plus .aboutCmt-grid > div:nth-child(2) { background: #cfe6f3; }
.aboutCmt--plus .aboutCmt-grid > div:nth-child(3) { background: #cfe9c0; }

/* 保育目標(ぷらす)：文章が長いためグリッド幅を広げ、行の上下を中央揃えに */
.lotus-goals-grid--wide {
  max-width: 980px;
  font-size: 1em;
  align-items: center;
}

@media screen and (max-width: 991px) {

  /* 保育理念(ぷらす)SP：2列＋3つ目の円は中央寄せ(大きさは他と揃える) */
  .aboutCmt--plus .aboutCmt-grid {
    grid-template-columns: 1fr 1fr;
    max-width: none;
    gap: 12px;
    font-size: 16px;
  }

  .aboutCmt--plus .aboutCmt-grid > div:nth-child(3) {
    grid-column: 1 / -1;
    width: calc(50% - 6px);
    margin: 0 auto;
  }

  /* 保育目標(ぷらす)SP：長文のため1列にする */
  .lotus-goals-grid--wide {
    grid-template-columns: 1fr;
  }

}

/* ============================================================
   ろぉたすぷらす保育園ページ専用スタイル
   ============================================================ */

/* ===== タイムライン ===== */
.plus-timeline {
  position: relative;
  margin: 20px 0 30px;
}
.plus-tl-item {
  display: grid;
  grid-template-columns: 80px 24px 1fr;
  gap: 0 12px;
  align-items: stretch;
}
.plus-tl-time {
  text-align: right;
  font-size: 0.9rem;
  font-weight: bold;
  color: #F4A721;
  padding-top: 4px;
  white-space: nowrap;
}
.plus-tl-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.plus-tl-dot::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #F4A721;
  flex-shrink: 0;
  margin-top: 4px;
}
.plus-tl-dot::after {
  content: "";
  width: 2px;
  flex: 1;
  background: #F4A721;
  opacity: 0.35;
  margin-top: 4px;
}
.plus-tl-item--last .plus-tl-dot::after {
  display: none;
}
.plus-tl-body {
  padding-bottom: 22px;
}
.plus-tl-title {
  font-size: 1rem;
  font-weight: bold;
  color: #333;
  margin: 0 0 4px;
}

/* ===== 課外レッスンカード ===== */
.plus-lesson-grid {
  display: flex;
  gap: 20px;
  margin: 16px 0 10px;
  flex-wrap: wrap;
}
.plus-lesson-card {
  flex: 1 1 180px;
  background: #fff;
  border-radius: 12px;
  padding: 20px 16px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}
.plus-lesson-card__icon { font-size: 2rem; margin: 0 0 8px; }
.plus-lesson-card__title { font-size: 1rem; font-weight: bold; color: #F4A721; margin: 0 0 8px; }
.plus-lesson-card__text { font-size: 0.88rem; line-height: 1.7; margin: 0 0 8px; color: #444; }
.plus-lesson-card__note { font-size: 0.78rem; color: #888; margin: 0; }

/* ===== 保育目標カード ===== */
.plus-goals-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 20px 0 24px;
}
.plus-goals-card {
  background: #fff;
  border-left: 5px solid #F4A721;
  border-radius: 0 10px 10px 0;
  padding: 18px 16px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.plus-goals-card__icon { font-size: 1.6rem; flex-shrink: 0; margin: 0; line-height: 1; }
.plus-goals-card__text { font-size: 0.95rem; line-height: 1.7; margin: 0; color: #333; font-weight: bold; }

/* ===== 食育カード ===== */
.plus-shokuiku-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 16px 0 10px;
}
.plus-shokuiku-card {
  background: #fff;
  border-radius: 12px;
  padding: 20px 18px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}
.plus-shokuiku-card--wide {
  grid-column: 1 / -1;
}
.plus-shokuiku-card__icon { font-size: 1.8rem; margin: 0 0 8px; }
.plus-shokuiku-card__title { font-size: 1rem; font-weight: bold; color: #649E0C; margin: 0 0 8px; }
.plus-shokuiku-card__text { font-size: 0.88rem; line-height: 1.8; margin: 0; color: #444; }

/* ===== スマホ対応 ===== */
@media screen and (max-width: 991px) {
  .plus-tl-item { grid-template-columns: 62px 20px 1fr; gap: 0 8px; }
  .plus-tl-time { font-size: 0.8rem; }
  .plus-lesson-grid { flex-direction: column; gap: 12px; }
  .plus-goals-grid { grid-template-columns: 1fr; }
  .plus-shokuiku-grid { grid-template-columns: 1fr; }
  .plus-shokuiku-card--wide { grid-column: auto; }
}