@charset "utf-8";

/* init -------------------------*/

*,
::before,
::after {
  box-sizing: border-box;
}

::before,
::after {
  text-decoration: inherit; /* 1 */
  vertical-align: inherit; /* 2 */
}

/*html {
  scroll-behavior: smooth;
}*/

body {
  min-width: auto;
  line-height: 1.6;
}

img {
  vertical-align: bottom;
  width: 100%;
}

a img {
  transition: all 0.3s ease;
}

a img:hover {
  opacity: 0.7;
}

.wp-block-image>a, .wp-block-image>figure>a {
    display: inherit;
}


.drop-shadow {
  filter: drop-shadow(0px 5px 5px rgba(0,0,0,0.15));
}


/* common -------------------------*/

body .is-layout-flex {
  width: 100%;
}

details {
  margin: 1em 0;
}

figcaption {
  margin: 1em 0;
  font-size: 0.85em;
  line-height: 1.6em;
}

ul.asterisk {
  list-style: none;
  margin-left: 1.3em!important;
}

ul.asterisk li {
  text-indent: -1.5em;
}

ul.asterisk li::before {
  content: '※';
  margin-right: 0.5em;
}


.simple table th,
.simple table td {
  border: none;
  border-bottom: 1px solid rgb(0 0 0 / 20%);
}


/* header -------------------------*/


/* breadcrumb -------------------------*/

#bread_crumb {
  padding: 0 0 2em;
}


/* main_contents -------------------------*/

#main_contents {
  width: 100%;
  max-width: 1200px;
  padding-top: 3vh;
  padding-bottom: 5vh;
}

#main_col {
  width: 100%;
  float: none;
}

#side_col {
  width: 100%;
  float: none;
}

body.single-post #side_col {
    display: none;
}

/*
#bread_crumb {
padding: 0 15px clamp(15px, 1vw + 0.7rem, 20px)!important;
}
*/

#main_image img {
    aspect-ratio: 4 / 1;
    object-fit: cover;
}

#main_image_headline {
  height: 100%;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 60%, rgba(0, 0, 0, 0.8) 100%)!important;
}

.wp-block-details {
  margin: 0 0 1em;
}

.wp-block-latest-posts__list:empty:before {
  content: "まだ掲載はありません。";
}

.wp-block-latest-posts__list:empty+.more {
  display: none;
}

#single_post #post_title {
	margin-bottom: 0.3em;
}

/* logo -----------------------------*/

.h_logo {
  margin-top: 1em;
  width: 380px;
}

#logo_image_mobile {
  padding: 0 75px 0 15px;
  height: 60px;
}

#logo_image_mobile a {
  height: auto;
}

#logo_image_mobile img {
  width: 100%;
  max-height: none;
}

/* TOPスライド -----------------------------*/

#loop_slider {
  display: flex;
  width: 100%;
  min-width: 1200px;
  overflow: hidden;
  background: url(/wp-content/uploads/bg_topimg.svg) 0 0 / contain repeat-x !important;
}

#loop_slider img {
  width: 100%;
  animation: loop 40s linear infinite 0.5s both;
}

#loop_slider:hover img {
  animation-play-state: paused;
}

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

  to {
    transform: translateX(-100%);
  }
}


.global_menu ul ul a {
  /*word-break: keep-all;*/
}

#index_news_image {
  margin: 0;
}

#index_news li a.image:empty {
  background: url(/wp-content/uploads/info_noimg.svg) 0 0 /cover no-repeat !important;
}


