@charset "UTF-8";

/* ==========================================================================
   Setting
========================================================================== */
:root {
  --container-padding: 5.2vw;
}
@media (min-width: 1200px) {
  :root {
    --container-padding: 5.75vw;
  }
}


/* ==========================================================================
   Sections
========================================================================== */
.section {
  margin-top: 3.5rem;
  margin-bottom: 3.5rem;
}
.section_M,
.section_L {
  margin-top: 6rem;
  margin-bottom: 6rem;
}
.section-padding {
  padding-top: 3.75rem;
  padding-bottom: 3.75rem;
}
.content {
  margin-top: 2.25rem;
  margin-bottom: 2.25rem;
}
@media (min-width: 992px) {
  .section {
    margin-top: 6rem;
    margin-bottom: 6rem;
  }
  .section_M {
    margin-top: 7.5rem;
    margin-bottom: 7.5rem;
  }
  .section_L {
    margin-top: 11rem;
    margin-bottom: 11rem;
  }
  .section-padding {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  .content {
    margin-top: 2.5rem;
    margin-bottom: 2.5rem;
  }
}


.container {
  max-width: 100%;
  padding-right: var(--container-padding);
  padding-left: var(--container-padding);
}
.container.container_XS {
  max-width: min(100%, 38rem);
}
@media (min-width: 768px) {
  .container.container_M {
    max-width: calc(53rem + var(--container-padding)*2);
  }
  .container.container_XS {
    max-width: 40rem;
  }
}
@media (min-width: 992px) {
  .container.container_M {
    max-width: calc(75rem + var(--container-padding)*2);
  }
  .container.container_XS {
    max-width: 56rem;
  }
}
@media (min-width: 1200px) {
  .container.container_XS {
    max-width: 58rem;
  }
}
@media (min-width: 1440px) {
  .container.container_XS {
    max-width: 60rem;
  }
}


@media (max-width: 991px) {
  .container_md-M {
    max-width: min(100%, 48rem);
    margin-right: auto;
    margin-left: auto;
  }
  .container.container_md-M {
    max-width: min(100%, calc(48rem + var(--container-padding)*2));
  }
  .container_md-S {
    max-width: min(100%, 34rem);
    margin-right: auto;
    margin-left: auto;
  }
  .container.container_md-S {
    max-width: min(100%, calc(34rem + var(--container-padding)*2));
  }
}
@media (max-width: 767px) {
  .container_sm-S {
    max-width: min(100%, 34rem);
    margin-right: auto;
    margin-left: auto;
  }
  .container.container_sm-S {
    max-width: min(100%, calc(34rem + var(--container-padding)*2));
  }
}
@media (max-width: 575px) {
  .container_sp-S {
    max-width: min(100%, 34rem);
    margin-right: auto;
    margin-left: auto;
  }
  .container.container_sp-S {
    max-width: min(100%, calc(34rem + var(--container-padding)*2));
  }
}



.row {
  row-gap: 2.5rem;
}
@media (min-width: 992px) {
  .row {
    row-gap: 3rem;
  }
}
@media (min-width: 1200px) {
  .row {
    row-gap: 3rem;
    margin-right: -20px;
    margin-left: -20px;
  }
  .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, .col-xl-auto {
    padding-right: 20px;
    padding-left: 20px;
  }
  .gap_L .row {
    margin-right: -25px;
    margin-left: -25px;
  }
  .gap_L .row > [class*="col"] {
    padding-right: 25px;
    padding-left: 25px;
  }
}



.g-0 {
  gap: 0!important;
}
.gx-0 {
  column-gap: 0!important;
}
.gy-0 {
  row-gap: 0!important;
}

.row.no-gutters {
  margin-right: 0;
  margin-left: 0;
}



.over-right {
  margin-right: calc(var(--container-padding)*-1);
}
.over-left {
  margin-left: calc(var(--container-padding)*-1);
}
@media (min-width: 576px) {
  .over-sm-right {
    margin-right: calc(var(--container-padding)*-1);
  }
  .over-sm-left {
    margin-left: calc(var(--container-padding)*-1);
  }
}


.full {
  width: 100vw;
  margin-right: calc(var(--container-padding)*-1);
  margin-left: calc(var(--container-padding)*-1);
  padding-right: 0;
  padding-left: 0;
}
@media (max-width: 575px) {
  .full_sp {
    width: 100vw;
    margin-right: calc(var(--container-padding)*-1);
    margin-left: calc(var(--container-padding)*-1);
    padding-right: 0;
    padding-left: 0;
  }
}


hr {
  border-top: 1px solid var(--border1);
  margin: 0;
}


/* ==========================================================================
   Links
========================================================================== */
a {
  color: inherit;
  text-decoration: none;
  transition: .2s ease-in-out;
  transition-property: background, color, opacity, transform;
}

.underline {
  text-decoration: underline;
}
a.underline:hover,
a:hover span.underline {
  text-decoration: none;
  opacity: 1;
}

.link:has(svg) {
  display: inline-flex;
  align-items: center;
  gap: .75em;
}

/* ==========================================================================
   Tel
========================================================================== */
.tel {
  color: var(--color1);
  display: inline-flex;
  align-items: center;
  font-size: 1.538em;
  line-height: 1;
  gap: .5em;
  letter-spacing: .125em;
}
.tel i {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 1.3em;
  height: 1.3em;
  line-height: 1;
  background: var(--color1);
  border: 1px solid var(--color1);
  color: var(--white);
  border-radius: 100%;
}
.tel i svg {
  display: block;
  width: 50%;
  fill: currentColor;
}
.tel + .reception {
  color: var(--d-gray);
}

/* ==========================================================================
   Image
========================================================================== */
picture {
  display: block;
  position: relative;
}
picture._auto {
  aspect-ratio: auto !important;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
picture img {
  display: block;
}

.no-image {
  background: var(--l-gray) url(../img/logo.svg) no-repeat center;
  background-size: min(30%, 10rem);
}


.double-img {
  display: flex;
}
.double-img > * {
  display: block;
  flex-basis: 50%;
}
.double-img > * img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ==========================================================================
   Typography
========================================================================== */
.huge,
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-weight: 400;
  position: relative;
}
.huge a,
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;
}

