@charset "utf-8";
/* CSS Document */
#contents .listPuncz {
  display: none;
}

/*共通*/
#contents section .page-title {
  margin-bottom: 40px;
}

/* ========== 注目情報：pickup-info-area ========== */
#pickup-info-area h2:after {
  background-color: transparent;
}
#pickup-info-area .conbox {
  margin-top: 0;
  padding: 2.5em;
}
#pickup-info-area .pickup-info-box {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1em;
}
#pickup-info-area .pickup-info-box .pickup-info-ttl {
  width: 13%;
  padding-bottom: 0px;
}
#pickup-info-area .pickup-info-box .pickup-info-txt {
  width: 85%;
  margin-top: -10px;
}
#pickup-info-area .pickup-info-box .pickup-info-txt ul {
  padding-bottom: 0px;
}
#pickup-info-area .pickup-info-box .pickup-info-txt li {
  border-bottom: 1px solid #e2e2e2;
  padding: 1em 0px 0.75em 0.75em;
  position: relative;
}
#pickup-info-area .pickup-info-box .pickup-info-txt li a {
  color: #404040;
}
#pickup-info-area {
  padding: 4em 0;
}
/* ========== ページ内リンク：top-pagenav ========== */
#top-pagenav ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  border-top: 1px solid #ddd;
  border-bottom: 4px solid #31b8bd;
}
#top-pagenav li {
  flex: 1;
  position: relative;
  padding: 0;
  text-align: center;
}
#top-pagenav li span {
  position: static !important;
}
/* 区切り線 */
#top-pagenav li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  width: 1px;
  background-color: #ddd;
  top: 20%;
  bottom: 20%;
  pointer-events: none;
}
#top-pagenav li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25em;
  padding: 1.5em 1em;
  text-decoration: none;
  color: inherit;
  width: 100%;
  height: 100%;
  transition: all 0.3s ease;
}
/* 上の文字 */
#top-pagenav li span {
  display: block;
  color: #31b8bd;
  font-size: 1em;
  font-weight: bold;
  margin: 0 auto;
}
/* 下の文字 */
#top-pagenav li b {
  display: inline-flex;
  align-items: center;
  font-size: 1.1em;
  color: #404040;
  position: relative;
}
/* アイコン画像 */
#top-pagenav li b::before {
  content: "";
  display: inline-block;
  background-image: url("../img/common/ico-arrow-bottom.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 20px;
  height: 20px;
  margin-right: 0.5em;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
/* ▼ホバー時の動き */
#top-pagenav li a:hover {
  text-decoration: none;
  opacity: 0.8;
}
/* ========== kashiko™︎について：about-area ========== */
#about-area {
  background: url("../img/top/bgi-concept.webp") no-repeat;
  background-size: cover;
  background-position: center;
  padding: 8em 0;
  text-align: center;
  margin: 0 auto;
}
#about-area .about-lead {
  font-size: 2.25em;
  font-weight: bold;
  margin-bottom: 40px;
}
#about-area h2:after {
  background-color: transparent;
}
#about-area h3 {
  font-weight: 600;
  font-size: 1.5em;
  margin-bottom: 1em;
}
#about-area p {
  font-size: 1.125em;
  margin-bottom: 0.8em;
}
#about-area p a {
  margin-top: 3em;
}
/* 代表メッセージ：message-area */
#message-area {
  background: #e9f9f7;
  padding: 7em 0;
}
#message-area p {
  text-align: left;
}
#message-area h3 {
  font-weight: 600;
  font-size: 1.3em;
  margin-bottom: 1em;
}
#message-area .message-box {
  display: flex;
  justify-content: space-between;
}
#message-area .message-txt {
  width: 60%;
}
#message-area p {
  margin-bottom: 1.5em;
}
#message-area p.message-btn {
  margin-bottom: 0;
}
#message-area .representative {
  margin-top: 1em;
  font-weight: 600;
}
#message-area .representative span {
  font-size: 1.2em;
}
#message-area .message-box img {
  font-display: block;
  width: 36%;
  border-radius: 20px;
  margin-bottom: 2.5em;
  object-fit: cover;
}
/* ========== エリア共通 ========== */
#kashikoClassroom-area,
#kashikoMethod-area,
#kashikoTeacher-area,
#news-area {
  padding: 7em 0;
}
#kashikoClassroom-area .area-title,
#kashikoMethod-area .area-title,
#kashikoTeacher-area .area-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 2.8em;
}
#kashikoClassroom-area .area-title p,
#kashikoMethod-area .area-title p,
#kashikoTeacher-area .area-title p,
#others-area .area-title p {
  text-align: center;
}
#kashikoClassroom-area .class-box ul,
#kashikoMethod-area .class-box ul,
#kashikoTeacher-area .class-box ul,
#others-area .class-box ul {
  margin-bottom: 2.5em;
}
#kashikoClassroom-area .class-box ul li,
#kashikoMethod-area .class-box ul li,
#kashikoTeacher-area .class-box ul li,
#others-area .class-box ul li {
  margin-bottom: 2.5em;
}
/* ==========　kashiko教室：kashikoClassroom-area ========== */
/*  リンクボックスレイアウト  */
#kashikoClassroom-area .class-box ul {
  text-align: left;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#kashikoClassroom-area .class-box ul li {
  width: 48.5%;
}
/* 画像エリアの基準位置設定 */
#kashikoClassroom-area .card-image {
  position: relative;
  width: 100%;
  height: auto;
}
/* 画像そのもの */
#kashikoClassroom-area .card-image img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  display: block;
}
#news-area .card-image img {
  height: 332px;
}
/* --- バナー型リンク共通設定 --- */
#kashikoClassroom-area .box-shadow-link.banner-type {
  padding: 0;
  overflow: hidden;
  height: 180px;
  margin-bottom: 3em;
}
#kashikoClassroom-area .banner-type a {
  display: flex;
  width: 100%;
  height: 100%;
  text-decoration: none;
  align-items: center;
}
/* --- 画像の設定（ここが変更点） --- */
#kashikoClassroom-area .banner-img {
  width: 31%;
  height: 100%;
  object-fit: cover;
  display: block;
  vertical-align: bottom;
}
/* --- テキストエリア（変更なし） --- */
#kashikoClassroom-area .banner-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
}
#kashikoClassroom-area .banner-text p {
  font-size: 1.25em;
  margin: 0;
  line-height: 1.4;
}
#kashikoClassroom-area .text-sub {
  font-weight: bold;
  margin-bottom: 10px !important;
  border-bottom: 2px solid #58bfc2;
  padding-bottom: 0.4em;
}
#kashikoClassroom-area .text-main {
  font-size: 1.2em;
  font-weight: 700;
  border-bottom: 2px solid #58bfc2;
  display: inline-block;
  padding-bottom: 0.4em;
}
#kashikoClassroom-area .text-btn {
  font-size: 1.1em;
  font-weight: bold;
  color: #00b7b8;
  transition: transform 0.3s ease;
  margin-top: 0.8em !important;
}
#kashikoClassroom-area .text-btn::after {
  content: "→";
  margin-left: 8px;
}
/* ホバー時の動き */
#kashikoClassroom-area .banner-type:hover .text-btn {
  transform: translateX(5px);
}
/* kashikoメソッド講座：kashikoMethod-area */
/* ========== kashiko講師：kashikoCourse-area ========== */
#kashikoTeacher-area {
  margin-top: -3em;
  padding-top: 0 !important;
}
#kashikoTeacher-area .box-shadow-link {
  padding: 1.3em 2em;
}
#kashikoTeacher-area .box-shadow-link > a {
  display: flex;
  align-items: center;
  gap: 1.875em;
}
#kashikoTeacher-area .card-image {
  width: 100px;
  height: auto;
  flex-shrink: 0;
  margin: 0;
}
#kashikoTeacher-area .card-image img {
  width: 100%;
  height: 100%;
}
#kashikoTeacher-area .card-body {
  flex: 1;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25em;
}
#kashikoTeacher-area .card-body > div {
  text-align: left;
}
#kashikoTeacher-area .card-body p:first-of-type {
  margin-bottom: 0.5em;
}
/* --- ▼右側：詳しく見るボタン --- */
#kashikoTeacher-area .card-body > p:last-child {
  /* ボタンの形状 */
  display: flex;
  justify-content: center;
  align-items: center;
  width: 250px;
  padding: 12px 0;
  background-color: #fff;
  border: 2px solid #58bfc2;
  border-radius: 50px;
  color: #58bfc2;
  font-weight: bold;
  transition: all 0.3s ease;
  margin: 0;
}
#kashikoTeacher-area .card-body > p:last-child::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background-image: url("../img/common/ico-arrow-bl.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 0.6em;
  vertical-align: middle;
  transition: transform 0.3s ease;
  position: absolute;
  right: 4em;
}
/* --- ▼ホバー時の動き --- */
#kashikoTeacher-area .box-shadow-link:hover .card-body > p:last-child {
  opacity: 0.8;
  background: #fff;
  color: #31b8bd;
  text-decoration: none;
}
#kashikoTeacher-area .box-shadow-link:hover .card-body > p:last-child::after {
  transform: translateX(5px);
}
/* ========== もっと楽しみたい：Morekashiko-area ========== */
#morekashiko-area {
  background: #e9f9f7;
  padding: 7em 0;
}
#morekashiko-area h3 {
  font-size: 1.6em;
  margin-bottom: 1em;
}
/* --- エリア全体のレイアウト（リストを横並びにする） --- */
#morekashiko-area ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
  padding: 0;
  margin: 0;
}
/* リストアイテム（カードの外枠） */
#morekashiko-area ul .box-shadow-link {
  width: 48.5%;
  margin: 0 0 2.5em 0;
}
/* --- リンクの中身（画像とテキストを横並びにする） --- */
#morekashiko-area ul .box-shadow-link a {
  display: flex;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
