/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

.btn {
    display: inline-block;
    padding: 8px 14px;
    font-size: 0.9rem;
    background: #0073e6;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
  }
  .btn i {
    margin-left: 6px; /* テキストとアイコンの間隔 */
    font-size: 0.85em;
  }
/*----------------------------------------------------------------------------------------------------------------------------------------*/
.center-box { position: relative; }
.center-box .center-abs {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}

.card-button {
  display: flex;
  align-items: center;
  width: 400px;
  max-width: 100% !important;
  padding: 15px 10px;
  line-height: 1.4;
  text-align: left;
  text-decoration: none !important;
  background-color: #D9BF60;
  box-shadow: 3px 5px 0px #65561f !important;
  border-radius: 5px;
  transition: 0.3s;
  color: #000;
}

.card-button:hover {
  box-shadow: unset !important;
  transform: translateY(4px);
}

.card-button .card-icon {
  width: 70px;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 0.5rem;
  flex-shrink: 0;
}

.card-button .card-icon img {
  width: 100%;
}

.card-button .card-text h3 {
  margin: 0;
font-size: 1.5rem;
    color: #000;
}

.card-button .card-text p {
  margin: 0.2rem 0 0;
  font-size: 0.9rem;
}
@media screen and (max-width: 844px) and (min-width: 768px) {
  .card-button .card-text h3 {
    font-size: 1.1rem;
  }

  .card-button .card-icon {
    width: 50px;
    height: 50px;
  }
}

/*******あとで移動　チェックボックス******/
ul.check {
	display: inline-block;
  border: solid 3px #fe8ea6;
  padding: 0.5em 1em 0.5em 2.3em;
  position: relative;
border-radius: 10px;
background-color: #fffafb;
}

ul.check li {
  line-height: 1.5;
  padding: 0.5em 0;
  list-style-type: none!important;
}

ul.check li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f00c";
  position: absolute;
  left : 1em;
  color: #fe8ea6; 
}

/*チェックボックス(青)*/
ul.check.blue {
display: inline-block;
    border: unset;
    padding: 0.5em 1em 0.5em 2.3em;
    position: relative;
    border-radius: 10px;
    background-color: unset;
}
ul.check.blue li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f4ad";
  position: absolute;
  left : 1em;
  color: #1e3b49; 
}

