@charset "UTF-8";
/* ===================================================================
CSS information

file name  : first_load.css
author     : Abilive
style info : 先行読み込みCSS
=================================================================== */
/* ===================================================================
CSS information

file name  : _settings.scss
author     : Abilive
style info : 汎用設定
=================================================================== */
@-webkit-keyframes FadeIn {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
@keyframes FadeIn {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
/* ===================================================================
CSS information

file name  : default.css
author     : Abilive
style info : 汎用リセット記述
=================================================================== */
html,
article,
aside,
audio,
blockquote,
body,
dd,
dialog,
div,
dl,
dt,
fieldset,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
input,
li,
mark,
menu,
nav,
ol,
p,
pre,
section,
td,
textarea,
th,
time,
ul,
video,
main {
  margin: 0;
  padding: 0;
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
  font-style: normal;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

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

caption,
th {
  text-align: left;
}

q:after,
q:before {
  content: "";
}

embed,
object {
  vertical-align: top;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
}

abbr,
acronym,
fieldset,
img {
  border: 0;
}

li {
  list-style-type: none;
}

sup {
  vertical-align: super;
  font-size: 0.5em;
}

img {
  vertical-align: top;
}

i {
  font-style: normal;
}

svg {
  vertical-align: middle;
}

article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section,
main {
  display: block;
}

nav,
ul {
  list-style: none;
}

/* ===================================================================
CSS information

file name  : first_load.css
author     : Abilive
style info : 先行読み込みCSS
=================================================================== */
.c-modal-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  background-color: white;
  cursor: pointer;
  height: 2.57rem;
  width: 2.57rem;
  border-radius: 100%;
}
@media only screen and (max-width: 767px) {
  .c-modal-btn {
    height: 2.57rem;
    width: 2.57rem;
  }
}
.c-modal-btn__ic {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: auto;
  margin-left: auto;
  -webkit-transition: height 0.3s ease-in-out;
  transition: height 0.3s ease-in-out;
  position: relative;
  pointer-events: none;
  height: 0.71rem;
  width: 1.42rem;
}
.c-modal-btn__ic > span {
  -webkit-transition: background-color 0.3s ease-in-out;
  transition: background-color 0.3s ease-in-out;
  background-color: var(--color-main-black);
  height: 1px;
  width: 80%;
}
.c-modal-btn__ic > span::before, .c-modal-btn__ic > span::after {
  content: "";
  -webkit-transition: top 0.2s ease 0.2s, background-color 0.3s ease-in-out, -webkit-transform 0.2s ease;
  transition: top 0.2s ease 0.2s, background-color 0.3s ease-in-out, -webkit-transform 0.2s ease;
  transition: transform 0.2s ease, top 0.2s ease 0.2s, background-color 0.3s ease-in-out;
  transition: transform 0.2s ease, top 0.2s ease 0.2s, background-color 0.3s ease-in-out, -webkit-transform 0.2s ease;
  background-color: var(--color-main-black);
  display: block;
  position: absolute;
  left: 0;
  height: 1px;
}
.c-modal-btn__ic > span::before {
  top: 0%;
  width: 60%;
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.c-modal-btn__ic > span::after {
  width: 100%;
  top: 100%;
}

#abi_page:has(> .l-modal.is-open) .c-modal-btn__ic {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#abi_page:has(> .l-modal.is-open) .c-modal-btn__ic > span {
  width: 100%;
  background-color: transparent !important;
}
#abi_page:has(> .l-modal.is-open) .c-modal-btn__ic > span::before, #abi_page:has(> .l-modal.is-open) .c-modal-btn__ic > span::after {
  -webkit-transition: top 0.2s ease, -webkit-transform 0.2s ease 0.2s;
  transition: top 0.2s ease, -webkit-transform 0.2s ease 0.2s;
  transition: transform 0.2s ease 0.2s, top 0.2s ease;
  transition: transform 0.2s ease 0.2s, top 0.2s ease, -webkit-transform 0.2s ease 0.2s;
  width: 100%;
}
#abi_page:has(> .l-modal.is-open) .c-modal-btn__ic > span::before {
  -webkit-transform-origin: center center;
          transform-origin: center center;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 50%;
}
#abi_page:has(> .l-modal.is-open) .c-modal-btn__ic > span::after {
  -webkit-transform-origin: center center;
          transform-origin: center center;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  top: 50%;
}

