@charset "UTF-8";

/* ==========================================================================
   Links
========================================================================== */
a {
  color: inherit;
  text-decoration: none;
  transition: .2s;
  transition-property: background, color, border, opacity, transform;
}
._blank::after {
  content: '';
  display: inline-block;
  width: 0.714em;
  margin-left: .25em;
  aspect-ratio: 1/1;
  background-repeat: no-repeat;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2210%22%20viewBox%3D%220%200%2010%2010%22%20width%3D%2210%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23e34b46%22%3E%3Cpath%20d%3D%22m2%201v1h-1v7h7v-1h1v2h-9v-9z%22%2F%3E%3Cpath%20d%3D%22m4.00293.999997%205.03579.000003-.00017%204.99991.96435.00009.0002-5.99999561-6.00017-.00000439z%22%2F%3E%3Cpath%20d%3D%22m9.87473.769091-.64142-.64142-5.45206%205.452059.64142.64142z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
  background-position: 100% 50%;
  background-size: contain;
}
.bg-color1 ._blank::after {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20fill%3D%22none%22%20height%3D%2210%22%20viewBox%3D%220%200%2010%2010%22%20width%3D%2210%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23EFEDE6%22%3E%3Cpath%20d%3D%22m2%201v1h-1v7h7v-1h1v2h-9v-9z%22%2F%3E%3Cpath%20d%3D%22m4.00293.999997%205.03579.000003-.00017%204.99991.96435.00009.0002-5.99999561-6.00017-.00000439z%22%2F%3E%3Cpath%20d%3D%22m9.87473.769091-.64142-.64142-5.45206%205.452059.64142.64142z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}