/*右側追従ボタン「オープンスクール」「個別相談」「資料請求」*/
.floating-tabs {
  position: fixed;
  z-index: 9999;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

@media (min-width: 601px) {
  .floating-tabs {
    top: 15%;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .floating-tab {
    writing-mode: vertical-rl;
        text-orientation: upright;
        background-color: #D9BF60;
        padding: 1rem;
        color: #000 !important;
        text-align: center;
        text-decoration: none;
        font-weight: bold;
        font-size: 0.9rem;
        transition: background-color 0.3s ease;
  }

  .floating-tab:hover {
    background-color: #f3d25d;
	  color: #fff;
  }
}

@media (max-width: 600px) {
  .floating-tabs {
    bottom: 0;
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    background-color: #fff;
    border-top: 2px solid #000;
  }

  .floating-tab {
    writing-mode: horizontal-tb;
    background-color: #bf1734;
    border-right: 2px solid #000;
    color: #fff!important;
    text-align: center;
    padding: 0.7rem 0;
    font-weight: bold;
    font-size: 0.9rem;
    flex: 1;
    text-decoration: none;
  }

  .floating-tab:last-child {
    border-right: none;
  }


  /* 非表示時（button-sectionが見えたら） */
  .floating-tabs.hide-on-section {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
	
	.ast-scroll-to-top-right {
    right: 10px;
    bottom: 55px;
}
}

/*メニューアンカーとヘッダー高さ調節*/
:target::before {
  content: "";
  display: block;
  height: 80px;
  margin-top: -80px;
}
@media (max-width: 768px) {
  :target::before {
    height: 60px;
    margin-top: -60px;
  }
}
@media (max-width: 480px) {
  :target::before {
    height: 50px;
    margin-top: -50px;
  }
}
/*慣性スクロール*/
html.lenis-smooth {
  height: auto;
}

.lenis-smooth {
  scroll-behavior: auto !important;
}

/*カーソル選択背景色*/
::-moz-selection {
  background-color: #dabf60;
}
::selection {
  background-color: #dabf60;
}

.w100{
width:100%!important;
}
.w70{
	width: 70%;
}
.w60{
	width: 60%;
}
.w50{
	width: 50%;
}
.w40{
	width: 40%;
}
.w30{
	width: 30%;
}
.m-all-0 {
  margin: 0 !important;
}

.m-all-1 {
  margin: 1rem !important;
}

.m-t-1 {
  margin-top: 1rem !important;
}

.m-b-1 {
  margin-bottom: 1rem !important;
}

.m-all-2 {
  margin: 2rem !important;
}

.m-t-2 {
  margin-top: 2rem !important;
}

.m-l-2 {
  margin-left: 2rem !important;
}
.m-b-0 {
  margin-bottom: 0rem !important;
}
.m-b-2 {
  margin-bottom: 2rem !important;
}
.m-t-0 {
  margin-top: 0rem !important;
}
.m-t-3 {
  margin-top: 3rem !important;
}

.m-b-3 {
  margin-bottom: 3rem !important;
}

.m-t-4 {
  margin-top: 4rem !important;
}

.m-b-4 {
  margin-bottom: 4rem !important;
}

.m-t-5 {
  margin-top: 5rem !important;
}

.m-b-5 {
  margin-bottom: 5rem !important;
}
.m-t--2 {
  margin-top: -2px !important;
}
.m-t--1 {
  margin-top: -1rem !important;
}
.m-t--3 {
  margin-top: -3rem !important;
}
.m-t--7 {
  margin-top: -7rem !important;
}

.p-all-0 {
  padding: 0rem !important;
}
.p-all-05 {
  padding: 0.5rem !important;
}
.p-all-1 {
  padding: 1rem !important;
}

.p-all-2 {
  padding: 2rem !important;
}
.p-all-3 {
  padding: 3rem !important;
	box-sizing:border-box;
}
.p-t-1{
	padding-top: 1rem !important;
}
.p-t-2{
	padding-top: 2rem !important;
}
.p-rl-0 {
  padding-right: 0rem !important;
	padding-left: 0rem !important;
}
.p-r-1 {
  padding-right: 1rem !important;
	box-sizing:border-box;
}
.p-l-1 {
  padding-left: 1rem !important;
	box-sizing:border-box;
}
.p-b-0{
	padding-bottom: 0rem !important;
}
.p-b-1 {
  padding-bottom: 1rem !important;
}
.p-b-2 {
  padding-bottom: 2rem !important;
}
.p-b-4 {
  padding-bottom: 4rem !important;
}
.p-t-3 {
  padding-top: 3rem !important;
}
.p-t-4 {
  padding-top: 4rem !important;
}
.p-t-5 {
  padding-top: 5rem !important;
}

.p-b-5 {
  padding-bottom: 5rem !important;
}

.max90 {
  max-width: 90%;
}

@media (max-width: 768px) {
  .max90 {
    max-width: unset;
  }

}

.line-h-2{
	line-height: 2 !important;
}
.text-center{
	text-align: center !important;
}
.text-left{
	text-align: left !important;
}
.text-right{
	text-align: right !important;
}

.flex-wrap{
display: flex;
width: 100%;
gap: 20px;
}

@media (max-width: 600px) {
  .flex-wrap {
    flex-direction: column;
  }
.w70,
.w60,
.w50,
.w40,
.w30 {
    width: 100% !important;
  }
	.column-reverse{
		flex-direction: column-reverse!important;
	}
}

/*角丸*/
.raund100 {
  border-radius: 100px !important;
}
.raund30{
  border-radius: 30px !important;
}
.raund15 {
  border-radius: 15px !important;
}
.raund5 {
  border-radius: 5px !important;
}

/*シャドウ*/
.shadow {
  box-shadow: 5px 5px 0px 0px rgba(0, 0, 0, 1);
}

.shadow02 {
  box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.5);
}
/*マーカー下線*/
.marker01 {
background: linear-gradient(transparent 60%, #fff100 0);
font-weight:bold;
}
.marker02 {
background: linear-gradient(transparent 60%, #fff2c6 0);
font-weight:bold;
}
/*枠線*/
.border{
	border: 3px solid black;
}
.border-red{
	border: 2px solid #bf1734;
}

/*リンク下線削除*/
.text-deco-none {
	text-decoration: none!important;
}
.text-deco-none a{
	text-decoration: none!important;
}
/*回転*/
.rotate{
	transform:rotate(-8deg); 
}
/*背景色*/
.pink{
	background-color:#FFECF0!important;
}
.beige{
	    background-color: #F4EBD0!important;
}
.white{
	    background-color: #fff!important;
}

/*方眼*/
.grid-box {
  background-image: linear-gradient(transparent calc(100% - 1px), #e6edf3 50%, #e6edf3), linear-gradient(90deg, transparent calc(100% - 1px), #e6edf3 50%, #e6edf3);
  background-size: 15px 15px;
  background-repeat: repeat;
  background-color: #ffffff;
  color: #333333;
}

/*区切り線(円)*/
.curved {
  position: relative;
  background: #fee1e800;
  height: 50vh;
}

.curved::after {
  content: '';
  border-top-left-radius: 50% 100%;
  border-top-right-radius: 50% 100%;
  position: absolute;
  bottom: 0;
  width: 100%;
  background: #ffecf0;
  height: 20%;
}
/*吹き出し*/
.fukidashi-01-02 {
  position: relative;
  width: fit-content;
  padding: 12px 16px;
  border-bottom: 2px solid #333333;
}
.fukidashi-01-02::after {
  content: "";
  position: absolute;
  top: calc(100% + 5px);
  left: 50%;
  width: 30px;
  height: 2px;
  box-sizing: border-box;
  background-color: #333333;
  /*box-shadow: 0 2px 0 #ffffff, 0 -2px 0 #ffffff;*/
  rotate: 50deg;
  translate: -25%;
}

/*中央配置*/
.half{
	left: 50%!important;
  transform: translateX(-50%)!important;
}
/*メインタイトルフォント*/
/*.main-title01 {
      font-weight: bold;
      font-size: 24px;
      color: #000;
    }
.main-title02 {
      font-size: 3rem;
      font-weight: bold;
      color: white;
      text-shadow:
        -2px -2px 0 #333,
        2px -2px 0 #333,
        -2px 2px 0 #333,
        2px 2px 0 #333,
        0 0 0 #333;
	z-index: 5!important;
      display: inline-block;
      position: relative;
	font-family: 'M PLUS Rounded 1c', sans-serif!important;
    }

    .main-title02::after {
		content: var(--data-text);
  white-space: pre-line;
      position: absolute;
      left: 0;
      top: 0;
      color: #fd8ea7!important;
      z-index: -1!important;
      transform: translate(0px, 7px);
    }
.main-title02.font-big {
      font-size: 4rem;
    }
.main-title02.font-big::after {
      transform: translate(0px, 9px);
    }

@media (max-width: 500px) {
.main-title02 {
      font-size: 2.4rem;
    }
	.main-title02::after {
      transform: translate(0px, 5px);
    }
	.main-title02.font-big {
      font-size: 2.6rem;
    }
	.main-title02.font-big::after {
      transform: translate(0px, 6px);
    }
}
*/

.main-title01 {
  font-family: "Outfit", sans-serif!important;
  font-weight: 900!important;
  font-size: clamp(40px, 8vw, 120px)!important;
  color: #000!important;
  margin: 0!important;
font-size: 24px!important;
}
.main-title02 {
  color: #000!important;
  line-height: 1!important;
  margin: 0!important;
  text-shadow: 3px 3px 0 #c9a235!important;
font-size: 3rem!important;
margin-bottom: 1rem !important;
}

@media (max-width: 550px) {
.main-title02 {
  text-shadow: 2px 2px 0 #c9a235!important;
font-size: 2.2rem!important;
margin-bottom: 0rem !important;
}
}
.main-title03 {
position: relative;
margin-bottom: 1rem;
padding-bottom: 1rem;
font-size: 3rem;
text-align: center;
}

.main-title03:before {
    position: absolute;
    bottom: 0px;
    left: calc(50% - 50px);
    width: 100px;
    height: 7px;
    content: '';
    border-radius: 15px;
    background: #dabf60;
}

@media (max-width: 500px) {
.main-title03 {
font-size: 2rem!important;
}
}

/*デフォルトボタン*/
a.elementor-button {
  display: block !important;
  text-align: center !important;
  vertical-align: middle !important;
  text-decoration: none !important;
  position: relative !important;
  width: 250px !important;
	max-width: 90%;
  margin: auto !important;
  padding: 1rem 0rem !important;
  font-weight: bold !important;
  border-radius: unset !important;
  color: #ffffff !important;
  background-color: #000 !important;
	-webkit-transition: all .3s!important;
  transition: all .3s!important;
}

a.elementor-button:hover {
  box-shadow: none !important;
  transform: scale(0.9,0.9);
  color: #ffffff !important;
  background-color: #7c7148 !important;
}

/*赤ボタン*/
.red-button{
	    display: inline-block;
    background-color: #c10f32;
    padding: 0px 15px 3px 15px;
    box-sizing: border-box !important;
    border-radius: 50px;
    color: #fff;
    text-decoration: none !important;
    margin-top: 5px;
}
.red-button:hover{
	background-color: #eb4868;
	color: #fff;
}
/*グレーボタン*/
.gray-button{
	display: inline-block;
    background-color: #929292;
    padding: 5px 15px 5px 15px;
    box-sizing: border-box !important;
    border-radius: 5px;
    color: #fff;
    text-decoration: none !important;
}
.gray-button:hover{
	background-color: #bcbcbc;
	color: #fff;
}
/*フォント*/
p{
	color:#000!important;
	font-size:0.9rem!important;
	line-height: 1.5!important;
}

.font-1 p{
	    font-size: 1rem !important;
}

*:not(i){
	font-family: "Zen Maru Gothic", serif!important; 
	font-weight: 700;
	font-style: normal;
}

/*赤文字*/
.red-text{
	color:#BF1734!important;
}

/*マーカー（黄）*/
.marker01 {
	background: linear-gradient(transparent 60%, #ffd93d 0);
	font-weight:bold;
}
/*トップ半円
.half-container {
      width: 100%;
      height: 80px;
      overflow: hidden;
      position: relative;
    }

.half-ellipse {
      width: 104%;
      height: 70px;
      background-color: #F4EBD0;
      border-top: 2px solid #c9a236;
    border-left: 2px solid #c9a236;
    border-right: 2px solid #c9a236;
      border-bottom: none;
      border-top-left-radius: 50% 100%;
      border-top-right-radius: 50% 100%;
      position: absolute;
      left: 50%;
	    bottom: 0;
      transform: translateX(-50%);
      box-sizing: border-box;
    }

.half-ellipse.support{
	background-color: #FFF8E3;
}
.half-ellipse.day1{
	background-color: #ffedf1;
}
.half-ellipse.net{
	background-color: #E8FCFF;
}
.half-ellipse.uniform{
	background-color: #F4EBD0;
}
.half-ellipse.school-life{
	background-color: #fffbd4;
}

@media (max-width: 900px) {
	.half-container {
      height: 50px;
		margin-top: 4rem;
    }
.half-ellipse {
  height: 30px!important;
}
}

@media (max-width: 900px) {
	.half-container {
      height: 50px;
		margin-top: 4rem;
    }
.half-ellipse {
  height: 30px!important;
}
}*/
/*波型区切り線*/
.raund-wave-section {
  position: relative;
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.raund-wave {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
}

@media (max-width: 780px) {
.raund-wave-section {
  height: 150px;
}
	.half-container.home-container {
		margin-top: -0.5rem!important;
    }
	.half-ellipse.home-half {
  height: 20px!important;
}
}
@media (max-width: 500px) {
.raund-wave-section {
  height: 100px;
}
	.half-container.home-container {
		margin-top: -0.5rem!important;
    }
	.half-ellipse.home-half {
  height: 10px!important;
}
}
/*ゆらゆら*/
.yura01 {
    /*position: absolute;*/
    z-index: 50;
    animation: swayLeftRight 3s ease-in-out infinite;
}

@keyframes swayLeftRight {

    0% {
        transform: rotate(0deg);
    }

    20% {
        transform: rotate(-6deg);
    }

    50% {
        transform: rotate(6deg);
    }

    80% {
        transform: rotate(-6deg);
    }

    100% {
        transform: rotate(0deg);
    }
}

/*きらきら*/
.star01 {
	animation: flashing 1s infinite;
}
@keyframes flashing {
	0% {
		opacity: 1;
	}
	20% {
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
	90% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.star02 {
	animation: flashing 0.8s infinite;
}
@keyframes flashing {
	0% {
		opacity: 0;
	}
	20% {
		opacity: 1;
	}
	70% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
/*くるん*/
.kurun {
  width: 100%;
  height: auto;
  animation: rotateYPulse 2.5s ease-in-out infinite;
  transform-style: preserve-3d;
}

@keyframes rotateYPulse {
  0% {
    transform: rotateY(0deg);
  }
  10% {
    transform: rotateY(360deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}
/*カクカク*/
.swing01 {
	animation-name: decoSwing;
	animation-duration: 2000ms;
	animation-timing-function: steps(3, end);
	animation-iteration-count: infinite;
}
@keyframes decoSwing {
	0% {
		transform: rotate(-15deg);
	}

	100% {
		transform: rotate(20deg);
	}
}

.swing02 {
	animation-name: decoSwing;
	animation-duration: 2400ms;
	animation-timing-function: steps(2, end);
	animation-iteration-count: infinite;
}
@keyframes decoSwing {
	0% {
		transform: rotate(-5deg);
	}

	100% {
		transform: rotate(25deg);
	}
}
/*ふわふわ*/
.fuwa01 img {
	animation: floating-y 1.8s ease-in-out infinite alternate-reverse;
}
@keyframes floating-y {
	0% {
		transform: translateY(-5%);
	}
	100% {
		transform: translateY(5%);
	}
}

.fuwa02 img {
	animation: floating-y 1.2s ease-in-out infinite alternate-reverse;
}
@keyframes floating-y {
	0% {
		transform: translateY(-3%);
	}
	100% {
		transform: translateY(3%);
	}
}
/*タグ風見出し*/
.heading-tag {
    display: inline-block;
    position: relative;
    padding: .5em .7em;
    border-radius: 50px 0 0 50px;
    background-color: #009EFF;
    color: #fff!important;
}

.heading-tag::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 13px;
    border-radius: 50%;
    background: #fff;
}
/*=========================================================
トップページボタン
==========================================================*/
.ovl-spot{ padding: 2rem!important; }/*min(8vw,80px) 4vw*/
.ovl-spot, .ovl-spot *{ box-sizing: border-box!important; }

.ovl-wrap{ max-width:1200px; margin:0 auto; position:relative!important; }
.ovl-photo{ margin:0!important; grid-column:6 / -1!important;}
.ovl-photo img{
  display:block; width:100%; height:auto!important;
  aspect-ratio:16/9; object-fit:cover; border-radius:12px!important;
  box-shadow:0 8px 18px rgba(0,0,0,.18)!important;
}

/* カード*/
.ovl-card{
  text-decoration: none !important;
	position:relative; display:block; text-decoration:none; color:inherit!important;
  z-index:2!important;
  margin-top:-20vw;
  margin-left:-0vw;
  max-width:500px!important;
}
.ovl-card__body{
  background:#fff; color:#0e1a16!important;
  padding: clamp(20px,3.8vw,48px) clamp(22px,4.2vw,56px)!important;
  border-radius:0px 70px 0px 70px!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
}

/* タイトル/テキスト */
.ovl-dot{ width:10px; height:10px; border-radius:50%; background:#e7cc6e; display:inline-block; margin-right:.6em; transform:translateY(-2px)!important; }
.ovl-title-ja{ display:inline-block; font-weight:700; line-height:1.2; letter-spacing:.02em; font-size:clamp(22px,3.6vw,40px); margin:0!important; }
.ovl-title-en{ margin:.25em 0 0; opacity:.7; font-size:clamp(12px,1.3vw,14px)!important; }
.ovl-desc{ margin-top:1.6em; line-height:1.9; font-size:clamp(13px,1.6vw,16px)!important; }

/* 右下の丸矢印 */
.ovl-cta{
  position:absolute; right:clamp(14px,2vw,20px); bottom:clamp(14px,2vw,20px)!important;
  width:clamp(42px,5vw,52px); height:clamp(42px,5vw,52px)!important;
  border-radius:50%; background:#e7cc6e; color:#fff!important;
  display:grid; place-items:center; box-shadow:0 6px 14px rgba(0,0,0,.15)!important;
  transition:transform .25s ease, filter .25s ease!important;
}
.ovl-card:hover .ovl-cta, .ovl-card:focus-visible .ovl-cta{
  transform:translate(6px,-6px) rotate(8deg); filter:brightness(1.05)!important;
}


@media (max-width:900px){
.ovl-photo{grid-column:4 / -1!important;}
}

@media (max-width:550px){
.ovl-card{
	margin-top: -5vw !important;
    margin-left: -3vw !important;
  }
}
@media (min-width:550px){
  .ovl-wrap{
    display:grid; grid-template-columns:repeat(12,minmax(0,1fr));
    gap:32px; align-items:center;
  }
  .ovl-photo{ grid-column:7 / -1; }
  .ovl-card{
    grid-column:1 / span 8; margin:0;
	  margin-top:-20vw;
  margin-left:-0vw;
  }
}
/*=========================================================
カレンダー
==========================================================*/
.eo-fullcalendar .fc-view-container .fc-view table tbody .fc-widget-content .fc-day-grid-container .fc-day-grid .fc-row .fc-content-skeleton table tbody td .fc-day-grid-event {
  display: block;
  margin-bottom: 5px;
  padding: 0 5px;
  height: 20px;
  line-height: 20px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 50px;
  font-size: 10px;
  font-feature-settings: "palt";
  text-decoration: none;
  letter-spacing: 0;
  overflow: hidden;
}

.eo-fullcalendar .fc-view-container .fc-view .fc-widget-header table thead tr {
  background-color: #F4EBD0;
}

.eo-fullcalendar .fc-view-container .fc-view .fc-widget-header table thead tr th,
.eo-fullcalendar .fc-view-container .fc-view table tbody tr td {
  border-color: #F4EBD0;
}

.fc-toolbar h2 {
  font-size: 2rem !important;
  font-weight: bold !important;
  color: #977600;
}

.fc-toolbar button {
  background-color: #dabf60;
}

/*土曜*/
.eo-fullcalendar .fc-view-container .fc-view table tbody .fc-widget-content .fc-day-grid-container .fc-day-grid .fc-row .fc-content-skeleton table thead .fc-sat {
  color: #3099c8;
}

/*日曜*/
.eo-fullcalendar .fc-view-container .fc-view table tbody .fc-widget-content .fc-day-grid-container .fc-day-grid .fc-row .fc-content-skeleton table thead .fc-sun {
  color: #f83c39;
}

/*ホバーカレンダー詳細*/
.qtip-eo .qtip-titlebar {
  background-color: #ffebeb !important;
}

@media (max-width: 601px) {

  /* タイトル（月表示）はそのまま100% */
  .fc-toolbar .fc-left {
    display: block;
    width: 100%;
    margin-bottom: 10px;
  }

  /* 左右分割の親にflexを設定 */
  .fc-toolbar {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
  }

  /* ボタン（prev/today/next）左側に */
  .fc-toolbar .fc-center {
    width: 50%;
    display: inline-block;
    text-align: left;
  }

  /* カテゴリセレクト右側に */
  .fc-toolbar .fc-right {
    width: 50%;
    display: inline-block;
    text-align: right;
  }

}

/*=========================================================
カレンダー内カスタムボタン(single-event.php)
==========================================================*/
body.single-event {
  background-color: #F4EBD0 !important;/*#ffecf1*/
}

body.single-event article.type-event {
  border: 3px solid #857231;
  padding: 1.5rem;
  background-color: #fff;
}

.event-title {
  font-size: 1.5rem;
  margin-bottom: 1rem;
  padding: 1rem;
  box-sizing: border-box;
  border-radius: 10px;
  text-align: left;
  background-color: #dbbf60;
  color: #fff;
}

.event-main {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 30px;
}

.event-image-wrapper {
  text-align: center;
  align-content: center;
}

/*.ast-article-single img {
  -webkit-box-shadow: unset;
  width: 80%;
}*/

.event-text-wrapper {
  flex: 1;
}

.event-heading {
  font-size: 1.2rem;
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 10px;
  border-left: 5px solid #C9A236;
  padding-left: 10px;
  color: #C9A236;
}

.event-content {
  color: #000;
}

.event-date {
  font-size: 1.2rem;
  font-weight: bold;
  color: #555;
  margin-bottom: 20px;
}

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

.event-buttons .btn {
  display: inline-block;
  background-color: #dabf60;
  color: #000;
  padding: 1rem;
  width: 200px;
  text-decoration: none;
  font-weight: bold;
  /*border-radius: 50px;*/
  box-shadow: 3px 5px 0 #65561f;
  transition: all 0.2s ease;
  transform: translateY(0);
}

.event-buttons .btn:hover {
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 1);
  transform: translateY(2px);
}

.event-image {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

@media (min-width: 768px) {
  body.single-event .event-container.flex-mode .event-main {
    flex-direction: row;
  }

  .event-image-wrapper {
    flex: 0 0 30%;
    max-width: 30%;
  }

  body.single-event .event-container.flex-mode .event-text-wrapper {
    flex: 0 0 68%;
    max-width: 68%;
    padding: 0 20px;
    box-sizing: border-box;
  }

}

/*カレンダーに戻る*/
.back-to-calendar {
  text-align: center;
  margin: 40px 0;
}

.back-to-calendar .btn {
  display: inline-block;
  background: none;
  color: #666;
  font-weight: normal;
  font-size: 1rem;
  text-decoration: underline;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 0;
  box-shadow: none;
  transition: color 0.2s ease;
}

.back-to-calendar .btn i {
  margin-right: 0.5em;
}

/* ast-container のレイアウト切り替え */
body.single-event .event-container.flex-mode {
  display: flex;
  flex-direction: column;
}

body.single-event .ast-container {
  display: block !important;
}

/* 画像がないときの event-text-wrapper */
body.single-event .event-container.block-mode .event-text-wrapper {
  flex: 0 0 100%;
  max-width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
}

/*=========================================================
  ヘッダー
==========================================================*/
.hero-video iframe{
	    pointer-events: none!important;
}


/* ヘッダーの高さに対する余白確保*/
.site-content {
  padding-top: 120px;
}

@media (max-width: 768px) {
  .site-content {
    padding-top: 70px;
  }

}

/* HOME(フロントページ)のみ余白無効*/
body.home .site-content {
  padding-top: 0;
}

.custom-fixed-header {
    position: fixed;
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    width: 95%;
    background: #ffffffcc;
    z-index: 9999;
    padding: 0 1rem;
}

.custom-header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 100%;
  margin: 0 auto;
  padding: 10px 0;
}

.custom-logo {
  flex: 1;
}

.custom-logo img {
  width: 450px;
  max-width: 100%;
}

.custom-header-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.header-buttons a:hover {
  color: #ffffff;
}

/* ヘッダーボタン */
.header-buttons {
  display: flex;
  gap: 10px;
}

.header-btn {
background-color: #bf1734;
    color: #fff;
    padding: 0.6rem 1.2rem;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.2s ease;
}

.header-btn:hover {
  background-color: #fb3d5e;
}

/* ハンバーガーメニュー */
.menu-toggle {
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  z-index: 10002;
}

header button:hover {
  background-color: unset !important;
}

header button {
  box-shadow: unset !important;
}

.menu-toggle:hover {
  border-radius: unset !important;
  box-shadow: unset !important;
  border-color: unset !important;
}

.menu-icon {
  display: block;
  width: 30px;
  height: 5px;
  background: #bf1734;
  position: relative;
}

.menu-icon::before,
.menu-icon::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 5px;
  background: #bf1734;
  left: 0;
}

.menu-icon::before {
  top: -10px;
}

.menu-icon::after {
  top: 10px;
}

/* メニュー展開時に表示切り替え */
.custom-navigation.active~.menu-overlay,
.custom-navigation.active {
  display: block;
}

.menu-toggle.open {
  background-color: unset !important;
}

.menu-toggle.open .menu-icon {
  display: none;
}

.menu-toggle.open .menu-close {
  display: block;
}

/* スライドメニュー */
.custom-navigation {
  position: fixed;
  top: 0;
  right: -100%;
  width: 400px;
  max-width: 90%;
  height: 100vh;
  background: #d9bf60;
  transition: right 0.3s ease;
  z-index: 10001;
  max-height: 100vh;
  overflow-y: auto;
  padding: 100px 15px 40px;
  box-sizing: border-box;
}

.custom-navigation.active {
  right: 0;
}

.custom-navigation ul {
  width: 90%;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.custom-navigation li {
  padding-top: 1.2rem;
  border-bottom: 2px solid #fff;
}

.custom-navigation li:hover {
  background-color: #f0e5bf;
}

.custom-navigation a {
  display: block;
  text-decoration: none;
  color: #000;
  font-size: 1.2rem;
  margin-bottom: 3px;
  margin-left: 1rem;
}

/* バツボタン */
.custom-navigation .menu-close {
  display: block;
  position: absolute;
  top: 30px;
  right: 30px;
  border-radius: unset !important;
  box-shadow: unset !important;
  font-size: 2rem;
  color: #000;
  background: none;
  border: none;
  z-index: 10003;
  cursor: pointer;
}

/* メニューアイテム＋ボタンデザイン */
.nav-buttons {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.nav-btn {
  background-color: #000;
	color: #fff!important;
  padding: 0.8rem 1rem;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease;
}

.nav-btn:hover {
  background-color: #616161;
}

/* オーバーレイ背景 */
.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 10000;
}

.menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

@media (max-width: 768px) {
  .header-buttons {
    display: none;
  }

}
/*=========================================================
トップページ（HOME）
==========================================================*/
/*「KOKORO MIRAI」ループテキスト*/
.text-loop {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  overflow: hidden;
}
.text-loop-wrap {
  display: flex;
  animation: loop-text 20s linear infinite;
}
.double-content {
	font-family: "Outfit", sans-serif!important;
	color:#d9bf60;
  display: inline-block;
  font-size: 6rem;
  white-space: nowrap;
	    margin-bottom: -2rem;
}
@keyframes loop-text {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
/*=========================================================
お知らせ記事(single.php)
==========================================================*/
body.single {
  background-color: #F4EBD0;
}
body.blog {
  background-color: #F4EBD0;
}

body.blog .site-content .ast-container {
  display: block;
}
body.blog .archive-title,
.student-news-archive-wrapper .archive-title { /* 念のため wrapper でも */
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 2rem;
}

/* グリッド表示を /topics/ にも適用 */
body.blog .student-news-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}

/* スマホ2カラム */
@media (max-width: 767px) {
  body.blog .student-news-list {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    padding: 0;
  }
  body.blog .student-news-list .student-news-item {
    padding: 1rem 0.8rem !important;
  }
  body.blog .student-news-item .post-date { width: 100%; }
}

/* 在校生アーカイブでは解除していた背景などを /topics/ でも合わせる */
body.blog .student-news-item .news-meta { background: unset; }

/* タイトル装飾も在校生アーカイブと同じ（背景なし） */
body.blog .student-news-item .news-title {
  background-color: unset;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: bold;
}

/*=========================================================
お知らせトップ(functions.phpの[topics_news posts_per_page="3"])
在校生用お知らせ（shortcode.php）を使用している。
==========================================================*/
/* ショートコードで出力されるカード型リンクの装飾を解除 */
.student-news-shortcode .news-item {
  display: block;
  text-decoration: none !important;
  color: inherit;
}
.student-news-shortcode .news-item:hover {
      background-color: #F4EBD0;
}

.topics-news-shortcode.student-news-shortcode {
  gap: 0rem;
}

/*=========================================================
  在校生用お知らせ（shortcode.phpトップページショートコード）
==========================================================*/
.student-news-shortcode {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.student-news-shortcode .news-item {
  border-bottom: 1px solid #ddd;
  padding-bottom: 0.8rem;
}

.student-news-shortcode .news-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.3rem;
}

.student-news-shortcode .category-label {
  display: inline-block;
  font-size: 0.75rem;
  color: #fff;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  text-decoration: none;
}

.student-news-shortcode .news-date {
  font-size: 0.85rem;
  color: #666;
}

.student-news-shortcode .news-title a {
  display: block;
  font-size: 1rem;
  font-weight: bold;
  color: #333;
  text-decoration: none;
}

.student-news-shortcode .news-title a:hover {
  text-decoration: underline;
}

.category-label {
  display: inline-block;
  font-size: 0.75rem;
  color: #fff;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  margin-right: 10px;
}

.news-date {
  font-size: 0.85rem;
  color: #666;
  margin-right: 10px;
}

.news-title {
  font-size: 1rem;
  font-weight: bold;
  color: #333;
  text-decoration: none;
}

.news-title:hover {
  text-decoration: underline;
}

.student-news-item .news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.3rem;
  background: #f8f8f8;
}

.student-news-item .news-title {
  display: block;
  margin-top: 0.2rem;
  /*font-size: 1.4rem;*/
  font-weight: bold;
  background: #e0f0ff;
}

/*一覧を見るボタン*/
.student-news-button-wrapper {
  margin-top: 2rem;
  text-align: center;
}

.student-news-more {
  display: inline-block;
  background-color: #000;
  color: #fff;
  padding: 0.5rem 2rem;
  text-decoration: none!important;
  font-weight: bold;
  box-shadow: 3px 3px 0 rgba(0,0,0,0.3);
}
.student-news-more:hover {
  color: #F4EBD0;
}

#student-news-noresult {
  font-size: 1rem;
  color: #888;
  margin: 1rem auto;
  display: none;
}

/*=========================================================
  在校生用お知らせ(student-news/single.php個別ページ)
==========================================================*/
.student-news-archive .page-title {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 1.5rem;
}
.news-category-tabs .tab {
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  padding: 0.4em 1em;
  border-radius: 30px;
}

.student-news-list {
  display: grid;
  gap: 2rem;
}

.student-news-item {
  border-bottom: 1px solid #ddd;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
}

.category-label {
  display: inline-block;
  color: #fff;
  font-weight: bold;
  font-size: 0.8rem;
  padding: 0.2em 0.8em;
  border-radius: 30px;
  margin-right: 10px;
}

.post-date {
  font-size: 0.9rem;
  color: #999;
  margin-left: 5px;
}

.news-title a,
.news-title {
  font-size: 1rem;
  font-weight: bold;
  color: #000;
  text-decoration: none!important;
}

.news-title a:hover {
  text-decoration: underline;
}

.news-content {
  margin-top: 1.5rem;
  line-height: 1.8;
}

.back-link {
  margin-top: 2rem;
}


/*=========================================================
在校生用お知らせ記事(single.php)
==========================================================*/
body.single-student_news {
  background-color: #F4EBD0;
}

body.single-student_news .site-content .ast-container {
  display: block;
  width: 800px;
  margin: 0 auto;
}

/*body.single-student_news .site-content .event-buttons .btn {
  background-color: #000;
	box-shadow: 4px 4px 0 rgba(254, 160, 181, 1);
}*/

body.single-student_news .site-content .event-buttons .btn:hover {
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 1);
  transform: translateY(2px);
}

/*=========================================================
在校生用お知らせ一覧(archive.php)
==========================================================*/
body.post-type-archive-student_news .site-content .ast-container {
  display: block;
}

/*body.post-type-archive-student_news .site-content .event-buttons .btn {
  background-color: #000;
  box-shadow: 4px 4px 0 #fea0b5;
}*/

body.post-type-archive-student_news .site-content .event-buttons .btn:hover {
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 1);
  transform: translateY(2px);
}


body.post-type-archive-student_news h1 {
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 2rem;
}

/* 背景 */
body.post-type-archive-student_news {
  background-color: #F4EBD0;
}

body.post-type-archive-student_news .student-news-item .news-meta {
  background: unset;
}

/* アーカイブページのみ：3カラム表示*/
body.post-type-archive-student_news .student-news-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}

/* スマホ対応：2カラム表示 */
@media (max-width: 767px) {
  body.post-type-archive-student_news .student-news-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    padding: 0;
  }

  body.post-type-archive-student_news .student-news-list .student-news-item {
    padding: 1rem 0.8rem !important;
  }

  .student-news-item .post-date {
    width: 100%;
  }
}

/* タイトル */
.archive-title {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1.5rem;
  text-align: center;
}

/* カテゴリータブ */
.news-category-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 2rem;
  justify-content: center;
}

@media (max-width: 480px) {
  .news-category-tabs {
    gap: 5px;
  }
}

/* 記事一覧 */
.student-news-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* 白枠カード全体がリンク */
.student-news-item {
  display: block;
  background: #fff;
  /*border-radius: 15px;*/
  padding: 1.5rem;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.2);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.student-news-item:hover {
  transform: translateY(2px);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.2);
}

/* メタ情報（カテゴリ＋日付） */
.student-news-item .news-meta {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 0.3rem;
  align-items: center;
}

.student-news-item .category-label {
  display: inline-block;
  font-size: 0.75rem;
  color: #fff;
  padding: 0.3rem 0.8rem;
  border-radius: 20px;
}

.student-news-item .post-date {
  font-size: 0.85rem;
  color: #666;
}

/* タイトル */
body.post-type-archive-student_news .student-news-item .news-title {
  background-color: unset;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  border-radius: 6px;
  font-weight: bold;
}

/* 抜粋 */
.student-news-item .news-excerpt {
  font-size: 0.8rem;
  line-height: 1.6;
  color: #979797;
}

.student-news-item .news-excerpt p {
  margin-bottom: unset;
	font-size: 0.8rem!important;
  line-height: 1.6!important;
  color: #979797!important;
}

/*ページネーション*/
.student-news-pagination {
  margin-top: 2rem;
  text-align: center;
}

.student-news-pagination .page-numbers {
  display: inline-block;
  padding: 0.5rem 1rem;
  margin: 0 5px;
  border-radius: 30px;
  background: #ded1a2;
  color: #333;
  text-decoration: none;
  font-weight: bold;
}

.student-news-pagination .page-numbers.current {
  background: #D9BF60;
  color: #fff;
}

.student-news-pagination .page-numbers:hover {
  background: #f3d25d;
  color: #000;
}

.news-category-tabs .tab.active {
  outline: 2px solid #000;
  box-shadow: 0 0 0 2px #fff inset;
}
/*=========================================================
在校生用お知らせ各カテゴリページ(taxonomy-student_news_category.php)
==========================================================*/
body.tax-student_news_category { background-color: #F4EBD0; }
body.tax-student_news_category .site-content .ast-container {
  display: block;
}
body.tax-student_news_category .student-news-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.5rem;
}
@media (max-width: 767px) {
  body.tax-student_news_category .student-news-list {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
  }
  body.tax-student_news_category .student-news-list .student-news-item {
    padding: 1rem 0.8rem !important;
  }
  body.tax-student_news_category .student-news-item .post-date {
    width: 100%;
  }
}
body.tax-student_news_category .student-news-item .news-title {
  background-color: unset;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: bold;
}
body.tax-student_news_category .student-news-item:hover {
  transform: translateY(2px);
  box-shadow: 2px 2px 0 rgba(0,0,0,.2);
}

/*=========================================================
  在校生用ページ-選択授業
==========================================================*/
.download-btn {
  display: inline-flex;	
  align-items: center;
  gap: 0.5rem;
  background-color: #c10f32;
  color: #fff;
  font-weight: bold;
  padding: 1rem 2rem;
  border-radius: 15px;
  text-decoration: none!important;
  transition: all 0.2s ease;
}

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

.download-btn i {
  font-size: 1.2rem;
}
/*=========================================================
  ポップアップ
==========================================================*/
.custom-popup {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.5);
  justify-content: center;
  align-items: center;
  z-index: 1000;
  padding: 20px;
}

.popup-content {
	top: 2rem;
  width: 500px;
  max-width: 95%;
  padding: 15px;
  background: white;
  position: relative;
  z-index: 1;
	border: 15px solid #dabf60;
  box-shadow: 5px 5px #000;
}
@media (max-width: 500px) {
	.popup-content {
	top: 0rem;
	}
}

/*#custom-popup-9 .popup-content {
  width: 1000px;
  max-width: 90%;
  padding: 1rem;
	border: 10px solid #f4f2a5;
}

#custom-popup-9 .popup-content section {
    overflow-x: hidden;
    height: 500px;
}*/
/*各ポップアップ用に色変更
.popup-1 .popup-content { border-color: #dabf60; }
.popup-2 .popup-content { border-color: #c2ef74; }
.popup-3 .popup-content { border-color: #f0c7ff; }
.popup-4 .popup-content { border-color: #fecdb0; }
.popup-5 .popup-content { border-color: #aaf7f4; }
.popup-6 .popup-content { border-color: #fec1ea; }*/
.popup-7 .popup-content,.popup-8 .popup-content { border-color: #F4EBD0; }
/* 左上の装飾アイコン */
.popup-icon {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 130px;
  z-index: 10;
}

/* バツボタン（右上外）*/
.close-btn {
 position: absolute;
    top: -30px;
    right: -30px;
    width: 48px;
    height: 48px;
    background: black;
    color: white;
    font-size: 40px;
    text-align: center;
    line-height: 45px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
}

/* 本文画像と右下のイラスト */
.image-wrapper {
  position: relative;
  margin-bottom: 20px;
}
.popup-image {
  width: 100%;
  /*border-radius: 10px;*/
}
.popup-mini-illust {
  position: absolute;
  bottom: -60px;
  right: -10px;
  width: 130px;
  z-index: 5;
}

/* タイトル */
.popup-title {
  font-size: 1.6rem;
  text-align: left;
  margin-bottom: 1rem;
  position: relative;
  line-height: 1.6;
}
/* 説明文 */
.popup-desc {
  text-align: left;
  font-size: 0.9rem !important;
    line-height: 1.4 !important;
  margin-bottom: 10px;
}

/* 黒ボタン（角丸） */
.popup-btn {
  display: block;
    width: fit-content;
    background-color: black;
    color: white;
    padding: 10px 30px;
    border-radius: 50px;
    font-weight: bold;
    margin: 0px auto;
    transition: 0.3s;
}
.popup-btn:hover {
  opacity: 0.85;
	color:#ffdbe4;
}

@media (max-width: 650px) {
	.popup-mini-illust {
    width: 130px;
		bottom: -30px;
right: -15px;
  }
}

@media (max-width: 550px) {
  .popup-content {
    width: 95%;
    padding: 10px;
    max-height: 78vh;
	  margin-top: 3rem;
        box-sizing: border-box;
  }
	
  .popup-icon {
        width: 90px;
        /*top: -35px;
        left: -30px;*/
    }
  /*.close-btn {
    width: 35px;
        height: 35px;
        font-size: 30px;
        line-height: 33px;
        top: -15px;
        right: -15px;
  }*/
	.popup-mini-illust {
		bottom: -20px;
  }
	.popup-title {
    font-size: 1.5rem;
}
}
@media (max-width: 500px) {
  .popup-mini-illust {
    width: 100px;
  }
	.popup-title {
    font-size: 1.1rem;
}
}

/*=========================================================
  中高ボタン
==========================================================*/
.school-btn {
  display: inline-block;
  width: 400px;
max-width: 100% !important;
  padding: 20px 10px;
  line-height: 1.4;
  text-align: center;
  text-decoration: none!important;
  background-color: #000;
  box-shadow: 0px 5px 0px #dabf60!important;
  transition: 0.3s;
}

.school-btn.education{
	background-color: #80cadf!important;
}

.school-btn:hover {
  box-shadow: unset!important;
  transform: translateY(4px);
}

.school-btn h2 {
  font-size: 2rem;
  margin: 0 0 10px;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
	color: #fff!important;
}

.school-btn p {
  font-size: 1rem;
  margin: 0;
  color: #fff!important;
}

/*中高ボタン*/
.school-btn02 {
display: inline-block;
  width: 400px;
max-width: 100% !important;
  line-height: 1.4;
  text-align: center;
  text-decoration: none!important;
   margin: 0 auto 2em;
   padding: 2em;
   position: relative;
   z-index: 0;
   background-color: #dabf60;
	color: #fff;
}

.school-btn02::before {
   content: '';
   position: absolute;
   inset: 0; /* top, right, bottom, left を一括指定 */
   margin: 5px;
   border: 2px solid #fff;
   z-index: -1;
   display: block;
}

.school-btn02 h2 {
  font-size: 2rem;
  margin: 0 0 10px;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
	color: #fff!important;
}

.school-btn02 p {
  font-size: 1rem;
  margin: 0;
  color: #fff!important;
}

.school-btn02:hover {
  transform: scale(0.9);
}

/*=========================================================
  スライダー
==========================================================*/
/*.auto-slideshow {
	    width: 100%;
    overflow: hidden;
    position: relative;
padding-bottom: 5rem;
    padding-top: 9rem;
}*/


.auto-slideshow-wrapper {
	display: flex;
	width: max-content;
	/* コンテンツの幅に合わせて自動的に伸縮 */
	animation: slide 40s linear infinite;
}

/*.auto-slideshow-wrapper img {
	display: inline-block;
	width: 200px;
	height: 200px;
	object-fit: cover;
	margin-right: 20px;
	border: 2px solid #000;
	border-radius: 50%;
}
@keyframes slide {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(calc(-100% / 2));
	}
}*/

/* 各画像を包む枠
.slide-wrapper {
  position: relative;
  display: inline-block;
} */
/* 吹き出し
.speech-bubble {
    position: absolute;
    top: -100px;
    left: 45%;
    transform: translateX(-50%);
    background-color: white;
    border: 2px solid black;
    border-radius: 15px;
    padding: 8px;
    width: 80%;
	    text-align: center;
    font-size: 0.8rem;
    line-height: 1.4;
    color: #000;
    box-shadow: 2px 3px 0 black;
    white-space: normal;
    z-index: 10;
} */

/* 三角の吹き出し（オプション） 
.speech-bubble::after {
content: '';
    position: absolute;
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
    border: 10px solid transparent;
    border-top-color: #000000;
}*/

/* 偶数番目のスライドを下にずらす 
.auto-slideshow-wrapper .slide-wrapper:nth-child(even) {
  transform: translateY(25px);
}*/

/*トップページスライダー*/
.style .auto-slideshow-wrapper img {
	display: block;
    width: 500px;
    height: 350px;
    object-fit: cover;
    margin-right: 0;
    border: unset;
    border-radius: unset;
}

/*選択授業ページスライダー*/
.style .auto-slideshow-wrapper.choice img {
    width: 600px;
    height: 450px;
}

@keyframes slide {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(calc(-100% / 2));
	}
}

.style.auto-slideshow {
	    width: 100%;
    overflow: hidden;
    position: relative;
padding-bottom: 0rem;
    padding-top: 0rem;
}

/*.style .auto-slideshow-wrapper .slide-wrapper:nth-child(even) {
  transform: unset;
}*/

/*オーバーレイ*/
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 0, 0.3); 
  pointer-events: none; 
  z-index: 1;
}

