@charset "utf-8";
#main .row {}
#main::after {
  content: none;
}
#gHeader {
  height: 100vh;
  bottom: 0 !important;
  padding-bottom: 0;
}

/* Logo */
#gNavi #logo {
  width: 300px;
  height: 300px;
  position: absolute;
  top: -25px;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
#gNavi h1#logo::before, #gNavi h1#logo::after {
  content: none;
}
#gNavi #logo a {
  width: 300px;
}
#gNavi #logo a:hover {
  opacity: 1;
}
#gNavi #logo a img {
  width: 300px;
  height: 300px;
  -webkit-transition: none;
  transition: none;
}
#gNavi #logo .normalView {
  display: none;
}
/* Grobal Navigation */
#gNavi {
  height: 100px;
  top: auto;
  bottom: 0;
  background: #fad5cd;
  z-index: 999;
  position: absolute;
}
#gNavi::before {
  content: '';
  width: 3000px;
  height: 100px;
  background: url("../img/top/top_navi_under.webp") repeat 0 0 / 3000px 100px;
  display: block;
  position: absolute;
  bottom: 50px;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}


#gNavi.fix {
  background-color:#fad5cd;
  z-index: 999;
}
#gNavi ul, #gNavi ul li {
  background: url("../img/top/line.webp") no-repeat 0 0 / 10px 76px;
}
#gNavi ul {
  width: 100%;
  background-position: right top;
  margin: 0;
}

#gNavi ul li.has-child ul {
  display: none;
}
/* Logo */
#gNavi.HeightMin #logo {
  width: 20%;
  position: relative;
  z-index: 1002;
  height: auto;
  top: inherit;
  left: inherit;
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
}
#gNavi.HeightMin #logo a, #gNavi.HeightMin #logo a img {
  width: 254px;
  height: 65px;
}
#gNavi.HeightMin #logo a:hover {
  opacity: 0.6;
}
#gNavi.HeightMin #logo .firstView {
  display: none;
}
#gNavi.HeightMin #logo .normalView {
  display: block;
}
/* Grobal Navigation */
#gNavi.HeightMin {
  position: fixed;
  z-index: 1000;
  top: 0;
  height: 100px;
  animation: DownAnime 0.5s forwards;
}
#gNavi.HeightMin.fix {
  background-color: rgba(255, 255, 255, 0.9);
}
#gNavi.HeightMin ul, #gNavi.HeightMin ul li {
  background: url("../img/top/line.webp") no-repeat left center / 6px 50px;
}
#gNavi.HeightMin ul {
  width: 80%;
  background-position: right center;
}
#gNavi.HeightMin ul li:nth-child(5) {
  padding-right: 0;
}
#gNavi.HeightMin ul li:nth-child(6) {
  padding-left: 0;
}
#gNavi.HeightMin ul li:nth-child(5) a, #gNavi.HeightMin ul li:nth-child(6) a {
  background: none;
}
#gNavi.HeightMin ul li.has-child ul {
  display: inline-block;
}
@keyframes DownAnime {
  from {
    opacity: 0;
    transform: translateY(-170px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ====================================================
		Page Title
==================================================== */
/* -------------------------------
		H2
------------------------------- */
#main h2 {
  padding-bottom: 60px;
}
#main h3 {
  font-size: 2.6rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  padding-bottom: 10px;
}
#topmain {
  width: 100%;
  height: 100vh !important;
  position: relative;
    /* ← これを追加 */
/*
  background-image: url("../img/top/top006.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
*/
}
@keyframes floatSpin {
  0% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(-20px) rotate(10deg);
  }
  50% {
    transform: translateY(0) rotate(0deg);
  }
  75% {
    transform: translateY(20px) rotate(-10deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}
#topmain::after {
  content: '';
  width: 428px;
  height: 320px;
  animation: floatSpin 4s ease-in-out infinite;
  background: url("../img/top/top_b_right.webp") no-repeat 0 0 / 428px 320px;
  position: absolute;
  top: -50px;
  right: -100px;
}
#catchCopy {
  position: absolute;
  top: 35%;        /* 上下位置（もっと上にしたければ 30% / 25% に） */
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
    /* ▼ ここから追加 */
/*
  background-color: rgba(255, 255, 255, 0.8);
  padding: 24px 32px;                          
  border-radius: 30px;  
*/
}

/* ロゴ画像のサイズ調整（PC） */
#catchCopy img {
  width: 350px;    /* お好みで 220〜300px くらいに調整 */
  height: auto;
  display: block;
  margin: 0 auto;
}

