:root {
  --black: #111111;
  --white: #fff;
  --gray: #DFDFED;
  --gray-light: #F2F2F7;
  --beige: #FFF9F0;
  --pink: #EF8D7F;
  --purple: #2D40A1;
  --purple-light: #6275D8;
  --purple-pale: #B9BDD3;
  --purple35: rgba(45, 64, 161, .35);
  --ff-marcellus: 'Marcellus', serif;
  --ff-area: 'area-normal', sans-serif;
  --ff-colt: 'colt', serif;
  --ff-jp: YakuHanJP, 'dnp-shuei-gothic-kin-std', YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
}

html {
  background: var(--beige);
  font-family: var(--ff-jp);
  overflow-x: hidden;
  font-size: min(1.4vw, 16px);
}

body {
  display: none;
}

::selection {
  background: var(--purple);
  color: #fff
}

::-moz-selection {
  background: var(--purple);
  color: #fff
}

body {
  background: var(--beige);
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--ff-jp);
  color: var(--purple);
  line-height: 1.8em;
  letter-spacing: .075em;
  font-weight: 600;
}

p,
li {
  font-family: var(--ff-jp);
  color: var(--purple);
  line-height: 2em;
  font-size: 1rem;
  letter-spacing: .1em;
}

p {
  text-align: justify;
  margin-bottom: 2em;
}

p.large {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 2.25em;
  margin-bottom: 1.8em;
}

p.small {
  font-size: .875rem;
}

a,
a:hover,
a:focus {
  color: var(--purple);
  font-family: var(--ff-jp);
}

.marcellus {
  font-family: var(--ff-marcellus), serif !important;
  font-weight: normal !important;
}

.btn {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: .05em;
}

.btn01 {
  display: block;
  width: 100%;
  border: 1px solid var(--purple);
  background: var(--white);
  display: flex;
  justify-content: center;
  align-items: center;
  height: 4rem;
  border-radius: 1rem;
  margin-bottom: 1rem;
}

.btn02 {
  border: 1px solid var(--pink);
  line-height: 3em;
  height: 3.2em;
  display: inline-block;
  padding: 0 2em;
  border-radius: 1.6em;
  background: var(--white);
  font-weight: 600;
}

.btn03 {
  border-bottom: 1px solid var(--pink);
  padding: 0 0.5em 0.3em 0;
  display: inline-block;
}

.btn01:hover,
.btn02:hover {
  background: var(--purple);
  color: var(--beige)
}

.btn02:hover {
  background: var(--pink);
}

.btn01:hover,
.btn02:hover {
  color: var(--white)
}

.bg-gray .btn01:hover,
.bg-gray .btn02:hover {
  color: var(--gray-light)
}

.btn02 .arrow {
  margin-bottom: .25em;
}

.btn03 .arrow {
  border-color: var(--pink);
}

.arrow {
  display: inline-block;
  margin-left: .5rem;
  width: 1.5rem;
  height: .5rem;
  border-bottom: 1.5px solid var(--purple);
  border-right: 1.5px solid var(--purple);
  transform: skew(45deg);
  transition: width .25s;
}

.arrow.arrow-reverse {
  display: inline-block;
  margin-left: 0;
  margin-right: .5rem;
  border-left: 1.5px solid var(--purple);
  border-right: none;
  transform: skew(-45deg);
}

.btn01:hover .arrow,
.btn02:hover .arrow {
  border-color: var(--beige);
}

.btn01:hover .arrow,
.btn02:hover .arrow {
  border-color: var(--white);
}

.bg-gray .btn01:hover .arrow,
.bg-gray .btn02:hover .arrow {
  border-color: var(--gray-light);
}

.btn:hover .arrow {
  width: 4em;
}

ul {
  margin: 0;
  font-family: var(--ff-jp);
}

small {
  color: var(--purple) !important;
}

.grid-container {
  padding: 0;
}

.line-dot-top,
.line-dot-bottom,
.line-dot-left,
.line-dot-right {
  position: relative;
}

.line-dot-top::before,
.line-dot-bottom::after,
.line-dot-left::before,
.line-dot-right::after {
  background: url("../img/dot.svg") repeat;
  background-size: 6px;
  content: '';
  display: inline-block;
  position: absolute;
  max-width: 0 auto;
}

.line-dot-left::before,
.line-dot-right::after {}

.line-dot-top::before {
  top: 0;
  height: 2px;
  width: 100%;
}

.line-dot-bottom::after {
  bottom: 0;
  height: 2px;
  width: 100%;
}

.line-dot-left::before {
  top: 0;
  left: 0;
  width: 2px;
  height: 100%;
}

.line-dot-right::after {
  top: 0;
  right: 0;
  width: 2px;
  height: 100%;
}

.grid-padding-x.line-dot-top::before {
  width: calc(100% - 3.875rem);
  margin-left: 1.9375rem;
}

.grid-padding-x.line-dot-bottom::after {
  width: calc(100% - 3.875rem);
  margin-left: 1.9375rem;
}

.wholewrapper {
  position: relative;
}

.menu a {
  padding: 0;
}

.menu a {}

table {
  margin: 0;
  border-top: 1px solid var(--purple-pale);
}


table th,
table td {
  font-family: var(--ff-jp);
  font-size: 1rem;
  color: var(--purple);
  text-align: left;
  letter-spacing: .075em;
  padding: 1em 0.5em;
  vertical-align: top;
}

table th {
  padding-left: 0;
}

table td {
  padding-right: 0;
}


table tr {
  border-bottom: 1px solid var(--purple-pale) !important;
}

tbody tr:nth-child(even) {
  background: transparent;
}

thead,
tbody,
tfoot {
  border: none;
  background-color: transparent;
}

table table,
table table tr {
  border-style: none !important;
}

table table th,
table table td {
  padding: 0.5em 0.25em;
}


table table tr:first-of-type th,
table table tr:first-of-type td {
  padding-top: 0;
}

table table tr:last-of-type th,
table table tr:last-of-type td {
  padding-bottom: 0;
}

.tit04+table {
  margin-top: 1rem;
}

table+p {
  margin-top: 1rem;
}

dl dt,
dl dd {
  font-family: var(--ff-jp);
  color: var(--purple);
  line-height: 2em;
  font-size: 1rem;
  letter-spacing: .1em;
  font-weight: normal;
}

.fadein {
  opacity: 0;
  transition: opacity .5s;
}

.fadein.is-inview {
  opacity: 1;
}

.anchor:before {
  content: "";
  display: block;
  height: 5rem;
  margin-top: -5rem;
  visibility: hidden;
}

.grid-x .grid-padding-x {
  margin-right: -1.625rem;
  margin-left: -1.625rem;
}

