@charset "utf-8";

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

body {
  font-size: 62.5%;
  background: #09112C;
}

img {
  height: auto;
  margin: auto;
  vertical-align: text-bottom;}

.pc {
  display: block;}

.sp {
  display: none;}

.sp_979 {
  display: none;}

.tablet_scroll {
  display: none;
}

.bfont {
  font-weight: bold;
  text-decoration: underline;
}

a {
  display: block;
}

a:hover {
}

@font-face {
    font-family: "Bodoni 72 Book";
    font-style: normal;
    font-weight: normal;
    src: local("Bodoni 72 Book"),url("/cmn/font/Bodoni-72.woff") format("woff2");
    font-display: swap;
}


/* -------------------------------- 

contents

-------------------------------- */



.pc {
  display: block;}

.sp {
  display: none;}

.tablet_scroll {
  display: none;
}

.nav-botm {
  padding-bottom: 1%;
}

.contents {
  width: 100%;
  max-width: 1600px;
  margin: auto;
  height: auto;
}

.contents2 {
  width: 100%;
  max-width: 1200px;
  margin: auto;
  height: auto;
  /* background: #fff; */
}

.contents3 {
  width: 100%;
  max-width: 1000px;
  margin:  auto;
  height: auto;
}

.contents3_2 {
  width: 100%;
  max-width: 1100px;
  margin:  auto;
  height: auto;
}

.contents4 {
  width: 100%;
  max-width: 600px;
  height: auto;
  margin: auto;
  padding: 1.5% 0;
  background: #fff;
}

.content1246 {
  width: 100%;
  max-width: 1246px;
  height: auto;
  margin: auto;
}

.content1440 {
  width: 100%;
  max-width: 1440px;
  height: auto;
  margin: auto;
}

.min_cont {
  max-width: 960px;
  margin: auto;
  height: auto;
}

.gara {
  font-family: "Cormorant Garamond", serif;
}

.mincho {
  font-family: "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" ,"游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , serif !important;
  font-family: Georgia,游明朝,"Yu Mincho",YuMincho,"Hiragino Mincho ProN",HGS明朝E,メイリオ,Meiryo,serif !important;
}

.eimoji {
  font-family: 'Old Standard TT', serif;
}

.eimoji2 {
    font-family: 'Quicksand', sans-serif;
}

.eimoji001 {
  font-family: gill-sans-nova, sans-serif;
}

.eimoji002 {
  font-family: gill-sans-nova-condensed, sans-serif;
}

.eimoji003 {
  font-family: linotype-didot, serif;
}

.eimoji004 {
  font-family: "Bodoni 72 Book",linotype-didot-headline, serif;
}

.eimoji005 {
  font-family: montserrat,sans-serif;
}

.eimoji006 {
  font-family: inglesa-caps-variable, sans-serif;
}

.eimoji007 {
  font-family: waters-titling-condensedpro, sans-serif;
}

.eimoji008 {
  font-family: din-condensed, sans-serif;
}

.new_goth {
  font-family: 'Noto Sans JP', sans-serif;
}

.new_goth2 {
  font-family:'メイリオ', 'Meiryo','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3',sans-serif;
}

.new_min {
  font-family: a-otf-ryumin-pr6n, serif;
}

.new_min2 {
  font-family: 'Noto Serif JP', serif;
}

.pink {
  color: #EB8397;
}

.orange {
  color: #DF971F;
}

/**************************************************************

全体的なPC表示用

**************************************************************/

.css-circle-wrap {
  position: fixed;
  top: 2vw;
  left: 5vw;
  right: 5vw;
  z-index: -1;
/*     width: 100%; */
/*     height: 100vh; */
}

.css-circle-b {
  border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%;
  background: #fff;
/*   mix-blend-mode: multiply; */
  animation-name: corners, rotate;
  animation-duration: 20s, 12s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  width: 48vw;
  height: 48vw;
/*   filter: blur(30px); */
  filter: blur(16px);
}

.css-circle-b01 {
  border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%;
/*   background: #48bcbf; */
  background: rgba(72, 188, 191, 0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  width: 51vw;
  height: 51vw;
}

.css-circle-b02 {
  position: absolute;
/*   background: #366ea5; */
  background: rgba(18,108,197,0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  animation-name: corners, rotate02;
}

.css-circle-b03 {
  position: absolute;
  background: #a43f49;
  background: rgba(181, 26, 42, 0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  animation-name: corners, rotate03;
}

.css-circle-b00 {
  border-radius: 50% 55% 45% 60% / 50% 60% 50% 40%;
  position: absolute;
  background: #000;
  top: 5%;
  left: 5%;
  right: 0;
  margin: auto;
  animation-name: corners02, rotate04;
  filter: blur(25px);
  width: 48vw;
  height: 48vw;
}




@keyframes corners {
  /* 0%   { border-radius: 55% 45% 74% 26% / 66% 32% 68% 34%; }
  25%  { border-radius: 33% 67% 44% 56% / 28% 56% 44% 72%; }
  50%  { border-radius: 29% 71% 37% 63% / 55% 40% 60% 45%; }
  75%  { border-radius: 53% 47% 53% 47% / 49% 63% 37% 51%; }
  100% { border-radius: 55% 45% 74% 26% / 66% 32% 68% 34%; } */

  0%   { border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%; }
  25%  { border-radius: 33% 67% 44% 56% / 28% 56% 44% 72%; }
  50%  { border-radius: 29% 71% 37% 63% / 55% 40% 60% 45%; }
  75%  { border-radius: 53% 47% 53% 47% / 49% 63% 37% 51%; }
  100% { border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%; }
}

@keyframes corners02 {
  /* 0%   { border-radius: 55% 45% 74% 26% / 66% 32% 68% 34%; }
  25%  { border-radius: 33% 67% 44% 56% / 28% 56% 44% 72%; }
  50%  { border-radius: 29% 71% 37% 63% / 55% 40% 60% 45%; }
  75%  { border-radius: 53% 47% 53% 47% / 49% 63% 37% 51%; }
  100% { border-radius: 55% 45% 74% 26% / 66% 32% 68% 34%; } */

  0%   { border-radius: 50% 55% 45% 60% / 50% 60% 50% 40%; }
  25%  { border-radius: 55% 60% 55% 50% / 40% 50% 55% 65%; }
  50%  { border-radius: 40% 50% 55% 65% / 55% 40% 60% 45%; }
  75%  { border-radius: 53% 47% 53% 47% / 55% 60% 55% 50%; }
  100% { border-radius: 50% 55% 45% 60% / 50% 60% 50% 40%; }
}

@keyframes rotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes rotate02 {
  0%   { transform: rotate(60deg); }
  100% { transform: rotate(-300deg); }
}

@keyframes rotate03 {
  0%   { transform: rotate(-60deg); }
  100% { transform: rotate(300deg); }
}

@keyframes rotate04 {
  0%   { transform: rotate(30deg); }
  100% { transform: rotate(-250deg); }
}


.background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #5c5c5c;
  animation: fadeOutRight 2s forwards;
}

.text-layer {
  position: absolute;
  top: 50%;
  left: 0;
  background-color: #09112C;
  width: 100%;
  height: 100%;
}

.text {
  color: #fff;
  text-align: center;
/*   animation: fadeInRight 2s forwards; */
}

@keyframes fadeOutRight {
  to {
    background: linear-gradient(to right, #5c5c5c, transparent);
  }
}

@keyframes fadeInRight {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

/* @keyframes loading-animation {
  0% {
    width: 0;
  }
  50% {
    width: 100%;
  }
  100% {
    width: 0;
    transform: translateX(100%);
  }
}

@keyframes reveal {
  to {
    clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0%);
  }
}

@keyframes reveal {
  0% {
    clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0%);
  }
  50% {
    clip-path: polygon(50% 0, 50% 100%, 100% 100%, 100% 0%);
  }
  100% {
    clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 0%);
  }
}
 */

#loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #5c5c5c;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    font-size: 2em;
}

#loading-text {
    opacity: 0;
    white-space: nowrap;
}

#main-content {
  display: none;
}


.cat .main_catch {
  font-size: 4rem;
  line-height: 1.15em;
  letter-spacing: 0.15em;
  padding-bottom: 0.5em;
  color: #fff;
  font-weight: 700;
}

.cat .main_catch span.bgg {
  font-size: 4rem;
  line-height: 1.15em;
  letter-spacing: 0.15em;
  padding-bottom: 0.5em;
  color: #fff;
  font-weight: 700;
}

.cat .main_catch span.sml {
  font-size: 1.5rem;
  line-height: 1.15em;
  letter-spacing: 0.15em;
  padding-bottom: 1.5em;
  color: #fff;
}


/**************************************************************

inview

**************************************************************/

.fadeIn_up {
  opacity: 0;
  transform: translate(0, 50%);
  transition: 2s;
}
.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1;
}