.huge1 { font-size: 4.615em; line-height: .9; } /* 60 */
.huge2 { font-size: 4.615em; line-height: .9; } /* 60 */
.huge3 { font-size: 4.615em; line-height: .9; } /* 60 */
.huge4 { font-size: 3.846em; line-height: .9; } /* 50 */
.huge5 { font-size: 3.231em; line-height: .85; }/* 42 */
.huge6 { font-size: 3.076em; line-height: 1.3; }/* 40 */
.huge7 { font-size: 2.769em; line-height: 1.3; }/* 36 */
h1, .h1 { font-size: 2.769em; line-height: 1.3; } /* 36 */
h2, .h2 { font-size: 2em;     line-height: 1.5; } /* 26 */
h3, .h3 { font-size: 1.538em; line-height: 1.8; } /* 20 */
h4, .h4 { font-size: 1.385em; } /* 18 */
h5, .h5 { font-size: 1.077em; } /* 14 */
h6, .h6 { font-size: 1em; }

@media (min-width: 992px) {
  .huge1 { font-size: 9.231em; } /* 120 */
  .huge2, .huge-lg-2 { font-size: 7.692em!important; } /* 100 */
  .huge3 { font-size: 6.923em; } /* 90 */
  .huge4 { font-size: 6.154em; } /* 80 */
  .huge5 { font-size: 5.384em; } /* 70 */
  .huge6 { font-size: 4.615em; } /* 60 */
  .huge7 { font-size: 3.846em; } /* 50 */
  
  h1, .h1 { font-size: 3.076em; } /* 40 */
  h2, .h2 { font-size: 2.308em; } /* 30 */
  h3, .h3 { font-size: 1.846em; } /* 24 */
  h4, .h4 { font-size: 1.538em; } /* 20 */
  h5, .h5 { font-size: 1.231em; } /* 16 */
  h6, .h6 { font-size: 1.077em; } /* 14 */
}
@media (min-width: 1200px) {

}


p {
  margin-top: 1.75rem;
  margin-bottom: 1.75rem;
}
p:first-child {
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}

small {
  font-size: .923rem;
}
.small {
  font-size: .923em !important;
}
.xsmall {
  font-size: .846em !important;
}
@media (max-width: 991px) {
  .sp-small {
    font-size: .923em !important;
  }
}

.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; }
}


.en_ttl {
  font-family: var(--font1);
  font-weight: 400;
  padding-top: .2em;
}

.font1 {
  font-family: var(--font1) !important;
  font-weight: 400;
  padding-top: .2em;
}
.font2 {
  font-family: var(--font2) !important;
  font-weight: 400 !important;
}


/* ==========================================================================
   Button
========================================================================== */
.btn {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: .75em;
  text-align: left;
  font-family: inherit;
  font-size: 1em;
  letter-spacing: .2em;
  line-height: 1.5;
  font-weight: 400;
  padding: 1.125em 2em;
  width: 23em;
  max-width: 100%;
  background: var(--color1);
  color: var(--white);
  border: 1px solid var(--color1);
  text-decoration: none;
  border-radius: .375em;
  outline: none;
  cursor: pointer;
  position: relative;
  z-index: 2;
  transition: .2s ease-in-out;
  transition-property: background,border,color;
}
.btn::before,
.btn::after {
  content: '';
  display: block;
  width: .5em;
  height: .5em;
  border-radius: 100%;
  background: currentColor;
  position: absolute;
  right: 2em;
}
.btn::after {
  z-index: -1;
}
.btn:hover::after {
  animation: pulsateArrow 1s linear infinite;
}
@keyframes pulsateArrow {
  0%   { transform: scale(1); opacity: .3; }
  100% { transform: scale(4); opacity: 0; }
}
.btn.btn-b {
  background: transparent !important;
  border-color: var(--color1);
  color: var(--color1);
}
.btn.btn-w-b {
  background: transparent !important;
  border-color: var(--white);
  color: var(--white);
}


.btn:hover {
  background: transparent;
  color: var(--color1);
}
.btn.btn-b:hover {
  background: var(--color1) !important;
  color: var(--white);
}
.btn.btn-w-b:hover {
  background: var(--white) !important;
  color: var(--color1);
}

.buttons.row {
  row-gap: 1.5rem;
}



.more {
  display: inline-flex;
  align-items: center;
  gap: .75em;
  letter-spacing: .15em;
  padding-left: 1.25em;
  position: relative;
}
.more::before,
.more::after {
  content: '';
  display: block;
  width: .5em;
  height: .5em;
  border-radius: 100%;
  background: currentColor;
  position: absolute;
  left: 0em;
}
.more::after {
  z-index: -1;
}
a.more:hover::after,
a:hover .more::after {
  animation: pulsateArrow 1s linear infinite;
}
@keyframes pulsateArrow {
  0%   { transform: scale(1); opacity: .3; }
  100% { transform: scale(4); opacity: 0; }
}

/* ==========================================================================
   Badge
========================================================================== */
.badge {
  display: inline-block;
  text-align: center;
  background: var(--color1);
  color: var(--white) !important;
  font-size: 0.923rem;
  line-height: 1.25;
  padding: .5em;
  min-width: 9em;
}



/* ==========================================================================
   MV
========================================================================== */
#mv {
  position: relative;
  z-index: 2;
}
#mv.mv {
  height: calc(100svh - 4.6rem);
}
#mv .imgBox,
#mv .imgBox * {
  height: 100%;
  min-height: 24em;
}
#mv picture {
  display: block;
  height: 100%;
  position: relative;
}
#mv picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#mv .container {
  padding-top: var(--header-height);
}
#mv .headline * {
  color: var(--white);
}
#mv .ttlBox {
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  max-width: 84%;
  height: 100%;
  margin: 0 auto;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 2;
}

@media (min-width: 992px) {
  #mv.mv {
    height: 100svh;
  }
  #mv:not(.mv) .imgBox {
    aspect-ratio: 28 / 9;
  }
}


.overlay {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: var(--black);
  opacity: 0.2;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
}



/* ==========================================================================
   Page header
========================================================================== */
.page__header {
  color: var(--white);
  width: 100%;
  position: relative;
  z-index: 1;
}
.page__header .headline {
  row-gap: .5em;
}
.page__header:not(#mv) .headline {
  margin: 2.5rem 0;
}
.page__header:not(#mv) .headline .en_ttl {
  font-size: 2.154rem;
}
.row .page__header:not(#mv) .headline {
  margin-bottom: 0;
}