/* TOP 申込バナー -------------------------*/
      #top-banner {
        width: 1200px;
        aspect-ratio: 8/1;
        overflow: hidden;
        background-color: #f66;
      }

      #top-banner a {
        position: relative;
        display: block;
        font-family: "Helvetica Neue",
          Arial,
          "Hiragino Kaku Gothic ProN",
          "Hiragino Sans",
          Meiryo,
          sans-serif;
        font-weight: 500;
        font-style: normal;
        text-decoration: none;
        color: #fff;
        font-size: 18px;
        line-height: 1.3em;
      }
      
      #top-banner .bn-title {
        position: absolute;
		top: 1em;
        right: 2em;
        text-align: center;
        animation-name: fadeIn;
        animation-duration: 1s;
        animation-fill-mode: forwards;
      }
      
      #top-banner .bn-title h3 {
        margin: 1em 0;
      }

      #top-banner .button {
        display: inline-block;
        border: 2px solid #fff;
        border-radius: 10vw;
        margin: 0;
        padding: 0.5em 1em;
        font-size: 1.2em;
        font-weight: 900;
        transition: all 0.3s ease;
      }

      #top-banner .button:hover {
        background-color: #fff;
        color: #f66;
      }
      
      #top-banner .ill {
        position: absolute;
      }
      
      #top-banner .halo {
        width: 3000px;
        aspect-ratio: 1;
        top: -1400px;
        left: -1300px;
      }
      #top-banner .halo img {
        animation: 30s linear infinite rotation1;
        width: 100%;
      }

      @keyframes rotation1 {
        0%{ transform:rotate(0);}
        100%{ transform:rotate(360deg); }
      }

      #top-banner .doctor {
        width: 430px;
        top: -8px;
        left: -70px;
      }

@media only screen and (max-width: 766px) {
  #top-banner {
    width: 100%;
	aspect-ratio: inherit;
	}
	
	#top-banner .bn-title {
	position: static;
	width: 60%;
	margin-left: auto;
	}
	
	#top-banner .doctor {
    width: 200px;
    top: 10px;
    left: -50px;
	}
}

/* TOP ボックス -----------------------------*/
#index_content1_top {
    top: -120px;
}

#index_content1_top .box1 .image {
  background: url(/wp-content/uploads/icon_type1.svg) no-repeat center !important;
}

#index_content1_top .box2 .image {
  background: url(/wp-content/uploads/icon_type2.svg) no-repeat center !important;
}

#index_content1_top .box3 .image {
  background: url(/wp-content/uploads/icon_type3.svg) no-repeat center !important;
}

/* TOP コンテンツ -----------------------------*/
#index_content1_bottom {
	padding: 0 20px;
}

/* TOP 大学ロゴ -----------------------------*/
.logos {
  margin: 4em 0;;
}

.logos div {
  display: flex;
  height: 70px;
  margin-bottom: 2em;
}

.logos ul {
  width: auto;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30%, 1fr));
  grid-auto-rows: 100px;
  grid-gap: 2em;
  justify-items: left;
}
.logos img {
  width: 100%;
  height: 100%;
}

/* 固定ページ -----------------------------*/
#main_image3 {
  background: #222439;
}

/* footer -----------------------------*/
#footer_logo {
  width: min(80%, 400px);
  max-width: none;
}

.footer_menu {
  margin: 0;
  display: block;
  width: 100%;
}

.footer_menu li:first-child a,
.footer_menu li:only-child a {
  color: #bbb;
}

.footer_menu .menu {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 2em;
  padding: 0 2%;
}

@media only screen and (max-width: 766px) {
  .footer_menu .menu {
    display: none;
  }
}

.footer_menu .menu li {
  margin: 0.5em 0;
  line-height: 1.6em;
}

.footer_menu .menu > .menu-item > a {
  margin: 0 0 1em;
  color: #fff;
}

.dp-footer-bar a {
  padding: 1em 0;
  font-size: 14px;
}



/* post_content -----------------------------*/
.post_content .aligncenter {
  margin-bottom: 2em;
}

#archive_post_list .right_content {
  width: min(100%, 700px);
}

.post_content section {
  margin-bottom: 3em!important;
}

.post_content section {
  border-top: 1px solid #ccd;
}

.post_content ul {
  margin: 1em 0;
  list-style: none;
}

.post_content ul>li {
  margin-bottom: 2em;
}

.post_content p {
  margin: 1em 0;
}

.post_content .headline {
  padding: 1em;
  font-family: Garamond, "Times New Roman", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HiraMinProN-W3", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
  font-size: clamp(22px, 2vw + 0.75rem, 36px);
  font-weight: 400;
  line-height: 200%;
  color: #333;
  text-align: center;
}

.post_content .headline2 {
  font-family: Verdana, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, sans-serif!important;
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 20px;
}

.post_content h3 {
  margin: 1em 0;
  padding: 10px 0;
  border-bottom: 1px solid #ccc;
  color: #333;
}

