@charset "utf-8";
/*=============================================

カスタマイズ用

=============================================*/


/* 1.1 初期設定 
   ========================================================================== */

*, *:before, *:after {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box!!important;
}

html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}

body {
  position: relative;
  word-wrap: break-word;
  word-break: break-all;
  font-family: "Noto Sans Japanese","Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  line-height: 1.5;
  font-size: 1.6em;
  box-sizing: border-box;
  color: #333333;
  background-color:transparent;
  background: #EDF3F4;
}

body, textarea, pre {
    line-height: 1.5;
}
main{
	position: relative;
	z-index: 1;
	 /*pointer-events: none;*/
}
p{
  margin-bottom: 20px;
}
a{
  color: #333;
}
.img-wrap{
	width: 100%;
	text-align: center;
}
.img-wrap img {
    width: 100%;
    height: auto;
    vertical-align: top;
}
.flex{
	display: flex;
    justify-content: space-between;
}
.wrap1600,
.breadcrumb-wrap ol{
  width: 95%;
  max-width: 1600px;
  margin: 0 auto;
}
.breadcrumb-wrap ol{
  display: flex;
}
.wrap1280{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}
.wrap1000{
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.wrap960{
  width: 100%;
  max-width: 960px;
}
.wrap{
  width: auto;
}
.page-wrap{
  margin: 100px auto;
}

.w-button,
#Application .ap-reset-password-link a{
  width: 290px;
  padding: 25px 30px;
  background: #fff;
  border: #AD2841 1px solid;
  border-radius: 10px;
  color: #1F2128;
  font-size: 2rem;
  transition: 0.7s;
  text-decoration: none;
}
.w-button:hover,
#Application .ap-reset-password-link a:hover{
  background: #AD2841;
  color: #fff;
  text-decoration: none;
}
.arrow-red{
  width: 30px;
  height: 30px;
  background: #AD2841;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  transition: 0.7s;
}
a .arrow-red img{
  transition: 0.3s;
} 
a:hover .arrow-red img{
  transform: translateX(5px);
} 
.button{
  margin-top: 60px;
  display: flex;
  justify-content: center;
}

.right{
  justify-content: flex-end;
}
#page-content .red-button,
#page-content form .button input,
#page-content .form-wrap .btn-submit,
.document-request-file .document-request-file-link{
  min-width: 290px;
  padding: 25px 30px;
  background: #AD2841;
  border: #AD2841 1px solid;
  border-radius: 10px;
  color: #fff;
  font-size: 2rem;
  text-decoration: none;
  transition: 0.7s;
}
#page-content .red-button:hover,
#page-content form .button input:hover,
#page-content .form-wrap .btn-submit:hover,
.document-request-file .document-request-file-link:hover{
  background: #fff;
  color: #AD2841;
  text-decoration: none;
  transform: scale(1.1);
}
#page-content .document-request-file .document-request-file-link{
  margin: 20px auto 40px;
  text-decoration: none;
  display: inline-block;
}
.red-button .arrow-white{
  width: 30px;
  height: 30px;
  margin-left: 40px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
}
table tr{
  border-top: #CCCCCC 1px solid;
  border-bottom: #CCCCCC 1px solid;
}
table,
table th,
table td{
  border: none;
}
table th,
table td{
  padding: 15px 0;
}
table th{
  width: 30%;
  font-weight: bold;
}
table td{
  width: auto;
}
#page-content .first-inner .mt-none{
  margin-top: 0;
}
.f28{
  font-size: 2.8rem;
}

/*  ヘッダー
   ========================================================================== */
   
