@import url('https://fonts.googleapis.com/css2?family=Arima:wght@500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru&family=Zen+Kaku+Gothic+New&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

* {
    margin: 0;
    padding: 0;
}

/* フォント */
.zen-kaku gothic new-regulator { 
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: normal;
    font-style: normal; 
}

.kiwi-maru-regular {
    font-family: "Kiwi Maru", serif;
    font-weight: 400;
    font-style: normal;
  }
  
  .roboto-thin {
    font-family: "Roboto", sans-serif;
    font-weight: 100;
    font-style: normal;
  }
  
  .roboto-light {
    font-family: "Roboto", sans-serif;
    font-weight: 300;
    font-style: normal;
  }
  
  .roboto-regular {
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    font-style: normal;
  }
  
  .roboto-medium {
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    font-style: normal;
  }
  
  .roboto-bold {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-style: normal;
  }
  
  .roboto-black {
    font-family: "Roboto", sans-serif;
    font-weight: 900;
    font-style: normal;
  }
  
  .roboto-thin-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 100;
    font-style: italic;
  }
  
  .roboto-light-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 300;
    font-style: italic;
  }
  
  .roboto-regular-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 400;
    font-style: italic;
  }
  
  .roboto-medium-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    font-style: italic;
  }
  
  .roboto-bold-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-style: italic;
  }
  
  .roboto-black-italic {
    font-family: "Roboto", sans-serif;
    font-weight: 900;
    font-style: italic;
  }
  
/* アニメーション */
html,body{
	height: 100%;/*高さを100%にして描画エリアをとる*/
}

#particles-js{ 
	position:fixed;/*描画固定*/
	z-index:-1;/*描画を一番下に*/
	width: 100%;
	height: 100%;
    margin: 0;
}

body {
  background-image: url('../img/main.jpeg');
  background-size: cover;
  background-attachment: fixed;
}
h1, h2, h3 {
  font-family: 'Arima', cursive;
}

ul li,
ol li {
    list-style: none;
}

.wrap {
    width: 80%;
    margin: 0 auto;
}

.container {
  background: #fff9d8;
  box-shadow: 0 0 30px 3px rgba(110,90,70,.7);
  padding: 0;
  max-width: 407px;
  margin: auto;
  position: relative;
  z-index: 9999;
}
.menu-icon {
  width: 2rem;
  height: 2rem;
  fill: #fff;
  background: #0bd;
  padding: 1rem;
  position: fixed;
  right: 0;
}

p {
    line-height: 1.5;
    margin-bottom: 1rem;
    text-align: justify;
    font-family: "Zen角ゴシック New", sans-serif;
    color: #351109;
}

img {
    width: 100%;
    margin: 0 auto;
}

.dot-text {
    padding-top: .1em;
    background-position: top left -1px;
    background-repeat: repeat-x;
    background-size: 1em .3em;
    background-image: radial-gradient(.15em .15em at center center, #EEE955, #EEE955 100%, transparent);
}

.mb2rem {
    margin-bottom: 2rem;
}

.y_mark {
    background-color: #f7ff0d75;
    display: inline;
}

.text_pink {
    color: #e54a82;
    font-weight: bold;
}

.h2_font_s {
    font-size: 1.1rem;
}

  header {
    background: #fff;
    display: grid;
    justify-content: space-between;
    align-items: center;
    grid-template-columns: 1fr 2fr;
    gap: 1rem;
    color: #E54B82;
    font-weight: bold;
    font-size: 0.75rem;
    padding: .25rem;
}

header p {
    margin: 0;
    color: #E54B82;
 }

.ctabox {
    text-align: center;
    color: #e54a82;
    margin: 0 auto 1rem;
    animation: fuwafuwa 1s ease 0s infinite alternate;
}

section#fv {
    margin: 0 auto 1.5rem;
}

p.ctatext::before, 
p.ctatext::after {
    content: "";
    display: inline-block;
    width: 2px;
    height: 40px;
    background-color: #e54a82;
    position: absolute;
    right: -20px;
    bottom: 0;
    transform: rotate(30deg);
}

p.ctatext::after {
    transform: rotate(-30deg);
    right: unset;
    left: -20px;
}