/*====================================

シャッ（背景色が伸びて出現）

===================================*/

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

@keyframes bgextendAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

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

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

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

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.bgappearTrigger,
.bgUDextendTrigger,
.bgDUextendTrigger,
.bgRLextendTrigger,
.bgLRextendTrigger{
    opacity: 0;
}




/**************************************************************

main表示用

**************************************************************/

main {
/*   display: none; */
  /* opacity: 0;
  transition: opacity 0.5s ease-in-out; */
}
/* 
.main_co {}

.main_co .main_co_in {
  position: relative;
  overflow: hidden;
}

.main_co .main_co_in picture {
  width: 100%;
  height: auto;
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  background: ;
}

.main_co .main_co_in picture img {
  max-width: 100%;
  vertical-align: bottom;
}

.main_co .main_co_in .m_l2 {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  background-color:rgba(9,17,44,0);
  background-image:
  radial-gradient(at 95% 72%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 47% 74%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 35% 4%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 98% 96%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 48% 97%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 2% 4%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 1% 98%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 95% 7%, hsla(225,90%,9%,0.1) 0px, transparent 50%);
}


.main_co .main_co_in .m_t1 {
  padding: 14em 19em 28em;
  position: relative;
  top: 0;
  left: 0;
  background-color:rgba(9,17,44,0);
  background-image:
  radial-gradient(at 95% 72%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 47% 74%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 35% 4%, hsla(225,90%,9%,0.1) 0px, transparent 50%),
  radial-gradient(at 98% 96%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 48% 97%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 2% 4%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 1% 98%, hsla(225,90%,9%,1) 0px, transparent 50%),
  radial-gradient(at 95% 7%, hsla(225,90%,9%,0.1) 0px, transparent 50%);
  z-index: 2;
}


.main_co .main_co_in .m_t1 .m_t1_line {
  max-width: 65px;
  height: 65px;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line1 {
  display: block;
  width: 6em;
  height: 0.1em;
  background: rgb(192,140,56);
  background: -moz-linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: -webkit-linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c08c38",endColorstr="#c08c38",GradientType=1);
  margin: auto;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line2 {
  display: block;
  width: 6em;
  height: 0.1em;
  background: #fff;
  margin: 1.15vw auto;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line3 {
  display: block;
  width: 6em;
  height: 0.1em;
  background: rgb(192,140,56);
  background: -moz-linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: -webkit-linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: linear-gradient(100deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c08c38",endColorstr="#c08c38",GradientType=1);
  margin: auto;
}

.main_co .main_co_in .m_t1 h1 {
  font-size: 5.2rem;
  line-height: 1.7em;
  letter-spacing: 0.4em;
  color: #fff;
  clip-path: inset(0 100% 0 0);
  display: inline-block;
  transition: 2s cubic-bezier(0.37, 0, 0.63, 1);
  transition-property: clip-path;
}

.main_co .main_co_in .m_t1 h1.is-animated {
  clip-path: inset(0);
}

.main_co .main_co_in .m_t1 h2 {
  color: #fff;
  transform: scale(1,0.95);
  font-size: 1.5rem;
  line-height: ;
  letter-spacing: 0.06em;
}

.main_co .main_co_in .m_t1 .m_t1_p {
  font-size: 1.2rem;
  line-height: 1.7em;
  letter-spacing: 0.06em;
  color: #fff;
}


.main_co .main_co_in .m_t1 .m_t1_box {
  background: #fff;
  padding: 0.6em 1.7em 0.75em;
  display: inline-block;
  margin-top: 3em;
}

.main_co .main_co_in .m_t1 .m_t1_box h2 {
  color: #09112c;
  transform: scale(1,1);
  font-size: 1.4rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: 600;
}

.main_co .main_co_in .m_t1 .m_t1_box p {
  font-size: 2rem;
  line-height: 1.7em;
  letter-spacing: 0.6em;
  text-shadow: 5px 4px 0px rgba(234, 225, 186, 1);
}


.main_co .main_co_in .m_l3 {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 0.4em;
  z-index: 3;
  background: rgb(192,140,56);
  background: -moz-linear-gradient(0deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: -webkit-linear-gradient(0deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  background: linear-gradient(0deg, rgba(192,140,56,1) 0%, rgba(248,232,167,1) 84%, rgba(192,140,56,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c08c38",endColorstr="#c08c38",GradientType=1);
} */

.smooth {
  clip-path: inset(0 100% 0 0);
  display: inline-block;
  transition: 1.4s cubic-bezier(0.37, 0, 0.63, 1);
  transition-property: clip-path;
}
.smooth.is-animated {
  clip-path: inset(0);
}


/* .main .main_co h1 span {
  font-weight: 600;
}

.main .main_co .main_co_p {
  animation-name: fadein;
  animation-duration: 2s;
}

.main .main_co .main_co_p img {
  width: 100%;
  max-width: calc(100% - 30vw);
} */

.cxf {
  opacity: 0;
}

.cxf.inview {
  animation-name: fade-in;
  animation-duration: .6s;
  animation-timing-function: ease-in-out;
  animation-delay: .2s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}

