@charset "UTF-8";

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

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

.pic_s {
  aspect-ratio: 1/1;
}
.post-thumbnail {
  aspect-ratio: 1/1;
}
@media(min-width: 576px) {
  .post-thumbnail {
    aspect-ratio: 2/1;
  }
}

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

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

h1, .h1 { font-size: 2em; line-height: 1.75; }
h2, .h2 { font-size: 1.692em; line-height: 1.8; }
h3, .h3 { font-size: 1.538em; }
h4, .h4 { font-size: 1.385em; }
h5, .h5 { font-size: 1.231em; }
h6, .h6 { font-size: 1.077em; }

.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,
.en_ttl,
[data-en]::before {
  font-family: var(--font1);
  font-weight: 400;
}

[data-en]::before {
  line-height: 1;
}

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

p {
  font-family: var(--gothic);
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
p:first-child {
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}

.copy {
  letter-spacing: .01em;
}
.read p {
  line-height: 2.3;
}


/* ==========================================================================
   Button
========================================================================== */
.more,
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-family: var(--mincho);
  font-size: 1em;
  letter-spacing: .1em;
  line-height: 1.5;
  font-weight: 500;
  padding: 1em 1.5em;
  width: 27em;
  max-width: 100%;
  background: var(--color1) var(--arrow-path-w-dot) no-repeat right 1.5em top 50% / 1.25em;
  color: var(--white);
  border: 1px solid transparent;
  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(--color1-hover);
  background-image: var(--arrow-path-w);
}
@media (min-width: 576px) {
  .btn { width: 21.5em; }
}


.more {
  justify-content: flex-start;
  text-align: left;
  padding: 1em 0;
  width: 14.5em;
  background: var(--arrow-path-2-dot) no-repeat right 0 top 50% / 1.25em;
  border-bottom-color: var(--border1);
  color: var(--black);
}
a:hover .more,
.more:hover {
  background-image: var(--arrow-path-2);
}
.more::before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(var(--black), var(--black));
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  position: absolute;
  top: 100%;
  left: 0;
  transition: background-size 0.3s;
}
a:hover .more::before,
.more:hover::before {
  background-position: bottom left;
  background-size: 100% 1px;
}


.btn[class*="_color"] {
  text-align: center;
  padding: 1em 1.5em;
  background: var(--arrow-path-w-dot) no-repeat right 1.5em top 50% / 1.25em;
}
a:hover .btn[class*="_color"],
.btn[class*="_color"]:hover {
  background-image: var(--arrow-path-w);
}

.btn._color1 {
  background-color: var(--color1);
  color: var(--white);
}
a:hover .btn._color1,
.btn._color1:hover {
  background-color: var(--color1-hover);
}
.btn._color2 {
  background-color: var(--color2);
  color: var(--white);
}
a:hover .btn._color2,
.btn._color2:hover {
  background-color: var(--color2-hover);
}

.btn.closed {
  background: var(--l-gray)!important;
  color: var(--gray)!important;
  cursor: default;
  font-family: var(--gothic);
}


.btn._clear {
  background: none;
  color: var(--color1);
  border-color: currentColor;
}

.btn._toggle {
  background-image: none;
}
.btn._toggle:not(.is-active) {
  background: var(--l-gray);
  color: var(--black);
}
.btn._toggle:not(.is-active):hover {
  background: var(--color1);
  color: var(--white);
}
.btn._toggle.is-active {
  pointer-events: none;
}
.btns .btn._toggle {
  font-family: var(--gothic);
  font-weight: 400;
}

.btn._arrowDown,
.btn._arrowDown:hover {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2017%2017%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22transform%3A%20rotate(90deg)%3B%20transform-origin%3A%2050%25%2050%25%3B%22%3E%3Cpath%20d%3D%22m8.5%200c-4.7%200-8.5%203.8-8.5%208.5s3.8%208.5%208.5%208.5%208.5-3.8%208.5-8.5-3.8-8.5-8.5-8.5zm-3.6%2013.4s2.6-2.5%202.6-4.7-2.6-4.7-2.6-4.7l7.7%204.7z%22%20fill%3D%22%23FFF%22%2F%3E%3C%2Fsvg%3E');
}