/*=========================================================
  サブページ
==========================================================*/
/*タイトル*/
.pic-container h2 {
	padding: 1rem;
    background-color: #bf1734;
    color: #fff;
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
	margin-bottom:0rem;
}
@media (max-width: 500px) {
  .pic-container h2 {
    font-size: 1.5rem;
}
}

#tennyu .pic-container h2 {
    background-color: #fd7442;
}

#hennyu .pic-container h2 {
    background-color: #3f97f9;
}

/*見出し*/
.heading-bubble {
    position: relative;
    padding: .5em .7em .4em;
    border-bottom: 3px solid #dabf60;
	font-size: 1.5rem !important;
	color: #000;
}

#tennyu .heading-bubble {
    border-bottom: 3px solid #fd7442;
}
#tennyu .heading-bubble::before {
    background-color: #fd7442;
}
#hennyu .heading-bubble {
    border-bottom: 3px solid #3f97f9;
}
#hennyu .heading-bubble::before {
    background-color: #3f97f9;
}

#tennyu .main-title02{
	font-size:2rem;
}
#tennyu .main-title02::after{
	color: #fd7442!important;
}
.heading-bubble::before,
.heading-bubble::after {
    position: absolute;
    left: 30px;
    bottom: -15px;
    width: 30px;
    height: 15px;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: '';
}