.page__header .headline .en_ttl {
  color: var(--color1);
  letter-spacing: .2em!important;
  line-height: 1;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  margin: 0;
  position: relative;
}
.page__header .headline .ttl {
  color: var(--d-gray);
  display: block;
  letter-spacing: .3em;
}
@media (max-width: 991px) {
  .row:has(.page__header) {
    margin-top: 0;
  }
}
@media (min-width: 992px) {
  .page__header:not(#mv) .headline {
    margin: 6rem 0;
  }
  .page__header:not(#mv):has(.imgBox) .headline {
    margin-bottom: 3rem;
  }
  .page__header:not(#mv) .headline .en_ttl {
    font-size: 2.769rem;
  }
  .row .page__header:not(#mv) .headline {
    margin: 0;
  }
}



.page__header .imgBox + .container {
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.page__header .imgBox + .container .en_ttl,
.page__header .imgBox + .container .ttl {
  color: inherit;
}

.page__header .imgBox[data-caption] {
  position: relative;
}
.page__header .imgBox[data-caption]::after {
  display: block;
  content: attr(data-caption);
  color: var(--gray);
  font-family: var(--font1);
  line-height: 1;
  text-align: center;
  position: absolute;
  right: 0;
  left: 0;
  margin: 0 auto;
  transform: translateY(-37.5%);
}
@media (min-width: 576px) {
  .page__header .imgBox[data-caption]::after {
    text-align: right;
  }
}



.page__thumbnail .main-img {
  display: block;
}
.page__thumbnail .main-img img {
  width: 100%;
}



.headline {
  color: var(--color1);
  display: flex;
  flex-direction: column;
  letter-spacing: .2em;
}
.headline span {
  display: block;
}
.headline .en_ttl {
  letter-spacing: .1em;
}
.headline .en_ttl.h4 {
  line-height: 1.25;
}
.headline .label {
  font-family: var(--font2);
  line-height: 1.25;
}
.headline .ttl {
  letter-spacing: .275em;
}
.headline .label + .ttl {
  margin-top: .5rem;
}



.section__header .en_ttl {
  color: var(--gray);
  line-height: .96;
  letter-spacing: .1em;
  padding-top: 0;
}
.section__header .ttl {
  color: var(--d-gray);
}
@media (min-width: 992px) {
  .section__header._sticky {
    position: sticky;
    top: calc(var(--header-height) + 2.25rem);
  }
}



.post-thumbnail {
  aspect-ratio: 7 / 6;
}
.post-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (min-width: 576px) {
  .post-thumbnail {
    aspect-ratio: 31 / 15;
  }
}


/* ==========================================================================
   Intro
========================================================================== */
.page-label {
  content: attr(data-label);
  color: var(--color1);
  font-family: var(--font2);
  font-size: .923rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  display: block;
  white-space: nowrap;
  margin-bottom: .5rem;
}
.page-label._vertical-rl {
  writing-mode: vertical-rl;
  line-height: 1;
  margin-bottom: 0;
}
@media (min-width: 992px) {
  .page-label {
    padding-top: 1rem;
    writing-mode: vertical-rl;
    line-height: 1;
    margin-bottom: 0;
  }
  .page-label._sticky {
    position: sticky;
    top: calc(var(--header-height) + 2.25rem);
  }
}


@media (min-width: 992px) {
  .column-layout {
    position: relative;
  }
  .column-layout .side-col {
    position: absolute;
    top: 0;
    bottom: 0;
  }
  .column-layout .main-col {
    padding-left: 8.33333%;
  }
  .column-layout.no-gap .main-col {
    padding-left: calc(8.33333% - 30px);
  }
}
@media (min-width: 1200px) {
  .column-layout.no-gap .main-col {
    padding-left: calc(8.33333% - 40px);
  }
}

.label {
  color: var(--color1);
  font-family: var(--font2);
  font-weight: 400;
  letter-spacing: .3em;
}
.label:not([class*="h"]) {
  font-size: .923rem;
}
.copy {
  letter-spacing: .3em;
}
#intro .copy {
  font-weight: 500;
}
.read,
#intro .copy + p {
  line-height: 2.75;
}
#intro .hr::before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background: var(--border1);
}

@media (max-width: 991px) {
  header#intro .copy + p {
    line-height: 2;
  }
}
@media (min-width: 992px) {
  #intro .hr::before {
    width: 1px;
    height: 100%;
    position: absolute;
    left: 50%;
  }
}

/* ==========================================================================
   Slick.js
========================================================================== */
.slider-wrapper {
  margin-left: -5px;
  position: relative;
}
.slider-wrapper .slick-slide {
  padding-left: 5px;
  position: relative;
}
.slider-wrapper._gap-30 {
  margin-left: -30px;
}
.slider-wrapper._gap-30 .slick-slide {
  padding-left: 30px;
}
.slider-wrapper._gap-30 .slick-arrowBox {
  padding-left: 30px;
}
.slider-wrapper._gap-0 {
  margin-left: 0;
}
.slider-wrapper._gap-0 .slick-slide {
  padding-left: 0;
}
@media (max-width: 575px) {
  .slider-wrapper._gap-30 {
    margin-left: calc(var(--container-padding)*-1);
  }
  .slider-wrapper._gap-30 .slick-slide {
    padding-left: var(--container-padding);
  }
  .slider-wrapper._gap-30 .slick-arrowBox {
    padding-left: var(--container-padding);
  }
}
@media (min-width: 1200px) {
  .slider-wrapper._gap-30 {
    margin-left: -40px;
  }
  .slider-wrapper._gap-30 .slick-slide {
    padding-left: 40px;
  }
  .slider-wrapper._gap-30 .slick-arrowBox {
    padding-left: 40px;
  }
}

.slick-slider {
  opacity: 0;
  transition: opacity 0.3s linear;
}
.slick-slider.slick-initialized {
  opacity: 1;
}

.over-right .slick-list {
  padding-right: var(--container-padding);
}


.slick-slide picture {
  position: relative;
}
.slick-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mv-slider .slick-slide {
  padding-left: 0!important;
}