.post_content table {
  margin: 0;
}

.post_content th {
  background: #cde;
}

 {
  border-bottom: 3px solid;
}

.post_content table thead th {
  vertical-align: middle;
  font-weight: 600;
}

.post_content .curriculum table {
  table-layout: fixed;
}

.post_content .curriculum table tr > *:first-child {
  width: 10em;
}

.post_content .intro {
	margin: 2em 0;
}

/* button-navi -------------------------*/

.post_content .button-navi {
  display: grid;
	grid-gap: 1em;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.post_content .button-navi li {
  margin: 0;
}

.post_content .button-navi a {
  display: block;
  padding: 0.5em 2em;
  background: #789;
  border-radius: 5vh;
  text-decoration: none;
  color: #fff;
  text-align: center;
  line-height: 1.2;

}

.post_content .button-navi a:hover {
  opacity: 0.7;
  color: #fff;
}


/* ボタン -------------------------*/

.post_content..wp-block-button__link {
}

.post_content .wp-block-button__link:hover {
  opacity: 0.7;
  text-decoration: none;
}

.post_content..wp-block-post .wp-block-column:empty {
  content: "";
  aspect-ratio: 1;
  background: url(/wp-content/uploads/info_noimg.svg) 100% no-repeat;

}


/* ダウンロードボタン -------------------------*/
.wp-block-file__button {
  padding: 0.5em 1em;
  color: #fff!important;
  text-decoration: none!important;
}


/* post_category -------------------------*/
#single_post .post_meta,
#single_post #post_meta_bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  row-gap: 1em;
  margin: 0 0 1em;
}

.post_category {
  color: transparent;
  line-height: 1!important;
}

.post_category a {
  display: inline-block;
  padding: 0.5em 2em;
  margin: 0.5em 0;
  background: #789;
  border-radius: 5vh;
  text-decoration: none;
  color: #fff;
}

.post_category a:hover {
  opacity: 0.7;
  color: #fff;
}

.wp-block-latest-posts__post-title {
  display: block;
  font-weight: 600;
  line-height: 1.6;
}


/* ページ送り -------------------------*/
.wp-block-query-pagination-numbers .page-numbers {
  display: inline-flex;
  padding: 0 1em;
  aspect-ratio: 1;
  border-radius: 100%;
  align-items: center;
  background: #cde;
  text-decoration: none;
}

.wp-block-query-pagination-numbers span.page-numbers {
  background: #369;
  color: #fff;
}

.wp-block-query-pagination-numbers a.page-numbers:hover {
  opacity: 0.7;
}



/* テーブルレスポンシブ -------------------------*/

.table-wrap {
  margin: 0;
  overflow-x: auto;
}

.table-wrap table {
  min-width: 900px;
}


@media only screen and (max-width: 480px) {
  .table-wrap:before {
    content: "＊この表組は横にスクロールしてご覧ください";
    color: #888;
    font-size: 10px;
    line-height: 2em;
  }
  .table-wrap tbody tr {
    display: table-row;
  }

  .table-wrap tbody th, .table-wrap tbody td {
    display: table-cell;
  }
  
}

/* 動画・PDF等 埋込エリア -----------------------------*/

.pdfemb-viewer {
	height: auto!important;
}

.embed {
	margin: 3em 0;
	padding: 1em;
}

.wp-block-embed__wrapper {
  margin: auto;
  width: min(100%, 600px);
}


/* プラン概要 -----------------------------*/
.post_content #outline table {
  table-layout: fixed;
}

.post_content #outline table thead th:last-child,
.post_content #outline table tbody td:last-child {
  width: 20%;
}

.wp-block-image .alignright {
  margin: 1em;
}


/* calendar -----------------------------*/
.calendar {
  width: 100%;
}

/* thp -----------------------------*/
#thp-menu {
  border-top: none;
}

.thp-menu.column-layout > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-gap: 2%;
}

.thp-menu h4 {
  margin-top: 1em;
}

.thp-menu-group .wp-block-group__inner-container {
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
}



.post_content .thp-take table td,
.post_content .gan-thp-take table td {
  border: none;
}

.post_content .thp-take table tr > *:first-child,
.post_content .gan-thp-take table tr > *:first-child {
  width: 7em;
}