/* -------------------------------
		News Pickup
------------------------------- */
#newsPickup {
  width: 20%;
  font-size: 1.6rem;
  position: absolute;
  z-index: 999;
  bottom: 190px;
  background: rgba(255, 255, 255, 0.8);
  padding: 15px 0 10px;
}
/* Title */
#newsPickup h2 {
  width: 10%;
  color: #0068b7;
  font-family: "Baloo 2", sans-serif;
  font-weight: 600;
  font-style: normal;
  padding-left: 10%;
}
#newsPickup h2 span:nth-child(even) {
  color: #0068b7;
}
/* Text */
#newsPickup p {
  width: 66%;
  line-height: 1.4;
  padding-right: 10%;
  padding-top: 0.2em;
}
#newsPickup p a {
  display: block;
}
/* -------------------------------
		Scrolldown
------------------------------- */
.scrolldown {
  position: absolute;
  bottom: 208px;
  right: 160px;
}
.scrolldown span {
  position: absolute;
  left: -0.75rem;
  bottom: 45px;
  color: #fff;
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  -ms-writing-mode: tb-rl;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
}
.scrolldown::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: -2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #fff;
  animation: circlemove 1.6s ease-in-out infinite, cirlemovehide 1.6s ease-out infinite;
}
@keyframes circlemove {
  0% {
    bottom: 40px;
  }
  100% {
    bottom: -5px;
  }
}
@keyframes cirlemovehide {
  0% {
    opacity: 0
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}
.scrolldown::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1px;
  height: 40px;
  background: #fff;
}
/* ====================================================
		Concept (PC)
==================================================== */
#concept {
  position: relative;
  padding-bottom: 120px;
}
#concept .row {
  width: 840px;
}
/* 見出し */
#concept h2 {
  font-family: 'Bungee', cursive;
  font-size: 5.5rem;
  color: #001e43;
  position: relative;
}
#concept h2 strong span {
  color: #0068b7;
}
#concept h2 b {
  padding-bottom: 40px;
}
/* 左下ハート */
#concept h2 b::after {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
  width: 232px;
  height: 210px;
  background: url("../img/top/con_harts.webp") no-repeat 0 0 / 232px 210px;
  animation: fuwafuwa3 2s infinite ease-in-out .6s alternate;
  top: 400px;
  left: 80px;
}
/* 右上ハート（同画像流用） */
#concept h2 strong::after {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
  width: 350px;
  height: 262px;
  background: url("../img/top/culi_reft_b.webp") no-repeat 0 0 / 350px 262px;
  animation: fuwafuwa4 3s infinite ease-in-out .4s alternate;
  top: -80px;
  right: 40px;
}
#concept p {
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 1.4em;
	color: #001e43;
}
#concept p span {
  color: #0068b7;
}
/* -------------------------------
		Button
------------------------------- */
#concept .btnColor {
  margin-top: 50px;
  position: relative;
}
@media screen and (min-width: 769px) {
  #concept p {
    text-align: left;
    width: 700px; /* 任意の幅 */
    margin: 0 auto 1.4em; /* 左右中央に配置しつつ下余白はそのまま */
  }
}
#curriculum {
  position: relative;
  padding-bottom: 50px;
}
#curriculum section.flex {
  margin-top: 50px;
}
#curriculum section.flex .textBox {
  width: 40%;
  background: #fff;
  animation: footeradd 20s ease 0s infinite;
  border-radius: 10% 40% 10% 40%/30% 30% 50% 30%;
  padding: 70px 70px 50px 80px;
  position: relative;
  margin-bottom: 80px;
}
#curriculum section.flex .textBox::before, #curriculum section.flex .textBox::after {
  content: '';
  display: block;
  position: absolute;
}
#curriculum h2 {
  padding: 80px 0 50px;
}
#curriculum h3 {
  font-size: 3.6rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700 normal;
  color: #0068b7;
  letter-spacing: 0.05em;
  padding: 0 0 40px;
}
#curriculum h3 span {
  font-size: 1.6rem;
  color: #774935;
  display: block;
}
#curriculum h3 strong {
  display: inline-block;
  border-bottom: 4px dotted #0068b7;
}
#curriculum .btnArrow {
  width: 5.5em;
  justify-content: flex-end;
  margin: 20px 0 0 auto;
}
#curriculum .btnArrow a {}
#curriculum section.flex .photo {
  width: 80%;
  position: absolute;
  animation: fuwafuwa4 6s infinite ease-in-out .8s alternate;
  z-index: -1;
  top: -100px;
  right: -24%;
}
#curriculum section.flex .photo::before {
  content: '';
  width: 442px;
  height: 302px;
  animation: fuwafuwa3 5s infinite ease-in-out .3s alternate;
  background: url("../img_common/img_texture_yellow_01.png") no-repeat 0 0 / 442px 302px;
  display: block;
  position: absolute;
  bottom: -140px;
  right: 20px;
  z-index: 0;
}
#curriculum div.flex {
  padding: 50px 0 0;
}
#curriculum div.flex section {
  width: 30%;
  position: relative;
}
#curriculum div.flex section a {
  position: relative;
}
#curriculum div.flex section .speechBubbles {
  width: 138px;
  height: 138px;
  animation: kakukaku2 6s step-start 1s infinite normal;
  background: url("../img/curriculum/culi_blue.webp") no-repeat 0 0 / 138px 138px;
  position: absolute;
  top: -30px;
  left: -30px;
  z-index: 1 !important;
}
#curriculum div.flex section:nth-child(2) .speechBubbles {
  animation: kakukaku2 5s step-start 0s infinite normal;
  background-image: url("../img/curriculum/culi_pink.webp");
}
#curriculum div.flex section:nth-child(3) .speechBubbles {
  animation: kakukaku2 6s step-start 0s infinite normal;
  background-image: url("../img/curriculum/culi_yellow.webp");
}
#curriculum div.flex section .speechBubbles span {
  color: #fff;
  text-align: center;
  font-size: 1.3rem;
  font-family: "Baloo 2", sans-serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.1em;
  display: block;
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
/* Photo */
#curriculum div.flex section a .photo, #curriculum div.flex section a:hover .photo, #curriculum div.flex section a:hover .photo img {
  position: relative;
  z-index: -1;
}
#curriculum div.flex section a .photo::after {
  content: '';
  width: 60px;
  height: 60px;
  background: url("../img/icon/yajirushi.webp") no-repeat 0 0 / 60px;
  display: block;
  transition: ease .2s;
  position: absolute;
  bottom: 0;
  right: 0;
}
#curriculum div.flex section a:hover .photo::after {
  right: -10px;
}
/* Title */
#curriculum div.flex section h4 {
  font-size: 2.4rem;
  color: #0068b7;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  text-align: center;
  padding: 15px 0 10px;
}

