 @charset "UTF-8";
@import url("sanitize.css");
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');


/*公開時リンク一時停止（平井先生）*/
a[href$='?eid=1742968692'],
#voice a[href$='?cid=6'] {
  pointer-events: none;
}

/* loading -------------------------------------------------*/

#loading {
  width: 100vw;
  height: 100vh;
  transition: all 1s;
  background-color: #cc3;
  
  position: fixed;
  display: grid;
  align-items: center;
  top: 0;
  left: 0;
  z-index: 9999;
}

/* loader design */
.loader,
.loader:before,
.loader:after {
  background: #ffffff;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 4em;
}
.loader {
  color: #ffffff;
  text-indent: -9999em;
  margin: 88px auto;
  position: relative;
  font-size: 11px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}
.loader:before,
.loader:after {
  position: absolute;
  top: 0;
  content: '';
}
.loader:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}
.loader:after {
  left: 1.5em;
}
@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}
@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}


/* Hide Loading Block */
.loaded {
  opacity: 0;
  visibility: hidden;
}

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

html {
  cursor: default; /* 1 */
  line-height: 1.5; /* 2 */
  -moz-tab-size: 4; /* 3 */
  tab-size: 4; /* 3 */
  -webkit-tap-highlight-color: transparent /* 4 */;
  -ms-text-size-adjust: 100%; /* 5 */
  -webkit-text-size-adjust: 100%; /* 5 */
  word-break: break-word; /* 6 */
  scroll-behavior: smooth;
}

body {
  background-color: #fff;
  color: #666;
  font-family: YuGothic, 'Yu Gothic', sans-serif;
  font-size: clamp(16px, 1vw + 0.5rem, 18px);
  font-weight: 300;
  line-height: 1.8;
}

:focus,
:focus {
  outline: 0;
}

a {
  color: #000;
  text-decoration: none;
  transition: all 0.5s ease;
}

a:hover {
  color: #690;
  text-decoration: underline;
}

a[href=""] {
  pointer-events: none;
}

strong {
  font-weight: 700;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  transition: all 0.5s ease;
}

p {
  margin: 0 0 1.5em;
}

figure {
  margin: 0 0 1.5em;
}

#access iframe {
  width: 100vw;
  height: 45vh;
  margin-left: calc(-50vw + 50%);
}

main {
  margin-bottom: 5vh;
  overflow: hidden;
}

table {
  margin: 1em 0;
}

table.tablestyle1 {
  width: 100%;
}

table.tablestyle1 th,
table.tablestyle1 td {
  border: 1px solid rgba(0, 0, 0, 0.3);
  padding: 1em;
}

article,
section {
  padding: 1px 0;
}

.inner {
  margin: auto;
  max-width: 1300px;
  padding: 1em;
}

.table_wrap {
  overflow-x: auto;
}

.table_wrap table {
  min-width: 768px;
}

@media only screen and (max-width: 767px) {
  .table_wrap:before {
    content: "＊この表組は横にスクロールしてご覧ください";
    font-size: 0.8em;
  }
}