/* --- 左側：画像エリア --- */
#morekashiko-area ul .box-shadow-link a .card-image {
  width: 35%;
  flex-shrink: 0;
  margin: 0;
}
#morekashiko-area .box-shadow-link a .card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* --- 右側：テキストエリア --- */
#morekashiko-area .box-shadow-link a .card-body {
  flex: 1;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}
/* ========== ニュースエリア：news-area ========== */
#news-area ul {
  display: flex;
  gap: 1.875em;
}
#news-area ul li {
  width: 32%;
  margin: 0 0 2.5em 0;
}
#news-area ul li span {
  position: static;
}
#news-area .card-body{
  padding: 1.5em;	
}
#news-area .box-shadow-link a .card-image {
  width: 100%;
  overflow: hidden;
  flex-shrink: 0;
  margin: 0;
}
#news-area .meta-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.6em;
}
#news-area .news-label {
  display: inline-block;
  padding: 0.25px 0.8em;
  border: 1px solid #58bfc2;
  border-radius: 20px;
  color: #00b7b8;
  font-size: 0.8em;
}
#news-area .news-date {
  font-size: 0.85em;
  color: #404040;
}
#news-area .news-title {
  margin: 0;
  line-height: 1.5;
}
/* ========== その他エリア：others-area ========== */
/* --- リンクボックスレイアウト --- */
#others-area {
  background: #e9f9f7;
  padding: 7em 0;
}
#others-area .others-box ul {
  text-align: left;
}
#others-area .others-box ul li {
  margin-bottom: 3em;
}
#others-area .others-box ul li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
/* --- リスト全体のレイアウト --- */
#others-area .link-mini {
  display: flex;
  justify-content: space-between;
  gap: 1.25em;
  padding: 0;
  margin: 0;
}
/* --- テキストのデザイン --- */
#others-area .others-box .link-mini li {
  margin: 0;
  font-weight: 700;
  font-size: 1.3em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 48%;
  padding: 1.5em 2em;
}
#others-area .link-mini .box-shadow-link a::after {
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  border: 2px solid #58bfc2;
  border-radius: 50%;
  background-image: url("../img/common/ico-arrow-mini.svg");
  background-repeat: no-repeat;
  background-position: center;
  transition: all 0.3s ease;
}
#others-area .link-mini .box-shadow-link:hover::after {
  background-position: calc(50% + 5px) center;
}