.heading-bubble::before {
    background-color: #dabf60;
}

.heading-bubble::after {
    bottom: -11px;
    background-color: #fff;
}
@media (max-width: 500px) {
.heading-bubble {
    padding: .5em 0em .4em;
	font-size: 1.2rem !important;
}
}
/*数字付きリストスクールポリシー*/
.policy-section {
    margin-bottom: 2em;
  }

  .policy-title {
    font-weight: bold;
    font-size: 1.2em;
    color: #977600;
    margin-bottom: 0.5em;
  }

  .number-circle {
    display: inline-block;
    background-color: #977600;
    color: white;
    border-radius: 50%;
    width: 1.6em;
    height: 1.6em;
    text-align: center;
    line-height: 1.6em;
    margin-right: 0.5em;
    font-weight: bold;
  }

  .policy-list {
    margin-left: 1.5em;
  }

  .policy-list li {
    margin-bottom: 0.5em;
	  font-size:0.9rem;
  }

/*=========================================================
  定員人数表
==========================================================*/
#capacity th {
	background-color: #ff97ad !important;
    width: 20%;
    color: #fff;
}
#capacity td {
	background-color: #fff !important;
}
#capacity td.w20 {
	width: 20%;
}

#capacity td,
#capacity th {
	border: 1.5px solid #F4EBD0;;
	text-align:center;
}