.content-c {
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.columns {
  padding: 0;
}

.columns .col > * {
  margin-top: 0;
}

@media only screen and (min-width: 768px) {
  .columns {
    display: flex;
    flex-wrap: nowrap;
    column-gap: 2em;
  }
  .col {
    width: 100%;
  }
  .col1-2 {
    width: calc(100%/2);
  }
  .col1-3 {
    width: calc(100%/3);
  }
  .col1-4 {
    width: calc(100%/4);
  }
  .col1-5 {
    width: calc(100%/5);
  }
}


.nav-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#pg_conf_page a,
.pg_single_back .pg_back_all,
.pg_single_back .dai,
.btn {
  display: inline-block;
  color: #fff;
  padding: 0.6em 3em;
  border-radius: 10vh;
  text-decoration: none;
  background-color: #120;
  text-align: center;
}

#pg_conf_page a:hover,
.pg_single_back .pg_back_all:hover,
.pg_single_back .dai:hover,
.btn:hover {
  color: #fff;
  text-decoration: none;
  background-color: #565;
}

.intro .btn {
  color: #000;
  background-color: rgba(255, 255, 255, 0.6);
}

.intro .btn:hover {
  background-color: rgba(255, 255, 255, 0.4);
}

.bottom-link {
  margin: 3em 0;
  text-align: center;
}

.category {
  margin: 1em;
  color: #000;
  text-align: center;
  font-family: "Arial Black", sans-serif;
  font-size: 2.4em;
  font-weight: 800;
  line-height: 1.2;
}

.category small {
  display: block;
  margin: 1em;
  font-size: clamp(16px, 1vw + 0.5rem, 18px);
  font-weight: 300;
}


.cate-image {
  border-top: 1px solid #000;
}

.cate-image img {
  object-fit: cover;
  aspect-ratio: 4/1;
}

.bread_crumb {
  margin: 0 1em;
  padding: 1em;
  border-bottom: 1px solid #ccc;
}

.bread_crumb li {
  display: inline;
  font-size: 0.75em;
  color: #777;
  position: relative;
}

.bread_crumb li:not(:last-child)::after {
  content: "\f105";
  font-family: "Font Awesome 6 Free";
  display: inline-block;
  font-weight: 600;
  padding: 0 1em;
  color: #ccc;
}

.bread_crumb li a {
  color: #aaa;
  text-decoration: none;
}

.bread_crumb li a:hover {
  color: #777;
}

.bread_crumb li.home a::before {
  display: inline-block;
  font-family: "Font Awesome 6 Free";
  content: "\f015";
  font-weight: 600;
}

.bread_crumb li.home a span {
  display: inline-block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
}

/* 大見出し -----------------------------*/
.chapter,
.pg_all_ttl,
.pg_single_ttl:not(#voice .pg_single_ttl),
#voice .pg_single_ttl .voice-catch {
  position: relative;
  width: fit-content;
  margin: 2em auto;
  padding:0.25em 1em;
  font-size: 1.7em;
  line-height: 1.4;
  color: #000;
}

.chapter:before, .chapter:after,
.pg_all_ttl:before, .pg_all_ttl::after,
.pg_single_ttl:not(#voice .pg_single_ttl)::before, .pg_single_ttl:not(#voice .pg_single_ttl)::after,
#voice .pg_single_ttl .voice-catch::before, #voice .pg_single_ttl .voice-catch::after {
  position: absolute;
  content:'';
  width: 8px;
  height: 100%;
  display: inline-block;
  top: 0;
}

.chapter::before,
.pg_all_ttl::before,
.pg_single_ttl:not(#voice .pg_single_ttl)::before,
#voice .pg_single_ttl .voice-catch::before {
  border-top: solid 1px rgba(0, 0, 0, 0.8);
  border-left: solid 1px rgba(0, 0, 0, 0.8);
  border-bottom: solid 1px rgba(0, 0, 0, 0.8);
  left: 0;
}

.chapter::after,
.pg_all_ttl::after,
.pg_single_ttl:not(#voice .pg_single_ttl)::after,
#voice .pg_single_ttl .voice-catch::after {
  content: '';
  border-top: solid 1px rgba(0, 0, 0, 0.8);
  border-right: solid 1px rgba(0, 0, 0, 0.8);
  border-bottom: solid 1px rgba(0, 0, 0, 0.8);
  right: 0;
}

/* 中見出し -----------------------------*/
.heading {
  margin: 0 0 1.5em;
  padding: 0.5em 0;
  border-bottom: dotted 3px #6c0;
  font-size: 1.4em;
  line-height: 1.6;
  color: #000;
}

/* 子見出し -----------------------------*/
.sub-heading {
  color: #000;
}


.marker {
  margin: 0 0 1.5em;
  padding: 0.5em 1em;
  background-color: #ef9;
}

.emphasis {
  display: block;
  width: fit-content;
  margin: 2em auto;
  padding: 0;
}

.emphasis li {
  display: block;
  list-style: none;
  font-size: 1.2em;
  font-weight: 600;
  line-height: 1.8;
  color: #360;
}

.box {
  margin-bottom: 2em;
  padding: 1em;
  background-color: #efc;
  border: 1px solid #9b3;
}

.photo-frame {
  width: 70%;
  display: block;
  margin: 1em auto;
  filter: drop-shadow(10px 10px 10px rgba(0, 0, 0, 0.3));
  transform: rotate(-5deg);
}


/* 丸数字リスト -----------------------------*/
.circled-number {
  counter-reset: my-counter;
  list-style: none;
  margin-bottom: 1em;
  padding: 0
}

.circled-number > li {
  padding-left: 1.3em;
  position: relative;
}

.circled-number > li:before {
  content: counter(my-counter);
  counter-increment: my-counter;
  background-color: #fff;
  border: 1px solid #666;
  border-radius: 50%;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 1.2em;
  width: 1.2em;
  color: #666;
  font-size: 0.9em;
  font-weight: 600;
  line-height: 1;
  position: absolute;
  top: 0.4em;
  left: 0;
}

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

#header .hd-content {
  width: 100%;
  height: min(10vh, 100px);
  border-top: 1px solid #000;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  z-index: 10;
}

