@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
/* ------------------
 グローバル変数
------------------ */
:root {
  /* 色 */
  --main-color: #023894;
  --sub-color: #00CCFF;
  --bg-color: #D9E1EF;
  --gray: #F5F5F5;

  /* 背景 */
  --grad-menu:linear-gradient(90deg, #007AD2 0%, #009251 100%);
  /* 文字サイズ */
	--font-46: 4.6rem;
	--font-34: 3.4rem;
  --font-32: 3.2rem;
	--font-24: 2.4rem;
  --font-22: 2.2rem;
  --font-20: 2rem;
	--main-txt: 1.6rem;
  --font-14: 1.4rem;

  /* 幅 */
  --width-1024: 1024px;

  /* 余白 */
  --space-90: 90px;
  --space-65: 65px;
  --space-30: 30px;
}
@media screen and (max-width: 767px) {
  :root {
    /* 文字サイズ */
    --font-46: 3.2rem;
    --font-34: 2.4rem;
    --font-32: 2.2rem;
    --font-24: 2rem;
    --font-22: 1.8rem;
    --font-20: 1.7rem;
    --main-txt: 1.5rem;

    /* 余白 */
    --space-90: 60px;
    --space-65: 45px;
    --space-30: 20px;
  }
}

html {
	scroll-padding-top: 85px;
}

/* ------------------
 フォント
------------------ */
body {
  font-family: "Noto Sans JP",'Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
  font-size: var(--main-txt);
	line-height: 1.5;
  font-weight: 500;
	position: relative;
}
.f_min {
  font-family: "Noto Serif JP", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
.f_bar {
  font-family: "Barlow Condensed", Arial,'Hiragino Kaku Gothic ProN','Hiragino Sans',Meiryo,sans-serif;
}

/* ------------------
 config
------------------ */
:where(a){color: #000;&:hover {opacity: 0.8;}}
:where(h1,h2,h3,h4,h5){line-height: 1.5;}
:where(button){font-family: 'Noto Sans JP';font-size: var(--main-txt);}

/* スマホメニュー非表示 */
.spNav_btn,.spNav_panel {display: none;}

/* スマホ閲覧時のみ表示 */
.sp_block {display: none;}

/* ------------------
 アニメーション
------------------ */
.fade{
  opacity: 0;
  transition:ease-out 0.5s;
}
.fade.fade--left{
  transform: translate(-100px,0)
}
.fade.fade--right{
  transform: translate(100px,0)
}
.fade.fade--bot{
  transform: translate(0,100px)
}
.fade.scrollin{
  opacity: 1;
  transform: translate(0,0);
}
.fade.fade--list{
  opacity: 1;
}
.fade.fade--list .fade_child{
  opacity: 0;
  transition:ease-out 0.5s;
  transform: translate(0,100px)
}
.fade.fade--list.scrollin .fade_child{
  opacity: 1;
  transform: translate(0,0);
}

.fade.fade--list .fade_child:nth-child(1){
  transition-delay: 0.0s;
}
.fade.fade--list .fade_child:nth-child(2){
  transition-delay: 0.15s;
}
.fade.fade--list .fade_child:nth-child(3){
  transition-delay: 0.3s;
}
.fade.fade--list .fade_child:nth-child(4){
  transition-delay: 0.45s;
}
.fade.fade--list .fade_child:nth-child(5){
  transition-delay: 0.6s;
}
.fade.fade--list .fade_child:nth-child(6){
  transition-delay: 0.75s;
}
.fade.fade--list .fade_child:nth-child(7){
  transition-delay: 0.9s;
}
.fade.fade--list .fade_child:nth-child(8){
  transition-delay: 1.05s;
}
.fade.fade--list .fade_child:nth-child(9){
  transition-delay: 1.2s;
}
.fade.fade--list .fade_child:nth-child(10){
  transition-delay: 1.35s;
}
.fade.fade--list .fade_child:nth-child(11){
  transition-delay: 1.5s;
}
.fade.fade--list .fade_child:nth-child(12){
  transition-delay: 1.65s;
}
.fade.fade--list .fade_child:nth-child(13){
  transition-delay: 1.8s;
}
.fade.fade--list .fade_child:nth-child(14){
  transition-delay: 1.95s;
}
.fade.fade--list .fade_child:nth-child(15){
  transition-delay: 2.1s;
}
.fade.fade--list .fade_child:nth-child(16){
  transition-delay: 2.25s;
}
/* ------------------
 レイアウト
------------------ */




/* ------------------
 各種パーツ
------------------ */
.anc_point{
  position: absolute;
  top: -100px;
}
.art_head{
}
.art_head--main {
  font-size: 3.2rem;
  line-height: 1;
  font-weight: bold;
}
.art_head--sub {
  font-size: 2rem;
  line-height: 2;
  font-weight: bold;
}
.more_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--grad-menu);
  color: #fff;
  max-width: 281px;
  width: 100%;
  height: 40px;
  font-weight: bold;
  border-radius: 50px;
}
.indent{
  padding-left: 1em;
  text-indent: -1em;
}
a.tdu {
  text-decoration: underline;
}
a.blank{
  &::after{
    content: '';
    display: inline-block;
    background: url(../img/icon_blank.svg) no-repeat center;
    background-size: contain;
    width: 11px;
    height: 10px;
    margin-left: 5px;
  }
}
.bold{
  font-weight: bold;
}
.green{
  color: #007440
}
.blue{
  color: #008AEE
}
.white{
  color: #fff
}
/* ------------------
 見出し関連
------------------ */




/* ------------------
 テキスト関連
------------------ */
.text-wrap{
  display: inline-block;
}

.btn_more {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 60px;
  padding: 2px;
  font-weight: bold;
  color: #fff;
  background: #2BB7B3;
  font-size: 1.8rem;
  position: relative;
  &::after{
    content: '';
    display: block;
    background: url(../img/arrow_white.svg) no-repeat center;
    background-size: contain;
    width: 14px;
    height: 27px;
    position: absolute;
    right: 15px;
  }
}

/* ------------------
 リスト、インデント関連
------------------ */

/* ------------------
 header
------------------ */
.header{
  height: 70px;
  position: relative;
  z-index: 9;
}
.hd_inner {
	width: 100%;
  height: 70px;
	display: flex;
	justify-content: space-between;
	background: rgba(255,255,255,0);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	transition: all .3s;
	  background: rgba(255,255,255,1);
}
.header_logo {
  display: flex;
  align-items: center;
  padding: 10px;
}
.logo_sub {
  font-size: 2.4rem;
  font-weight: bold;
  padding-left: 20px;
}
.logo_cau {
  color: #E83C23;
  min-height: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 140px;
  margin-left: 15px;
  border: 1px solid #E83C23;
  border-radius: 35px;
  padding: 0 15px;
}
.pc_nav {
	height: 100%;
	display: flex;
	justify-content: flex-end;
  align-items: center;
	gap: 10px;
  padding-right: 15px;
}
.pc_nav--list {
	height: 100%;
	display: flex;
	align-items: center;
}
.pc_nav--item {
	height: 100%;
	& > a {
		height: 100%;
		padding: 0 10px;
		display: flex;
		align-items: center;
		color: #000;
    font-weight: bold;
    min-height: 40px;
	}
}
.header_contact {
	width: 184px;
	height: 40px;
	& button {
		width: 100%;
		height: 100%;
		display: flex;
		align-items: center;
		justify-content: center;
		background: var(--grad-menu);
		color: #fff;
		font-weight: bold;
    border-radius: 50px;
	}
}
.header_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #f00;
  gap:5px;
  padding: 2px 15px;
  color: #fff;
  font-weight: bold;
}
.header_btn--cont{
  background: #E83C23;
  &::before{
    content: '';
    display: block;
    background: url(../img/icon_mail.svg)no-repeat center;
    background-size: contain;
    min-width: 18px;
    height: 13px;
  }
}
/* ------------------
 footer
------------------ */
.ft_top{
  background: url(../img/bg_ft.png) no-repeat center;
  background-size: cover;
  padding: 90px 0;
}
.ft_bnr{
  width: 100%;
  position: relative;
  &::before{
    content: '';
    display: block;
    width: calc(50% + 512px);
    height: 100%;
    background: #C170AA;
    position: absolute;
    left: 0;
    top: 0;
  }
}
.ft_bnr_inner{
  position: relative;
}
.ft_bnr_inner {
  max-width: 1024px;
  width: 90%;
  margin: auto;
  display: flex;
  gap: 20px;
  color: #fff;
  align-items: center;
  padding: 15px 0;
}
.ft_bnr_body {
  max-width: 285px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  padding-right: 45px;
  &::after {
    content: '';
    display: block;
    background: url(../img/arrow_white.svg) no-repeat center;
    background-size: contain;
    width: 14px;
    height: 27px;
    position: absolute;
    right: 10px;
  }
}
.ft_bnr_sub {
  width: 100%;
  background: #fff;
  text-align: center;
  line-height: 1;
  min-height: 2rem;
  display: flex;
  color: #C170AA;
  justify-content: center;
  align-items: center;
  font-size: 1.4rem;
}
.ft_bnr_main {
  font-size: 2.8rem;
  font-weight: bold;
  color: #fff;
  line-height: 1.25;
}
.ft_btns{
  display: flex;
  gap:20px;
  margin: 60px auto 0;
  max-width: 1024px;
  width: 90%;
}
.ft_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 328px;
  width: 100%;
  background: #fff;
  min-height: 60px;
  font-size: 1.8rem;
  color: #259D9A;
  position: relative;
  &::after {
    content: '';
    display: block;
    background: url(../img/arrow_green.svg) no-repeat center;
    background-size: contain;
    width: 14px;
    height: 27px;
    position: absolute;
    right: 20px;
  }
}
.footer_nav{
  padding: 65px 0;
}
.footer_flex{
  max-width: 1152px;
  width: 90%;
  margin: auto;
  display: flex;
  justify-content: space-between;
}
.footer_name{
  font-size: 2.4rem;
  font-weight: bold;
  margin: 0 0 20px;
}
.footer_right{
}
.footer_list {
  display: flex;
  gap: 20px;
  align-items: center;
}
.footer_item--bt a {
  color: #e83c23;
  font-weight: bold;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  padding: 3px 10px;
  border: 1px solid #E83C23;
  &::after {
    content: '';
    display: block;
    background: url(../img/arrow_red.svg) no-repeat center;
    background-size: contain;
    min-width: 9px;
    height: 12px;
  }

}
.footer_item--btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #E83C23;
  gap: 5px;
  padding: 2px 15px;
  color: #fff;
  &::before {
    content: '';
    display: block;
    background: url(../img/icon_mail.svg) no-repeat center;
    background-size: contain;
    min-width: 18px;
    height: 13px;
  }
}
.copyright {
  color: #fff;
  background: #E83C23;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 5%;
  font-weight: normal;
  font-size: 1.4rem;
  line-height: 1;
  gap:3px;
  & img{
    position: relative;
    top: 1.5px;
  }
}
/* ------------------
下層ページ共通
------------------ */
/* パンくずリスト */
.breadcrumb {
  max-width: 1024;
  width: 90%;
  margin: 10px auto 0;
  position: relative;
}
.breadcrumb_list {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap:5px;
}
.breadcrumb_item {
  color: #000;
  a {
    text-decoration: underline;
		color: #000;
    &:hover {text-decoration: none;}
  }
  &:has(a[href]) {
    display: flex;
    align-items: center;
    gap: 0 5px;
  }
  &:has(a[href])::after {
    content: "-";
    color: #000;
  }
}
.under_mv{
  min-height: 272px;
  background: #efefef;
  display: flex;
  align-items: flex-end;
}
.page_title{
  max-width: 650px;
  width: 90%;
  background: #fff;
  padding: 35px 65px 0;
  border-radius: 0 35px 0 0;
  line-height: 1.5;
}
.page_title--main {
  color: #007440;
  font-size: 3.2rem;
  font-weight: bold;
}
.page_title--sub {
  color: #008AEE;
  font-size: 2rem;
  font-weight: bold;
}