/* ==========================================================================
   Image
========================================================================== */
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
.cover {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
svg {
  fill: currentColor;
}
picture,
figure {
  display: block;
  width: 100%;
}
picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==========================================================================
   Typography
========================================================================== */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { font-family: var(--gothic); font-weight: 700; position: relative; letter-spacing: .05em }
h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a, h6 a, .h6 a { text-decoration: none; }

.huge { font-size: 3.571em; letter-spacing: 0.05em; } /*50*/
h1, .h1 { font-size: 3.286em; } /*46*/
h2, .h2 { font-size: 2em; } /*28*/
h3, .h3 { font-size: 1.714em; } /*24*/
h4, .h4 { font-size: 1.143em; } /*16*/
h5, .h5 { font-size: 1.071em; } /*15*/
h6, .h6 { font-size: 1em; } /*14*/

@media (min-width: 576px) {
.huge { font-size: 3.571em; } /*50*/
h1, .h1 { font-size: 3.571em; } /*50*/
h2, .h2 { font-size: 3em; } /*42*/
h3, .h3 { font-size: 2.5em; } /*35*/
h4, .h4 { font-size: 1.714em; } /*24*/
h5, .h5 { font-size: 1.143em; } /*16*/
h6, .h6 { font-size: 1.071em; } /*15*/
}
@media (min-width: 768px) {
.huge { font-size: 4.429em; } /*62*/
}
@media (min-width: 992px) {
  .huge { font-size: 5em; } /*75*/
  h1, .h1 { font-size: 4em; } /*60*/
  h2, .h2 { font-size: 3.667em; } /*55*/
  h3, .h3 { font-size: 2.467em; } /*37*/
  h4, .h4 { font-size: 1.667em; } /*25*/
  h5, .h5 { font-size: 1.467em; } /*22*/
  h6, .h6 { font-size: 1.333em; } /*20*/
}
@media (min-width: 1200px) {
  .huge { font-size: 6em; } /*90*/
}

.fw-400,.text-normal { font-weight: 400 !important; }
.fw-500,.text-medium { font-weight: 500 !important; }
.fw-600,.text-semibold { font-weight: 600 !important; }
.fw-700,.text-bold { font-weight: 700 !important; }
.text-italic { font-style: italic; }
.text-justify { text-align: justify; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }

@media (min-width: 576px) {
  .text-sm-left { text-align: left !important; }
  .text-sm-right { text-align: right !important; }
  .text-sm-center { text-align: center !important; }
}
@media (min-width: 768px) {
  .text-md-left { text-align: left !important; }
  .text-md-right { text-align: right !important; }
  .text-md-center { text-align: center !important; }
}
@media (min-width: 992px) {
  .text-lg-left { text-align: left !important; }
  .text-lg-right { text-align: right !important; }
  .text-lg-center { text-align: center !important; }
}
@media (min-width: 1200px) {
  .text-xl-left { text-align: left !important; }
  .text-xl-right { text-align: right !important; }
  .text-xl-center { text-align: center !important; }
}

small {
  font-size: 0.846em;
}

.font1{
  font-family: var(--font1);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
}
.en_ttl {
  font-family: var(--font1);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.025em;
}


.gothic {
  font-family: var(--gothic);
}

p {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
p:first-child {
  margin-top: 0!important;
}
p:last-child {
  margin-bottom: 0!important;
}

@media (min-width: 992px) {
  .read > span {
    display: block;
  }
  .read > span + span {
    margin-top: 1.5em;
  }
}

/* ==========================================================================
   Button
========================================================================== */
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 1em;
  font-family: var(--font1);
  font-size: .8em;
  line-height: 1.5;
  font-weight: 700;
  padding: 1em 1.5em;
  max-width: 100%;
  background: var(--color1);
  color: var(--l-gray);
  border: 2px solid var(--color1);
  text-decoration: none;
  border-radius: 0;
  outline: none;
  cursor: pointer;
  position: relative;
  z-index: 2;
  transition: .2s ease-in-out;
  transition-property: background,border,color;
}
a:hover .btn,
.btn:hover {
  background-color: var(--l-gray);
  color: var(--color1);
}
.btn svg {
  display: inline-block;
  width: 0.714em;
  aspect-ratio: 1/1;
}


/* ==========================================================================
   Headline
========================================================================== */
.headline {
  display: flex;
  flex-direction: column;
  gap: .375rem;
  line-height: 1.2;
  margin-bottom: 2rem;
}
.headline > span {
  display: block;
}
.headline .label {
  font-family: var(--font1);
  font-weight: 600;
}
.headline .en_ttl {
  display: block;
  line-height: 1.2;
}
.headline p {
  margin: 1.5rem 0 1rem;
}
@media (min-width: 992px) {
  .headline {
    gap: .75rem;
  }
}

/* ==========================================================================
   MV
========================================================================== */
.mv {
  width: 100%;
  height: min(96svh,30rem);
  color: var(--white);
  display: flex;
  justify-content: center;
  align-items: center;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: relative;
}
.mv:has(.slider-wrapper) {
  height: 95svh;
}
.mv.overlay::before {
  content: '';
  display: block;
  background-color: rgba(0,0,0,0.3);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mv .mv__inner {
  color: #FFF;
  letter-spacing: .1em;
  position: relative;
  transform: translateY(15%);
}
.mv .mv__inner .svg-ttl img {
  width: min(80vw, 42.5rem);
}
.mv .mv__inner .en_ttl {
  font-weight: 700;
}
.mv picture.cover,
.mv .slider-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.mv .slider-wrapper .slide picture {
  width: 100%;
  height: 96svh;
}
@media (orientation: landscape){
  .mv:has(.slider-wrapper) {
    height: 96svh;
  }
  .mv:has(picture.cover) {
    height: min(96svh,32rem);
  }
  .mv:has(.slider-wrapper) .mv__inner {
    transform: translateY(30%);
  }
}

/* ==========================================================================
   Slider
========================================================================== */
.slider-wrapper {
  overflow: hidden;
}

.slider-wrapper:has(.slideshow) {
  background-color: var(--white);
}
.slideshow .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
}
.slideshow .swiper-slide-active img,
.slideshow .swiper-slide-prev img {
  transform: scale(1.1);
  transition: 9s linear;
}



.swiper .controller {
  width: 14rem;
  max-width: 100%;
  height: 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2rem;
  position: relative;
}
.swiper .controller > * {
  position: static;
  margin: 0;
}
.swiper .controller > [class*="next"],
.swiper .controller > [class*="prev"] {
  color: currentColor;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 3.25rem;
  height: 3.25rem;
  aspect-ratio: 1/1;
  border: 2px solid currentColor;
  border-radius: 100%;
}
.swiper .controller > [class*="next"] svg,
.swiper .controller > [class*="prev"] svg {
  display: none;
}
.swiper .controller > [class*="next"]::before,
.swiper .controller > [class*="prev"]::before {
  content: '';
  display: block;
  width: 20%;
  height: 20%;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateX(-20%) rotate(45deg);
}
.swiper .controller > [class*="prev"] {
  order: -1;
  transform: scale(-1,1);
}
.swiper .controller [class*="pagination"] {
  order: 0;
  font-family: var(--font1);
  font-weight: 700;
}
.swiper .controller > [class*="pagination"]::before {
  content: '[ ';
}
.swiper .controller > [class*="pagination"]::after {
  content: ' ]';
}
.swiper .controller > [class*="pagination"] span {
  font-size: 100%;
  margin: 0;
}
.swiper .controller > [class*="next"] {
  order: 2;
}
@media (min-width: 992px) {
  .swiper .controller {
    width: 16rem;
    height: 4rem;
  }
  .swiper .controller > [class*="next"],
  .swiper .controller > [class*="prev"] {
    width: 4rem;
    height: 4rem;
  }
  .swiper .controller [class*="pagination"] {
    font-size: 1.333em;
  }
}

/* ==========================================================================
   Responsive iframe
========================================================================== */
.iframeBox {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
}
.iframeBox iframe {
  width: 100%;
  height: 100%;
}
.iframeBox._map {
  aspect-ratio: 59 / 64;
  filter: grayscale(100);
  margin: 3rem 0 2rem;
}
@media (min-width: 576px) {
  .iframeBox._map {
    aspect-ratio: 16 / 9;
  }
}
@media (min-width: 992px) {
  .iframeBox._map {
    aspect-ratio: 52 / 17;
  }
}



.hs-form {
  max-width: 50rem;
  margin: 0 auto;
  position: relative;
}


/* ==========================================================================
   List
========================================================================== */
ul.links {
  list-style-type: disc;
  padding-left: 1em;
}

ul.row,
ol.row,
.lists {
  list-style-type: none;
}


/* ==========================================================================
   Card
========================================================================== */
.cards {
  width: min(100%, 30rem);
  margin-right: auto;
  margin-left: auto;
  /*border: 3px dashed currentColor;*/
}
.cards .card {
  padding: 1.375rem;
  line-height: 1.4;
  letter-spacing: .025em;
}
.cards .card + .card {
  /*border-top: 3px dashed currentColor;*/
}
.card picture {
  margin-bottom: 1em;
}
.card p {
  margin-top: .5em;
  margin-bottom: .5em;
  letter-spacing: -2.5%;
}

@media (min-width: 768px) {
  .cards {
    width: 100%;
    border: 0;
    /*border-top: 3px dashed currentColor;
    border-bottom: 3px dashed currentColor;*/
    padding: 1.5rem 0;
  }
  .cards .card {
    padding: 0 1.5rem;
  }
  .cards .card + .card {
    border-top: 0;
    /*border-left: 3px dashed currentColor;*/
  }
}
@media (min-width: 1200px) {
  .card p {
    white-space: nowrap;
  }
}

/* ==========================================================================
   dl
========================================================================== */
dl {
  line-height: 1.4;
}
dl dt {
  font-family: var(--font1);
  font-weight: 900;
  margin-bottom: .125em;
}
dl + dl {
  margin-top: .75em;
}
dl dd p {
  margin-top: .5em;
  margin-bottom: .5em;
}


/* ==========================================================================
   Color
========================================================================== */
.bg-color1 { background: var(--color1); color: var(--l-gray); }
.bg-l-gray { background: var(--l-gray); }

.white { color: var(--white); }
.black { color: var(--black); }
.color1 { color: var(--color1); }
.color2 { color: var(--color2); }


._af_sep,
._bf_sep {
  position: relative;
  z-index: 2;
}
._af_sep::before,
._bf_sep::after {
  content: '';
  display: block;
  width: 100%;
  height: calc(var(--section-gy)/2);
  background: var(--color1);
  position: absolute;
  top: calc(var(--section-gy)/2*-1 + 0.5px);
  clip-path: polygon(50% 0%, 100% 99%, 100% 100%, 0 100%, 0% 99%);
  -webkit-clip-path: polygon(50% 0%, 100% 99%, 100% 100%, 0 100%, 0% 99%);
}
._bf_sep::after {
  height: var(--section-gy);
  top: auto;
  bottom: -0.1vw;
  clip-path: polygon(50% 0%, 100% 50%, 100% 100%, 0 100%, 0% 50%);
  -webkit-clip-path: polygon(50% 0%, 100% 50%, 100% 100%, 0 100%, 0% 50%);
}
.bg-l-gray._af_sep::before,
.bg-color1._bf_sep::after {
  background: var(--l-gray);
}

.of-hidden {
  overflow: hidden;
}

/****************************************************************************
   PRINT STYLE
****************************************************************************/
@media print {
  * { background: transparent !important; color: black !important; text-shadow: none !important; filter: none !important; -ms-filter: none !important; }
  a, a:visited { color: #444 !important; text-decoration: underline; }
  a:after, a:visited:after { content: " (" attr(href) ")"; }
  a abbr[title]:after, a:visited abbr[title]:after { content: " (" attr(title) ")"; }
  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
  thead { display: table-header-group; }
  tr, img { page-break-inside: avoid; }
  img { max-width: 100% !important; }
  @page { margin: 0.5cm; }
  p, h2, h3 { orphans: 3; widows: 3; }
  h2, h3 { page-break-after: avoid; }
  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav { display: none; }
}