@media only screen and (max-width: 1024px) {
  #header .hd-content {
    position: relative;
  }
}

.hd-content .hd-logo {
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  background: #fff;
}

.hd-content .hd-logo a {
  height: 100%;
  display: flex;
  padding: 0.5em 0.2em;
}

.hd-content .hd-logo img {
  height: 100%;
}

.hd-content .hd-login {
  height: 100%;
  display: flex;
  align-items: center;
  background-color: #000;
}

.hd-content .hd-login a {
  display: flex;
  column-gap: 2em;
  justify-content: space-between;
  padding: 0 1.5em;
  color: #fff;
  font-size: 1.1em;
  font-weight: 500;
}

.hd-content .hd-login a:hover {
  text-decoration: none;
}

.hd-content .hd-login a img {
  width: 30px;
}

@media only screen and (max-width: 560px) {
  .hd-content .hd-login a span {
    display: none;
  }
}


/* keyvisual -----------------------------*/

#keyvisual {
  position: relative;
  background-color: #020;
  padding: 0 0 1px;
}

#keyvisual .top-movie {
  margin: 0;
  height: 50vh;
  min-height: 400px;
  position: relative;
  overflow: hidden;
}

#keyvisual .top-movie::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(rgba(0, 34, 0, 0.2) 50%, rgba(0, 34, 0, 1) 100%);
}

#keyvisual .top-movie img,
#keyvisual .top-movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#keyvisual .top-heading {
  width: 100%;
  height: 50vh;
  position: absolute;
  top: 0;
  left: 0;
}

#keyvisual .top-heading .line {
  width: 100%;
  opacity: 0;
  position: absolute;
  bottom: 30%;
  right: 50%;
  transform: translate(50%, 50%);
  animation-duration: 30s;
  animation-iteration-count: infinite;
}

#keyvisual .top-heading .line1 {
  animation-name: line1-Anime;
}

#keyvisual .top-heading .line2 {
  animation-name: line2-Anime;
}

@keyframes line1-Anime {
  0% { opacity: 0; }
  7% { opacity: 0; }
  8% { opacity: 1; }
  33% { opacity: 1; }
  34% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes line2-Anime {
  0% { opacity: 0; }
  34% { opacity: 0; }
  35% { opacity: 1; }
  55% { opacity: 1; }
  60% { opacity: 0; }
  100% { opacity: 0; }
}

#keyvisual .intro {
  margin: 3em auto;
  padding: 0 5%;
  max-width: 1300px;
  color: #fff;
}