/*-------------------------
icon
-------------------------*/

#youtube .cls-3 {
  clip-path: url(#clip-path);
}

#youtube .cls-2 {
  fill: none;
}

#file .cls-1 {
  fill: none;
  stroke: var(--purple);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2px;
}


/*-------------------------
loading
-------------------------*/
#loadWrapper,
.modal {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  z-index: 20000;
  background: var(--beige);
}

#loadIcon {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20rem;
  -webkit-transform: translate(-50%, -50%) rotate(-5.5deg);
  -moz-transform: translate(-50%, -50%) rotate(-5.5deg);
  -ms-transform: translate(-50%, -50%) rotate(-5.5deg);
  -o-transform: translate(-50%, -50%) rotate(-5.5deg);
  transform: translate(-50%, -50%) rotate(-5.5deg);
  z-index: 20001;
  margin: 0;
  border-bottom: 1px solid var(--purple);
}

#loadIcon svg {
  fill: var(--purple);
  width: 20rem;
  height: 2.9rem;
}


/*-------------------------
img-belt
-------------------------*/

.img-belt {
  position: relative;
  aspect-ratio: 3 / 1;
}

.img-belt-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: inset(0);
}

.img-belt-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-image: url('../img/img01.jpg');
  background-size: cover;
  background-position: center;
  z-index: -1;
}

.img-belt-bg02 {
  background-image: url('../img/img02.jpg');
}

.img-belt-bg03 {
  background-image: url('../img/img03.jpg');
}

.img-belt-bg04 {
  background-image: url('../img/img04.jpg');
}

.img-belt-bg05 {
  background-image: url('../img/img05.jpg');
}

/*-------------------------
title
-------------------------*/

.tit01,
.tit02 {
  font-family: var(--ff-jp);
  font-weight: 600;
  letter-spacing: .075em;
  margin: 0 0 1.5em 0;
}

.tit01 {
  font-size: 1.4rem;
}


.tit02 {
  font-size: 1.2rem;
}

.tit01 span,
.tit02 span {
  font-family: var(--ff-marcellus);
  font-weight: 400;
  letter-spacing: .03em;
}

.tit01 span {
  font-size: 2rem;
  display: inline-block;
  margin-right: .5em;
}

.tit01 span::after {
  content: "";
  display: block;
  background: var(--purple);
  height: 1px;
  width: 2em;
  margin: .5em 0;
}

.tit02 span {
  font-size: 1.7rem;
}

.tit02 span::after {
  display: inline-block;
  content: "";
  background: var(--purple);
  width: 1px;
  height: 1rem;
  margin: 0 .75rem;
}

.tit03 {
  font-size: 1.25rem;
  margin: 0 0 1em 0;
}

.tit04 {
  font-size: 1.05rem;
}

.tit04::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  border-radius: .5em;
  border: 1px solid var(--pink);
  margin-right: .25em;
  vertical-align: -7.5%;
}


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

header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  height: 80px;
  padding: 0 2rem;
  z-index: 200;
  background: var(--beige);
}

header[data-js-scroll="true"] {
  background: var(--white);
}

header h1 {
  font-size: min(14px, 2.8vw);
  line-height: 1.4;
  font-weight: 500;
  margin: 0;
}

header h1 a {
  display: block;
}

header h1 svg {
  width: 3rem;
  height: 3rem;
  fill: var(--purple);
  margin-right: .5rem;
  vertical-align: -50%;
}

header h1 span {
  display: block;
  float: left;
  font-weight: 600;
}

header .menu li {
  color: var(--purple);
  margin-left: 1.25em;
  font-weight: 600;
  font-size: 14px;
}

header .menu li:hover {
  border-bottom: 1px solid var(--purple);
}

header .menu li:last-child:hover {
  border-bottom: none;
}

header .menu a svg {
  width: 1.35em;
  height: 1.35em;
  fill: var(--purple);
}

header .menu span {
  font-size: 1.7em;
  font-weight: 300;
  vertical-align: middle;
  margin-top: -5px;
  margin-right: .1em;
}


.lang-sp {
  font-family: var(--ff-jp) !important;
  position: absolute;
  right: 66px;
  top: 1.3rem;
  display: flex;
  flex-direction: column;
  line-height: 0.75;
  font-size: 10px;
  text-align: center;
  font-weight: 600;
  letter-spacing: 0;
}

.lang-sp a:hover {
  font-family: var(--ff-jp) !important;
}

.lang-sp span {
  font-weight: 300;
  margin-bottom: 1px;
}

/*-------------------------
section
-------------------------*/

.sectionWrapper {
  padding-top: -1px;
  margin-top: 1px;
}

section {
  position: relative;
  padding: 8rem 4rem;
}

.section-narrow .grid-container {
  max-width: 48em;
}

.bg-white {
  background: var(--white)
}

.bg-gray {
  background: var(--gray-light)
}

.section-item p:last-of-type {
  margin-bottom: 0;
}

.section-item {
  padding: 3rem 0;
}

section .section-item:first-child {
  padding-top: 0;
}

section .section-item:last-child {
  padding-bottom: 0;
}

.section-tit+.section-item {
  padding-top: 0;
}


p .speaker {
  font-weight: 600;
  color: var(--pink);
  margin-right: 1em;
}


/*-------------------------
fv
-------------------------*/

#fv {
  height: 100vh;
  height: 100svh;
  padding: 80px 2rem 4rem 2rem;
  overflow: hidden;
  margin: 0 auto;
  position: relative;
  transition: 0.2s linear;
}

#fv img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20vh 0 0 0;
  overflow: hidden;
}

#fv-txt {
  position: absolute;
  bottom: -1.5vw;
  right: 0;
  background: var(--beige);
  background: linear-gradient(transparent 15%, var(--beige) 15%);
  width: 100%;
  padding: 0 3rem 3rem 3rem;
  margin: 0 -1rem -3rem -1rem;
  transform: rotate(-5.5deg);
}

#fv h1 {
  border-bottom: 1px solid var(--purple);
  display: block;
  margin-bottom: 1vw;
  padding-bottom: .75vw;
}

#fv svg {
  fill: var(--purple);
  display: block;
  width: 50vw;
  height: 7.5vw;
}


#fv h2 {
  font-family: var(--ff-area);
  font-size: .78vw;
  line-height: 1.6em;
  letter-spacing: .05em;
  margin: 1em 1em 0 0;
  transform: rotate(5.5deg);
}

#scroll {
  display: block;
  position: fixed;
  bottom: 6em;
  left: 2em;
  width: 6em;
  height: 2em;
  transform: rotate(90deg);
  opacity: 0;
  transition: all, .1s;
  z-index: 10;
}