p.ctatext {
    font-size: 1rem;
    line-height: 1.2;
    position: relative;
    display: inline-block;
    margin: 0;
    text-align: center;
    color: #E54B82;
    font-family: "Kiwi Maru", serif;
    font-weight: 400;
    font-style: normal;
}

#row1 > div:first-of-type {
    position: relative;
}

#row1 h2 {
    position: absolute;
    color: #fff;
    top: 1.3rem;
    left: 50%;
    transform: translateX(-50%);
    display: block;
    width: 13em;
    font-size: 1.5rem;
}

#row1 > div:nth-of-type(2) {
    background-color: #e54a82;
    padding: 1.5rem 0;
    margin: 0;
    color: #fff;
    position: relative;
    z-index: 9;
}

#row1 > div:nth-of-type(2)::before {
    content: '';
    position: absolute;
    bottom: 30px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 55px 55px 0 55px;
    border-color: #e54a82 transparent transparent transparent;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    z-index: -1;
}

#row1 > div:nth-of-type(2) > img {
    margin-bottom: .25rem;
}

#row1 > div:nth-of-type(2) > p:last-of-type {
    color: #EEE955;
    text-align: center;
    font-weight: bold;
    font-size: 2.25rem;
    margin: 0;
}

#row2 h2 {
    text-align: center;
    color: #e54a82;
    position: relative;
    margin: 2.5rem auto 1rem;
    font-size: 2.25rem;
    letter-spacing: 0px;
    line-height: 1;
}



#row2 h2 span.n_copy {
    position: relative;
}

#row2 h2 span.n_copy::before,
#row2 h2 span.n_copy::after {
    content: "";
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url(../img/tubaki@2x.png);
    background-size: contain;
    bottom: 3px;
    position: absolute;
    left: -40px;
 }

 #row2 h2 span.n_copy::after {
    left: unset;
    right: -37px;
  }

h2 span.s_copy {
    font-size: 1.25rem;
    letter-spacing: -2px;
 }

#row2 h2 > img {
    position: absolute;
    width: 100px;
    left: 13%;
    top: -35%;
}

#row2 > section > div:first-of-type {
    background: #e54a82;
    padding: 1rem 1.35rem .75rem;
    text-align: center;
    color: #fff;
    display: grid;
    grid-template-columns: 1fr 4fr;
    align-items: center;
    gap: .5rem;
    line-height: 1.25;
}

#row2 > section > div > h3 {
    display: inline-block;
    text-align: left;
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: bold!important;
    font-style: normal; 
}

#row2 > section > img {
    margin-bottom: 1rem;
}

#row2 > section > ul > li {
    list-style: none;
    background: #fff;
    padding: 1rem;
    margin-bottom: .5rem;
}

#row2 > section > ul > li h4 {
    color: #e54a82;
    margin-bottom: .25rem;
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: bold!important;
    font-style: normal; 
}

#row2 > section > ul > li p { 
    text-align: justify;
}

#row3 {
    background-color: #fff;
    padding: 0 0 1rem;
}

#row3 h2 {
    background: #e54a82;
    padding: 1.25rem 0;
    text-align: center;
    color: #fff;
    margin-bottom: 1.5rem;
}

#row3 h3 {
    color: #e54a82;
    text-align: center;
    font-size: 1.5rem;
    position: relative;
    display: inline-block;
    margin: 0 auto;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 auto .5rem;
    line-height: 1;
    text-align: left;
}

#row3 h3 span {
    font-size: 1.25rem;
    margin: 0 auto 0 0;
 }

#row3 h3::before {
    content: "";
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url(../img/tubaki@2x.png);
    background-size: contain;
    bottom: -8px;
    position: absolute;
    left: -40px;
}

#row3 h3 + div {
    border: solid .25px #e54a82;
    border-radius: 10px;
    padding: 1rem;
    box-shadow: 0 0 10px #e54a827d;
    margin: 0 auto 1.5rem;
}

#row3 h3 + div img {
    margin-bottom: 1rem;
}

#row3 h3 + div ul li {
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: 400;
    font-style: normal;
    list-style: disc;
    margin-left: 1rem;
    font-size: 14px;
    text-align: justify;
    letter-spacing: -.5px;
    line-height: 1.25;
    margin-bottom: .3rem;
}