header#header{
  height: 80px;
  padding: 0 0 0 50px;
  background: #fff;
  display: flex;
  position: sticky;
  top: 0;
  z-index: 999;
}
header#header .header-wrap{
  width: 100%;
  align-items: center;
}
header#header #Logo{
  width: 125px;
  height: auto;
  display: block;
}
header#header #gnav{
  display: flex;
  border: none;
  background: none;
  margin-top: 0;
}
header#header #gnav a{
  border: none;
  padding: 0;
}
header#header #gnav ul{
  height: 100%;
  display: flex;
  align-items: center;
}
header#header #gnav li{
  padding: 0 70px 0 0;
}
header#header #gnav li a{
  color: #333;
  font-weight: bold;
}
header#header #gnav .login{
  margin-right: 25px;
  padding: 13px 45px;
  background: #235068;
  color: #fff;
}
header#header #gnav .registration{
  padding: 13px 45px;
  background: #CEB80D;
  color: #fff;
}

/*  フッター
   ========================================================================== */
/*#Footer-button{
  padding: 60px 0;
  background: #F8EFE8;
}
#Footer-button .wrap960{
  margin: 0 auto;
}
#Footer-button .w-button{
  width: 31%;
}*/
#footer{
   background: #235068;
}
#footer .wrap1280 #Footer-logo .img-wrap{
  width: 125px;
  height: auto;
}
#footer .wrap1280 #Footer-logo{
  margin-right: 40px;
}
#footer .wrap1280{
  padding: 80px 0 100px;
}
#footer .site-footer__menus{
  justify-content: flex-start;
}
#footer .site-footer__menu{
  margin-right: 75px;
}
#page-content #footer ul{
  list-style: none;
}
#footer ul li{
  margin-bottom: 10px;
}
#footer ul li a{
  color: #fff;
}
#footer ul li a:hover{
  color: #AD2841;
}
#footer .footer-02{
  background: #1F2128;
  color: #fff;
  border: none;
}
#footer .footer-02 p{
  margin-bottom: 0;
  padding: 20px;
  text-align: center;
}
body .application_floating{
  width: 160px;
  height: 130px;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  background: #CEB80D;
  border-radius: 5px;
  position: fixed;
  right :10px;
  bottom: 10px;
  font-size: 2rem;
  z-index: 999;
  transition: .3s;
}
body .application_floating:hover{
  text-decoration: none;
  opacity: 0.9;
}

body .application_floating img{
  margin-bottom: 10px;
  transition: .3s;
}
body .application_floating:hover img{
  transform: translateY(7px);
}

/*  TOPページ
   ========================================================================== */
#FV .main-slider{
  width:100%;
  aspect-ratio: 16/4;
}
#FV .main-slider img{
  width: 100%;
}
/*  下層固定ページ共通
   ========================================================================== */
.breadcrumb-wrap{
  padding: 10px;
}
.breadcrumb-wrap ol li{
  list-style: none;
}
.breadcrumb-wrap ol li a,
.breadcrumb-wrap ol li span{
  color: #235068;
}
.breadcrumb-wrap ol li i{
  display: none;
}
/*.breadcrumb-wrap ol li:after{
  content: '';
  width: 7px;
  height: 11px;
  mask: url(img/svg/icon_arrow_link_white.svg) no-repeat;
  /*background: url(img/svg/icon_arrow_link_white.svg) no-repeat;*/
/*  background: #235068;
  display: inline-block;
  vertical-align: middle;
}*/
.breadcrumb-wrap ol li{
  padding-left: 10px;
}
.breadcrumb-wrap ol li:last-child:after{
  display: none;
}
.cat-content, article.post, article.page, article.wp101, article.seo101{
  border: none;
}
h1{
  font-size: clamp(2.8rem, 3.8vw, 3.6rem);
  text-align: center;
  margin-bottom: 40px;
}
#page-content .h1-wrap{
  padding: 60px 0;
  background: #fff;
}
#page-content h1{
  font-size: clamp(2.8rem, 3.8vw, 3.2rem);
}
#Single h1,
#Index h1{
  width: 100%;
  font-size: 2.8rem;
  margin-bottom: 20px;
  border-bottom: 1px solid #333333;
}
#Single h1 span{
  margin-bottom: 15px;
  font-size: 2rem;
  display: flex;
  justify-content: flex-end;
}
#Single .h1-wrap{
  margin-bottom: 30px;
}
#Single .h1-wrap a{
  padding: 3px 20px;
  border-radius: 15px;
  color: #235068;
  background: #fff;
}
#page-content main article,
#Single main article{
  padding: 80px 0 100px;
}
#page-content main article{
  background: #EDF3F4;
}
#page-content .page-wrap{
  width: 90%;
  max-width: 1600px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