#scroll p {
  font-size: 1.2rem;
  color: var(--purple);
  font-family: var(--ff-marcellus);
  margin-bottom: 0;
  position: relative;
  line-height: 1.4;
  text-align: center;
}

#scroll .arrow {
  position: absolute;
  bottom: 0;
  left: 0;
  margin: 0 0 0 -.25em;
  width: 6em;
}

#scroll.visible {
  opacity: 1;
  z-index: 50 !important;
  transition: all, .1s;
}


/*-------------------------
lead
-------------------------*/

#main-lead h2 {
  font-size: 2rem;
  margin: 3.75rem 0;
}

#main-lead h2 span {
  font-weight: 400;
}

#main-lead p:last-of-type {
  margin-bottom: 0;
}

/*-------------------------
news
-------------------------*/

dl.newsList {
  margin-bottom: 8rem;
}

dl.newsList:has(+ .pagination) {
  margin-bottom: 4rem;
}


.index dl.newsList {
  margin-bottom: 2.5rem;
}

.newsList dt,
.post-date {
  font-family: var(--ff-marcellus);
  color: var(--pink);
  margin: 2rem 0 .25rem 0;
}

#archive .newsList dt:first-of-type {
  margin-top: 0;
}

.news-cat {
  display: inline-block;
  font-family: var(--ff-jp);
  border: 1px solid var(--pink);
  padding: .2em .5em;
  margin-left: .75em;
  font-size: .9em;
  border-radius: .25em;
  line-height: 1;
  color: var(--pink);
}

.news-cat:hover {
  background: var(--pink);
  color: var(--white);
}

.cat-list {
  margin: 0.5rem 0 4rem 0;
}

.cat-list li {
  display: inline-block;
  font-family: var(--ff-jp);
  margin: 0 .75em 0 0;
  padding: 0 0 0.4em 0;
  font-size: .9em;
  line-height: 1;
  color: var(--purple);
}

.cat-list .current-cat,
.cat-list li:hover {
  border-bottom: 1px solid var(--purple);
}

.newsList dd {
  color: var(--purple);
  font-size: 1rem;
}

.newsList dd:hover {
  text-decoration: underline;
}

#archive .newsList dd::after {
  content: "";
  display: block;
  background: var(--gray);
  width: 100%;
  height: 1px;
  margin: 1.5rem 0;
}

#archive .newsList dd:last-of-type::after {
  content: "";
  display: none;
  height: 0;
  margin: 0;
}


.index #news section .tit02 span::after {
  display: none;
  margin: 0;
}

#archive header,
#single header,
#movie header {
  background: var(--white);
}

#archive #page-lead,
#single #page-lead,
#movie #page-lead {
  background: var(--white);
}

#archive #page-lead h1,
#single #page-lead h1,
#movie #page-lead h1 {
  font-family: var(--ff-marcellus);
  font-weight: 400;
  font-size: 2rem;
  padding: 0;
  display: inline-block;
  margin: 0;
  line-height: 1;
  letter-spacing: .03em;
}

#archive #page-lead h1,
#single #page-lead h1 {
  margin-bottom: 4rem;
}

#archive #page-lead h1,
#single #page-lead h1 {
  margin-bottom: 4rem;
}

#archive #page-lead h1 span,
#single #page-lead h1 span,
#movie #page-lead h1 span {
  font-family: var(--ff-jp);
  font-weight: 600;
  letter-spacing: .075em;
  margin: 0 0 0 .5em;
  font-size: .75em;
  border-left: 1px solid var(--purple);
  padding-left: .75em;
}

#archive section,
#single section,
#movie section {
  padding-top: 0;
}

.post-tit {
  margin-bottom: 3rem;
  max-width: 640px;
}

.post-tit h2 {
  font-size: 1.5rem;
  margin: 0 0 1em 0;
  font-weight: 400;
}

.post-tit h2::after {
  content: "";
  display: block;
  background: var(--pink);
  width: 10rem;
  height: 1px;
  margin: 1em 0 0 0;
}

.post-date {
  font-size: 1.1rem;
  margin-bottom: 1em !important;
}

.post-body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 640px;
}

.post-body h3 {
  border: none !important;
  font-family: var(--ff-jp) !important;
  font-size: 1.2rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
  padding: 0 0 0 1em !important;
  border-left: 1px solid var(--purple) !important;
}

#page-lead .post-body p {
  margin-bottom: 1em;
}

.post-body a {
  border-bottom: 1px solid var(--pink);
  padding-bottom: .25em;
}

.archive-cat {
  font-size: .9rem;
  margin-bottom: 1em !important;
  color: var(--purple-light);
}

.post-body iframe {
  max-width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}

.post-body .post-img,
.post-body .post-iframe {
  margin: 1rem 0;
}

.post-body .caption {
  color: var(--purple-light);
  font-size: .8em;
  margin-top: 1em !important;
}

.post-body p+h3 {
  margin-top: 2rem !important;
}

.post-file svg {
  width: 1.1rem;
  height: 1.1rem;
  margin: 0 .3em 0 0;
  vertical-align: middle;
}

/*-------------------------
toc
-------------------------*/


#toc {
  padding-top: 2rem;
}

.toc-img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.toc-txt {
  padding-left: 3rem;
}

#toc .large-order-1.toc-txt {
  padding-left: 0;
  padding-right: 3rem;
}

#toc h2,
#bnr-interview h2 {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 2;
  margin: .25em 0 1em 0;
}

#toc h3,
#bnr-interview h3,
.index #movie h3 {
  font-family: var(--ff-marcellus);
  font-size: 1.6rem;
  font-weight: 400;
  display: inline-block;
  padding: 0;
  line-height: 1.5em;
  border-bottom: 1px solid var(--purple);
  margin-bottom: 1em;
  transform: rotate(-5deg);
}

#toc .large-order-1 h3,
#bnr-interview .large-order-1 h3 {
  transform: rotate(5deg);
}

#toc h3 span,
.index #movie h3 span {
  color: var(--pink);
}

#toc p {
  margin: 1em 0 2em;
  font-size: max(1vw 13px);
}

/*-------------------------
movie
-------------------------*/

.index #movie h3 {
  border-color: var(--pink);
  transform: rotate(-8deg);
}

/*fancybox*/

.fancybox-button {
  background: transparent;
  width: 3rem;
  height: 3rem;
}

.fancybox-button--close {
  margin: 1rem;
  padding: 0;
  outline: none;
  background: none;
  cursor: pointer;
  z-index: 100;
  background-color: var(--white);
  border: 1px solid var(--purple);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  padding: 10px;
}