.l-header {
  -webkit-transition: opacity 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out;
  transition: opacity 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out;
  transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out;
  transition: transform 0.4s ease-in-out, opacity 0.4s ease-in-out, -webkit-transform 0.4s ease-in-out;
  height: var(--nav-height);
  width: calc(1320 / 1440 * 100%);
  position: fixed;
  top: var(--nav-height-top);
  left: 0;
  right: 0;
  z-index: 99;
  margin-inline: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #000;
  border: 1px solid var(--color-line-gray);
  border-radius: 0.57rem;
  -webkit-box-shadow: 0 0.07rem 0.21rem 0.07rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.07rem 0.21rem 0.07rem rgba(0, 0, 0, 0.1);
}
@media only screen and (min-width: 1025px) and (max-width: 1365px) {
  .l-header {
    width: calc(1360 / 1440 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .l-header {
    width: calc(342 / 375 * 100%);
  }
}
.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: calc(1250 / 1320 * 100%);
  margin-inline: auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  height: 100%;
}
@media only screen and (min-width: 1025px) and (max-width: 1365px) {
  .l-header__inner {
    width: calc(1300 / 1360 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .l-header__inner {
    width: calc(310 / 342 * 100%);
  }
}
.l-header__logo {
  width: 11.14rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l-header__logo-link {
  display: block;
}
.mouse .l-header__logo-link {
  -webkit-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}
.mouse .l-header__logo-link:hover, .touch .l-header__logo-link.touchstart {
  opacity: 0.7;
}
.touch .l-header__logo-link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-header__logo-link.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-header__nav {
  margin-right: 0;
  margin-left: auto;
}
.l-header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.l-header__nav-li {
  margin-right: 1.42rem;
}
@media only screen and (min-width: 1025px) and (max-width: 1365px) {
  .l-header__nav-li {
    margin-right: 1.07rem;
  }
}
.l-header__nav-li:last-child {
  margin-right: 0.71rem;
}
.l-header__nav-li--contact .l-header__nav-link {
  background-color: var(--color-accent);
  padding: 0.2rem 1rem 0.25rem;
  border-radius: 0.28rem;
}
.mouse .l-header__nav-li--contact .l-header__nav-link:hover, .touch .l-header__nav-li--contact .l-header__nav-link.touchstart {
  background-color: #fff;
}
.mouse .l-header__nav-li--contact .l-header__nav-link:hover > span::after, .touch .l-header__nav-li--contact .l-header__nav-link.touchstart > span::after {
  opacity: 0;
}
.touch .l-header__nav-li--contact .l-header__nav-link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-header__nav-li--contact .l-header__nav-link.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-header__nav-link {
  font-size: 0.93rem;
  line-height: 1;
  text-decoration: none;
  height: 100%;
  -webkit-transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;
}
.l-header__nav-link > span {
  position: relative;
}
.l-header__nav-link > span::after {
  content: "";
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  margin: auto 0;
  background-color: var(--color-accent);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}
.mouse .l-header__nav-link:hover, .touch .l-header__nav-link.touchstart {
  color: var(--color-accent);
}
.mouse .l-header__nav-link:hover > span::after, .touch .l-header__nav-link.touchstart > span::after {
  opacity: 1;
}
.touch .l-header__nav-link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-header__nav-link.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-header__tel {
  line-height: 1;
  margin-right: 1.07rem;
  font-size: 0.86rem;
  font-optical-sizing: auto;
  font-family: var(--font-family-en-mincho);
  font-style: var(--font-family-en-mincho-style);
  font-weight: var(--font-family-en-mincho-weight);
}
@media only screen and (max-width: 1024px) {
  .l-header__tel {
    margin-left: auto;
  }
}
.l-header__tel a, .l-header__tel .tel {
  font-size: 150%;
}
.l-header__tel a {
  text-decoration: none;
}
.mouse .l-header__tel a {
  -webkit-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}
.mouse .l-header__tel a:hover, .touch .l-header__tel a.touchstart {
  opacity: 0.7;
}
.touch .l-header__tel a {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-header__tel a.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-header__lang {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 1024px) {
  .l-header__lang {
    margin-right: 0.71rem;
  }
}
@media only screen and (max-width: 767px) {
  .l-header__lang {
    margin-left: auto;
  }
}
.l-header__lang-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.l-header__lang-li {
  opacity: 0.4;
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
}
.l-header__lang-li:not(:last-child)::after {
  content: "/";
  display: inline-block;
}
html:lang(en) .l-header__lang-li--en {
  opacity: 1;
}
html:lang(ja) .l-header__lang-li--ja {
  opacity: 1;
}
.l-header__lang-li a {
  padding: 0.25rem 0.3rem;
  text-decoration: none;
  cursor: pointer;
}
.mouse .l-header__lang-li:hover, .touch .l-header__lang-li.touchstart {
  opacity: 1;
}
.touch .l-header__lang-li {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-header__lang-li.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-header__lang .o-icon--lang {
  fill: #fff;
}

:root {
  --color-accent: #AF844F;
  --color-main: #242424;
  --color-main-white: #fff;
  --color-main-black: #000;
  --color-main-gray: #BEBCBC;
  --color-main-light-gray: #D5D2CF;
  --color-main-dark-gray: #464646;
  --color-text: #fff;
  --color-main-lead: #242424;
  --color-line-dark: #242424;
  --color-line-gray: #BEBCBC;
  --color-line-light-gray: #D5D2CF;
  --color-line-white: #fff;
  --color-bg: #000;
  --color-error: #5F211A;
  --font-family-jp-mincho: "Shippori Mincho", serif;
  --font-family-jp-mincho-weight: 600;
  --font-family-jp-mincho-style: normal;
  --font-family-jp-mincho-letter: 0;
  --font-family-jp-gothic: "Noto Sans JP", sans-serif;
  --font-family-jp-gothic-weight: 400;
  --font-family-jp-gothic-style: normal;
  --font-family-jp-gothic-letter: 0;
  --font-family-en-mincho: "Playfair Display", serif;
  --font-family-en-mincho-weight: 700;
  --font-family-en-mincho-style: normal;
  --font-family-en-mincho-letter: 0;
  --font-family-en-gothic: "Manrope", sans-serif;
  --font-family-en-gothic-weight: 300;
  --font-family-en-gothic-style: normal;
  --font-family-en-gothic-letter: 0;
  --nav-height: 3.85rem;
  --nav-height-top: 2.14rem;
  --btn-icon-size: 3.28rem;
  --icon-font-size: 1rem;
  --accordion-icon-size: 0.85rem;
  --animation-easing: cubic-bezier(0.56, 0.06, 0.63, 0.84);
  --animation-duration: .5s;
  --animation-delay: .5s;
}
@media only screen and (max-width: 767px) {
  :root {
    --nav-height-top: 1.07rem;
  }
}

html {
  line-height: 2;
}
@media only screen and (min-width: 1441px) {
  html {
    font-size: calc(16 / 16 * 100%);
  }
}
@media only screen and (min-width: 1441px) and (max-width: 1600px) {
  html {
    font-size: calc((16 - 1) / 16 * 100%);
  }
}
@media only screen and (min-width: 1025px) and (max-width: 1440px) {
  html {
    font-size: calc(14 / 16 * 100%);
  }
}
@media only screen and (min-width: 1025px) and (max-width: 1259px) {
  html {
    font-size: calc((14 - 1) / 16 * 100%);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  html {
    font-size: calc((14 - 1) / 16 * 100%);
  }
}

body {
  background-color: var(--color-main);
  color: var(--color-text);
  position: relative;
  width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: none;
  background-position: center top;
  background-repeat: repeat-y;
  background-size: 100% auto;
}
@media only screen and (min-width: 768px) {
  body {
    background-image: url(../images/common/bg_dark-pc.png);
  }
}
@media only screen and (max-width: 767px) {
  body {
    background-image: url(../images/common/bg_dark-sp.png);
  }
}
.lower body::before {
  content: "";
  width: 100%;
  padding-bottom: calc(447 / 1440 * 100%);
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  background: url(../images/header/bg_lower-pc.png) no-repeat top/100%;
  mix-blend-mode: multiply;
}
@media only screen and (max-width: 767px) {
  .lower body::before {
    background: none;
  }
}
body a {
  color: inherit;
  text-decoration: underline;
}
body a:hover {
  text-decoration: none;
}
body img {
  max-width: 100%;
  -webkit-touch-callout: none;
  line-height: 1;
}

*:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 1px;
}

body,
pre,
input,
textarea,
select {
  font-family: var(--font-family-jp-gothic);
  font-style: var(--font-family-jp-gothic-style);
  font-weight: var(--font-family-jp-gothic-weight);
  color: var(--color-text);
}

input,
select,
textarea {
  font-size: 100%;
}
@media only screen and (max-width: 767px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }
}
@media only screen and (max-width: 767px) {
  input::-webkit-input-placeholder, select::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    font-size: 0.85rem;
  }
  input::-moz-placeholder, select::-moz-placeholder, textarea::-moz-placeholder {
    font-size: 0.85rem;
  }
  input:-ms-input-placeholder, select:-ms-input-placeholder, textarea:-ms-input-placeholder {
    font-size: 0.85rem;
  }
  input::-ms-input-placeholder, select::-ms-input-placeholder, textarea::-ms-input-placeholder {
    font-size: 0.85rem;
  }
  input::placeholder,
  select::placeholder,
  textarea::placeholder {
    font-size: 0.85rem;
  }
}

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

#svg_defs {
  display: none;
}

#abi_page {
  max-width: 2560px;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
}
.lower #abi_page {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  #abi_page {
    font-size: 100% !important;
  }
}