#page-content h2{
  width: 280px;
  padding-top: 40px;
  border-top: #AD2841 1px solid;
  font-size: 2.4rem;
  font-weight: bold;
}
#Single h3{
  margin-top: 80px;
  margin-bottom: 40px;
  padding-bottom: 15px;
  border-bottom: #fff 2px solid;
  font-size: 2.4rem;
  font-weight: bold;
  position: relative;
}
#Single h3:after{
  content: '';
  width: 150px;
  height: 2px;
  display: inline-block;
  background: #CEB80D;
  position: absolute;
  left: 0;
  bottom: -2px;
}
#page-content h4{
  margin-top: 40px;
  margin-bottom: 20px;
  font-size: 1.8rem;
  font-weight: bold;
  display: flex;
  flex-direction: row;
  align-items: center;
}
#page-content h4:after {
  content: "";
  display: block;
  flex-grow: 1;
  height: 1px;
  background-color: #AD2841;
  margin-left: 8px;
  top: 50%;
}
#page-content h4 span{
  padding-right: 20px;
  background: #fff;
  position: relative;
  z-index: 2;
}
#page-content h5{
  margin-bottom: 10px;
  font-size: 1.6rem;
  font-weight: bold;  
}
#page-content ul{
  margin-top: 10px;
  margin-left: 40px;
  padding-left: 15px;
  list-style-type: disc;
}
#page-content ol li.list_parentheses{
  padding-left: 20px;
  list-style-type:none;
  list-style-position:inside;
  counter-increment: cnt;
  position: relative;
}
#page-content ol li.list_parentheses:before{
  display: marker;
  content: "(" counter(cnt) ") ";
  position: absolute;
  left: 0;
}
#page-content ol{
  padding-left: 15px;
  list-style-type: decimal;
}
#page-content ol li ol{
  margin-top: 10px;
}
#page-content .upper-alpha{
  list-style-type: upper-alpha;
}
#page-content a{
  text-decoration: underline;
}
#page-content .line_top,
#Application div:last-child p{
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #CCCCCC;
}
#page-content .first-inner{
  width: calc(100% - 320px);
}
#page-content .first-inner .second-inner{
  padding-left: 60px;
}
#page-content .first-inner .second-inner .third-inner{
  padding-left: 40px;
}
#page-content .align_right{
  display: flex;
  justify-content: flex-end;
}
#page-content .align-center{
  text-align: center;
}
#page-content .required{
  color: #AD2841;
}
#page-content .caution{
  font-size: 1.2rem;
  display: block;
}
#page-content form input,
#page-content form textarea,
#page-content form select{
  width: 100%;
  background: #EDEDED;
  padding: 8px 13px;
  border: none;
  border-radius: 10px;
}
#page-content form dl{
  display: flex;
  flex-wrap: wrap;
}
#page-content form dt,
#page-content form dd{
  padding: 20px 0;
  border-bottom: 1px solid #ccc;
}
#page-content form dt{
  width: 30%;
}
#page-content form dd{
  width: 70%;
}
#page-content form #name,
#page-content form #name_kana,
#page-content form #name_roma{
  display: flex;
  justify-content: space-between;
}
#page-content form #name input,
#page-content form #name_kana input,
#page-content form #name_roma input{
  width: 48%;
}
#page-content form label{
  margin-right: 40px;
}
#page-content form label input{
  width: auto;
}
#page-content form .gender-radio label input{
  margin-right: 5px;
}
#page-content form #birth{
  display: flex;
  align-items: center;
}
#page-content form #birth span{
  margin-left: 10px;
}
#page-content form dl{
  border-top: 1px solid #ccc;
}
#page-content form dd .small{
  margin-top: 10px;
  font-size: 1.2rem;
  display: inline-block;
}
form#contact dl dd:last-child{
  display: flex;
  flex-wrap: wrap;
}
form#contact dl dd:last-child input{
  width: calc(100% - 40px);
}
form#contact dl dd:last-child button{
  background: #AD2841;
  border-radius: 10px;
}
form#contact dl dd:last-child p{
  margin-top: 10px;
  padding-top: 0;
  border-top: none;
  font-size: 1.2rem;
}
#page-content .form_must{
  font-size: 2rem;
  font-weight: bold;
  color: #AD2841;
}
#page-content .form-privacy{
  width: 90%;
  margin: 20px auto;
  padding: 30px;
  background: #F8EFE8;
}
#page-content .form-privacy input{
  width: inherit;
  margin-right: 5px;
}
#Confirmation dt{
  color: #8F8F8F;
}
#Confirmation dd{
  margin-bottom: 15px;
}
#Confirmation #gpy-credit-form{
  margin-bottom: 40px;
}
#Confirmation #gpy-credit-form dl{
  margin-bottom: 40px;
}
#Confirmation #gpy-credit-form dd{
  margin-bottom: 0;
}
#page-content .btn-block{
  color: #AD2841;
  background: #fff;
  border: 1px solid #AD2841;
}