#curriculum p {
 
  color: #001e43;
 
}
#curriculum div.flex section .text {
  font-size: 1.4rem;
  padding: 0 12%;
}
#information, #information .row {
  position: relative;
}
#information::before, #information::after, #information .row::before, #information .row::after {
  content: '';
  display: block;
}
/* -------------------------------
		Title
------------------------------- */
#information h2 b::after {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
}
#information h3 {
  font-size: 2.5rem;
  color: #001e43;
  text-align: center;
}
/* -------------------------------
		Service List
------------------------------- */
#information ul.flex_center {
  width: 90%;
  margin: 0 auto 60px;
  position: relative;
}
#information ul.flex_center::before, #information ul.flex_center::after {
  content: '';
  display: block;
  position: absolute;
}
#information ul.flex_center::before {
  width: 100px;
  height: 200px;
  background: url("../img/top/vakue05.webp") no-repeat 0 0 / 100px 200px;
  animation: fuwafuwa4 5s infinite ease-in-out .3s alternate;
  top: -250px;
  right: -20px;
}
#information ul.flex_center::after {
  width: 182px;
  height: 126px;
  background: url("../img/top/top_b_right.webp") no-repeat 0 0 / 182px 126px;
  animation: fuwafuwa4 2s infinite ease-in-out .5s alternate;
  top: -80px;
  left: -20px;
}
#information ul.flex_center li {
  width: 26%;
  padding: 0 2%;
}
/* -------------------------------
		Other Link
------------------------------- */
#information div.flex {
  background: url("../img_index/line_information.png") no-repeat right bottom 50px / 10px 200px;
  margin-bottom: 70px;
}
#information div.flex section {
  width: 25%;
  background: url("../img_index/line_information.png") no-repeat left bottom 50px / 10px 200px;
}
/* Photo */
#information div.flex section .photo {
  padding: 0 8%;
}
/* Title */
#information div.flex section h3 {
  color: #00b800;
  font-size: 2.4rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.4;
  letter-spacing: .05em;
  text-align: center;
  padding: 10px 15% 15px;
}
/* Text */
#information div.flex section .text {
  font-size: 1.4rem;
  padding: 0 15%;
}
/* Button */
#information div.flex section .btnColor {
  margin-top: 20px;
}
/* -------------------------------
		Link - Disclosure
------------------------------- */
#disclosure {
  padding-bottom: 50px;
}
#disclosure a {
  background: #fff;
  border-radius: 40px;
  display: block;
  padding: 40px 0 35px;
  position: relative;
  transition: ease .2s;
  box-shadow: 0 4px 0 0 rgba(0, 0, 0, .14);
}
#disclosure a::after {
  content: '';
  width: 60px;
  height: 60px;
  position: absolute;
  transition: all .3s;
  top: 50%;
  right: 10px;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  background: url("../img_common/btn_arrow_brown.png") no-repeat right 0 center / 60px;
}
#disclosure a:hover::after {
  right: 0;
}
#disclosure div.flex {
  width: 70%;
  text-align: center;
  margin: 0 auto;
  background: none;
}
/* Title */
#disclosure h4 {
  width: 20%;
  font-size: 2.4rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  letter-spacing: .05em;
  position: relative;
}
#disclosure h4 span {
  font-size: 1rem;
  font-family: "Baloo 2", sans-serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.1em;
  display: block;
  padding-top: 10px;
}
/* Text */
#disclosure p {
  width: 70%;
  position: relative;
  font-size: 1.4rem;
  top: 0;
  bottom: 0;
  margin: auto;
}
#disclosure p::before {
  content: '';
  width: 10%;
  height: 1px;
  display: block;
  background: #e2dbd8;
  top: 1em;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  position: relative;
}
/* ====================================================
		News & Photo Blog
==================================================== */
#newsBlogArea {
  background: #fff;
}
/* -------------------------------
		News
------------------------------- */
#newsBlogArea #news {
  width: 50%;
  min-height: 490px;
}
/* Title */
#newsBlogArea #news h2 {
  padding-bottom: 30px;
}
/* List */
#newsBlogArea #news li {
  border-bottom: 1px dashed #e2dbd8;
}
#newsBlogArea #news li:last-child {
  border-bottom: none;
}
#newsBlogArea #news li a {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  padding: 26px 0 24px;
  position: relative;
  letter-spacing: 0.05em;
}
#newsBlogArea #news li a time {
  width: 16%;
  font-size: 1.3rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  overflow-wrap: break-word;
  color: #d4c9c4;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin-right: 4%;
  display: block;
  border-right: 1px solid #e2dbd8;
}
#newsBlogArea #news li a span {
  width: 77%;
  font-size: 1.5rem;
  line-height: 1.4;
  display: block;
}
/* Button */
#newsBlogArea #news .btnColor {
  margin-top: 40px;
}
#newsBlogArea #news .btnColor a {
  width: 300px;
  padding-left: 0;
  padding-right: 0;
}
#newsBlogArea #photoBlog {
  width: 45%;
  min-height: 490px;
  margin-top: 40px;
}
/* Title */
#newsBlogArea #photoBlog h2 {
  width: 138px;
  height: 106px;
  background: url("../img_index/img_speech-bubbles_photo-blog.png") no-repeat 0 0 / 138px 106px;
  animation: kakukaku1 2s step-start 0s infinite normal;
  position: absolute;
  padding: 0;
  top: 50px;
  right: 50px;
}
#newsBlogArea #photoBlog h2 span {
  color: #fff;
  text-align: center;
  font-size: 1.3rem;
  font-family: "Baloo 2", sans-serif;
  font-weight: 600;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: 0.1em;
  display: block;
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}
/* Photo */
#newsBlogArea #photoBlog ul {
  min-height: 388px;
  position: relative;
  z-index: -1;
}
#newsBlogArea #photoBlog li {
  width: 304px;
  height: 290px;
  position: relative;
}
#newsBlogArea #photoBlog li:nth-child(1) {
  top: 120px;
  right: 0;
  position: absolute;
  animation: fuwafuwa4 8s infinite ease-in-out .8s alternate;
}
#newsBlogArea #photoBlog li:nth-child(2) {
  z-index: -1;
  animation: fuwafuwa4 6s infinite ease-in-out .2s alternate;
}
/* Decoration */
#newsBlogArea #photoBlog li:nth-child(1)::before, #newsBlogArea #photoBlog li:nth-child(2)::after {
  content: '';
  display: block;
  position: absolute;
}
#newsBlogArea #photoBlog li:nth-child(1)::before {
  width: 456px;
  height: 252px;
  background: url("../img_index/img_decoration_photo-blog.png") no-repeat 0 0 / 456px 252px;
  animation: kakukaku2 4s step-start 0s infinite normal;
  left: -180px;
}
#newsBlogArea #photoBlog li:nth-child(2)::after {
  width: 84px;
  height: 60px;
  background: url("../img_index/img_camera.png") no-repeat 0 0 / 84px 60px;
  animation: kakukaku2 6s step-start .2s infinite normal;
  bottom: -45px;
  left: 60px;
}
/* Button */
#newsBlogArea #photoBlog .btnColor {
  margin-top: 40px;
  margin-bottom: 15px;
}
#newsBlogArea #photoBlog .btnColor a {
  width: 300px;
  background-image: url("../img_common/btn_bg-orange.jpg");
  padding-left: 0;
  padding-right: 0;
}
#newsBlogArea #photoBlog .btnColor a span {
  position: relative;
}
#newsBlogArea #photoBlog .btnColor a span::before {
  content: '';
  width: 16px;
  height: 18px;
  background: url("../img_index/icon_photo-blog.png") no-repeat 0 0 / 16px 18px;
  display: inline-block;
  padding-right: 10px;
}
#newsBlogArea #photoBlog small {
  text-align: center;
}
#intro-s {
  color: #fff;
  text-align: center;
  background: url("../img/top/gal_06.webp") no-repeat center center / cover;
  position: relative;
}
#intro-s h2 {
  width: 500px;
  margin: 0 auto;
  padding-bottom: 30px;
  position: relative;
  color: #fff;
}
#intro-s p {
  letter-spacing: 0.1em;
}
#intro-s .btn {
  width: 300px;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  margin: 40px auto;
}
#intro-s .btn a {
  color: #fff;
  overflow: hidden;
  border: 2px solid #fff;
  border-radius: 30px;
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1em;
  padding: 20px 0 18px;
  position: relative;
  transition: ease .2s;
  display: block;
}
#intro-s .btn a span {
  position: relative;
  z-index: 3;
}
#intro-s .btn a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  border: 2px solid #fff;
  background: #fff;
  transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: right top;
}
#intro-s .btn a:hover {
  opacity: 1;
}
#intro-s .btn a:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}
#intro-s .btn a:hover span {
  color: #333;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) { /*Safari Only Hack*/
  _::-webkit-full-page-media, _:future, :root #intro-s .btn a::before {
    content: none;
  }
  _::-webkit-full-page-media, _:future, :root #intro-s .btn a:hover {
    opacity: 0.6;
  }
  _::-webkit-full-page-media, _:future, :root #intro-s .btn a:hover span {
    color: #fff;
  }
}
/* ====================================================
		Footer
==================================================== */
#gFooter {
  padding-top: 50px;
}
/* =======================================================================================================================

   TABLET

======================================================================================================================= */
@media screen and (min-width: 897px) and (max-width: 1299px) {
  #gNavi #logo {
    width: 140px;
    height: 151px;
  }
  #gNavi #logo a {
    width: 100%;
  }
  #gNavi #logo a img {
    width: 100%;
    height: auto;
  }
  /* Grobal Navigation */
  #gNavi {
    height: 100px;
  }
  #gNavi::before {
    bottom: 0px;
  }
  #gNavi ul {
    width: 94%;
  }
  #gNavi ul li a {
    font-size: 1.6rem;
  }
  #gNavi ul, #gNavi ul li, #gNavi ul li:nth-child(2) a, #gNavi ul li:nth-child(3) a {
    background-size: 8px 60px;
  }
  #gNavi ul li a {
    padding: 14px 2%;
  }
  /* Logo */
  #gNavi.HeightMin #logo {
    width: 30%;
    padding-top: 5px;
  }
  #gNavi.HeightMin #logo a {
    width: 80%;
    height: auto;
  }
  #gNavi.HeightMin #logo a img {
    width: 100%;
    height: auto;
  }
  /* Grobal Navigation */
  #gNavi.HeightMin ul li a {
    padding: 18px 2%;
  }
  #catchCopy {
    font-size: 3rem;
  }
  #newsPickup {
    width: 40%;
    bottom: 160px;
  }
  #newsPickup h2 {
    padding-left: 5%;
  }
  .scrolldown {
    bottom: 135px;
    right: 50px;
  }
  #concept {
    position: relative;
    padding-bottom: 160px; /* ハートがはみ出さないよう少し余白を追加 */
  }
  #concept .row {
    width: inherit;
  }
  /* Title */
  #concept h2 {
    font-size: 4.2rem;
    position: relative;
    margin-bottom: 100px; /* ハートが下のテキストに重ならないよう確保 */
  }
  /* 左下ハート（b::after） */
  #concept h2 b::after {
    content: '';
    position: absolute;
    z-index: 0; /* テキストの背面に配置 */
    width: 160px;
    height: 144px;
    background: url("../img/top/con_harts.webp") no-repeat 0 0 / 160px 144px;
    top: 460px; /* 元より少し下げる（400→460） */
    left: 60px; /* 少し内側へ寄せる */
    animation: fuwafuwa3 2s infinite ease-in-out .6s alternate;
    opacity: 0.85; /* 軽く透けさせて重なっても見やすく */
  }
  /* 右上ハート（strong::after）を非表示 */
  #concept h2 strong::after {
    display: none;
  }
  /* テキスト部（p）も少し余裕を持たせる */
  #concept p {
    position: relative;
    z-index: 1; /* ハートより前面に出す */
    margin-top: 40px;
  }
  /* ====================================================
      curriculum - Day & Event
  ==================================================== */
  #curriculum section.flex.row {
    padding-bottom: 0;
  }
  /* -------------------------------
      Activity / Schedule / Event
  ------------------------------- */
  #curriculum div.flex {
    padding: 50px 50px 0;
  }
  /* Title */
  #curriculum div.flex section h4 {
    font-size: 2rem;
  }
  /* ====================================================
      Information
  ==================================================== */
  #information .row {
    padding-bottom: 0;
  }
  /* -------------------------------
      Other Link
  ------------------------------- */
  /* Title */
  #information div.flex section h3 {
    font-size: 2rem;
  }
  /* -------------------------------
      Link - Disclosure
  ------------------------------- */
  #disclosure div.flex {
    width: 80%;
  }
  /* ====================================================
      News & Photo Blog
  ==================================================== */
  #newsBlogArea .row {
    padding-bottom: 50px;
  }
  /* -------------------------------
      News
  ------------------------------- */
  #newsBlogArea #news {
    width: 50%;
    min-height: 490px;
  }
  /* List */
  #newsBlogArea #news li a {
    display: block;
    padding: 26px 0 24px;
    position: relative;
    letter-spacing: 0.05em;
  }
  #newsBlogArea #news li a time {
    width: 100%;
    margin-right: 0;
    margin-bottom: 5px;
    border-right: none;
  }
  #newsBlogArea #news li a span {
    width: 100%;
  }
  /* Button */
  #newsBlogArea #news .btnColor {
    margin-top: 40px;
  }
  #newsBlogArea #news .btnColor a {
    width: 300px;
  }
  /* -------------------------------
      Photo Blog
  ------------------------------- */
  /* Photo */
  #newsBlogArea #photoBlog ul {
    min-height: 458px;
  }
  #newsBlogArea #photoBlog li:nth-child(1) {
    top: 220px;
    right: 0;
  }
  /* Decoration */
  #newsBlogArea #photoBlog li:nth-child(1)::before {
    width: 228px;
    height: 126px;
    background-size: 228px 126px;
    left: -50px;
  }
  #newsBlogArea #photoBlog li:nth-child(2)::after {
    width: 84px;
    height: 60px;
    background-size: 84px 60px;
    bottom: 85px;
    left: inherit;
    right: -70px;
  }
}
@media screen and (max-width: 896px) {
  #main .row {}
  #main::after {
    width: 200px;
    height: 200px;
    background-size: 200px;
    bottom: -200px;
    right: 200px;
  }
  #gHeader {
    height: auto;
    bottom: inherit !important;
  }
  /* Logo */
  #gNavi #logo {
    width: 240px;
    height: 62px;
    position: relative;
    top: 0;
    left: 0;
    transform: translate(0%, 0%);
    -webkit-transform: translate(0%, 0%);
    -ms-transform: translate(0%, 0%);
  }
  #gNavi #logo a {
    width: 100%;
  }
  #gNavi #logo a img {
    width: 100%;
    height: auto;
  }
  #gNavi #logo a img.firstView {
    display: none;
  }
  #gNavi #logo a img.normalView {
    display: block;
  }
  /* Grobal Navigation */
  #gNavi {
    height: 80px;
    top: 0;
    background: #fff;
  }
  #gNavi::before {
    bottom: 50px;
  }
  #gNavi ul {
    width: 94%;
  }
  #gNavi ul li a {
    font-size: 1.6rem;
  }
  #gNavi ul, #gNavi ul li, #gNavi ul li:nth-child(2) a, #gNavi ul li:nth-child(3) a {
    background-size: 8px 60px;
  }
  #gNavi ul li a {
    padding: 14px 2%;
  }
  /* Logo */
  #gNavi.HeightMin #logo {
    width: 240px;
    height: 62px;
  }
  #gNavi.HeightMin #logo a {
    width: 100%;
    height: auto;
  }
  #gNavi.HeightMin #logo a img {
    width: 100%;
    height: auto;
  }
  /* Grobal Navigation */
  #gNavi.HeightMin {
    height: 80px;
  }
  #gNavi.HeightMin ul li a {
    padding: 18px 2%;
  }
  #gNavi.fix {
    background: #fff;
  }
  #mainVisual::after {
    width: 200px;
    height: 150px;
    background-size: 200px 150px;
    top: 80px;
    right: -50px;
  }
  #catchCopy {
    width: 80%;
    top: 50%;
  }

  #catchCopy img {
    width: 70%;   /* スマホでは画面幅の 70% くらいに */
    height: auto;
  }
  #newsPickup {
    width: 100%;
    bottom: 0;
    border-radius: 0;
    padding: 15px 0;
    z-index: 999;
  }
  #newsPickup::after {
    content: '';
    width: 140px;
    height: 120px;
    background: url("../img_common/img_texture_green_06.png") no-repeat 0 0 / 140px 120px;
    animation: fuwafuwa3 5s infinite ease-in-out .8s alternate;
    display: block;
    bottom: 4em;
    left: -50px;
    position: absolute;
  }
  #newsPickup h2 {
    padding: 5px 0 5px 5%;
  }
  #newsPickup p a {
    padding: 5px 0;
  }
  .scrolldown {
    right: 30px;
    bottom: 65px;
  }
  

 #concept {
    position: relative;
    padding-bottom: 25px; /* ← 270px → 140px に変更で空白を半分程度に */
  }

  #concept .row {
    width: inherit;
  }

  /* Title */
  #concept h2 {
    font-size: 3rem;
    padding-top: 120px;  /* 少し上げて全体のバランス調整 */
    padding-bottom: 6px;
    position: relative;
    margin-bottom: 40px; /* 下余白も控えめに */
  }

  /* ハート */
  #concept h2 b::after {
    content: '';
    position: absolute;
    z-index: 0;
    width: 150px;
    height: 135px;
    background: url("../img/top/con_harts.webp") no-repeat 0 0 / 150px 135px;
    top: -100px;   /* 少し上に */
    right: 15px;   /* 内側へ寄せて中央寄りに */
    animation: fuwafuwa3 2s infinite ease-in-out .6s alternate;
    opacity: 0.9;
  }

  /* 右上ハート非表示 */
  #concept h2 strong::after {
    display: none;
  }

  /* テキスト */
  #concept p {
    padding: 0 8%;
    text-align: left;
    position: relative;
    z-index: 1;
  }
	
  #curriculum {
    padding-top: 25px;
  }
  #curriculum section.flex {
    margin-top: 0;
    flex-direction: column;
  }
  #curriculum section.flex .textBox {
    width: 80%;
    padding: 50px 10% 30px;
    top: -50px;
    margin-bottom: 0;
    order: 2;
  }
  #curriculum section.flex .textBox::before {
    width: 200px;
    height: 184px;
    background-size: 200px 184px;
    top: -130px;
    left: -140px;
  }
  #curriculum section.flex .textBox::after {
    width: 100px;
    height: 73px;
    background-size: 100px 73px;
    top: -40px;
    left: 0;
  }
  #curriculum h2 {
    padding: 5px 0 10px;
  }
  #curriculum h3 {
    font-size: 2.4rem;
    padding: 0 0 30px;
  }
  #curriculum h3 span {
    font-size: 1.4rem;
  }
  #curriculum .btnArrow {
    width: auto;
    justify-content: flex-start;
    margin: 10px 0 0;
    padding: 0;
  }
  #curriculum section.flex .photo {
    width: 100%;
    top: 0;
    right: -15%;
    position: relative;
    order: 1;
  }
  #curriculum section.flex .photo::before {
    width: 221px;
    height: 151px;
    background-size: 221px 151px;
    bottom: -140px;
    right: 20px;
  }
  #curriculum div.flex {
    display: block;
    padding: 0;
  }
  #curriculum div.flex section {
    width: 80%;
    margin: 0 auto 40px;
  }
  /* Layout */
  #curriculum div.flex section:nth-child(1), #curriculum div.flex section:nth-child(3) {
    margin-top: 0;
  }
  /* Speech Bubbles */
  #curriculum div.flex section .speechBubbles {
    width: 100px;
    height: 100px;
    background-size: 100px 100px;
    top: -10px;
    left: -10px;
  }
  #curriculum div.flex section .speechBubbles span {
    font-size: 1.1rem;
  }
  /* Photo */
  #curriculum div.flex section a .photo::after {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
  /* Title */
  #curriculum div.flex section h4 {
    font-size: 2rem;
    padding: 15px 0 10px;
  }
  /* Text */
  #curriculum div.flex section .text {
    font-size: 1.4rem;
    padding: 0 10%;
  }
  #information::before {
    width: 100px;
    height: 200px;
    background-size: 100px 200px;
    top: -30px;
    left: 20px;
  }
  /* -------------------------------
      Service List
  ------------------------------- */
  #information ul.flex_center {
    width: 100%;
  }
  #information ul.flex_center::before {
    width: 100px;
    height: 200px;
    background-size: 100px 200px;
    top: -50px;
    right: -10px;
    z-index: -1;
  }
    
    #information ul.flex_center::after {
    width: 182px;
  height: 126px;
  background-size: 182px 126px;
    top: -120px;
  left: -20px;
    z-index: -1;

  }
  #information ul.flex_center li:first-child {
    width: 100%;
    text-align: center;
  }
  #information ul.flex_center li:first-child img {
    width: 48%;
    height: auto;
  }
  #information ul.flex_center li {
    width: 46%;
    padding: 0 2%;
  }
  /* -------------------------------
      Other Link
  ------------------------------- */
  #information div.flex {
    display: block;
    background: none;
  }
  #information div.flex section {
    width: 90%;
    margin: 0 auto 10px;
    background: none;
  }
  /* Photo */
  #information div.flex section .photo {
    padding: 0;
  }
  /* Title */
  #information h2 {
    padding: 10px 0 30px;
  }
  #information div.flex section h3 {
    font-size: 2rem;
  }
  /* Text */
  #information div.flex section .text {
    padding: 0 10%;
  }
  /* Button */
  #information div.flex section .btnColor {
    margin-top: 20px;
  }
  /* -------------------------------
      Link - Disclosure
  ------------------------------- */
  #disclosure {
    padding-bottom: 0;
  }
  #disclosure a {
    border-radius: 20px;
    padding: 40px 0 35px;
  }
  #disclosure a::after {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
  #disclosure div.flex {
    width: 100%;
  }
  /* Title */
  #disclosure h4 {
    width: 100%;
    font-size: 2rem;
    line-height: 1.4;
  }
  #disclosure h4 span {
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    padding-top: 5px;
  }
  /* Text */
  #disclosure p {
    width: 80%;
    font-size: 1.1rem;
    line-height: 1.4;
    padding-top: 20px;
  }
  #disclosure p::before {
    content: none;
  }
  /* ====================================================
      News & Photo Blog
  ==================================================== */
  #newsBlogArea div.flex {
    display: block;
  }
  /* -------------------------------
      News
  ------------------------------- */
  #newsBlogArea #news {
    width: 100%;
    min-height: auto;
  }
  /* Title */
  #newsBlogArea #news h2 {
    padding-bottom: 0;
  }
  /* List */
  #newsBlogArea #news li a {
    display: block;
    padding: 26px 0 24px;
    position: relative;
    letter-spacing: 0.05em;
  }
  #newsBlogArea #news li a time {
    width: 100%;
    margin-right: 0;
    margin-bottom: 5px;
    border-right: none;
  }
  #newsBlogArea #news li a span {
    width: 100%;
  }
  /* Button */
  #newsBlogArea #news .btnColor {
    margin-top: 10px;
  }
  #newsBlogArea #news .btnColor a {
    width: 80%;
  }
  /* -------------------------------
      Photo Blog
  ------------------------------- */
  #newsBlogArea #photoBlog {
    width: 100%;
    min-height: auto;
    position: relative;
    margin-top: 120px;
  }
  /* Title */
  #newsBlogArea #photoBlog h2 {
    top: 0;
    right: 0;
  }
  /* Photo */
  #newsBlogArea #photoBlog ul {
    min-height: 280px;
  }
  #newsBlogArea #photoBlog li {
    width: 60%;
    height: auto;
  }
  #newsBlogArea #photoBlog li:nth-child(1) {
    top: 120px;
    right: 0;
  }
  /* Decoration */
  #newsBlogArea #photoBlog li:nth-child(1)::before {
    width: 228px;
    height: 126px;
    background-size: 228px 126px;
    left: -50px;
  }
  #newsBlogArea #photoBlog li:nth-child(2)::after {
    width: 84px;
    height: 60px;
    background-size: 84px 60px;
    bottom: -50px;
    left: 30px;
  }
  /* Button */
  #newsBlogArea #photoBlog .btnColor a {
    width: 80%;
  }
  /* ====================================================
      After School
  ==================================================== */
  /* -------------------------------
      Logo
  ------------------------------- */
  #intro-s h2 {
    width: 100%;
  }
  /* -------------------------------
      Text
  ------------------------------- */
  #intro-s p {
    font-size: 1.4rem;
    text-align: left;
    padding: 0 5%;
  }
  /* -------------------------------
      Button
  ------------------------------- */
  #intro-s .btn {
    width: 80%;
  }
}
/* ====================================================
		value
==================================================== */
#value {
  background-color: #fef9fb;
}
#value .row {
  width: 980px;
}
#value p.lead {
  padding: 0 60px;
}
#value .flex {
  font-size: 2.4rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1.5;
  text-align: center;
  padding: 50px 0 0;
}
#value .flex li {
  width: 32%;
  background: #fff;
  animation: none;
  padding: 40px 2px 10px; /* 下を減らす */
  margin: 0 3px;
  position: relative;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  aspect-ratio: 16 / 9;
  border-radius: 20px;
}
#value .flex li:nth-child(1) span {
  color: #eb6ea0 !important;
}
#value .flex li:nth-child(2) span {
  color: #0068b7 !important;
}
#value .flex li:nth-child(3) span {
  color: #ED2864 !important;
}
/* Icon */
#value .flex li::before {
  content: '';
  width: 24px;
  height: 24px;
  animation: kakukaku2 4s step-start 0s infinite normal;
  background: url("../img/icon/midashi-icon.webp") no-repeat 0 0 / 24px;
  display: block;
  margin: 0 auto 10px;
}
#value .flex li:nth-child(1)::before {
  animation: kakukaku2 4s step-start 0s infinite normal;
  background-image: url("../img/icon/midashi-icon.webp");
}
#value .flex li:nth-child(2)::before {
  animation: kakukaku2 6s step-start .2s infinite normal;
  background-image: url("../img/icon/midashi-icon.webp");
}
#value .flex li:nth-child(3)::before {
  animation: kakukaku2 5s step-start .1s infinite normal;
  background-image: url("../img/icon/midashi-icon.webp");
}
#value h2 {
  font-family: 'Bungee', cursive;
  font-size: 5.5rem;
  color: #001e43;
}
#value h2 strong span {
  color: #0068b7;
}
#value h3 {
  font-family: 'Bungee', cursive;
  font-size: 2.5rem;
  color: #001e43;
  text-align: center;
}
#value h2::before {
  content: "";
  width: 270px;
  height: 270px;
  background: url("../img/top/value.webp") no-repeat 0 0 / 270px;
  animation: fuwafuwa4 2s infinite ease-in-out .2s alternate;
  top: 400px;
  right: -300px;
  display: block;
  position: absolute;
  z-index: -10;
}
@media screen and (min-width: 897px) and (max-width: 1299px) {
  #value h2::before {
    top: 400px;
    right: -150px;
    z-index: -10;
  }
}
@media screen and (max-width: 896px) {
  #value {
    padding: 20px 5% 20px;
  }
  #value .row {
    width: inherit;
  }
  #value h2 {
    font-size: 3rem;
    padding-top: 30px;
  }
  #value p.lead {
    padding: 0;
  }
  #value .flex {
    font-size: 2rem;
    padding: 50px 0 0;
  }
  #value .flex li {
    width: 100%;
    padding: 40px 5px 50px;
    margin: 5px 0;
  }
  #value .flex li:nth-child(1) {
    right: 0;
  }
  #value .flex li:nth-child(2) {
    right: 0;
  }
  #value .flex li:nth-child(3) {
    left: 0;
  }
  #value h2::before {
    width: 200px;
    height: 200px;
    background-size: 200px;
    top: 450px;
    right: -80px;
  }
}
/* 通常は中黒を表示 */
.sp-hidden {
  display: inline;
}
/* スマホ時のみ中黒を非表示 */
@media screen and (max-width: 768px) {
  .sp-hidden {
    display: none;
  }
}
/* ====================================================
		元class-details  今class-details
==================================================== */
#class-details {
  position: relative;
  padding-bottom: 50px;
  background-color: #ffffdb;
}
#class-details section.flex {
  margin-top: 70px;
}
#class-details section.flex .textBox {
  width: 50%;
  background: #fff;
  animation: footeradd 20s ease 0s infinite;
  border-radius: 10% 40% 10% 40%/30% 30% 50% 30%;
  padding: 70px 70px 50px 40px;
  position: relative;
  margin-bottom: 0px;
}
#class-details section.flex .textBox::before, #class-details section.flex .textBox::after {
  content: '';
  display: block;
  position: absolute;
}
#class-details section.flex .textBox::before {
  width: 298px;
  height: 274px;
  animation: fuwafuwa3 2s infinite ease-in-out .6s alternate;
  background: url("../img/top/value.webp") no-repeat 0 0 / 298px 274px;
  left: -140px;
  z-index: -1;
}
#class-details h2 {
  padding: 150px 0 100px;
}