.fancybox-button--close::before,
.fancybox-button--close::after {
  content: '';
  display: block;
  height: 1px;
  background-color: var(--purple);
  transform: translateY(10px);
  transition: 0.25s ease-in-out;
}

.fancybox-button--close::before {
  transform: translateY(-10px);
  box-shadow: 0 10px var(--purple);
  transform: rotate(-45deg);
  box-shadow: none;
  background-color: var(--purple);
}

.fancybox-button--close::after {
  transform: rotate(45deg);
  box-shadow: none;
  background-color: var(--purple);
}

.fancybox-button--close:hover {
  background: var(--purple);
}

.fancybox-button--close:hover:before,
.fancybox-button--close:hover:after {
  background-color: var(--white);
}

.fancybox-button,
.fancybox-button:visited,
.fancybox-button:link,
.fancybox-caption__body {}

.fancybox-navigation .fancybox-button {
  opacity: 1 !important;
}

.fancybox-navigation .fancybox-button--arrow_left,
.fancybox-navigation .fancybox-button--arrow_right {
  padding: 0;
  width: 3.75rem;
}

.fancybox-caption__body {
  font-size: 2rem;
  line-height: 1;
}

.closeWrapper svg,
.fancybox-button--close svg,
.fancybox-button--zoom svg {
  stroke-width: 2;
  fill: none;
}

.fancybox-bg {
  background: rgba(239, 141, 127, .8);
}

.fancybox-caption {
  background: none;
  text-align: left;
  padding: 0;
}

.fancybox-slide--image {
  padding: 3rem;
}

.fancybox-button--thumbs,
.fancybox-button--play,
.fancybox-button--zoom {
  display: none !important;
}

.index #movie section {
  padding: 0;
}


.movie-item img {
  aspect-ratio: 9 / 16;
  object-fit: cover;
  border-radius: 1rem;
}

.fancybox-slide {
  padding: 5rem;
}

.fancybox-iframe,
.fancybox-content {
  aspect-ratio: 9 / 16 !important;
  width: calc(900vh / 16 - 5.625rem) !important;
  height: calc(100vh - 10rem) !important;
  max-width: 100%;
  max-height: calc(1600vw / 9 - 17.8rem);
}

.movie-slider {
  margin: 0 -5rem 2.5rem -5rem;
}

.movie-slider .slick-list {
  margin: 0 -2rem;
}

.movie-slider .slick-slide {
  margin: 0 2rem;
}

.movie-img {
  position: relative;
  border-radius: 1rem;
  background: var(--black);
}

.movie-item img {
  opacity: .7;
  transition: opacity .5s;
}

.movie-item svg {
  position: absolute;
  display: block;
  width: 7vw;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  z-index: 10;
  fill: none;
  stroke: var(--white);
  stroke-width: 6;
}

.movie-item:hover img {
  opacity: 1;
}

.movie-item:hover svg {
  fill: #fff;
}

#movie .movie-item {
  margin-top: 3rem;
}

.movie-list.grid-padding-x>.cell {
  padding-right: 1rem;
  padding-left: 1rem;
}

.grid-x .movie-list.grid-padding-x {
  margin-right: -1rem;
  margin-left: -1rem;
}

.movie-item h4 {
  font-size: 1rem;
  margin-top: 1em;
}

/*-------------------------
bnr-interview
-------------------------*/

#bnr-interview section:first-child {
  padding-top: 0;
  position: relative;
}

.bnr-interview-img {
  width: 100%;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  z-index: 20;
}

.bnr-interview-txt {
  padding-right: 3rem;
}

#bnr-interview section::after {
  display: block;
  content: "";
  background: var(--white);
  width: 100%;
  height: 5rem;
  position: absolute;
  top: -1px;
  left: 0;
}

.lower #bnr-interview section::after {
  background: var(--beige);
}


.lower .bnr-interview-txt {
  padding-right: 0;
  padding-left: 3rem;
}

/*-------------------------
contact
-------------------------*/

#contact section {
  padding-top: 5rem;
  padding-bottom: 3rem;
}

#contact p {
  margin: 1em 0 0 0;
}

#contact::after {
  content: "";
  display: block;
  background: var(--purple);
  width: 100%;
  max-width: 75rem;
  margin: 0 auto;
  height: 1px;
}

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


#footer {
  position: relative;
}

#footer section {
  padding-top: 3rem;
  padding-bottom: 5rem;
}

#footer img {
  width: 14rem;
  display: block;
  margin-bottom: .5rem;
}

#footer h5 {
  margin-top: 1rem;
  font-size: 1rem;
  line-height: 2em;
}

#footer .menu li {
  margin-bottom: 1em;
  font-weight: 600;
  font-size: .9rem;
}

#footer .menu li svg {
  width: 1.5em;
  height: 1.5em;
  fill: var(--purple);
}

#footer .copyrights {
  font-family: var(--ff-area);
  font-size: .6rem;
  text-align: right;
  font-weight: 600;
}

#footer .menu-sns {
  display: flex;
  align-items: center;
}

#footer .menu-sns a {
  display: inline;
  margin-right: 1em;
  vertical-align: middle;
}

#footer .menu li a:nth-child(2) svg {
  width: 1.75em;
  height: 1.75em;
}

#contact section .tit02 span::after {
  display: none;
  margin: 0;
}

#footer .menu li a:hover {
  text-decoration: underline;
}


/*-------------------------
page-lead
-------------------------*/

#page-lead section {
  padding-top: 12rem;
  padding-bottom: 6rem;
}

.page-lead-s section {
  padding-bottom: 3rem !important;
}

#page-lead p {
  margin: 0;
}

#page-lead .grid-x {
  padding: 0;
}

#page-lead h3 {
  border-top: 1.5px solid var(--purple);
  font-family: var(--ff-marcellus);
  font-weight: 400;
  font-size: 2rem;
  padding: 0;
  display: inline-block;
  margin: 0 0 0.65em 0;
  line-height: 2;
}

.page-lead-tit h1 {
  font-size: 1.8rem;
  margin-bottom: 2.5rem;
}

/*-------------------------
study
-------------------------*/


#study .approach-item h5 .number {
  font-size: 1rem;
  font-family: var(--ff-area);
  background: var(--purple);
  color: var(--white);
  width: 3em;
  height: 3em;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  margin-right: 1em;
}

#study .approach-item h5 {
  line-height: 1.4;
  margin: 1em 0;
}

#study .approach-item h5 small {
  color: var(--purple);
  display: inline-block;
  font-weight: 400;
  line-height: 1;
}

/*-------------------------
faculty
-------------------------*/

