html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent
}

body {
  line-height: 1
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block
}

nav ul {
  list-style: none
}

blockquote,
q {
  quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold
}

del {
  text-decoration: line-through
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help
}

table {
  border-collapse: collapse;
  border-spacing: 0
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0
}

input,
select {
  vertical-align: middle
}

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

a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
  -ms-touch-action: manipulation;
  touch-action: manipulation
}

html {
  font-size: 3.86vw
}

@media screen and (min-width: 768px) {
  html {
    font-size: 1.8vw
  }

  .sp-only {
    display: none;
  }

  .pc-only {
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none;
  }
}

@media screen and (min-width: 1000px) {
  html {
    font-size: 18px
  }
}

@media screen and (min-width: 1440px) {
  html {
    font-size: 1.25vw;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal
}

body a {
  color: inherit;
  text-decoration: none
}

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

body em {
  font-style: normal
}

body li {
  list-style: none
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
  font-weight: inherit
}

.wrap {
  background: #fff;
  width: 100%;
  color: #333
}

body a {
  transition: all .2s ease-in-out;
  cursor: pointer
}

@media screen and (min-width: 768px) {
  body a:hover {
    opacity: .7
  }
}

.wrap img {
  width: 100%;
  height: auto
}

@media screen and (min-width: 768px) {
  .wrap {
    background-color: #245abc;
    color: white
  }
}

.header {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10
}

.header__inner {
  width: 90%;
  margin: 0 auto;
  width: 100%
}

@media screen and (min-width: 768px) {
  .header__inner {
    width: calc(100% - 4rem);
    max-width: 1000px
  }
}

.header__box {
  background-color: rgba(25, 82, 145, 0.7);
  width: 28.86%;
  height: 34rem;
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden
}

.header__heading {
  width: 5.44rem;
  margin: 0 auto;
  padding: 1.25rem 0 1.5rem
}

.header__heading-sub {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  margin: 0 auto;
  text-align: left;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl
}

.header__heading-sub .sub {
  padding: 0 0 0 .6em;
  font-size: 1.2rem
}

.header__heading-sub .main {
  font-size: 2.5rem;
  font-weight: 500
}

.header__catch {
  line-height: 1.3em;
  font-size: 1.4rem;
  font-style: italic;
  font-weight: 300;
  letter-spacing: .12em;
  white-space: pre;
  position: absolute;
  bottom: 5rem;
  left: .9rem
}

.header__catch .emphasis {
  padding-left: .2em;
  color: #e9e500
}

.header__text {
  margin: 0 auto;
  line-height: 1.6em;
  font-size: .58rem;
  position: absolute;
  bottom: 1.5rem;
  right: 0;
  left: 0
}

@media screen and (min-width: 768px) {
  .header__box {
    width: 16.3%;
    height: 37.22rem;
    margin-left: auto;
  }

  .header__heading {
    width: 6.66rem;
    padding: 1.33rem 0
  }

  .header__heading-sub .sub {
    padding: 0 0 0 .6em;
    font-size: 1.2rem
  }

  .header__heading-sub .main {
    font-size: 2.5rem
  }

  .header__catch {
    margin: 0 auto;
    font-size: 1.8rem;
    bottom: 6rem;
    right: 0;
    left: 0;
    transform: translateX(7%)
  }

  .header__text {
    font-size: .7rem;
    bottom: 2rem
  }
}

.visual {
  background-color: #245abc;
  background-image: linear-gradient(#245abc 50%, transparent 100%), url("../images/visual-sp.webp");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% 80%, cover;
  color: white
}

.visual__inner {
  width: 100%;
  margin: 0 auto;
  padding: 1.25rem 1.25rem 0 calc(28.86% + 1rem);
  aspect-ratio: 69 / 116
}

.visual__heading {
  background-image: url("../images/visual_heading01.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  height: 9.47rem;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  position: relative
}

.visual__heading::before {
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4));
  content: '';
  background-image: url("../images/visual_heading02.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 5.31rem;
  height: .44rem;
  margin: 0 auto;
  display: block;
  position: absolute;
  top: 65%;
  right: 0;
  left: 0
}

.visual__heading .date,
.visual__heading .main,
.visual__heading .sub {
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4))
}

.visual__heading .date {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  padding: .5em 0 0;
  font-size: 1.09rem;
  letter-spacing: .1em
}

.visual__heading .main {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  padding: .1em 0 .6em;
  font-size: 2.34rem;
  font-weight: 500;
  letter-spacing: .1em
}

.visual__heading .sub {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  font-weight: 700
}

.visual__fair {
  padding: 1rem 0
}

.visual__fair .catch {
  max-width: 15.75rem
}

.visual__fair .date {
  width: fit-content;
  margin: 0 auto;
  text-align: right;
  display: grid;
  grid-template-columns: 100%
}

.visual__fair .date .year,
.visual__fair .date .month,
.visual__fair .date .day,
.visual__fair .date .time {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal
}

.visual__fair .date .year {
  padding: 0 .3em 0 0;
  font-size: .88rem
}

.visual__fair .date .month {
  font-size: 1.2rem
}

.date-item01 .month,
.date-item02 .month {
  padding-right: 0.2rem;
}

.visual__fair .date .day {
  padding: 0 0 0 0;
  /* min-width: 1.2em; */
  font-size: 2.3rem;
  vertical-align: bottom;
  display: inline-block
}

.visual__fair .date .dow {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background: #333;
  width: 1.8em;
  height: 1.8em;
  border-radius: 50%;
  line-height: 1.8em;
  color: white;
  font-size: .7rem;
  font-weight: 700;
  text-align: center;
  vertical-align: bottom;
  display: inline-block
}

.visual__fair .date .dow-sat {
  background: #0072ff
}

.visual__fair .date .dow-sun {
  background: #e8486c
}

.visual__fair .date .time {
  line-height: 1.6em;
  font-size: .88rem
}

.visual__fair .date-item01 .day01,
.visual__fair .date-item02 .day01 {
  min-width: 0;
  padding: 0 0 0 .3rem;
}

.visual__fair .date-item01 {
  text-wrap-mode: nowrap;
}

.visual__present .head {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 0 .5rem;
  font-weight: 700;
  text-align: center
}