#row3 p:last-of-type {
    text-align: center;
    color: #e54a82;
    font-size: .85rem;
}

#row3 p:last-of-type a { 
    color: #e54a82;
    font-weight: bold;
}

#row4  {
    background-color: #EEE9E0;
}

#row4 > div:first-of-type {
    background: #e54a82;
    padding: 1rem 1.35rem .75rem;
    text-align: center;
    color: #fff;
    display: grid;
    grid-template-columns: 1fr 4fr;
    align-items: center;
    gap: .5rem;
    line-height: 1.25;
}

#row4 > div:last-of-type {
    padding: 2rem 0 1rem;
}

#row4 > div:first-of-type h2 {
    display: inline-block;
    text-align: left;
    font-size: 1rem;
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: bold!important;
    font-style: normal; 
}

#row4 + #cta {
    padding: 1rem 0;
}

#row4 + #cta > div {
    margin: 0 auto;
}

#row5 {
    background-color: #fff;
    padding: 2rem 0;
}

#row5 > p, 
#row5 > h2 {
    text-align: center;
    color: #e54a82;
    line-height: 1.25;
    margin-bottom: 2rem;
}

#row5 > p{
    font-size: 1.25rem;
    letter-spacing: -1px;
    margin-bottom: .25rem;
}

#row5 ol li {
    list-style: none;
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
    gap: 10px;
    margin-bottom: 1rem;
    border-bottom: solid 1px #ddd;
    padding: 0 0 1rem;
}

#row5 ol li h3 {
    font-family: 'Kiwi Maru', sans-serif;
    color: #e54a82;
    letter-spacing: 1px;
    margin-bottom: .25rem;
}

#row5 ol li p {
    font-size: 14px;
    text-align: justify;
    letter-spacing: 0px;
    line-height: 1.25;
 }

 #row6 {
     background-color: #EEE9E0;
     margin: 1.5rem auto;
     padding: 2.5rem 0;
     position: relative;
    }
#row6::before, 
#row6::after {
    content: "";
    display: inline-block;
    width: 315px;
    height: 503px;
    background: url(../img/back@2x.png) no-repeat;
    background-size: contain;
    top: -70px;
    position: absolute;
    right: 0px;
    transform: scale(-1.0);
    z-index: -99;
}

#row6::after {
    top: 120px;
    left: 0px;
    transform: unset;    
}

 #row6 > p, 
#row6 > h2 {
    text-align: center;
    color: #e54a82;
    line-height: 1.25;
    margin-bottom: 1.5rem;
}

#row6 > p{
    font-size: 1.25rem;
    letter-spacing: -1px;
    margin-bottom: .25rem;
}

#row6 ol li {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 2.5fr;
    align-items: center;
    gap: 16px;
    margin-bottom: 1rem;
}

#row6 h3 {
    background-color: #E54B82;
    display: inline-block;
    padding: .25rem .5rem;
    line-height: 1;
    box-sizing: border-box;
    align-items: start;
    vertical-align: middle;
    font-family: sans-serif;
    color: #fff;
    font-weight: bold!important;
    letter-spacing: 1px;
    margin: 0 auto .3rem;
    font-size: 1.1rem;
}

#row6 li div p {
    font-size: 14px;
    line-height: 1.25;
}

#row6 ol + p {
    color: unset;
    font-size: .75rem;
    margin-top: 2rem;
}

#row7 {
    background: #FCF5FC;
    padding: 2rem 0;
}

#row7 h2 {
    text-align: center;
    color: #e54a82;
    line-height: 1.25;
    margin: 1.25rem auto 1.5rem;
    position: relative;
}

#row7 h2 > img {
    position: absolute;
    width: 70px;
    left: 9%;
    top: -28%;
}

#row7 > section {
    background-color: #fff;
    padding: 1.5rem;
    border-radius: 15px;
    margin-bottom: 1rem;
}

#row7 > section h3 {
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: 400;
    font-style: normal; 
}

#row7 > section > div {
    color: #E54B82;
    display: grid;
    grid-template-columns: 1fr 4fr;
    align-items: center;
    gap: .5rem;
    line-height: 1.25;
    text-align: justify;
    margin-bottom: .5rem;
}

#row7 > section > div > h3 {
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: bold;
    font-style: normal; 
}