.post_content .frame-box {
  background: #eee;
  border-radius: 1em;
  margin: 1em 0;
  padding: 1em;
}

.post_content .frame-box h4 {
  margin-top: 0;
}



@media only screen and (max-width: 480px) {
  .post_content .thp-take table td,
  .post_content .gan-thp-take table td {
    display: block;
  }
}


/*navi-list-----------------------------*/

ul.navi-list {
  margin: 0;
  list-style: none;
}

ul.navi-list > * {
  margin: 1em 0;
}

ul.navi-list a {
  position: relative;
  display: block;
  padding-left: 1.3em;
  padding-right: 3em;
  vertical-align: middle;
  font-weight: 300;
  line-height: 1.6em;
}

ul.navi-list a:hover {
  background: rgba(0,30,60,0.1);
  text-decoration: none;
}

ul.navi-list a::before {
  content: "";
  position: absolute;
  top: 1em;
  left: 5px;
  display: block;
  vertical-align: middle;
  color: #333;
  width: 0.55em;
  height: 0.55em;
  border-top: 3px solid #789;
  border-right: 3px solid #345;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translate(-25%, -50%) rotate(45deg);
  transform-origin: right;
}

ul.navi-list a:not([href^="/"],[href^="#"],[href*="tokaigannpro"])::after {
  content: "";
  display: inline-block;
  margin-left: 0.5em;
  width: 20px;
  height: 20px;
  background: url(/wp-content/uploads/icn_ext.svg) 100% no-repeat;
}


/*local-navi navi-list ------------------------------*/
.local-navi ul.navi-list {
  margin: 2em 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 1px;
  align-items: center;
}

.local-navi ul.navi-list > * {
  margin: 0;
  width: 100%;
  height: 100%;
}

.local-navi ul.navi-list a {
  position: relative;
  display: grid;
  height: 100%;
  justify-content: center;
  align-items: center;
  padding: 1em 2.5em;
  background: #036;
  color: #fff;
}

.local-navi ul.navi-list a:hover {
  color: #fff;
  filter: brightness(200%);
  text-decoration: none;
}

.local-navi ul.navi-list a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.8em;
  display: block;
  vertical-align: middle;
  width: 0.8em;
  height: 0.8em;
  border-top: 3px solid #def;
  border-right: 3px solid #def;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translate(-50%, -50%) rotate(135deg);
  transform-origin: right;
}



#thp-inquiry .link_button {
  display: inline-block;
  background: #aaa url(/wp-content/uploads/mail2.png) 28px 18px no-repeat;
  color: #fff;
  padding: 0px 30px 0px 66px;
  height: 50px;
  line-height: 50px;
}

.model details figure {
  margin: 1em 0;
}

.registration .regular,
.registration .intensive {
  width: 100%;
}

.registration td {
  vertical-align: middle;
  padding: 0.5em;
  border: none;
}

.registration tr {
  display: table-row;
  border-bottom: 1px solid #bbb;
}

.registration td img {
  vertical-align: middle;
}

.registration .column-layout > div {
  margin: 2em 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-gap: 3%;
}

.registration td:nth-of-type(n+2) {
 text-align: center;
  width: 16%;
}

.registration td a[href^="#!"]{
  opacity: 0.2;
  filter: grayscale(100%);
}

.modal-wrapper {
  z-index: 999;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1em;
  text-align: center
}

.modal-wrapper:not(:target) {
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}

.modal-wrapper:target {
  opacity: 1;
  visibility: visible;
  transition: opacity .4s, visibility .4s;
}

.modal-wrapper::after {
  display: inline-block;
  height: 100%;
  margin-left: -.05em;
  vertical-align: middle;
  content: "";
}

.modal-wrapper .modal-window {
  z-index: 20;
  position: relative;
  width: min(100%, 600px);
  height: 100%;
  padding: 2em 1% 1em;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 0 30px rgba(0, 0, 0, .6);
  vertical-align: middle;
  margin: auto;
}

.modal-wrapper .modal-window .modal-item {
  /*overflow-y: auto;*/
  height: 100%;
}


.modal-wrapper .modal-window .modal-item iframe {
  width: 100%;
  height: 100%;
}

.modal-overlay {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, .8);
}