#class-details p {
  color: #001e43;
}
#class-details h3 {
  font-size: 3.6rem;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700 normal;
  color: #001e43;
  letter-spacing: 0.05em;
  padding: 0 0 40px;
}
#class-details h3 span {
  font-size: 1.6rem;
  color: #774935;
  display: block;
}
#class-details h3 strong {
  display: inline-block;
  border-bottom: 3px dotted #eb6ea0;
}
#class-details .btnArrow {
  width: 5.5em;
  justify-content: flex-end;
  margin: 20px 0 0 auto;
}
#class-details .btnArrow a {}
#class-details section.flex .photo {
  width: 70%;
  position: absolute;
  animation: fuwafuwa4 6s infinite ease-in-out .8s alternate;
  z-index: -1;
  top: -50px;
  right: -24%;
  border-radius: 16px;
}
#class-details section.flex .photo::before {
  content: '';
  width: 442px;
  height: 302px;
  animation: fuwafuwa3 5s infinite ease-in-out .3s alternate;
  background: url("../img/top/culi_reft_b.webp") no-repeat 0 0 / 442px 302px;
  display: block;
  position: absolute;
  bottom: -140px;
  right: 20px;
  z-index: 0;
}
#class-details div.flex {
  padding: 50px 0 0;
}
#class-details div.flex section {
  width: 30%;
  position: relative;
}
#class-details div.flex section a {
  position: relative;
}
/* Layout */
#class-details div.flex section:nth-child(1) {
  margin-top: 50px;
}
#class-details div.flex section:nth-child(3) {
  margin-top: 80px;
}
/* Speech Bubbles */
#class-details div.flex section .speechBubbles {
  width: 138px;
  height: 106px;
  animation: kakukaku1 2s step-start 0s infinite normal;
  background: url("../img_index/img_speech-bubbles_activity.png") no-repeat 0 0 / 138px 106px;
  position: absolute;
  top: -30px;
  left: -30px;
  z-index: 1 !important;
}
/* Photo */
#class-details div.flex section a .photo, #class-details div.flex section a:hover .photo, #class-details div.flex section a:hover .photo img {
  position: relative;
  z-index: -1;
}
#class-details div.flex section a .photo::after {
  content: '';
  width: 60px;
  height: 60px;
  background: url("../img_common/btn_arrow_brown.png") no-repeat 0 0 / 60px;
  display: block;
  transition: ease .2s;
  position: absolute;
  bottom: 0;
  right: 0;
}
#class-details div.flex section a:hover .photo::after {
  right: -10px;
}
/* Title */
#class-details div.flex section h4 {
  font-size: 2.4rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-style: normal;
  text-align: center;
  padding: 15px 0 10px;
}
/* Text */
#class-details div.flex section .text {
  font-size: 1.4rem;
  padding: 0 12%;
}
@media screen and (min-width: 897px) and (max-width: 1299px) {
  #class-details section.flex.row {
    padding-bottom: 0;
  }
  #class-details div.flex {
    padding: 50px 50px 0;
  }
  /* Title */
  #class-details div.flex section h4 {
    font-size: 2rem;
  }
}
@media screen and (max-width: 896px) {
  #class-details {
    padding-top: 10px;
    padding-bottom: 0px;
  }
  #class-details section.flex {
    margin-top: 0;
    flex-direction: column;
  }
  #class-details section.flex .textBox {
    width: 80%;
    padding: 50px 10% 10px;
    top: -50px;
    margin-bottom: 0;
    order: 2;
  }
  #class-details h2 {
    padding: 30px 0 50px;
  }
  #class-details h3 {
    font-size: 2.4rem;
    padding: 0 0 30px;
  }
  #class-details h3 span {
    font-size: 1.4rem;
  }
  #class-details .btnArrow {
    width: auto;
    justify-content: flex-start;
    margin: 10px 0 0;
    padding: 0;
  }
  #class-details section.flex .photo {
    width: 100%;
    top: 0;
    right: -15%;
    position: relative;
    order: 1;
  }
  #class-details section.flex .photo::before {
    width: 221px;
    height: 151px;
    background-size: 221px 151px;
    bottom: -140px;
    right: 20px;
  }
  #class-details div.flex {
    display: block;
    padding: 0;
  }
  #class-details div.flex section {
    width: 80%;
    margin: 0 auto 0px;
  }
  #class-details div.flex section:nth-child(1), #class-details div.flex section:nth-child(3) {
    margin-top: 0;
  }
  #class-details div.flex section .speechBubbles {
    width: 100px;
    height: 77px;
    background-size: 100px 77px;
    top: -10px;
    left: -10px;
  }
  #class-details div.flex section .speechBubbles span {
    font-size: 1.1rem;
  }
  #class-details div.flex section a .photo::after {
    width: 30px;
    height: 30px;
    background-size: 30px;
  }
  #class-details div.flex section h4 {
    font-size: 2rem;
    padding: 15px 0 10px;
  }
  #class-details div.flex section .text {
    font-size: 1.4rem;
    padding: 0 10%;
  }
}
#class-details section.flex + section.flex {
  margin-top: 50px; /* 上下が被らない適度な余白 */
}
#class-details section.flex .photo img {
  display: block; /* すき間防止 */
  width: 70%;
  height: auto;
  border-radius: inherit; /* 親(.photo)の 16px をそのまま使う */
  /* 直接値で固定したいなら → border-radius: 16px; */
}
@media screen and (max-width: 896px) {
  #class-details section.flex + section.flex {
    margin-top: 2px; /* 上下が被らない適度な余白 */
  }
}
#main #feedingService h3 {
  font-size: 2.6rem;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-style: normal;
  padding-bottom: 20px;
}
@media screen and (max-width: 896px) {
  #main #feedingService h3 {
    font-size: 2rem;
  }
}
#about.flex {
  align-items: center;
  position: relative;
  padding-bottom: 100px;
}
/* Photo */
#about p.photo {
  width: calc(50% - 54px);
  position: relative;
  right: 50px;
}
#about p.photo img {
  border-radius: 0 40px 40px 0;
}
/* Text */
#about section {
  width: 50%;
  padding-bottom: 20px;
}
#about section h3 {
  width: 400px;
  color: #001e43;
}
#about section p {
  width: 400px;
  color: #001e43;
}