#row7 > section > p {
    margin-bottom: 0;
}

#row7 + #cta {
    padding: 1rem 0;
}

#row8 h2 {
    text-align: center;
    color: #fff;
    font-size: 2.25rem;
    letter-spacing: 0px;
    line-height: 1;
    margin: 0 auto 1.5rem;
    position: relative;
    background: #e54a82;
    padding: 0 0 1rem;
}

#row8 h2 span {
    position: relative;
 }

#row8 h2 span.n_copy::before, #row8 h2 span.n_copy::after {
    content: "";
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url(../img/tubaki@2x.png);
    background-size: contain;
    bottom: 3px;
    position: absolute;
    left: -40px;
}

#row8 h2 span.n_copy::after {
    left: unset;
    right: -37px;
}

#row8 ul li {
    background-color: #fff;
    padding: 2rem;
    border-radius: 15px;
    margin-bottom: 1rem;
    position: relative;
}

#row8 ul li p { 
    margin-bottom: 0;
}

#row8 ul li:first-of-type::before {
    content: "";
    display: inline-block;
    width: 315px;
    height: 503px;
    background: url(../img/back@2x.png) no-repeat;
    background-size: contain;
    top: 59%;
    position: absolute;
    left: -41px;
    transform: scale(1.0);
    z-index: -99;
}

#row8 ul li:last-of-type::before {
    content: "";
    display: inline-block;
    width: 315px;
    height: 503px;
    background: url(../img/back@2x.png) no-repeat;
    background-size: contain;
    top: 15%;
    position: absolute;
    right: -41px;
    transform: scale(-1.0);
    z-index: -99;
}

#row8 ul li div p:first-of-type {
    text-align: center;
    color: #ffd94a;
    font-weight: 100;
    font-size: 2rem;
    line-height: .5;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2rem;
}

#row8 ul li div p:first-of-type span {
    font-size: 1rem;
    margin-bottom: 0rem;
    display: inline-block;
}

#row8 ul li div p:first-of-type span:first-of-type {
    color: #351109;
    margin-right: .5rem;
}

#row8 ul li div p:first-of-type span:last-of-type {
    color: #e54a82;
    margin-left: .5rem;
    line-height: 1;
    text-align: left;
}

#row8 ul li div p:first-of-type img {
    width: 20px;
    margin: 0;
}
    
#row8 ul li figure img:first-of-type {
    width: 70%;
    margin: 0 auto;
}
#row8 ul li figure img:last-of-type {
    width: 55%;
    margin: -2rem auto 1rem;
}

#row9 {
    background-color: #FCF5FC;
    width: 90%;
    margin: 0 auto 2rem;
    padding: 1rem;
    position: relative;
}

#row9::before {
    content: "";
    display: inline-block;
    width: 315px;
    height: 503px;
    background: url(../img/back@2x.png) no-repeat;
    background-size: contain;
    top: 15%;
    position: absolute;
    left: -21px;
    transform: scale(1.0);
    z-index: -99;
}

#row9 h2 {
    text-align: center;
    line-height: 1.2;
    color: #E54B82;
    margin-bottom: 1rem;
    letter-spacing: -1px;
}

#row9 h2 span {
    color: #351109;
}


/* FAQ */
.accordion-item {
    margin-bottom: 10px;
    position: relative;
  }
  
  .accordion-header {
    background-color: #fff;
    padding: 10px;
    cursor: pointer;
    position: relative;
    font-family: "Kiwi Maru", serif;
    font-weight: 400;
    font-style: normal;
    color: #E54B82;
    border-radius: 10px;
    line-height: 1.25;
    display: grid;
    grid-template-columns: 2fr 8fr 1fr;
    align-items: center;
    gap: 10px;
    font-size: .9rem;
  }
  
  .accordion-header .arrow {
    display: inline-block;
    margin-left: 5px;
    transition: transform 0.3s ease-in-out;
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
  }
  
  .accordion-header .arrow::before {
    content: "\25BC"; /* Unicode for down-pointing triangle (▼) */
  }
  
  .accordion-header .arrow.up::before {
    content: "\25B2"; /* Unicode for up-pointing triangle (▲) */
  }
  
  .accordion-content {
    padding: 10px;
    display: none;

  }
  
  .accordion-content.active {
    display: block;
    background-color: #fff;
    padding: 1.5rem 1rem;
    border-radius: 10px;
    margin-top: .75rem;
}
  
  .accordion-content p {
    margin: 0 auto 1rem;
    font-family: "Kiwi Maru", serif;
    font-weight: 400;
    font-style: normal;
    text-align: justify;
    line-height: 1.25;
    letter-spacing: -1px;
  }