#keyvisual .top-heading {
  margin: 0 auto;
  padding: 0 5%;
  width: 100%;
  position: absolute;
  bottom: 0;
  color: #fff;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-size: clamp(30px, 7vw + 0.7rem, 100px);
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
  z-index: 1;
}

#keyvisual .intro p {
  line-height: 1.8;
  font-weight: 300;
}



/* 新着プログラム -----------------------------*/

#pg_left {
  display: none;
}

.photo {
  margin: 0 0 1.5em;
  display: grid;
  grid-gap: 1em;
}

@media only screen and (min-width: 768px) {
}
  .photo {
    /*grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));*/
    grid-template-columns: repeat(auto-fit, minmax(270px, calc(100% / 3.1)));
    justify-content: center;
  }

.photo img {
  aspect-ratio: 4/3;
  object-fit: contain;
  /*border: 1px solid rgba(153, 153, 119, 0.5);*/
  background: linear-gradient(-35deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.4) 100%);
}

#pg_single img {
  height: auto;
}

.pg_single_date {
  margin-top: 3em;
  text-align: right;
  font-size: 0.85em;
}

.pg_single_date span:last-child {/*時間 非表示*/
  display: none;
}

.pg_single_category {
  display: none;
}

#pg_conf_page,
.pg_single_back {
  margin: 3em auto 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, calc(100% / 4)));
  justify-content: center;
  grid-gap: 1em;
  font-size: 0.85em;
}

.pg_single_back a[href="?cid=0"] {/*カテゴリ一覧への戻り*/
  display: none;
}


/* 年別ナビ -----------------------------*/

#yearly .nav-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  
}

#yearly .nav-item {
  margin: -0.5px;
  border: 1px solid #997;
  position: relative;
}

#yearly .nav-item::before {
  content: "";
  position: absolute;
  top: -3px;
  left: -3px;
  background: #997;
  height: calc(20px / 2);
  width: 20px;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  transform-origin: bottom;
  transform: rotate(-45deg);
}

#yearly .nav-item a {
  display: grid;
  padding: 1em;
  font-weight: 600;
}

#yearly .nav-item a:hover {
  background-color: #565;
  color: #8c0;
  text-decoration: none;
}

#yearly .nav-item:has(a:hover)::before {
  background: #fff;
}


/* 最新記事・記事一覧 -----------------------------*/

script + ul {
  margin: 0;
  padding: 1px 0;
  list-style: none;
  display: grid;
  overflow: hidden;
}

#pg_all_list {
  margin: 0 0 3em;
  padding: 0;
  list-style: none;
  display: grid;
}

.blog-item {
  margin: -0.5px;
  border: 1px solid #997;
}

.blog-item a {
  width: 100%;
  height: 100%;
  position: relative;
  padding: 1.5em;
  display: grid;
}

.blog-item a:hover {
  background-color: #565;
  color: #8c0;
  text-decoration: none;
}

.toppage_thumbnail {
  position: relative;
  margin: 1.5em auto;
  width: min(100%, 500px);
  aspect-ratio: 16/9;
  overflow: hidden;
}

.toppage_thumbnail.mv::before {
  content: "";
  width: 60px;
  height: 60px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  background: url(../assets/icn_mv.svg) 50% 50% / 60px no-repeat;
  opacity: 0.5;
  z-index: 1;
}

.toppage_thumbnail img {
  height: 100%;
  object-fit: cover;
}

.blog-item a:hover .toppage_thumbnail img {
  transform: scale(110%);
}

.toppage_date_ymd {
  font-size: 0.85em;
  margin-bottom: 1em;
}

.toppage_title {
  text-decoration: none;
  font-size: 1.1em;
  font-weight: 600;
  line-height: 1.5;
}

.toppage_title a {
  display: block;
  text-decoration: none;
}

.toppage_contents a {
  display: block;
  text-decoration: none;
}

.toppage_category {
  margin: 1em auto 0;
  padding: 0.5em;
  width: min(100%, 600px);
  background-color: #360;
  border-radius: 5px;
  line-height: 1.2;
}