.visual__present .head .main {
  background-image: url("../images/visual_present.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: fit-content;
  margin: 0 auto;
  padding: 0 .5em;
  line-height: 1.6em;
  color: #245abc;
  letter-spacing: .06em;
  display: block
}

.visual__present .head .sub {
  line-height: 1.6em;
  font-size: .77rem;
  display: block
}

.visual__present .body .list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: .5rem
}

.visual__present .body .list-item {
  border-radius: 50%;
  overflow: hidden
}

@media screen and (min-width: 768px) {
  .visual {
    background-image: url("../images/visual.webp");
    background-position: bottom;
    background-size: cover;
    min-height: 37.22rem
  }

  .visual__inner {
    max-width: 1000px;
    padding: 1rem 12rem 0 3rem;
    display: block;
    grid-template-columns: repeat(2, auto);
    aspect-ratio: unset
  }

  .visual__heading {
    width: fit-content;
    height: 10.89rem;
    margin: 0 auto 0 0
  }

  .visual__heading::before {
    width: 6.11rem;
    height: .5rem;
    top: 65%
  }

  .visual__heading .date,
  .visual__heading .main,
  .visual__heading .sub {
    filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4)) drop-shadow(3px 3px 6px #7488ad) drop-shadow(3px 3px 6px rgba(36, 90, 188, 0.4))
  }

  .visual__heading .date {
    font-size: 1.22rem
  }

  .visual__heading .main {
    font-size: 2.66rem
  }

  .visual__heading .sub {
    font-size: 1.11rem
  }

  .visual__fair {
    width: fit-content;
    margin: 0;
    padding: .5rem 0 .5rem
  }

  .visual__fair .catch {
    max-width: 20rem;
    margin: 0 auto
  }

  .visual__fair .date {
    filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4)) drop-shadow(3px 3px 6px #7488ad) drop-shadow(3px 3px 6px rgba(36, 90, 188, 0.4))
  }

  .visual__fair .date .year {
    font-size: 1.22rem
  }

  .visual__fair .date .month {
    font-size: 2rem
  }

  .date-item01 .month,
  .date-item02 .month {
    padding-right: 0.2rem;
  }

  .visual__fair .date .day {
    font-size: 3rem
  }

  .visual__fair .date-item01 .day01,
  .visual__fair .date-item02 .day01 {
    padding: 0 .1rem 0 .2em;
  }

  .visual__fair .date-item02 .day02 {
    padding: 0 .1rem 0 0;
  }

  .visual__fair .date .dow {
    font-size: .88rem
  }

  .visual__present {
    width: fit-content;
    margin: 1rem 0 0 -1rem;
    display: block;
  }

  .visual__present .head {
    padding: 0 0 .5rem
  }

  .visual__present .head .main {
    width: 17.72rem;
    padding: 0;
    line-height: 1.8em;
    font-size: 1.11rem;
  }

  .visual__present .head .sub {
    filter: drop-shadow(2px 2px 3px rgba(100, 100, 100, 0.4)) drop-shadow(3px 3px 6px #7488ad) drop-shadow(3px 3px 6px rgba(36, 90, 188, 0.4));
    padding: .2em 0 0;
    font-size: .88rem
  }

  .visual__present .body {
    padding: 0
  }

  .visual__present .body .list {
    grid-gap: .4rem
  }

  .visual__present .body .list-item {
    max-width: 4.6rem
  }
}

/* @media screen and (min-width: 1440px) {
  .visual {
    min-height: 46.528vw;
  }

  .visual__inner {
    max-width: 69.444vw;
    padding: 1.25vw 15vw 0 3.75vw;
  }

  .visual__heading {
    height: 13.611vw;
  }

  .visual__heading::before {
    width: 7.639vw;
    height: 0.625vw;
  }

  .visual__heading .date {
    font-size: 1.528vw;
  }

  .visual__heading .main {
    font-size: 3.333vw;
  }

  .visual__heading .sub {
    font-size: 1.389vw;
  }

  .visual__fair {
    padding: 0.625vw 0 0.625vw;
  }

  .visual__fair .catch {
    max-width: 25vw;
  }

  .visual__fair .date .year {
    font-size: 1.528vw;
  }

  .visual__fair .date .month {
    font-size: 2.5vw;
  }

  .date-item01 .month,
  .date-item02 .month {
    padding-right: 0.25vw;
  }

  .visual__fair .date .day {
    font-size: 3.75vw;
  }

  .visual__fair .date-item01 .day01,
  .visual__fair .date-item02 .day01 {
    padding: 0 0.125vw 0 0.25vw;
  }

  .visual__fair .date-item02 .day02 {
    padding: 0 0.125vw 0 0;
  }

  .visual__fair .date .dow {
    font-size: 1.111vw;
  }

  .visual__present {
    margin: 6.875vw auto 0;
  }

  .visual__present .head {
    padding: 0 0 0.625vw;
  }

  .visual__present .head .main {
    width: 22.153vw;
    padding: 0;
    line-height: 2.25vw;
    font-size: 1.389vw;
  }

  .visual__present .head .sub {
    padding: 0.25vw 0 0;
    font-size: 1.111vw;
  }

  .visual__present .body {
    padding: 0 0 0 1.25vw;
  }

  .visual__present .body .list {
    grid-gap: 0.5vw;
  }

  .visual__present .body .list-item {
    max-width: 5.75vw;
  }
} */

.contents {
  background: #fff;
  color: #333
}

.contents .video,
.contents .map {
  width: fit-content;
  margin: 0 auto
}

.contents .video iframe,
.contents .video video,
.contents .map iframe,
.contents .map video {
  width: 100%;
  max-width: 1000px;
  height: auto;
  aspect-ratio: 16 / 9
}

.cv {
  padding: 1.25rem 0;
  background-color: #ed4d53;
  background-image: url("../images/cv-sp.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: white
}

@media screen and (min-width: 768px) {
  .cv {
    padding: 3rem 0
  }
}

.cv__inner {
  width: 90%;
  margin: 0 auto
}

@media screen and (min-width: 768px) {
  .cv__inner {
    width: calc(100% - 4rem);
    max-width: 1000px
  }
}

.cv__heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 0 1.25rem;
  line-height: 1.5em;
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  padding: 0 0 .75rem
}

.cv__heading .font {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal
}