/***************************************************
 max-width: 768px以下のウィンドウ幅に適応
***************************************************/

@media screen and (max-width: 768px) {
  /*共通*/
  #contents section .page-title {
    margin-bottom: 40px;
  }
  /*エリア上下の余白*/
  #kashikoClassroom-area,
  #kashikoMethod-area,
  #kashikoTeacher-area,
  #news-area,
  #morekashiko-area,
  #others-area {
    padding: 4em 0;
  }

  /* 親要素：Flexboxを解除して縦積みに */
  .class-box ul,
  #news-area ul,
  #morekashiko-area ul,
  #morekashiko-area ul li a,
  #kashikoMethod-area ul li a,
  #kashikoTeacher-area ul li a,
  #kashikoTeacher-area .card-body,
  #kashikoClassroom-area .banner-type a,
  #others-area .others-box ul,
  #others-area .others-box ul li a,
  #pickup-info-area .pickup-info-box {
    display: block !important;
    width: 100%;
  }

  /* 子要素：ブロック要素にして、横幅もMAXにする */
  .message-box > *,
  .class-box ul > *,
  #news-area ul > *,
  #morekashiko-area ul > *,
  #morekashiko-area ul li a > *,
  #kashikoMethod-area ul li a > *,
  #kashikoTeacher-area ul li a > *,
  #kashikoTeacher-area .card-body > * #kashikoClassroom-area .banner-type a > *,
  #others-area .others-box ul > *,
  #others-area .others-box ul li a > *,
  #pickup-info-area .pickup-info-box > * {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }

  /* pickup-info-area */
  #pickup-info-area {
    padding: 5% 2%;
  }
  #pickup-info-area .pickup-info-box h2 {
    width: 38% !important;
    margin: 0 auto;
  }
  #pickup-info-area .conbox {
    padding: 5% 8% 10% 8%;
  }
  /* top-pagenav */
  #top-pagenav ul {
    flex-direction: column;
    padding: 30px 0;
    gap: 20px;
  }
  #top-pagenav li {
    margin: 0 5%;
  }
  #top-pagenav li a {
    padding: 0 1em;
  }
  #top-pagenav li:not(:last-child)::after {
    display: block;
    position: initial;
    top: auto;
    bottom: auto;
    right: auto;
    width: 100%;
    height: 1px;
    margin-top: 20px;
  }
  /* about-area */
  #about-area {
    text-align: left;
    padding: 4em 5%;
  }
  #about-area .about-lead {
    line-height: 1.5;
    font-size: 2em;
    text-align: center;
	margin-bottom: 1em;
  }
  #about-area h3 {
    font-size: 1.2em;
    margin-bottom: 1.25em;
	text-align: center;
  }
  #about-area p {
    font-size: 1em;
  }
  /* message-area */
  #message-area {
    padding-top: 4em;
    padding-bottom: 4em;
  }
  #message-area h3 {
    font-size: 1.3em;
  }
  #message-area .message-box {
    display: flex;
    flex-direction: column-reverse;
  }
  #message-area .message-txt {
    text-align: center;
  }
  #message-area .message-box img {
	  object-position: top;
	  max-width: 60%;
	  margin: 0 auto 2em;
  }
  #kashikoClassroom-area .area-title p,
  #kashikoMethod-area .area-title p,
  #kashikoTeacher-area .area-title p,
  #others-area .area-title p {
    text-align: left;
  }