#topNewsWrapper {
  max-width: 800px;
  margin: 0 auto;
  padding: 30px 40px;
  position: relative;
  background: #fff;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}

#topNewsWrapper h2 {
  font-size: 3rem;
  text-align: center;
  margin-bottom: 30px;
  color: #333;
}

#topNews {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#topNews p {
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 2px dotted #ff69b4; /* 濃いめのピンク */
  font-size: 1.7rem;
  text-align: left;
  line-height: 1.6;
  color: #444;
}

#topNews .news-date {
  font-weight: bold;
  color: #e91e63;
  margin-right: 12px;
}

#topNews .news-title {
  color: #222;
}

.news-button {
  text-align: right;
  margin-top: 30px;
}

.news-button a {
  display: inline-block;
  background: #e91e63;
  color: #fff;
  text-decoration: none;
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 1rem;
  transition: background 0.3s ease;
}

.news-button a:hover {
  background: #c2185b;
}


/* ==============================
   curriculum：EVENT(3つ目)だけ
   speechBubblesを写真サイズにしてリンク化
   ============================== */

/* 3つ目のカードだけ speechBubbles を「写真の代わり」にする */
#curriculum div.flex section:nth-child(3) a .speechBubbles{
  position: relative;     /* ← absolute を解除して中央に置けるように */
  top: auto;
  left: auto;

  width: min(320px, 86%); /* 写真っぽい大きさ。必要なら 360px などに */
  height: auto;
  aspect-ratio: 1 / 1;    /* 正方形のまま拡大 */
  margin: 0 auto 14px;    /* 中央寄せ＋下の余白を小さめに */

  background-size: 100% 100%;
  display: block;

  /* クリックできる感 */
  cursor: pointer;
}