/* ------------------
   Carousel slider
------------------ */
.over-right .carousel-slider .slick-list {
  padding-right: 22vw;
}
@media (min-width: 768px) {
  .over-right .carousel-slider .slick-list {
    padding-right: 15.5vw;
  }
}
@media (min-width: 992px) {
  .over-right .carousel-slider .slick-list {
    padding-right: var(--container-padding);
  }
  .over-right .carousel-slider[data-column="2"] .slick-list {
    padding-right: 15.5vw;
  }
}

/* ------------------
   Slider
------------------ */
.slider-wrapper .slick-slide picture {
  aspect-ratio: 7 / 6;
}
.slider-wrapper .slick-slide picture._portrait {
  aspect-ratio: 7 / 10 !important;
}
.slider-wrapper .slick-slide picture[data-caption]::before {
  content: attr(data-caption);
  display: inline-flex;
  align-items: center;
  font-size: .846em;
  padding: .5em 1.5em;
  height: 4em;
  background: var(--white);
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (min-width: 576px) {
  .slider-wrapper .slick-slide picture {
    aspect-ratio: 20 / 13;
  }
}
@media (min-width: 576px) {
  .slider[data-variable-width] .slick-slide {
    width: calc((100vw - var(--container-padding)*2)*0.6666);
  }
  .slider-wrapper._full .slider[data-variable-width] .slick-slide {
    width: calc((100vw - var(--container-padding)*2)*0.48);
  }
}
@media (min-width: 992px) {
  .slider-wrapper .slick-slide picture[data-caption]::before {
    font-size: 1.077em;
  }
}

/* ------------------
   MD Gallery slider
------------------ */
@media (min-width: 576px) and (max-width: 991px) {
  .slider-wrapper:has(.slider[data-slick-target="md"]) {
    margin-right: calc(var(--container-padding)*-1);
  }
  .slider[data-slick-target="md"] .slick-list {
    padding-right: 40%;
  }
  .slider[data-slick-target="md"] + .slick-arrowBox.justify-content-sm-end {
    padding-right: var(--container-padding);
  }
}
@media (min-width: 992px) {
  .slider-wrapper:has(.slider[data-slick-target="md"]) {
    margin-left: 0!important;
  }
  .slider[data-slick-target="md"] {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
    row-gap: 4rem;
  }
  .slider[data-slick-target="md"] > * {
    display: block;
    width: calc((100% - 60px)/3);
    padding-left: 0!important;
  }
}
@media (min-width: 1200px) {
  .slider[data-slick-target="md"] {
    column-gap: 40px;
    row-gap: 6rem;
  }
  .slider[data-slick-target="md"] > * {
    width: calc((100% - 80px)/3);
  }
  .slider[data-slick-target="md"] + .slick-arrowBox {
    display: none;
  }
}

/* ------------------
   SM Gallery slider
------------------ */
@media (min-width: 576px) and (max-width: 767px) {
  .slider-wrapper:has(.slider[data-slick-target="sm"]) {
    margin-right: calc(var(--container-padding)*-1);
  }
  .slider[data-slick-target="sm"] .slick-list {
    padding-right: 40%;
  }
  .slider[data-slick-target="sm"] + .slick-arrowBox.justify-content-sm-end {
    padding-right: var(--container-padding);
  }
}
@media (min-width: 768px) {
  .slider-wrapper:has(.slider[data-slick-target="sm"]) {
    margin-left: 0!important;
  }
  .slider[data-slick-target="sm"] {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
    row-gap: 4rem;
  }
  .slider[data-slick-target="sm"] > * {
    display: block;
    width: calc((100% - 60px)/3);
    padding-left: 0!important;
  }
}
@media (min-width: 1200px) {
  .slider[data-slick-target="sm"] {
    column-gap: 40px;
    row-gap: 6rem;
  }
  .slider[data-slick-target="sm"] > * {
    width: calc((100% - 80px)/3);
  }
  .slider[data-slick-target="sm"] + .slick-arrowBox {
    display: none;
  }
}

/* ------------------
   SP Gallery slider
------------------ */
@media (min-width: 576px) {
  .slider-wrapper:has(.slider[data-slick-target="sp"]) {
    margin-left: 0!important;
  }
  .slider[data-slick-target="sp"] {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
    row-gap: 4rem;
  }
  .slider[data-slick-target="sp"] > * {
    display: block;
    width: calc(50% - 15px);
    padding-left: 0!important;
  }
}
@media (min-width: 1200px) {
  .slider[data-slick-target="sp"] {
    column-gap: 40px;
    row-gap: 6rem;
  }
  .slider[data-slick-target="sp"] > * {
    width: calc(50% - 20px);
  }
  .slider[data-slick-target="sp"] + .slick-arrowBox {
    display: none;
  }
}




/* ------------------
   slick controller
------------------ */
.slick-arrowBox {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 2rem;
  padding-left: 5px;
}
.over-right .slick-arrowBox {
  padding-right: var(--container-padding);
}
.slick-arrowBox .slick-next {
  order: 3;
}
.slick-arrowBox._inner {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}
.slick-arrowBox._white *::before,
.slick-arrowBox._white *::after,
.slick-arrowBox._inner *::before,
.slick-arrowBox._inner *::after {
  color: var(--white)!important;
}
@media (min-width: 768px) {
  .slick-arrowBox._absolute {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 1.25rem;
  }
}
@media (min-width: 992px) {
  .slick-arrowBox {
    margin-top: 3.25rem;
  }
  .slick-arrowBox._absolute {
    margin-top: 2rem;
  }
}

.slick-arrow {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 25px;
  height: 25px;
  margin: 0;
  border-radius: 0;
  padding: 0;
  cursor: pointer;
  border: 0;
  background: transparent;
  outline: none;
  transform: none;
  position: relative;
  z-index: 5;
}
.slick-arrow::before {
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  color: var(--color1);
  border-top: 3px solid currentColor;
  border-right: 3px solid currentColor;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%) rotate(45deg) scale(.5);
  transition: transform .3s;
}
.slick-arrow:hover::before {
  transform: translate(-50%,-50%) rotate(45deg) scale(.6);
}
.slick-arrow.slick-prev {
  transform: scale(-1,1);
}