.faculty-item {
  margin-bottom: 4rem;
}

.faculty-img {
  padding-bottom: 2rem;
  position: relative;
}

.faculty-img::after {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  aspect-ratio: 1/1;
  background: var(--pink);
  width: 100%;
  opacity: 0;
  transition: opacity .5s;
}

.faculty-img p.caption {
  font-size: min(12px, 2.5vw);
  color: var(--purple-light);
  margin: 0.25em 0 0 0;
  line-height: 1.6;
  letter-spacing: 0;
  word-break: break-all;
  position: absolute;
}

.faculty-item h5 {
  font-size: 1.3rem;
  margin: 0 0 .5em 0;
  letter-spacing: .1em;
}

.faculty-item h5 small {
  font-size: .9rem;
  font-weight: 400;
  vertical-align: super;
}

.faculty-item h5 .en {
  display: block;
  font-family: var(--ff-marcellus);
  font-weight: 400;
  font-size: 1.2rem;
  letter-spacing: .03em;
  line-height: 1.5;
}


.faculty-item p {
  margin-bottom: 1rem;
  word-break: break-all;
}

.faculty-item p.lecture {
  margin-bottom: 1rem;
  display: block;
  padding: 0;
  font-size: .8em;
  background: var(--gray-light);
  padding: .25em .75em;
  border-radius: .2em;
}

.faculty-tit.line-dot-top {
  padding-top: 2rem;
  margin-top: 1.5rem;
}

.faculty-item:hover .btn03 .arrow {
  width: 4em;
}

.faculty-item:hover .faculty-img::after {
  opacity: .75;
}

#about .faculty-item .faculty-img::after {
  display: none;
}

#about .faculty-item {
  padding-bottom: 2.5rem;
  margin-bottom: 2.5rem;
}

#about .faculty-item .faculty-img {
  padding-right: 2rem;
}

#about .faculty-list .faculty-item:last-of-type {
  padding-bottom: 2rem;
  margin-bottom: 0;
}



/*-------------------------
access
-------------------------*/

#access section {
  padding-top: 5rem;
  padding-bottom: 5rem;
}


#access iframe {
  width: 100%;
  aspect-ratio: 3/2;
}


/*-------------------------
curriculum
-------------------------*/

.curriculum-item {
  padding: 3rem 0;
}

.curriculum-item .grid-x {
  position: relative;
  padding-left: 1.5rem;
}

#about .curriculum-item .grid-x {
  padding-left: 2.5rem;
}

.curriculum-list .curriculum-item:first-of-type {
  padding-top: 0;
}

.curriculum-item p {
  margin: 0;
}

.curriculum-item .grade .en {
  font-size: 2.5rem;
  font-family: var(--ff-colt);
  font-weight: 400;
  margin-right: .5rem;
}

h6.curriculum-arrow {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  background: var(--purple);
  color: #fff;
  padding: 1em .5em;
  letter-spacing: .75em;
  font-weight: bold;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: 0;
}

.curriculum-list .curriculum-item:nth-of-type(2n) h6.curriculum-arrow {
  background: var(--pink);
}

h6.curriculum-arrow img {
  position: absolute;
  bottom: -1px;
  right: 0;
  left: 0;
  display: block;
  width: 3rem;
  margin: auto;
  max-width: none;
}

.curriculum-item h5 {
  font-size: 1.25rem;
  margin-bottom: 1em;
}

.curriculum-item li {
  line-height: 2em;
  color: var(--purple);
  list-style-type: none;
  font-weight: 600;
}

.curriculum-item p+.btn02 {
  margin-top: 2em;
}


.curriculum-item li::before {
  content: "・  ";
}

.curriculum-item li small {
  font-weight: 400;
  letter-spacing: 0;
}

.curriculum-item .grid-x .grid-x {
  margin: 2.5rem 0;
}

.curriculum-item:last-child {
  padding-bottom: 0;
}

.curriculum-class,
.curriculum-text,
.curriculum-line {
  padding-right: 0 !important;
}

/*-------------------------
subject
-------------------------*/

.subject-list {
  margin-bottom: -3rem;
}

.subject-item {
  margin-bottom: 3.5rem;
}

.subject-item p {
  margin-bottom: 1em;
}

.subject-item p.small {
  line-height: 1.6;
}

.subject-item h5 {
  margin: 2.3rem 0.5rem 1.5rem 0;
  border-bottom: 1px solid var(--pink);
  display: inline-block;
  font-size: 1.2rem;
}

.subject-item h6 {
  margin-top: -.5rem;
  margin-bottom: 1.5rem;
  display: inline-block;
}

.subject-item h6 span {
  font-size: .9rem;
  color: var(--pink);
  border: 1px solid var(--pink);
  display: inline-block;
  height: 2em;
  line-height: 1.9em;
  padding: 0 .5em;
  border-radius: 1em;
}

.subject-item .caption {
  display: block;
  font-size: 12px;
  text-align: right;
  color: var(--purple-light);
  margin: .5em 0 0 0;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.subject-item .caption+h5 {
  margin-top: .75rem;
}

.subject-item-others h5 {
  margin: 1.5rem 2rem 0 0;
}

.subject-item img {
  object-fit: cover;
  aspect-ratio: 3 / 2;
}


/*-------------------------
grades
-------------------------*/
.subject-slide img {
  position: relative;
}

.subject-slide .dots-wrapper {
  position: absolute;
  top: 0;
  width: 100%;
  aspect-ratio: 3 / 2;
  pointer-events: none;
}

.subject-slide .dots-box {
  margin: 0;
  position: absolute;
  right: 1rem;
  top: 0;
  width: 100%;
  list-style: none;
  display: flex;
  justify-content: end;
  align-items: end;
  aspect-ratio: 3 / 2;
  height: auto;
  pointer-events: none;
}

.subject-slide .dots-box li {
  width: .75rem;
  height: .75rem;
  margin: 0 5px;
  background: #fff;
  border: 1px solid var(--pink);
  border-radius: 50%;
  cursor: pointer;
  pointer-events: all;
  margin-bottom: 1rem;
}

.subject-slide .dots-box li:hover,
.subject-slide .dots-box li.slick-active {
  background: var(--pink);
}

.subject-slide .dots-box li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}

.subject-slide:has(.caption)+h5 {
  margin-top: .75rem;
}



/*-------------------------
grades
-------------------------*/

#tabs section::before {
  content: "";
  display: block;
  height: 6.5rem;
}

#tabs section {
  padding-top: 0;
  padding-bottom: 0;
  margin-top: -8.5rem;
  border-bottom: 1px solid var(--purple);
}

.tabs {
  margin: 0;
  border: none;
  background: none;
}