button {
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-family-jp-gothic);
  font-style: var(--font-family-jp-gothic-style);
  font-weight: var(--font-family-jp-gothic-weight);
  font-size: 1rem;
  cursor: pointer;
  color: var(--color-text);
}
button::-ms-expand {
  display: none;
}

@media only screen and (min-width: 1025px) {
  body .view_tab-sp,
  body .view_tab {
    display: none !important;
  }
}
@media only screen and (min-width: 768px) {
  body .view_sp {
    display: none !important;
  }
}
@media only screen and (max-width: 1024px) {
  body .view_pc {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  body .view_pc-tab,
  body .view_tab {
    display: none !important;
  }
}
@media only screen and (min-width: 1025px) and (max-width: 1440px) {
  body .view_pcl {
    display: none !important;
  }
}
@media only screen and (max-width: 1024px) {
  body .view_pcl {
    display: none !important;
  }
}
@media only screen and (min-width: 1441px) {
  body .view_pcs {
    display: none !important;
  }
}
@media only screen and (max-width: 1024px) {
  body .view_pcs {
    display: none !important;
  }
}
@media only screen and (min-width: 1025px) {
  body .u-view--ts, body .u-view--t {
    display: none !important;
  }
}
@media only screen and (min-width: 768px) {
  body .u-view--s {
    display: none !important;
  }
}
@media only screen and (max-width: 1024px) {
  body .u-view--p {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  body .u-view--pt, body .u-view--t {
    display: none !important;
  }
}

svg {
  fill: inherit;
}

.o-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: var(--icon-font-size);
}
.o-icon svg {
  width: 1em;
  height: 1em;
  fill: inherit;
  display: block;
}
.o-icon--down svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  aspect-ratio: 12/7;
  height: auto;
}
.o-icon--rt {
  --icon-font-size: 0.71rem;
}
.o-icon--rt svg {
  aspect-ratio: 7/12;
  height: auto;
}
.o-icon--lt {
  --icon-font-size: 0.71rem;
}
.o-icon--lt svg {
  aspect-ratio: 7/12;
  height: auto;
  -webkit-transform: scaleX(-1);
          transform: scaleX(-1);
}
.o-icon--blank {
  --icon-font-size: 0.85rem;
}
.o-icon--blank svg {
  aspect-ratio: 12/12;
  height: auto;
}
.o-icon--mail2 {
  --icon-font-size: 1rem;
}
.o-icon--mail2 svg {
  aspect-ratio: 12/9;
  height: auto;
}
.o-icon--pdf {
  --icon-font-size: 0.92rem;
}
.o-icon--pdf svg {
  height: auto;
  aspect-ratio: 12/14;
}
.o-icon--map {
  --icon-font-size: 0.85rem;
}
.o-icon--map svg {
  aspect-ratio: 9/11;
  height: auto;
}
.o-icon--train {
  --icon-font-size: 0.92rem;
}
.o-icon--train svg {
  aspect-ratio: 13/11;
  height: auto;
}
.o-icon--bus {
  --icon-font-size: 0.92rem;
}
.o-icon--bus svg {
  aspect-ratio: 13/11;
  height: auto;
}
.o-icon--car {
  --icon-font-size: 0.92rem;
}
.o-icon--car svg {
  aspect-ratio: 13/11;
  height: auto;
}
.o-icon--yen {
  --icon-font-size: 0.71rem;
}
.o-icon--yen svg {
  aspect-ratio: 10/14;
  height: auto;
}
.o-icon--people {
  --icon-font-size: 1.07rem;
}
.o-icon--people svg {
  aspect-ratio: 15/12;
  height: auto;
}
.o-icon--people2 {
  --icon-font-size: 0.85rem;
}
.o-icon--people2 svg {
  aspect-ratio: 12/14;
  height: auto;
}
.o-icon--people3 {
  --icon-font-size: 0.64rem;
}
.o-icon--people3 svg {
  aspect-ratio: 9/10;
  height: auto;
}
.o-icon--lang {
  --icon-font-size: 0.92rem;
}
.o-icon--lang svg {
  aspect-ratio: 13/13;
  height: auto;
}
.o-icon--time {
  --icon-font-size: 0.92rem;
}
.o-icon--time svg {
  aspect-ratio: 13/13;
  height: auto;
}
.o-icon--calendar {
  --icon-font-size: 0.92rem;
}
.o-icon--calendar svg {
  aspect-ratio: 13/13;
  height: auto;
}
.o-icon--web {
  --icon-font-size: 0.92rem;
}
.o-icon--web svg {
  aspect-ratio: 13/12;
  height: auto;
}
.o-icon--call {
  --icon-font-size: 1rem;
}
.o-icon--call svg {
  aspect-ratio: 14/14;
  height: auto;
}
.o-icon--pencil {
  --icon-font-size: 1rem;
}
.o-icon--pencil svg {
  aspect-ratio: 14/14;
  height: auto;
}
.o-icon--flower {
  --icon-font-size: 1rem;
}
.o-icon--flower svg {
  aspect-ratio: 14/14;
  height: auto;
}
.o-icon--arrow {
  --icon-font-size: 1.71rem;
}
.o-icon--circle {
  --circle-background-color: #fff;
  --circle-border-color: #fff;
  --circle-svg-fill: var(--color-main-black);
  width: var(--btn-icon-size);
  height: var(--btn-icon-size);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 100%;
  border: 1px solid var(--circle-border-color);
  background-color: var(--circle-background-color);
  -webkit-transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out;
  aspect-ratio: 1/1;
  --icon-font-size: 1.71rem;
}
.o-icon--circle svg {
  fill: var(--circle-svg-fill);
  -webkit-transition: fill 0.3s ease-in-out;
  transition: fill 0.3s ease-in-out;
}
.o-icon--circle.large {
  --btn-icon-size: 4.28rem;
  --icon-font-size: 2.14rem;
  -webkit-box-shadow: 0 0.07rem 0.21rem 0.07rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.07rem 0.21rem 0.07rem rgba(0, 0, 0, 0.1);
}
.o-icon--circle.small {
  --btn-icon-size: 2.14rem;
  --icon-font-size: 1.07rem;
}