/* morekashiko-area */
	#morekashiko-area .box-shadow-link a .card-image img{
		max-width:60%;
		border-radius: 10px;
		margin:30px auto 0;
	}
	 /* ness-area */
	#news-area .card-image img {
		height: 190px;
	}

  /* ========== エリア共通 ========== */
  #kashikoClassroom-area .class-box ul li,
  #kashikoMethod-area .class-box ul li,
  #kashikoTeacher-area .class-box ul li,
  #others-area .class-box ul li,
  #morekashiko-area ul .box-shadow-link,
  #news-area ul .box-shadow-link,
  #others-area .others-box ul .box-shadow-link,
  #others-area .others-box .link-mini .box-shadow-link {
    margin-bottom: 1.25em;
  }

  /* kashikoClassroom-area */
  #kashikoClassroom-area .banner-type a img:nth-of-type(2) {
    display: none;
  }
  #kashikoClassroom-area .area-title {
    position: relative;
  }
  #kashikoClassroom-area .area-title .title-ribbon {
    margin-bottom: 18px;
  }
  #kashikoClassroom-area .area-title .title-lead {
    text-align: center;
  }
  #kashikoClassroom-area .banner-text {
    margin: 1.5em 0;
  }
  #kashikoClassroom-area .banner-text p {
 	
  }
  #kashikoClassroom-area .box-shadow-link.banner-type {
    height: auto;
    margin-top: 3em;
  }
  #kashikoClassroom-area .banner-type img {
    width: 100%;
  }
  #kashikoClassroom-area .banner-type a {
    height: auto;
  }
	
  /* kashikoTeacher-area */
  #kashikoTeacher-area .card-image,
  #kashikoTeacher-area h4,
  #kashikoTeacher-area .card-body {
    margin-bottom: 0.8em;
  }
  #kashikoTeacher-area .card-image img {
    display: block;
    width: 30%;
    margin: 0 auto;
  }
  #kashikoTeacher-area .card-body > p:last-child {
    width: 100%;
  }
  /* others-area */
  #others-area .link-mini > *:first-child {
    margin-bottom: 2em;
  }
  #others-area .others-box .link-mini li a {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }
  #others-area .others-box .link-mini .box-shadow-link:last-child {
    margin-bottom: 0;
  }
  /*kashikoTeacher-area*/
  #kashikoTeacher-area .area-title .title-lead {
    text-align: center;
  }
  #kashikoTeacher-area .box-shadow-link {
    padding: 1.25em 1.25em 1.875em 1.25em;
  }
  #kashikoTeacher-area .card-body > div {
    text-align: center;
  }
  #kashikoTeacher-area .card-body h4 {
    align-items: center;
    text-align: center;
  }
}