@keyframes fade-in {
  0% {
    transform: translateY(40px);
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}

@keyframes fadein {
  from {
    opacity: 0;
    transform: translateY(13px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/**************************************************************

co01表示用

**************************************************************/
.co01 {}

.co01 .co01_in {
  text-align: center;
}

.co01 .co01_in .c01_line {
  max-width: 65px;
  height: 65px;
  margin: auto;
}

.co01 .co01_in .c01_line .c_t1_line {
  display: block;
  width: 6em;
  height: 0.1em;
}

.co01 .co01_in .c01_line .c_t1_line:nth-child(2) {
  margin: 1.15vw 0;
}

.l_red {
  background: #bd192e;
}

.l_white {
  background: #FFF;
}

.l_blue {
  background: #0e3984;
}


.co01 .co01_in .c01_box {
  text-align: center;
  margin:  8em auto 10em;
  /* animation-name: fadein;
  animation-duration: 2s; */
}

.co01 .co01_in .c01_box .c01_logo {
  max-width: 500px;
  margin: auto;
}

.co01 .co01_in .c01_box .c01_logo img {
  max-width: 100%;
}

.co01 .co01_in .c01_box .c01_box_p1 {
  font-size: 5.2rem;
  line-height: 1.3em;
  letter-spacing: 0.4em;
  color: #fff;
  font-weight: ;
  padding: 0.5em 0 0.1em;
}

.co01 .co01_in .c01_box .c01_box_p2 {
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.7em;
  letter-spacing: 0.1em;
  color: #fff;
  padding-bottom: 1em;
}

.co01 .co01_in .c01_box .c01_box_p3 {
  font-size: 2.5rem;
  font-weight: ;
  line-height: 1.2em;
  letter-spacing: 0.6em;
}

.co01 .co01_in .c01_box .c01_box_p3 span {
  display: inline-block;
  background: #fff;
  color: #09112c;
  padding: 0.04em 0.6em 0.04em 1em;
}




/**************************************************************

co02表示用

**************************************************************/

.co02 {
  margin: 14em auto 11em;
}

.co02 .co02_in {
  text-align: center;
}


.co02 .co02_in picture {
  display: inline-block;
  padding-bottom: 10em;
}

.co02 .co02_in picture img {}

.blur {
  filter: blur(5px);
}

.monochrome {
  filter: grayscale(100%) blur(5px);
  transition: filter 0.5s ease;
}

.not_target {
  height: auto; /* 高さ100%のセクション */
  background-color: lightblue;
}

.co02_ph_p {
    max-width: 100%;
    height: auto;
}

.co02 .co02_in .c02_line {
  max-width: 65px;
  height: 65px;
  margin: auto;
}

.co02 .co02_in .c02_line .c_t1_line {
  display: block;
  width: 6em;
  height: 0.1em;
}

.co02 .co02_in .c02_line .c_t1_line:nth-child(2) {
  margin: 1.15vw 0;
}

.co02 .co02_in h3 {
  color: #dcd09f;
  font-size: 2rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: 600;
  /*padding-top: 2em;*/
}

.co02 .co02_in p {
  color: #fff;
  font-size: 1.15rem;
  line-height: 2.5em;
  letter-spacing: 0.25em;
  text-align: left;
  font-weight: ;
  padding: 3em 6vw 2em;
}



/**************************************************************

co03表示用

**************************************************************/

.co03 {
  position: relative;
}

.co03::after {
  position: absolute;
  content: ' ';
  width: 100%;
  height: 40vw;
  bottom: 0;
  left: 0;
  z-index: -2;
  background: rgb(57,58,58);
  background: -moz-linear-gradient(0deg, rgba(57,58,58,1) 0%, rgba(0,17,45,1) 100%);
  background: -webkit-linear-gradient(0deg, rgba(57,58,58,1) 0%, rgba(0,17,45,1) 100%);
  background: linear-gradient(0deg, rgba(57,58,58,1) 0%, rgba(0,17,45,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#393a3a",endColorstr="#1a2942",GradientType=1);
}

.co03 .co03_in {}

.co03 .co03_in .c03_line {
  max-width: 65px;
  height: 65px;
  margin: auto;
}

.co03 .co03_in .c03_line .c_t1_line {
  display: block;
  width: 6em;
  height: 0.1em;
}

.co03 .co03_in .c03_line .c_t1_line:nth-child(2) {
  margin: 1.15vw 0;
}


.co03 .co03_in .c03_topEng {
  font-size: 5.2rem;
  font-size: 3.75rem;
  line-height: 1.3em;
  letter-spacing: 0.4em;
  color: #fff;
  font-weight: ;
  text-align: center;
  padding: 0.8em 0 2em;
}

.co03 .co03_in h2 {
  font-size: 1.65rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: 600;
  color: #fff;
  text-align: center;
  padding: 0.5em 0 5.5em;
}

.co03 .co03_in .c03_box01 {
  text-align: center;
  max-width: 728px;
  margin: auto;
}

.co03 .co03_in .c03_box01 h3 {
  font-size: 1.65rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: ;
  color: #fff;
}

.co03 .co03_in .c03_box01 p {
  font-size: 1rem;
  line-height: 2.5em;
  letter-spacing: 0.05em;
  color: #fff;
  margin: 3em auto 9em;
  text-align: left;
}

.co03 .co03_in .c03_box01 ul {
  display: flex;
  flex-flow: row wrap;
  margin-top: 3em;
}

.co03 .co03_in .c03_box01 ul li {
  font-size: 1rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: ;
  display: inline-block;
  color: #fff;
  margin: auto 1.3em 2em 0;
}


.co03 .co03_in .c03_box02 {
  margin: 10em auto auto;
  text-align: center;
}

.co03 .co03_in .c03_box02 h3 {
  font-size: 1.65rem;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: ;
  color: #fff;
  padding-bottom: 3em;
}

.co03 .co03_in .c03_box02 ul {
  display: flex;
  flex-flow: row wrap;
}

.co03 .co03_in .c03_box02 ul li {
  margin: auto 1.8em 4em;
  width: 17%;
}

.co03 .co03_in .c03_box02 ul li a {
  display: inline-block;
}

.co03 .co03_in .c03_box02 ul li a:hover {}

.co03 .co03_in .c03_box02 ul li a picture {
  box-shadow: 2px -1px 14px 0px rgba(0, 0, 0, 0.35);
}

.co03 .co03_in .c03_box02 ul li a picture img {
  max-width: 90%;
  margin: auto;
/*   box-shadow: 2px -1px 14px 0px rgba(0, 0, 0, 0.35); */
}

.co03 .co03_in .c03_box02 ul li a p {
  font-size: 0.95rem;
  line-height: 1.3em;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  padding-top: 0.8em;
}



/**************************************************************

co04表示用

**************************************************************/

.co04 {
  background: #393a3a;
  padding-top: 12em;
}


.co04 .co04_in {
  text-align: center;
}

.co04 .co04_in .c04_line {
  max-width: 65px;
  height: 65px;
  margin: auto;
}

.co04 .co04_in .c04_line .c_t1_line {
  display: block;
  width: 6em;
  height: 0.1em;
}

.co04 .co04_in .c04_line .c_t1_line:nth-child(2) {
  margin: 1.15vw 0;
}

.l_red {
  background: #bd192e;
}

.l_white {
  background: #FFF;
}

.l_blue {
  background: #0e3984;
}


.co04 .co04_in .c04_box {
  text-align: center;
  margin:  8em auto auto;
}


.co04 .co04_in .c04_box .c04_top_wave {
  font-size: 2.2rem;
  line-height: 1em;
  letter-spacing: 0.3em;
  color: #fff;
  padding: 0 0 3em;
  text-shadow: 5px 4px 0px rgba(189, 25, 46, 0.3);
}

.co04 .co04_in .c04_box .c04_logo {
  max-width: 600px;
  margin: auto;
}

.co04 .co04_in .c04_box .c04_logo img {
  max-width: 100%;
}

.co04 .co04_in .c04_box .c04_box_p1 {
  font-size: 5.2rem;
  line-height: 1em;
  letter-spacing: 0.4em;
  color: #fff;
  font-weight: ;
  padding: 0.5em 0 0.1em;
}

.co04 .co04_in .c04_box .c04_box_p2 {
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.7em;
  letter-spacing: 0.1em;
  color: #fff;
  padding-bottom: 3em;
}


.co04 .co04_in .c04_box#not_sec .c04_box_p2 {
  font-size: 2rem;
  margin-top: 1em;
}

.co04 .co04_in .c04_box .c04_box_p3 {
  font-size: 4rem;
  font-weight: ;
  line-height: 1.2em;
  letter-spacing: 0.6em;
  padding: 0 0 0.5em;
  text-indent: 0.2em;
}

.co04 .co04_in .c04_box .c04_box_p3 span {
  display: inline-block;
/*   background: #fff; */
  color: #fff;
  text-shadow: 5px 4px 0px rgba(189, 25, 46, 0.3);
/*   padding: 0.04em 0.6em 0.04em 1em; */
}

.co04 .co04_in .c04_box .c04_box_p4 {
  font-size: 4rem;
  font-weight: ;
  line-height: 1.2em;
  letter-spacing: 0.35em;
  color: #fff;
  padding: 2em 0 2.5em;
}




.co04 .co04_in .c04_box#not_thi .c04_box_p2 {
  padding: 4em 0;
}

.co04 .co04_in .c04_box picture {
  display: inline-block;
  padding-bottom: 3.5em;
}

.co04 .co04_in .c04_box picture img {
  max-width: 100%;
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3);
}

.co04 .co04_in .c04_box .photo_in {
  position: relative;
  padding-block: clamp(50px, 14vw, 140px) clamp(80px, 24vw, 240px);
  color: #efefef;
  background: url(../img/eu_seminar_bg.webp) no-repeat center 85% / cover;
}


.co04 .co04_in .c04_box .photo_in .photo_in_p,
.co04 .co04_in .c04_box .photo_in .photo_in_p span {
  position: relative;
  padding-bottom: 1.75em;
  font-size: 3rem;
  font-weight: ;
  letter-spacing: 0.1em;
  line-height: ;
  color: #efefef;
}


.co04 .co04_in .c04_box .photo_in .photo_in_p span {
  display: inline-block;
  padding-bottom: 0;
}


.co04 .co04_in .c04_box .photo_in .photo_in_p span::after {
  content: "";
  position: absolute;
  display: block;
  height: 1px;
  width: clamp(30px, 6vw, 60px);
  left: 1.2em;
  bottom: -0.5em;
  background: #efefef;
}

.co04 .co04_in .c04_box ul {
  -webkit-transition-timing-function: linear !important;
    transition-timing-function: linear !important;
}

.co04 .co04_in .c04_box ul li {
   transition-timing-function: linear;
   width: max-content;
   margin: auto 0.3em;
}

.co04 .co04_in .c04_box ul li picture {
  padding-bottom: 0;
}

.co04 .co04_in .c04_box ul li picture img {
  height: auto;
  width: auto;
  max-width: 450px;
}




.co04 .co04_in .c04_box .c04_box_p5 {
  font-size: 0.95rem;
  font-weight: ;
  line-height: 2.5em;
  letter-spacing: 0.25em;
  color: #fff;
  padding: 2em 0 2.5em;
  max-width: 860px;
  margin: auto;
  text-align: left;
}

.co04 .co04_in .c04_box .c04_box_p6 {
  font-size: 1.2rem;
  font-weight: ;
  line-height: 2.5em;
  letter-spacing: 0.35em;
  color: #fff;
  padding: 1em 0 2.5em;
  max-width: 860px;
  margin: auto;
  text-align: center;
}

.co04 .co04_in .c04_box .c04_box_p6 a {
  position: relative;
  padding: 1em 1.5em 0.2em;
  display: inline-block;
  color: #fff;
}

.co04 .co04_in .c04_box .c04_box_p6 a::before {
  position: absolute;
  content:"";
  display: block;
  width: 10.5em;
  height: 0.05em;
  background: #fff;
  bottom: 0em;
  left: 0;
  transform-origin: center top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.co04 .co04_in .c04_box .c04_box_p6 a:hover {
  text-shadow: 5px 4px 5px rgba(0, 0, 0, 1);
}

.co04 .co04_in .c04_box .c04_box_p6 a:hover::before {
  transform-origin: center top;
  transform: scale(1, 1);
}



/**************************************************************

co05表示用

**************************************************************/





/**************************************************************

co06表示用

**************************************************************/



/**************************************************************

co08表示用

**************************************************************/





/**************************************************************

co09表示用

**************************************************************/



/* =======================================

フッター直前のLL会員登録

======================================= */

.legal_l {
  /* padding: 4vw 0; */
  /* background: url(../img/ll_bg.webp);
  background-position: center top;
  background-attachment: fixed;
  background-size: cover;
  overflow: hidden; */
  margin-top: 5%;
  background: #0481A2;
  z-index: -2;
}

.legal_l .llbg a.slipe {
  /* background:#0481A2; */
  padding: 4.5vw 0;
  /* display: inline-block; */
  position: relative;
}

.legal_l .llbg a.slipe::after {
  content: '';
  position: absolute;
  z-index: 0;
  bottom: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: #2f4a81;
  transition:all .5s;
  opacity: 0;
}

.legal_l .llbg a.slipe:hover::after {
  width: 100%;
  opacity: 1;
}

.legal_l .llbg a.slipe:hover{
  color: #fff;
}



.legal_l .llbg .llcon {
  display: flex;
  flex-flow: row wrap;
  z-index: 2;
  position: relative;
}

.legal_l .llbg .llcon .ll_le {
  margin: 0 auto;
}

.legal_l .llbg .llcon .ll_le h3 {
  font-size: 3rem;
  letter-spacing: 0.15em;
  line-height: 1em;
  color: #fff;
  padding-bottom: 0.3em;
}

.legal_l .llbg .llcon .ll_le p {
  font-size: 1rem;
  letter-spacing: 0.15em;
  line-height: 1.7em;
  padding-left: 2em;
  color: #fff;
  position: relative;
}

.legal_l .llbg .llcon .ll_le p::before {
  content: "";
  width: 0;
  height: 0.1em;
  position: absolute;
  top: 0.8em;
  left: 0;
  margin: auto;
  color: #A58B68;
  border-left: 1.3em solid #A58B68;
}

.legal_l .llbg .llcon .ll_ri {
  margin: 0 auto;
}

.legal_l .llbg .llcon .ll_ri p {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #fff;
}



.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn {
  margin-top: 2.2em;
  display: inline-block;
  position: relative;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn::before {
  content: "";
  width: 4px;
  height: 4px;
  background-color: #8d0116;
  border-radius: 50%;
  position: absolute;
  top: 52%;
  left: 12px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 11;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span {
  display: inline-block;
  background: #fff;
  color: #091246;
  font-weight: 600;
  padding: 0.5em 4vw;
  letter-spacing: 0.2em;
  position: relative;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span::before {
  background-color: #fff;
  content: '';
  display: block;
  position: absolute;
  z-index: 10;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  bottom: -6px;
  height: 1px;
  right: -6px;
  width: 100%;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span::after {
  background-color: #fff;
  content: '';
  display: block;
  position: absolute;
  z-index: 10;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  top: 6px;
  right: -6px;
  height: 100%;
  width: 1px;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover {
  color: #fff;
  background: -webkit-gradient(linear,left top,right top,from(#102035),to(#204068));
  background: linear-gradient(90deg,#102035,#204068);
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover::before {
  right: 0;
  bottom: 0;
  background: #204068;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover::after {
  top: 0;
  right: 0;
  background: #204068;
}



/**************************************************************

footer表示用

**************************************************************/


footer {
  background: #393a3a;
}

footer .ftr {
  padding: 6em 0;
}

footer .ftr p {
  margin: auto;
  max-width: 450px;
  max-width: 20vw;
}

footer .ftr p img {
  max-width: 100%;
}

footer .ftr .ft_logo {}


footer .ftr .ft_logo .logo_in {
  width: 100%;
  max-width: 270px;
  text-align: center;
  margin: auto;
}

footer .ftr .ft_logo a {
  /*display: inline-block;*/
  margin: auto;
}

footer .ftr .ft_logo .logo_in a {}

footer .ftr .ft_logo .logo_in a img {
  width: 100%;
  /*max-width: 300px;*/
}

footer .ftr .ft_le p {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #fff;
  padding-top: 0.5em;
  position: relative;
  padding-left: 1.8em;
}

footer .ftr .ft_le p strong {
  display: inline-block;
  padding-right: 0.5em;
}

footer .ftr .ft_le p::before {
  content: "";
  width: 0;
  height: 0.1em;
  position: absolute;
  top: 1.4em;
  left: 0;
  margin: auto;
  color: #A58B68;
  border-left: 1.3em solid #A58B68;
}

footer .ftr p.ft_logotxt {
  font-size: 1.05rem;
  letter-spacing: 0.05em;
  transform: scaleX(0.92);
  line-height: 2em;
  color: #fff;
  padding-top: 0.1em;
  position: relative;
  text-align: center;
  padding-left: 0;
  /*max-width: 300px;*/
}

footer .ftr .ft_le p.ft_logotxt::before {
  display: none;
}


footer .ftr001 {
  width: 100%;
  height: 3em;
  background: #bd192e;
}

footer .ftr002 {
  width: 100%;
  height: 3em;
  background: #fff;
}


footer .ftcon {
  display: flex;
  flex-flow: row wrap;
  padding: 1.5em 0 4em ;
}

footer .ftcon .ft_le {
  width: 50%;
  margin: 0 2em 0 0;
}

footer .ftcon .ft_le .ft_logo {}

footer .ftcon .ft_le .ft_logo a {}

footer .ftcon .ft_le .ft_logo a img {
  width: 100%;
  max-width: 300px;
}

footer .ftcon .ft_le p {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #fff;
  padding-top: 0.5em;
  position: relative;
  padding-left: 1.8em;
}

footer .ftcon .ft_le p strong {
  display: inline-block;
  padding-right: 0.5em;
}

footer .ftcon .ft_le p::before {
  content: "";
  width: 0;
  height: 0.1em;
  position: absolute;
  top: 1.4em;
  left: 0;
  margin: auto;
  color: #A58B68;
  border-left: 1.3em solid #A58B68;
}

footer .ftcon .ft_le p.ft_logotxt {
  font-size: 1.05rem;
  letter-spacing: 0.05em;
  transform: scaleX(0.92);
  line-height: 2em;
  color: #fff;
  padding-top: 0.1em;
  position: relative;
  text-align: center;
  padding-left: 0;
  /*max-width: 300px;*/
}

footer .ftcon .ft_le p.ft_logotxt::before {
  display: none;
}

footer .ftcon .ft_ri {
  width: 45%;
  margin: 0 auto;
}

footer .ftcon .ft_ri ul {
  display: flex;
  flex-flow: row wrap;
}

footer .ftcon .ft_ri ul li {
  font-size: 1rem;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #fff;
  position: relative;
  padding-left: 1.8em;
  width: 39%;
  margin: 0.3em 0;
}

footer .ftcon .ft_ri ul li::before {
  content: "";
  width: 0;
  height: 0.1em;
  position: absolute;
  top: 0.8em;
  left: 0;
  margin: auto;
  color: #fff;
  border-left: 1.3em solid #fff;
}

footer .ftcon .ft_ri ul li a {
  color: #fff;
  position: relative;
  display: inline-block;
  text-decoration: none;
}

footer .ftcon .ft_ri ul li a:hover {}

footer .ftcon .ft_ri ul li a::after {
  position: absolute;
  bottom: -2px;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .2s;
}

footer .ftcon .ft_ri ul li a:hover::after {
  transform: scale(1, 1);
}


footer .ftcon2 {
  background: #FAF7F7;
}

footer .ftcon2 p {
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #1C2C58;
} 



/**************************************************************

modal表示用

**************************************************************/

.remodal {
  max-width: 100%;
/*   height: 100vh; */
}

.remodal .co06_question .qa p {
  text-align: left;
}

.remodal-cancel {
  background: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  padding: 0.4em 2em;
}

#modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5); /* 半透明の背景 */
    z-index: 1000;
    /* filter: blur(3px);  オーバーレイの blur は削除 */
    /* -webkit-filter: blur(3px); */
    transition: opacity 0.3s ease-in-out; /* opacity でのトランジションに変更 */
    -webkit-transition: opacity 0.3s ease-in-out;
}

#modal-content {
    position: absolute;
    /*top: 50%;*/
    top: 0%;
    left: 50%;
    /*transform: translate(-50%, -50%);*/
    transform: translate(-50%, 0%);
    /*background-color: #09112c;*/
    background-color: #0f2d56;
    width: 100%;
    margin: auto;
    max-width: 1300px;
    height: 95vh;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    text-align: center;
    color: #fff;
    filter: none;
    -webkit-filter: none;
    overflow-y: scroll;
}

#modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 4em;
    cursor: pointer;
}

/* body.modal-open main と body:not(.modal-open) main は削除 */

main.modal-active {
    filter: blur(3px);
    -webkit-filter: blur(3px);
    transition: filter 0.3s ease-in-out;
    -webkit-transition: -webkit-filter 0.3s ease-in-out;
    overflow: hidden;
}

#modal-overlay,
#modal-content {
    filter: none;
    -webkit-filter: none;
}

/* .blurred は削除 */

/* スクロール制御が必要な場合は、.modal-active を残す */
.modal-active {
    overflow: hidden;
}

.md_01 {}

.md_01 .md_01_in {}

.md_01 .md_01_in h2 {
  font-size: 3rem;
  line-height: ;
  letter-spacing: 0.1em;
  font-weight: ;
  padding: 3vw 0;
}


.md_01 .md_01_in picture {
  display: inline-block;
}

.md_01 .md_01_in .md_01_in_p01 {
  font-size: 2rem;
  line-height: ;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding: 1.5em 0;
}

.md_01 .md_01_in .md_01_in_p02 {
  font-size: 1.1rem;
  line-height: 2em;
  letter-spacing: 0.05em;
  font-weight: ;
  padding: 0 13vw 2em;
}

.md_01 .md_01_in .md_01_in_p03 {
  padding: 1em 0 2em;
  margin: auto;
  max-width: 860px;
  display: block;
}

.md_01 .md_01_in .md_01_in_p03 a {
  color: #fff;
  display: inline-block;
  font-weight: ;
  font-size: 1.7rem;
  line-height: 1em;
  letter-spacing: 0.1em;
  position: relative;
  padding: 0 2em;
}

.md_01 .md_01_in .md_01_in_p03 a {}

.md_01 .md_01_in .md_01_in_p03 a::before {
  position: absolute;
  content:"";
  display: block;
  width: 10.5em;
  height: 0.05em;
  background: #fff;
  bottom: 0em;
  left: 0;
  transform-origin: center top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.md_01 .md_01_in .md_01_in_p03 a:hover {
  text-shadow: 5px 4px 5px rgba(0, 0, 0, 1);
}

.md_01 .md_01_in .md_01_in_p03 a:hover::before {
  transform-origin: center top;
  transform: scale(1, 1);
}

#modal-content::-webkit-scrollbar {
    display: none; /* スクロールバーを非表示にする */
}

@media screen and (min-width: 1921px) and (max-width: 3840px) {

.main_co .main_co_in picture img {
  max-width: 90%;
  margin-right: 0;
}

.main_co .main_co_in .m_t1 {
  padding: 18em 19em 20em;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line2 {
  margin: 1vw auto;
}

.main_co .main_co_in .m_t1 h1 {
  margin-top: 0.2em;
  font-size: 6.5rem;
}

.main_co .main_co_in .m_t1 h2 {
  font-size: 2.3rem;
}


.main_co .main_co_in .m_t1 .m_t1_p {
  font-size: 1.6rem;
}

.main_co .main_co_in .m_t1 .m_t1_box {
  margin-top: 7em;
}

.main_co .main_co_in .m_l3 {
  width:0.8em;
}



.co02 .co02_in p {
  padding: 3em 7vw 2em;
}


.co03 .co03_in .c03_box01 {
  max-width: 100%;
}


#modal-content {
  max-width: 1500px;
  height: 100vh;
}

}

@media screen and (max-width: 1548px) {}

@media screen and (max-width: 1500px) {}

@media screen and (max-width: 1495px) {}

@media screen and (max-width: 1455px) {
.content1440 {
  width: 90%;
  max-width: 1440px;
  height: auto;
  margin: auto 5%;
}

.co06 .co06_in .co06_in_c .co06_cout h2 {
  padding-left: 2vw;
}

.co08 .co08_in {
  padding: 10vw 4vw;
}


}

@media screen and (min-width: 1441px) {}

@media screen and (max-width: 1351px) {}

@media screen and (max-width: 1300px) {}

@media screen and (max-width: 1290px) {}

@media screen and (max-width: 1251px) {}


@media screen and (max-width: 1200px) {}


@media screen and (max-width: 1150px) {}


@media screen and (max-width: 1100px) {}


@media screen and (max-width: 1050px) {}


@media screen and (max-width: 1000px) {}


@media screen and (max-width: 960px) {}

@media only screen and (max-width: 979px) {
.sp_979 {
  display: block;
}


}

@media screen and (min-width: 641px) and (max-width: 1024px) {}

@media screen and (max-width: 767px) {}

@media screen and (max-width: 640px) {

.pc {
  display: none;
}

.sp {
  display: block;
}

.contents {
  width: 100%;
  max-width: 1600px;
  margin: auto;
  height: auto;
}

.contents2 {
  width: 90%;
  max-width: 1200px;
  margin: auto 5%;
  height: auto;
}

.contents3 {
  width: 90%;
  max-width: 1000px;
  margin:  auto 5%;
  height: auto;
}

.contents3_2 {
  width: 90%;
  max-width: 1100px;
  margin:  auto 5%;
  height: auto;
}

.contents4 {
  width: 94%;
  max-width: 600px;
  height: auto;
  margin: auto 3%;
}

.contents1440 {
  width: 90%;
  max-width: 1440px;
  margin:  auto 5%;
  height: auto;
}



/**************************************************************

全体的なPC表示用

**************************************************************/

.css-circle-wrap {
  position: fixed;
  top: 30vw;
  left: 5vw;
  right: 5vw;
  z-index: -1;
/*     width: 100%; */
/*     height: 100vh; */
}

.css-circle-b {
  border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%;
  background: #fff;
/*   mix-blend-mode: multiply; */
  animation-name: corners, rotate;
  animation-duration: 20s, 12s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  width: 80vw;
  height: 80vw;
/*   filter: blur(30px); */
  filter: blur(16px);
}

.css-circle-b01 {
  border-radius: 50% 70% 45% 80% / 50% 70% 45% 50%;
/*   background: #48bcbf; */
  background: rgba(72, 188, 191, 0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  width: 84vw;
  height: 84vw;
}

.css-circle-b02 {
  position: absolute;
/*   background: #366ea5; */
  background: rgba(18,108,197,0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  animation-name: corners, rotate02;
}

.css-circle-b03 {
  position: absolute;
  background: #a43f49;
  background: rgba(181, 26, 42, 0.5);
  top: 1vw;
  left: 0;
  right: 0;
  margin: auto;
  animation-name: corners, rotate03;
}

.css-circle-b00 {
  border-radius: 50% 55% 45% 60% / 50% 60% 50% 40%;
  position: absolute;
  background: #000;
  top: 5%;
  left: 5%;
  right: 0;
  margin: auto;
  animation-name: corners02, rotate04;
  filter: blur(25px);
  width: 80vw;
  height: 80vw;
}



/**************************************************************

inview表示用

**************************************************************/



.cxf {
  opacity: 0;
}

.cxf.inview {
  animation-name: fade-in;
  animation-duration: .7s;
  animation-timing-function: ease-in-out;
  animation-delay: .1s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}

@keyframes fade-in {
  0% {
    transform: translateY(20px);
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}




/**************************************************************

main表示用

**************************************************************/



/* .main_co {}

.main_co .main_co_in {
  position: relative;
  overflow: hidden;
}

.main_co .main_co_in picture {
  width: 100%;
  height: auto;
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  background: ;
}

.main_co .main_co_in picture img {
  max-width: 100%;
  vertical-align: bottom;
}

.main_co .main_co_in .m_l2 {
  width: 100%;
  height: 100%;
}


.main_co .main_co_in .m_t1 {
  padding: 19vw 10vw 26vw;
}


.main_co .main_co_in .m_t1 .m_t1_line {
  max-width: 6vw;
  height: 6vw;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line1 {
  width: 6vw;
  height: 0.1em;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line2 {
  width: 6vw;
  height: 0.1em;
  margin: 2vw auto;
}

.main_co .main_co_in .m_t1 .m_t1_line .m_t1_line3 {
  width: 6vw;
  height: 0.1em;
}

.main_co .main_co_in .m_t1 h1 {
  font-size: 11vw;
  line-height: 1.7em;
  letter-spacing: 0.3em;
  padding-top: 3vw;
}

.main_co .main_co_in .m_t1 h1.is-animated {
  clip-path: inset(0);
}

.main_co .main_co_in .m_t1 h2 {
  color: #fff;
  transform: scale(1,0.95);
  font-size: 4.5vw;
  line-height: ;
  letter-spacing: 0.06em;
}


.main_co .main_co_in .m_t1 .m_t1_p {
  font-size: 3.8vw;
}

.main_co .main_co_in .m_t1 .m_t1_box {
  margin-top: 10vw;
}

.main_co .main_co_in .m_t1 .m_t1_box h2 {
  font-size: 3.6vw;
}

.main_co .main_co_in .m_t1 .m_t1_box p {
  font-size: 5vw;
  line-height: 1.7em;
  letter-spacing: 0.4em;
  text-shadow: 3px 2px 0px rgba(234, 225, 186, 1);
}


.main_co .main_co_in .m_l3 {
  width: 0.2em;
}
 */


/**************************************************************

co01表示用

**************************************************************/

.co01 {
  margin: 17vw auto 4vw;
}


.co01 .co01_in .c01_line {
  max-width: 6vw;
  height: 6vw;
  margin: auto;
}

.co01 .co01_in .c01_line .c_t1_line {
  display: block;
  width: 6vw;
  height: 0.1em;
}

.co01 .co01_in .c01_line .c_t1_line:nth-child(2) {
  margin: 2vw 0;
}


.co01 .co01_in .c01_box {
  text-align: center;
  margin:  9vw auto 0vw;
}

.co01 .co01_in .c01_box .c01_logo {
  width: 55%;
  margin: auto;
}

.co01 .co01_in .c01_box .c01_logo img {
  max-width: 100%;
}

.co01 .co01_in .c01_box .c01_box_p1 {
  font-size: 8.5vw;
  line-height: 1.3em;
  letter-spacing: 0.3em;
  margin-right: -0.3em;
}

.co01 .co01_in .c01_box .c01_box_p2 {
  font-size: 4vw;
  font-weight: 600;
  line-height: 1.7em;
  letter-spacing: 0.1em;
  color: #fff;
  padding-bottom: 3em;
}

.co01 .co01_in .c01_box .c01_box_p3 {
  font-size: 5vw;
}




/**************************************************************

co02表示用

**************************************************************/

.co02 {
  margin: 20vw auto 11em;
}



.co02 .co02_in picture {
  padding-bottom: 5vw;
}

.co02 .co02_in .c02_line {
  max-width: 6vw;
  height: 6vw;
  margin: auto;
}

.co02 .co02_in .c02_line .c_t1_line {
  display: block;
  width: 6vw;
  height: 0.1em;
}

.co02 .co02_in .c02_line .c_t1_line:nth-child(2) {
  margin: 2vw 0;
}


.co02 .co02_in h3 {
  color: #dcd09f;
  font-size: 4.8vw;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding-top: 2em;
}

.co02 .co02_in p {
  color: #fff;
  font-size: 3.8vw;
  line-height: 2.5em;
  letter-spacing: 0.07em;
  text-align: left;
  font-weight: ;
  padding: 2em 4vw 2em;
}


/**************************************************************

co03表示用

**************************************************************/

.co03 {
  position: relative;
}

.co03::after {
  position: absolute;
  content: ' ';
  width: 100%;
  height: 100vw;
  bottom: 0;
  left: 0;
  z-index: -2;
}

.co03 .co03_in {}

.co03 .co03_in .c03_line {
  max-width: 6vw;
  height: 6vw;
  margin: auto;
}

.co03 .co03_in .c03_line .c_t1_line {
  display: block;
  width: 6vw;
  height: 0.1em;
}

.co03 .co03_in .c03_line .c_t1_line:nth-child(2) {
  margin: 2vw 0;
}


.co03 .co03_in .c03_topEng {
  font-size: 9vw;
  line-height: 1.3em;
  letter-spacing: 0.3em;
  margin-right: -0.3em;
}

.co03 .co03_in h2 {
  font-size: 5vw;
}

.co03 .co03_in .c03_box01 h3 {
  font-size: 5vw;
}



.co03 .co03_in .c03_box01 p {
  font-size: 3.8vw;
  line-height: 2.5em;
  letter-spacing: 0.06em;
  font-weight: ;
  display: inline-block;
  color: #fff;
  padding: 0 2vw;
  margin: 2em auto auto;
}


.co03 .co03_in .c03_box01 ul li {
  font-size: 3.8vw;
  line-height: 1.7em;
  letter-spacing: 0.05em;
  font-weight: ;
  display: inline-block;
  color: #fff;
  margin: auto auto 2em 0;
  width: 100%;
  text-align: left;
  padding-left: 6vw;
  position: relative;
}

.co03 .co03_in .c03_box01 ul li::before {
  position: absolute;
  content: "";
  width: 1em;
  height: 0.05em;
  top: 0.8em;
  left: 0;
  margin: auto;
  color: #fff;
  background: #fff;
  /* z-index: 4; */
  transform: rotate(45deg);
}

.co03 .co03_in .c03_box01 ul li::after {
  position: absolute;
  content: "";
  width: 5em;
  height: 0.05em;
  top: 1.1em;
  right: 0;
  margin: auto;
  color: #fff;
  background: #fff;
}


.co03 .co03_in .c03_box02 {
  margin: 10em auto auto;
  text-align: center;
}

.co03 .co03_in .c03_box02 h3 {
  font-size: 5vw;
}

.co03 .co03_in .c03_box02 ul {
  display: flex;
  flex-flow: row wrap;
}

.co03 .co03_in .c03_box02 ul li {
  margin: auto auto 5em;
  width: 46%;
}


.co03 .co03_in .c03_box02 ul li a picture img {
  max-width: 90%;
  margin: auto;
/*   box-shadow: 2px -1px 14px 0px rgba(0, 0, 0, 0.35); */
}

.co03 .co03_in .c03_box02 ul li a p {
  font-size: 3.6vw;
}




/**************************************************************

co04表示用

**************************************************************/




.co04 .co04_in {
  text-align: center;
  width: 90%;
  margin: auto;
}

.co04 .co04_in .c04_line {
  max-width: 6vw;
  height: 6vw;
  margin: auto;
}

.co04 .co04_in .c04_line .c_t1_line {
  display: block;
  width: 6vw;
  height: 0.1em;
}

.co04 .co04_in .c04_line .c_t1_line:nth-child(2) {
  margin: 2vw 0;
}


.co04 .co04_in .c04_box {
  text-align: center;
  margin: 9vw auto auto;
  max-width: 100%;
}

.co04 .co04_in .c04_box .c04_top_wave {
  font-size: 6.5vw;
}

.co04 .co04_in .c04_box .c04_logo {
  width: 65%;
  margin: auto;
}

.co04 .co04_in .c04_box .c04_logo img {
  max-width: 100%;
}

.co04 .co04_in .c04_box .c04_box_p1 {
  font-size: 9.5vw;
  line-height: 1em;
  letter-spacing: 0.3em;
  margin-right: -0.3em;
}

.co04 .co04_in .c04_box .c04_box_p2 {
  font-size: 4vw;
  font-weight: 600;
  line-height: 1.7em;
  letter-spacing: 0.1em;
  color: #fff;
  padding-bottom: 2em;
}

.co04 .co04_in .c04_box#not_sec .c04_box_p2 {
  font-size: 6.5vw;
  margin-top: 1em;
}


.co04 .co04_in .c04_box .c04_box_p3 {
  font-size: 9vw;
  font-weight: ;
  line-height: 1.2em;
  letter-spacing: 0.6em;
  margin-right: -0.6em;
  display: inline-block;
}

.co04 .co04_in .c04_box .c04_box_p3 span {
  display: inline-block;
/*   background: #fff; */
  color: #fff;
/*   padding: 0.04em 0.6em 0.04em 1em; */
}

.co04 .co04_in .c04_box .c04_box_p4 {
  font-size: 6.5vw;
  font-weight: ;
  line-height: 1.2em;
  letter-spacing: 0.2em;
  color: #fff;
  padding: 2em 0 2.5em;
}

.co04 .co04_in .c04_box .c04_box_p5 {
  font-size: 3.4vw;
  max-width: 90%;
  margin: auto;
}



/**************************************************************

co05表示用

**************************************************************/






/**************************************************************

co06表示用

**************************************************************/



/**************************************************************

co07表示用

**************************************************************/



/**************************************************************

co07表示用

**************************************************************/



/**************************************************************

co08表示用

**************************************************************/






/**************************************************************

co09表示用

**************************************************************/



/* =======================================

フッター直前のLL会員登録

======================================= */

.legal_l {
  margin-top: 5%;
  background: #0481A2;
  z-index: -2;
}

.legal_l .llbg a.slipe {
  padding: 11.5vw 0;
}

.legal_l .llbg .llcon .ll_le {
  margin: 0 auto 3vh 0;
}

.legal_l .llbg .llcon .ll_le h3 {
  font-size: 7vw;
}

.legal_l .llbg .llcon .ll_le p {
  font-size: 3.6vw;
  letter-spacing: 0.15em;
  line-height: 1.7em;
  padding-left: 2em;
  color: #fff;
  position: relative;
}

.legal_l .llbg .llcon .ll_le p::before {
  content: "";
  width: 0;
  height: 0.1em;
  position: absolute;
  top: 0.8em;
  left: 0;
  margin: auto;
  color: #A58B68;
  border-left: 1.3em solid #A58B68;
}

.legal_l .llbg .llcon .ll_ri {
  margin: 0 auto;
}

.legal_l .llbg .llcon .ll_ri p {
  font-size: 3.6vw;
  letter-spacing: 0.1em;
  line-height: 2em;
  color: #fff;
}



.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn {
  margin-top: 2.2em;
  display: inline-block;
  position: relative;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn::before {
  content: "";
  width: 4px;
  height: 4px;
  background-color: #8d0116;
  border-radius: 50%;
  position: absolute;
  top: 52%;
  left: 12px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 11;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span {
  display: inline-block;
  background: #fff;
  color: #091246;
  font-weight: 600;
  padding: 0.5em 23vw;
  letter-spacing: 0.2em;
  position: relative;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span::before {
  background-color: #fff;
  content: '';
  display: block;
  position: absolute;
  z-index: 10;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  bottom: -6px;
  height: 1px;
  right: -6px;
  width: 100%;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span::after {
  background-color: #fff;
  content: '';
  display: block;
  position: absolute;
  z-index: 10;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  top: 6px;
  right: -6px;
  height: 100%;
  width: 1px;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover {
  color: #fff;
  background: -webkit-gradient(linear,left top,right top,from(#102035),to(#204068));
  background: linear-gradient(90deg,#102035,#204068);
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover::before {
  right: 0;
  bottom: 0;
  background: #204068;
}

.legal_l .llbg .llcon .ll_ri .not_nl_llr_btn span:hover::after {
  top: 0;
  right: 0;
  background: #204068;
}





/**************************************************************

footer表示用

**************************************************************/



footer {
  background: #393a3a;
}

footer .ftr {
  padding: 6em 0;
}

footer .ftr p {
  margin: auto;
  max-width: 450px;
  max-width: 60vw;
}

footer .ftr p img {
  max-width: 100%;
}

footer .ftr001 {
  width: 100%;
  height: 5vw;
  background: #bd192e;
}

footer .ftr002 {
  width: 100%;
  height: 5vw;
  background: #fff;
}
/**************************************************************

modal表示用

**************************************************************/

.remodal {
  max-width: 100%;
/*   height: 100vh; */
  padding: 2em;
}



.remodal .co06_question {
  width: 100%;
  margin: 3.5em auto;
}

.remodal .co06_question summary,
.remodal .co06_question .qa p {
  text-align: left;
}

.remodal-cancel {
  background: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  padding: 0.4em 2em;
}

#modal-content {
  overflow: auto; /* scroll ではなく auto に変更 */
  max-height: 80vh; /* 必要に応じて調整 */
  /*width: 80%;*/ /* 幅を追加 */
  /*max-width: 400px; /* 最大幅を追加 */*/
  /*height: auto;
  max-height: auto;*/
}

#modal-close {
    position: absolute;
    top: 10px;
    right: 7vw;
    font-size: 4em;
    cursor: pointer;
}

/* body.modal-open main と body:not(.modal-open) main は削除 */

main.modal-active {
    filter: blur(3px);
    -webkit-filter: blur(3px);
    transition: filter 0.3s ease-in-out;
    -webkit-transition: -webkit-filter 0.3s ease-in-out;
    overflow: hidden;
}

#modal-overlay,
#modal-content {
    filter: none;
    -webkit-filter: none;
}

/* .blurred は削除 */

/* スクロール制御が必要な場合は、.modal-active を残す */
.modal-active {
    overflow: hidden;
}

.md_01 {}

.md_01 .md_01_in {}

.md_01 .md_01_in h2 {
  font-size: 8vw;
  line-height: ;
  letter-spacing: 0.1em;
  font-weight: ;
  padding: 3vw 0;
}


.md_01 .md_01_in picture {
  display: inline-block;
}

.md_01 .md_01_in picture img {
  max-width: 65%;
}

.md_01 .md_01_in .md_01_in_p01 {
  font-size: 5.5vw;
  line-height: ;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding: 1.5em 0;
}

.md_01 .md_01_in .md_01_in_p02 {
  font-size: 3.8vw;
  line-height: 2em;
  letter-spacing: 0.05em;
  font-weight: ;
  padding: 0 8vw 2em;
  text-align: left;
}

.md_01 .md_01_in .md_01_in_p03 {
  padding: 1em 0 2em;
  margin: auto;
  max-width: 860px;
}

.md_01 .md_01_in .md_01_in_p03 a {
  color: #fff;
  display: inline-block;
  font-weight: ;
  font-size: 5vw;
  line-height: 1em;
  letter-spacing: 0.1em;
  position: relative;
  padding: 0 2em;
}

.md_01 .md_01_in .md_01_in_p03 a {}

.md_01 .md_01_in .md_01_in_p03 a::before {
  position: absolute;
  content:"";
  display: block;
  width: 10.5em;
  height: 0.05em;
  background: #fff;
  bottom: 0em;
  left: 0;
  transform-origin: center top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.md_01 .md_01_in .md_01_in_p03 a:hover {
  text-shadow: 5px 4px 5px rgba(0, 0, 0, 1);
}

.md_01 .md_01_in .md_01_in_p03 a:hover::before {
  transform-origin: center top;
  transform: scale(1, 1);
}


footer .ftr .ft_logo .logo_in {
  width: 100%;
  max-width: 200px;
  text-align: center;
  margin: auto;
}

footer .ftr p.ft_logotxt {
  font-size: 3.2vw;
  font-weight: 600;
}


}


@media screen and (max-width: 470px) {}

@media screen and (max-width: 370px) {}