.toppage_category a {
  display: inline-block;
  color: #fff!important;
  padding: 0.5em;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 3px;
  text-decoration: none;
  font-size: 0.7em;
}

.toppage_category a:hover {
  color: #360!important;
  padding: 0.5em;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 3px;
  text-decoration: none;
  font-size: 0.7em;
}


#topics ul {
  margin: 0;
  padding: 1px 0;
  list-style: none;
  display: grid;
  overflow: hidden;
}

#topics .blog-item {
  display: block;
  background-color: #cc3;
}

#topics .blog-item:nth-child(3) {
  background-color: #fff;
}

@media only screen and (min-width: 768px) {
  #topics ul {
    grid-template-columns: repeat(2, 1fr);
  }
  
  #topics .blog-item:nth-child(3) {
    grid-column: 1/3;
  }
}

#topics .blog-item:nth-child(3) .toppage_thumbnail {
  width: min(100%, 700px);
}

#topics .toppage_title {
  margin: 0 auto 1em;
  width: min(100%, 600px);
  text-align: center;
}

#topics .toppage_contents {
  margin: auto;
  width: min(100%, 600px);
}

#voice script + ul,
#voice #pg_all_list {
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
}

@media only screen and (min-width: 1000px) {
  #voice script + ul,
  #voice #pg_all_list {
    grid-template-columns: repeat(3, 1fr);
  }
}

#voice .blog-item a {
  grid-template-rows: max-content auto max-content;
}

#voice .toppage_title {
  margin: auto;
  width: 100%;
}

#voice .toppage_title .voice-catch {
  margin-bottom: 1em;
  padding: 1em 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
  transition: all 0.5s ease;
}

#voice .blog-item a:hover .toppage_title .voice-catch {
  border-bottom: 1px solid rgba(136, 204, 0, 0.5);
}


#voice .pg_single_ttl {
  margin-bottom: 2em;
  color: #000;
}

#voice .pg_single_ttl .voice-catch {
  margin-bottom: 1em;
}

#voice .pg_single_ttl .voice-name,
#voice .pg_single_ttl .voice-id {
  width: fit-content;
  margin: auto;
}

#voice .pg_single_ttl .voice-name {
  font-size: 1.4em;
}

#voice .voice-id {
  font-size: 0.85em;
  font-weight: 300;
}

#voice #pg_single p:first-child {
  display: none;
}

#voice #pg_single video {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
}

#activities .blog-item a:not(#pg_all_list .blog-item a),
#seminar .blog-item a {
  padding: 0;
  grid-template-rows: auto 1fr;
  grid-template-columns: 150px 1fr;
  column-gap: 1em;
}

#activities #pg_all_list .toppage_thumbnail,
#diaries #pg_all_list .toppage_thumbnail {
  display: none;
}

#activities .toppage_thumbnail,
#seminar .toppage_thumbnail {
  margin: 5px;
  grid-row: 1 / 3;
  grid-column: 1 / 2;
  aspect-ratio: 1;
  background: #ddd url(../assets/no_image.svg) center / contain no-repeat;
}

#activities .toppage_date_ymd:not(#pg_all_list .toppage_date_ymd),
#seminar .toppage_date_ymd {
  margin: 0;
  padding: 1em 1em 0;
  grid-row: 1 / 2;
  grid-column: 2 / 3;
}

#activities #pg_all_list .toppage_title,
#diaries #pg_all_list .toppage_title {
  margin: 0 0 1.5em;
}

#activities #pg_all_list .toppage_title a {
  pointer-events: none;
}

#activities .toppage_title:not(#pg_all_list .toppage_title),
#seminar .toppage_title {
  padding: 1em;
  grid-row: 2 / 3;
  grid-column: 2 / 3;
  width: 100%;
}

#activities .toppage_contents:not(#pg_all_list .toppage_contents) {
  display: none;
}

#diaries .toppage_contents {
  width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 行数を指定 */
  overflow: hidden;
}