.tabs-title {
  padding: 0 2px;
}

.tabs-title>span {
  padding: 1.5em 0 1em 0;
  text-align: center;
  color: var(--white);
  border: 1px solid var(--purple);
  border-radius: 1rem 1rem 0 0;
  font-size: 1rem;
  letter-spacing: .1em;
  background: var(--purple);
  border-bottom: none;
  font-weight: 600;
  display: block;
  cursor: pointer;
}

.tabs-title:hover>span,
.tabs-title:focus>span,
.tabs-title.is-active>span {
  background: var(--white);
  color: var(--purple);
  padding: 2em 0 1.5em 0;
  margin-bottom: -1px;
  border-bottom-color: var(--white);
}

.tabs-title span span {
  font-size: 1.5rem;
  font-family: var(--ff-colt);
  font-weight: 400;
  margin-right: .25rem;
  vertical-align: middle;
}

.tabs-content {
  border: none;
}

.tabs-panel {
  padding: 0;
}

.tabs-content .sectionWrapper {
  margin-top: 0;
}

/*-------------------------
speakers
-------------------------*/

.speakers {
  padding: 1.5rem 0;
  margin: 1rem 0 2.5rem 0;
}

.speakers-img {
  margin-right: 1rem;
}

.speakers-img img {
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  display: block;
  width: 100%;
  height: 100%;
}

.speakers p {
  margin: 0 0 .25em 0 !important;
  line-height: 1.5em;
}

.speakers h4 {
  font-size: 1rem;
  margin: 0;
}

/*-------------------------
approach
-------------------------*/

.approach-item {
  padding: 2.5rem 0;
}

.approach-item h5 {
  line-height: 1.4em;
}

.approach-item h5 .number {
  font-size: 1rem;
  font-family: var(--ff-area);
  border: 1px solid var(--purple);
  width: 3em;
  height: 3em;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  margin-right: 1em;
}

.approach-item h5 small {
  color: var(--purple);
  display: inline-block;
  font-weight: 400;
}

.approach-item p {
  margin-bottom: 1rem;
}

.approach-item p.tags {
  margin: 0;
}

.approach-list .approach-item:first-of-type {
  padding-top: 1rem;
}

/*-------------------------
tags
-------------------------*/

.tags {
  text-align: left;
  line-height: 2.5em;
  margin-top: .75rem;
}

.tags span {
  color: var(--pink);
  border: 1px solid var(--pink);
  display: inline-block;
  height: 2em;
  line-height: 1.9em;
  padding: 0 .5em;
  border-radius: 1em;
}

.tags span::before {
  content: "#";
}

.approach-item:last-child {
  padding-bottom: 0;
}

/*-------------------------
profile
-------------------------*/

#profile img {
  margin-bottom: 2rem;
}

/*-------------------------
interview
-------------------------*/

#interview section .grid-container {
  max-width: 50rem;
}

#interview #page-lead section .grid-container,
#interview #contact section .grid-container,
#interview #footer section .grid-container {
  max-width: 75rem;
}

#interview .tit03 {
  margin-bottom: 2rem;
}

#interview section .cell p:last-of-type {
  margin-bottom: 0;
}

/*-------------------------
about-faculty
-------------------------*/

#about-faculty {
  position: relative;
  z-index: 10;
}

#about-faculty .faculty-txt p {
  margin-bottom: 0;
}


/*-------------------------
admission
-------------------------*/

#admission {
  position: relative;
  z-index: 1;
}

#admission table th {
  min-width: 5.5em;
}

#admission table table th {
  min-width: 3.5em;
}

#admission .btn02 {
  margin-bottom: 1rem;
}

/*-------------------------
calendar
-------------------------*/

#calendar table th {
  min-width: 10em;
}

/*-------------------------
works
-------------------------*/

#gallery01 {
  display: none;
}

#gallery01.slick-initialized {
  display: block;
}

.gallery-img {}

#works .gallery-item img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: contain;
}

#works .gallery-txt {
  padding: 0 3rem 3rem 0;
}

#works .gallery-txt p {
  margin: 0;
}

#works .slick-arrow {
  font-family: var(--ff-area);
  color: var(--purple);
  border-bottom: 1px solid var(--purple);
  line-height: 2em;
  cursor: pointer;
  margin-right: 1rem;
  font-weight: 600;
}

#works .slick-prev {
  padding-left: 0.25rem;
}

#works .slick-next {
  padding-right: 0.25rem;
}

#works .gallery-arrows {
  margin-top: -2rem;
  z-index: 100;
  position: relative;
  text-align: left;
  width: 100%;
}

/*-------------------------
campus-life
-------------------------*/

#gallery02 {
  display: none;
}

#gallery02.slick-initialized {
  display: block;
}

#campus-life section {
  padding: 0;
}

#campus-life .gallery-item {
  position: relative;
}

#campus-life .gallery-txt {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--purple35);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  padding: .5rem;
}

#campus-life .gallery-item:hover .gallery-txt {
  opacity: 1;
}

#campus-life .gallery-txt p {
  margin: 0;
  color: var(--white);
  text-align: center;
  font-weight: 600;
}



/*-------------------------
menu-sp
-------------------------*/

.menu-sp {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background: var(--purple);
  display: flex;
  justify-content: left;
  align-items: center;
  visibility: hidden;
  opacity: 0;
  transition: 0.5s ease-in-out;
  z-index: -1;
  padding: 2rem;
}

.menu-sp .menu li {
  margin-left: 0;
}

.menu-sp .menu li a {
  color: var(--purple) !important;
  margin: .8em 0;
  font-size: 1.1rem;
  color: var(--white) !important;
}


.menu-sp .menu a svg {
  fill: var(--white);
  width: 1.75rem;
  height: 1.75rem;
}

.menu-sp .menu .menu-sns {
  margin-top: 1em;
  display: flex;
  align-items: center;
}

.menu-sp .menu .menu-sns a {
  display: inline;
  margin-right: 1em;
  vertical-align: middle;
}

.menu-sp .menu li a:nth-child(2) svg {
  width: 2em;
  height: 2em;
}


.menu-sp .menu li:hover {
  border-bottom: none;
}

#menu-sp-btn {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  padding: 0;
  outline: none;
  border: none;
  background: none;
  width: 30px;
  height: 20px;
  cursor: pointer;
}

#menu-sp-btn::before,
#menu-sp-btn::after {
  content: '';
  display: block;
  height: 1px;
  background-color: var(--purple);
  transform: translateY(10px);
  transition: 0.25s ease-in-out;
}

#menu-sp-btn::before {
  transform: translateY(-10px);
  box-shadow: 0 10px var(--purple)
}