@media screen and (min-width: 768px) {
  .cv__heading {
    padding: 0 0 2rem;
    font-size: 2.56rem
  }
}

.cv__catch {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-color: white;
  width: fit-content;
  margin: 0 auto 1.25rem;
  padding: .5em 2em;
  border-radius: 10em;
  line-height: 1.6em;
  color: #ed4d53;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  position: relative
}

.cv__catch::before {
  content: '';
  background-image: url("../images/cv_catch.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: contain;
  width: calc(100% + 2rem);
  height: 100%;
  margin: 0 auto;
  display: block;
  position: absolute;
  top: -.5rem;
  right: -1rem;
  left: -1rem
}

.cv__catch::after {
  content: '';
  background-color: white;
  width: 1.2rem;
  height: .6rem;
  margin: 0 auto;
  display: block;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  position: absolute;
  top: calc(-.6rem + 1px);
  right: 0;
  left: 0
}

.cv__catch br {
  display: none
}

.cv__button {
  width: 80%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 100%;
  grid-gap: 1rem
}

.cv__button-item a {
  transition: all .2s ease-in-out;
  cursor: pointer;
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4));
  background-color: #f64747;
  background-image: linear-gradient(#f64747, #ae3232);
  width: 100%;
  height: 5rem;
  padding: 0 0 0 1.25rem;
  border: .2rem solid white;
  border-radius: 1rem;
  color: white;
  font-weight: 700;
  text-align: center;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  position: relative
}

@media screen and (min-width: 768px) {
  .cv__button-item a:hover {
    opacity: .7
  }
}

.cv__button-item a::before,
.cv__button-item a::after {
  background-color: white;
  content: '';
  width: 1rem;
  height: .2rem;
  border-radius: 10em;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform-origin: calc(100% - .1rem) 50%
}

.cv__button-item a::before {
  transform: rotate(45deg)
}

.cv__button-item a::after {
  transform: rotate(-45deg)
}

.cv__button-item a .icon {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%)
}

.cv__button-item a .icon img {
  width: 2.5rem;
  height: 2.75rem;
  object-fit: contain
}

.cv__button-item a .text {
  line-height: 1.4em;
  letter-spacing: .05em
}

@media screen and (min-width: 768px) {
  .cv__button-item a {
    max-width: 26.67rem;
    height: 6rem;
    padding: 0 0 0 2rem;
    border-width: .2rem
  }

  .cv__button-item a::before,
  .cv__button-item a::after {
    width: 1rem;
    height: .2rem;
    right: 1.5rem;
    transform-origin: calc(100% - .1rem) 50%
  }

  .cv__button-item a .icon {
    left: 1.5rem
  }

  .cv__button-item a .icon img {
    width: 3.33rem;
    height: 3.44rem
  }

  .cv__button-item a .text {
    font-size: 1.4rem
  }
}

.cv__button-item01 a {
  background-color: #06c755;
  background-image: linear-gradient(#06c755, #189049)
}

.cv__button-item01 a::before,
.cv__button-item01 a::after {
  display: none
}

.cv__button-item03 {
  padding: .8rem 0 0
}

.cv__button-item03 a {
  padding: 0
}

.cv__button-item03 a .catch {
  background: white;
  width: fit-content;
  margin: 0 auto;
  padding: 0 1.5em;
  border-radius: 10em;
  line-height: 1.6em;
  color: #ed4d53;
  font-weight: 700;
  letter-spacing: .05em;
  position: absolute;
  top: -.8rem;
  right: 0;
  left: 0
}

.cv__button-item03 a .text {
  padding: .5rem 0 0
}

.cv__button-item03 a .number {
  display: none
}

.cv__box {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  width: 95%;
  margin: 0 auto;
  padding: 1.25rem 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between
}

.cv__box-item .catch {
  margin: 0 0 .5rem;
  padding: 0 0 .25rem;
  border-bottom: .1rem solid white;
  line-height: 1.6em;
  font-weight: 500
}

.cv__box-item .text {
  line-height: 1.6em;
  font-size: .88rem;
  font-weight: 500
}

.cv__box-item01 {
  width: 12rem
}

.cv__box-item02 {
  width: calc(100% - 12rem - 1.25rem)
}

@media screen and (min-width: 768px) {
  .cv {
    background-image: url("../images/cv.webp");
    background-repeat: repeat-y;
    background-size: 100% auto
  }

  .cv__heading {
    padding: 0 0 1rem;
    font-size: 2.33rem
  }

  .cv__heading br {
    display: none
  }

  .cv__catch {
    margin: 0 auto 2rem;
    font-size: 1.25rem
  }

  .cv__catch::after {
    width: 1.6rem;
    height: .8rem;
    top: calc(-.8rem + 1px)
  }

  .cv__button {
    width: 100%;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 1.2rem 2rem
  }

  .cv__button-item01 {
    grid-column: 1 / 3
  }

  .cv__button-item01 a {
    width: 50%;
    margin: 0 auto
  }

  .cv__button-item01 a::before,
  .cv__button-item01 a::after {
    display: block
  }

  .cv__button-item02 {
    padding: .8rem 0 0
  }

  .cv__button-item03 a {
    padding: 0 0 0 2rem
  }

  .cv__button-item03 a .text {
    padding: .2rem 0 0;
    font-size: 1rem
  }

  .cv__button-item03 a .text br {
    display: none
  }

  .cv__button-item03 a .number {
    font-family: "Literata", serif;
    font-weight: 400;
    font-style: normal;
    font-size: 2.22em;
    font-weight: 700;
    letter-spacing: .05em;
    display: block
  }

  .cv__box {
    width: 100%;
    margin: 0;
    padding: 1.5rem 0 0;
    justify-content: flex-start
  }

  .cv__box-item .catch {
    width: fit-content;
    margin: 0 0 1rem;
    padding: 0 1em .5rem 0;
    font-size: 1.78rem
  }

  .cv__box-item .text {
    padding: 0 2rem 0 0;
    font-size: 1.56rem
  }

  .cv__box-item .text br {
    display: none
  }

  .cv__box-item .image {
    width: 13rem
  }

  .cv__box-item01,
  .cv__box-item02 {
    width: auto
  }
}

.opening,
.present,
.event,
.access,
.area,
.facility,
.consult,
.plan,
.faq {
  padding: 1.25rem 0
}

@media screen and (min-width: 768px) {

  .opening,
  .present,
  .event,
  .access,
  .area,
  .facility,
  .consult,
  .plan,
  .faq {
    padding: 3rem 0
  }
}

.opening__inner,
.present__inner,
.event__inner,
.access__inner,
.area__inner,
.facility__inner,
.consult__inner,
.plan__inner,
.faq__inner {
  width: 90%;
  margin: 0 auto
}

@media screen and (min-width: 768px) {

  .opening__inner,
  .present__inner,
  .event__inner,
  .access__inner,
  .area__inner,
  .facility__inner,
  .consult__inner,
  .plan__inner,
  .faq__inner {
    width: calc(100% - 4rem);
    max-width: 1000px
  }
}

.opening__heading,
.present__heading,
.event__heading,
.access__heading,
.area__heading,
.facility__heading,
.consult__heading,
.plan__heading,
.faq__heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 0 1.25rem;
  line-height: 1.5em;
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center
}