/* Dots */
.slick-dots {
  bottom: auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 0;
  list-style: none;
  text-align: center;
}
.slick-dots li {
  position: relative;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 100%;
  height: 100%;
  padding: 5px;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
}
.slick-dots li button:hover,
.slick-dots li button:focus {
  outline: none;
}
.slick-dots li button:hover:before,
.slick-dots li button:focus:before {
  opacity: 1;
}
.slick-dots li button:before,
.slick-dots li button:after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  content: "";
  text-align: center;
  color: var(--color1);
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform .6s;
}
.slick-dots li button:after {
  width: 8px;
  height: 8px;
  background: transparent;
  border: 1px solid currentColor;
  transform: translate(-50%, -50%) scale(0);
}
.slick-dots li.slick-active button:after {
  transform: translate(-50%, -50%) scale(1);
}
.slick-dots li:hover button:after {
  transform: translate(-50%, -50%) scale(1);
  transition: transform .3s;
}


/* ==========================================================================
   Gallery (post_type:gallery)
========================================================================== */
.gallery.row {
  gap: 0;
}
.gallery.row .gallery-item {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  cursor: pointer;
}
.gallery.row .gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .6s cubic-bezier(0.39, 0.575, 0.565, 1);
}
.gallery.row .gallery-item:hover img {
  transform: scale(1.1);
}

.is-new {
  opacity: 0;
  transition: opacity .3s ease;
}
.is-new:not(.is-new) {
  opacity: 1;
}


/* ==========================================================================
   Gallery (post_type:report)
========================================================================== */
.layout-gallery .row {
  margin-right: -2px;
  margin-left: -2px;
  row-gap: 4px;
}
.layout-gallery .row > [class*="col"] {
  padding-right: 2px;
  padding-left: 2px;
}
@media (min-width: 992px) {
  .layout-gallery .row {
    margin-right: -5px;
    margin-left: -5px;
    row-gap: 10px;
  }
  .layout-gallery .row > [class*="col"] {
    padding-right: 5px;
    padding-left: 5px;
  }
}


/* ----------------------------------------
  Modal
----------------------------------------- */

/* modal base */
#lb {
  inset: 0;
  position: fixed;
  z-index: 99999;

  opacity: 0;
  visibility: hidden;
  transition: opacity 0.32s ease, visibility 0.32s ease;
}
#lb.lb--show {
  opacity: 1;
  visibility: visible;
}

#lb .lb-overlay {
  position: fixed;
  inset: 0;
  background: var(--color1);
  opacity: .7;
}


/* inner */
#lb .lb-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* content */
#lb .lb-content {
  width: min(calc(100vw - 40px), 700px);
  height: min(calc(100vh - 100px), 700px);
  position: relative;
}

/* slick slides inside modal */
#lb .slick-slide {
  padding: 0;
}
#lb .slick-slide {
  width: min(calc(100vw - 40px), 700px);
  height: min(calc(100vh - 100px), 700px);
}
#lb .slick-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* controls base */
#lb .lb-prev,
#lb .lb-next {
  background: transparent;
  color: #fff;
  border: 0;
  width: 50px;
  height: 50px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: absolute;
  bottom: 0;
  z-index: 1000;
}
#lb .lb-prev::after,
#lb .lb-next::before {
  content: '';
  display: block;
  width: 30px;
  height: 30px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2214%22%20height%3D%2230%22%20viewBox%3D%220%200%2014%2030%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M0%2027.5482L2.08216%2030L13.4231%2016.6376C13.6059%2016.4235%2013.751%2016.1689%2013.85%2015.8884C13.949%2015.608%2014%2015.3072%2014%2015.0035C14%2014.6997%2013.949%2014.3989%2013.85%2014.1185C13.751%2013.838%2013.6059%2013.5834%2013.4231%2013.3693L2.08216%200L0.00196171%202.45181L10.6463%2015L0%2027.5482Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');
  background-size: 10px;
}
#lb .lb-prev::after {
  transform: scale(-1,1);
}
#lb .lb-prev { left: -19px; }
#lb .lb-next { right: -19px; }
#lb .lb-close {
  background: transparent;
  color: #fff;
  border: 0;
  width: 40px;
  height: 40px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: absolute;
  z-index: 1000;
  top: 0;
  right: -11px;
}
#lb .lb-close::after {
  content: '';
  display: block;
  height: 20px;
  width: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2219%22%20height%3D%2218%22%20viewBox%3D%220%200%2019%2018%22%20fill%3D%22none%22%3E%3Cline%20x1%3D%2217.8086%22%20y1%3D%220.353553%22%20x2%3D%221.06135%22%20y2%3D%2217.1008%22%20stroke%3D%22white%22%2F%3E%3Cline%20y1%3D%22-0.5%22%20x2%3D%2223.6842%22%20y2%3D%22-0.5%22%20transform%3D%22matrix(0.707107%200.707107%200.707107%20-0.707107%200.707031%200)%22%20stroke%3D%22white%22%2F%3E%3C%2Fsvg%3E');
  background-size: 16px;
}

/* fade-in image */
#lb .lb-slide-img { opacity: 0; transition: opacity .22s ease; }
#lb .lb-slide-img.is-loaded { opacity: 1; }



@media (min-width: 992px) {
  #lb .lb-prev,
  #lb .lb-next {
    top: 50%;
    transform: translateY(-50%);
  }
  #lb .lb-prev { left: -70px; }
  #lb .lb-next { right: -70px; }
  #lb .lb-prev::after,
  #lb .lb-next::before {
    background-size: 14px;
  }
  #lb .lb-close::after {
    background-size: 19px;
  }
}


/* ==========================================================================
   Responsive iframe
========================================================================== */
.iframeBox {
  width: 100%;
  height: 35rem;
  position: relative;
}
.iframeBox iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: bottom;
}
@media (min-width: 992px) {
  .iframeBox {
    height: 46rem;
  }
}


.youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  vertical-align: bottom;
}


