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

html,
body {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

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

nav ul,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

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

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

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

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

del {
  text-decoration: line-through;
}

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

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

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

/* form reset
------------------------------- */
input,
select {
  vertical-align: middle;
}

input[type=button],
input[type=text],
input[type=submit],
input[type=image],
textarea {
  -webkit-appearance: none;
  border-radius: 0;
}

/* IE text マーク削除 */
input::-ms-clear {
  visibility: hidden;
}

/* IE password マーク削除 */
input::-ms-reveal {
  visibility: hidden;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -moz-appearance: none;
       appearance: none;
  color: inherit;
  -webkit-appearance: none;
}

span {
  font-weight: inherit;
}

/* ======================================
    Base
====================================== */
html {
  margin: 0;
  font-size: 62.5%;
  overflow-x: hidden;
}

body {
  width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: 0.025em;
  background: #fff;
  background: url(../images/top/bkg_body_sp.jpg) repeat-y top center/contain;
  word-wrap: break-word;
  font-family: "Noto Sans JP", sans-serif;
  color: #111216;
  -webkit-font-smoothing: antialiased;
  -webkit-animation: fadeInAnime 2s ease 0s 1 normal;
          animation: fadeInAnime 2s ease 0s 1 normal;
}
@media screen and (min-width: 1024px) {
  body {
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5625;
    letter-spacing: 0.05em;
    background: url(../images/top/bkg_body_pc.jpg) repeat-y top center/contain;
  }
}

p {
  line-height: 1.6;
}
p a:link {
  text-decoration: underline;
}
@media screen and (min-width: 1024px) {
  p {
    line-height: 1.5625;
  }
}

img[src$=".svg"] {
  width: 100%;
  height: auto;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  image-rendering: -webkit-optimize-contrast;
}

a img {
  border: none;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

small {
  text-align: center;
  font-size: 1rem;
  font-style: normal;
}

address {
  font-style: normal;
}

strong {
  font-weight: 700;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -moz-appearance: none;
       appearance: none;
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  -webkit-appearance: none;
}

sub {
  font-size: 60%;
  vertical-align: sub;
}

sup {
  font-size: 60%;
  vertical-align: super;
}

a {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  text-decoration: none;
}
a:link {
  color: #003ec7;
}
a:visited {
  color: #540082;
}
a:hover {
  color: #003ec7;
  text-decoration: none;
  opacity: 0.7;
}
@media screen and (min-width: 1024px) {
  a {
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
  a:hover img, a:focus img {
    opacity: 0.7;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}

/* =================================================
    .bl_header
=================================================== */
.bl_header {
  width: 100%;
  height: 65px;
  position: absolute;
  top: 0;
  left: 0;
  padding-top: 16px;
  z-index: 11000;
}
@media screen and (min-width: 1366px) {
  .bl_header {
    padding-top: 34px;
    height: 85px;
  }
}
.bl_header_inner {
  width: 91.4666666667%;
  height: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .bl_header_inner {
    width: 92.1875%;
  }
}
@media screen and (min-width: 1366px) {
  .bl_header_inner {
    width: 94.7368421053%;
  }
}
.bl_header_logo {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 73.4328358209%;
  max-width: 246px;
  height: auto;
  z-index: 11000;
}
@media screen and (min-width: 1366px) {
  .bl_header_logo {
    width: 23.9166666667%;
    max-width: 287px;
  }
}

/* =================================================
    main
=================================================== */
/* =================================================
    layout section
=================================================== */
.ly_sec {
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.ly_sec_inner {
  width: 91.4666666667%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .ly_sec_inner {
    width: 100%;
    padding-left: 30px;
    padding-right: 0;
    margin-right: 0;
  }
}
@media screen and (min-width: 1366px) {
  .ly_sec_inner {
    width: 96.875%;
    max-width: 1860px;
  }
}

/* =================================================
    footer
=================================================== */
.bl_footer {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0 auto;
  color: #000;
  text-align: center;
  overflow-x: hidden;
}
@media screen and (min-width: 1366px) {
  .bl_footer {
    background: url(../images/top/bkg_footer_pc.jpg) no-repeat bottom center/cover;
  }
}
.bl_footer .el_prpoduced {
  text-align: center;
  padding-bottom: 30px;
}
@media screen and (min-width: 768px) {
  .bl_footer .el_prpoduced {
    position: absolute;
    left: 10px;
    bottom: 20px;
    padding-bottom: 0;
    text-align: left;
  }
}
.bl_footer .el_prpoduced a {
  text-align: left;
  font-size: 12px;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  line-height: 1;
  color: #88888a;
}
.bl_footer .ly_sec_inner {
  padding-top: 30px;
  padding-bottom: 40px;
  border-top: 1px solid #111216;
}
@media screen and (min-width: 1024px) {
  .bl_footer .ly_sec_inner {
    width: 84.2105263158%;
    max-width: 1600px;
    padding-top: 0;
    padding-left: 143px;
    padding-right: 0;
    padding-bottom: 75px;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
  }
}
.bl_footer_logo {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 15px;
  margin: 0 auto;
  font-size: 17px;
  font-size: 1.7rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
}
.ly_sec_inner a {
	color: #111216;
}
@media screen and (min-width: 1024px) {
  .bl_footer_logo {
    display: block;
    padding-top: 40px;
    margin: 0;
    text-align: left;
  }
}
.bl_footer_logo::before {
  content: "";
  display: inline-block;
  width: 56px;
  height: 61px;
  background: url(../images/common/logo_footer.svg) no-repeat center center/contain;
}
@media screen and (min-width: 1024px) {
  .bl_footer_logo::before {
    width: 90px;
    height: 99px;
    position: absolute;
    top: 15px;
    left: -143px;
  }
}
.bl_footer address {
  margin: 0 auto 25px;
  line-height: 1.4666666667;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .bl_footer address {
    margin: 0;
    margin-top: 5px;
  }
}
.bl_footer address span {
  display: block;
}
@media screen and (min-width: 1024px) {
  .bl_footer address span {
    display: inline-block;
  }
}
.bl_footer_copyright {
  display: block;
  font-size: 12px;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  line-height: 1;
  text-align: center;
  color: #88888a;
}
/* =================================================
    layout Flex
=================================================== */
.ly_flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.ly_flex_center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.ly_flex_btw {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.ly_flex_ard {
  -ms-flex-pack: distribute;
      justify-content: space-around;
}
.ly_flex_start {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
}
.ly_flex_row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.ly_flex_nowrap {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}
.ly_flex .ly_flexBox50 {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
}

@media screen and (min-width: 1024px) {
  .ly_flex_pc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .ly_flex_pc_center {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .ly_flex_pc_btw {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .ly_flex_pc_ard {
    -ms-flex-pack: distribute;
        justify-content: space-around;
  }
  .ly_flex_pc_start {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
  }
  .ly_flex_pc_row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
  }
  .ly_flex_pc_nowrap {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}

/*==================================================
ふわっ
===================================*/
/* その場で */
.fadeIn {
  -webkit-animation-name: fadeInAnime;
          animation-name: fadeInAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes fadeInAnime {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* 下から */
.fadeUp {
  -webkit-animation-name: fadeUpAnime;
          animation-name: fadeUpAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
  opacity: 1;
}

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(100px);
            transform: translateY(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* 上から */
.fadeDown {
  -webkit-animation-name: fadeDownAnime;
          animation-name: fadeDownAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes fadeDownAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeDownAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* 左から */
.fadeLeft {
  -webkit-animation-name: fadeLeftAnime;
          animation-name: fadeLeftAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes fadeLeftAnime {
  from {
    opacity: 0;
    -webkit-transform: translateX(-100px);
            transform: translateX(-100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    -webkit-transform: translateX(-100px);
            transform: translateX(-100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* 右から */
.fadeRight {
  -webkit-animation-name: fadeRightAnime;
          animation-name: fadeRightAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes fadeRightAnime {
  from {
    opacity: 0;
    -webkit-transform: translateX(100px);
            transform: translateX(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes fadeRightAnime {
  from {
    opacity: 0;
    -webkit-transform: translateX(100px);
            transform: translateX(100px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_fadeInTrigger,
.js_fadeUpTrigger,
.js_fadeDownTrigger,
.js_fadeLeftTrigger,
.js_fadeRightTrigger {
  opacity: 0;
}

/*==================================================
パタッ
===================================*/
/* 下へ */
.flipDown {
  -webkit-animation-name: flipDownAnime;
          animation-name: flipDownAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes flipDownAnime {
  from {
    -webkit-transform: perspective(2500px) rotateX(100deg);
            transform: perspective(2500px) rotateX(100deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(2500px) rotateX(0);
            transform: perspective(2500px) rotateX(0);
    opacity: 1;
  }
}

@keyframes flipDownAnime {
  from {
    -webkit-transform: perspective(2500px) rotateX(100deg);
            transform: perspective(2500px) rotateX(100deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(2500px) rotateX(0);
            transform: perspective(2500px) rotateX(0);
    opacity: 1;
  }
}
/* 左へ */
.flipLeft {
  -webkit-animation-name: flipLeftAnime;
          animation-name: flipLeftAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-perspective-origin: left center;
          perspective-origin: left center;
  opacity: 0;
}

@-webkit-keyframes flipLeftAnime {
  from {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}

@keyframes flipLeftAnime {
  from {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(30deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}
/* 左上へ */
.flipLeftTop {
  -webkit-animation-name: flipLeftTopAnime;
          animation-name: flipLeftTopAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes flipLeftTopAnime {
  from {
    -webkit-transform: translate(-20px, 80px) rotate(-15deg);
            transform: translate(-20px, 80px) rotate(-15deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate(0, 0) rotate(0deg);
            transform: translate(0, 0) rotate(0deg);
    opacity: 1;
  }
}

@keyframes flipLeftTopAnime {
  from {
    -webkit-transform: translate(-20px, 80px) rotate(-15deg);
            transform: translate(-20px, 80px) rotate(-15deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate(0, 0) rotate(0deg);
            transform: translate(0, 0) rotate(0deg);
    opacity: 1;
  }
}
/* 右へ */
.flipRight {
  -webkit-animation-name: flipRightAnime;
          animation-name: flipRightAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-perspective-origin: right center;
          perspective-origin: right center;
  opacity: 0;
}

@-webkit-keyframes flipRightAnime {
  from {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}

@keyframes flipRightAnime {
  from {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(-30deg);
    opacity: 0;
  }
  to {
    -webkit-transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
            transform: perspective(600px) translate3d(0, 0, 0) rotateY(0deg);
    opacity: 1;
  }
}
/* 右上へ */
.flipRightTop {
  -webkit-animation-name: flipRightTopAnime;
          animation-name: flipRightTopAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes flipRightTopAnime {
  from {
    -webkit-transform: translate(-20px, 80px) rotate(25deg);
            transform: translate(-20px, 80px) rotate(25deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate(0, 1) rotate(0deg);
            transform: translate(0, 1) rotate(0deg);
    opacity: 1;
  }
}

@keyframes flipRightTopAnime {
  from {
    -webkit-transform: translate(-20px, 80px) rotate(25deg);
            transform: translate(-20px, 80px) rotate(25deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate(0, 1) rotate(0deg);
            transform: translate(0, 1) rotate(0deg);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_flipDownTrigger,
.js_flipLeftTrigger,
.js_flipLeftTopTrigger,
.js_flipRightTrigger,
.js_flipRightTopTrigger {
  opacity: 0;
}

/*==================================================
くるっ
===================================*/
/* X 軸（縦へ） */
.rotateX {
  -webkit-animation-name: rotateXAnime;
          animation-name: rotateXAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes rotateXAnime {
  from {
    -webkit-transform: rotateX(0);
            transform: rotateX(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateX(-360deg);
            transform: rotateX(-360deg);
    opacity: 1;
  }
}

@keyframes rotateXAnime {
  from {
    -webkit-transform: rotateX(0);
            transform: rotateX(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateX(-360deg);
            transform: rotateX(-360deg);
    opacity: 1;
  }
}
/*　Y軸（横へ） */
.rotateY {
  -webkit-animation-name: rotateYAnime;
          animation-name: rotateYAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes rotateYAnime {
  from {
    -webkit-transform: rotateY(0);
            transform: rotateY(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateY(-360deg);
            transform: rotateY(-360deg);
    opacity: 1;
  }
}

@keyframes rotateYAnime {
  from {
    -webkit-transform: rotateY(0);
            transform: rotateY(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateY(-360deg);
            transform: rotateY(-360deg);
    opacity: 1;
  }
}
/* Z 軸（左へ） */
.rotateLeftZ {
  -webkit-animation-name: rotateLeftZAnime;
          animation-name: rotateLeftZAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes rotateLeftZAnime {
  from {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateZ(-360deg);
            transform: rotateZ(-360deg);
    opacity: 1;
  }
}

@keyframes rotateLeftZAnime {
  from {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateZ(-360deg);
            transform: rotateZ(-360deg);
    opacity: 1;
  }
}
/*　Z 軸（右へ） */
.rotateRightZ {
  -webkit-animation-name: rotateRightZAnime;
          animation-name: rotateRightZAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes rotateRightZAnime {
  from {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
    opacity: 1;
  }
}

@keyframes rotateRightZAnime {
  from {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
    opacity: 0;
  }
  to {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_rotateXTrigger,
.js_rotateYTrigger,
.js_rotateLeftZTrigger,
.js_rotateRightZTrigger {
  opacity: 0;
}

/*==================================================
ボンッ、ヒュッ
===================================*/
/* 拡大 */
.zoomIn {
  -webkit-animation-name: zoomInAnime;
          animation-name: zoomInAnime;
  -webkit-animation-duration: 0.8s;
          animation-duration: 0.8s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes zoomInAnime {
  from {
    -webkit-transform: scale(0.6);
            transform: scale(0.6);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}

@keyframes zoomInAnime {
  from {
    -webkit-transform: scale(0.6);
            transform: scale(0.6);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
/* 縮小 */
.zoomOut {
  -webkit-animation-name: zoomOutAnime;
          animation-name: zoomOutAnime;
  -webkit-animation-duration: 0.8s;
          animation-duration: 0.8s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes zoomOutAnime {
  from {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}

@keyframes zoomOutAnime {
  from {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 0;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_zoomInTrigger,
.js_zoomOutTrigger {
  opacity: 0;
}

/*==================================================
じわっ
===================================*/
/* ぼかしから出現 */
.blur {
  -webkit-animation-name: blurAnime;
          animation-name: blurAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes blurAnime {
  from {
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
    opacity: 0.1;
  }
  to {
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}

@keyframes blurAnime {
  from {
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(1.02);
            transform: scale(1.02);
    opacity: 0.1;
  }
  to {
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_blurTrigger {
  opacity: 0.1;
}

/*==================================================
にゅーん
===================================*/
/* 滑らかに変形して出現 */
.smooth {
  -webkit-animation-name: smoothAnime;
          animation-name: smoothAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: left;
          transform-origin: left;
  opacity: 0;
}

@-webkit-keyframes smoothAnime {
  from {
    -webkit-transform: translate3d(0, 100%, 0) skewY(12deg);
            transform: translate3d(0, 100%, 0) skewY(12deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) skewY(0);
            transform: translate3d(0, 0, 0) skewY(0);
    opacity: 1;
  }
}

@keyframes smoothAnime {
  from {
    -webkit-transform: translate3d(0, 100%, 0) skewY(12deg);
            transform: translate3d(0, 100%, 0) skewY(12deg);
    opacity: 0;
  }
  to {
    -webkit-transform: translate3d(0, 0, 0) skewY(0);
            transform: translate3d(0, 0, 0) skewY(0);
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_smoothTrigger {
  opacity: 0;
  opacity: 1;
}

/*==================================================
スーッ（枠線が伸びて出現）
===================================*/
/*枠線が伸びて出現*/
.js_lineTrigger {
  position: relative; /* 枠線が書かれる基点*/
  opacity: 0;
}

.js_lineTrigger.lineanime {
  -webkit-animation-name: lineAnimeBase;
          animation-name: lineAnimeBase;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes lineAnimeBase {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes lineAnimeBase {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*上下線*/
.js_lineTrigger::before,
.js_lineTrigger::after {
  position: absolute;
  content: "";
  width: 0;
  height: 1px;
  background: #333; /* 枠線の色*/
}

/*左右線*/
.line2::before,
.line2::after {
  position: absolute;
  content: "";
  width: 1px;
  height: 0;
  background: #333; /* 枠線の色*/
}

/*上線*/
.js_lineTrigger::before {
  top: 0;
  left: 0;
}

.js_lineTrigger.lineanime::before {
  -webkit-animation: lineAnime 0.5s linear 0s forwards;
          animation: lineAnime 0.5s linear 0s forwards; /*表示されて0秒後に上線が0.5秒かけて表示*/
}

/*右線*/
.js_line2::before {
  top: 0;
  right: 0;
}

.js_lineTrigger.lineanime .line2::before {
  -webkit-animation: lineAnime2 0.5s linear 0.5s forwards;
          animation: lineAnime2 0.5s linear 0.5s forwards; /*表示されて0.5秒後に右線が0.5秒かけて表示*/
}

/*下線*/
.js_lineTrigger::after {
  bottom: 0;
  right: 0;
}

.js_lineTrigger.lineanime::after {
  -webkit-animation: lineAnime 0.5s linear 1s forwards;
          animation: lineAnime 0.5s linear 1s forwards; /*表示されて1秒後に下線が0.5秒かけて表示*/
}

/*左線*/
.line2::after {
  bottom: 0;
  left: 0;
}

.js_lineTrigger.lineanime .line2::after {
  -webkit-animation: lineAnime2 0.5s linear 1.5s forwards;
          animation: lineAnime2 0.5s linear 1.5s forwards; /*表示されて1.5秒後に左線が0.5秒かけて表示*/
}

@-webkit-keyframes lineAnime {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

@keyframes lineAnime {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}
@-webkit-keyframes lineAnime2 {
  0% {
    height: 0%;
  }
  100% {
    height: 100%;
  }
}
@keyframes lineAnime2 {
  0% {
    height: 0%;
  }
  100% {
    height: 100%;
  }
}
/*枠線内側の要素*/
.js_lineTrigger.lineanime .lineinappear {
  -webkit-animation: lineInnerAnime 0.5s linear 1.5s forwards;
          animation: lineInnerAnime 0.5s linear 1.5s forwards; /*1.5秒後に中央のエリアが0.5秒かけて表示*/
  opacity: 0; /*初期値を透過0にする*/
}

@-webkit-keyframes lineInnerAnime {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes lineInnerAnime {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*==================================================
シャッ（背景色が伸びて出現）
===================================*/
/*背景色が伸びて出現（共通）*/
.bgextend {
  -webkit-animation-name: bgextendAnimeBase;
          animation-name: bgextendAnimeBase;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  position: relative;
  overflow: hidden; /*　はみ出た色要素を隠す　*/
  opacity: 0;
}

@-webkit-keyframes bgextendAnimeBase {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes bgextendAnimeBase {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*中の要素*/
.bgappear {
  -webkit-animation-name: bgextendAnimeSecond;
          animation-name: bgextendAnimeSecond;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes bgextendAnimeSecond {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes bgextendAnimeSecond {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*左から*/
.bgLRextend::before {
  -webkit-animation-name: bgLRextendAnime;
          animation-name: bgLRextendAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #472c23; /*伸びる背景色の設定*/
}

@-webkit-keyframes bgLRextendAnime {
  0% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  50% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50.001% {
    -webkit-transform-origin: right;
            transform-origin: right;
  }
  100% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}

@keyframes bgLRextendAnime {
  0% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  50% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50.001% {
    -webkit-transform-origin: right;
            transform-origin: right;
  }
  100% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}
/*右から*/
.bgRLextend::before {
  -webkit-animation-name: bgRLextendAnime;
          animation-name: bgRLextendAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #472c23; /*伸びる背景色の設定*/
}

@-webkit-keyframes bgRLextendAnime {
  0% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  50% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50.001% {
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  100% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}

@keyframes bgRLextendAnime {
  0% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  50% {
    -webkit-transform-origin: right;
            transform-origin: right;
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
  50.001% {
    -webkit-transform-origin: left;
            transform-origin: left;
  }
  100% {
    -webkit-transform-origin: left;
            transform-origin: left;
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
}
/*下から*/
.bgDUextend::before {
  -webkit-animation-name: bgDUextendAnime;
          animation-name: bgDUextendAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #472c23; /*伸びる背景色の設定*/
}

@-webkit-keyframes bgDUextendAnime {
  0% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
  50% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(1);
            transform: scaleY(1);
  }
  50.001% {
    -webkit-transform-origin: top;
            transform-origin: top;
  }
  100% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
}

@keyframes bgDUextendAnime {
  0% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
  50% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(1);
            transform: scaleY(1);
  }
  50.001% {
    -webkit-transform-origin: top;
            transform-origin: top;
  }
  100% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
}
/*上から*/
.bgUDextend::before {
  -webkit-animation-name: bgUDextendAnime;
          animation-name: bgUDextendAnime;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #472c23; /*伸びる背景色の設定*/
}

@-webkit-keyframes bgUDextendAnime {
  0% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
  50% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(1);
            transform: scaleY(1);
  }
  50.001% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
  }
  100% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
}

@keyframes bgUDextendAnime {
  0% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
  50% {
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transform: scaleY(1);
            transform: scaleY(1);
  }
  50.001% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
  }
  100% {
    -webkit-transform-origin: bottom;
            transform-origin: bottom;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.js_bgappearTrigger,
.js_bgUDextendTrigger,
.js_bgDUextendTrigger,
.js_bgRLextendTrigger,
.js_bgLRextendTrigger {
  opacity: 0;
}

/* =================================================
    アニメーション設定
=================================================== */
/* アニメーションの回数を決めるCSS*/
.count2 {
  -webkit-animation-iteration-count: 2;
          animation-iteration-count: 2; /*この数字を必要回数分に変更*/
}

.countinfinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite; /*無限ループ*/
}

/* アニメーションスタートの遅延時間を決めるCSS*/
.hp_delay_time0 {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}

.hp_delay_time1 {
  -webkit-animation-delay: 0.5s;
          animation-delay: 0.5s;
}

.hp_delay_time2 {
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}

.hp_delay_time3 {
  -webkit-animation-delay: 1.5s;
          animation-delay: 1.5s;
}

.hp_delay_time4 {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}

.hp_delay_time5 {
  -webkit-animation-delay: 2.5s;
          animation-delay: 2.5s;
}

.hp_delay_time6 {
  -webkit-animation-delay: 3s;
          animation-delay: 3s;
}

.hp_delay_time7 {
  -webkit-animation-delay: 3.5s;
          animation-delay: 3.5s;
}

.hp_delay_time8 {
  -webkit-animation-delay: 4s;
          animation-delay: 4s;
}

.hp_delay_time9 {
  -webkit-animation-delay: 4.5s;
          animation-delay: 4.5s;
}

.hp_delay_time10 {
  -webkit-animation-delay: 5s;
          animation-delay: 5s;
}

/* アニメーション自体が変化する時間を決めるCSS*/
.hp_change_time0 {
  -webkit-animation-duration: 0s;
          animation-duration: 0s;
}

.hp_change_time1 {
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
}

.hp_change_time2 {
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}

.hp_change_time3 {
  -webkit-animation-duration: 1.5s;
          animation-duration: 1.5s;
}

.hp_change_time4 {
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
}

.hp_change_time5 {
  -webkit-animation-duration: 2.5s;
          animation-duration: 2.5s;
}

.hp_change_time6 {
  -webkit-animation-duration: 3s;
          animation-duration: 3s;
}

.hp_change_time7 {
  -webkit-animation-duration: 3.5s;
          animation-duration: 3.5s;
}

.hp_change_time8 {
  -webkit-animation-duration: 4s;
          animation-duration: 4s;
}

.hp_change_time9 {
  -webkit-animation-duration: 4.5s;
          animation-duration: 4.5s;
}

.hp_change_time10 {
  -webkit-animation-duration: 5s;
          animation-duration: 5s;
}

/* ======================================
    .mask
====================================== */
.js_mask {
  position: relative;
  display: block;
  overflow: hidden;
}

/* ======================================
    .js_pageTop
====================================== */
.bl_pageTop {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  bottom: -200px;
  right: 15px;
  width: 46px;
  height: 46px;
  background: #472c23;
  border: 1px solid #fff;
  text-align: center;
  padding-top: 15px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.bl_pageTop::before {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-left: solid 2px #fff;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg); /* ← ここを変更 */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
@media screen and (min-width: 1024px) {
  .bl_pageTop {
    cursor: pointer;
    width: 55px;
    height: 55px;
    bottom: -200px;
    right: 48px;
    z-index: 10010;
    -webkit-transition: 0.3s ease-out;
    transition: 0.3s ease-out;
  }
  .bl_pageTop.is_active {
    bottom: 50px;
  }
}
.bl_pageTop.is_active {
  bottom: 20px;
  opacity: 0.8;
  visibility: visible;
}

/* ======================================
    .Swiper 初期化
====================================== */
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after,
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
  content: "";
}

/* =================================================
    .bl_sample slide
=================================================== */
.bl_sample {
  padding-top: 30px;
  padding-bottom: 80px;
}
@media screen and (min-width: 1024px) {
  .bl_sample {
    padding-top: 60px;
    padding-bottom: 120px;
  }
}
.bl_sample_slideWrap {
  position: relative;
  margin: 30px calc(50% - 50vw);
}
@media screen and (min-width: 768px) {
  .bl_sample_slideWrap {
    margin: 50px auto;
  }
}
@media screen and (min-width: 1024px) {
  .bl_sample_slideWrap {
    max-width: 1140px;
    margin: 60px 0;
  }
}
.bl_sample_slideWrap .swiper {
  position: relative;
}
.bl_sample_slideWrap .swiper .swiper-slide > a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  color: #111216;
}
.bl_sample_slideWrap .swiper .swiper-slide > a .el_thum {
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  overflow: hidden;
}
.bl_sample_slideWrap .swiper .swiper-slide > a .el_thum img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.bl_sample_slideWrap .swiper .swiper-slide > a .el_cont {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 100%;
  padding: 10px;
}
.bl_sample_slideWrap .swiper .swiper-slide > a .el_cont time {
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0.05em;
}
.bl_sample_slideWrap .swiper .swiper-slide > a .el_cont p {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.3333333333;
  letter-spacing: 0.025em;
}
.bl_sample_slideWrap .el_swiperButton {
  position: absolute;
  width: 100vw;
  height: 45px;
  top: 28.6458333333vw;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  pointer-events: none;
  z-index: 20;
}
@media screen and (min-width: 1024px) {
  .bl_sample_slideWrap .el_swiperButton {
    top: 7.34375vw;
    height: 60px;
  }
}
@media screen and (min-width: 1280px) {
  .bl_sample_slideWrap .el_swiperButton {
    top: 85px;
    width: calc(100% + 120px);
  }
}
.bl_sample_slideWrap .el_swiperButton .swiper-button-prev,
.bl_sample_slideWrap .el_swiperButton .swiper-button-next {
  width: 45px;
  height: 45px;
  opacity: 1;
  margin-top: 0;
  top: 0;
  pointer-events: all;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
@media screen and (min-width: 1024px) {
  .bl_sample_slideWrap .el_swiperButton .swiper-button-prev,
  .bl_sample_slideWrap .el_swiperButton .swiper-button-next {
    width: 60px;
    height: 60px;
  }
}
@media screen and (min-width: 1024px) {
  .bl_sample_slideWrap .el_swiperButton .swiper-button-prev,
  .bl_sample_slideWrap .el_swiperButton .swiper-button-next {
    cursor: pointer;
  }
  .bl_sample_slideWrap .el_swiperButton .swiper-button-prev:hover,
  .bl_sample_slideWrap .el_swiperButton .swiper-button-next:hover {
    opacity: 0.7;
  }
}
.bl_sample_slideWrap .el_swiperButton .swiper-button-prev {
  left: 0;
  background: url("../images/top/slideleft_black.svg") no-repeat center center/contain;
}
.bl_sample_slideWrap .el_swiperButton .swiper-button-next {
  right: 0;
  background: url("../images/top/slideright_black.svg") no-repeat center center/contain;
}
.bl_sample_slideWrap .swiper-pagination {
  position: static;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 90%;
  margin: 30px auto 0;
  gap: 20px;
}
@media screen and (min-width: 1024px) {
  .bl_sample_slideWrap .swiper-pagination {
    margin: 50px auto 0;
  }
}
.bl_sample_slideWrap .swiper-pagination .swiper-pagination-bullet {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  width: 30px;
  height: 30px;
  margin: 0;
  background: #cad2e2;
  border-radius: 100vh;
  opacity: 1;
  font-weight: 500;
  font-size: 16px;
  font-size: 1.6rem;
  color: #472c23;
  line-height: 30px;
  text-align: center;
}
.bl_sample_slideWrap .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: #0092d9;
}
.bl_sample_slideWrap.is_noslide .swiper-wrapper {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 50px;
}
.bl_sample_slideWrap.is_noslide .swiper-wrapper .swiper-slide {
  -ms-flex-negative: 1;
      flex-shrink: 1;
  width: 100%;
  max-width: 400px;
}
@media screen and (min-width: 768px) {
  .bl_sample_slideWrap.is_noslide .swiper-wrapper .swiper-slide {
    max-width: 400px;
  }
}
.bl_sample_slideWrap.is_noslide .swiper-button-prev,
.bl_sample_slideWrap.is_noslide .swiper-button-next {
  display: none;
}
.bl_sample .el_btnWrap {
  text-align: center;
}

/* ======================================
    Common Class
====================================== */
/*  display
-------------------------------------- */
.hp_sp_none {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .hp_sp_none {
    display: block !important;
  }
}

.hp_sp_display {
  display: block !important;
}
@media screen and (min-width: 768px) {
  .hp_sp_display {
    display: none !important;
  }
}

.hp_pc_none {
  display: block !important;
}
@media screen and (min-width: 1024px) {
  .hp_pc_none {
    display: none !important;
  }
}

.hp_pc_display {
  display: none !important;
}
@media screen and (min-width: 1024px) {
  .hp_pc_display {
    display: block !important;
  }
}

/*  direction
-------------------------------------- */
.hp_row-reverse {
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: reverse !important;
      -ms-flex-direction: row-reverse !important;
          flex-direction: row-reverse !important;
}

/*  text_align
-------------------------------------- */
.hp_text_center {
  text-align: center !important;
}

.hp_text_left {
  text-align: left !important;
}

.hp_text_right {
  text-align: right !important;
}

/*  margin padding
-------------------------------------- */
/* padding 部分的な設定*/
.hp_pb-0 {
  padding-bottom: 0px !important;
  padding-bottom: 0rem !important;
}

.hp_pb-5 {
  padding-bottom: 5px !important;
  padding-bottom: 0.5rem !important;
}

.hp_pb-10 {
  padding-bottom: 10px !important;
  padding-bottom: 1rem !important;
}

.hp_pb-15 {
  padding-bottom: 15px !important;
  padding-bottom: 1.5rem !important;
}

.hp_pb-20 {
  padding-bottom: 20px !important;
  padding-bottom: 2rem !important;
}

.hp_pb-25 {
  padding-bottom: 25px !important;
  padding-bottom: 2.5rem !important;
}

.hp_pb-30 {
  padding-bottom: 30px !important;
  padding-bottom: 3rem !important;
}

.hp_pb-35 {
  padding-bottom: 35px !important;
  padding-bottom: 3.5rem !important;
}

.hp_pb-40 {
  padding-bottom: 40px !important;
  padding-bottom: 4rem !important;
}

.hp_pb-45 {
  padding-bottom: 45px !important;
  padding-bottom: 4.5rem !important;
}

.hp_pb-50 {
  padding-bottom: 50px !important;
  padding-bottom: 5rem !important;
}

/* margin 部分的な設定*/
.mt-0 {
  margin-top: 0px !important;
}
@media screen and (min-width: 1024px) {
  .mt-0 {
    margin-top: 0px !important;
  }
}

.mt-10 {
  margin-top: 8px !important;
}
@media screen and (min-width: 1024px) {
  .mt-10 {
    margin-top: 10px !important;
  }
}

.mt-20 {
  margin-top: 16px !important;
}
@media screen and (min-width: 1024px) {
  .mt-20 {
    margin-top: 20px !important;
  }
}

.mt-30 {
  margin-top: 24px !important;
}
@media screen and (min-width: 1024px) {
  .mt-30 {
    margin-top: 30px !important;
  }
}

.mt-40 {
  margin-top: 32px !important;
}
@media screen and (min-width: 1024px) {
  .mt-40 {
    margin-top: 40px !important;
  }
}

.mt-50 {
  margin-top: 40px !important;
}
@media screen and (min-width: 1024px) {
  .mt-50 {
    margin-top: 50px !important;
  }
}

.mt-60 {
  margin-top: 48px !important;
}
@media screen and (min-width: 1024px) {
  .mt-60 {
    margin-top: 60px !important;
  }
}

.mt-70 {
  margin-top: 56px !important;
}
@media screen and (min-width: 1024px) {
  .mt-70 {
    margin-top: 70px !important;
  }
}

.mt-80 {
  margin-top: 64px !important;
}
@media screen and (min-width: 1024px) {
  .mt-80 {
    margin-top: 80px !important;
  }
}

.mt-90 {
  margin-top: 72px !important;
}
@media screen and (min-width: 1024px) {
  .mt-90 {
    margin-top: 90px !important;
  }
}

.mt-100 {
  margin-top: 80px !important;
}
@media screen and (min-width: 1024px) {
  .mt-100 {
    margin-top: 100px !important;
  }
}

.mt--0 {
  margin-top: 0px !important;
}
@media screen and (min-width: 1024px) {
  .mt--0 {
    margin-top: 0px !important;
  }
}

.mt--10 {
  margin-top: -8px !important;
}
@media screen and (min-width: 1024px) {
  .mt--10 {
    margin-top: -10px !important;
  }
}

.mt--20 {
  margin-top: -16px !important;
}
@media screen and (min-width: 1024px) {
  .mt--20 {
    margin-top: -20px !important;
  }
}

.mt--30 {
  margin-top: -24px !important;
}
@media screen and (min-width: 1024px) {
  .mt--30 {
    margin-top: -30px !important;
  }
}

.mt--40 {
  margin-top: -32px !important;
}
@media screen and (min-width: 1024px) {
  .mt--40 {
    margin-top: -40px !important;
  }
}

.mt--50 {
  margin-top: -40px !important;
}
@media screen and (min-width: 1024px) {
  .mt--50 {
    margin-top: -50px !important;
  }
}

.mt--60 {
  margin-top: -48px !important;
}
@media screen and (min-width: 1024px) {
  .mt--60 {
    margin-top: -60px !important;
  }
}

.mt--70 {
  margin-top: -56px !important;
}
@media screen and (min-width: 1024px) {
  .mt--70 {
    margin-top: -70px !important;
  }
}

.mt--80 {
  margin-top: -64px !important;
}
@media screen and (min-width: 1024px) {
  .mt--80 {
    margin-top: -80px !important;
  }
}

.mt--90 {
  margin-top: -72px !important;
}
@media screen and (min-width: 1024px) {
  .mt--90 {
    margin-top: -90px !important;
  }
}

.mt--100 {
  margin-top: -80px !important;
}
@media screen and (min-width: 1024px) {
  .mt--100 {
    margin-top: -100px !important;
  }
}

.mb-0 {
  margin-bottom: 0px !important;
}
@media screen and (min-width: 1024px) {
  .mb-0 {
    margin-bottom: 0rem !important;
  }
}

.mb-10 {
  margin-bottom: 8px !important;
}
@media screen and (min-width: 1024px) {
  .mb-10 {
    margin-bottom: 10rem !important;
  }
}

.mb-20 {
  margin-bottom: 16px !important;
}
@media screen and (min-width: 1024px) {
  .mb-20 {
    margin-bottom: 20rem !important;
  }
}

.mb-30 {
  margin-bottom: 24px !important;
}
@media screen and (min-width: 1024px) {
  .mb-30 {
    margin-bottom: 30rem !important;
  }
}

.mb-40 {
  margin-bottom: 32px !important;
}
@media screen and (min-width: 1024px) {
  .mb-40 {
    margin-bottom: 40rem !important;
  }
}

.mb-50 {
  margin-bottom: 40px !important;
}
@media screen and (min-width: 1024px) {
  .mb-50 {
    margin-bottom: 50rem !important;
  }
}

.mb-60 {
  margin-bottom: 48px !important;
}
@media screen and (min-width: 1024px) {
  .mb-60 {
    margin-bottom: 60rem !important;
  }
}

.mb-70 {
  margin-bottom: 56px !important;
}
@media screen and (min-width: 1024px) {
  .mb-70 {
    margin-bottom: 70rem !important;
  }
}

.mb-80 {
  margin-bottom: 64px !important;
}
@media screen and (min-width: 1024px) {
  .mb-80 {
    margin-bottom: 80rem !important;
  }
}

.mb-90 {
  margin-bottom: 72px !important;
}
@media screen and (min-width: 1024px) {
  .mb-90 {
    margin-bottom: 90rem !important;
  }
}

.mb-100 {
  margin-bottom: 80px !important;
}
@media screen and (min-width: 1024px) {
  .mb-100 {
    margin-bottom: 100rem !important;
  }
}

.mb-110 {
  margin-bottom: 88px !important;
}
@media screen and (min-width: 1024px) {
  .mb-110 {
    margin-bottom: 110rem !important;
  }
}

.mb-120 {
  margin-bottom: 96px !important;
}
@media screen and (min-width: 1024px) {
  .mb-120 {
    margin-bottom: 120rem !important;
  }
}

.mb-130 {
  margin-bottom: 104px !important;
}
@media screen and (min-width: 1024px) {
  .mb-130 {
    margin-bottom: 130rem !important;
  }
}

.mb-140 {
  margin-bottom: 112px !important;
}
@media screen and (min-width: 1024px) {
  .mb-140 {
    margin-bottom: 140rem !important;
  }
}

.mb-150 {
  margin-bottom: 120px !important;
}
@media screen and (min-width: 1024px) {
  .mb-150 {
    margin-bottom: 150rem !important;
  }
}

.mb-160 {
  margin-bottom: 128px !important;
}
@media screen and (min-width: 1024px) {
  .mb-160 {
    margin-bottom: 160rem !important;
  }
}

.mb-170 {
  margin-bottom: 136px !important;
}
@media screen and (min-width: 1024px) {
  .mb-170 {
    margin-bottom: 170rem !important;
  }
}

.mb-180 {
  margin-bottom: 144px !important;
}
@media screen and (min-width: 1024px) {
  .mb-180 {
    margin-bottom: 180rem !important;
  }
}

.mb-190 {
  margin-bottom: 152px !important;
}
@media screen and (min-width: 1024px) {
  .mb-190 {
    margin-bottom: 190rem !important;
  }
}

.mb-200 {
  margin-bottom: 160px !important;
}
@media screen and (min-width: 1024px) {
  .mb-200 {
    margin-bottom: 200rem !important;
  }
}

.mb--0 {
  margin-bottom: 0px !important;
}
@media screen and (min-width: 1024px) {
  .mb--0 {
    margin-bottom: 0rem !important;
  }
}

.mb--10 {
  margin-bottom: -8px !important;
}
@media screen and (min-width: 1024px) {
  .mb--10 {
    margin-bottom: -10rem !important;
  }
}

.mb--20 {
  margin-bottom: -16px !important;
}
@media screen and (min-width: 1024px) {
  .mb--20 {
    margin-bottom: -20rem !important;
  }
}

.mb--30 {
  margin-bottom: -24px !important;
}
@media screen and (min-width: 1024px) {
  .mb--30 {
    margin-bottom: -30rem !important;
  }
}

.mb--40 {
  margin-bottom: -32px !important;
}
@media screen and (min-width: 1024px) {
  .mb--40 {
    margin-bottom: -40rem !important;
  }
}

.mb--50 {
  margin-bottom: -40px !important;
}
@media screen and (min-width: 1024px) {
  .mb--50 {
    margin-bottom: -50rem !important;
  }
}

.mb--60 {
  margin-bottom: -48px !important;
}
@media screen and (min-width: 1024px) {
  .mb--60 {
    margin-bottom: -60rem !important;
  }
}

.mb--70 {
  margin-bottom: -56px !important;
}
@media screen and (min-width: 1024px) {
  .mb--70 {
    margin-bottom: -70rem !important;
  }
}

.mb--80 {
  margin-bottom: -64px !important;
}
@media screen and (min-width: 1024px) {
  .mb--80 {
    margin-bottom: -80rem !important;
  }
}

.mb--90 {
  margin-bottom: -72px !important;
}
@media screen and (min-width: 1024px) {
  .mb--90 {
    margin-bottom: -90rem !important;
  }
}

.mb--100 {
  margin-bottom: -80px !important;
}
@media screen and (min-width: 1024px) {
  .mb--100 {
    margin-bottom: -100rem !important;
  }
}

.mb--110 {
  margin-bottom: -88px !important;
}
@media screen and (min-width: 1024px) {
  .mb--110 {
    margin-bottom: -110rem !important;
  }
}

.mb--120 {
  margin-bottom: -96px !important;
}
@media screen and (min-width: 1024px) {
  .mb--120 {
    margin-bottom: -120rem !important;
  }
}

.mb--130 {
  margin-bottom: -104px !important;
}
@media screen and (min-width: 1024px) {
  .mb--130 {
    margin-bottom: -130rem !important;
  }
}

.mb--140 {
  margin-bottom: -112px !important;
}
@media screen and (min-width: 1024px) {
  .mb--140 {
    margin-bottom: -140rem !important;
  }
}

.mb--150 {
  margin-bottom: -120px !important;
}
@media screen and (min-width: 1024px) {
  .mb--150 {
    margin-bottom: -150rem !important;
  }
}

.mb--160 {
  margin-bottom: -128px !important;
}
@media screen and (min-width: 1024px) {
  .mb--160 {
    margin-bottom: -160rem !important;
  }
}

.mb--170 {
  margin-bottom: -136px !important;
}
@media screen and (min-width: 1024px) {
  .mb--170 {
    margin-bottom: -170rem !important;
  }
}

.mb--180 {
  margin-bottom: -144px !important;
}
@media screen and (min-width: 1024px) {
  .mb--180 {
    margin-bottom: -180rem !important;
  }
}

.mb--190 {
  margin-bottom: -152px !important;
}
@media screen and (min-width: 1024px) {
  .mb--190 {
    margin-bottom: -190rem !important;
  }
}

.mb--200 {
  margin-bottom: -160px !important;
}
@media screen and (min-width: 1024px) {
  .mb--200 {
    margin-bottom: -200rem !important;
  }
}

/*  clearfix
-------------------------------------- */
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

.hp_scrollbarNone {
  /*Edgeへの対応*/
  -ms-overflow-style: none;
  /*Firefoxへの対応*/
  scrollbar-width: none;
}
.hp_scrollbarNone::-webkit-scrollbar {
  display: none;
}

/* =================================================
    ボタン
=================================================== */
.el_btn {
  position: relative;
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 258px;
  height: auto;
  padding: 16px;
  border: 1px solid #472c23;
  border-radius: 100vh;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0em;
  font-weight: 500;
  color: #472c23 !important;
  text-align: center;
  overflow: hidden;
  text-decoration: none !important;
}
@media screen and (min-width: 768px) {
  .el_btn {
    font-size: 18px;
    font-size: 1.8rem;
    font-size: clamp(14.4px, 1.756097561vw, 18px);
  }
}
@media screen and (min-width: 1024px) {
  .el_btn {
    width: 310px;
    padding: 21px;
  }
  .el_btn:hover {
    background: #472c23;
    opacity: 1;
    color: #fff !important;
  }
  .el_btn:hover::after {
    width: 22px;
    height: 4px;
    background: url(../images/common/icon/icon_arrow_linkBtn__hover.svg) no-repeat right center/contain;
  }
}
.el_btn::after {
  content: "";
  display: inline-block;
  width: 22px;
  height: 4px;
  background: url(../images/common/icon/icon_btnArrow.svg) no-repeat center/contain;
  vertical-align: middle;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  position: absolute;
  top: 50%;
  right: 18px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.el_btn.el_btn_backtolist {
  width: 242px;
  padding: 21px 16px;
  padding-left: 30px;
  text-align: left;
  font-size: 18px;
  font-size: 1.8rem;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 1024px) {
  .el_btn.el_btn_backtolist {
    width: 293px;
    padding: 21px;
    padding-left: 40px;
  }
  .el_btn.el_btn_backtolist::after {
    right: 28px;
  }
}
.el_btn.el_btn_solid {
  background: #472c23;
  color: #fff !important;
}
.el_btn.el_btn_solid::after {
  background: url(../images/common/icon/icon_arrow_linkBtn__hover.svg) no-repeat center/contain;
}
@media screen and (min-width: 1024px) {
  .el_btn.el_btn_solid:hover {
    color: #472c23 !important;
    opacity: 1;
  }
  .el_btn.el_btn_solid:hover::after {
    width: 22px;
    height: 4px;
    background: url(../images/common/icon/icon_btnArrow.svg) no-repeat right center/contain;
  }
}

/* =================================================
    VIEW ALL ボタン
=================================================== */
.el_btn_viewAll {
  position: relative;
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: auto;
  padding: 6px 30px 6px;
  padding-right: 55px;
  margin-right: 10px;
  background: #472c23;
  border: 1px solid #472c23;
  font-weight: 500;
  line-height: 1.7333333333;
  color: #fff;
  text-decoration: none !important;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: left;
}
.el_btn_viewAll:last-of-type {
  margin-right: 0;
}
@media screen and (min-width: 1024px) {
  .el_btn_viewAll {
    padding: 11px 34px;
    padding-right: 68px;
  }
  .el_btn_viewAll:hover {
    background: #fff;
    opacity: 1;
    color: #472c23;
  }
  .el_btn_viewAll:hover::after {
    background: #fff;
    color: #472c23;
  }
}
.el_btn_viewAll a {
  display: block;
  width: 100%;
  height: 100%;
  font-weight: inherit;
  color: inherit;
}
.el_btn_viewAll::after {
  content: "\e900";
  font-family: "icomoon" !important;
  speak: never;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: absolute;
  top: 50%;
  right: 14px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 20px;
  background: #44be2f;
  line-height: 20px;
  font-size: 10px;
  color: #fff;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .el_btn_viewAll::after {
    right: 30px;
  }
}
.el_btn_viewAll + .el_linkBtn {
  margin-top: 15px;
}

/* =================================================
    BACK TO LIST ボタン
=================================================== */
.el_btn_backtolist {
  position: relative;
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: auto;
  padding: 6px 30px 6px;
  padding-right: 55px;
  margin-right: 10px;
  background: #472c23;
  border: 1px solid #472c23;
  font-weight: 500;
  line-height: 1.7333333333;
  color: #fff;
  text-decoration: none !important;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: left;
}
.el_btn_backtolist:last-of-type {
  margin-right: 0;
}
@media screen and (min-width: 1024px) {
  .el_btn_backtolist {
    padding: 11px 34px;
    padding-right: 68px;
  }
  .el_btn_backtolist:hover {
    background: #fff;
    opacity: 1;
    color: #472c23;
  }
  .el_btn_backtolist:hover::after {
    background: #fff;
    color: #472c23;
  }
}
.el_btn_backtolist a {
  display: block;
  width: 100%;
  height: 100%;
  font-weight: inherit;
  color: inherit;
}
.el_btn_backtolist::after {
  content: "\e900";
  font-family: "icomoon" !important;
  speak: never;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: absolute;
  top: 50%;
  right: 14px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: 20px;
  background: #fff;
  line-height: 20px;
  font-size: 10px;
  color: #472c23;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .el_btn_backtolist::after {
    right: 30px;
  }
}
.el_btn_backtolist + .el_linkBtn {
  margin-top: 15px;
}

/* =================================================
    .bl_secheader
=================================================== */
.bl_secheader {
  position: relative;
  padding-top: 70px;
  aspect-ratio: 375/900;
  background: url(../images/top/bkg_body_top_sp.jpg) no-repeat top center/cover;
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .bl_secheader {
    aspect-ratio: 19/9;
    padding-top: 75px;
    background: url(../images/top/bkg_body_top_pc.jpg) no-repeat top center/cover;
  }
}
.bl_secheader::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 10px;
  width: clamp(120px, 14.0839694656px + 28.2442748092vw, 231px);
  aspect-ratio: 120/168;
  height: auto;
  background: url(../images/top/compass_sp.svg) no-repeat center center/contain;
  -webkit-animation: swing-rotate 2s ease-in-out infinite alternate;
          animation: swing-rotate 2s ease-in-out infinite alternate;
  -webkit-transform-origin: center center;
          transform-origin: center center;
}
@media screen and (min-width: 1024px) {
  .bl_secheader::after {
    aspect-ratio: 231/297;
    width: 12.1578947368%;
    max-width: 231px;
    right: 0;
    left: 48px;
    bottom: 82px;
    background: url(../images/top/compass.svg) no-repeat center center/contain;
  }
}
.bl_secheader h1 {
  position: relative;
}
@media screen and (min-width: 1024px) {
  .bl_secheader h1 {
    position: absolute;
    top: 80px;
    left: 20px;
    width: 25%;
    max-width: 828px;
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader h1 {
    width: 43.5789473684%;
    top: 90px;
    left: 76px;
  }
}
.bl_secheader h1 .el_bird {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: absolute;
  top: -10px;
  left: 70%;
  aspect-ratio: 130/89;
  width: clamp(62px, -5.7480916031px + 18.0661577608vw, 133px);
  height: auto;
  -webkit-animation: bird-fly 2s ease-in-out infinite alternate;
          animation: bird-fly 2s ease-in-out infinite alternate;
}
@media screen and (min-width: 1024px) {
  .bl_secheader h1 .el_bird {
    width: clamp(62px, -20.99543379px + 8.1050228311vw, 133px);
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader h1 .el_bird {
    top: -60px;
  }
}
.bl_secheader .el_lead {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  margin: 0 auto;
  margin-top: clamp(25px, -46.5648854962px + 19.0839694656vw, 100px);
  text-align: center;
}
@media screen and (min-width: 1366px) {
  .bl_secheader .el_lead {
    margin: 0;
    margin-left: auto;
    margin-right: 18.5%;
  }
}
.bl_secheader .el_lead p {
  position: relative;
  text-orientation: mixed;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  margin: 0 auto;
  text-orientation: upright;
  font-size: clamp(17px, 13.4285714286px + 1.1160714286vw, 22px);
  font-weight: 500;
  line-height: 1.8421052632;
  font-variant-numeric: tabular-nums;
  -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum";
  text-align: left;
  z-index: 10;
}
@media screen and (min-width: 1024px) {
  .bl_secheader .el_lead p {
    line-height: 2.0454545455;
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader .el_lead p {
    margin: 0;
    margin-left: auto;
  }
}
.bl_secheader .el_lead p span {
  -ms-text-combine-horizontal: all;
  text-combine-upright: all;
  display: inline-block;
  margin: 2px 0 4px;
}
@supports not (-webkit-touch-callout: none) {
  .bl_secheader .el_lead p span {
    -webkit-transform: translateX(-0.12em);
            transform: translateX(-0.12em);
  }
}
.bl_secheader .el_ship {
  position: absolute;
  bottom: clamp(110px, -71.2977099237px + 48.3460559796vw, 300px);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: clamp(223px, 75.0992366412px + 39.4402035623vw, 378px);
  aspect-ratio: 223/252;
  -webkit-animation: sway-boat 3s ease-in-out infinite alternate;
          animation: sway-boat 3s ease-in-out infinite alternate;
}
@media screen and (min-width: 768px) {
  .bl_secheader .el_ship {
    bottom: 58.59375vw;
  }
}
@media screen and (min-width: 1024px) {
  .bl_secheader .el_ship {
    width: 19.8947368421%;
    max-width: 378px;
    left: auto;
    right: 5%;
    bottom: clamp(180px, 156.6210045662px + 2.2831050228vw, 200px);
    -webkit-transform: none;
            transform: none;
    -webkit-animation: sway 3s ease-in-out infinite alternate;
            animation: sway 3s ease-in-out infinite alternate;
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader .el_ship {
    right: 70px;
    bottom: 14.1578947368vw;
  }
}
.bl_secheader .el_dolphin {
  position: absolute;
  bottom: clamp(190px, -10.3816793893px + 53.4351145038vw, 400px);
  left: 5%;
  width: clamp(74px, 4.3435114504px + 18.5750636132vw, 147px);
  aspect-ratio: 74/70;
  -webkit-animation: dolphin-jump-left 3s ease-in-out infinite;
          animation: dolphin-jump-left 3s ease-in-out infinite;
}
@media screen and (min-width: 768px) {
  .bl_secheader .el_dolphin {
    bottom: 58.59375vw;
  }
}
@media screen and (min-width: 1024px) {
  .bl_secheader .el_dolphin {
    width: 6.4736842105%;
    max-width: 123px;
    left: auto;
    right: 20%;
    bottom: 9.765625vw;
    -webkit-transform: none;
            transform: none;
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader .el_dolphin {
    right: 580px;
    bottom: 11.71875vw;
  }
}
.bl_secheader .splash {
  position: absolute;
  bottom: clamp(170px, 74.5801526718px + 25.4452926209vw, 270px);
  left: 14%;
  width: clamp(50px, 0.3816793893px + 13.2315521628vw, 102px);
  aspect-ratio: 102/85;
  max-width: 102px;
  -webkit-animation: splash-effect 3s ease-in-out infinite;
          animation: splash-effect 3s ease-in-out infinite;
}
@media screen and (min-width: 768px) {
  .bl_secheader .splash {
    bottom: 48.828125vw;
  }
}
@media screen and (min-width: 1024px) {
  .bl_secheader .splash {
    left: auto;
    right: 18%;
    bottom: 15%;
    bottom: 7.3206442167vw;
    -webkit-transform: none;
            transform: none;
  }
}
@media screen and (min-width: 1366px) {
  .bl_secheader .splash {
    right: 580px;
    bottom: 9.765625vw;
  }
}

.vertical .line {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: translateX(20px);
          transform: translateX(20px);
  -webkit-animation: fadeLine 0.6s ease-out forwards;
          animation: fadeLine 0.6s ease-out forwards;
}
.vertical .line:nth-child(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.vertical .line:nth-child(2) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.vertical .line:nth-child(3) {
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}
.vertical .line:nth-child(4) {
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
}
.vertical .line:nth-child(5) {
  -webkit-animation-delay: 1.6s;
          animation-delay: 1.6s;
}
.vertical .line:nth-child(6) {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}
.vertical .line:nth-child(7) {
  -webkit-animation-delay: 2.4s;
          animation-delay: 2.4s;
}
.vertical .line:nth-child(8) {
  -webkit-animation-delay: 2.8s;
          animation-delay: 2.8s;
}
.vertical .line:nth-child(9) {
  -webkit-animation-delay: 3.2s;
          animation-delay: 3.2s;
}

@-webkit-keyframes fadeLine {
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}

@keyframes fadeLine {
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes sway {
  0% {
    -webkit-transform: rotate(2deg);
            transform: rotate(2deg);
  }
  100% {
    -webkit-transform: rotate(-2deg);
            transform: rotate(-2deg);
  }
}
@keyframes sway {
  0% {
    -webkit-transform: rotate(2deg);
            transform: rotate(2deg);
  }
  100% {
    -webkit-transform: rotate(-2deg);
            transform: rotate(-2deg);
  }
}
@-webkit-keyframes sway-boat {
  0% {
    -webkit-transform: translateX(-50%) rotate(2deg);
            transform: translateX(-50%) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-50%) rotate(-2deg);
            transform: translateX(-50%) rotate(-2deg);
  }
}
@keyframes sway-boat {
  0% {
    -webkit-transform: translateX(-50%) rotate(2deg);
            transform: translateX(-50%) rotate(2deg);
  }
  100% {
    -webkit-transform: translateX(-50%) rotate(-2deg);
            transform: translateX(-50%) rotate(-2deg);
  }
}
@-webkit-keyframes dolphin-jump-left {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    opacity: 1;
  }
  15% {
    -webkit-transform: translate(-20px, -40px);
            transform: translate(-20px, -40px);
    opacity: 1;
  }
  40% {
    -webkit-transform: translate(-20px, -40px);
            transform: translate(-20px, -40px);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes dolphin-jump-left {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    opacity: 1;
  }
  15% {
    -webkit-transform: translate(-20px, -40px);
            transform: translate(-20px, -40px);
    opacity: 1;
  }
  40% {
    -webkit-transform: translate(-20px, -40px);
            transform: translate(-20px, -40px);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes splash-effect {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0.5;
  }
  10% {
    opacity: 1;
  }
  20% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes splash-effect {
  0% {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0.5;
  }
  10% {
    opacity: 1;
  }
  20% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes bird-fly {
  0% {
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
}
@keyframes bird-fly {
  0% {
    -webkit-transform: translateY(-10px);
            transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
}
@-webkit-keyframes swing-rotate {
  0% {
    -webkit-transform: rotate(8deg);
            transform: rotate(8deg);
  }
  100% {
    -webkit-transform: rotate(-8deg);
            transform: rotate(-8deg);
  }
}
@keyframes swing-rotate {
  0% {
    -webkit-transform: rotate(8deg);
            transform: rotate(8deg);
  }
  100% {
    -webkit-transform: rotate(-8deg);
            transform: rotate(-8deg);
  }
}
/* =================================================
    .bl_event
=================================================== */
.bl_event {
  padding-top: 0;
  padding-bottom: 0;
}
@media screen and (min-width: 1024px) {
  .bl_event {
    padding-top: 16px;
    padding-bottom: 0;
  }
}
.bl_event .bl_period_box {
  position: fixed;
  left: 0;
  bottom: 0;
}
.bl_event .bl_period_box.is_hidden {
  display: none;
}
.bl_event_list {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  position: relative;
  padding-left: 22px;
  gap: 20px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 10px;
  }
}
.bl_event_list::before {
  content: "";
  position: absolute;
  top: 30px;
  left: 0;
  width: 7px; /* 波線の太さ */
  height: 100%;
  background-image: repeating-linear-gradient(to bottom, #9a8b86 0px, #9a8b86 15px, transparent 15px, transparent 23px);
  -webkit-animation-name: fadeInAnime;
          animation-name: fadeInAnime;
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  opacity: 0;
}
@media screen and (min-width: 1024px) {
  .bl_event_list::before {
    display: none;
  }
}
.bl_event_list::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 5px solid #472c23;
  border-radius: 100vh;
  background: #faede1;
  position: absolute;
  top: 10px;
  left: -7px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list::after {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_year {
    position: sticky;
    top: 50px;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 28%;
            flex: 0 0 28%;
    z-index: 10;
    -ms-flex-item-align: start;
        align-self: flex-start;
    -webkit-transform: none !important;
            transform: none !important;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_year {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 21.8%;
            flex: 0 0 21.8%;
    padding-left: 30px;
    padding-right: 45px;
  }
}
.bl_event_list .bl_event_year h2 {
  position: relative;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: clamp(29px, 18.5038167939px + 2.7989821883vw, 40px);
  letter-spacing: 0.05em;
  line-height: 0.7;
  color: #472c23;
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_year h2 {
    text-align: right;
  }
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_year h2::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 7px solid #472c23;
    border-radius: 100vh;
    background: #faede1;
    position: absolute;
    top: 20px;
    right: -29px;
    z-index: 10;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_year h2::after {
    right: -74px;
  }
}
.bl_event_list .bl_event_year h2 .el_year {
  font-family: "Copperplate", "Copperplate Gothic Bold", "Aoboshi One Regular", serif;
  font-weight: 700;
  font-size: clamp(58px, 40.8244274809px + 4.5801526718vw, 76px);
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_year ul {
    margin-top: 40px;
  }
}
.bl_event_list .bl_event_year ul li {
  margin-top: 35px;
  font-size: clamp(15px, 14.0458015267px + 0.2544529262vw, 16px);
  line-height: 1.6;
  color: #111216;
  font-weight: 500;
}
.bl_event_list .bl_event_year ul li:first-of-type {
  margin-top: 0;
}
.bl_event_list .bl_event_contents {
  position: relative;
  overflow-x: hidden;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_contents {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 39%;
            flex: 0 0 39%;
    padding-top: 8px;
    padding-left: 40px;
    overflow-x: visible;
  }
  .bl_event_list .bl_event_contents::before {
    content: "";
    position: absolute;
    top: 25px;
    left: 0;
    width: 10px; /* 波線の太さ */
    height: 100%;
    background-image: repeating-linear-gradient(to bottom, #9a8b86 0px, #9a8b86 15px, transparent 15px, transparent 23px);
    z-index: 1;
    -webkit-animation-name: fadeInAnime;
            animation-name: fadeInAnime;
    -webkit-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-fill-mode: forwards;
            animation-fill-mode: forwards;
    opacity: 0;
  }
}
@media screen and (min-width: 1280px) {
  .bl_event_list .bl_event_contents {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 44%;
            flex: 0 0 44%;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc(78.2% - 20px - 310px);
            flex: 0 0 calc(78.2% - 20px - 310px);
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 60px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 30px;
    padding-bottom: 100px;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow {
    gap: 60px;
    padding-left: 30px;
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont {
  position: relative;
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont .el_hukidashi {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 14px 14px;
  margin-bottom: 18px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #472c23;
  font-weight: 900;
  font-size: clamp(15px, 14.0458015267px + 0.2544529262vw, 16px);
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont .el_hukidashi {
    position: absolute;
    left: 0;
    bottom: 100%;
    padding: 14px 25px;
    white-space: nowrap;
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont .el_hukidashi::after {
  content: "";
  width: 25px;
  height: 14px;
  background: url(../images/top/hukidashi.svg) no-repeat center center/contain;
  position: absolute;
  left: 30px;
  top: calc(100% - 4px);
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont h3 {
  padding: 8px 15px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  background: #472c23;
  font-weight: 900;
  font-size: clamp(21px, 17.1832061069px + 1.0178117048vw, 25px);
  line-height: 1.2857142857;
  color: #fff;
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont h3.el_eventTtl__white {
  background: #fff;
  color: #472c23;
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont h3 {
    padding: 8px 20px;
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_cont .el_lead {
  margin-top: 8px;
  font-weight: 500;
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow .el_img {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 12px;
  }
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_img img:not(.el_banner) {
  width: clamp(158px, 85.3893129771px + 18.8295165394vw, 260px);
  max-width: 260px;
}
.bl_event_list .bl_event_contents .bl_event_contentsRow .el_img .el_banner {
  width: 100%;
  max-width: 380px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_event_contents .bl_event_contentsRow .el_img .el_banner {
    max-width: 650px;
  }
}
.bl_event_list .bl_period {
  display: none;
}
.bl_event_list .bl_period.is_active {
  display: block;
}
.bl_event_list .bl_period {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: 100;
  overflow: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.bl_event_list .bl_period::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period {
    display: grid;
    top: 0;
    left: auto;
    right: 0;
    bottom: auto;
    width: clamp(300px, 284.3902439024px + 1.5243902439vw, 310px);
    height: 100dvh;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_period {
    max-width: 310px;
  }
}
.bl_event_list .bl_period_inner {
  min-width: 630px;
  width: 100%;
  padding: 10px 30px 20px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period_inner {
    position: relative;
    min-width: 100%;
    width: 100%;
    max-height: 800px;
    padding-top: 20px;
    padding-left: 35px;
    padding-right: 50px;
    padding-bottom: 20px;
    text-align: center;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_period_inner {
    padding-left: 70px;
    padding-right: 85px;
  }
}
.bl_event_list .bl_period h3 {
  position: absolute;
  left: 20px;
  bottom: 30px;
  background: #fff;
  display: grid;
  place-items: center;
  width: 25px;
  height: 130px;
  padding: 4px;
  line-height: 1;
  text-align: center;
  font-size: 17px;
  font-weight: 700;
  color: #472c23;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period h3 {
    position: static;
    width: 165px;
    height: 40px;
    margin: 0 auto;
    font-size: 28px;
  }
}
.bl_event_list .bl_period .bl_period_header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #fff;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period .bl_period_header {
    position: absolute;
    top: 20px;
    right: 20px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    margin: 0 auto;
    text-orientation: upright;
  }
}
.bl_event_list .bl_period .bl_period_header h4 {
  font-size: 15px;
  font-weight: 700;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period .bl_period_header h4 {
    font-size: 27px;
  }
}
.bl_event_list .bl_period .bl_period_header .el_lead {
  font-size: 15px;
  font-weight: 500;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period .bl_period_header .el_lead {
    font-size: 16px;
    text-align: left;
  }
}
.bl_event_list .bl_period ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 20px;
  padding-left: 40px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period ul {
    width: 100%;
    display: block;
    padding-left: 0;
    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: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin: 0 auto;
    gap: 0;
  }
}
.bl_event_list .bl_period ul li {
  position: relative;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period ul li {
    width: 100%;
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content;
    margin-top: 24px;
  }
}
.bl_event_list .bl_period ul li .el_data {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  position: relative;
  margin-top: -30px;
  letter-spacing: 0;
  line-height: 1;
  z-index: 11;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period ul li .el_data {
    margin-top: -40px;
  }
}
.bl_event_list .bl_period ul li .el_disc {
  position: relative;
  z-index: 11;
  font-size: clamp(12px, 8.1832061069px + 1.0178117048vw, 16px);
  font-weight: 900;
  line-height: 1.3;
  text-align: center;
  color: #4d4d4d;
}
.bl_event_list .bl_period ul li .el_disc strong {
  color: #cb1421;
  font-weight: 900;
}
.bl_event_list .bl_period ul li .el_data_num {
  font-size: clamp(18px, 10.3664122137px + 2.0356234097vw, 26px);
  color: #472c23;
  font-weight: 900;
}
.bl_event_list .bl_period ul li .el_data_prefix,
.bl_event_list .bl_period ul li .el_data_unit {
  font-size: clamp(12px, 10.0916030534px + 0.5089058524vw, 14px);
  color: #472c23;
  font-weight: 900;
  color: #472c23;
}
.bl_event_list .bl_period ul li .el_data_prefix {
  margin-right: 2px;
}
.bl_event_list .bl_period ul li .el_data.el_data_sub {
  margin-top: 5px;
}
.bl_event_list .bl_period ul li .el_data.el_data_sub .el_data_prefix,
.bl_event_list .bl_period ul li .el_data.el_data_sub .el_data_num,
.bl_event_list .bl_period ul li .el_data.el_data_sub .el_data_unit {
  font-size: clamp(12px, 8.1832061069px + 1.0178117048vw, 16px);
  color: #472c23;
  font-weight: 900;
}
.bl_event_list .bl_period ul .el_img {
  position: relative;
  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: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  width: 120px;
  height: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period ul .el_img {
    width: 74.4186046512%;
    height: auto;
    aspect-ratio: 1/1;
    max-width: 160px;
  }
  .bl_event_list .bl_period ul .el_img img {
    width: 95%;
  }
}
@media screen and (min-width: 1366px) {
  .bl_event_list .bl_period ul .el_img {
    width: 100%;
  }
}
.bl_event_list .bl_period ul .el_img h5 {
  white-space: nowrap;
  font-size: 15px;
  font-weight: 700;
  color: #472c23;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period ul .el_img h5 {
    position: absolute;
    top: 50%;
    right: 102%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 18px;
  }
}
.bl_event_list .bl_period.bl_period_1 {
  background-color: #96929e;
}
.bl_event_list .bl_period.bl_period_2 {
  background-color: #96929e;
}
.bl_event_list .bl_period.bl_period_3 {
  background-color: #ae99ad;
}
.bl_event_list .bl_period.bl_period_4 {
  background-color: #ce98a0;
}
.bl_event_list .bl_period.bl_period_5 {
  background-color: #e8919e;
}
.bl_event_list .bl_period.bl_period_6 {
  background-color: #f2965b;
}
.bl_event_list .bl_period.bl_period_6 ul li .el_data {
  margin-top: -30px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period.bl_period_6 ul li .el_data {
    margin-top: -40px;
  }
}
.bl_event_list .bl_period.bl_period_6 ul li .el_data.el_data_sub {
  margin-top: 5px;
}
.bl_event_list .bl_period.bl_period_7 {
  background-color: #c59872;
}
.bl_event_list .bl_period.bl_period_8 {
  background-color: #f2965b;
}
.bl_event_list .bl_period.bl_period_8 ul li .el_data {
  margin-top: -40px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period.bl_period_8 ul li .el_data {
    margin-top: -40px;
  }
}
.bl_event_list .bl_period.bl_period_8 ul li .el_data.el_data_sub {
  margin-top: 5px;
}
.bl_event_list .bl_period.bl_period_9 {
  background-color: #f49d3f;
}
.bl_event_list .bl_period.bl_period_9 ul li .el_data {
  margin-top: -30px;
}
@media screen and (min-width: 1024px) {
  .bl_event_list .bl_period.bl_period_9 ul li .el_data {
    margin-top: -40px;
  }
}
.bl_event_list .bl_period.bl_period_9 ul li .el_data.el_data_sub {
  margin-top: 5px;
}
.bl_event_list .bl_period.bl_period_10 {
  background-color: #ebb736;
}

/* =================================================
    .bl_message
=================================================== */
.bl_message {
  position: relative;
  width: 100%;
  height: auto;
  overflow-x: hidden;
  padding-top: 30px;
}
.bl_message .bl_message_wrap {
  position: relative;
  padding-top: 87px;
  margin: 0 auto;
  background: url(../images/top/bkg_nextsteps_sp.png) no-repeat bottom center;
  background-size: auto 100%;
  z-index: 11;
}
@media screen and (min-width: 1024px) {
  .bl_message .bl_message_wrap {
    width: 75%;
    background-size: contain;
    padding-top: 82px;
  }
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_wrap {
    width: 84.4736842105%;
    max-width: 1605px;
    aspect-ratio: 1605/765;
    background: url(../images/top/bkg_nextsteps.png) no-repeat bottom center;
    background-size: 100% 100%;
  }
}
.bl_message .bl_message_wrap::before {
  content: "";
  display: block;
  position: absolute;
  top: -23px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 135px;
  height: 92px;
  background: url(../images/top/ttl_message.svg) no-repeat center center/contain;
  z-index: 10;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_wrap::before {
    top: -33px;
    left: 67px;
    -webkit-transform: none;
            transform: none;
    width: 211px;
    height: 144px;
  }
}
.bl_message .ly_sec_inner {
  width: 91.4666666667%;
  padding-left: 35px;
  padding-right: 35px;
  padding-bottom: 60px;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .bl_message .ly_sec_inner {
    width: 75%;
  }
}
@media screen and (min-width: 1366px) {
  .bl_message .ly_sec_inner {
    width: 100%;
    max-width: 100%;
  }
}
.bl_message h2 {
  font-family: "Copperplate", "Copperplate Gothic Bold", "Georgia", "Times New Roman", serif;
  font-size: clamp(50px, 21.3740458015px + 7.6335877863vw, 80px);
  font-weight: 700;
  text-align: center;
  color: #472c23;
  line-height: 1;
}
.bl_message .el_lead {
  margin-top: clamp(8px, -3.4503816794px + 3.0534351145vw, 20px);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: clamp(19px, 11.3664122137px + 2.0356234097vw, 27px);
  font-weight: 900;
  color: #472c23;
  text-align: center;
  line-height: 1;
  letter-spacing: 0em;
}
.bl_message .bl_message_cont {
  margin-top: 40px;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont {
    display: grid;
    grid-template-columns: 1fr 317px;
    grid-template-areas: "g_cont g_img" "g_caption g_img";
    -webkit-column-gap: 70px;
       -moz-column-gap: 70px;
            column-gap: 70px;
    margin-top: 60px;
    padding-left: 70px;
    padding-right: 70px;
  }
}
.bl_message .bl_message_cont .el_img {
  text-align: center;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_img {
    grid-area: g_img;
  }
}
.bl_message .bl_message_cont .el_img img {
  width: 80.5970149254%;
  max-width: 317px;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_img img {
    width: 100%;
  }
}
.bl_message .bl_message_cont .el_caption {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 10px auto 0;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_caption {
    grid-area: g_caption;
    margin-left: auto;
    margin-right: 0;
    margin-top: 30px;
  }
}
.bl_message .bl_message_cont .el_caption p {
  font-weight: 500;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_caption p {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 15px;
    text-align: right;
  }
}
.bl_message .bl_message_cont .el_caption .el_companyName {
  display: block;
  font-size: 16px;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_caption .el_companyName {
    margin-right: 18px;
  }
}
.bl_message .bl_message_cont .el_caption .el_ceo {
  font-size: 16px;
}
.bl_message .bl_message_cont .el_caption .el_name {
  margin-left: 1em;
  font-size: 24px;
  letter-spacing: 0.025em;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_caption .el_name {
    margin-left: 0;
  }
}
.bl_message .bl_message_cont .el_cont {
  margin-top: 40px;
}
@media screen and (min-width: 1366px) {
  .bl_message .bl_message_cont .el_cont {
    grid-area: g_cont;
    margin-top: 0;
  }
}
.bl_message .bl_message_cont .el_cont h3 {
  font-size: clamp(20px, 16.1832061069px + 1.0178117048vw, 24px);
  font-weight: 900;
  text-align: justify;
  line-height: 1.5;
  letter-spacing: 0.025em;
}
.bl_message .bl_message_cont .el_cont p {
  margin-top: clamp(22px, 12.4580152672px + 2.5445292621vw, 32px);
  text-align: justify;
  line-height: 2;
}

/* =================================================
    .bl_logo
=================================================== */
.bl_logo {
  padding-top: 90px;
  padding-bottom: 30px;
  overflow-x: hidden;
}
@media screen and (min-width: 1024px) {
  .bl_logo {
    padding-top: 150px;
    padding-bottom: 146px;
  }
}
.bl_logo h2 {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  font-family: "Copperplate", "Copperplate Gothic Bold", "Georgia", "Times New Roman", serif;
  color: #472c23;
  text-align: center;
  font-size: clamp(43px, 17.2366412214px + 6.8702290076vw, 70px);
  line-height: 1;
  font-weight: 700;
  text-align: center;
}
.bl_logo h2 span {
  display: block;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .bl_logo h2 span {
    display: inline-block;
    margin-right: 24px;
  }
}
.bl_logo .el_lead {
  margin-top: 23px;
  font-weight: 500;
  font-size: clamp(14px, 12.0916030534px + 0.5089058524vw, 16px);
  letter-spacing: 0em;
  text-align: center;
}
.bl_logo .bl_logo_cont {
  margin: 25px auto;
}
@media screen and (min-width: 1024px) {
  .bl_logo .bl_logo_cont {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 112px;
    max-width: 1115px;
    margin: 40px auto 0;
  }
}
@media screen and (min-width: 1024px) {
  .bl_logo .bl_logo_cont .el_img {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 341px;
            flex: 0 0 341px;
  }
}
.bl_logo .bl_logo_cont .el_img img {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 89.552238806%;
  max-width: 341px;
  margin: 0 auto;
}
@media screen and (min-width: 1024px) {
  .bl_logo .bl_logo_cont .el_img img {
    width: 100%;
  }
}
.bl_logo .bl_logo_cont .el_cont {
  margin: 40px auto;
}
@media screen and (min-width: 768px) {
  .bl_logo .bl_logo_cont .el_cont {
    width: 75%;
  }
}
@media screen and (min-width: 1024px) {
  .bl_logo .bl_logo_cont .el_cont {
    margin: 0;
  }
}
.bl_logo .bl_logo_cont .el_cont p {
  font-size: 16px;
  line-height: 2;
  font-weight: 500;
}/*# sourceMappingURL=style.css.map */