.opening__heading .font,
.present__heading .font,
.event__heading .font,
.access__heading .font,
.area__heading .font,
.facility__heading .font,
.consult__heading .font,
.plan__heading .font,
.faq__heading .font {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal
}

@media screen and (min-width: 768px) {

  .opening__heading,
  .present__heading,
  .event__heading,
  .access__heading,
  .area__heading,
  .facility__heading,
  .consult__heading,
  .plan__heading,
  .faq__heading {
    padding: 0 0 2rem;
    font-size: 2.56rem
  }
}

.opening {
  background-color: #4b71c0;
  color: white
}

.opening__heading {
  padding: 0
}

.opening__catch {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-color: #385aa0;
  width: fit-content;
  margin: 0 auto 1.25rem;
  padding: 0 2em;
  border: 2px solid currentColor;
  border-radius: 10em;
  line-height: 2em;
  font-size: 1.2rem;
  font-weight: 700;
  text-align: center
}

.opening__box {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 1rem
}

.opening__box-item {
  background-color: white;
  color: #333;
  display: flex
}

.opening__box-item .heading {
  background-image: url("../images/opening_icon_blue.svg");
  background-position: 0 45%;
  background-repeat: no-repeat;
  background-size: 1.2em auto;
  padding: 0 0 .2rem 1.6em;
  line-height: 1.4em;
  color: #4b71c0;
  font-size: 1.13rem;
  font-weight: 700
}

.opening__box-item .text {
  line-height: 1.4em;
  font-size: .88rem;
  font-weight: 500
}

.opening__box-item .image {
  width: 39.3%
}

.opening__box-item .inner {
  width: calc(100% - 39.3%);
  padding: .8rem 1rem 0
}

.opening__box-item02 {
  flex-flow: row-reverse
}

.opening__box-item02 .heading {
  background-image: url("../images/opening_icon_green.svg");
  padding-left: 1.4em;
  color: #2fa6ac
}

.opening__box-item03 .heading {
  background-image: url("../images/opening_icon_pink.svg");
  color: #e8486c
}

@media screen and (min-width: 768px) {
  .opening {
    padding: 2rem 0
  }

  .opening__catch {
    margin: 0 auto 2rem;
    font-size: 1.5rem
  }

  .opening__box {
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 2rem
  }

  .opening__box-item {
    display: block
  }

  .opening__box-item .heading {
    line-height: 1.6em;
    font-size: 1.33rem
  }

  .opening__box-item .text {
    line-height: 1.6em;
    font-size: 1.11rem
  }

  .opening__box-item .image {
    width: 100%
  }

  .opening__box-item .inner {
    width: 100%;
    padding: .8rem 1rem
  }
}

.present {
  background-color: #43b7bd;
  background-image: url("../images/present-sp.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: .5rem;
  color: white
}

.present__catch {
  width: 80%;
  margin: 0 auto -1.25rem;
  position: relative;
  z-index: 2
}

.present__heading {
  background-color: #2fa6ac;
  padding: 1.5rem 0 0;
  font-size: 1.44rem
}

.present__heading-sub {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-image: url("../images/present_frame.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 100%;
  height: 3.5rem;
  line-height: 3.5rem;
  font-size: 1.31rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em
}

.present__list {
  background-color: #2fa6ac;
  padding: 1rem .5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 1rem 0
}

.present__list-item {
  text-align: center
}

.present__list-item .text {
  padding: .2rem 0 0;
  line-height: 1.4em;
  font-size: .6rem;
  font-weight: 700;
  white-space: pre
}

.present__list-item.present__list-item02 .text {
  padding: 1rem 0 0;
}

.present__list-item.present__list-item03 .text {
  padding: 1.5rem 0 0;
}

.present__list-item .image {
  max-width: 6.16rem;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden
}

.present__note {
  padding: .5rem 0 1.25rem;
  line-height: 1.4em;
  font-size: .7rem;
  text-align: center
}

.present__pdf a {
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4))
}

.present__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: .5rem 0 2rem;
  line-height: 1.6em;
  font-size: 1.13rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em;
  position: relative
}

.present__text::before,
.present__text::after {
  background-color: white;
  content: '';
  width: .2rem;
  height: 1rem;
  border-radius: 10em;
  position: absolute;
  bottom: .8rem;
  left: calc(50% - .1rem);
  transform-origin: 50% calc(100% - .1rem)
}

.present__text::before {
  transform: rotate(45deg)
}

.present__text::after {
  transform: rotate(-45deg)
}

@media screen and (min-width: 768px) {
  .present {
    background-image: url("../images/present.webp");
    background-repeat: repeat-y;
    background-size: 100% auto;
    padding-top: 1rem
  }

  .present__catch {
    width: 33.61rem;
    margin: 0 auto -1.25rem
  }

  .present__heading {
    padding: 1.5rem 0 0;
    font-size: 2.56rem
  }

  .present__heading-sub {
    max-width: 26rem;
    margin: 0 auto;
    height: 4rem;
    line-height: 4rem;
    font-size: 1.44rem
  }

  .present__list {
    padding: 1.5rem 1rem 2rem;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 1.5rem 0
  }

  .present__list-item .text {
    padding: .2rem 0 0;
    font-size: 1rem
  }

  .present__list-item .image {
    max-width: 10.94rem
  }

  .present__note {
    padding: .5rem 0 3rem;
    font-size: .88rem
  }

  .present__pdf {
    max-width: 26rem;
    margin: 0 auto
  }

  .present__text {
    font-size: 1.22rem
  }

  .present__text::before,
  .present__text::after {
    height: .8rem
  }
}