.open #menu-sp-btn {
  z-index: 100;
}

.open #menu-sp-btn::before {
  transform: rotate(-45deg);
  box-shadow: none;
  background-color: var(--white);
}

.open #menu-sp-btn::after {
  transform: rotate(45deg);
  box-shadow: none;
  background-color: var(--white);
}

.open .menu-sp {
  visibility: visible;
  opacity: 1;
}

.open header h1 {
  color: var(--white);
}

.open header h1 svg {
  fill: var(--white);
}


/*-------------------------
modal
-------------------------*/


.modal-span {
  cursor: pointer;
}

.modal-outer {
  position: fixed;
  top: 0;
  left: 0;
  display: none;
  width: 100vw;
  height: 100vh;
  width: 100dvw;
  height: 100dvh;
  background: rgba(239, 141, 127, .8);
  z-index: 300;
  align-items: center;
  justify-content: center;
}

.modal-outer.show {
  display: flex;
}

.modal-inner {
  background: #fff;
  position: relative;
  width: calc(100vw - 5rem);
  max-width: 600px;
  max-height: calc(100vh - 5rem);
  max-height: calc(100dvh - 5rem);
}

.modal-content {
  padding: 2rem;
  padding: 2rem;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  max-height: calc(100vh - 5rem);
  max-height: calc(100dvh - 5rem);
}

.close-btn {
  cursor: pointer;
  border: 1px solid var(--purple);
  width: 50px;
  height: 50px;
  outline: none;
  padding: 10px;
  border-radius: 50%;
  background: var(--white);
  position: absolute;
  right: -1rem;
  top: -1rem;
  z-index: 100;
}

.close-btn::before,
.close-btn::after {
  content: '';
  display: block;
  height: 1px;
  background-color: var(--purple);
  transform: translateY(10px);
  transition: 0.25s ease-in-out;
}

.close-btn::before {
  transform: rotate(-45deg);
}

.close-btn::after {
  transform: rotate(45deg);
}

.close-btn:hover {
  background: var(--purple);
}

.close-btn:hover:before,
.close-btn:hover:after {
  background-color: var(--white);
}

.works-item {
  margin-top: 2rem;
}

.works-item img {
  margin-bottom: 1px;
}

.works-item img:last-of-type {
  margin-bottom: 0;
}

.works-item .caption {
  font-size: min(12px, 2.5vw);
  color: var(--purple-light);
  margin: 0.5em 0 0 0;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.modal-content .tit01 {
  font-size: 1.2rem;
  margin-bottom: 0;
}

.modal-content .tit01 span {
  margin: 0 0.3em 0 0;
  font-size: 1rem;
}

.modal-content .tit01 span::after {
  margin: 0.75em 0;
}

.modal-content p {
  font-size: .9rem;
  margin-top: 1.75em;
}

/*-------------------------
pagination
-------------------------*/

.pagination::before,
.pagination::after {
  display: none;
}

.pagination {
  display: flex;
  gap: 1%;
  margin: 0 0 8rem 0;
  border-top: 1px solid var(--purple-light);
  padding: 2rem 0 0 0;
}

.pagination span,
.pagination a {
  font-size: 1.1rem;
  color: var(--purple);
  width: 2em;
  height: 2em;
  line-height: 1.85em;
  display: block;
  text-decoration: none;
  margin: .25em;
  text-align: center;
  font-family: var(--ff-marcellus) !important;
  padding: 0;
  border-radius: 50%;
  border: 1px solid transparent;
}

_::-webkit-full-page-media,
_:future,
:root .pagination span,
_::-webkit-full-page-media,
_:future,
:root .pagination a {
  line-height: 1.6em;
}

.pagination a:hover {
  padding: 0;
  background: var(--white);
  color: var(--purple);
  background: var(--gray-light);
}

.pagination .current {
  padding: 0;
  color: var(--purple);
  background: var(--white);
  border: 1px solid var(--purple);
}

.pagination-single {
  margin-top: 2rem;
}

.pagination.pagination-single {
  gap: 0;
  justify-content: space-between;
}

.pagination.pagination-single span,
.pagination.pagination-single a {
  width: auto;
  height: auto;
  border-radius: 0;
  padding: 0;
  border: none;
  border-bottom: 1px solid transparent;
  line-height: 1.4;
}

.pagination.pagination-single a:hover {
  padding: 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--purple);
  padding: 0;
}

.pagination-item {
  min-width: 4rem;
}

/*-------------------------
media query
-------------------------*/
/* Large */
@media screen and (max-width: 80em) {
  header .menu li {
    margin-left: 1em;
    font-size: 13px;
  }
}


/* Medium */
@media screen and (max-width: 63.9375em) {
  html {
    font-size: max(1.75vw, 13px);
  }

  .lang-sp {
    right: 80px;
    top: 1.5rem;
  }

  .img-belt {
    aspect-ratio: 2 / 1;
  }

  #fv svg {
    width: 70vw;
    height: 10.5vw;
  }

  #fv h2 {
    font-family: var(--ff-area);
    font-size: 12px;
    margin: 1em 0 1em 0;
  }

  section {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  #menu-sp-btn {
    top: 2rem;
    right: 2rem;
  }

  #fv-txt {
    background: linear-gradient(transparent 8%, var(--beige) 8%);
  }

  #toc {
    margin-top: 0;
  }

  #toc section {
    padding-top: 0;
  }

  #toc .toc-item {
    margin-top: 7rem;
  }

  #toc .toc-img {
    margin-top: 0;
    margin-bottom: 2rem;
  }

  #toc .toc-txt {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .bnr-interview-img {
    margin-bottom: 2rem;
  }

  .bnr-interview-txt {
    padding-right: 0;
  }

  #contact p {
    margin-bottom: 2rem;
  }

  #footer section {
    padding-bottom: 0;
  }

  #footer img {
    width: 50vw;
    max-width: 200px;
    margin: 0 auto;
    padding-right: 5vw;
  }

  #footer h5 {
    text-align: center;
  }

  #footer p {
    margin-bottom: 2rem;
    text-align: center;
  }

  #footer .copyrights {
    text-align: center;
    margin: 2em 0;
  }

  #works .gallery-arrows {
    margin: 0;
    text-align: center;
  }

  #works .gallery-txt {
    padding: 1rem 0;
  }

  .slick-arrow {
    margin: 2rem 1rem 0 1rem;
  }

  #campus-life .gallery-txt {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--purple-light);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    padding: .5rem;
  }

  #campus-life .gallery-txt {
    opacity: 1;
    background: none;
    justify-content: flex-end;
    align-items: flex-end;
  }

  #campus-life .gallery-txt p {
    text-align: left;
    text-shadow: 0px 0px 1em rgba(0, 0, 0, 0.75);
  }

  #access iframe {
    aspect-ratio: 1/1;
  }

  .pagination {
    justify-content: center;
  }

  .cat-list {
    margin: 3rem 0 2rem 0;
  }
}