/* ==========================================================================
   List
========================================================================== */
ul.row,
ol.row, .lists {
  list-style-type: none;
}
.lists li {
  border-bottom: 1px solid var(--border1);
}
.lists li:first-of-type .list {
  border-top: 1px solid var(--border1);
}
.list {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  line-height: 1.5rem;
  letter-spacing: 0;
  padding: 1.2rem 2.5em 1.2rem .75em;
  position: relative;
}
.list .entry__meta {
  display: flex;
  align-items: baseline;
  font-size: .769em;
}
.list .entry__meta time {
  display: block;
  min-width: 6.75em;
}
.list .ttl {
  flex-basis: 100%;
  position: relative;
}

.list::before,
.list::after {
  content: '';
  display: block;
  width: .5em;
  height: .5em;
  border-radius: 100%;
  background: var(--color1);
  position: absolute;
  top: 50%;
  right: .75em;
  margin-top: -.25em;
}
.list::after {
  z-index: -1;
}
a.list:hover::after {
  animation: pulsateArrow 1s linear infinite;
}
@media (min-width: 768px) {
  .list {
    flex-direction: row;
    font-size: 1em;
    line-height: 1.8rem;
    padding: 2rem 2.5em 2rem .75em;
  }
  .list .entry__meta {
    flex: 7rem;
  }
}
@media (min-width: 992px) {
  .list .entry__meta {
    font-size: .923em;
  }
}




.dl-list dt {
  margin-bottom: .75rem;
}
.dl-list dd + dt {
  border-top: 1px solid var(--border1);
  padding-top: 2.75rem;
  margin-top: 2.75rem;
}
.dl-list dd + dd {
  margin-top: 1rem;
}

/* ==========================================================================
   Card
========================================================================== */
.cards {
  list-style-type: none;
}
.cards.row {
  row-gap: 3rem;
}
.card {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  position: relative;
}
.card.row {
  flex-direction: row;
}
.card .card-img {
  position: relative;
}
.card .card-img picture {
  width: 100%;
  overflow: hidden;
}
.card .card-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .6s cubic-bezier(.39, .575, .565, 1);
}
a.card:hover .card-img img {
  transform: scale(1.1);
}

.card .d-flex {
  flex-direction: row;
  justify-content: space-between;
}
.card .headline.d-flex {
  align-items: center;
}
.card .ttl {
  font-weight: 500;
  line-height: 1.75;
}
.card .headline .label + .ttl {
  margin-top: 0;
}
.card p {
  font-size: .923em;
  margin-top: 1em;
  margin-bottom: 1em;
}
.card p:first-child {
  margin-top: 0;
}
.card p:last-child {
  margin-bottom: 0;
}

.card-body[data-label] {
  padding-left: 2.75rem;
  position: relative;
}
.card-body[data-label]::before {
  content: attr(data-label);
  display: block;
  font-family: var(--font1);
  font-size: .923rem;
  writing-mode: vertical-rl;
  line-height: .9;
  padding-top: .2em;
  color: var(--color1);
  position: absolute;
  top: 0;
  left: 0;
}



.posts .card .card-img picture {
  aspect-ratio: 19 / 11;
}
.posts .card .card-img.no-image {
  aspect-ratio: 19 / 11;
  background: var(--l-gray3) url(../img/logo_mark.svg) no-repeat center center / 4rem;
}


/* ==========================================================================
   Features
========================================================================== */
.features ._item {
  row-gap: 1.25rem;
  margin-bottom: 3rem;
}
.features ._item picture {
  aspect-ratio: 7 / 5;
}
.features ._item picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 991px) {
  .features ._item p {
    font-size: .923em;
  }
}
@media (min-width: 768px) {
  .features ._item {
    margin-bottom: 2px;
  }
  .features.counter ._item ._count::before {
    margin-bottom: 1.25rem;
  }
}
@media (min-width: 992px) {
  .features ._item picture {
    aspect-ratio: 68 / 35;
  }
}


/* ==========================================================================
   counter (汎用)
========================================================================== */
.counter {
  counter-reset: numbers;
}
.counter ._item {
  counter-increment: numbers;
  position: relative;
}
.counter ._item ._count::before {
  content: counter(numbers, decimal-leading-zero);
  display: block;
  font-family: var(--font1);
  font-size: .923rem;
  letter-spacing: .1em;
  margin-bottom: .5rem;
}
.counter ._item.card ._count::before {
  font-size: 1.077rem;
}


/* ==========================================================================
   Tab
========================================================================== */
.tab-links,
.tabs {
  display: flex;
  flex-wrap: wrap;
  row-gap: 6px;
  margin-right: -3px;
  margin-left: -3px;
  list-style-type: none;
}
.tab {
  padding: 0 3px;
}
.tab > * {
  display: block;
  text-align: center;
  line-height: 1.5;
  padding: .75em 0;
  border-radius: .375em;
  border: 1px solid var(--color1);
  background: transparent;
  color: var(--color1);
  cursor: pointer;
  transition: background .2s;
}
.tab > *:hover,
.tab.active > * {
  background: var(--color1);
  color: var(--white);
}

@media (min-width: 992px) {
  .tab-links,
  .tabs {
    margin-right: -5px;
    margin-left: -5px;
    row-gap: 10px;
  }
  .tab {
    padding: 0 5px;
  }
}

/* ==========================================================================
   Accordion
========================================================================== */
.acc {
  border-bottom: 1px solid var(--border1);
  padding: 2.5rem 2.5rem 2.5rem 3rem;
}
.acc:first-child {
  border-top: 1px solid var(--border1);
}
.acc_btn {
  display: block;
  white-space: nowrap;
  position: relative;
  cursor: pointer;
}
.acc_btn::before,
.acc_btn::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1px;
  background: var(--d-gray);
  position: absolute;
  top: 50%;
  right: -2.5rem;
  transition: opacity .2s;
  transform: translateY(-50%);
}
.acc_btn::after {
  transform: translateY(-50%) rotate(90deg);
}
.acc.on .acc_btn::after {
  opacity: 0;
}

.acc_body {
  padding: 1.5rem 0 0;
}
@media (max-width: 991px) {
  .acc_body {
    font-size: .923rem;
  }
}



.acc_btn .faq__q {
  display: flex;
  line-height: 1.5;
  white-space: normal;
  position: relative;
}
.acc_btn .faq__q .label {
  font-family: var(--font2);
  display: block;
  font-size: 1.8em;
  line-height: 1;
  position: absolute;
  left: -3rem;
}


