* { margin: 0; padding: 0; box-sizing: border-box;}


html      { background-color: #ccc; font-size: 27.5px !important; line-height: 1.8; scroll-behavior: smooth;  font-weight: 400;}
main      { font-size: 27.5px !important; line-height: 1.8; font-family: "M PLUS Rounded 1c", sans-serif;}
main      { max-width: 800px; margin: auto; background-color: #fff;}

ul   { list-style: none;}
img  { max-width: 100% !important;}

#header                  { max-width: 800px; margin: auto; background-color: #fff;}
#header div              { display: flex; justify-content: space-between; align-items: end; padding: 20px 40px;}
#header div a img        { width: 190px;}
#header div > p          { font-size: 1.3em; line-height: 1em; text-align: right; font-weight: bold;}
#header div > p > a      { font-weight: 600; text-decoration: none; color: #333;}
#header div > p span     { display: block; font-size: 0.6em; font-weight: normal;}
#header div .tel         { flex: 1;}
#header div .btn         { width: 150px; margin-left: 1rem;}
#header div .btn img     { width: 100%; height: auto;}
#header > p              { text-align: center; font-size: 1rem !important; padding: 0.5em 0; border-bottom: 1px solid #ccc;}

.float_bnr              { position: fixed; left: 50%; bottom: 3vh; z-index: 1000; transform: translateX(-50%);}
.float_btn              { position: fixed; right: 3vw; top: 10vh; z-index: 1000; display: flex; flex-direction: column;}

#fv                     { background: url(images/fv.jpg); background-size: 100% auto; padding-top: 1620px; padding-bottom: 50px;}
#fv div                 { display: none;}
#fv .btn                { margin: 15px auto; width: fit-content;}
#fv .btn a img          { width: auto; transition: .2s;}
#fv .btn a img:hover    { transform: scale(103%);}


#ct01                   { background: url(images/ct01.jpg); background-size: 100% auto; height: 2100px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct02                   { background: url(images/ct02.jpg); background-size: 100% auto; height: 1000px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct03                   { background: url(images/ct03.jpg); background-size: 100% auto; height: 1900px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct04                   { background: url(images/ct04.jpg); background-size: 100% auto; height: 800px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct05                   { background: url(images/ct05.jpg); background-size: 100% auto; height: 800px; font-size: 0; line-height: 0; text-indent: -9999px;}
/* #ct06                   { background: url(images/ct06.jpg); background-size: 100% auto; height: 650px; font-size: 0; line-height: 0; text-indent: -9999px;} */
#ct06                   { font-size: 0; line-height: 0; text-indent: -9999px;}
#ct07                   { background: url(images/ct07.jpg); background-size: 100% auto; height: 3000px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct08                   { background-color: #f1f0ee; padding: 75px;}
#ct08 h2                { margin-bottom: 0.5rem;}
#ct08 p:last-of-type    { margin-top: 1rem;}
#ct08 > img:last-of-type  { float: right; margin-left: 1rem;}
#ct08-5                 { background: url(images/ct08-5.jpg); background-size: 100% auto; height: 750px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct09                   { background-color: #f1f0ee; padding: 75px;}
#ct09 h2                { margin-bottom: 0.5rem;}
#ct09 ul                { margin: 1rem auto 0; width: fit-content;}
#ct09 ul li             { margin-top: -0.5rem;}
#ct10                   { background: url(images/ct10.jpg); background-size: 100% auto; height: 904px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct11                   { background-color: #f1f0ee; padding: 75px;}
#ct11 h2                { margin-bottom: 0.5rem;}
#ct11 ul                { margin: 1rem auto; width: fit-content;}
#ct11 ul li             { margin-top: -0.5rem;}
#ct11 p:last-of-type    { font-weight: bold; text-align: center; font-size: 1.2rem;}
#ct12                   { background: url(images/ct12.jpg); background-size: 100% auto; height: 810px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct13                   { background-color: #fcfdfd; padding-bottom: 50px;}
#ct13 h2                { margin-bottom: 0.5rem;}
#ct13 p                 { margin-top: 1rem; padding: 0 70px;}
#ct13 p:first-of-type   { text-align: center; font-size: 1.1rem; font-weight: 600;}
#ct13 ul                { font-size: 0; line-height: 0; text-indent: -9999px; background: url(images/ct13-2.png); max-width: 555px; height: 402px; margin: 1rem auto;}
#ct14                   { background-color: #e9f1b1;}
#ct14 h2                { margin-bottom: 1rem;}
#ct14 p                 { text-align: center; font-size: 1.1rem;}
#ct14 img:last-of-type  { margin-top: 1rem; display: block;}

#ct15                   { background: url(images/ct15-bg.jpg) bottom no-repeat #fce3e3; padding-bottom: 2rem;}
#ct15 iframe            { aspect-ratio: 16/9; width: 100%; height: auto;}
#ct15 div               { background: url(images/ct15-frame-top.jpg) top no-repeat, url(images/ct15-frame-bottom.jpg) bottom no-repeat; max-width: 720px; margin: 40px; padding: 1.5rem 1.5rem 2rem 1.5rem;}
#ct15 div.acordeon      { background: transparent; background-color: #666; padding: .5rem 1rem; border-radius: 1rem; margin: 20px 40px; color: #FFF;}
#ct15 div.acordeon:nth-of-type(even) { background-color: #ef7373;}
#ct15 div img           { display: block; margin: 1rem auto;}
#ct15 p span            { border-bottom: 1px solid #F99; padding-bottom: 0.3rem; line-height: 2rem;}
#ct15 p.name            { text-align: right; margin-top: 0.5rem;}
#ct15 p.name span       { border-bottom: 0px; padding-bottom: 0; font-size: 0.8rem; margin-right: 0.3rem;}
#ct15 marker            { background:linear-gradient(transparent 60%, #bbdbec 60%); font-weight: 500;}

#ct16                   { background: url(images/ct16-1.jpg); background-size: 100% auto; height: 2400px; font-size: 0; line-height: 0; text-indent: -9999px;}
#ct17                   { background-color: #f4f8d8; padding-bottom: 3rem;}
#ct17 h2                { margin-bottom: 1rem;}
#ct17 p                 { text-align: center; font-size: 1.1rem;}
#ct17 p img             { display: inline-block; margin: 0.5rem 0;}
#ct17 p:last-of-type    { text-align: right; margin-right: 2rem;}
#ct17 p span            { font-size: 0.8em; margin-right: 1rem; margin-top: 1.5rem;}

#ct18                   { background-color: #fff1a1; padding-bottom: 2rem;}
#ct18 dl                { margin: 2rem;}
#ct18 dt::before        { content: url(images/ct18-q.png); display: inline-block; position: absolute; top: 0; left: 0;}
#ct18 dt                { font-size: 1.1rem; padding-left: 80px; position: relative; min-height: 80px; padding-top: 8px;}
#ct18 dd::before        { content: url(images/ct18-a.png); display: inline-block; position: absolute; top: 1rem; left: 1rem;}
#ct18 dd                { background-color: #fff; padding: 1.2rem 1.5rem 1rem 3.5rem; position: relative;}
#ct18 dd div            { margin-top: 1rem; font-size: 0.8rem; overflow: hidden;}
#ct18 dd div img        { float: left; margin-right: 0.5rem; }

#ct19                   { background-color: #cbe8d6; padding-bottom: 2rem;}
#ct19 > div               { padding: 1.3rem; margin: 2rem; margin-top: -1rem; background-color: #fff;}
#ct19 > div P:last-of-type { margin-top: 1rem;}
#ct19 > div span          { font-size: 0.8rem;}

#ct19 h3                { background-color: #52b276; color: #FFF; clear: both; padding: 0 .5rem; font-size: 1rem;}
#ct19 dl                { overflow: hidden; margin: .5rem 0 1rem;}
#ct19 dl > div          { display: flex; width: 50%; float: left; font-size: .8rem; border-bottom: 1px dotted #ccc; padding: .2rem 0;}
#ct19 dl > div dt       { width: 5rem;}
#ct19 dl > div dd       { flex: 1;}

#ct20                   { background-color: #cbe8d6; padding-bottom: 2rem;}
#ct20 .web              { background: url(images/ct20-2.png); max-width: 700px; height: 630px; position: relative; margin: 1rem auto 0; text-align: center; padding-top: 450px;}
#ct20 .web a            { display: inline-block; }
#ct20 .web h3,
#ct20 .web p             { font-size: 0; line-height: 0; text-indent: -9999px;}
#ct20 .line              { background: url(images/ct20-3.png); max-width: 700px; height: 911px; position: relative; margin: -1.5rem auto 1rem; padding-top: 480px;}
#ct20 .line a            { display: block; margin: 0 auto 1rem; max-width: 620px;}
#ct20 .line a:last-of-type { text-align: center;}
#ct20 .line h3,
#ct20 .line p            { font-size: 0; line-height: 0; text-indent: -9999px;}

/* #ct21                    { background: url(images/ct21.jpg); background-size: 100% auto; height: 1680px; font-size: 0; line-height: 0; text-indent: -9999px;} */
#ct21                    { background-color: #fff8d0; padding: 75px;}
#ct21 hr                 { border: 0; border-bottom: 2px solid #ccc; margin: 2rem 0; width: 100%; display: block;}

#ct22                    { background-color: #f2f0ee; padding-bottom: 80px;}
#ct22 p                  { text-align: center; font-weight: bold; font-size: 1.2rem;}

.campaign div                { margin: 0 80px; border: 8px solid #7ab9db; padding: 1.5rem; border-radius: 1rem; font-weight: bold;}
.campaign div .text          { text-align: center;}
.campaign div .price         { text-align: center;}
.campaign div .price strong  { font-size: 1.1rem; font-weight: bold; color: #ef7373;}
.campaign div .price span    { font-size: 1.3rem; font-weight: 700;}
.campaign div .time          { background-color: #7ab9db; color: #FFF; text-align: center; border-radius: 1rem; font-weight: bold;}
.campaign p.campaign-kome             { margin: .5rem 80px 0; text-align: right;}

#ct20 .campaign        { background-color: #fff;  max-width: 700px; margin: 0 auto 1rem; padding-bottom: 1rem; }
#ct20 .campaign  div   { margin: 0 1.2rem;}
#ct20 .campaign p.campaign-kome             { margin: .5rem 1.2rem 0; text-align: right;}



@media screen and ( max-width: 767px ) {
  html      { font-size: 3.5vw !important;}
  body      { font-size: 3.5vw !important;}
  .float_bnr              { width: 70vw; left: auto; right: 1vw; bottom: 1vh; transform: translateX(0);}
  .float_btn              { width: 25vw; bottom: 1vh; top: auto; left: 2vw; right: 0; flex-direction: row; gap: 0.2rem;}

  #header div .tel         { flex: 1;}
  #header div .btn         { width: 80px; margin-left: 1rem;}
  #header div .btn img     { width: 100%; height: auto;}

  
  #header div              { padding: 1rem 1rem;}
  #header div a img        { width: 30vw;}

  #fv                     { padding-top: 205vw; padding-bottom: 1.5rem; }
  #fv .btn a img            { width: 70vw; margin-top: -1rem;}

  #ct01                   { height: 262vw; background-repeat: no-repeat;}
  #ct02                   { height: 125vw; background-repeat: no-repeat;}
  #ct03                   { height: 230vw; background-repeat: no-repeat;}
  #ct04                   { height: 100vw; background-repeat: no-repeat;}
  #ct05                   { height: 105vw; background-repeat: no-repeat;}
  /* #ct06                   { height: 85vw; background-repeat: no-repeat;} */
  #ct07                   { height: 365vw; background-repeat: no-repeat;}

#ct08                   { padding: 10vw; font-size: 1rem;}
#ct08 > img:last-of-type  { width: 30vw;}
#ct08-5                 { height: 93vw; background-repeat: no-repeat;}
#ct09                   { padding: 10vw; font-size: 1rem;}
#ct10                   { height: 110vw; }
#ct11                   { padding: 10vw; font-size: 1rem;}


#ct12                   { height: 100vw; }
#ct13                   { padding-bottom: 5vw; font-size: 1rem;}
#ct13 p                 { padding: 0 10vw;}
#ct13 ul                { background-size: contain; background-repeat: no-repeat; height: 58vw; margin: 1rem 10vw;}


#ct15                   { padding-bottom: 2rem; font-size: 1rem;}
#ct15 div               { margin: 5vw;}
#ct15 div.acordeon      { margin: 3vw 4vw;}
#ct15 div img           { display: block; margin: 1rem auto;}

#ct16                   { height: 300vw; background-repeat: no-repeat;}

#ct17 p img             { width: 50vw;}
#ct17 p img.img         { width: 80vw;}



#ct18 dt::before        { content: ""; width: 10vw; height: 10vw; background: url(images/ct18-q.png) no-repeat; background-size: contain;}
#ct18 dt                { font-size: 1.1rem; padding-left: 12vw; position: relative; min-height: 11vw; padding-top: 8px;}
#ct18 dd::before        { content: ""; width: 7vw; height: 7vw; background: url(images/ct18-a.png) no-repeat; background-size: contain;}
#ct18 dd { font-size: 1rem;}
#ct18 dd div            { margin-top: 1rem; font-size: 0.8rem; overflow: hidden;}
#ct18 dd div img        { float: none; margin-right: 0; image-orientation: none;}
#ct18 dd div br         { display: none;}

#ct19   { font-size: 1rem;}


#ct20                   { background-color: #cbe8d6; padding-bottom: 2rem;}
#ct20 .web              { background-size: contain; height: 80vw; margin: 1rem 5vw 0; padding-top: 55vw;}
#ct20 .web a            { display: inline-block; width: 80%;}

#ct20 .line              { background-size: contain; height: 117vw; margin: -1.5rem 5vw 1rem; padding-top: 61vw;}
#ct20 .line a            { display: block; margin: 0 auto 1rem; max-width: 80%;}
#ct20 .line a:last-of-type { text-align: center;}
#ct20 .line h3,
#ct20 .line p            { font-size: 0; line-height: 0; text-indent: -9999px;}

#ct21                    { padding: 10vw; font-size: 1rem;}

#ct22 p                  { font-size: 1.2rem;}


.campaign div                { margin: 0 2.5rem; border: 5px solid #7ab9db; padding: 1.5rem; border-radius: 1rem; font-weight: bold;}
.campaign div .text          { font-size: 1rem;}
.campaign div .price         { text-align: center;}
.campaign div .price strong  { font-size: 1.1rem; font-weight: bold; color: #ef7373;}
.campaign div .price span    { font-size: 1.1rem; font-weight: 700;}
.campaign div .time          { font-size: 1.2rem;}
.campaign p.campaign-kome             { margin: .5rem 2.5rem 0;font-size: 1rem;}

#ct20 .campaign        { margin: 0 5vw 1rem; padding-bottom: 1rem; }
#ct20 .campaign  div   { margin: 0 1.2rem;}
#ct20 .campaign p.campaign-kome             { margin: .5rem 1.2rem 0; text-align: right;}


}



.acordeon p {
  display: none;
}


.acordeon.is-open p {
  display: block;
}
.acordeon.is-open p:first-of-type {
  background-color: #fff;
  color: #333;
  padding: 1rem;
  border-radius: .5rem;
  margin-top: .5rem;
}


.acordeon h4 {
  cursor: pointer;
  position: relative;
  padding-left: 1.5em; 
}


.acordeon h4::before {
  content: "▶"; 
  position: absolute;
  left: 0;
  top: 0;
  transition: transform 0.3s ease; 
}

.acordeon.is-open h4::before {
  transform: rotate(90deg);
}