#diaries .toppage_contents>* {
  display: contents;
}

#diaries .toppage_contents br,
#diaries .toppage_contents img {
  display: none;
}

#achieves #pg_all_list,
#staff-only #pg_all_list,
#yearly ul {
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
}


/* footer -----------------------------*/

#footer {
  position: relative;
  padding: 1em 1em 6em;
  background: #020 url(../assets/ft_img.jpg) 50%/cover no-repeat;
}

#footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 20, 0, 0.8);
}

.ft-content {
  align-items: center;
  position: relative;
  z-index: 1;
}

.ft-content #ft-logo {
  margin: 2em auto 1em;
  width: min(80%, 300px);
}

.ft-content .nav-list {
  list-style: none;
  justify-content: center;
}

.ft-content #regular,
.ft-content #terms {
  display: none;
}

.ft-content #sns {
  display: grid;
  grid-template-columns: repeat(2, 80px);
  margin-bottom: 1em;
}

.ft-content #sns img {
  filter: opacity(0.8) invert(1);
}

.ft-content .nav-item a {
  color: #fff;
  font-size: 0.85em;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.ft-content #regular .nav-item:not(:first-child) {
  border-left: 1px solid rgba(255, 255, 255, 0.3);
}

.ft-content #regular .nav-item a {
  margin: 0 1em;
  padding: 0.5em;
}

.ft-content .nav-list:not(#sns) .nav-item a:hover {
  color: #8c0;
  border-bottom-color: #8c0;
}

.ft-content #copyright {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.7em;
  text-align: center;
}


@media only screen and (min-width: 768px) {
  .ft-content:nth-child(2) {
    display: flex;
    justify-content: space-between;
  }
  
  .ft-content #regular,
  .ft-content #terms {
    display: flex;
  }
  .ft-content  #copyright {
    text-align: right;
  }
}


/* sp-nav -----------------------------*/

.sp-nav-ber {
  width: min(100%, 480px);
  position: fixed;
  bottom: 0;
  right: 50%;
  transform: translateX(50%);
  background-color: rgba(221, 238, 34, 0.9);

  z-index: 100;
  overflow: hidden;
}

.sp-nav-ber .nav-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  list-style: none;
}

.sp-nav-ber .nav-item:nth-child(4) {
  grid-column: 5 / 6;
}

.sp-nav-ber .nav-item a {
  display: block;
  text-align: center;
  cursor: pointer;
}

.sp-nav-ber .nav-item a img {
  margin: auto;
  display: block;
}

.sp-nav-ber .nav-item:last-child {
  background-image: url(../assets/icn_close.svg);
  background-repeat: no-repeat;
}

.sp-nav-ber .nav-list.active img[alt="MENU"] {
  opacity: 0;
}

.sp-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #de2;
  opacity: 0;
  transform: rotateX(90deg);
  transform-origin: bottom;
  transition: all 0.5s ease;
  z-index: 10;
  overflow: auto;
}

.sp-modal.active {
  opacity: 1;
  transform: rotateX(0);
}

.sp-modal .inner {
  margin: auto;
  padding: 1em 1em 7em;
  max-width: 1300px;
}

.sp-modal .category {
  margin: 1em 0;
  border-bottom: 1px dotted #000;
}

.sp-modal .nav-list {
  margin: 2em 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  grid-gap: 1em;
  text-align: center;
}

.sp-modal .nav-item {
  line-height: 1.6;
}

.sp-modal #sp-sns .nav-item {
  margin: auto;
  width: 150px;
}

.sp-modal .nav-item a {
  display: block;
  padding: 0.2em;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
}

.sp-modal #sp-contents .nav-item a:not(.sub-nav-list .nav-item a) {
  margin-bottom: 1em;
  border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

.sp-modal .button .nav-item a:not(.sub-nav-list .nav-item a) {
  padding: 1em 3em;
  border: 1px solid #000;
  border-radius: 10vh;
}