/* 下層nav */
.other_nav{
  background: #EFF3F5;
  padding: 70px 0;
}
.other_nav_inner {
  max-width: 1024px;
  width: 90%;
  margin: auto;
  display: flex;
  justify-content: space-between;
}
.other_nav_plate {
  line-height: 1.25;
  margin-top: 10px;
}
.other_nav_bold {
  font-size: 2.4rem;
  font-weight: bold;
}
.other_nab_sub {
  font-weight: bold;
}

.str_nav {
  margin-top: 20px;
}

/* 下層共通 */
/*page_visual*/
.page_visual {
  min-height: 300px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding-bottom: 80px;
  background: #2BB7B3;
  position: relative;
  &::before {
    content: '';
    display: block;
    width: 100%;
    height: 50%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .25));
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 0;
}
  &::after {
    content: "";
    background: url(/education/infodesign/common/img/page_bg.png) no-repeat center;
    width: 794px;
    height: 1118px;
    position: absolute;
    bottom: -1050px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.page_visual p {
  letter-spacing: 0px;
  color: #FFF;
  margin-top: 14px;
  font-size: 2.0rem;
  font-weight: 700;
}
.page_visual h1 {
  text-align: center;
  color: #fff;
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 4.8px;
  .sub {
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 0;
    text-align: right;
    display: block;
    width: 100%;
  }
}
.last_link {
  max-width: 850px;
  margin: 64px auto 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.last_link_box {
  position: relative;
  .last_link_text {
    position: absolute;
    left: 0;
    bottom: 30px;
    max-width: 80%;
    width: 100%;
    background: #259D9A;
    p {
      padding: 12px 0 12px 55px;
      position: relative;
      color: #FFF;
      font-size: 1.8rem;
      font-weight: 700;
      line-height: 2;
      &::after {
        content: "";
        display: block;
        background: url(../../common/img/arrow_white.svg) no-repeat center/contain;
        width: 17px;
        height: 29px;
        position: absolute;
        top: 50%;
        right: 16px;
        transform: translateY(-50%);
      }
    }
  }
}
@media screen and (max-width: 767px) {
  .page_visual {
    padding: 0 5%;
    text-align: center;
    min-height: 250px;
    padding-bottom: 30px;
    &::after {
      transform: translateX(-50%) scale(.4);
      bottom: -750px;
    }
  }
  .page_visual h1 {
    font-size: 2.6rem;
    letter-spacing: 3px;
  }
  .page_visual p {
    font-size: 1.6rem;
    margin-top: 8px;
  }
  /* last_link */
  .last_link {
    padding: 0 5%;
    flex-direction: column;
  }
  .last_link_box {
    .last_link_text {
      position: absolute;
      left: 0;
      bottom: 30px;
      max-width: 80%;
      width: 100%;
      background: #259D9A;
      p {
        padding: 10px 5% 10px 20px;
        font-size: 1.6rem;
        &::after {
          right: 8px;
          width: 10px;
          height: 24px;
        }
      }
    }
  }
}

/* ------------------
  Backtop
------------------ */
#backtop {
  position: fixed;
  display: block;
  width: 50px;
  height: 50px;
  right: 3%;
  bottom: 50px;
  border-radius: 50%;
  background: rgba(50,50,50,0.9);
  opacity: 0;
  visibility: hidden;
  transition: 0.5s;
  z-index: -10;
}
#backtop::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-25%) rotate(-45deg);
  top: 50%;
  left: 0;
  right: 0;
  margin-inline: auto;
}
#backtop.active {
  opacity: 0.6;
  visibility: visible;
  z-index: 50;
}