.event {
  padding: 0
}

.event01,
.event02 {
  padding: 1.25rem 0
}

@media screen and (min-width: 768px) {

  .event01,
  .event02 {
    padding: 3rem 0
  }
}

.event01 {
  background-color: #ffec7d;
  background-image: repeating-linear-gradient(90deg, #fff1a1 0 2.5%, #ffec7d 2.5% 5%)
}

.event02 {
  background-color: #feda0a;
  background-image: repeating-linear-gradient(90deg, #fee656 0 2.5%, #feda0a 2.5% 5%)
}

.event__catch {
  background-image: url("../images/contents_pop_black.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 16.19rem;
  height: 2.1rem;
  margin: 0 auto;
  padding: .4rem 0 0;
  font-size: .94rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em
}

.event__heading {
  background: linear-gradient(transparent 30%, #fff 30%);
  width: fit-content;
  margin: 0 auto;
  padding: 0 .3em;
  font-size: 1.19rem;
  white-space: pre
}

.event__heading .large {
  font-size: 1.21em
}

.event__text {
  background-image: url("../images/event_text.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 20.88rem;
  height: 3.31rem;
  margin: 1rem auto;
  line-height: 1.6em;
  font-size: .88rem;
  font-weight: 700;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center
}

.event__image {
  margin: 0 auto
}

.event__image01 {
  width: 11.41rem
}

.event__note {
  padding: 1.25rem 0 0;
  line-height: 1.6em;
  font-size: .7rem;
  text-align: center
}

@media screen and (min-width: 768px) {
  .event01 {
    background-image: repeating-linear-gradient(90deg, #fff1a1 0 0.7rem, #ffec7d 0.7rem 1.4rem)
  }

  .event02 {
    background-image: repeating-linear-gradient(90deg, #fee656 0 0.7rem, #feda0a 0.7rem 1.4rem)
  }

  .event__catch {
    width: 18.67rem;
    height: 2.44rem;
    font-size: 1.11rem
  }

  .event__heading {
    padding: 0 .3em;
    font-size: 1.67rem
  }

  .event__text {
    width: 32rem;
    height: 5.11rem;
    font-size: 1.33rem
  }

  .event__image01 {
    width: 20rem
  }

  .event__image02 {
    width: 30rem
  }

  .event__note {
    padding: 1rem 0 0;
    font-size: .88rem
  }
}

.access {
  background-color: #43b7bd;
  color: white
}

.access__address {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 1rem 0;
  line-height: 1.6em;
  font-weight: 700;
  text-align: center
}

.access__address .head {
  padding: 0 0 .8rem;
  font-size: 1.31rem
}

.access .map {
  width: 100%
}

.access .map iframe {
  aspect-ratio: 3 / 2
}

.access__list {
  padding: 1.25rem 0 0;
  display: grid;
  grid-template-columns: 100%;
  grid-gap: .5rem
}

.access__list-item {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-color: #2fa6ac;
  padding: 1rem;
  font-weight: 700
}

.access__list-item .head {
  margin: 0 0 .8rem;
  padding: 0 0 .8rem;
  border-bottom: 1px solid white;
  font-size: 1.31rem
}

.access__list-item .head .icon {
  padding: 0 .3rem 0 0
}

.access__list-item .head .icon img {
  width: 1.5em;
  height: 1.5em;
  object-fit: contain
}

.access__list-item .head .text {
  line-height: 1.6em
}

.access__list-item .body {
  line-height: 1.6em;
  font-size: .82rem
}

.textwrap {
  text-wrap-mode: nowrap;
}

@media screen and (min-width: 768px) {
  .access__address {
    padding: 2rem 0
  }

  .access__address .head {
    padding: 0 0 1.5rem;
    font-size: 1.78rem
  }

  .access__address .body {
    line-height: 1.6em;
    font-size: 1.22rem
  }

  .access .map iframe {
    aspect-ratio: 2 / 1
  }

  .access__list {
    padding: 3rem 0 0;
    grid-gap: 1rem
  }

  .access__list-item {
    padding: 1.5rem
  }

  .access__list-item .head {
    margin: 0 0 1rem;
    padding: 0 0 .8rem;
    font-size: 1.33rem
  }

  .access__list-item .body {
    font-size: 1.11rem
  }
}

.area__heading {
  text-align: left;
  position: relative;
  z-index: 2
}

.area__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.6em;
  font-weight: 700;
  position: relative;
  z-index: 2
}

.area__image {
  margin: -7rem auto 0
}

@media screen and (min-width: 768px) {
  .area__text {
    font-size: 1.33rem
  }

  .area__text br:nth-child(2) {
    display: none
  }

  .area__image {
    max-width: 30.5rem;
    margin: -11rem 0 -1rem auto
  }
}

.facility {
  background-color: #ab6ac6;
  color: white
}

.facility__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 0 1.25rem;
  line-height: 1.6em;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em
}

.facility__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 1rem .5rem
}

.facility__list-item .image {
  position: relative
}

.facility__list-item .image .caption {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-color: rgba(135, 63, 165, 0.7);
  width: fit-content;
  min-width: 6em;
  padding: 0 .5em;
  line-height: 2em;
  font-weight: 700;
  display: block;
  position: absolute;
  bottom: 1em;
  left: 0
}

.facility__list-item .text {
  padding: .3rem 0 0;
  line-height: 1.6em;
  font-size: .7rem;
  font-weight: 500
}

.facility__list-item01 {
  grid-column: 1 / 3
}

.facility__note {
  padding: 1rem 0 0;
  line-height: 1.6em;
  font-size: .7rem;
  text-align: center
}

@media screen and (min-width: 768px) {
  .facility__heading {
    padding: 0 0 1rem
  }

  .facility__heading br {
    display: none
  }

  .facility__text {
    padding: 0 0 2rem
  }

  .facility__list {
    display: flex;
    grid-gap: 0;
    justify-content: space-between
  }

  .facility__list-item .image {
    position: relative
  }

  .facility__list-item .text {
    padding: .3rem 0 0;
    font-size: .77rem
  }

  .facility__list-item01 {
    width: 45.5%;
    grid-column: auto
  }

  .facility__list-item02,
  .facility__list-item03 {
    width: 26%
  }

  .facility__note {
    padding: 2rem 0 0;
    line-height: 1.6em;
    font-size: .7rem;
    text-align: center
  }
}

.consult {
  background-color: #e8486c;
  padding: 0;
  color: white
}

.consult02,
.consult04 {
  background-color: #e36a86
}

.consult04 .consult__inner {
  padding: 1.5rem
}

.consult__inner {
  width: 100%
}

.consult__heading {
  padding: 1.25rem 0
}

.consult__heading-sub {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 1rem 0;
  line-height: 1.6em;
  font-size: 1.31rem;
  font-weight: 700;
  text-align: center
}

.consult__heading-sub03 {
  background-image: url("../images/contents_pop.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 19.31rem;
  height: 2.5rem;
  margin: 0 auto;
  padding: .15rem 0 0;
  font-size: 1.06rem;
  text-align: center;
  letter-spacing: .05em
}

.consult__catch {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 0 1.75rem;
  line-height: 1.6em;
  font-size: 1.31rem;
  font-weight: 700;
  text-align: center
}

.consult__catch::before,
.consult__catch::after {
  content: '';
  background-image: url("../images/consult_line.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 100%;
  height: .7rem;
  display: block
}

.consult__catch::before {
  margin: 0 auto .4rem
}

.consult__catch::after {
  margin: .6rem auto 0;
  transform: rotate(180deg)
}

.consult__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 0 1.25rem 1.5rem;
  line-height: 1.8em;
  font-weight: 500
}

.consult__text .marker01 {
  background-color: #e8486c
}

.consult__text .marker02 {
  background-color: #d81b46
}

.consult__list {
  padding: .5rem 0 1.25rem;
  counter-reset: listnum
}

.consult__list-item {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  line-height: 2em;
  font-size: 1.13rem;
  font-weight: 500
}

.consult__list-item::before {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  counter-increment: listnum;
  content: counter(listnum, decimal-leading-zero) ". ";
  font-weight: 500
}

.consult__list-item::after {
  content: '';
  background: repeating-linear-gradient(-60deg, rgba(255, 255, 255, 0.7) 0 1px, transparent 1px 4px);
  width: 100%;
  height: .3rem;
  display: block
}

.consult__button {
  width: 90%;
  margin: 0 auto
}

.consult__button a {
  transition: all .2s ease-in-out;
  cursor: pointer;
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4));
  background-color: #f64747;
  background-image: linear-gradient(#f64747, #ae3232);
  width: 100%;
  height: 5rem;
  padding: 0 0 0 1.25rem;
  border: .2rem solid white;
  border-radius: 1rem;
  color: white;
  font-weight: 700;
  text-align: center;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  position: relative;
  background-color: #ff4f78;
  background-image: linear-gradient(#ff4f78, #d83c60);
  padding: 0 2rem 0 0;
  font-size: 1.2rem
}

@media screen and (min-width: 768px) {
  .consult__button a:hover {
    opacity: .7
  }
}

.consult__button a::before,
.consult__button a::after {
  background-color: white;
  content: '';
  width: 1rem;
  height: .2rem;
  border-radius: 10em;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform-origin: calc(100% - .1rem) 50%
}

.consult__button a::before {
  transform: rotate(45deg)
}

.consult__button a::after {
  transform: rotate(-45deg)
}

.consult__button a .icon {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%)
}

.consult__button a .icon img {
  width: 2.5rem;
  height: 2.75rem;
  object-fit: contain
}

.consult__button a .text {
  line-height: 1.4em;
  letter-spacing: .05em
}

@media screen and (min-width: 768px) {
  .consult__button a {
    max-width: 26.67rem;
    height: 6rem;
    padding: 0 0 0 2rem;
    border-width: .2rem
  }

  .consult__button a::before,
  .consult__button a::after {
    width: 1rem;
    height: .2rem;
    right: 1.5rem;
    transform-origin: calc(100% - .1rem) 50%
  }

  .consult__button a .icon {
    left: 1.5rem
  }

  .consult__button a .icon img {
    width: 3.33rem;
    height: 3.44rem
  }

  .consult__button a .text {
    font-size: 1.4rem
  }
}

@media screen and (min-width: 768px) {

  .consult02 .consult__inner,
  .consult03 .consult__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr)
  }

  .consult02 .consult__text,
  .consult03 .consult__text {
    grid-column: 1 / 3
  }

  .consult03 .consult__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr)
  }

  .consult03 .consult__heading-sub {
    grid-column: 1 / 2;
    grid-row: 1 / 2
  }

  .consult03 .consult__image {
    grid-column: 2 / 3;
    grid-row: 1 / 2
  }

  .consult04 .consult__inner {
    padding: 3rem 0
  }

  .consult__inner {
    width: calc(100% - 4rem);
    max-width: 1000px;
    padding: 3rem 0
  }

  .consult__heading {
    margin: -1rem auto 0;
    padding: 0 0 2rem
  }

  .consult__heading-sub {
    padding: 1rem 0;
    font-size: 1.56rem
  }

  .consult__heading-sub01,
  .consult__heading-sub02 {
    align-self: center
  }

  .consult__heading-sub03 {
    width: 24.78rem;
    height: 3.33rem;
    padding: .15rem 0 0;
    font-size: 1.33rem
  }

  .consult__catch {
    padding: 0;
    font-size: 1.56rem
  }

  .consult__catch::before {
    margin: 0 auto 1.5rem
  }

  .consult__catch::after {
    margin: 1.5rem auto 0
  }

  .consult__catch br {
    display: none
  }

  .consult__text {
    padding: 2rem 0 0;
    font-size: 1.11rem
  }

  .consult__list {
    width: fit-content;
    margin: 0 auto;
    padding: 1rem 0 2rem
  }

  .consult__list-item {
    line-height: 2em;
    font-size: 1.4rem
  }

  .consult__button {
    width: 50%
  }

  .consult__button a {
    padding: 0 2rem 0 0;
    font-size: 1.4rem
  }
}