.sp-modal .sub-nav-list {
  text-align: left;
}

.sp-modal .sub-nav-list .nav-item a {
  display: block;
  padding: 0.2em;
  font-size: 0.8em;
  font-weight: 300;
}

.sp-modal .nav-item a:hover {
  color: #000;
  text-decoration: none;
  background: rgba(0, 0, 0, 0.1);
}

.sp-modal .nav-item a figure {
  display: none;
  margin-bottom: 0.5em;
  aspect-ratio: 3/1;
  overflow: hidden;
  border: 1px solid #000;
  border-radius: 3px;
}

@media only screen and (min-width: 768px) {
  .sp-modal .nav-item a figure {
    display: block;
  }
}

.sp-modal .nav-item a small {
  display: block;
  font-weight: 300;
}

.sp-modal .nav-item a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-modal .nav-item a:not([href=""]) figure img:hover {
  transform: scale(110%);
}

.sp-modal-close {
  position: absolute;
  top: 17px;
  right: 15px;
  display: block;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  z-index: 100;
  cursor: pointer;
}


/* TOPスライド -----------------------------*/
#loop_slider {
  min-width: 1200px;
  overflow: hidden;
  background-color: #020;
}

#loop_slider .blog-list {
  margin: 0;
  padding: 0;
  width: 220%;
  display: flex;
  column-gap: 1em;
}

#loop_slider .blog-item {
  display: block;
  position: relative;
  width: 100%;
  animation: loop 30s linear infinite 0.5s both;
}

#loop_slider .blog-list:hover .blog-item {
  animation-play-state: paused;
}

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

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

#loop_slider .toppage_thumbnail {
  aspect-ratio: 3/2;
  overflow: hidden;
}

#loop_slider .toppage_thumbnail::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(transparent 50%, #020 100%);
}

#loop_slider .toppage_thumbnail img {
  height: 100%;
  object-fit: cover;
}

#loop_slider .toppage_summary {
  position: absolute;
  bottom: 0;
  padding: 2em;
  color: #fff;
}

#loop_slider .toppage_title a {
  color: #fff;
  text-decoration: none;
  font-size: 1.4em;
  font-weight: 500;
}

#loop_slider ..toppage_category a {
  color: #fff;
  border: 1px solid #fff;
}


@keyframes parallax-large-anim {
  from {
    transform: translateY(500px);
  }
  to {
    transform: translateY(0px);
  }
}

.large {
  animation: parallax-large-anim linear;
  animation-timeline: scroll();
}

.medium {
  background-color: #B9314F;
  width: 75px;
}

@keyframes parallax-small-anim {
  from {
    transform: translateY(-500px);
  }
  to {
    transform: translateY(0px);
  }
}

.small {
  animation: parallax-small-anim linear;
  animation-timeline: scroll();
}



/* ファイル一覧 -----------------------------*/

.file-list ul {
  margin: 0 0 2em;
}

.file-list li {
  margin-bottom: -1px;
  border: 1px solid #666;
  transition: all 0.5s ease;
}

.file-list li a {
  display: block;
  padding: 1em;
  text-decoration: none;
}

.file-list li:has(a:hover) {
  background-color: #444;
}

.file-list li:has(a:hover) a {
  color: #8c0;
}


a .toppage_title:has(.icn)::after,/*aのラッピング対応*/
.icn::after {
  width: 74px;
  margin-left: 1em;
  display: inline-block;
  vertical-align: middle;
  line-height: 1.2;
}

a[href*=".pdf"] .toppage_title:has(.icn)::after,
.icn[href*=".pdf"]::after {
  content: url("../assets/icn_pdf.svg");
}

a[href*="youtube.com"] .toppage_title:has(.icn)::after,
.icn[href*="youtube.com"]::after {
  content: url("../assets/icn_mov.svg");
}



/* 医局員専用 -----------------------------*/

#materials section:has(.file-list:empty) {
  display: none;
}