.hd_sp--bnr {
  display: none;
  @media screen and (max-width: 767px) {
    position: fixed;
    height: 84px;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
    border: 4px solid #35b2ae;
    padding: 4px;
    z-index: 10;
    img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
    }
  }
}

@media screen and (max-width: 1279px) {
/* 推奨動作環境1280pxに固定 */
  body {
    width: 1280px;
  }
}

@media screen and (min-width: 768px) {
/* PCの場合はtelリンクを無効 */
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

/* iPad調整用 */
@media screen and (orientation: portrait) and (min-width: 768px){}

@media screen and (max-width: 767px) {
  body {
    width: 100%;
  }
.sp_block {display: block;}
.pc_block,.pc_nav {display: none;}
	
  /* ------------------
  スマホメニュー
  ------------------ */
  
  .header_logo {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    img{
      max-width: 160px;
    }
  }
  .logo_sub {
    display: none;
  }
  .logo_cau {
    display: none;
  }
  /* ボタン */
  .spNav_btn {
    display: block;position: absolute; width: 50px;height: 50px;padding-top: 26px; top:10px;right: 10px;transition: all 0.5s;z-index: 11;color: #fff;font-size: 1.2rem;font-weight: bold; background: #e83c23;
    span {position: absolute;display: block;height: 3px;background: #fff;margin-inline: auto;}
    
    /* 閉じた状態 */
    &[aria-pressed="false"] span {transition: all 0.5s; width: 28px;}
    &[aria-pressed="false"] span:nth-child(1) {top: 8px;left: 0;right: 0;}
    &[aria-pressed="false"] span:nth-child(2) {top: 16px;left: 0;right: 0;}
    &[aria-pressed="false"] span:nth-child(3) {top: 24px;left: 0;right: 0;}
    &[aria-pressed="false"]::after {content: 'MENU'; font-size: 1rem;} 
    
    /* 開いた状態 */
    &[aria-pressed="true"] span {transition: all 0.5s;}
    &[aria-pressed="true"] span:nth-child(1) {width: 30px;top: 19px;transform: rotate(45deg);right: 0px;left: 0;}
    &[aria-pressed="true"] span:nth-child(2) {display: none;}
    &[aria-pressed="true"] span:nth-child(3) {width: 30px;top: 19px;transform: rotate(-45deg);right: 0px;left: 0;}
    &[aria-pressed="true"]::after {content: 'CLOSE'; font-size: 1rem;} 
  }

  /* メニューパネル */
  .spNav_panel {
    display: block;
    height: 100vh;
    width: 300px;
    position: fixed;
    top: 0;
    right: 0;
    transition: all 0.5s;
    background: #2BB7B3;
    box-shadow: -8px 0px 8px -1px rgba(0, 0, 0, 0.2);
    overflow: auto;
    z-index: 9;
    
    /* パネルが閉じている状態 */
    &[aria-hidden="true"] {
      visibility: hidden;
      pointer-events: none;
      transform: translateX(100%);
    }

    /* パネルが開いている状態 */
    &[aria-hidden="false"] {
      visibility: visible;
      transform: translateX(0);
    }
  }

  /* メニューパネル内の項目 */
  .spNav_list {
    width: 100%;
    padding: 56px 0 0;
    font-size: 1.5rem;
  }
  .spNav_list--item {
    border-bottom: 1px solid #fff;
    a {
      display: block;
      padding: 12px 20px;
      color: #fff;
      text-align: left;
    }
  }
  .spNav_accordion--title {
    width: 100%;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    &::after {
      display: inline-flex;
      justify-content: center;
      align-items: center;
    }
    
    /* アコーディオン開閉時の状態表示 */
    &[aria-expanded="false"]::after {content: "+";}
    &[aria-expanded="true"]::after {content: "-";}

    /* アコーディオン内の項目 */
    &[aria-expanded="false"] + .spNav_accordion {
      max-height: 0;
      height: auto;
    }
    &[aria-expanded="true"] + .spNav_accordion {
      max-height: 1000px;
    }
  }
  .spNav_accordion {
    overflow: hidden;
    background: #fff;
    transition: all 0.5s;
    a {
      padding-left: 15%;
      color: #1c7da3;
      border-bottom: 1px dashed #ccc;
    }
  }
  /* bodyをタッチ不可に */
  #onbody {position: absolute;height: 100%;width: 100%; top: 0;left: 0;background: rgba(0, 0, 0, 0.6);z-index: 8;overflow: hidden;pointer-events: none;}
  body:has(#onbody[aria-hidden="true"]) {height: 100%; overflow: hidden;}

  .page_title {
    padding: 30px 5% 0;
  }
  
  /* footer */
  footer {
    padding-bottom: 84px;
  }
  .ft_top {
    padding: 40px 0;
  }
  .ft_bnr {
    &::before {
      width: 95%;
    }
  }
  .ft_bnr_inner {
    flex-wrap: wrap;
  }
  .ft_bnr_body {
    width: calc(100% - 125px);
    padding-right: 25px;
    &::after {
      width: 10px;
      height: 24px;
      right: 5px;
    }
  }
  .ft_bnr_main {
    font-size: 1.6rem;
  }
  .ft_btns {
    flex-direction: column;
    margin: 30px auto 0;
    align-items: center;
  }
  .footer_nav {
    padding: 40px 0;
  }
  .footer_left{
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .footer_right{
    display: none;
  }
  .copyright{
    display: block;
    & *{
      display: inline;
      line-height: 1.3;
    }
    & a{
      position: relative;
      top: 2px;
    }
  }
}

/* 印刷用設定 */
@media print {
  body {
    width:1280px!important;
    zoom: 0.68;
    -webkit-print-color-adjust: exact;
  }
  .hd_inner{
    position: absolute;
  }
}
@page {
  size: A4;margin: 5px;
}