/*お問い合わせページ*/
.name{
  display: flex;
  justify-content: space-between;
}
.name span{
  width: 48%;
}
#Contact .caution{
  margin-top: 10px;
}
#Contact .button{
  flex-flow: column;
}
#Contact .button .wpcf7-submit{
  width: 90%;
  max-width: 500px;
  margin: 0 auto;
}
#Contact h3,
#Download h3,
#Confirmation h3{
  margin-top: 0;
}
#Contact .center a.button-border,
#Download .center a.button-border,
#Confirmation .center a.button-border,
#Application .center a.button-border{
  padding: 20px;
  border-radius: 10px;
  display: inline-block;
  text-decoration: none;
}
#Conditions .button a {
  pointer-events: none; /* 初期状態で無効化 */
  opacity: 0.5;
}
#Conditions .button a.enabled {
  pointer-events: auto;
  opacity: 1;
}
#Conditions .form-privacy p{
  margin-bottom: 0;
}
#Conditions .form-privacy .form_must{
  margin-left: 5px;
  font-size: 1.4rem;
}
/*  プルダウン
   ========================================================================== */
.search-wap{
  padding: 0 30px;
  display: flex;
  align-items: center;
}
#searchform button{
  width: 28px;
  height: 28px;
}
#searchform input[type=text]{
  line-height: 28px;
}
.accordion {
  width: 100%;
}
/* inputのチェックボックスを非表示 */
.accordion-hidden {
  display: none;
}

/* 見出しボタン部分 */
.accordion-open {
  width: 28px;
  height: 28px;
  display: block;
  cursor: pointer;
  position: relative;
  mask: url(lib/images/icon/search.svg) no-repeat;
  mask-size: contain;
  background: #808080;
}
/* アコーディオン中身部分 */
.accordion-inner {
  display: block;
  height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  transition: 0.5s;
  /* 表示速度の設定 */
  cursor: pointer;
  position: absolute;
  right: 0;
  bottom: -46px;
}
/* チェックボックスにチェックが入ったら中身部分を表示する */
.accordion-hidden:checked+.accordion-open+.accordion-inner {
  height: auto;
  opacity: 1;
}

/*プライバシーポリシーページ*/
#Privacy li{
  margin-bottom: 10px;
}