#materials .heading {
  margin: 0;
  padding: 3em 1em;
  background-position: 50% 50%;
  background-size: cover;
  background-repeat: no-repeat;
  border: none;
  color: #fff;
  
}

#materials #mv .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_mv.jpg);
}

#materials #rc .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_rc.jpg);
}

#materials #cs .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_cs.jpg);
}

#materials #cc .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_cc.jpg);
}

#materials #ss .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_ss.jpg);
}

#materials #es .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_es.jpg);
}

#materials #mh .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_mh.jpg);
}

#materials #ms .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_ms.jpg);
}

#materials #or .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_or.jpg);
}

#materials #bl .heading {
  background-image: linear-gradient(90deg, #020, transparent), url(../assets/hdimg_bl.jpg);
}



/* 教室員紹介 -----------------------------*/
.portrait {
  font-size: 0.85em;
  line-height: 1.6;
}

.portrait img {
  object-fit: cover;
  aspect-ratio: 4/5;
  margin-bottom: 1em;
}

.prof {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  grid-gap: 2em;
}

.prof-list {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 7;/*prof-itemの項目数と一致させる*/
  row-gap: 0.5em;
  padding: 0;
  list-style: none;
  font-size: 0.85em;
}

.prof-item::before {
  display: block;
  padding: 0 0.5em;
  background-color: #ef9;
  margin-bottom: 0.5em;
  font-weight: 600;
}

.prof-item:nth-child(1) {
  padding: 0.5em 0;
  font-size: 1.4em;
  font-weight: 600;
  border-bottom: 1px solid #666;
}

.prof-item:nth-child(3)::before {
  content: "大学の活動";
}

.prof-item:nth-child(4)::before {
  content: "専門分野";
}

.prof-item:nth-child(5)::before {
  content: "学会活動";
}

.prof-item:nth-child(6)::before {
  content: "学会認定";
}

.prof-item:nth-child(7)::before {
  content: "出身大学";
}

.prof-item:empty {/*空の場合は項目ごと非表示*/
  display: none;
}

.kana {
  display: inline-block;
  margin: 0 1em;
  font-size: 0.7em;
  font-weight: 300;
}

.kana::before {
  content: "（"
}

.kana::after {
  content: "）"
}


/* 研究 -----------------------------*/
.kakko {
  display: table;
  padding: 0;
  counter-reset: olcount;
  list-style-type: none;
}

.kakko li {
  display: table-row;
}

.kakko li:before {
  display: table-cell;
  counter-increment: olcount;
  content: "（" counter(olcount) "）";
}

.kakko span {
  text-decoration: none;
  border-bottom: 1px dotted #000;
}


/* 臨床 -----------------------------*/

#clinic0402 figure {
  margin-bottom: 2em;
}

#clinic04 .btn {
  width: 90%;
  display: block;
  margin: auto;
}

/* キャリアサポート -----------------------------*/

#caresupo .course {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  grid-gap: 2em;
}

@media only screen and (min-width: 768px) {
  #caresupo .course {
    grid-template-columns: repeat(2, 1fr);
  }
}

#caresupo .course .col {
  list-style: none;
  padding: 1em;
  text-align: center;
  border: 1px solid rgba(0, 0, 0, 0.3);
  color: #333;
}

#caresupo .course .col:nth-child(1) {
  background-color: #fee;
}

#caresupo .course .col:nth-child(2) {
  background-color: #fec;
}

#caresupo .course .col:nth-child(3) {
  background-color: #efd;
}

#caresupo .course .col:nth-child(4) {
  background-color: #dff;
}

#caresupo .course .col h4 {
  font-size: 2em;
  margin: 0;
}

#caresupo02 figure {
  text-align: center;
}

#caresupo02 figure img {
  width: min(100%, 1000px);
}


/* アクセス -----------------------------*/

main:has(#inquiry) {
  margin-bottom: -1em;
}

#telfax strong {
  display: block;
  font-size: 1.4em;
}

#telfax a:hover {
  text-decoration: none;
}