/* bubble内の文字も少し大きく（小さすぎ対策） */
#curriculum div.flex section:nth-child(3) a .speechBubbles span{
  font-size: 1.8rem;
  letter-spacing: 0.12em;
}

/* 写真に付いてた矢印を bubble 側に付け替え（必要なら） */
#curriculum div.flex section:nth-child(3) a .speechBubbles::after{
  content: '';
  width: 60px;
  height: 60px;
  background: url("../img/icon/yajirushi.webp") no-repeat 0 0 / 60px;
  position: absolute;
  bottom: 0;
  right: 0;
  transition: ease .2s;
}

#curriculum div.flex section:nth-child(3) a:hover .speechBubbles::after{
  right: -10px;
}

/* スマホ：余白をさらに詰めて、見た目の密度を上げる */
@media screen and (max-width: 896px){
  #curriculum div.flex section:nth-child(3) a .speechBubbles{
    width: min(300px, 92%);
    margin-bottom: 10px;
  }
  #curriculum div.flex section:nth-child(3) a .speechBubbles span{
    font-size: 1.6rem;
  }
}

/* ==============================
   #curriculum bubbleCard：3つとも完全な円＋リンク（最終上書き）
   ※top.cssの一番下に置く
============================== */

/* カード全体 */
#curriculum .bubbleCard{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}