@media (max-width: 768px) {
	#capacity table.scroll-table{
		display: block;
		overflow-x: auto;
		white-space: nowrap;
		border-collapse: collapse; 
	}
	#capacity table.scroll-table td {
    width: 100%;
  }
	#capacity .scroll-table::-webkit-scrollbar {
		height: 8px;
	}

	#capacity .scroll-table::-webkit-scrollbar-thumb{
		background-color: #ccc;
		border-radius: 4px;
	}
	
}

#capacity table:not(.scroll-table) {

  width: auto;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: auto;       /* 内容に応じて列幅を自動計算 */
  display: table;           /* 念のため display:block を打ち消す */
}

#capacity table:not(.scroll-table) th,
#capacity table:not(.scroll-table) td {
  width: auto;
  white-space: normal;      /* 折り返し有効 */
  word-break: break-word;   /* 日本語や長い単語も折り返し */
  overflow-wrap: anywhere;  /* URL等の強制折り返し */
  min-width: 0 !important;  /* 後述min-widthの影響を無効化 */
}



/* 画像スクロール */
.scroll-box {
  overflow-x: auto;
  padding-bottom: 10px;
  -webkit-overflow-scrolling: touch;
}
.scroll-box div img {
  max-width: 100%;
  min-width: 600px;
  vertical-align: top;
}