/*特定商取引法に基づく表記ページ*/
#Commerce table th{
  padding: 20px;
  color: #1F2128;
  background: #EDEDED;
  border: 2px solid #fff;
}
#Commerce table td{
  padding: 20px;
}


   
/*  講座一覧ページ
   ========================================================================== */
#Index main{
  width: 100%;
  max-width: 1600px;
  margin: 80px auto;
  display: flex;
  justify-content: space-between;
}
#Index main a.article-wrap{
  display: block;
}#Index main article{
  width: 24%;
}
#Index main a .post-thumbnail{
  margin-left: 0;
  margin-bottom: 0;
  float: none;
  position: relative;
}
#Index .post-thumbnail .summary-time{
  width: 100%;
  margin-bottom: 0;
  padding: 5px 10px;
  background: rgba(255, 255, 255, 0.5);
  position: absolute;
  bottom: 0;
  font-weight: bold;
}
#Index .courses-box{
  padding: 30px 15px;
}
#Index .courses-box .post-title{
  margin-bottom: 20px;
  font-weight: normal;
  font-size: 1.6rem;
}
#Index .courses-box span{
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 1.4rem;
  background: #F1F4F8;
}
#Index .courses-box .summary-fee{
  margin-top: 15px;
  margin-bottom: 0;
  font-size: 1.8rem;
  font-weight: bold;
  text-align: right;
  color: #235068;
}


/*  投稿ページ
   ========================================================================== */
#Single .summary{
  margin: 40px auto;
  border: 2px solid #56668F;
}
#Single .summary caption{
  padding: 20px 30px;
  background: #235068;
  color: #fff;
  font-weight: bold;
}
#Single .summary thead th{
  padding: 7px;
  font-size: 1.4rem;
  text-align: center;
  background: #F1F4F8;
  font-weight: normal;
  border: 2px solid #56668F;
}
#Single .summary tbody td{
  padding: 15px 30px;
  background: #fff;
  border: 2px solid #56668F;
}
#Single .summary tbody td.w180{
  text-align: center;
}
#Single .summary .w180{
  width: 180px;
}
#Single .summary .w-auto{
  width: calc(100% - 360px);
}
#Single dl dt{
  padding: 15px 30px;
  font-size: 1.8rem;
  font-weight: bold;
  background: #F1F4F8;
  border: 2px solid #56668F;
}
#Single dl dd{
  margin-bottom: 20px;
  padding: 20px 30px;
  background: #fff;
  border-left: 2px solid #56668F;
  border-right: 2px solid #56668F;
  border-bottom: 2px solid #56668F;
}
#Single #Instructor .right{
	overflow: hidden;
}
#Single #Instructor .right img{
	width: 250px;
	margin-right: 30px;
	margin-bottom: 15px;
}
#Single #Instructor .right h4.lecturer-name{
  font-size: 1.8rem;
  color: #235068;
}
#Single #Instructor .post{
	margin-bottom: 30px;
	font-size: 1.4rem;
	color: #2A4073;
}
#Single #Instructor .right div.flex div{
	width: 100%;
}
#Single .overview th{
  padding: 15px 40px;
  color: #fff;
  background: #235068;
  font-size: 1.8rem;
}
#Single .overview td{
  padding: 15px 40px;
  background: #fff;
  font-size: 1.4rem;
}
#Single .overview td p{
  margin-bottom: 0;
}
#Single #Points .right{
  padding: 30px 50px;
  background: #FBF9EC;
}
#Single #Points .right p{
  font-size: 1.4rem;
}
#Single #Program div{
  padding: 40px;
  background: #fff;
}
#Single .button a{
  padding: 15px 50px;
  border-radius: 28px;
  background: #CEB80D;
  color: #fff;
}
   
/*  初期設定打ち消し
   ========================================================================== */
.table-grad:after{
  display: none;
}
.wpcf7-list-item{
  margin: 0;
}