/* 3つとも中央揃え */
#curriculum div.flex section{
  text-align: center;
}

/* 矢印を全部消す（写真由来/吹き出し由来どっちも） */
#curriculum div.flex section a .photo::after,
#curriculum .bubbleCard .speechBubbles::after{
  content: none !important;
  display: none !important;
}

/* 円本体：3つとも同サイズに強制 */
#curriculum .bubbleCard .speechBubbles{
  position: relative !important;
  top: auto !important;
  left: auto !important;

  width: clamp(220px, 18vw, 300px) !important;
  height: clamp(220px, 18vw, 300px) !important;
  aspect-ratio: 1 / 1 !important;

  margin: 0 auto 12px !important;

  display: grid !important;
  place-items: center !important;

  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 100% !important;

  border-radius: 50% !important;   /* 完全円 */
  overflow: hidden !important;
  padding: 0 !important;
}

/* 既存の「top:50% left:50% transform」等を完全に無効化して中央固定 */
#curriculum .bubbleCard .speechBubbles span{
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  -webkit-transform: none !important;
  -ms-transform: none !important;

  display: block !important;
  width: 82%;
  text-align: center;

  color: #fff;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: clamp(1.5rem, 1.4vw, 2rem) !important;
  line-height: 1.25;
}

/* 説明文：詰めて大きめ */
#curriculum .bubbleCard .text{
  text-align: center;
  margin: 0 !important;
  padding: 0 10% !important;
  font-size: 1.5rem;
  line-height: 1.85;
  max-width: 24em;
}

/* ★3つ目だけ残ってる「3つ目専用指定」を完全に潰す（ここが肝） */
#curriculum div.flex section:nth-child(3) a .speechBubbles{
  height: clamp(220px, 18vw, 300px) !important;
}

/* スマホ：円を大きめ、間隔を詰める */
@media screen and (max-width: 896px){
  #curriculum .bubbleCard .speechBubbles{
    width: min(320px, 86vw) !important;
    height: min(320px, 86vw) !important;
    margin-bottom: 10px !important;
  }
  #curriculum .bubbleCard .text{
    padding: 0 8% !important;
    font-size: 1.6rem;
  }
}
/* スマホ：3つ目（年間行事）だけ縦につぶれるのを強制修正 */
@media screen and (max-width: 896px){
  #curriculum div.flex section:nth-child(3) .bubbleCard .speechBubbles{
    width: min(320px, 86vw) !important;
    height: min(320px, 86vw) !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
  }
}
@media screen and (max-width: 896px){
  #curriculum .bubbleCard .speechBubbles span{
    font-size: 2.4rem !important;   /* ← 基本はこれ */
    line-height: 1.3;
    letter-spacing: 0.06em;
  }
}