/*スクロールバー*/
.scroll-box::-webkit-scrollbar {
  height: 4px;
}
.scroll-box::-webkit-scrollbar-track {
  background: #eee;
}
.scroll-box::-webkit-scrollbar-thumb {
  background: #aaa;
  border: none;
}
.scroll-box::-webkit-scrollbar-thumb:hover {
  background: #999;
}


/*各コース表*/
#capacity .day4 th {
	background-color: #83c531 !important;
}
#capacity .day4 td {
	text-align: left;
	white-space: normal !important;
		word-break: break-word;
}
#capacity .day4 td,
#capacity .day4 th {
	border: 1.5px solid #c7e0a8;
	min-width: 200px; 
}

#capacity .day1 th {
	background-color: #FB8CA4 !important;
}
#capacity .day1 td {
	text-align: left;
	white-space: normal !important;
		word-break: break-word;
}
#capacity .day1 td,
#capacity .day1 th {
	border: 1.5px solid #ffdbe2!important;
	min-width: 200px; 
}

#capacity .net th {
	background-color: #23b8d3 !important;
}
#capacity .net td {
	text-align: left;
	white-space: normal !important;
		word-break: break-word;
}
#capacity .net td,
#capacity .net th {
	border: 1.5px solid #daf9ff!important;
	min-width: 200px; 
}
.uniform th {
color: #fff;
}
.uniform td {
	text-align: center;
    font-size: 0.9rem;
    word-break: break-word;
    padding: 0.7rem 0rem !important;
	background-color: #fff;
color: #000;
}
.uniform.option th {
background-color: #9f9f9f;
}
.uniform.man th {
background-color: #23BBD3;
}
.uniform.wman th {
background-color: #FB8CA4;
}

/*=========================================================
  リボンデザイン
==========================================================*/
.ribbon {
  display: flex;
  align-items: center;
  position: relative;
  height: auto;
  padding: 25px 35px;
  box-sizing: border-box;
  gap: 1rem;
  max-width: 600px;
  margin: 2rem auto;
	background: #fff;
}

.ribbon::before,
.ribbon::after {
  position: absolute;
  content: '';
  width: 0;
  height: 0;
  z-index: 1;
}

.ribbon::before {
  top: 0;
  left: 0;
  border-width: 60px 0 60px 15px;
  border-style: solid;
}

.ribbon::after {
  top: 0;
  right: 0;
  border-width: 60px 15px 60px 0;
  border-style: solid;
}

#beauty.ribbon::before{
	border-color: transparent transparent transparent #f196a1;
}
#beauty.ribbon::after{
	border-color: transparent #f196a1 transparent transparent;
}
#entertainment.ribbon::before{
	border-color: transparent transparent transparent #F5B28D;
}
#entertainment.ribbon::after{
	border-color: transparent #F5B28D transparent transparent;
}
#design.ribbon::before{
	border-color: transparent transparent transparent #FDD45F;
}
#design.ribbon::after{
	border-color: transparent #FDD45F transparent transparent;
}
#it.ribbon::before{
	border-color: transparent transparent transparent #9DD4CD;
}
#it.ribbon::after{
	border-color: transparent #9DD4CD transparent transparent;
}
#business.ribbon::before{
	border-color: transparent transparent transparent #CDE26A;
}
#business.ribbon::after{
	border-color: transparent #CDE26A transparent transparent;
}
#law.ribbon::before{
	border-color: transparent transparent transparent #F8A0BE;
}
#law.ribbon::after{
	border-color: transparent #F8A0BE transparent transparent;
}
#medical.ribbon::before{
	border-color: transparent transparent transparent #DEC3F5;
}
#medical.ribbon::after{
	border-color: transparent #DEC3F5 transparent transparent;
}
#education.ribbon::before{
	border-color: transparent transparent transparent #92A4D4;
}
#education.ribbon::after{
	border-color: transparent #92A4D4 transparent transparent;
}
#language.ribbon::before{
	border-color: transparent transparent transparent #8BD0E3;
}
#language.ribbon::after{
	border-color: transparent #8BD0E3 transparent transparent;
}
#health.ribbon::before{
	border-color: transparent transparent transparent #A3CDEE;
}
#health.ribbon::after{
	border-color: transparent #A3CDEE transparent transparent;
}
#industry.ribbon::before{
	border-color: transparent transparent transparent #FFEE7D;
}
#industry.ribbon::after{
	border-color: transparent #FFEE7D transparent transparent;
}
#realestate.ribbon::before{
	border-color: transparent transparent transparent #FCA290;
}
#realestate.ribbon::after{
	border-color: transparent #FCA290 transparent transparent;
}
#environment.ribbon::before{
	border-color: transparent transparent transparent #C8F3AA;
}
#environment.ribbon::after{
	border-color: transparent #C8F3AA transparent transparent;
}


/*タイトルアイコンアニメーション*/
.animated-title {
  display: flex;
  align-items: center;
    text-align: center;
  max-width: 600px;
  margin: 0 auto;
}

.icon-wrap {
   width: 75px;
    height: 75px;
    perspective: 500px;
}

.title-text {
  width: 100%;
}

.title-text h2 {
  font-size: 2rem;
  font-weight: bold;
  color: #333;
  margin: 0;
}

.title-text p {
  font-size: 1.2rem;
  color: #555;
  margin: 0;
}

@media (max-width: 500px) {
  .icon-wrap {
   width: 65px;
    height: 50px;
}
	.ribbon::before {
  border-width: 50px 0 50px 15px;
}

.ribbon::after {
  border-width: 50px 15px 50px 0;
}
	.title-text h2 {
    font-size: 1.3rem;
	}
}


/*選択授業項目*/
.class-box {
  background-color: #FBF6D2;
  padding: 1rem 0rem;
  width: 100%;
height: inherit;
  max-width: 100%;
/*border: 2px solid #333333;*/
}

.class-title {
background-color: #fff;
    padding: 1rem;
    text-align: center;
    font-size: 1.5rem!important;
}

.class-text {
      padding: 0 1rem;
    box-sizing: border-box;
}

.class-badge {
  padding: 0 1rem;
    box-sizing: border-box;
}

.badge-label {
  font-size: 0.75rem;
  font-weight: bold;
  color: #fff;
  padding: 0.2em 0.5em;
  display: inline-block;
  border-radius: 4px;
}

.badge-name {
  font-size: 0.85rem;
}

.hairdresser .text-title{
	font-size: 1.2rem!important;
	color: #ea6b82!important;
	padding: 0 1rem;
    box-sizing: border-box;
	    margin-bottom: 1rem;
}
/*タイトルテキスト*/
#beauty .class-title,
#beauty .badge-name{color: #ea6b82!important;}

#entertainment .class-title,
#entertainment .badge-name{color: #EE7F4F!important;}

#design .class-title,
#design .badge-name{color: #F3A151!important;}
#it .class-title,
#it .badge-name{color: #00ADA1!important;}
#business .class-title,
#business .badge-name{color: #93B03A!important;}
#law .class-title,
#law .badge-name{color: #EC7DA4!important;}
#medical .class-title,
#medical .badge-name{color: #996CAB!important;}
#education .class-title,
#education .badge-name{color: #5C87BE!important;}
#language .class-title,
#language .badge-name{color: #43BCD0!important;}
#health .class-title,
#health .badge-name{color: #0093D3!important;}
#industry .class-title,
#industry .badge-name{color: #F4A129!important;}
#realestate .class-title,
#realestate .badge-name{color: #EC7163!important;
}
#environment .class-title,
#environment .badge-name{color: #69B94D!important;}
/*めざす資格枠色*/
#beauty .badge-label {background-color: #ea6b82;}
#entertainment .badge-label {background-color: #EE7F4F;}
#design .badge-label {background-color: #f3a152;}
#it .badge-label {background-color: #00ADA1;}
#business .badge-label {background-color: #93B03A;}
#law .badge-label {background-color: #EC7DA4;}
#medical .badge-label {background-color: #996CAB;}
#education .badge-label {background-color: #5C87BE;}
#language .badge-label {background-color: #43BCD0;}
#health .badge-label {background-color: #0093D3;}
#industry .badge-label {background-color: #F4A129;}
#realestate .badge-label {background-color: #EC7163;}
#environment .badge-label {background-color: #69B94D;}

/*=========================================================
  続きを見るボタン
==========================================================*/
.read-more-qual {
  position: relative;
  margin: 2rem 0;
}

.read-more-qual input {
  display: none;
}

.qualification-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.5rem;
  max-height: calc(1.6em * 4 * 1.5); /* 約4行分 */
  overflow: hidden;
  position: relative;
  transition: max-height 0.3s ease;
}


.read-more-qual:has(:checked) .qualification-list {
  max-height: 1000rem;
}

.qualification-list::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4em;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 90%);
  pointer-events: none;
}

.read-more-qual:has(:checked) .qualification-list::after {
  display: none;
}

.read-more-qual label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 4px;
  margin: 1rem auto 0;
  padding: .5em 1.5em;
  background-color: #dabf60;
  color: #fff;
  font-size: 0.9rem;
  border-radius: 4px;
  cursor: pointer;
  width: fit-content;
	transition: 0.3s;
}

.read-more-qual label:hover {
  background-color: #fff;
  color: #dabf60;
  border: 1px solid #dabf60;
}

.read-more-qual label span::before {
  content: "続きを見る ▼";
}

.read-more-qual:has(:checked) label span::before {
  content: "閉じる ×";
}
.qualification-list div {
  background-color: #f9f9f9;
  padding: 0.7em;
  border-radius: 5px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  font-size: 0.9rem;
}

/*ICT総合サイト*/
.recommend.read-more-qual{
	margin: 1rem 1rem 0rem 1rem;
}