.btns {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.btns .btn {
  width: calc((100% - .75rem)/2);
  padding: 1em;
}
@media (max-width: 991px) {
  .btns .btn.all {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .btns .btn {
    width: calc((100% - .75rem*2)/3);
  }
}
@media (min-width: 992px) {
  .btns .btn {
    width: calc((100% - .75rem*4)/5);
  }
}

.buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem 1.5rem;
}
.buttons .btn {
  width: 100%;
}
@media (min-width: 576px) {
  .buttons {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
  }
  .buttons > div {
    flex: 0 0 calc((100% - 1.5rem*1)/2);
  }
}
@media (min-width: 992px) {
  .buttons > div {
    flex: 0 0 calc((100% - 1.5rem*3)/4);
  }
}

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


.icon-link {
  display: inline-flex;
  align-items: center;
  gap: .75em;
  color: var(--color1);
  font-family: var(--font1);
  letter-spacing: .1em;
}
.icon-link > span {
  display: inline-block;
  border-bottom: 1px solid currentColor;
}


.tel {
  display: inline-flex;
  align-items: center;
}
.tel i {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 1.375em;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background: currentColor;
  margin-right: .5em;
}
.tel i svg {
  color: var(--white);
  width: .7em;
  height: .7em;
}
@media (max-width: 991px) {
  a.tel {
    padding: .25em 0;
    width: 27rem;
    max-width: 100%;
    border: 1px solid currentColor;
    transition: .2s ease-in-out;
    transition-property: background,border,color;
  }
  a.tel span {
    font-size: 1.615rem;
  }
}


/* ==========================================================================
   Page header
========================================================================== */
.headline {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.headline .ttl {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.headline .ttl:not([data-en]),
.headline .ttl span {
  font-size: 1.077rem;
  letter-spacing: .1em;
}
.headline .en_ttl,
.headline .ttl[data-en]::before {
  content: attr(data-en);
  color: var(--color1);
  font-size: 2rem;
  line-height: 1.2;
  letter-spacing: 0;
  font-style: normal;
  display: block;
}
.headline p {
  margin: 1.5rem 0 1rem;
}
.headline .ttl:not([data-en]) {
  font-size: 1em;
}


.headline:has(.svg-ttl) {
  align-items: flex-start;
}
.headline .svg-ttl {
  margin-bottom: calc(5.901rem - 4.353rem);
}
.svg-ttl {
  width: auto;
  height: 4.353rem;
}
.svg-ttl._descender {
  width: auto;
  height: 5.901rem;
  margin-bottom: 0!important;
}
@media (max-width: 768px) {
  .svg-ttl {
    height: 3.81rem;
    margin-bottom: calc(4.426rem - 3.81rem);
  }
  .svg-ttl._descender {
    height: 4.426rem;
  }
}



.page__header {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}
.page__header .container {
  display: flex;
  flex-direction: column;
  row-gap: .75rem;
}
.page__header .headline {
  text-align: center;
  align-items: center;
  position: relative;
  z-index: 5;
  row-gap: 0;
}
.page__header.text-center .headline {
  left: 50%;
  transform: translate(-50%,-50%);
}


.page__header:has(picture) {
  margin-top: 0;
}
.page__header:has(picture) .headline {
  align-items: flex-start;
  max-width: 90vw;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.page__header:has(picture) .headline > * {
  color: var(--white);
}
.page__header:has(picture) .headline .ttl {
  padding-left: 2.75em;
}
.page__header:has(picture) .headline .ttl::before {
  content: '';
  display: block;
  width: 1.75em;
  height: 1px;
  margin-right: 1.25em;
  background: currentColor;
  position: absolute;
  top: 50%;
  left: 0;
}
.page__header picture::before {
  content: '';
  display: block;
  background: #666;
  background: linear-gradient(90deg, #666 0%, transparent 100%);
  opacity: .25;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

/* ==========================================================================
   Background video
========================================================================== */
.bg-video-container {
  position: relative;
}
.bg-video-container .bg-video {
  position: sticky;
  top: var(--header-height);
  left: 0;
  overflow: hidden;
  width: 100%;
  height: 100vh;
  margin-bottom: -100vh;
}
.bg-video-container .bg-video video,
.bg-video-container .bg-video img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bg-video-container > * {
  position: relative;
  z-index: 2;
}
.bg-video-container > .bg-l-gray2 {
  background: rgba(232, 228, 216, 0.96);
  padding-top: 1px;
  padding-bottom: 1px;
}
.bg-video-container > .bg-white {
  background: rgba(255, 255, 255, 0.96);
  padding-top: 1px;
  padding-bottom: 1px;
}

.bg-video-container ~ * {
  position: relative;
  z-index: 2;
}

/* ==========================================================================
   MV
========================================================================== */
.mv {
  background-color: var(--gray);
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding: calc(4.5rem + 1vh) 6vw;
  position: relative;
  z-index: 2;
}
.mv.overlay::before {
  content: '';
  display: block;
  background-color: rgba(0,0,0,0.35);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mv .mv__inner {
  color: #FFF;
  letter-spacing: .1em;
  position: relative;
}
.mv._full {
  height: 100svh;
}
.mv .slider-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.mv .slider-wrapper * {
  width: 100%;
  height: 100%;
}
@media (min-width: 992px) {
  .mv {
    padding: max(4.25vw, 6vh) 4.25vw;
  }
}

.c-scroll {
  display: block;
  width: 1px;
  height: 6vh;
  position: absolute;
  bottom: 0;
  right: 6%;
  z-index: 100;
  overflow: hidden;
}
.c-scroll::before {
  content: '';
  display: block;
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: currentColor;
  opacity: .5;
}
.c-scroll::after {
  content: '';
  position: relative;
  display: block;
  width: 1px;
  height: 30%;
  vertical-align: middle;
  margin: 0 auto;
  background: currentColor;
  animation: scroll-border 2s ease-in-out infinite;
  will-change: animation;
}
@keyframes scroll-border {
    0% { bottom: 100%; }
  100% { bottom: -100%; }
}
@media (min-width: 992px) {
  .c-scroll {
    left: 50%;
    transform: translateX(-50%);
  }
}


/* ==========================================================================
   hero
========================================================================== */
.hero  {
  position: relative;
}
.hero + * {
  position: relative;
  z-index: 2;
}
.hero .caption {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  position: absolute;
  bottom: 3rem;
  transform: translateY(2%);
}
@media (max-width: 767px) {
  .hero > [class*="over"] {
    margin-bottom: -30%;
  }
}
@media (max-width: 575px) {
  .hero > [class*="over"] {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-bottom: -3rem;
  }
}
@media (min-width: 576px) {
  .hero .caption {
    bottom: 0;
  }
}
@media (min-width: 768px) {
  .hero-sub {
    height: 100%;
    position: relative;
  }
  .hero-sub picture {
    height: 100%;
    min-height: calc(100% + var(--section-gy));
    position: absolute;
    bottom: 0;
  }
}
@media (min-width: 1200px) {
  .hero-sub picture {
    height: auto;
  }
}

/* ==========================================================================
   Responsive iframe
========================================================================== */
.iframeBox {
  width: 100%;
  aspect-ratio: 16/9;
}
.iframeBox iframe {
  width: 100%;
  height: 100%;
}
.iframeBox._map {
  aspect-ratio: 5/4;
}

/* ==========================================================================
   List
========================================================================== */
ul.row,
ol.row,
.lists {
  list-style-type: none;
}
.lists .list {
  line-height: 1.5;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--border1);
}
.lists li:first-of-type .list {
  border-top: 1px solid var(--border1);
}
.lists .list {
  display: flex;
  gap: .75rem;
  padding: 1.5rem 0;
  position: relative;
}
.lists .list .list-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  letter-spacing: .05em;
}
.lists .list .list-meta time {
  min-width: 7em;
  font-size: .917rem;
}
.lists .list .ttl {
  line-height: 1.5;
}
.lists a.list {
  padding-right: 2.5rem;
  background: var(--arrow-path-2-dot) no-repeat right 1.5em top 50% / 1.25em;
}
.lists a.list:hover {
  background-image: var(--arrow-path-2);
}
.lists a.list::before {
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(var(--black), var(--black));
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  position: absolute;
  top: 100%;
  left: 0;
  transition: background-size 0.3s;
}
.lists a.list:hover::before {
  background-position: bottom left;
  background-size: 100% 1px;
}
.list p {
  margin: 0;
  line-height: 1.75;
}
@media (max-width: 991px) {
  .list {
    flex-wrap: wrap;
  }
}
@media (min-width: 992px) {
  .lists .list {
    min-height: 6.75rem;
    flex-direction: row;
    align-items: center;
    gap: 2rem;
  }
  .list p {
    line-height: 2;
  }
}

/* ==========================================================================
   Card
========================================================================== */
.cards {
  list-style-type: none;
}
.cards.row {
  row-gap: 4rem;
}
.card {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
  position: relative;
}
.card > a {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
  position: relative;
}
.card.row {
  flex-direction: row;
}
.card .card-img {
  aspect-ratio: 19/11;
  margin-bottom: .5em;
  position: relative;
  overflow: hidden;
}
.col-lg-4 .card .card-img {
  aspect-ratio: 3/2;
}
.card .card-img picture {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.card .card-img img {
  transition: .6s cubic-bezier(.39, .575, .565, 1);
}
a.card:hover .card-img img,
.card > a:hover .card-img img {
  transform: scale(1.1);
}

.card-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.card-meta {
  display: flex;
  gap: .5em 2em;
  line-height: 1.5;
}
.card .ttl {
  font-size: 1.154em;
  line-height: 1.75;
}
.card .headline .ttl[data-en] {
  width: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.card .headline .ttl[data-en]::before {
  font-size: 1.429em;
}
.card p {
  font-size: .923em;
  line-height: 1.75;
  margin: 0;
}
.card .box {
  padding: .75em 1em;
  line-height: 1.25;
}
.card .box s {
  color: var(--gray);
}
.card .dl-list dt {
  color: var(--color1);
}
.card .dl-list dd {
  margin-bottom: .375em;
}


/* ==========================================================================
   Feature
========================================================================== */
.features {
  list-style-type: none;
  counter-reset: features;
}
.features li {
  margin-bottom: 1em;
  background: var(--l-gray2);
  counter-increment: features;
}
.bg-l-gray2 .features li {
  background: var(--white);
}
.features li .txtBox {
  padding: 2.25rem;
  letter-spacing: .1em;
  position: relative;
}
.features li .txtBox::before {
  content: counter(features, decimal-leading-zero);
  position: absolute;
  top: 0;
  left: 2.25rem;
}
@media (min-width: 768px) {
  .features li picture {
    height: 100%;
  }
  .features li .txtBox {
    padding: 5rem 2.25rem;
  }
  .features li .txtBox::before {
    top: 2.25rem;
  }
}
@media (min-width: 1200px) {
  .features li .txtBox {
    padding: 7.5%;
  }
}

/* ==========================================================================
   dl
========================================================================== */
dl.dl-list {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  font-family: var(--gothic);
  line-height: 1.5;
}
dl.dl-list dt {
  font-weight: 500;
  letter-spacing: .1em;
  flex: 0 0 6.25rem;
}
dl.dl-list dd {
  flex: 0 0 calc(100% - 6.25rem);
  letter-spacing: .05em;
  margin-bottom: 1em;
}
dl.dl-list dd:last-child {
  margin-bottom: 0;
}
dl.dl-list dd[class^="h"] {
  font-family: var(--mincho);
}

.box dl.dl-list dd[class^="h"] {
  letter-spacing: .08em;
}

dl.dl-list._dt-small dt {
  flex: 0 0 3.75rem;
}
dl.dl-list._dt-small dd {
  flex: 0 0 calc(100% - 3.75rem);
}

dl.dl-list._dt-large dt {
  flex: 0 0 7rem;
}
dl.dl-list._dt-large dd {
  flex: 0 0 calc(100% - 7rem);
}


dl.outline {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.5em;
  font-family: var(--gothic);
}
dl.outline dt {
  font-weight: 500;
  text-align: left;
  letter-spacing: .1em;
  padding: 3em 0;
  flex: 0 0 max(20%, 7em);
  border-bottom: 1px solid var(--border1);
}
dl.outline dd {
  padding: 3em 0;
  flex: 0 0 calc(100% - max(20%, 7em) - 1.5em);
  border-bottom: 1px solid var(--border1);
}
dl.outline dt:first-of-type,
dl.outline dd:first-of-type {
  border-top: 1px solid var(--border1);
}
@media(max-width: 767px){
  dl.outline {
    gap: 0;
  }
  dl.outline dt {
    padding: 2em 0;
  }
  dl.outline dd {
    padding: 2em 0;
    flex: 0 0 calc(100% - max(20%, 7em));
  }
}

/* ==========================================================================
   Table
========================================================================== */
table.outline {
  width: 100%;
  table-layout: fixed;
  border-top: 1px solid var(--border1);
  font-family: var(--gothic);
}
table.outline th {
  font-weight: 500;
  text-align: left;
  letter-spacing: .1em;
  padding: 1.5em;
  background: var(--ll-gray);
  width: 20%;
  border-bottom: 1px solid var(--border1);
}
table.outline td {
  padding: 1.5em;
  border-bottom: 1px solid var(--border1);
}
@media(max-width: 767px){
  table.outline tr,
  table.outline th,
  table.outline td {
    display: block;
    width: 100%;
  }
  table.outline th {
    padding: .75em 1.5em;
    border-bottom: 0;
  }
  table.outline td {
    padding: 1em 1.5em;
  }
}



/* ==========================================================================
   Box
========================================================================== */
.box {
  background: var(--l-gray2);
  padding: 1.5rem;
  font-family: var(--gothic);
}
.box.mincho {
  font-family: var(--mincho);
}
.bg-l-gray .box,
.bg-l-gray2 .box {
  background: var(--white);
}
.box .ttl {
  color: var(--color2);
  font-family: var(--gothic);
  font-size: 1.077em;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: .01em;
}
.box .desc {
  font-weight: 500;
}
.box dl {
  display: flex;
}
.box dl dt {
  font-weight: 500;
  flex: 0 0 6em;
}
.box dl dt dd {
  flex: 0 0 calc(100% - 6em);
}
.box ul {
  margin: 1em 0 0 1.25em;
}
.box .box-row {
  display: flex;
  flex-direction: column;
  gap: 1em 2em;
}
.box .box-row .imgBox {
  width: 17rem;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .box {
    padding: 2rem max(3rem,3%);
  }
  .box .box-row {
    flex-direction: row;
  }
  .box .box-row .imgBox {
    flex: 0 0 17rem;
  }
  .box .box-row .txtBox {
    flex-basis: 100%;
    align-self: center;
  }
}

/* ==========================================================================
   ContentsBox
========================================================================== */
.contentBox-group {
  border: 1px solid var(--border1);
  margin-bottom: calc(var(--section-gy)*0.5);
  position: relative;
}
.contentBox-group:has(.no-content) {
  display: none;
}
.contentBox {
  border: 1px solid var(--border1);
  margin-bottom: 1rem;
  position: relative;
}
.contentBox-group .contentBox {
  border: 0;
  margin-bottom: 0;
}
.contentBox > .date {
  font-family: var(--gothic);
  font-size: 1.077rem;
  line-height: 1.5;
  display: flex;
  align-items: baseline;
  gap: .5em;
  background: var(--l-gray);
  padding: 1rem 1.5rem;
  position: relative;
}
.contentBox .date.__sat {
  color: var(--blue);
}
.contentBox .date.__sun,
.contentBox .date.holiday {
  color: var(--red);
}
.contentBox .date__d {
  font-size: 1.286em;
}
.contentBox .date__num {
  color: var(--gray);
  position: absolute;
  top: 50%;
  right: 1.5em;
  transform: translateY(-50%);
}
.contentBox .detail {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1.75em;
}
.contentBox .detail:has(.ttlBox) {
  padding: 1.75rem 1.75rem 2.25rem;
}
.contentBox .txtBox {
  padding: 0 1.75rem 2.25rem;
}
.contentBox .detail:has(.ttlBox) .txtBox {
  padding: 0;
}
.contentBox .sub_ttl {
  line-height: 1.5;
  margin-bottom: .5em;
}
.contentBox .ttl {
  margin-bottom: 1rem;
  color: var(--color2);
  line-height: 1.6;
}
.contentBox .ttlBox .ttl {
  margin-bottom: 0;
}
.contentBox .schedule {
  margin: 1rem 0;
}
.schedule p:has(svg) {
  display: flex;
  gap: .5em;
  line-height: 1.5;
  margin: 0 0 .5em;
}
.schedule p:has(svg):last-child {
  margin: 0;
}
.schedule p svg {
  color: var(--black);
  display: inline-block;
  width: 1.25em;
  aspect-ratio: 1/1;
  transform: translateY(.2em);
}
.contentBox .imgBox picture {
  width: 100%;
  aspect-ratio: 1/1;
}
.contentBox-group .btn,
.contentBox .btn {
  width: 100%;
} 
.contentChild {
  display: none;
}
.contentChild .contentBox .date > *,
.contentBox-group > .contentBox:not(:first-child) .date > * {
  display: none;
}
.contentChild .contentBox::before,
.contentBox-group > .contentBox:not(:first-child)::before {
  content: '';
  display: block;
  height: 1px;
  width: calc(100% - 3.5rem);
  background: var(--border1);
  margin: 0 auto;
  position: absolute;
  top: 0;
  right: 1.75rem;
}

@media (max-width: 991px) {
  .contentChild .contentBox .date,
  .contentBox-group > .contentBox:not(:first-child) .date {
    display: none;
  }
}
@media (max-width: 767px) {
  .contentBox .detail {
    
  }
}
@media (min-width: 768px) {
  .contentBox .detail:has(.ttlBox) {
    padding: 3rem 3rem 3.25rem;
  }
  .contentBox .detail .ttlBox {
    flex: 0 0 100%;
  }
  .contentBox .detail .imgBox {
    flex: 0 0 35%;
  }
  .contentBox .detail .txtBox {
    flex: 0 0 65%;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .contentBox .detail:has(.ttlBox) .txtBox {
    padding: 0 0 0 3rem;
  }
  .contentBox .detail .btn {
    width: 16em;
  }
  .contentChild .contentBox::before,
  .contentBox-group > .contentBox:not(:first-child)::before {
    width: calc(100% - 6rem);
    right: 3rem;
  }
}
@media (min-width: 992px) {
  .contentBox {
    display: flex;
  }
  .contentBox > .date {
    flex: 0 0 20%;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0;
    padding: 3rem 1.5rem;
  }
  .contentBox .date__d {
    font-size: 1.571em;
  }
  .contentBox .detail {
    flex-basis: 100%;
  }
  .contentChild .contentBox::before,
  .contentBox-group > .contentBox:not(:first-child)::before {
    width: calc(80% - 6rem);
  }
  .contentBox .detail .imgBox._large {
    flex: 0 0 40%;
  }
  .contentBox .detail .imgBox._large picture {
    min-height: 100%;
  }
  .contentBox .detail:has(.imgBox._large) .txtBox {
    flex: 0 0 60%;
  }
}


/* ==========================================================================
   Terms
========================================================================== */
.terms {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.5em;
  row-gap: .75em;
}

/* Categories */
.cats {
  display: flex;
  flex-wrap: wrap;
  gap: .375em;
  font-size: 0.857em;
  line-height: 1.25!important;
}
.cats span {
  display: inline-block;
  text-align: center;
  padding: .25em .5em;
  background: var(--color1);
  color: var(--white);
}
.cats span.cat-b {
  padding: .125em .5em;
  border: 1px solid var(--color1);
  color: var(--color1);
  background: transparent;
  font-family: var(--gothic);
}
.list-meta .cats span {
  min-width: 5.5em;
}

.badge {
  font-family: var(--gothic);
  display: inline-block;
  text-align: center;
  padding: .25em .75em;
  background: var(--color1);
  color: var(--white);
  line-height: 1.25;
}

/* Tags */
.tags {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.5em;
  row-gap: .25em;
  font-size: 0.857em;
  line-height: 1.5;
}
.tags .tag {
  display: inline-block;
}
.tags a {  
  text-decoration: none;
  color: var(--color2);
}


/* ==========================================================================
   Slider
========================================================================== */
.slider-wrapper {
  overflow: hidden;
}
.slick-dotted.slick-slider {
  margin-bottom: 50px;
}
.slick-dots {
  bottom: -45px;
}
.slick-dots li {
  margin: 0 2px;
}
.slick-dots li button::before {
  content: '';
  background: var(--black);
  border-radius: 100%;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 3px;
  transform: translate(-50%,-50%);
  opacity: 1!important;
}
.slick-dots li button::after {
  content: '';
  border: 1px solid var(--black);
  border-radius: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 13px;
  text-align: center;
  transform: translate(-50%,-50%) scale(0.1);
  transition: .2s transform;
}
.slick-dots li.slick-active button::after {
  transform: translate(-50%,-50%) scale(1);
}
.slider-wrapper.over-right .slick-dots {
  text-align: left;
}
.slider-wrapper.over-left .slick-dots {
  text-align: right;
}

.slick-arrow {
  z-index: 10;
}
.slick-prev:before,
.slick-next:before {
  content: '';
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 100%;
  background: var(--white) url('data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%2017%2017%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22m8.5%200c-4.7%200-8.5%203.8-8.5%208.5s3.8%208.5%208.5%208.5%208.5-3.8%208.5-8.5-3.8-8.5-8.5-8.5zm-3.6%2013.4s2.6-2.5%202.6-4.7-2.6-4.7-2.6-4.7l7.7%204.7z%22%20fill%3D%22%237a9485%22%2F%3E%3C%2Fsvg%3E') no-repeat center / 20px;
}
.slick-prev:before {
  transform: scale(-1,1);
}

.slider .slick-slide img {
  max-width: calc(93vw - var(--bs-gutter-x));
  margin-right: 10px;
}
@media (min-width: 576px) {
  .slider .slick-slide img {
    max-height: min(38.46rem,40vw);
  }
}
@media (min-width: 768px) {
  .slider .slick-slide img {
    max-height: min(38.46rem,35vw);
  }
}


.slider._reverse {
  transform: scaleX(-1);
}
.slider._reverse .slick-dots {
  text-align: left;
}
.slider._reverse .slick-slide {
  transform: scaleX(-1);
}
.slider._reverse .slick-slide img {
  margin-left: 10px;
  margin-right: 0;
}


.slider-wrapper .carousel .slick-track {
  display: flex;
}
.slider-wrapper .carousel .slick-slide {
  width: min(75vw, 20rem);
  height: auto !important;
  float: none;
  padding: 0 10px;
}
.slider-wrapper .carousel .card:has(.box) {
  height: 100%;
  justify-content: space-between;
}
@media (max-width: 991px) {
  .slider-wrapper:has(.carousel) {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }
}
@media (min-width: 992px) {
  .slider-wrapper:has(.carousel) {
    margin-left: -15px;
    margin-right: -15px;
  }
  .slider-wrapper .carousel .slick-slide {
    padding: 0 15px;
  }
}

/* ==========================================================================
   infiniteslide
========================================================================== */
.infiniteslide li img {
  max-width: calc(75vw - var(--bs-gutter-x));
  margin-right: 10px;
}
@media (min-width: 576px) {
    .infiniteslide li img {
        max-height: min(46.15rem, 55vw);
    }
}
@media (min-width: 768px) {
    .infiniteslide li img {
        max-height: min(46.15rem, 45vw);
    }
}

/* ==========================================================================
   Loader
========================================================================== */
.loader {
  display: none;
}

.loader,
.loader:before,
.loader:after {
  width: 2.5em;
  height: 2.5em;
  border-radius: 50%;
  animation: load7 1.8s infinite ease-in-out;
  animation-fill-mode: both;
}
.loader {
  position: relative;
  margin: 0 auto;
  color: var(--color2);
  font-size: 3px;
  text-indent: -9999em;
  transform: translateZ(0);
  animation-delay: -0.16s;
}
.loader:before,
.loader:after {
  content: "";
  position: absolute;
  top: 0;
}
.loader:before {
  left: -3.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}
.loader:after {
  left: 3.5em;
}
@keyframes load7 {
  0%, 80%, 100% {
    box-shadow: 0 2.5em 0 -1.3em;
  }
  40% {
    box-shadow: 0 2.5em 0 0;
  }
}

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


.acc_btn .faq__q {
  color: var(--color1);
  font-size: 1.231em;
  line-height: 1.5;
  letter-spacing: 0.08em;
  white-space: normal;
  padding: 0.5rem 0 0.5rem 0.5rem;
  position: relative;
}
.acc_btn .faq__q .label {
  font-family: var(--font1);
  display: block;
  font-size: 1.538rem;
  line-height: 1.25;
  position: absolute;
  top: 0.2em;
  left: -2rem;
}

.acc_body .faq__a {
  padding: 1.5em 0 3em;
  border-top: 1px solid var(--border1);
  position: relative;
}
.acc_body .faq__a a {
  color: var(--color 1);
  text-decoration: underline;
}

@media (min-width: 992px){
  .acc_btn {
    padding: 2em 2em;
  }
  .acc_body .faq__a {
    padding: 2em 0 4em;
  }
}

/* ==========================================================================
   Tab
========================================================================== */
.tabs {
  list-style-type: none;
  display: flex;
  justify-content: center;
  column-gap: 1px;
}
.tabs .tab {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 1.077em;
  gap: .5em;
  flex-basis: 100%;
  padding-right: 0;
  padding-left: 0;
}
@media (max-width: 575px){
  .tabs {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }
  .tabs .tab {
    flex-direction: column;
  }
}
@media (min-width: 992px){
  .tabs {
    column-gap: .75em;
    border-bottom: 1px solid var(--border1);
  }
  .tabs .tab {
    flex-basis: auto;
    gap: .75em;
  }
  .tabs .tab:first-child {
    border-radius: .5em 0 0 0;
  }
  .tabs .tab:last-child {
    border-radius: 0 .5em 0 0;
  }
}

.tab-cont:not(.is-active) {
  display: none;
}


/* ==========================================================================
   Calendar
========================================================================== */
.cal-wrapper {
  font-family: var(--gothic);
}

.cal-wrapper .month .calendar {
  max-width: 24em;
  margin: 0 auto;
  position: relative;
}
.cal-wrapper .month h5 {
  margin-bottom: 1em;
  padding-bottom: .75em;
  border-bottom: 1px solid var(--border1);
  text-align: center;
}

.cal-wrapper .month table.callist {
  width: 100%;
  font-weight: 400;
}
.cal-wrapper .month table.callist th {
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
}
.cal-wrapper .month table.callist th span {
  width: 38px;
  height: 38px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  border-radius: 50%;
}
.cal-wrapper .month table.callist td {
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  padding: .375em;
}
.cal-wrapper .month table.callist td span,
.cal-wrapper .month table.callist td a {
  width: 2.5em;
  height: 2.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  border-radius: 50%;
}
.cal-wrapper .month table.callist td a {
  background: var(--l-gray);
}
.cal-wrapper .month table.callist td:nth-last-of-type(2),
.cal-wrapper .month table.callist td:nth-last-of-type(2):not(.holiday) a {
  color: var(--blue);
}
.cal-wrapper .month table.callist td:nth-last-of-type(1),
.cal-wrapper .month table.callist td:nth-last-of-type(1):not(.holiday) a {
  color: var(--red);
}
.cal-wrapper .month table.callist td.holiday {
  color: var(--red);
}

@media (min-width: 992px) {
  .cal-wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .cal-wrapper .month {
    width: min(30%, 30em);
  }
  .cal-wrapper .month .calendar {
    max-width: 100%;
  }
}


.cal-wrapper .slick-prev {
  top: .7rem;
  left: auto;
  right: calc(50% + 12rem - 20px);
  transform: translateY(0);
}
.cal-wrapper .slick-next {
  top: .7rem;
  right: auto;
  left: calc(50% + 12rem - 20px);
  transform: translateY(0);
}
@media (min-width: 768px) {
  .cal-wrapper .slick-prev {
    right: calc(50% + 24rem - 20px + ((100% - 48rem)/4));
  }
  .cal-wrapper .slick-next {
    left: calc(50% + 24rem - 20px + ((100% - 48rem)/4));
  }
}


/* ==========================================================================
   Fair
========================================================================== */
.fair-slider .slick-track {
  display: flex;
}
.fair-slider .slide {
  background: var(--white);
  width: 24em;
  height: auto!important;
  margin: 0 10px;
}
.bg-l-gray2 .fair-slider .slide {
  border: none;
}

@media (min-width: 768px) {
  .fair-slider .slide {
    width: 48em;
    min-height: 16em;
    margin: 0 42px;
  }
}
@media (min-width: 992px) {
  .fair-slider .slide {
    width: 56em;
  }
}

.slide .contentBox {
  margin: 0;
  height: 100%;
}
.bg-l-gray2 .slide .contentBox {
  border: 0;
}

.fair-slider .slide .contentBox .txtBox {
  width: 100%;
  padding: 0 1.5rem 4.5rem;
  align-self: center;
}
.fair-slider .slide .contentBox .txtBox .cats {
  margin: 0 0 1rem;
}
.fair-slider .slide .contentBox .txtBox .schedule {
  margin: 0 0 1rem;
}
.fair-slider .slide .contentBox .txtBox .btn {
  display: inline-block;
  font-size: .923em;
  padding: .75em 1.5em;
  background-image: none;
}

@media (max-width: 991px) {
  .fair-slider .slide .contentBox .txtBox .cats {
    display: none;
  }
}
@media (max-width: 767px) {
  .fair-slider .slide .contentBox .txtBox .btn {
    width: auto;
    position: absolute;
    right: 1.5rem;
    left: 1.5rem;
    bottom: 1.5rem;
  }
}
@media (min-width: 768px) {
  .fair-slider .slide .contentBox .txtBox {
    width: calc(100% - 210px);
    padding: 0 2.25rem .25rem;
  }
  .fair-slider .slide .contentBox .txtBox .btn {
    width: 13.5em;
  }
}

.fair-slider .slick-arrow::before {
  opacity: 1!important;
}
.fair-slider .slick-prev {
  left: auto;
  right: calc(50% + 12rem - 10px);
}
.fair-slider .slick-next {
  right: auto;
  left: calc(50% + 12rem - 10px);
}
@media (min-width: 768px) {
  .fair-slider .slick-prev {
    right: calc(50% + 24rem + 32px);
  }
  .fair-slider .slick-next {
    left: calc(50% + 24rem + 32px);
  }
}
@media (min-width: 992px) {
  .fair-slider .slick-prev {
    right: calc(50% + 28rem + 32px);
  }
  .fair-slider .slick-next {
    left: calc(50% + 28rem + 32px);
  }
}


/* ==========================================================================
   Category search
========================================================================== */
.category-search-list {
  font-family: var(--gothic);
  row-gap: .75rem;
  margin-right: calc(.75rem/2*-1);
  margin-left: calc(.75rem/2*-1);
}
.category-search-list li {
  padding: 0 calc(.75rem/2);
}
.category-search-list li a {
  display: block;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.08em;
  padding: 1em 0;
  background: var(--color1);
  color: var(--white);
}
.category-search-list li a:hover, .category-search-list li.current a {
  background: var(--color1);
  color: var(--white);
}

.category-search-list li select {
  width: 100%;
  height: 3.5em;
  padding: 0 2.5em;
  border: 0;
  background-color: var(--l-gray);
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2215%22%20height%3D%2215%22%20viewBox%3D%220%200%2015%2015%22%20fill%3D%22none%22%3E%3Cellipse%20cx%3D%227.5%22%20cy%3D%227.5%22%20rx%3D%227.5%22%20ry%3D%227.5%22%20transform%3D%22matrix(1.39071e-07%201%201%20-1.39071e-07%200%202.08606e-06)%22%20fill%3D%22%237A9485%22%2F%3E%3Cpath%20d%3D%22M7.75%209.99829L10.5%205.49829C10.4801%205.51943%209.05609%207.02857%207.75%207.02857C6.43902%207.02843%205.00926%205.50816%205%205.49829L7.75%209.99829Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: center right 1.25em;
  background-size: 1.25em 1.25em;
  font-family: inherit;
  font-size: 1rem;
  text-align: center;
}
.category-search-list li select:focus {
  background-color: var(--l-gray);
}
.category-search-list li select.selected {
  background: var(--color1);
  color: var(--white);
}



/* ==========================================================================
   Pagination - Archive
========================================================================== */
.pagination {
  text-align: center;
  font-size: 1.231em;
}
.pagination ul {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 1%;
  white-space: nowrap;
  padding: 0;
}
.pagination li {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.pagination li .page-numbers {
  margin: 0;
  text-decoration: none;
  padding: 0;
  line-height: 1em;
  font-size: 1em;
  padding: .5em;
  min-width: 1em;
  display: block;
  border-bottom: 1px solid transparent;
  position: relative;
}
.pagination li .page-numbers::before {
  content: '';
  display: block;
  width: calc(100% - 1em);
  height: 1px;
  background-image: linear-gradient(var(--black), var(--black));
  background-repeat: no-repeat;
  background-position: bottom right;
  background-size: 0 1px;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  transition: background-size 0.3s;
}
.pagination li .page-numbers:hover::before,
.pagination li .page-numbers.current::before {
  background-position: bottom left;
  background-size: 100% 1px;
}

.pagination li .page-numbers.next,
.pagination li .page-numbers.prev {
  font-family: var(--font1);
  font-size: 1rem;
}


/* ==========================================================================
   Pagination - Single
========================================================================== */
.paginav a:not(.btn) {
  display: inline-block;
  margin: 1em 0;
}
.paginav .back {
  text-align: center;
}
.paginav .prev {
  text-align: left;
  font-family: var(--font1);
}
.paginav .next {
  text-align: right;
  font-family: var(--font1);
}

/* ==========================================================================
   Color
========================================================================== */
.bg-l-gray { background: var(--l-gray); }
.bg-l-gray2 { background: var(--l-gray2); --border1: #D6D6D6; }

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


/* ==========================================================================
   Form
========================================================================== */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], button, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  background-color: transparent;
  border: 1px solid var(--border1);
  border-radius: 0;
  outline: 0;
  box-sizing: border-box;
  font-size: 16px;
  line-height: 2;
  color: inherit;
  max-width: 100%;
  transition: border 0.2s ease-out;
}
input[type="text"].inline-text {
  background-color: var(--white);
  border-color: var(--border1);
}
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--gray);
}
input[type="text"], input[type="email"], input[type="tel"], input[type="number"] {
  width: 100%;
  height: 48px;
  padding: 0 1em;
}
input[type="date"] {
  width: 16em;
  height: 48px;
  padding: 0 calc(1em - 2px) 0 1em;
}
input[type="radio"],
input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  background-color: var(--white);
  border: 1px solid var(--border1);
  border-radius: 0;
  outline: 0;
  box-sizing: border-box;
  color: inherit;
  width: 1.5em;
  height: 1.5em;
  margin: 0 .75em 0 0 !important;
  position: relative;
}
input[type="checkbox"]:before {
  position: absolute;
  top: .25em;
  left: .5em;
  transform: rotate(45deg);
  width: .35em;
  height: .7em;
  border-right: 1px solid var(--white);
  border-bottom: 1px solid var(--white);
  content: '';
  transition: border 0.2s ease-out;
}
input[type="checkbox"]:checked:before {
  border-color: var(--color1);
}
input[type="radio"] {
  border-radius: 100%;
}
input[type="radio"]:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 100%;
  background: var(--white);
  content: '';
  transform: scale(0.5);
  transition: 0.15s;
}
input[type="radio"]:checked:before {
  background: var(--color1);
}
textarea {
  padding: 14px 1em;
  width: 100%;
  height: auto;
}
select {
  width: 100%;
  height: 48px;
  padding: 0 calc(2em + 10px) 0 1em;
  border-color: var(--border1);
  background-color: var(--white);
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%228%22%20height%3D%226%22%20viewBox%3D%220%200%208%206%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M4%206L8%20-1.11257e-06L0%200L4%206Z%22%20fill%3D%22%237D7D7D%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: center right 1em;
  background-size: 10px 10px;
}
input[type="text"].js-date {
  width: 16em;
  height: 48px;
  padding: 0 calc(2em + 10px) 0 1em;
  background-image: url(data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M15%201.49648L10.9965%201.4965V0.5C10.9965%200.22375%2010.7727%200%2010.4965%200C10.2203%200%209.9965%200.22375%209.9965%200.5V1.49625H5.9965V0.5C5.9965%200.22375%205.77275%200%205.4965%200C5.22025%200%204.9965%200.22375%204.9965%200.5V1.49625H1C0.44775%201.49625%200%201.944%200%202.49625V14.9963C0%2015.5485%200.44775%2015.9963%201%2015.9963H15C15.5522%2015.9963%2016%2015.5485%2016%2014.9963V2.49625C16%201.94423%2015.5522%201.49648%2015%201.49648ZM15%2014.9963H1V2.49625H4.9965V3C4.9965%203.27623%205.22025%203.5%205.4965%203.5C5.77275%203.5%205.9965%203.27623%205.9965%203V2.4965H9.9965V3.00025C9.9965%203.2765%2010.2203%203.50025%2010.4965%203.50025C10.7727%203.50025%2010.9965%203.2765%2010.9965%203.00025V2.4965H15V14.9963ZM11.5%207.99648H12.5C12.776%207.99648%2013%207.77248%2013%207.49648V6.49648C13%206.22048%2012.776%205.99648%2012.5%205.99648H11.5C11.224%205.99648%2011%206.22048%2011%206.49648V7.49648C11%207.77248%2011.224%207.99648%2011.5%207.99648ZM11.5%2011.9962H12.5C12.776%2011.9962%2013%2011.7725%2013%2011.4962V10.4962C13%2010.2202%2012.776%209.99623%2012.5%209.99623H11.5C11.224%209.99623%2011%2010.2202%2011%2010.4962V11.4962C11%2011.7727%2011.224%2011.9962%2011.5%2011.9962ZM8.5%209.99623H7.5C7.224%209.99623%207%2010.2202%207%2010.4962V11.4962C7%2011.7725%207.224%2011.9962%207.5%2011.9962H8.5C8.776%2011.9962%209%2011.7725%209%2011.4962V10.4962C9%2010.2205%208.776%209.99623%208.5%209.99623ZM8.5%205.99648H7.5C7.224%205.99648%207%206.22048%207%206.49648V7.49648C7%207.77248%207.224%207.99648%207.5%207.99648H8.5C8.776%207.99648%209%207.77248%209%207.49648V6.49648C9%206.22023%208.776%205.99648%208.5%205.99648ZM4.5%205.99648H3.5C3.224%205.99648%203%206.22048%203%206.49648V7.49648C3%207.77248%203.224%207.99648%203.5%207.99648H4.5C4.776%207.99648%205%207.77248%205%207.49648V6.49648C5%206.22023%204.776%205.99648%204.5%205.99648ZM4.5%209.99623H3.5C3.224%209.99623%203%2010.2202%203%2010.4962V11.4962C3%2011.7725%203.224%2011.9962%203.5%2011.9962H4.5C4.776%2011.9962%205%2011.7725%205%2011.4962V10.4962C5%2010.2205%204.776%209.99623%204.5%209.99623Z%22%20fill%3D%22%237D7D7D%22%2F%3E%3C%2Fsvg%3E);
  background-repeat: no-repeat;
  background-position: center right 1em;
  background-size: 16px;
}
select::-ms-expand {
  display: none;
}
label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
label:has(input[type="radio"]),
label:has(input[type="checkbox"]) {
  height: 48px;
} 
::placeholder {
  color: #D4D4D4;
}

/* datepickr */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
  background: var(--color2)!important;
  border-color: var(--color2)!important;
}
.flatpickr-day.today {
  border-color: var(--border1)!important;
}
.flatpickr-calendar {
  font-family: var(--gothic);
  padding: 10px 10px 15px!important;
  width: 327.875px!important;
}
.flatpickr-calendar:before,
.flatpickr-calendar:after {
  display: none!important;
}
.flatpickr-calendar .flatpickr-months .flatpickr-month {
  height: 45px;
}
.flatpickr-calendar .flatpickr-months .flatpickr-current-month {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: center;
  height: 45px;
  padding-top: 0;
}
.flatpickr-calendar .flatpickr-months .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month {
  top: 10px;
}
.flatpickr-calendar .flatpickr-weekdays {
  height: 35px;
}
.flatpickr-calendar span.flatpickr-weekday {
  font-weight: 500;
}
/* 日曜 */
.flatpickr-weekday:nth-child(1) {
  color: var(--red);
}
/* 土曜 */
.flatpickr-weekday:nth-child(7) {
  color: var(--blue);
}


/* form layout */
.req {
  color: var(--color2);
}
.form-box {
  font-family: var(--gothic);
  margin: 3rem 0 0;
  text-align: left;
  overflow: hidden;
}
.form-box dl {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.form-box dl dt {
  display: flex;
  align-items: center;
  gap: 1.25em;
  font-size: inherit;
  font-weight: 500;
  margin: 0 0 1.25em!important;
  padding: 0;
  border-bottom: 0;
}
.form-box dl dd {
  margin: 0 0 calc(var(--section-gy)*0.45);
  padding: 0;
}
.form-box dl dd select {
  width: 16em;
  max-width: 100%;
}
.form-box dl dd.form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
}
.form-box dl dd > div:has(.unit) {
  display: flex;
  gap: 1em;
}
.form-box dl dd > div .unit {
  display: block;
  padding-top: 11px;
}


.form-box dl dd._short input {
  width: 16em;
}
.form-box p.note {
  font-size: 0.929em;
  line-height: 1.5;
  margin: .5em 0 0;
}

.form-box dl dl {
  flex-direction: row;
  flex-wrap: wrap;
  margin-bottom: 0;
}
.form-box dl dl dt {
  flex: 0 0 7em;
  margin: 0 0 1.25em;
  padding-left: 0;
}
.form-box dl dl dd {
  flex: 0 0 calc(100% - 7em);
  margin: 0 0 1.25em;
}

.form-box .form-submit {
  display: flex;
  justify-content: center;
}
.form-box .form-submit > div {
  position: relative;
}


@media (min-width: 768px) {
  .form-box dl {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .form-box dl dt {
    flex: 0 0 29%;
    padding: .8em 0 0 5em;
    position: relative;
  }
  .form-box dl dt ._req {
    position: absolute;
    left: 0;
  }
  .form-box dl dd {
    flex: 0 0 71%;
  }

  .form-box dl.hidden-fields dt {
    padding-top: 0;
  }
}



.form-box .privacy a {
  color: inherit;
  text-decoration: underline;
}
.form-scroll-field {
  font-size: .857em;
  border: 1px solid var(--border1);
  padding: 1.5em;
  margin: 2rem 0;
  height: 12rem;
  overflow-y: auto;
}
.form-scroll-field > * {
  font-size: 1em !important;
}
.form-scroll-field > *:first-child {
  margin-top: 0 !important;
}


/*cf7*/
.wpcf7-list-item {
  margin-left: 0;
  margin-right: 1.5em;
}
.wpcf7-list-item:last-child {
  margin-right: 0;
}
.wpcf7-not-valid-tip {
  color: var(--red);
  font-size: 0.857em;
}
.wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: 1.5em;
  z-index: 2;
  margin: -12px -3px 0 0;
  opacity: 1;
  background-color: var(--color1);
}

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

