@charset "utf-8";
/*------------------------------------------------------------------------
index
--------------------------------------------------------------------------*/
/* hero -----------------*/
.hero_area{
  position: relative;

  margin-bottom: 120px;
  aspect-ratio: 16/9;
	background: url(../img/index/hero01.webp);
  background-size: cover;
}
.hero_txt{
  position: absolute;
  bottom: 7%;
  right: 2.5%;

  width: 37%;
}
@media screen and (max-width: 580px) {
.hero_area{
  margin-bottom: 56px;
  aspect-ratio: 2/3;
	background: url(../img/index/hero01-sp.webp);
  background-size: cover;
}
.hero_txt{
  position: absolute;
  bottom: 5%;
  right: 2.5%;

  width: 90%;
}
}

/* index / 共通 -----------------*/
.index_content_box{
  width: 1100px;
  max-width: 90%;
  margin: 0 auto 140px;
}

.index_section_title{
  margin-bottom: 40px;
}
.index_section_title span{
  display: block;
}
.index_section_title_en{
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1.4;
  color: var(--color-primary);
}
.index_section_title_jp{
  margin-top: 4px;
  font-size: 24px;
  font-weight: 700;
}


/* index / おしらせ・オープンキャンパス -----------------*/
.index_information{
  display: flex;
  justify-content: space-between;
}
.index_information section{
  width: 47%;
}
@media screen and (max-width: 680px) {
  .index_information{
    flex-direction: column;
  }
  .index_information section{
    width: 100%;
  }
  .index_oc{
    margin-top: 56px;
  }
}
/* index / おしらせ -----------------*/
.index_news_list{ /* レイアウトシフト防止 */
  min-height: 208px;
}
.index_news_list li + li{
  margin-top: 32px;
}
.index_news_meta {
  display: flex;
  align-items: center;
  gap: 14px;

  color: var(--color-primary);
}
.index_news_list time{
  font-size: 15px;
  line-height: 1.4;
}
.index_news_category{
  padding: 2px 1em;
  font-size: 13px;
  line-height: 1;
  border: 1px solid var(--color-primary);
  border-radius: 4em;
}