/* ==========================================================================
   Color
========================================================================== */
.bg-white {
  background-color: var(--white);
}
.bg-l-gray {
  background-color: var(--l-gray);
  overflow: hidden;
}
.bg-l-gray2 {
  background-color: var(--l-gray2);
}
.bg-l-gray3 {
  background-color: var(--l-gray3);
}
.bg-color1 {
  background-color: var(--color1);
  color: var(--white);
  padding: 1px 0;
  position: relative;
}
.bg-color1 .headline,
.bg-color1 .headline * {
  color: var(--white);
}
.color1 {
  color: var(--color1);
}
.white {
  color: var(--white);
}
.gray {
  color: var(--gray);
}
.d-gray {
  color: var(--d-gray);
}
.black {
  color: var(--black);
}
.red {
  color: var(--red);
}



.grayscale {
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

section[class*="bg-"] {
  overflow: hidden;
}


/* ==========================================================================
   WP Post
========================================================================== */
.container-entry {
  max-width: 800px;
  margin-right: auto;
  margin-left: auto;
}

.article__header {
  border-bottom: 1px solid var(--border1);
  padding-bottom: 2.5rem;
  margin-bottom: 4rem;
}
.article__header .entry__meta {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
}
.article__header .ttl {
  margin: 0 !important;
}
@media (min-width: 992px) {
  .article__header {
    padding-bottom: 3rem;
    margin-bottom: 5rem;
  }
}




/* entry__content */
.entry__content {
  letter-spacing: 0;
  line-height: 2;
  -webkit-font-smoothing: antialiased;
}

.entry__content a:not(.btn) {
  color: var(--color1);
  text-decoration: underline;
}

.entry__content blockquote {
  margin: 0 0 1.5em 0.75em;
  padding: 0 0 0 0.75em;
  border-left: 3px solid #8da0b6;
  font-style: italic;
  color: #abb1b5;
}

.entry__content dl {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}
.entry__content dt {
  font-feature-settings: "palt";
  background-color: #1a1a1a;
  font-weight: 700;
  font-size: 1.125em;
  margin-bottom: 0.75em;
  padding: 0.5em 0.75em;
}
.entry__content dd {
  margin-left: 0;
  margin-bottom: 1em;
  padding: 0 1em;
}
.entry__content dd + dt {
  margin-top: 1em;
}

.entry__content figure {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}
.entry__content figure figcaption {
  line-height: 1.5;
}
.entry__content img {
  display: block;
  max-width: 100%;
  height: auto;
}
.entry__content pre {
  background: #323944;
  color: #f8f9fa;
  font-size: 0.9em;
  padding: 15px;
  border-radius: 3px;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.entry__content .video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.entry__content .video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.entry__content table {
  width: 100%;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
  line-height: 1.5;
}
.entry__content table th {
  background-color: var(--l-gray2);
  border: 1px solid var(--border1);
  padding: 0.5em;
  font-weight: 400;
}
.entry__content table tbody th {
  text-align: left;
}
.entry__content table td {
  border: 1px solid var(--border1);
  padding: 0.5em;
}

.entry__content table.outline_S {
  width: auto;
  margin: 0;
}
.entry__content table.outline_S th {
  border: 0;
  padding: 0.25em 0;
}
.entry__content table.outline_S td {
  border: 0;
  padding: 0.25em 0;
}
.entry__content table.outline_S * + td {
  padding-left: 1.5em;
}

.entry__content ul, .entry__content ol {
  margin-left: 0;
  padding-left: 0;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
  counter-reset: cnt;
}
.entry__content ol ol, .entry__content ul ul, .entry__content ol ul, .entry__content ul ol {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.entry__content ol li, .entry__content ul li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

.entry__content ol li {
  list-style-type: none;
  counter-increment: cnt;
  position: relative;
}
.entry__content ol li::before {
  font-family: sans-serif;
  content: "( " counter(cnt) " )";
  margin-right: 0.5em;
}
.entry__content ol li ol li::before {
  font-family: sans-serif;
  display: inline-block;
  width: 2em;
  text-align: center;
  margin-right: 0;
  content: counter(cnt);
  transform: scale(0.75);
}
.entry__content ol li ol li::after {
  content: "";
  display: block;
  width: 2em;
  height: 2em;
  border: 1px solid currentColor;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(0.65);
}
.entry__content ol li ol li ol {
  margin-left: 2em;
}
.entry__content ol li ol li ol li, .entry__content .list-katakana-iroha li {
  list-style-type: katakana-iroha;
  padding-left: 1em;
  text-indent: -1em;
}
.entry__content ol li ol li ol li::before, .entry__content .list-katakana-iroha li::before, .entry__content ol li ol li ol li::after, .entry__content .list-katakana-iroha li::after {
  display: none !important;
}

.entry__content p {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.entry__content h1, .entry__content h2, .entry__content h3, .entry__content h4, .entry__content h5, .entry__content h6 {
  color: var(--color1);
  line-height: 1.8;
  margin: 1.25em 0;
}

.entry__content h1 { font-size: 1.231em; }
.entry__content h2 { font-size: 1.231em; }
.entry__content h3 { font-size: 1.154em; }
.entry__content h4 { font-size: 1.154em; }
.entry__content h5 { font-size: 1.077em; }
.entry__content h6 { font-size: 1.077em; }

.entry__content > .section > h2:first-child {
  margin-top: 0;
}

/* tags */
.tags {
  margin: 0.75em 0 0;
}
.tags span {
  display: inline-block;
  font-size: 0.923rem;
  margin-right: 0.75em;
}
.tags a {
  text-decoration: none;
}

/* not found */
#post-not-found {
  text-align: center;
}

.entry__content .alignfull, .entry__content .alignwide {
  width: 100vw;
  margin-left: calc(((100vw - 100%) / 2) * -1);
}
@media (min-width: 576px) {
  .entry__content .alignwide {
    width: calc(100% + (100vw - 100%) / 2);
    margin-left: calc(((100vw - 100%) / 4) * -1);
  }
}
.entry__content .alignfull > img, .entry__content .alignwide > img {
  display: block;
  margin-right: auto;
  margin-left: auto;
  min-width: 100%;
}
@media (min-width: 576px) {
  .entry__content .excerpt {
    margin-right: -1.25em;
    margin-left: -1.25em;
  }
}

.entry__content small svg {
  max-width: 16px;
  top: 3px;
  position: relative;
  fill: var(--color1);
}

/* ==========================================================================
   Single Page
========================================================================== */

/* ==========================================================================
   Pagination - Archive
========================================================================== */
.pagination ul {
  display: flex;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  padding: 0;
}
.pagination li {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.pagination li .page-numbers {
  margin: 0 0.25em;
  padding: 0;
  width: 2rem;
  line-height: 2.5rem;
  font-size: 1.154rem;
  font-weight: normal;
  text-decoration: none;
  color: var(--d-gray);
  border-bottom: 1px solid transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
}
.pagination li .page-numbers:hover,
.pagination li .page-numbers:focus {
  border-color: currentColor;
}
.pagination li .page-numbers.current {
  color: var(--color1);
  border-color: currentColor;
  cursor: default;
}

.pagination li .page-numbers.next,
.pagination li .page-numbers.prev {
  color: var(--black);
  border-color: transparent;
  width: auto;
  font-size: 1rem;
  margin: 0 0 0 1em;
}
.pagination li .page-numbers.prev {
  margin: 0 1em 0 0;
}
.pagination li .page-numbers.next::after,
.pagination li .page-numbers.prev::before {
  content: '';
  display: block;
  width: 5px;
  height: 11px;
  background-repeat: no-repeat;
  background-position: center center;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%225%22%20height%3D%2211%22%20viewBox%3D%220%200%205%2011%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M0%2010.101L0.743627%2011L4.79398%206.10046C4.85927%206.02196%204.91108%205.9286%204.94644%205.82576C4.9818%205.72293%205%205.61265%205%205.50127C5%205.38989%204.9818%205.27961%204.94644%205.17678C4.91108%205.07395%204.85927%204.98059%204.79398%204.90208L0.743627%200L0.000700951%200.898998L3.80224%205.5L0%2010.101Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E');
  background-size: 5px;
  transform: translateY(8%);
}
.pagination li .page-numbers.prev::before {
  transform: translateY(8%) scale(-1,1);
}

/* ==========================================================================
   Hero
========================================================================== */
.hero {
  position: relative;
}
.hero .caption,
.hero + .parallax .caption {
  padding-top: .25em;
  font-family: var(--font1);
  color: var(--white);
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  z-index: 5;
}
.hero + .container .imgBox,
.hero + .parallax-wrap .container .imgBox {
  margin-top: -2.25rem;
}
.hero + .parallax .container .imgBox {
  margin-top: -4.5rem;
}
.hero + .parallax .imgBox:has(.caption) {
  margin-top: -4.5rem;
}
.hero + .parallax .caption {
  top: 0;
  padding-top: 0;
  transform: translate(-50%, calc((4.5rem + 50%) * -1));
}


.parallax {
  width: 100%;
  position: sticky;
  top: var(--header-height);
}

@media (max-width: 992px) {
  .hero .caption._right_bottom._sp_bottom {
    top: auto;
    bottom: 0;
    transform: translate(-50%, -1.175rem);
  }
}
@media (min-width: 992px) {
  .hero .caption {
    text-align: left;
  }
  .hero .caption._right_bottom {
    top: auto;
    left: calc( var(--container-padding) + ((100% - var(--container-padding)*2)*0.41666667) );
    bottom: 0;
    transform: translate(0, .24em);
  }
  .hero + .container .imgBox,
  .hero + .parallax-wrap .container .imgBox,
  .hero + .parallax .imgBox {
    margin-top: -11.5rem!important;
  }
  .hero + .parallax .txtBox {
    padding-top: 3rem;
  }
  .hero + .parallax .page-label {
    padding-top: 7.25rem;
  }
  .hero + .parallax:has(.page-label) .txtBox {
    padding-top: 6rem;
  }
  .hero + .parallax .imgBox:has(.caption) {
    position: static;
  }
  .hero + .parallax .caption._left_bottom {
    left: var(--container-padding);
    transform: translate(0, calc((100% - .24em) * -1));
  }
}


.window {
  margin-bottom: -20rem;
  position: relative;
  z-index: 2;
}
.window + * {
  padding-top: 20rem;
}
.window .caption {
  font-family: var(--font1);
  color: var(--gray);
  letter-spacing: .1em;
  white-space: nowrap;
  text-align: center;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%,-10%);
  z-index: 3;
}
.window img {
  border-radius: 30rem 30rem 0 0;
}
.window picture + .caption {
  top: 100%;
  transform: translate(-50%,-50%);
}
@media (min-width: 992px) {
  .window {
    margin-bottom: -30rem;
  }
  .window + * {
    padding-top: 30rem;
  }
}



.bg-color1 .bg {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: .1;
}
.bg-color1 .bg video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ==========================================================================
   Banner
========================================================================== */
.banner {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 30em;
  text-align: center;
  color: var(--white);
  position: relative;
  overflow: hidden;
  z-index: 2;
}
.banner .banner-img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.banner .banner-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(0.39, 0.575, 0.565, 1);
}
.banner .banner-img::before {
  content: "";
  display: block;
  background: var(--black);
  mix-blend-mode: multiply;
  opacity: .5;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.banner:has(.btn:hover) .banner-img img,
a.banner:hover .banner-img img {
  transform: scale(1.15);
}
.banner .h5.en_ttl {
  display: inline-block;
  border-bottom: 1px solid currentColor;
  letter-spacing: .2em;
}
.banner .ttl {
  margin: 1em 0 1.5em;
  letter-spacing: .3em;
}
.banner .more {
  font-family: var(--font2);
}
@media (min-width: 576px) {
  .banner {
    height: 24em;
  }
}
@media (min-width: 992px) {
  .banner {
    height: auto;
    aspect-ratio: 70 / 23;
  }
  .row .banner {
    aspect-ratio: 7 / 4;
  }
}

/****************************************************************************
   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;
  }
}

li {
  list-style: none;
}

.single small {
  border: 1px dotted;
  display: block;
  padding: 0 0.4rem;
}

.ilink {
  text-decoration: underline;
  display: inline;
  margin: 0 0.2rem;
}
.ilink:hover {
  color: #d00;
}