.plan {
  background-color: #43b7bd;
  color: white;
  padding: 0
}

.plan01,
.plan02 {
  padding: 1.25rem 0
}

@media screen and (min-width: 768px) {

  .plan01,
  .plan02 {
    padding: 3rem 0
  }
}

.plan01 {
  background-image: url("../images/plan-sp.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover
}

.plan__heading {
  padding: 0 0 3rem
}

.plan__text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.6em;
  font-weight: 700;
  text-align: center
}

.plan__text01 {
  padding: 0 0 1.25rem;
  line-height: 2em;
  font-size: .88rem
}

.plan__text02 {
  padding: 1.25rem 0 2rem;
  font-size: 1.06rem
}

.plan__list {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 700;
  text-align: center
}

.plan__list .head {
  background-color: #228b90;
  line-height: 2.5em;
  font-size: 1.06rem
}

.plan__list .body {
  background-color: #2fa6ac;
  padding: 1rem
}

.plan__list .body .list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 1rem
}

.plan__list .body .list-item .image {
  border-radius: .5rem;
  overflow: hidden;
  aspect-ratio: 3 / 2
}

.plan__list .body .list-item .text {
  padding: .2rem 0 0;
  line-height: 1.6em;
  font-size: .7rem
}

.plan__list .body .list-item .text-list {
  padding: 1em !important;
  text-align: left;
  display: block
}