.index_news_title{
  margin-top: 6px;
  line-height: 1.4;
}
.index_news_title a{
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (hover: hover) and (pointer: fine){
  .index_news_title a:hover{
    color: var(--color-link);
  }
}

.index_news_btn{
  margin: 32px auto 0;
}

/* index / オープンキャンパス -----------------*/
.index_oc_link{
  position: relative;
  display: block;
  overflow: hidden;
  transition: filter .3s, transform .3s;
}
.index_oc_img {
  transition: filter .3s, transform .3s;
}
@media (hover: hover) and (pointer: fine){
  .index_oc_link:hover .index_oc_img{
    filter: brightness(1.1);
    transform: scale(1.02);
  }
}
/*.index_oc_date_img{
  position: absolute;
  top: 0;
  right: 1.75%;
  display: block;

  width: 42.5%;
  height: auto;
}*/

.index_oc_date{
  position: absolute;
  top: 0;
  right: 1.75%;
  display: flex;
  justify-content: flex-end;

  width: 43%;
}
.index_oc_date li{
  display: flex;
  flex-direction: column;
  justify-content: center;

  width: 32%;
  aspect-ratio: 1 / 1;
  font-family: var(--font-en);
  text-align: center;
  color: #fff;
  background: url(../img/index/oc_date_bg.svg);
  background-size: cover;
}
.index_oc_date li + li{
  margin-left: 2%;
}
.index_oc_date li span{
  display: block;
  line-height: 1;
}
.index_oc_date_date{
  font-size: clamp(14px, 2.2cqw, 24px);
}
.index_oc_date_day{
  font-size: clamp(10px, 1.5cqw, 16px);
}
@media screen and (max-width: 680px) {
  .index_oc_date_date{
    font-size: clamp(16px, 4.5cqw, 24px);
  }
  .index_oc_date_day{
    font-size: clamp(12px, 3cqw, 17px);
  }
}


.index_gakka_photo img,
.index_career_photo img{
  box-shadow: 2px 2px 3px rgba(0,0,0,.2);
}

/* index / 学科紹介 就職・国家試験対策 -----------------*/
.index_feature{
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.index_feature::after{
  position: absolute;
  top: 100px;
  right: 0;
  content: "";

  width: 60vw;
  height: 100%;
  margin-right: calc((100vw - min(1100px, 90vw)) / -2);
  background: var(--color-secondary-soft);
  border-radius: 20px 0 0 20px;

  z-index: -10;
}
.index_feature_title{
  margin-bottom: 40px;
  font-size: 24px;
  font-weight: 700;
}
@media screen and (max-width: 680px) {
  .index_feature{
    flex-direction: column;
  }
  .index_feature::after{
    top: 80px;

    width: 70vw;
  }
  .index_feature_btn{
    margin-inline: auto;
  }
}
@media screen and (max-width: 580px) {
  .index_feature_title{
    margin-bottom: 32px;
    font-size: 22px;
  }
}

/* index / 学科紹介 -----------------*/
.index_gakka{
  width: 50%;
}
.index_gakka_txt{
  margin-top: 60px;
  margin-bottom: 80px;
}
.index_gakka_photo{
  width: 50vw;
  margin-left: calc((100vw - min(1100px, 90vw)) / -2);
}
@media screen and (max-width: 680px) {
  .index_gakka{
    width: 100%;
  }
  .index_gakka_txt {
    margin-top: 0;
    margin-bottom: 32px;
  }
  .index_gakka_photo{
    width: 95vw;
    margin-left: calc((100vw - min(1100px, 90vw)) / -2);
  }
  .index_gakka_photo_main{
    aspect-ratio:2/1;
    object-fit: cover;
  }
}

/* index / 就職・国家試験対策 -----------------*/
.index_career{
  width: 45%;
}
.index_career_photo{
  position: relative;
  width: 40vw;
  margin-left: auto;
  margin-right: calc((100vw - min(1100px, 90vw)) / -2);
}
.index_career_photo_main{
  display: block;
  width: 100%;
  height: auto;
}
.index_career_photo_sub{
  display: block;
  margin: -32px 5vw 0 auto;
  width: 23vw;
  height: auto;
}
.index_career_txt{
  margin-top: 60px;
}
@media screen and (max-width: 680px) {
  .index_career{
    display: flex;
    flex-direction: column;

    width: 100%;
    margin-top: 60px;
  }
  .index_career_photo{
    order: 2;

    width: 95vw;
    margin-top: 16px;
  }
  .index_career_photo_main{
    aspect-ratio:2/1;
    object-fit: cover;
  }
  .index_career_photo_sub{
    display: none;
  }
  .index_career_txt{
    order: 1;

    margin-top: 0;
  }
}

/* index / 入試情報・よくある質問 -----------------*/
.index_btn_list{
  display: flex;
  justify-content: space-between;

  width: 1000px;
  max-width: 90%;
  margin: 180px auto 140px;
}
.index_btn_list li{
  width: 47%;
}
.index_btn_list a{
  display: block;
  width: 100%;
  height: 100%;
}
.index_btn_img{
  overflow: hidden;
}
.index_btn_img img{
  transition: filter .3s, transform .3s;
}
.index_btn_list p{
  margin-top: 8px;
  padding: 0 .5em;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  background: url(../img/common/ico_arrow.svg) right 4% center no-repeat;
  background-size: 14px;
  transition: color .3s, background .3s;
}
@media (hover: hover) and (pointer: fine){
  .index_btn_list a:hover img{
    filter: brightness(1.1);
    transform: scale(1.02);
  }
  .index_btn_list a:hover p{
    color: var(--color-link);
    background: url(../img/common/ico_arrow.svg) right 3% center no-repeat;
    background-size: 14px;
  }
}
@media screen and (max-width: 880px) {
  .index_btn_list{
    flex-direction: column;

    margin: 140px auto 140px;
  }
  .index_btn_list li{
    width: 100%;
  }
  .index_btn_list li + li{
    margin-top: 24px;
  }
  .index_btn_list p{
    font-size: 18px;
  }
}

/* index / 卒業生インタビュー -----------------*/
.index_graduate{
  display: flex;
  justify-content: space-between;
}
.index_graduate_intro{
  width: 30%;
}
.index_graduate_list{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;

  width: 65%;
}
.index_graduate_list li{
  width: 46.5%;
}
.index_graduate_list li a{
  display: block;
  width: 100%;
  height: 100%;
}
.index_graduate_ic{
  position: relative;
  overflow: hidden;
}
.index_graduate_ic img{
  transition: filter .3s, transform .3s;
}
.index_graduate_year{
  position: absolute;
  bottom: 0;
  left: 0;

  font-size: 13px;
  padding: 2px 1em;
  background: #fff;
}
.index_graduate_title{
  margin-top: 15px;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
  transition: color .3s;
}
@media (hover: hover) and (pointer: fine){
  .index_graduate_list a:hover img{
    filter: brightness(1.1);
    transform: scale(1.02);
  }
  .index_graduate_list a:hover .index_graduate_title{
    color: var(--color-link);
  }
}
@media screen and (max-width: 1000px) {
  .index_graduate{
    flex-direction: column;
  }
  .index_graduate_intro{
    width: 100%;
  }
  .index_graduate_list{
    width: 100%;
    margin-top: 32px;
  }
}
@media screen and (max-width: 580px) {
  .index_graduate_list{
    flex-direction: column;
  }
  .index_graduate_list li{
    width: 100%;
  }
  .index_graduate_list li + li{
    margin-top: 24px;
  }
  .index_graduate_title{
    margin-top: 8px;
    font-size: 15px;
  }
}





/*------------------------------------------------------------------------
副学校長あいさつ / message
--------------------------------------------------------------------------*/
.message_photo{
  margin-bottom: 40px;
}
.message_txt p + p{
  margin-top: 1em;
}
.message_sign{
  text-align: right;
  font-size: 18px;
}
.message_sign small{
  font-size: 12px;
}
@media screen and (max-width: 580px) {
  .message_photo{
    margin-bottom: 24px;
  }
  .message_photo img{
    aspect-ratio: 16/9;
    object-fit: cover;
  }
}

/*------------------------------------------------------------------------
学校概要 / profile
--------------------------------------------------------------------------*/

/*------------------------------------------------------------------------
系列校紹介  / link
--------------------------------------------------------------------------*/
.link_list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px 5%;

  width: 1000px;
  max-width: 100%;
  margin: 0 auto;
}
.link_list a{
  display: block;
  width: 100%;
  height: 100%;
}
.link_list_img{
  overflow: hidden;
}
.link_list_img img{
  transition: filter .3s, transform .3s;
}
.link_list p{
  margin-top: 8px;
  width: fit-content;
  line-height: 1.4;
  transition: color .3s, background .3s;
}
@media (hover: hover) and (pointer: fine){
  .link_list a:hover img{
    filter: brightness(1.1);
    transform: scale(1.02);
  }
  .link_list a:hover p{
    color: var(--color-link);
  }
}

@media (max-width: 880px) {
  .link_list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .link_list {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;

    width: 90%;
    margin: 0 auto;
  }
}

/*------------------------------------------------------------------------
アクセス  / access
--------------------------------------------------------------------------*/
.access_map{
  width: 100%;
  height: 400px;
}
.access_map iframe{
  width: 100%;
  height: 100%;
}
.access_name{
  margin: 34px 0 16px;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
}

/*------------------------------------------------------------------------
学科紹介  / gakka
--------------------------------------------------------------------------*/
/* ポイント ---------------------------------------*/
.gakka_point li{
  display: flex;

  position: relative;
  counter-increment: gakka-point;

  background: var(--color-secondary-soft);
  border-radius: 20px;
  overflow: hidden;
}
.gakka_point li + li{
  margin-top: 16px;
}
.gakka_point li::before{
  position: absolute;
  top: -.25em;
  left: -8px;
  content: counter(gakka-point, decimal-leading-zero);

  font-size: 80px;
  font-weight: 700;
  color: #fff;
  line-height: 1;

  z-index: 0;
}
.gakka_point li:nth-child(2n)::before{
  left: auto;
  right: -8px;
}
.gakka_point_desc{
  position: relative;

  width: 65%;
  padding: 30px 5% 24px;

  z-index: 1;
}
.gakka_point li:nth-child(2n) .gakka_point_desc{
  order: 2;
}

.gakka_point_btn{
  min-width: 260px;
  margin-top: 15px;
  background: #fff;
  border: 1px solid #fff;
}
.gakka_point_img{
  width: 35%;
}
.gakka_point_img img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gakka_point li:nth-child(2n) .gakka_point_img{
  order: 1;
}
@media (max-width: 580px) {
  .gakka_point li{
    flex-direction: column;
  }
  .gakka_point_desc{
    width: 100%;
    padding: 30px 5% 24px;
  }
  .gakka_point li:nth-child(2n) .gakka_point_desc{
    order: 1;
  }
  .gakka_point_btn{
    min-width: 240px;
    margin: 24px auto 0;
  }
  .gakka_point_img{
    width: 100%;
    aspect-ratio: 16 / 9;
  }
  .gakka_point li:nth-child(2n) .gakka_point_img{
    order: 1;
  }
}
/* 選ばれる理由 ---------------------------------------*/
.gakka_choose{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 5%;
}
.galla_choose_img{
  position: relative;
  z-index: 0;
}
.galla_choose_title{
  position: relative;

  width: 95%;
  margin-top: -20px;
  padding-top: 20px;
  text-wrap: balance;
  background: #fff;
  border-radius: 0 20px 0 0;

  z-index: 1;
}
@media (max-width: 880px) {
  .gakka_choose {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .gakka_choose {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;

    width: 90%;
    margin: 0 auto;
  }
}

/*------------------------------------------------------------------------
ピックアップ授業  / pickup
--------------------------------------------------------------------------*/
.pickup_content_inner{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.pickup_content_img{
  width: 45%;
  aspect-ratio: 495 / 456;
  overflow: hidden;
}
.pickup_content_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pickup_content_desc{
  width: 50%;
}
.pickup_content_t_info{
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;

  margin-top: 16px;
}
.pickup_content_t{
  margin-right: 1em;
}
.pickup_content_t_img{
  width: 120px;
  border-radius: 50%;
}
@media (max-width: 580px) {
  .pickup_content_inner{
    flex-direction: column;
  }
  .pickup_content_img{
    width: 100%;
    aspect-ratio: 4/3;
  }

  .pickup_content_desc{
    width: 100%;
    margin-top: 16px;
  }
}

/*------------------------------------------------------------------------
カリキュラム  / curriculum
--------------------------------------------------------------------------*/
.curriculum_practicum_att{
  margin-top: 16px;
  text-align: right;

  color: var(--color-primary);
}
.curriculum_table{
  width: 100%;
  border: 1px solid #ccc;
}
.curriculum_table + .curriculum_table{
  margin-top: 16px;
}
.curriculum_table_total + .curriculum_table_total{
  margin-top: 32px;
}
.curriculum_table th,
.curriculum_table td{
  padding: 12px 1em;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.curriculum_table th{
  width: 18%;
  text-align: center;
  color: var(--color-accent);
  font-weight: 700;
  background: var(--color-secondary-soft);
}
.curriculum_table th span{
  display: inline-block;
}
.curriculum_className {
  column-count: 3;
  column-gap: 30px;
}

.curriculum_className li {
  break-inside: avoid; /*複数行になった時の分割防止  */
}
.curriculum_table .practicum{
  color: var(--color-primary);
}
.curriculum_table_total td{
  text-align: center;
}
@media (max-width: 880px) {
  .curriculum_className {
    column-count: 2;
  }
}
@media (max-width: 580px) {
  .curriculum_table th{
    width: 3em;
    padding: 12px 0;
    writing-mode: vertical-rl; /* 縦書き */
    text-align: start; /* 縦方向：上揃え */
    vertical-align: middle; /* 横方向：セル中央 */
  }
  .curriculum_className {
    column-count: 1;
  }
}

/*------------------------------------------------------------------------
教員紹介  / teachers
--------------------------------------------------------------------------*/
.teachers_list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 6%;
}
.teachers_list li{
  background: var(--color-secondary-soft);
  border-radius: 20px;
  overflow: hidden;
}
.teachers_list_prof{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.teachers_list_img{
  width: 31%;
}
.teachers_list_desc{
  width: 62.5%;
  padding: 8px 0;
  color: var(--color-accent);
}
.teachers_list_desc_role{
  margin-bottom: 4px;
  font-size: 12px;
  line-height: 1.4;
}
.teachers_list_desc_name{
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
}
.teachers_list_desc_area{
  margin-top: 14px;
  font-size: 14px;
  line-height: 1;
}
.teachers_list_desc_area span{
  display: inline-block;
}
.teachers_list_desc_area .title{
  width: fit-content;
  margin-right: 14px;
  padding: 0 1em;
  font-size: 12px;
  line-height: 1.4;
  color: #fff;
  background: var(--color-accent);
  border-radius: 4em;
}
.teachers_list_comment{
  margin: 30px 5%;
}
@media (max-width: 880px) {
  .teachers_list{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .teachers_list_img{
    width: 160px;
  }
  .teachers_list_desc{
    width: calc( 95% - 160px );
  }
  .teachers_list_comment{
    margin: 16px 5% 24px;
  }
}
@media (max-width: 580px) {
  .teachers_list_img{
    width: 120px;
  }
  .teachers_list_desc{
    width: calc( 95% - 120px );
  }
  .teachers_list_comment{
    margin: 16px 5% 24px;
  }
  .teachers_list_desc_area .title{
    margin-right: 8px;
  }
  .teachers_list_comment{
    font-size: 14px;
  }
}

/*------------------------------------------------------------------------
就職・国家試験対策  / career
--------------------------------------------------------------------------*/
.career_box{
  display: flex;
  justify-content: space-between;
}
.career_item{
  width: 47%;
}
.career_item_text_att{
  text-align: right;
}
.career_item_num{
  display: grid;
  grid-template-rows: auto 32px;
  row-gap: 16px;

  width: 380px;
  max-width: 100%;
  margin:20px auto 0;
}
.career_item_num img {
  display: block;
  width: 100%;
  height: auto;
}
.career_item_num_average{
  display: flex;
  align-items: center;
  justify-content: center;

  margin: 0;
  color: #fff;
  font-weight: 700;
  background: var(--color-secondary);
}
.career_item_num_average span{
  font-size: .8em;
}
/* 全国平均がない方にも、同じ高さの空欄を確保 */
.career_item_num:not(:has(.career_item_num_average))::after {
  content: "";
}
.career_item_text{
  margin-top: 24px;
}
@media (max-width: 580px) {
  .career_box{
    flex-direction: column;
  }
  .career_item{
    width: 100%;
  }
  .career_item + .career_item{
    margin-top: 140px;
  }
  .career_item_num {
    display: block;
  }
  .career_item_num_average{
    margin-top: 16px;
  }
  .career_item_num:not(:has(.career_item_num_average))::after {
    display: none;
  }
}


/* 就職・国家試験対策 /　共通 ---------------------------------------*/
.career_point{
  display: flex;
  justify-content: space-between;
  align-items: center;

  counter-increment: career-point;
}
.career_point_text{
  width: 50%;
}
.career_point:nth-child(2n) .career_point_text{
  order: 2;
}
.career_point_img{
  position: relative;

  width: 45%;
  overflow: hidden;
}
.career_point:nth-child(2n) .career_point_img{
  order: 1;
}
.career_point_img::after{
  position: absolute;
  bottom: -.07em;
  right: -8px;
  content: counter(career-point, decimal-leading-zero);

  font-size: 80px;
  font-weight: 700;
  color: var(--color-secondary-soft);
  line-height: 1;
}
@media (max-width: 1100px) {
  .career_point{
    align-items: flex-start;
  }
}
@media (max-width: 680px) {
  .career_point{
    flex-direction: column;
  }
  .career_point_text{
    width: 100%;
  }
  .career_point:nth-child(2n) .career_point_text{
    order: 1;
  }
  .career_point_img{
    width: 100%;
    margin-top: 16px;
  }
  .career_point:nth-child(2n) .career_point_img{
    order: 2;
  }
  .career_point_img::after{
    font-size: 70px;
  }
}

/*------------------------------------------------------------------------
国家試験サポート  / exam-support
--------------------------------------------------------------------------*/
.examSupport_lead{
  display: flex;
  justify-content: space-between;
}
.examSupport_lead_text{
  width: 50%;
}
.examSupport_lead_title{
  margin-bottom: 32px;
  font-size: 32px;
  font-weight: 700;
}
.examSupport_lead_num{
  width: 45%;
  margin-top: 40px;
}
.examSupport_lead_num .content_title_grd{
  margin: 0 auto;
}
.examSupport_lead_num_year{
  margin: 2px 0 32px;
  font-size: 12px;
  text-align: center;
}
.examSupport_lead_num_img{
  width: 380px;
  max-width: 100%;
  margin: 0 auto;
}
.examSupport_lead_num_img .career_item_num_average{
  margin-top: 16px;
}
@media (max-width: 580px) {
  .examSupport_lead{
    flex-direction: column;
  }
  .examSupport_lead_text{
    width: 100%;
  }
  .examSupport_lead_title{
    margin-bottom: 28px;
    font-size: 28px;
  }
  .examSupport_lead_num{
    width: 100%;
    margin-top: 32px;
  }
  .examSupport_lead_num_img{
    max-width: 90%;
  }
}

/* 現役生合格率 ---------------------------------------*/
.examSupport_results{
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;

  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
}
.examSupport_results_ltem{
  text-align: center;
  border-left: 1px solid #ccc;
}
.examSupport_results_ltem dt,
.examSupport_results_ltem dd{
  padding: 15px .5em;
}
.examSupport_results_ltem dt{
  color: var(--color-accent);
  font-weight: 700;
  background: var(--color-secondary-soft);
}
.examSupport_results_meta{
  display: block;
  font-size: 12px;
  font-weight: 400;
}
.examSupport_results_rate{
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
}
.examSupport_results_average {
  background: #f2f2f2;
}
.examSupport_results_label{
  display: block;
  font-size: 12px;
}
@media (max-width: 580px) {
  .examSupport_results{
    display: flex;
    flex-direction: column-reverse;

    border-top: none;
    border-left: 1px solid #ccc;
  }
  .examSupport_results_ltem{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;

    border-top: 1px solid #ccc;
    border-left: none;
  }
  .examSupport_results_ltem dt,
  .examSupport_results_ltem dd{
    padding: 8px .5em;
  }
  .examSupport_results_rate,
  .examSupport_results_average{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}
/*------------------------------------------------------------------------
施設紹介  / facility
--------------------------------------------------------------------------*/
/* 看護実習室 ---------------------------------------*/
.facility_feature{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "text main"
    "sub gallery";
  gap: 20px;

  margin-bottom: 60px;
}
.facility_feature_desc{
  grid-area: text;
}
.facility_feature_text p{
  margin-bottom: 16px;
}
.facility_featuremain_img{
  grid-area: main;
}
.facility_feature_sub_img{
  grid-area: sub;
}
.facility_feature_gallery{
  grid-area: gallery;

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.facility_feature_gallery1{
  grid-column: 1;
  grid-row: 1;
}
.facility_feature_gallery2{
  grid-column: 1;
  grid-row: 2;
}
.facility_feature_gallery3{
  grid-column: 2;
  grid-row: 1 / 3;
}

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

.facility_feature_main_img,
.facility_feature_sub_img{
  aspect-ratio: 518 / 340;
  overflow: hidden;
}
.facility_feature_gallery {
  aspect-ratio: 518 / 340;
}
.facility_feature_gallery img{
  min-width: 0;
  min-height: 0;
}

@media (max-width: 880px){
  .facility_feature {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "text"
      "main"
      "gallery"
      "sub";
    gap: 4px;
  }
  .facility_feature_gallery {
    gap: 4px;
  }
}

/* その他校内施設 ---------------------------------------*/
.facility_gallery{
  margin-bottom: 60px;
}
.facility_gallery_list{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 40px 5%;
}
.facility_gallery_list li{
  grid-column: span 2;
}
.facility_gallery_list .is_wide{
  grid-column: span 3;
}

@media (max-width: 680px){
  .facility_gallery_list{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 4%;
  }
  .facility_gallery_list li{
    grid-column: span 1;
  }
  .facility_gallery_list .is_wide {
    grid-column: span 2;
  }
  .facility_gallery .content_title_primary{
    margin-bottom: .5em;
    font-size: 18px;
  }
}
/* 女子学生専用マンション ---------------------------------------*/
.facility_mansion {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.facility_mansion_img img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 680px){
  .facility_mansion {
    grid-template-columns: minmax(0, 1fr);
  }
}

/*------------------------------------------------------------------------
年間スケジュール  / schedule
--------------------------------------------------------------------------*/
.schedule_list{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.schedule_list > li{
  position: relative;

  width: 47%;
  margin-bottom: 16px;
  padding: 30px 0 0 20px;
}
.schedule_list > li:nth-child(even){
  margin-top: 38px;
}
.schedule_month{
  position: absolute;
  top: 0;
  left: 0;

  display: flex;
  align-items: baseline;
  justify-content: center;

  width: 90px;
  height: 90px;
  font-size: 40px;
  line-height: 90px;
  color: var(--color-primary);
  font-weight: 700;
  background: #fff;
  border-radius: 50%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.15);

  z-index: 2;
}
.schedule_month span{
  font-size: .5em;
}

.schedule_content{
  position: relative;

  display: flex;
  justify-content: flex-start;
  align-items: center;

  min-height: 160px;
  padding: 60px 10% 32px;
  background: var(--color-secondary-soft);
  border-radius: 20px;

  overflow: hidden;
  z-index: 1;
}
.schedule_content_list{
  padding-left: 1em;
}
.schedule_content_list li{
	list-style: disc;
  margin-top: .5em;
  font-size: 14px;
  line-height: 1.4;
}
.schedule_content_list li::marker{
	color: var(--color-primary);
}
.schedule_content_2col .schedule_content_list{
  width: 65%;
  padding-right: 1em;
}

.schedule_content_2col .schedule_content_img{
  position: absolute;
  top: 0;
  right: 0;

  width: 35%;
  height: 100%;
}
.schedule_content_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.schedule_att{
  margin-top: 24px;
  text-align: right;
}
@media (max-width: 580px){
  .schedule_list > li{
    width: 100%;
    padding: 30px 0 0 20px;
  }
  .schedule_list > li:nth-child(even){
    margin-top: 0;
  }
  .schedule_month{
    width: 70px;
    height: 70px;
    font-size: 32px;
    line-height: 70px;
  }

  .schedule_content{
    min-height: 120px;
    padding: 40px 8% 24px;
  }

  .schedule_content_2col .schedule_content_list{
    width: 60%;
  }
  .schedule_content_2col .schedule_content_img{
    width: 40%;
  }
}

/*------------------------------------------------------------------------
葵会仙台看護専門学校のいいところ  / voice
--------------------------------------------------------------------------*/
.voice_list{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 5%;
}
.voice_list li{
  display: flex;
  align-items: flex-start;

  counter-increment: voice-num;
}
.voice_list li::before{
  width: 28px;
  line-height: 1;

  content: counter(voice-num, decimal-leading-zero);
  color: var(--color-primary);
}
.voice_img{
  width: 39%;
}
.voice_text{
  width: calc( 61% - 28px );
  padding-left: 8px;
}
@media (max-width: 880px){
  .voice_list{
    grid-template-columns: repeat(2, 1fr);
  }
  .voice_img{
    width: 120px;
  }
  .voice_text{
    width: calc( 100% - 148px );
    padding-left: 1em;
  }
}
@media (max-width: 580px){
  .voice_list{
    grid-template-columns: minmax(0, 1fr);
    gap: 24px 5%;
  }
  .voice_text{
    width: calc( 100% - 140px );
  }
  .voice_list li::before{
    font-size: 12px;
    width: 20px;
  }
}

/*------------------------------------------------------------------------
学生の1日  / days
--------------------------------------------------------------------------*/
.days_lead{
  display: flex;
  justify-content: space-between;
  align-items: center;

  margin-bottom: 56px;
}
.days_lead_text{
  width: 50%;
}
.days_lead_name{
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary);
}
.days_lead_text p{
  line-height: 1.6;
}
.days_lead_education{
  margin-bottom: 8px;
  font-size: 14px;
}
.days_lead_img{
  width: 45%;
}
@media (max-width: 580px){
  .days_lead{
    flex-direction: column;

    margin-bottom: 24px;
  }
  .days_lead_text{
    width: 100%;
  }
  .days_lead_education{
    margin-bottom: 0;
  }
  .days_lead_img{
    width: 100vw;
    margin: 16px calc(50% - 50vw) 0;
  }
}
/* 1日のスケジュール ---------------------------------------*/
.days_schedule{
  display: flex;
  justify-content: space-between;

  margin-bottom: 72px;
}

.days_schedule_list{
  width: 40%;
}
.days_schedule_list li{
  position: relative;

  display: flex;

  padding: 11px 1.5em;
  font-size: 16px;
  line-height: 1.6;
  background: var(--color-secondary-soft);
  border-radius: 10em;
  overflow: hidden;
}
.days_schedule_list li + li{
  margin-top: 16px;
}

.days_schedule_list_time{
  width: 120px;
  color: var(--color-primary);
  font-weight: 700;
}
.days_schedule_list_text{
  width: calc( 100% - 120px );
}
.days_schedule_list li:has(> .days_schedule_list_puBadge) > .days_schedule_list_text{
  padding-right: 90px;
}
.days_schedule_list_puBadge{
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 90px;
  height: auto;
  font-size: 14px;
  color: #fff;
  line-height: 1;
  font-weight: 700;
  background: var(--color-primary);
}
/* Pick Up */
.days_pickUp{
  width: 55%;
}
.days_pickUp_item{
  border: 1px solid #ccc;
}
.days_pickUp_item + .days_pickUp_item{
  margin-top: 24px;
}
.days_pickUp_title{
  display: flex;
  align-items: flex-start;

  margin: 16px 0 20px;
  font-size: 18px;
  font-weight: 700;
}
.days_pickUp_title_pu{
  display: flex;
  align-items: center;
  justify-content: flex-start;

  width: 100px;
  height: auto;
  padding: 9px 0 9px 10px;
  font-size: 14px;
  color: #fff;
  line-height: 1;
  font-weight: 700;
  background: var(--color-primary);
  border-radius: 0 4em 4em 0;
}
.days_pickUp_title_title{
  width: calc( 100% - 100px);
  margin-top: 3px;
  padding: 0 1em;
}

.days_pickUp_item_inner{
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 0 20px 16px;
}
.days_pickUp_item_img{
  width: 45%;
}
.days_pickUp_item_text{
  width: 52%;
  line-height: 1.6;
}
@media (max-width: 880px){
  .days_schedule{
    flex-direction: column;
  }

  .days_schedule_list{
    width: 100%;
  }
  .days_schedule_list li{
    position: relative;

    display: flex;

    padding: 11px 1.5em;
    font-size: 16px;
    line-height: 1.6;
    background: var(--color-secondary-soft);
    border-radius: 10em;
    overflow: hidden;
  }
  .days_schedule_list li + li{
    margin-top: 8px;
  }

  /* Pick Up */
  .days_pickUp{
    margin-top: 24px;
    width: 100%;
  }
}
@media (max-width: 580px){
  .days_schedule{
    margin-bottom: 72px;
  }

  .days_schedule_list li{
    font-size: 15px;
  }
  .days_schedule_list li + li{
    margin-top: 8px;
  }

  .days_schedule_list_time{
    width: 64px;
  }
  .days_schedule_list_text{
    width: calc( 100% - 64px );
  }
  .days_schedule_list li:has(> .days_schedule_list_puBadge) > .days_schedule_list_text{
    padding-right: 80px;
  }
  .days_schedule_list_puBadge{
    width: 80px;
    font-size: 13px;
  }
  /* Pick Up */
  .days_pickUp{
    width: 100%;
  }
  .days_pickUp_item + .days_pickUp_item{
    margin-top: 8px;
  }
  .days_pickUp_title{
    display: flex;
    align-items: flex-start;

    margin: 16px 0 20px;
    font-size: 18px;
    font-weight: 700;
  }
  .days_pickUp_title_pu{
    width: 80px;
    font-size: 13px;
  }
  .days_pickUp_title_title{
    margin-top: 2px;
  }

  .days_pickUp_item_inner{
    flex-direction: column;
  }
  .days_pickUp_item_img{
    width: 100%;
  }
  .days_pickUp_item_text{
    margin-top: 8px;
    width: 100%;
    font-size: 14px;
  }
}
/* Q&A ---------------------------------------*/
.days_pa{
  width: 1000px;
  max-width: 100%;
  margin: 56px auto 0;
}
.days_pa_item + .days_pa_item{
  margin-top: 56px;
}
.days_pa_title{
  font-size: 20px;
  font-weight: 700;
}
.days_pa_title span{
  padding-right: 4px;
  color: var(--color-primary);
}

.days_pa_inner{
  display: flex;
  justify-content: space-between;

  margin-top: 32px;
}
.days_pa_text{
  position: relative;

  width: calc( 100% - 150px );
  padding: 16px 18px 0 0;
}
/* 吹き出しの線 */
.days_pa_text::before {
  content: "";

  position: absolute;
  top: 0;
  right: 0;

  width: 100px;
  height: 40px;

  border-top: 1px solid #333;
  border-right: 1px solid #333;
}
/* 吹き出しの三角 */
.days_pa_arrow{
  position: absolute;
  top: 39px;
  right: -12px;

  width: 14px;
  height: 15px;
}
.days_pa_arrow::before,
.days_pa_arrow::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 0;

  width: 15px;
  height: 1px;
  background: var(--color-text);
  transform-origin: right center;
}
.days_pa_arrow::before{
  transform: translateY(-50%) rotate(30deg);
}
.days_pa_arrow::after{
  transform: translateY(-50%) rotate(-30deg);
}
.days_pa_img{
  width: 120px;
}
.days_pa_img img{
  display: block;
  border-radius: 50%;
}
@media (max-width: 580px){
  .days_pa{
    margin: 40px auto 0;
  }
  .days_pa_item + .days_pa_item{
    margin-top: 40px;
  }
  .days_pa_inner{
    display: flex;
    justify-content: space-between;

    margin-top: 24px;
  }
  .days_pa_text{
    width: calc( 100% - 100px );
    padding: 1em 1em 0 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .days_pa_img{
    width: 80px;
  }
}

/*------------------------------------------------------------------------
一人暮らしガイド / living-guide
--------------------------------------------------------------------------*/
.lg_studentApartment_img{
  margin: 1em 0;
}

.lg_studentApartment_box .pt_list-disc{
  margin: .5em 0;
}
.lg_studentApartment_box .pt_list-disc li + li{
  margin-top: 4px;
}
.lg_rent{
  font-size: 16px;
  font-weight: 700;
  color: var(--color-accent);
}

/*------------------------------------------------------------------------
卒業生インタビュー  / graduate
--------------------------------------------------------------------------*/
.graduate_box{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.graduate_desc{
  width: 58%;
}
.graduate_box:nth-child(even) .graduate_desc{
  order: 2;
}
.graduate_desc_title{
  margin-bottom: 40px;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
}
.graduate_desc_name{
  margin-top: 16px;
  font-size: 14px;
  text-align: right;
  line-height: 1.6;
}
.graduate_img{
  width: 40vw;
  margin-right: calc(50% - 50vw);
  border-radius: 20px 0 0 20px;
  overflow: hidden;
}
.graduate_box:nth-child(even) .graduate_img{
  order: 1;

  margin-right: 0;
  margin-left: calc(50% - 50vw);
  border-radius: 0 20px 20px 0;
}
.graduate_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 880px){
  .graduate_box{
    align-items: flex-start;
  }
}
@media (max-width: 680px){
  .graduate_box{
    flex-direction: column;
  }
  .graduate_desc{
    width: 100%;
  }
  .graduate_box:nth-child(even) .graduate_desc{
    order: 1;
  }
  .graduate_desc_title{
    margin-bottom: 24px;
  }
  .graduate_img{
    width: 99vw;
    margin-top: 16px;
  }
  .graduate_box:nth-child(even) .graduate_img{
    order: 2;
  }

}

/*------------------------------------------------------------------------
オープンキャンパス  / opencampus
--------------------------------------------------------------------------*/
.opencampus p + p{
  margin-top: 1em;
}
.oc_oc_message_att strong{
  color: var(--color-primary);
}
.oc_request_btn{
  margin-top: 32px;
  font-size: 15px;
}

/* オープンキャンパス ---------------------------------------*/
.oc_oc_program{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.oc_oc_program_desc{
  width: 65%;
}

.oc_oc_program_desc_text{
  margin-bottom: 1em;
}
.oc_oc_program_list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5em 3%;

  margin: 0;
}
.oc_oc_program_list.pt_list-disc li + li{
	margin-top: 0;
}
.oc_oc_program_list.pt_list-disc li{
  padding-right: 1em;
}
.oc_oc_program_present{
  margin-top: 1.5em;
  padding: 1em;
  font-size: 12px;
  text-align: center;
  line-height: 1.4;
  border: 1px solid var(--color-primary);
  border-radius: 4em;
}
.oc_oc_program_present strong{
  display: inline-block;
  font-size: 15px;
  color: var(--color-primary);
}
.oc_oc_program_img{
  width: 30%;
}
@media (max-width: 680px){
  .oc_oc_program{
    flex-direction: column;
  }
  .oc_oc_program_desc{
    width: 100%;
  }
  .oc_oc_program_list{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .oc_oc_program_img{
    width: 100%;
    margin-top: 16px;
  }
}
.oc_oc_highlight{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 5%;
}
.oc_oc_highlight_img{
  display: block;
  margin-bottom: 8px;
}
.oc_oc_highlight_text{
  font-size: 14px;
}
@media (max-width: 580px){
  .oc_oc_highlight{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
}

.oc_oc_time{
  display: flex;
  justify-content: flex-start;
  gap: 0 16px;

  margin: 24px auto 24px;
}
.oc_oc_time div{
  display: flex;

  padding: 1em;
  font-weight: 700;
  border: 1px solid #ccc;
}
.oc_oc_time dt{
  margin-right: 1em;
}
.oc_oc_time_am{
  color: #00aebb;
}
.oc_oc_time_pm{
  color: #9070af;
}
@media (max-width: 580px){
  .oc_oc_time{
    flex-direction: column;
    gap: 4px;
  }
  .oc_oc_time div{
    padding: .5em 1em;
  }
}


.oc_oc_date{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px 2%;
}
.oc_oc_date li{
  position: relative;
  padding: 16px;
  font-size: 18px;
  text-align: center;
  color: var(--color-accent);
  font-weight: 700;
  background: var(--color-secondary-soft);
  border-radius: 8px;
  overflow: hidden;
}
.oc_oc_date li span{
  display: block;
  font-size: 14px;
  font-weight: 400;
}
.oc_oc_date .close{
  color: #ccc;
}
.oc_oc_date .close::before{
  display: flex;
  justify-content: center;
  align-items: center;
  content: "終了しました";
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 100%;
  font-size: 16px;
  color: #fff;
  font-weight: 400;
  text-shadow: 1px 1px 2px rgba(0,0,0,.2);
  background: rgba(0,0,0,.3);
}

@media (max-width: 880px){
  .oc_oc_date{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 680px){
  .oc_oc_date{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 580px){
  .oc_oc_date{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 2%;
  }
  .oc_oc_date li{
    font-size: 16px;
  }
}

/* オープンキャンパス LIGHT ---------------------------------------*/
.oc_ocLight_att{
  margin: 1em 0;
  padding: 8px 1em;

  border: 1px solid var(--color-primary);
}
.oc_ocLight_att strong{
  color: var(--color-primary);
}

.oc_ocLight_time{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 2%;
}
.oc_ocLight_time li{
  position: relative;
  padding: 16px;
  font-size: 18px;
  text-align: center;
  color: var(--color-accent);
  font-weight: 700;
  background: var(--color-secondary-soft);
  border-radius: 8px;
  overflow: hidden;
}
@media (max-width: 880px){
  .oc_ocLight_time{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 680px){
  .oc_ocLight_time{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 580px){
  .oc_ocLight_time{
    gap: 8px 2%;
  }
  .oc_ocLight_time li{
    font-size: 16px;
  }
}

/*------------------------------------------------------------------------
入試情報 カテゴリトップ  / exam
--------------------------------------------------------------------------*/
.exam_info_list_inner{
  display: flex;
  justify-content: space-between;

  width: 100%;
}
.exam_info_list_title{
  width: 200px;
  margin-bottom:1em;
}
.exam_info_list_title span{
  display: block;
}
.exam_info_list_title_ja{
  margin-top: 4px;
  font-size: 20px;
  font-weight: 700;
}
.exam_info_list{
  width: calc( 95% - 200px);
  min-height: 157px
}
.exam_info_list_btn{
  margin: 32px auto 0;
}
@media (max-width: 780px){
  .exam_info_list_inner{
    flex-direction: column;
  }
  .exam_info_list_title{
    width: 100;
  }
  .exam_info_list{
    width: 100%;
  }
}
@media (max-width: 580px){
  .exam_info_list{
    min-height: 232px;
  }
}

/* インターネット出願ボタン */
.exam_apply_btn{
  display: flex;
  align-items: center;

  width: 360px;
  max-width: 100%;
  min-height: 80px;
  margin: 24px auto 0;
  padding:  0 64px 0 32px;
  font-size: 18px;
  line-height: 1.4;
  border: 1px solid var(--color-text);
  border-radius: 4em;
  background: #fff url(../img/common/ico_arrow.svg) center right 8% no-repeat;
  background-size: 14px;

  transition: color .3s, background .3s;
}
@media (hover: hover) and (pointer: fine) {
  .exam_apply_btn:hover {
    background: var(--color-accent-soft) url(../img/common/ico_arrow.svg) center right 7% no-repeat;
    background-size: 14px;
  }
}
/* インターネット出願ボタン / 受付期間外 */
.exam_apply_btn.is-disabled{
  flex-direction: column;

  min-height: auto;
  padding: 1em;
  font-size: 16px;
  color: #999;
  background: #eee;
  border-color: #ccc;
  cursor: default;
}
.exam_apply_btn.is-disabled small{
  margin-top: 4px;
}

/* ダウンロード */
.exam_dl_list{
  display: flex;
  justify-content: center;
}
.exam_dl_list li{
  width: 30%;
  max-width: 300px;
  margin: 0 2%;
}
.exam_dl_list img{
  display: block;

  margin-bottom: 8px;
  transition: opacity .3s;
}
@media (hover: hover) and (pointer: fine) {
  .exam_dl_list a:hover img{
    opacity: .6;
  }
}
.exam_dl_name{
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  color: var(--color-accent);
}
.exam_dl_name span{
  display: inline-block;
}
.exam_dl_size{
  font-size: 14px;
  text-align: center;
  line-height: 1.4;
}
@media (max-width: 580px){
  .exam_dl_list li{
    width: 47%;
    margin: 0;
  }
  .exam_dl_list li + li{
    margin-left: 5%;
  }
}

/*------------------------------------------------------------------------
入試情報 各入試種別詳細 / exam
-------------------------------------------------------------------------*/
/* 入試情報　サブタイトル */
.exam_content_subTitle{
  margin-bottom: .5em;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
}
.exam_content_subTitle + .pt_list-disc{
  margin-top: 0;
  margin-bottom: 0;
}

/* 出願提出書類　*/
.exam_doc_list li{
  color: var(--color-accent);
  font-weight: 700;
}
.exam_doc_list li + li{
  margin-top: 1em;
}

.exam_doc_list_desc{
  color: var(--color-text);
  font-weight: 400;
  font-size: 14px;
}

.exam_doc_dl{
  display: block;

  width: fit-content;
  margin-top: 8px;
  padding: .5em 2em;
  color: var(--color-text);
  font-weight: 400;
  border: 1px solid var(--color-text);
  border-radius: 4em;
}

.exam_doc_letterPack{
  padding: .5em 1em;
  background: var(--color-secondary-soft);
  border-radius: 4px;
}
.exam_doc_letterPack b{
  color: var(--color-primary);
}
/*------------------------------------------------------------------------
Web出願のご案内 / shutsugan
-------------------------------------------------------------------------*/
.exam_webApp_flow{
  counter-reset: webAppStep;
}
.exam_webApp_flow > li{
  counter-increment: webAppStep;

  padding: 1em 1.5em;
  border: 1px solid #ccc;
  border-radius: 20px;
}
.exam_webApp_flow > li + li{
  margin-top: 8px;
}
.exam_webApp_flow_title{
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-accent);
}
.exam_webApp_flow_title::before{
  content: counter(webAppStep) ". ";
}

.exam_webApp_flow_num{
  margin: .5em 0;
}
.exam_webApp_flow_num >li + li{
  margin-top: 2px;
}
.exam_webApp_flow_num .num{
  color: var(--color-primary);
}
.exam_webApp_flow_contact{
  margin-top: .5em;
  font-size: 14px;
}
.exam_webApp_flow_contact_title{
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 4px;
}
.exam_webApp_flow_contact p{
  line-height: 1.6;
}

.gakuhi .content_box p{
  margin-top: 1em;
}
/*------------------------------------------------------------------------
よくある質問  / faq
--------------------------------------------------------------------------*/
.faq_item_box{
  padding-bottom: 24px;
  border-bottom: 1px solid #ccc;
}
.faq_item_box[open]{
  padding-bottom: 0;
  border-bottom: none;
}
.faq_item_box + .faq_item_box{
	margin-top: 40px;
}

.faq_question{
	position: relative;
	list-style: none;
  cursor : pointer;
}
.faq_question::-webkit-details-marker {
	display:none;
}

.faq_question h3{
  position: relative;

  margin-bottom: 16px;
  padding: 0 2em 0 2em;
  font-size: 18px;
  line-height: 1.6;
}
.faq_question h3::before{
  display: block;
  content: "Q.";
  position: absolute;
  top: 0;
  left: 0;

  font-size: 28px;
  line-height: 1;
  font-family: var(--font-en);
  color: var(--color-primary);
}
@media (hover: hover) and (pointer: fine){
	.faq_question:hover h3{
    color: var(--color-primary);
	}
}

.faq_answer{
  padding: 26px 1.5em;
  border-radius: 20px;
  background: var(--color-secondary-soft);
}

@media screen and (max-width: 580px) {
  .faq_item_box + .faq_item_box{
    margin-top: 32px;
  }

  .faq_question h3{
    font-size: 16px;
  }
  .faq_question h3::before{
    font-size: 24px;
  }

}

/* 開閉ボタン */
.faq_question_line{
	position: absolute;
	top: 16px;
	right: 0;
}
.faq_question_line::before,
.faq_question_line::after {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 0;

	width: 20px;
	height: 2px;
	background: var(--color-primary);
	transform: translateY(-50%);
}
.faq_question_line::before {
	margin-top: 1px;
	transform: translateY(-50%) rotate(90deg);
	transition: .3s;
}
.faq_item_box[open] .faq_question_line::before,
.faq_item_box[open] .faq_question_line::after{
	background: var(--color-primary);
}
.faq_item_box[open] .faq_question_line::before {
	margin-top: -1px;

	transform: rotate(0);
	transition: .3s;
}
@media screen and (max-width: 580px) {
	.faq_question_line{
		top: 14px;
	}
	.faq_question_line::before,
	.faq_question_line::after {
		width: 18px;
	}
}


/*------------------------------------------------------------------------
メールフォーム
--------------------------------------------------------------------------*/
.thanks_content_box p + p{
  margin-top: 1em;
}
.thanks_btn_back::after{
  order: -1;
  margin-left: 0;
  margin-right: .7em;

  transform: rotate(180deg);
}
@media (hover: hover) and (pointer: fine) {
  .thanks_btn_back:hover::after{
    transform: translateX(-3px) rotate(180deg);
  }
}

/*------------------------------------------------------------------------
おしらせ / 一覧 / info
--------------------------------------------------------------------------*/
.news_list{
  border-top: 1px solid #ccc;
}
.news_list li{
  display: flex;
  flex-wrap: wrap;

  padding: 1em;
  border-bottom: 1px solid #ccc;
}
.news_meta {
  display: flex;
  align-items: center;
  gap: 14px;

  width: 180px;
  color: var(--color-primary);
}
@media (hover: hover) and (pointer: fine) {
  a.news_category:hover {
    background: var(--color-secondary-soft);
  }
}
.news_list time{
  font-size: 15px;
  line-height: 1.4;
}
.news_category{
  padding: 2px 1em;
  font-size: 13px;
  line-height: 1;
  border: 1px solid var(--color-primary);
  border-radius: 4em;
}

.news_title{
  width: calc( 100% - 180px);
  line-height: 1.4;
}
.news_title a{
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (hover: hover) and (pointer: fine){
  .news_title a:hover{
    color: var(--color-link);
  }
}

@media screen and (max-width: 580px) {
  .news_list li{
    flex-direction: column;

    padding: 1em 0;
  }
  .news_meta {
    width: 100%;
  }

  .news_title{
    width: 100%;
    margin-top: 4px;
  }
}

/* おしらせ / ページネーション -----------------*/
.navigation.pagination{
  margin-top: 80px;
}

.nav-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.nav-links .page-numbers{
  display: flex;
  align-items: center;
  justify-content: center;

  min-width: 40px;
  height: 40px;
  padding: 0 10px;

  font-size: 14px;
  line-height: 1;
  border: 1px solid #ccc;
  border-radius: 4px;

  transition: color .3s, background-color .3s, border-color .3s;
}

.nav-links .current{
  color: #fff;
  background: var(--color-primary);
  border-color: var(--color-primary);
}

.nav-links .prev,
.nav-links .next{
  min-width: 70px;
}

@media (hover: hover) and (pointer: fine){
  .nav-links a.page-numbers:hover{
    color: var(--color-primary);
    background: var(--color-secondary-soft);
    border-color: var(--color-primary);
  }
}

@media screen and (max-width: 580px) {
  .navigation.pagination{
    margin-top: 56px;
  }

  .nav-links{
    gap: 6px;
  }

  .nav-links .page-numbers{
    min-width: 36px;
    height: 36px;
    padding: 0 8px;
    font-size: 13px;
  }

  .nav-links .prev,
  .nav-links .next{
    min-width: 60px;
  }
}


/*------------------------------------------------------------------------
おしらせ / 詳細 / single
--------------------------------------------------------------------------*/

/* 記事ヘッダー ---------------------------------------*/
.news_single_header{
  margin-bottom: 56px;
}
.news_single_header .news_meta{
  width: 100%;
  margin-bottom: 24px;
}
.news_single_title{
  margin-top: 24px;

  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}

@media screen and (max-width: 580px) {
  .news_single_title{
    margin-top: 20px;

    font-size: 24px;
  }
}

@media screen and (max-width: 580px) {
  .news_single_header{
    margin-bottom: 40px;
  }
  .news_single_title{
    padding-top: 24px;
    font-size: 22px;
  }
}

/* 本文 ---------------------------------------*/
.news_single_content p + p{
  margin-top: 1em;
}

.news_single_content a{
	text-decoration: underline dotted 1px;
	text-underline-offset: 4px;
	color: inherit;
}
@media (hover: hover) and (pointer: fine){
	.news_single_content a:hover{
		color: var(--color-link);
	}
}
/* 見出し ---------------------------------------*/
.news_single_content h2{
  position: relative;

  margin: 60px 0 32px;
  padding-top: 32px;
  font-size: 24px;
  font-weight: 700;

  border-top: 1px solid #ccc;
}
.news_single_content h2::before{
  position: absolute;
  top: -1px;
  left: 0;
  content: "";

  display: block;
  width: 64px;
  height: 1px;
  background: var(--color-primary);
}

@media screen and (max-width: 580px) {
  .news_single_content h2{
    margin-top: 48px;
    padding-top: 24px;
    font-size: 22px;
  }
}

.news_single_content h3{
  margin: 48px 0 1em;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
}
@media screen and (max-width: 580px) {
  .news_single_content h3{
    margin-top: 40px;
    font-size: 18px;
  }
}

.news_single_content h4{
  width: fit-content;
  margin: 32px 0 12px;
  padding: 0 6px;
  font-size: 18px;
  font-weight: 700;
  text-shadow: 2px 2px 1px rgba(255,255,255,.8);
  background: var(--gradient-brand);
}
@media screen and (max-width: 580px) {
  .news_single_content h4{
    margin-top: 28px;
    font-size: 17px;
  }
}
/* リスト ---------------------------------------*/
.news_single_content ul,
.news_single_content ol{
  margin: 1em 0;
  padding-left: 1.5em;
}
.news_single_content ul > li{
  list-style: disc;
}
.news_single_content ol > li{
  list-style: decimal;
}
.news_single_content li + li{
  margin-top: 4px;
}
.news_single_content li::marker{
  color: var(--color-primary);
}
/* 引用 ---------------------------------------*/
.news_single_content blockquote{
  margin: 2em 0;
  padding: 1.5em 2em;

  background: var(--color-accent-soft);
  border-left: 4px solid var(--color-accent);
}
@media screen and (max-width: 580px) {
  .news_single_content blockquote{
    padding: 1em 1.2em;
  }
}
/* 画像 ---------------------------------------*/
.news_single_content figure{
  margin: 2em 0;
}
.news_single_content figure img{
  margin-right: auto;
  margin-left: auto;
}
.news_single_content figcaption{
  margin-top: 8px;

  font-size: 13px;
  line-height: 1.6;
  color: var(--color-text);
  text-align: center;
}
/* ギャラリー ---------------------------------------*/
.news_single_content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{
  position: static;

  width: 100%;
  max-height: none;
  margin-top: 8px;
  padding: 0;

  font-size: 13px;
  line-height: 1.6;
  color: var(--color-text);
  text-align: center;

  background: none;
}
/* テーブル ---------------------------------------*/
.news_single_content table{
  width: 100%;
  margin: 2em 0;

  border: 1px solid #ccc;
}
.news_single_content th,
.news_single_content td{
  padding: 1em;

  border: 1px solid #ccc;
}
.news_single_content th{
  font-weight: 700;
  background: var(--color-secondary-soft);
}
/* 区切り線 ---------------------------------------*/
.news_single_content hr{
  margin: 48px 0;

  height: 1px;
  border: none;
  background: #ccc;
}
/* 埋め込み ---------------------------------------*/
.news_single_content .wp-block-embed{
  margin: 2em 0;
}
/* ボタン ---------------------------------------*/
.news_single_content .wp-block-button__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 180px;
  margin: 1em 0;
  padding: .8em 2em;
  text-decoration: none;
  color: var(--color-text);
  line-height: 1.4;
  background: var(--color-secondary-soft);
  border: 1px solid var(--color-text);
  border-radius: 4em;
}
@media (hover: hover) and (pointer: fine){
  .news_single_content .wp-block-button__link:hover{
    color: #fff;
    background: var(--color-link);
  }
}
@media screen and (max-width: 580px) {
  .news_single_content .wp-block-button__link{
    min-width: 160px;
    padding: .8em 1.5em;
  }
}

/* おしらせ / 前後の記事 ---------------------------------------*/
.news_post_nav{
  display: flex;
  justify-content: space-between;

  margin-top: 80px;
  padding-top: 32px;
  border-top: 1px solid #ccc;
}
.news_post_nav_prev,
.news_post_nav_next{
  width: 47%;
}
.news_post_nav a{
  display: block;
  position: relative;

  width: 100%;
  height: 100%;
  padding: 0 24px;
  line-height: 1.6;
}
.news_post_nav a span{
  display: block;

  margin-bottom: 6px;
  font-size: 13px;
  color: var(--color-primary);
}
.news_post_nav_prev a{
  padding-left: 28px;
}
.news_post_nav_next a{
  padding-right: 28px;
  text-align: right;
}
.news_post_nav_prev a::before,
.news_post_nav_next a::after{
  position: absolute;
  top: 50%;
  content: "";

  width: 12px;
  height: 12px;
  background: url(../img/common/ico_arrow.svg) center center no-repeat;
  background-size: cover;

  transition: transform .3s;
}

.news_post_nav_prev a::before{
  left: 0;
  transform: translateY(-50%) rotate(180deg);
}
.news_post_nav_next a::after{
  right: 0;
  transform: translateY(-50%);
}
@media (hover: hover) and (pointer: fine){
  .news_post_nav a:hover{
    color: var(--color-link);
  }
  .news_post_nav_prev a:hover::before{
    transform: translate(-3px, -50%) rotate(180deg);
  }
  .news_post_nav_next a:hover::after{
    transform: translate(3px, -50%);
  }
}
@media screen and (max-width: 580px) {
  .news_post_nav{
    margin-top: 56px;
    padding-top: 24px;
  }
  .news_post_nav_prev,
  .news_post_nav_next{
    width: 48%;
  }
  .news_post_nav a{
    padding-right: 20px;
    padding-left: 20px;
    font-size: 14px;
  }
  .news_post_nav a span{
    font-size: 12px;
  }
}