.recommend.read-more-qual .qualification-list{
	 display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

/*=========================================================
  資格実績表
==========================================================*/
.exam-results {
  display: grid;
  gap: 1.5rem;
  font-size: 0.95rem;
}

.exam-block h4 {
  font-size: 1rem;
  margin-bottom: 0.4rem;
  color: #333;
  border-left: 4px solid #dabf60;
  padding-left: 0.5em;
}

.exam-block table {
  width: 100%;
  border-collapse: collapse;
}

.exam-block td {
  padding: 0.4em 0.6em;
  border-bottom: 1px solid #eee;
  vertical-align: top;
	
}

.exam-block td:first-child {
  width: 70%;
  font-weight: 500;
	background-color: #fffbf0;
}
/*=========================================================
サポート校のご案内（support-school）
==========================================================*/
/*タイトル色変更*/
.support-title h6{
font-size: 0.7rem;
    background-color: #ababab;
    color: #fff;
    display: inline-block;
    padding: 4px;
    margin-bottom: 2px;
}
.support-title.ky h6{
font-size: 0.7rem;
    background-color: #fd869e;
}
.support-title.ch h6{
font-size: 0.7rem;
    background-color: #16afa4;
}
.support-title.ka h6{
font-size: 0.7rem;
    background-color: #8fc43e;
}

.support-title p{
	font-size:0.8rem!important;
    margin-bottom: 10px;
}

.support-title.about01 h5{
	color: #f5a62d;
	margin-bottom: 0px;
}

.support-title.about02 h5{
	color: #a668a8;
	margin-bottom: 0px;
}
.support-title.about01 p,
.support-title.about02 p{
	display: inline;
	margin-left: 5px;
}

/*ボタン色変更*/
.ky a.elementor-button{
background-color: #eb6b91 !important;
}
.ch a.elementor-button{
background-color: #00afa4!important;
}
.ka a.elementor-button{
background-color: #8ec43e!important;
}
.ga a.elementor-button{
background-color: #ef7f4f!important;
}
.about01 a.elementor-button{
background-color: #f5a62d!important;
}
.about02 a.elementor-button{
background-color: #a668a8!important;
}

.ky a.elementor-button:hover,
.ch a.elementor-button:hover,
.ka a.elementor-button:hover,
.ga a.elementor-button:hover,
.about01 a.elementor-button:hover,
.about02 a.elementor-button:hover{
    background-color: #000000 !important;
}


/*=========================================================
スクールライフ(school_life)
==========================================================*/
/** アコーディオン **/
.accordion-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
	width: 850px;/*800px*/
    max-width: 95%;
    margin: 0 auto;
	box-shadow: 7px 7px 0px #a0c7ff;
    border-radius: 10px;
}

.accordion-container:hover {
    transform: translateY(2px);
    box-shadow: 3px 3px 0px #a0c7ff;
}
.accordion-container.interview01 {
	box-shadow: 7px 7px 0px #99debd;
}

.accordion-container.interview01:hover {
	box-shadow: 3px 3px 0px #3eab76;
}
.accordion-container.interview02 {
	box-shadow: 7px 7px 0px #ec82b1;
}

.accordion-container.interview02:hover {
	box-shadow: 3px 3px 0px #ce91cf;
}

.accordion-item {
    width: 100%;
    background: #f1f1f1;
	border: 3px solid #000;
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow 0.3s;
}

/* ボタンのデザイン */
.accordion-button {
    width: 100%;
    flex-direction: column;
    background: #fff;
    color: #fff;
    padding: 1rem 80px;
    border: none;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    position: relative;
}
.accordion-button:hover {
    background-color:#fff!important;/*fffbe9*/
}

.accordion-button{
    padding: 2rem 60px 1rem 60px;
}

.accordion-button img {
    width: 100px;
    /*margin-right: 50px;*/
}

.accordion-container h3{
	font-size:1.5rem;
	/*margin-bottom: 1rem;*/
}

.interview01 .accordion-head h3{
	color: #3eab76!important;
}
.interview02 .accordion-head h3{
	color: #b84e97!important;
}

/* 「さらに詳しく」の位置調整 */
.accordion-toggle {
    text-align: center;
    font-weight: bold;
}
.interview01 .accordion-toggle {
	color: #3eab75;
}
.interview02 .accordion-toggle {
	color: #b94f97;
}

/* 展開エリア */
.accordion-content {
    max-height: 0;
    overflow: hidden;
    background: #fff;
    color: white;
    transition: max-height 0.5s ease-out;
    padding: 0 15px;
    position: relative;
}

/* 区切り線をずらして表示 */
.accordion-content hr {
    border: none;
    border-top: 2px dashed white;
    margin: 10px auto;
    width: 100%;
	background-color: #689dfa;
}

/* 詳細情報エリア */
.accordion-detail {
	display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 2rem;
	width: 100%;
}

.accordion-detail div {
	width: 100%;
}

.accordion-detail h4 {
    padding: 0.2rem;
    box-sizing: border-box;
    font-weight: bold;
}

.interview01 .accordion-detail h4 {
	color: #3eab76;
	border-left: 6px solid #3eab76;
}
.interview02 .accordion-detail h4 {
	color: #b84e97;
	border-left: 6px solid #b84e97;
}

.accordion-img {
    width: 500px;
	max-width: 95%;
}

/* 「閉じる」を中央配置 */
.accordion-close {
    text-align: center;
    font-weight: bold;
    margin-top: 15px;
    cursor: pointer;
}
.interview01 .accordion-close {
	color: #3eab76;
}
.interview02 .accordion-close {
	color: #b84e97;
}

.accordion-content.active {
    padding: 15px;
}

@media (max-width: 768px) {
    .accordion-container {
        flex-direction: column;
    }

    .accordion-detail {
        flex-direction: column;
        align-items: center;
    }
}

@media (max-width: 600px) {
	.accordion-head{
		margin-top: -5rem;
	}
}
@media (max-width: 481px) {
.accordion-button {
    padding: 1rem 20px;
}
	.accordion-head h3{
		font-size:1.3rem;
	}

}

/*スペシャルインタビュー*/
 ul.dialogue {
    padding-left: 0;
    margin: 0;
	font-size: 0.9rem;
  }
  ul.dialogue li {
    display: grid;
    grid-template-columns: auto 1fr;
    color: #000;
    margin: 0.4em 0;
  }
  .dialogue .name {
    white-space: nowrap;
  }

.teacher{
	color:#00b9e4!important;
}
.student{
	color:#7fbe26!important;
}
.senior{
	color:#ea6da4!important;
}
.junior{
	color:#865ba2!important;
}

/*-----年間イベント-----*/
:root{
--panel:#fffaf5; /* 内側の紙色 */
--text:#3a3a3a; /* 本文色 */
/* 月アイコン色（近似） */
--m04:#ef8f80; --m05:#f7b200; --m06:#c38fbd; --m07:#689bd2; --m08:#f29842;
--m09:#54c2f0; --m10:#a8cf5c; --m11:#f7b200; --m12:#95c8b9; --m01:#c8bcbd;
--m02:#ea6d8f; --m03:#e2c96a;
/* ドット色 */
--dot-m04:#ef8f80; --dot-m05:#f7b200; --dot-m06:#c38fbd; --dot-m07:#689bd2; --dot-m08:#f29842;
--dot-m09:#54c2f0; --dot-m10:#a8cf5c; --dot-m11:#f7b200; --dot-m12:#95c8b9; --dot-m01:#c8bcbd;
--dot-m02:#ea6d8f; --dot-m03:#e2c96a;
}