.plan__box01 {
  background-image: url("../images/plan_frame.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center;
  position: relative;
  aspect-ratio: 27 / 19
}

.plan__box01::after {
  content: '';
  background-image: url("../images/plan_chara01.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 9.56rem;
  display: block;
  aspect-ratio: 153 / 56;
  position: absolute;
  top: -2rem;
  right: -.7rem
}

.plan__box01 .catch {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  padding: 2rem 0 .5rem;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .1em
}

.plan__box01 .heading {
  font-size: 3.06rem;
  font-weight: 900;
  letter-spacing: .1em
}

.plan__box01 .heading::after {
  content: '';
  background-image: url("../images/plan_icon.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  width: 100%;
  height: 1.25rem;
  margin: .5rem auto 0;
  display: block
}

.plan__box01 .text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .05em
}

.plan__box01 .text .font {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: .05em
}

.plan__box01 .text01 {
  font-size: 1.5rem
}

.plan__box01 .text01 .large {
  font-size: 2.08em
}

.plan__box01 .text01 .medium {
  font-size: 1.21em
}

.plan__box01 .text02 {
  padding: .6rem 0;
  font-size: 1.38rem
}

.plan__box01 .note {
  line-height: 1.6em;
  font-size: .7rem
}

.plan__button {
  width: 90%;
  margin: 0 auto;
  position: relative
}

.plan__button::after {
  content: '';
  background-image: url("../images/plan_chara02.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 5.66rem;
  display: block;
  aspect-ratio: 181 / 82;
  position: absolute;
  top: -1.15rem;
  left: -.7rem;
  transform: scaleX(-100%)
}

.plan__button .catch {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  background-image: url("../images/contents_pop.svg");
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  width: 16.19rem;
  height: 3rem;
  margin: 0 auto;
  padding: .45rem 0 0;
  font-size: .94rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em
}

.plan__button a {
  transition: all .2s ease-in-out;
  cursor: pointer;
  filter: drop-shadow(3px 3px 6px rgba(51, 51, 51, 0.4));
  background-color: #f64747;
  background-image: linear-gradient(#f64747, #ae3232);
  width: 100%;
  height: 5rem;
  padding: 0 0 0 1.25rem;
  border: .2rem solid white;
  border-radius: 1rem;
  color: white;
  font-weight: 700;
  text-align: center;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  position: relative;
  background: #ea973b;
  height: 5.5rem;
  align-items: flex-start
}

@media screen and (min-width: 768px) {
  .plan__button a:hover {
    opacity: .7
  }
}

.plan__button a::before,
.plan__button a::after {
  background-color: white;
  content: '';
  width: 1rem;
  height: .2rem;
  border-radius: 10em;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform-origin: calc(100% - .1rem) 50%
}

.plan__button a::before {
  transform: rotate(45deg)
}

.plan__button a::after {
  transform: rotate(-45deg)
}

.plan__button a .icon {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%)
}

.plan__button a .icon img {
  width: 2.5rem;
  height: 2.75rem;
  object-fit: contain
}

.plan__button a .text {
  line-height: 1.4em;
  letter-spacing: .05em
}

@media screen and (min-width: 768px) {
  .plan__button a {
    max-width: 26.67rem;
    height: 6rem;
    padding: 0 0 0 2rem;
    border-width: .2rem
  }

  .plan__button a::before,
  .plan__button a::after {
    width: 1rem;
    height: .2rem;
    right: 1.5rem;
    transform-origin: calc(100% - .1rem) 50%
  }

  .plan__button a .icon {
    left: 1.5rem
  }

  .plan__button a .icon img {
    width: 3.33rem;
    height: 3.44rem
  }

  .plan__button a .text {
    font-size: 1.4rem
  }
}

.plan__button a::before,
.plan__button a::after {
  right: 5rem
}

.plan__button a .icon {
  top: .3rem;
  left: 1rem;
  transform: none
}

.plan__button a .icon img {
  width: 2.5rem;
  height: 2.75rem;
  object-fit: contain
}

.plan__button a .text01 {
  padding: 0 0 0 3rem;
  font-size: .81rem
}

.plan__button a .text02 {
  line-height: 1.6em;
  font-size: 1.31rem
}

.plan__button a .image {
  width: 4.5rem;
  position: absolute;
  top: 50%;
  right: -.2rem;
  transform: translateY(-50%)
}

@media screen and (min-width: 768px) {
  .plan__button a {
    height: 7rem
  }

  .plan__button a::before,
  .plan__button a::after {
    right: 5.5rem
  }

  .plan__button a .icon {
    top: .5rem;
    left: 1rem
  }

  .plan__button a .icon img {
    width: 3rem;
    height: 3rem
  }

  .plan__button a .text01 {
    padding: 0 0 .3rem 2.5rem;
    line-height: 1.3em;
    font-size: 1rem
  }

  .plan__button a .text02 {
    line-height: 1.3em;
    font-size: 1.67rem
  }

  .plan__button a .image {
    width: 5.5rem;
    top: 46%;
    right: -.2rem
  }
}

.plan__note {
  padding: 1rem 0 0;
  line-height: 1.6em;
  font-size: .7rem
}

.plan__note02 {
  text-align: center
}

@media screen and (min-width: 768px) {
  .plan01 {
    background-image: url("../images/plan.webp")
  }

  .plan__heading {
    padding: 0 0 3rem
  }

  .plan__text {
    line-height: 2em;
    font-size: 1.33rem
  }

  .plan__text01 {
    padding: 0 0 3rem
  }

  .plan__text01 br:nth-child(2),
  .plan__text01 br:nth-child(4) {
    display: none
  }

  .plan__text02 {
    padding: 3rem 0
  }

  .plan__text02 br:nth-child(1),
  .plan__text02 br:nth-child(3) {
    display: none
  }

  .plan__list .head {
    font-size: 1.56rem
  }

  .plan__list .body {
    padding: 2rem
  }

  .plan__list .body .list {
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 1rem
  }

  .plan__list .body .list-item .text {
    padding: .2rem 0 0;
    font-size: 1rem
  }

  .plan__box01 {
    width: 30rem;
    margin: 0 auto
  }

  .plan__box01::after {
    width: 12.5rem;
    top: -1.25rem;
    right: -5rem
  }

  .plan__box01 .catch {
    padding: 2rem 0 .8rem;
    font-size: 1.11rem
  }

  .plan__box01 .heading {
    font-size: 4rem
  }

  .plan__box01 .heading::after {
    height: 1.5rem;
    margin: .8rem auto 0
  }

  .plan__box01 .text01 {
    font-size: 2rem
  }

  .plan__box01 .text02 {
    padding: .8rem 0 1rem;
    font-size: 1.78rem
  }

  .plan__box01 .note {
    font-size: .88rem
  }

  .plan__button {
    width: 50%
  }

  .plan__button::after {
    width: 8.39rem;
    top: -1.8rem;
    left: -4rem
  }

  .plan__button .catch {
    width: 24.78rem;
    height: 4rem;
    padding: .6rem 0 0;
    font-size: 1.33rem
  }

  .plan__note {
    padding: 2rem 0 0;
    font-size: .88rem
  }

  .plan__note02 br {
    display: none
  }
}

.faq__list {
  display: grid;
  grid-template-columns: 100%;
  grid-gap: 1rem
}

.faq__list-item {
  background-color: #ecf4f8;
  padding: 1rem
}

.faq__list-item .head {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  margin: 0 0 .5rem;
  padding: 0 0 .5rem 1.5rem;
  border-bottom: 1px solid #333;
  line-height: 1.6em;
  font-weight: 700;
  position: relative
}

.faq__list-item .head::before {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  content: 'Q.';
  position: absolute;
  top: 0;
  left: 0
}

.faq__list-item .body {
  padding: 0 0 0 1.5rem;
  line-height: 1.6em;
  font-size: .88rem;
  font-weight: 500;
  position: relative
}

.faq__list-item .body::before {
  font-family: "Literata", serif;
  font-weight: 400;
  font-style: normal;
  content: 'A.';
  font-size: 1rem;
  position: absolute;
  top: 0;
  left: 0
}

@media screen and (min-width: 768px) {
  .faq__list-item {
    padding: 1.5rem
  }

  .faq__list-item .head {
    margin: 0 0 1rem;
    padding: 0 0 .5rem 2rem;
    font-size: 1.22rem
  }

  .faq__list-item .body {
    padding: 0 0 0 2rem;
    font-size: 1rem
  }

  .faq__list-item .body::before {
    font-size: 1.22rem
  }
}

.footer {
  background: #333;
  color: #fff
}

.footer__inner {
  width: 90%;
  margin: 0 auto
}

@media screen and (min-width: 768px) {
  .footer__inner {
    width: calc(100% - 4rem);
    max-width: 1000px
  }
}

.footer .copyright {
  padding: 1rem 0;
  line-height: 1.6em;
  font-size: .88rem;
  text-align: center
}

.floating {
  width: 100%;
  position: sticky;
  bottom: 0;
  left: 0;
  z-index: 1000
}

.floating__button {
  width: 100%;
  display: flex;
  align-items: center
}

.floating__button-item a {
  background: #333;
  width: 100%;
  height: 3.05rem;
  color: white;
  font-weight: 700;
  text-align: center;
  letter-spacing: .05em;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center
}

.floating__button-item01 {
  width: 4.5rem
}

.floating__button-item01 a {
  background-color: #f64747;
  background-image: linear-gradient(#f64747, #ae3232)
}

.floating__button-item01 a .icon {
  width: 1.2em;
  padding: 0 0 .3rem
}

.floating__button-item01 a .text {
  font-size: .7em
}

.floating__button-item01 a .text br {
  display: none
}

.floating__button-item01 a .number {
  display: none
}

.floating__button-item02 {
  width: calc((100% - 4.5rem) / 2)
}

.floating__button-item02 a {
  background-color: #06c755;
  background-image: linear-gradient(#06c755, #189049)
}

.floating__button-item03 {
  width: calc((100% - 4.5rem) / 2)
}

.floating__button-item03 a {
  background-color: #ff4f78;
  background-image: linear-gradient(#ff4f78, #d83c60)
}

@media screen and (min-width: 768px) {
  .floating__button {
    max-width: 46rem;
    margin: 0 auto;
    padding: 1rem 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: .5rem
  }

  .floating__button-item {
    width: 100%
  }

  .floating__button-item a {
    height: 3rem;
    border-radius: .5rem
  }

  .floating__button-item01 a {
    flex-flow: row
  }

  .floating__button-item01 a .icon {
    display: none
  }

  .floating__button-item01 a .text {
    padding: 0 1em 0 0;
    line-height: 1.2em;
    font-size: .88em
  }

  .floating__button-item01 a .text br {
    display: block
  }

  .floating__button-item01 a .number {
    font-family: "Literata", serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.33em;
    font-weight: 700;
    letter-spacing: .05em;
    display: block
  }
}



@media screen and (min-width: 1440px) {

  .header__inner,
  .visual__inner,
  .opening__inner,
  .present__inner,
  .event__inner,
  .access__inner,
  .area__inner,
  .facility__inner,
  .consult__inner,
  .plan__inner,
  .faq__inner,
  .cv__inner,
  .contents .map iframe {
    max-width: 69.444vw;
  }
}