.modal-wrapper .modal-close {
  z-index: 20;
  position: absolute;
  top: 0;
  right: 0;
  width: 35px;
  color: #95979c !important;
  font-size: 20px;
  font-weight: 700;
  line-height: 35px;
  text-align: center;
  text-decoration: none;
  text-indent: 0;
}

.modal-wrapper .modal-close:hover {
  color: #2b2e38 !important;
}

/*セミナー・講演-----------------------------*/
.seminar h4 {
  margin: 2em 0;
  padding: 1em;
  background: #bdf;
  border-radius: 0.5em;
  border: none;
}

@media only screen and (max-width: 480px) {
#single_post .simple tr td:first-child {
	background-color: #cde
  }
}


/*活動報告-----------------------------*/
.report .title {
  font-size: 1.6em;
  margin: 0;
}

.report .theme {
  font-size: 1.2em;
  font-weight: 500;
  margin-bottom: 2em;
}

.katudo_year{width:80%; margin:0 auto!Important;}


/* THP 科目一覧 -----------------------------*/
.thp-schedule table thead th:nth-of-type(2) {
  width: 10em;
}


/* THP 活動報告 -----------------------------*/
.thp-report table tr th {
  font-weight: 600;
}


/*教育プログラム -----------------------------*/
#program a[href^="#!"] {
  pointer-events: none;
  opacity: 0.4;
}

.education table {
  margin: 1em 0;
}

.education table td {
  padding: 0.5em 1em!important;
}

.education table td:nth-of-type(2) {
  width: 6em;
}

.f-container {
  margin: 2em 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  grid-gap: 0.5em;
}

.f-container .f-item {
  border: 1px solid #dcdcdc;
  text-align: center;
}

.f-container .f-item a {
  display: grid;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 1em;
  color: #000;
  font-weight: 700;
  line-height: 1.4;
}

.f-container .f-item a:hover {
  text-decoration: none;
  filter: brightness(0.3);
}

.ed-course table tr td a[href^="#!"] {
  opacity: 0.2;
}

#nagoya,
.f-item a[href="#nagoya"] {
  background: rgba(34, 119, 68, 0.2);
}

#gifu,
.f-item a[href="#gifu"] {
  background: rgba(255, 136, 0, 0.2);
}

#hama,
.f-item a[href="#hama"] {
  background: rgba(255, 200, 0, 0.3);
}

#ncu,
.f-item a[href="#ncu"] {
  background: rgba(170, 17, 17, 0.2);
}

#fujita,
.f-item a[href="#fujita"] {
  background: rgba(85, 94, 204, 0.2);
}

#aichi,
.f-item a[href="#aichi"] {
  background: rgba(0, 149, 204, 0.2);
}

#meijo,
.f-item a[href="#meijo"] {
  background: rgba(153, 0, 255, 0.2);
}
  
  .education table tbody tr {
    display: table-row;
  }
}

/* 脚注 -------------------------*/

.note {
	margin: 1em 0!important;
	font-size: 0.85em;
}

.note li {
	position: relative;
	margin: 0!important;
	padding-left: 1.5em;
}

.note li:not(:empty)::before {
	content:"＊";
	position: absolute;
	left: 0;
}

.note a {
	color: #369;
	text-decoration: underline;
}


 /* acmenu ===================================*/

.ac-menu {
  margin: 1em 0;
  padding: 0;
}

.ac-menu .ac-top {
  position: relative;
  display: flex;
  align-items: center;
  margin: 0 0 1em;
  padding: 0.7em!important;
  padding-right: 2em!important;
  background-color: #eee;
  border-radius: 4px;
  color: #333;
  cursor: pointer;
}

.ac-menu .ac-top img {
  vertical-align: middle;
  margin: 0 10px;
}

.ac-menu .ac-top::before {
  content: "";
  width: 12px;
  height: 12px;
  border-top: 2px solid rgba(0, 0, 0, 0.5);
  border-right: 2px solid rgba(0, 0, 0, 0.5);
  -webkit-transform: rotate(45deg);
  position: absolute;
  top: calc(50% - 6px);
  right: 1em;
  transform: rotate(135deg);
}

.ac-menu .open::before {
  transform: rotate(-45deg) !important;
}

.ac-contents {
  display: none;
}