/* Small */
@media screen and (max-width: 39.9375em) {
  html {
    font-size: max(3vw, 13px);
  }

  p.large {
    font-size: 1rem;
    margin-bottom: 1.5rem;
    font-weight: 400;
  }

  .btn02 {
    width: 100%;
    text-align: center;
  }

  #loadIcon {
    width: 15rem;
  }

  #loadIcon svg {
    width: 15rem;
    height: 2.2rem;
  }

  .img-belt {
    aspect-ratio: 1 / 1;
  }

  .img-belt-bg {
    background-image: url('../img/img01_sp.jpg');
  }

  .img-belt-bg02 {
    background-image: url('../img/img02_sp.jpg');
  }

  .img-belt-bg03 {
    background-image: url('../img/img03_sp.jpg');
  }

  .img-belt-bg04 {
    background-image: url('../img/img04_sp.jpg');
  }

  .img-belt-bg05 {
    background-image: url('../img/img05_sp.jpg');
  }


  #page-lead .post-body p {
    text-align: left;
  }

  #page-lead p br {
    display: none;
  }

  #page-lead .post-body br {
    display: block;
  }

  section {
    padding: 6rem 2rem;
  }

  header {
    height: 5rem;
    position: fixed;
    padding: 0 1rem;
  }

  .lang-sp {
    right: 66px;
    top: 1.3rem;
  }

  #fv {
    padding: 5rem 1rem 2rem 1rem;
  }

  #fv img {
    border-radius: 20vw 0 0 0;
  }

  #fv svg {
    width: 80vw;
    height: 12vw;
  }

  #fv-txt {
    background: linear-gradient(transparent 4%, var(--beige) 4%);
    padding-bottom: 20vh;
    margin-bottom: -20vh;
    padding-right: 1.5rem;
  }

  #fv h2 {
    font-size: 9px;
    margin: 2em 1em 2em 0;
    letter-spacing: -0.05em;
  }

  #scroll {
    left: -1rem;
    bottom: 3rem;
  }

  #scroll p {
    font-size: .9rem;
    margin-right: 1em;
  }

  #scroll .arrow {
    border-width: 1px;
  }

  #main-lead .shrink {
    width: 100%;
  }

  #main-lead h2 {
    margin-bottom: 2.5rem;
  }

  #main-lead p {
    font-weight: 400;
  }

  #toc h3,
  #bnr-interview h3,
  .index #movie h3 {
    font-size: 1.3rem;
  }

  .toc-img {
    margin-left: 3rem;
  }

  #toc .large-order-2.toc-img {
    margin-left: 0;
    margin-right: 3rem;
  }

  #toc .toc-txt {
    padding-right: 3rem !important;
    padding-left: 3rem !important;
  }

  .index #news {
    padding: 0 3rem;
  }

  .index #news h3 {
    text-align: center;
  }

  .index #movie {
    padding: 0 5rem;
  }

  .index #movie .btn02 {
    width: 100%;
  }

  #archive #page-lead h1 {
    margin-bottom: 2rem;
  }

  #single #page-lead h1 {
    margin-bottom: 5rem;
  }

  .movie-list.grid-padding-x>.cell:nth-last-of-type(2n) {
    padding-right: 0;
    padding-left: 1rem;
  }

  .movie-list.grid-padding-x>.cell:nth-last-of-type(2n+1) {
    padding-right: 1rem;
    padding-left: 0;
  }

  .movie-slider .slick-list {
    margin: 0 -18rem;
  }

  .movie-slider .slick-slide {
    margin: 0px 1.25rem
  }

  .movie-item svg {
    width: 20vw;
  }

  #bnr-interview section:first-child {
    padding-right: 0;
    padding-left: 0;
  }

  .bnr-interview-txt {
    padding-top: 3rem;
    padding-right: 5rem !important;
    padding-left: 5rem !important;
  }

  .section-item-half .cell:nth-of-type(2) {
    padding-top: 3rem;
  }

  .section-item-half .line-dot-right::after {
    background: none;
  }

  .speakers {
    padding: 0;
  }

  .speakers .grid-x {
    padding: 1.5rem 0;
  }

  #study .approach-item {
    padding-top: 0;
    padding-bottom: 2rem;
  }

  #study .approach-item:last-of-type {
    padding-bottom: 0;
  }

  .subject-item {
    padding: 0;
  }

  .curriculum-class {
    padding-bottom: 2rem;
  }

  .curriculum-text {
    padding-top: 2rem;
  }

  .tabs-title>span {
    letter-spacing: 0;
  }

  .subject-item .grid-x {
    padding-left: 1.75rem;
  }

  #profile h4 {
    font-size: 1rem;
    margin-bottom: 0;
  }

  #footer h4 {
    font-size: 1rem;
    margin-bottom: 2.5rem;
  }

  #profile h4 .en,
  #footer h4 .en {
    font-size: 1.5rem;
  }

  #profile h5 {
    margin-top: 1.5rem;
  }

  #contact .tit02,
  #contact p {
    text-align: center;
  }

  #contact p {
    margin-bottom: 1em !important;
  }

  #footer .btn01 {
    margin-top: 1.5rem;
  }

  #footer .copyrights {
    width: 100%;
    position: static;
    margin-bottom: 1.5rem
  }

  #menu-sp-btn {
    top: 1.75rem;
    right: 1.5rem;
  }

  #access section {
    padding-bottom: 0;
  }

  .access-map {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

}


/* XSmall */
@media screen and (max-width: 350px) {

  section {
    padding: 6rem 1.75rem;
  }

  header h1 {
    font-size: 2.5vw;
  }

  header h1 svg {
    width: 2.5rem;
    height: 2.5rem;
    margin-right: 0.25rem;
  }

  #toc .toc-txt {
    padding-right: 1.5rem !important;
    padding-left: 1.5rem !important;
  }

  .subject-item .caption {
    font-size: min(12px, 3vw);
  }

  h6.curriculum-arrow {
    padding: 1em .25em;
  }

  .curriculum-item .grid-x {
    padding-left: 1rem;
  }

  .curriculum-item li {
    letter-spacing: .05em;
  }

  .bnr-interview-txt {
    padding-right: 3.5rem !important;
    padding-left: 3.5rem !important;
  }

  footer section {
    padding-left: 1rem;
    padding-right: 1rem;
  }

}