.term{display:inline-block;background:#bf1734;color:#fff;padding:4px 14px;letter-spacing:.05em;}
.section{margin-top:10px;}
.row{display:grid;grid-template-columns:70px 1fr;align-items:flex-start;position:relative;}
.row + .row{border-top:1px dotted rgba(0,0,0,.08);}
.hex{--c:#ccc;width:50px;height:50px;position:relative;margin:auto;clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0% 50%);background:var(--c);box-shadow:0 2px 0 rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;}
.hex::after{content:attr(data-month)"月";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.15);filter:blur(.5px);transform:translate(1px,1px);pointer-events:none;font-size:18px;}
.hex>span{position:relative;z-index:1;text-shadow:0 1px 0 rgba(0,0,0,.15);}
.m04{--c:var(--m04)}.m05{--c:var(--m05)}.m06{--c:var(--m06)}.m07{--c:var(--m07)}.m08{--c:var(--m08)}.m09{--c:var(--m09)}.m10{--c:var(--m10)}.m11{--c:var(--m11)}.m12{--c:var(--m12)}.m01{--c:var(--m01)}.m02{--c:var(--m02)}.m03{--c:var(--m03)}
.items{list-style:none;margin:0;padding:4px 0 0;font-size:0.9rem; padding-left: 10px!important; padding-right: 10px!important;}
.items li{display: block; margin: 4px 0;}
.items li .dot {
  margin: 0 4px 0 0; 
  display:inline-block;
  vertical-align: middle;
}
.dot{width:10px;height:10px;border-radius:50%;margin-top:.55em;flex:0 0 auto;}
.m04{background:var(--dot-m04)}.m05{background:var(--dot-m05)}.m06{background:var(--dot-m06)}.m07{background:var(--dot-m07)}.m08{background:var(--dot-m08)}.m09{background:var(--dot-m09)}.m10{background:var(--dot-m10)}.m11{background:var(--dot-m11)}.m12{background:var(--dot-m12)}.m01{background:var(--dot-m01)}.m02{background:var(--dot-m02)}.m03{background:var(--dot-m03)}
.aster{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);color:#c94e4e;font-size:16px;line-height:1;}
@media (max-width:560px){.row{grid-template-columns:60px 1fr}}

/*=========================================================
オープンスクール(openschool)
==========================================================*/
/*開催スケジュール*/
h5.os-time {
  position: relative;
  padding-left: 3em;
    margin-bottom: 0.5rem;
color: #000;
	font-size:1.2rem;
}

h5.os-time span {
  position: absolute;
  top: 0;
  left: 0;
    padding: 0 0.5rem;
    color: #ffffff;
    background-color: #BF1734;
	font-size: 0.9rem;
    border-radius: 4px;
}

h5.os-time span:after {
position: absolute;
    top: calc(50% - 4px);
    right: -6px;
    width: 0;
    height: 0;
    content: '';
    border-width: 4px 0 4px 8px;
    border-style: solid;
    border-color: transparent transparent transparent #BF1734;
}
.elementor-135 .elementor-image-box-title{
	margin-bottom: 0.5rem;
}

/*参加申し込み*/
.event-card {
  padding: 1rem;
  margin-bottom: 1rem;
  border-radius: 10px;
  border-left: 10px solid;
}
.odd-month {
  background-color: #fffef2;
  border-color: #e3ca00;
}
.even-month {
  background-color: #fffbfb;
  border-color: #ff7b98;
}
.event-card.odd-month h3 {
  margin: 0;
color: #c6b000;
}
.event-card.even-month h3 {
  margin: 0;
color: #fd7c98;
}
.event-card p {
margin-bottom: 0;
}

/*申し込みボタン*/
.apply-btn {
  display: inline-block;
    margin: 5px;
    padding: 12px 10px;
  font-size: 1rem;
  color: #fff;
  background-color: #000000;
  border-radius: 6px;
  text-decoration: none!important;
  transition: filter 0.3s ease;
	z-index: 1!important;
}

.apply-btn:hover {
      opacity: 0.5;
	color: #fff;
}
/*終了しました*/
.os-title{
	background-color: #e3ca03;
    color: #ffffff;
    line-height: 1.2em;
    font-size: 1.2rem;
	    margin-bottom: 1rem;
    padding: 0.5rem;
	box-sizing:border-box;
    border-radius: 5px;
}

.os-title.os-sakura{
	background-color: #fd7c98;
}
.end-os {
    background-color: #a1a1a1 !important;
    position: relative;
    pointer-events: none;
    opacity: 0.8;
}
.end-os .apply-btn {
    color: #8b8b8b;
}
.end-os .os-title{
    color: #8b8b8b;
	background-color: #7b701c;
}
.end-os .os-title.os-sakura {
    background-color: #783c49;
}


/* 中央に「申し込みは終了しました。」を表示 */
.end-os::before {
content: "申し込みは終了しました。";
	text-shadow: #000 1px 0 10px;
    position: absolute;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    font-size: 1.5rem;
    color: #ffffff;
    z-index: 999!important;
    text-align: center;
    align-content: center;
    border-radius: 15px !important;
}
/*=========================================================
入試・入学情報(admission)
==========================================================*/
/*タイムライン*/
.container {
  width: 100%;
  padding: 0px;
  margin-inline: auto;/* カウンターをリセット */
  counter-reset: step-index;
}

.step {
  position: relative;
  padding-bottom: 40px;
  /* カウンターを増やす */
  counter-increment: step-index;
}

/* 縦線の描画 */
.step:not(:last-child)::before {
  position: absolute;
  top: 0;
  left: 25px;
  width: 3px;
  height: 100%;
  content: "";
  background-color: #F4EBD0;
}

.step-title {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 10px;
  align-items: center;
  font-size: 1.3rem!important;
  color: #3b4252;
}

.step-title::before {
  z-index: 1;
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  color: #fff;
  content: counter(step-index);
  background-color: #dabf60;
}

.step-text {
  padding-left: 50px;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #4c566a;
}

/*学費ローンサブボタン**/
.loans {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: .9em 2em .8em 45px;
  border: none;
  background-color: #dabf60;
  font-weight: 600;
  font-size: 1em;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
  text-decoration: none;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.loans a{
	color: #fff!important;
}

.loans:hover {
  transform: translateY(2px);
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.2);
  background-color: #caa82e;
}

.loans::before {
  position: absolute;
  top: 0;
left: 10px;
    width: 30px;
    height: 40px;
  background-color: #fff;
  clip-path: polygon(0 0, 0 100%, 50% 75%, 100% 100%, 100% 0);
  content: '';
}

.loans::after {
  position: absolute;
    top: 17px;
    left: 25px;
  transform: translate(-50%, -50%);
  color: #dabf60;
  font-size: 1.2em;
  content: '★';
}

.loans a span{
	font-size:0.8rem;
}


/*=========================================================
  フッター
==========================================================*/
/*フッター上ボタン*/
.button-section {
  background-color: unset;
  padding: 2rem 1rem;
}
/*サポート校通学コース*/
.page-id-1525 .button-section {
  background-color: #fff8e4;
}
/*NETコース*/
.page-id-2368 .button-section {
  background-color: #E8FCFF;
}
/*サポート校のご案内*/
.page-id-4870 .button-section {
  background-color: #ffefe8;
}
/*制服紹介*/
.page-id-2424 .button-section {
  background-color: #F4EBD0;
}
/*中学生の方へ*/
.page-id-2259 .button-section {
  background-color: #F4EBD0;
}
/*三島キャンパス*/
.page-id-5464 .button-section,
.page-id-5625 .button-section,
.page-id-5664 .button-section,
.page-id-5581 .button-section{
  display: none;/*ボタン非表示*/
}
/*三島キャンパス本部校フッター非表示*/
.page-id-5464 .site-footer { display: none; }
.page-id-5625 .site-footer { display: none; }
.page-id-5664 .site-footer { display: none; }
.page-id-5581 .site-footer { display: none; }
/*三島キャンパス本部校サイドボタン非表示*/
.page-id-5464 .floating-tabs { display: none; }
.page-id-5625 .floating-tabs { display: none; }
.page-id-5664 .floating-tabs { display: none; }
.page-id-5581 .floating-tabs { display: none; }

/*オープンスクール*/
.page-id-135 .button-section {
	display: none;/*ボタン非表示*/
}

/*オープンスクール(本部校)*/
.page-id-5773 .button-section {
  background-color: #F4EBD0;
}
.button-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 900px;
  margin: 0 auto;
}

.red-footer {
  display: block;
  text-align: center;
  background-color: #c10f32;
  color: #fff;
  text-decoration: none;
  padding: 1rem 0rem;
  border-radius: 9999px;
  font-size: 1rem;
  transition: background-color 0.3s ease;
}

.red-footer:hover {
    background-color: #eb4868;
    color: #fff;
}

@media (max-width: 650px) {
  .button-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

/*フッター*/
.site-footer {
  background-color: #c10f32;
  color: #fff;
  padding: 3rem 1rem;
  font-size: 0.9rem;
}

.footer-main {
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.footer-container {
  display: flex;
  flex-wrap: wrap;
  /*justify-content: space-between;
  */
  gap: 2rem;
}

.footer-left,
.footer-map {
  flex: 1 1 45%;
	width: 100%;
}

.footer-logo {
  background-color: #fff;
  padding: 1rem;
  display: inline-block;
  max-width: 100%;
  height: auto;
	border-radius: 10px;
}

.footer-contact {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer-info {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: bold;
  font-size: 1.1rem;
	color: #fff !important;
}

.footer-info i,
.footer-info .icon-svg {
  color: #fff;
  min-width: 1.2em;
  width: 1.2em;
  height: 1.2em;
}

.footer-info a {
  color: #fff;
  text-decoration: none;
}

.footer-left p,
.footer-left a {
  color: #fff!important;
	font-size:1.1rem!important;
  margin-bottom: 0.5rem;
  display: block;
  text-decoration: none;
}

.footer-map iframe {
  width: 100%;
  height: 250px;
  border: none;
  border-radius: 20px;
}

/*フッターリンクエリア*/
.footer-links {
  display: flex;
  flex-wrap: wrap;
  /*justify-content: space-between;
  */
  margin: 2rem 0;
  gap: 2rem;
}

.footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1 1 30%;
}

.footer-links li {
  margin-bottom: 0.5rem;
}

.footer-links a {
  text-decoration: none;
  color: #fff;
  font-size: 1rem;
}

.footer-links a:hover {
  text-decoration: underline;
}

.footer-links .indent {
  padding-left: 1rem;
  font-style: italic;
  font-size: 0.95em;
}

/*SNSアイコン*/
.footer-social {
  text-align: center;
  margin-bottom: 1rem;
}

.footer-social a {
  color: #fff;
  font-size: 1.5rem;
  margin: 0 0.5rem;
  display: inline-block;
  transition: 0.3s;
}

.footer-social a:hover {
  transform: scale(1.1);
}

/*ボタンロゴ*/
.footer-bottom-logos {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
	    width: 500px;
	    max-width: 100%;
    margin: 0 auto;
}

.footer-btn-logo {
	width: 48%;
  display: inline-block;
	background-color: #ffd6df;
	color: #000;
  padding: 1rem 2rem;
  border-radius: 10px;
  font-weight: bold;
  text-decoration: none;
  margin: 0.5rem auto;
  text-align: center;
}

@media (max-width: 500px) {
	.footer-btn-logo{
		width: 80%;
	}
  }

.footer-btn-logo:hover {
  background-color: #ffb9c8;
}
.footer-btn-logo img {
  width: 100%;
  height: auto;
}

.footer-btn-logo.white {
  background-color: #fff;
}

.footer-btn-logo.white:hover {
  background-color: #ddd;
}

.footer-btn-logo.yellow {
  background-color: #ffe59c;
}

.footer-btn-logo.yellow:hover {
  background-color: #ffd966;
}

.footer-copy {
  text-align: center;
  font-size: 0.85rem;
  margin-top: 2rem;
  color: #fff;
}

/*レスポンシブ対応*/
@media (max-width: 650px) {
  .footer-container {
    flex-direction: column;
    align-items: center;
  }

  .footer-links {
    flex-direction: column;
    align-items: normal;
    gap: 0rem;
  }

  .footer-links ul {
    flex: 1 1 100%;
    text-align: left;
  }

  .footer-bottom-logos {
    flex-direction: column;
  }

  .footer-social a {
    color: #fff;
    font-size: 2rem;
    margin: 0px 1rem;
  }
	}

/*=========================================================
  個別相談会・オンライン相談会
==========================================================*/
.select1 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.select1 .select-group {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
}

.select1 .wpcf7-form-control-wrap{
	width: auto;
  min-width: 60px;
  max-width: 100px;
}

.select1 select.wpcf7-form-control{
	padding: 6px 2px;
}

/*=========================================================
  お問い合わせ
==========================================================*/
.required-tag {
display: inline-block;
    background-color: #c9a135;
    color: #fff;
    font-size: 0.7rem;
    font-weight: bold;
    padding: 2px 15px;
    margin-left: 0.5rem;
	    margin-bottom: 5px;
    border-radius: 50px;
    vertical-align: middle;
}


.wpcf7-form label {
  display: block;
  margin-bottom: 1.2rem;
  font-weight: bold;
  font-size: 1rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1rem;
  box-sizing: border-box;
}

.wpcf7-form textarea {
  height: 150px;
  resize: vertical;
}

.wpcf7-form input[type="radio"] {
  margin-right: 0.5rem;
}
.submit-wrap {
  text-align: center;
  margin-top: 1.5rem;
}
.wpcf7-form .wpcf7-submit {
	    width: 250px;
  background-color: #c9a135;
  color: white;
  border: none;
  padding: 1rem 2rem;
  border-radius: 9999px;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.wpcf7-form .wpcf7-submit:hover {
  background-color: #f3d25d;
}

@media (max-width: 480px) {
  .wpcf7-form {
    padding: 1.5rem 0.75rem;
  }
/*.wpcf7-form .wpcf7-submit:hover {
  background-color: #f57a9c;
}*/

.wpcf7 .wpcf7-spinner {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
}