#row10 {
    margin-bottom: 2rem;
}

footer {
    background-image: url(../img/footer@2x.png);
    background-size: cover;
    background-repeat: no-repeat;
    padding: 2rem 0;
    text-align: center;
    margin-top: 2rem;
}

footer ul {
    display: flex;
    width: 80%;
    margin: 0 auto 1rem;
    color: #fff;
    font-size: .8rem;
    justify-content: center;
    gap: 20px;
}

footer ul li  {
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: 400;
    font-style: normal; 
}

footer ul li a {
    color: #fff;
    text-decoration: none;
    font-family: "Zen角ゴシック New", sans-serif;
    font-weight: 400;
    font-style: normal; 
}

footer p {
    text-align: center;
    color: #fff;
    font-size: .75rem;
    margin: 0 auto;
}

@keyframes fuwafuwa {
    from {transform: scale(0.9,0.9);}
    to {transform: scale(1,1);}
    }

    #splash {
        /*fixedで全面に固定*/
          position: fixed;
          width: 100%;
          height: 100%;
          z-index: 999999;
          background:#fff;
          text-align:center;
          color:#fff;
        }
        
        /* Loading画像中央配置　*/
        #splash_logo {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
        }
        
        /* Loading アイコンの大きさ設定　*/
        #splash_logo img {
          width:260px;
        }
        
        /* fadeUpをするアイコンの動き */
        .fadeUp{
        animation-name: fadeUpAnime;
        animation-duration:0.5s;
        animation-fill-mode:forwards;
        opacity: 0;
        }
        
        @keyframes fadeUpAnime{
          from {
            opacity: 0;
          transform: translateY(100px);
          }
        
          to {
            opacity: 1;
          transform: translateY(0);
          }
        }

        @media screen and ( max-width: 407px) {
             .container {
               width: 100%;
               max-width: 100%;
              }

              header p {
                font-size: .7rem;
            }

            #row6 h3 {
                font-size: 1rem;
            }

            footer ul li {
                font-size: .6rem;
            }

            #row2 > section > div > h3{
                font-size: 1rem;
            }
        

            }

/* お問い合わせフォーム */
.contact-section {
    padding: 0 20px;
}

.contact-inner {
    width: 100%;
    height: auto;
    padding: 30px 20px;
    background-color: #47D8DC1A;
    border-radius: 24px;
}

.form-content {
    margin-bottom: 30px;
}

.subject {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 16px;
}

.subject span {
    font-size: 12px;
    font-weight: bold;
    color: #BB1E28;
    margin-left: 10px;
}

input,
select {
    width: 100%;
    height: 50px;
    border: 1px solid #222222;
    background-color: #fff !important;
    border-radius: 6px;
    padding: 0 10px;
}

textarea {
    width: 100%;
    height: 100px;
    background-color: #fff;
    border: 1px solid #222222;
    border-radius: 6px;
    padding: 8px;
}

button {
    width: 250px;   
    height: 50px;
    color: #fff;
    font-weight: bold;
    background-image: linear-gradient(90deg, rgba(64, 189, 64) , rgba(10, 117, 10));
    border-radius: 50px;
    box-shadow: 0 4px 4px #0000005d;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
}

button:hover {
    background-image: linear-gradient(90deg, #348cc2cf, #47d7dcd5);
}

/* エラーの時に赤枠 */
input:invalid {
    border: 2px solid #BB1E28;
}

input:invalid:focus {
    outline: none;
}

.footer-inner {
    width: 100%;
    height: 80px;
    background-color: #222222;
    padding: 20px;
    margin-top: 40px;
}

.footer-inner .content {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
}

.footer-inner a {
    font-size: 14px;
    color: #fff;
    font-weight: bold;
}

.footer-inner .copyright {
    font-size: 12px;
    color: #fff;
    text-align: center;
}