.o-icon-accordion {
  width: var(--accordion-icon-size);
  height: var(--accordion-icon-size);
  margin: auto 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}
.o-icon-accordion .o-icon {
  -webkit-transition: opacity 0.2s ease-in-out;
  transition: opacity 0.2s ease-in-out;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}
.o-icon-accordion .o-icon--plus {
  z-index: 1;
}
.o-icon-accordion .o-icon--minus {
  opacity: 0;
  z-index: 2;
}

img {
  display: block;
  width: 100%;
  height: auto;
}

.js-swiper-wrp [class*=" js-swiper-"]:not(.js-swiper-column):not(.swiper-initialized) .swiper-wrapper .swiper-slide:not(:first-child), .js-swiper-wrp [class^=js-swiper-]:not(.js-swiper-column):not(.swiper-initialized) .swiper-wrapper .swiper-slide:not(:first-child) {
  display: none;
}

.c-jump_menu {
  display: none;
}

.u-visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
}

@media only screen and (max-width: 767px) {
  .u-visually-hidden-s {
    position: absolute !important;
    clip: rect(1px, 1px, 1px, 1px);
    padding: 0 !important;
    border: 0 !important;
    height: 1px !important;
    width: 1px !important;
    overflow: hidden;
  }
}

.u-align--c {
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.u-align--c > * {
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (min-width: 768px) {
  .u-align--pt {
    text-align: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .u-align--pt > * {
    text-align: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
@media only screen and (max-width: 767px) {
  .u-align--s {
    text-align: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .u-align--s > * {
    text-align: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.js-in-view[class*=animation-] {
  -webkit-transition: opacity var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-transform var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-filter var(--animation-duration) var(--animation-delay) var(--animation-easing);
  transition: opacity var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-transform var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-filter var(--animation-duration) var(--animation-delay) var(--animation-easing);
  transition: opacity var(--animation-duration) var(--animation-delay) var(--animation-easing), transform var(--animation-duration) var(--animation-delay) var(--animation-easing), filter var(--animation-duration) var(--animation-delay) var(--animation-easing);
  transition: opacity var(--animation-duration) var(--animation-delay) var(--animation-easing), transform var(--animation-duration) var(--animation-delay) var(--animation-easing), filter var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-transform var(--animation-duration) var(--animation-delay) var(--animation-easing), -webkit-filter var(--animation-duration) var(--animation-delay) var(--animation-easing);
}
.js-in-view.animation-fade-up {
  -webkit-transform: translateY(35px);
          transform: translateY(35px);
  opacity: 0;
}
@media only screen and (max-width: 767px) {
  .js-in-view.animation-fade-up {
    -webkit-transform: translateY(1em);
            transform: translateY(1em);
  }
}
.js-in-view.animation-fade-up.is-active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}
.js-in-view.animation-fade-blur {
  opacity: 0;
  -webkit-filter: blur(1rem);
          filter: blur(1rem);
}
.js-in-view.animation-fade-blur.is-active {
  opacity: 1;
  -webkit-filter: blur(0);
          filter: blur(0);
}
.js-in-view.animation-fade-in {
  opacity: 0;
}
.js-in-view.animation-fade-in.is-active {
  opacity: 1;
}
.js-in-view.c-delay-slow1 {
  -webkit-transition-delay: calc(var(--animation-delay) + 0.25s);
          transition-delay: calc(var(--animation-delay) + 0.25s);
}
.js-in-view.c-delay-slow2 {
  -webkit-transition-delay: calc(var(--animation-delay) + 0.5s);
          transition-delay: calc(var(--animation-delay) + 0.5s);
}
.js-in-view.c-delay-slow3 {
  -webkit-transition-delay: calc(var(--animation-delay) + 0.75s);
          transition-delay: calc(var(--animation-delay) + 0.75s);
}

.l-modal {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.l-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.l-fix-nav {
  position: fixed;
  bottom: 1.07rem;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: calc(343 / 375 * 100%);
  -webkit-transition: visibility 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  transition: visibility 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, visibility 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  -webkit-transform: translateY(150%);
          transform: translateY(150%);
  visibility: hidden;
  z-index: 100;
}
.parts_fixed .l-fix-nav {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  visibility: visible;
}
.l-fix-nav__list {
  border-radius: 0.71rem;
  background-color: var(--color-main-black);
  border: 1px solid var(--color-main-gray);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.l-fix-nav__li {
  width: calc(1 / 3 * 100%);
  position: relative;
}
.l-fix-nav__li:not(:last-child)::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 1px;
  height: 70%;
  background-color: var(--color-main-gray);
}
.l-fix-nav__link {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-decoration: none;
  padding: 0.57rem 0.35rem;
}
.mouse .l-fix-nav__link {
  -webkit-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}
.mouse .l-fix-nav__link:hover, .touch .l-fix-nav__link.touchstart {
  opacity: 0.7;
}
.touch .l-fix-nav__link {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.touch .l-fix-nav__link.touchend {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.l-fix-nav__link .t {
  font-size: 0.86rem;
  text-align: center;
  line-height: 1.2;
  margin-top: 0.35rem;
}
.l-fix-nav__link .ic {
  width: 1.85rem;
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
.l-fix-nav__link .o-icon {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
  fill: #fff;
  --icon-font-size: 1.85rem;
}

html:not([lang=ja]) .disp_ja {
  display: none !important;
}

html:lang(ja) .hide_ja {
  display: none !important;
}

html:not([lang=en]) .disp_en {
  display: none !important;
}

html:lang(en) .hide_en {
  display: none !important;
}

.p-home-bg {
  position: relative;
  z-index: 1;
}

.p-home-fv {
  position: relative;
  z-index: 1;
  height: 100vh;
  height: 100svh;
}
.p-home-fv__slider {
  background-color: #000;
  position: fixed;
  z-index: 1;
  height: 100vh;
  width: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
}
.p-home-fv__slider::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  opacity: 0;
  -webkit-transition: opacity 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out;
  background-color: rgba(0, 0, 0, 0.4);
}
.p-home-fv__slide .inner {
  overflow: hidden;
  width: 100%;
  height: 100vh;
  position: absolute;
  left: 0;
}
.p-home-fv__slide .inner img {
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-home-fv.is-active .p-home-fv__slider::before {
  opacity: 1;
}
@media only screen and (min-width: 1025px) and (max-height: 599px) {
  .p-home-fv {
    min-height: 700px;
  }
}

.p-home-catch {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100vh;
  height: 100svh;
}
@media only screen and (min-width: 1025px) and (max-height: 599px) {
  .p-home-catch {
    min-height: 700px;
  }
}
.p-home-catch__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-bottom: 3.57rem;
  height: 100vh;
  height: 100svh;
  margin-right: auto;
  margin-left: auto;
}
@media only screen and (min-width: 1025px) {
  .p-home-catch__inner {
    width: calc(1200 / 1440 * 100%);
    max-width: calc(1200px);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) {
  .p-home-catch__inner {
    max-width: calc(1200px * (16 + 3) / 14);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) and (max-width: 1600px) {
  .p-home-catch__inner {
    max-width: calc(1200px * (16 + 2) / 14);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .p-home-catch__inner {
    width: calc(1200 / 1440 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__inner {
    width: calc(311 / 375 * 100%);
  }
}
@media only screen and (min-width: 1025px) and (max-height: 599px) {
  .p-home-catch__inner {
    min-height: 700px;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__inner {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.p-home-catch__title {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  z-index: 2;
}
.p-home-catch__title-jp {
  padding-bottom: 14.28rem;
  font-family: var(--font-family-jp-mincho);
  font-style: normal;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media only screen and (min-width: 768px) {
  .p-home-catch__title-jp {
    font-size: 4rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__title-jp {
    font-size: 2.86rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__title-jp {
    padding-bottom: 0;
  }
}
.p-home-catch__title-jp > span:nth-child(n+2) {
  margin-top: 0.25em;
}
.p-home-catch__title-en {
  font-family: var(--font-family-en-gothic);
  font-style: normal;
  font-weight: 300;
  line-height: 1.4;
  color: #fff;
  position: absolute;
  left: 9.28rem;
  top: 10.35rem;
}
@media only screen and (min-width: 768px) {
  .p-home-catch__title-en {
    font-size: 1rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__title-en {
    font-size: 0.79rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__title-en {
    left: calc(130 / 311 * 100%);
    top: 7.14rem;
  }
}
html[lang=en] .p-home-catch__title-en {
  right: 0;
  left: unset;
}
@media only screen and (max-width: 767px) {
  html[lang=en] .p-home-catch__title-en {
    top: 10.71rem;
  }
}
.p-home-catch__title-map {
  width: 25.28rem;
  margin-left: -10.72rem;
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 1025px) and (max-height: 599px) {
  .p-home-catch__title-map {
    -webkit-transform: translateY(-10%);
            transform: translateY(-10%);
  }
}
@media only screen and (max-width: 767px) {
  .p-home-catch__title-map {
    margin-right: 0;
    margin-left: auto;
    margin-top: calc(-60 / 311 * 100%);
    width: calc(250 / 311 * 100%);
  }
}
.p-home-catch .c-swiper-pagination {
  position: absolute;
  z-index: 4;
  right: 2.14rem;
  bottom: 1.42rem;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media only screen and (max-width: 767px) {
  .p-home-catch .c-swiper-pagination {
    right: 1.42rem;
  }
}

.p-home-read {
  position: relative;
  z-index: 4;
  height: 100vh;
  color: #fff;
  line-height: 2.8;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  background-color: transparent;
  min-height: 42.85rem;
  padding: 2.14rem 0;
  margin-right: auto;
  margin-left: auto;
}
@media only screen and (min-width: 1025px) {
  .p-home-read {
    width: calc(1200 / 1440 * 100%);
    max-width: calc(1200px);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) {
  .p-home-read {
    max-width: calc(1200px * (16 + 3) / 14);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) and (max-width: 1600px) {
  .p-home-read {
    max-width: calc(1200px * (16 + 2) / 14);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .p-home-read {
    width: calc(1200 / 1440 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .p-home-read {
    width: calc(311 / 375 * 100%);
  }
}
.p-home-read > p {
  max-width: 42.85rem;
}
@media only screen and (max-width: 767px) {
  .p-home-read > p {
    max-width: none;
  }
}
.p-home-read > p:nth-child(n+2) {
  margin-top: 2.85rem;
}

.c-home-cover {
  position: relative;
  z-index: 2;
  overflow: hidden;
  background-position: center top;
  background-repeat: repeat-y;
  background-size: 100% auto;
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .c-home-cover {
    background-image: url(../images/common/bg_dark-pc.png);
  }
}
@media only screen and (max-width: 767px) {
  .c-home-cover {
    background-image: url(../images/common/bg_dark-sp.png);
  }
}
.c-home-cover__bg {
  width: 100%;
  height: 0;
  position: absolute;
  opacity: 0.6;
  z-index: 0;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  mix-blend-mode: multiply;
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .c-home-cover__bg {
    width: 130%;
    left: -15%;
  }
}
@media only screen and (max-width: 767px) {
  .c-home-cover__bg {
    width: 150%;
    left: -25%;
  }
}

.l-header-lower {
  display: block;
  padding-top: calc(var(--nav-height) + var(--nav-height-top));
  position: relative;
}
.l-header-lower__title {
  padding-top: 4.28rem;
  padding-bottom: 6.42rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  z-index: 2;
  position: relative;
  margin-right: auto;
  margin-left: auto;
}
@media only screen and (min-width: 1025px) {
  .l-header-lower__title {
    width: calc(1080 / 1440 * 100%);
    max-width: calc(1080px);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) {
  .l-header-lower__title {
    max-width: calc(1080px * (16 + 3) / 14);
  }
}
@media only screen and (min-width: 1025px) and (min-width: 1441px) and (max-width: 1600px) {
  .l-header-lower__title {
    max-width: calc(1080px * (16 + 2) / 14);
  }
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .l-header-lower__title {
    width: calc(1200 / 1440 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .l-header-lower__title {
    width: calc(311 / 375 * 100%);
  }
}
@media only screen and (max-width: 767px) {
  .l-header-lower__title {
    padding-bottom: 3.21rem;
    padding-top: 2.85rem;
  }
}
.l-header-lower__title-jp {
  font-family: var(--font-family-jp-gothic);
  font-style: var(--font-family-jp-gothic-style);
  font-weight: var(--font-family-jp-gothic-weight);
  color: var(--color-accent);
  line-height: 1.2;
  font-weight: 600;
  margin-top: 0.71rem;
}
@media only screen and (min-width: 768px) {
  .l-header-lower__title-jp {
    font-size: 0.93rem;
  }
}
@media only screen and (max-width: 767px) {
  .l-header-lower__title-jp {
    font-size: 0.93rem;
  }
}
.l-header-lower__title-en {
  font-optical-sizing: auto;
  font-family: var(--font-family-en-mincho);
  font-style: var(--font-family-en-mincho-style);
  font-weight: var(--font-family-en-mincho-weight);
  line-height: 1;
  color: #fff;
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
@media only screen and (min-width: 768px) {
  .l-header-lower__title-en {
    font-size: 5rem;
  }
}
@media only screen and (max-width: 767px) {
  .l-header-lower__title-en {
    font-size: 3.43rem;
  }
}

#main {
  position: relative;
  z-index: 2;
}