/*-----------------------
mixin
-----------------------*/
/*mediaquery*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap");
html {
  font-size: 62.5%;
  line-height: 1;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

@media (max-width: 767px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
.serif {
  font-family: "Noto Serif JP", serif;
}

body {
  font-family: zen-kaku-gothic-new, sans-serif;
  font-weight: 700;
  width: 100%;
  font-size: 18px;
  line-height: 1.666;
  letter-spacing: 0.04em;
  color: #160f03;
  margin: auto;
}

a {
  color: #222222;
  transition: 0.3s;
}

.inner {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .inner {
    width: 92%;
  }
}

.flex {
  display: flex;
}

.plan-sec {
  position: relative;
}
.plan-sec:before {
  position: absolute;
  content: "";
  background: url("../img/plan-bg-object.png") no-repeat;
  background-size: cover;
  background-position: top center;
  width: 100%;
  height: 5vw;
  top: 205px;
  left: 0;
  right: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .plan-sec:before {
    height: 200px;
    top: 130px;
  }
}
.plan-sec:after {
  position: absolute;
  content: "";
  background: #ffeff5;
  width: 100%;
  height: 100%;
  top: 265px;
  left: 0;
  right: 0;
  margin: auto;
}
@media (min-width: 1400px) {
  .plan-sec:after {
    top: 275px;
  }
}
@media (min-width: 1600px) {
  .plan-sec:after {
    top: 285px;
  }
}
@media (min-width: 1800px) {
  .plan-sec:after {
    top: 295px;
  }
}
.plan-sec .inner {
  position: relative;
  z-index: 1;
}
.plan-sec .flex {
  justify-content: space-between;
}
@media (max-width: 767px) {
  .plan-sec .flex {
    flex-direction: column-reverse;
    gap: 30px 0;
  }
}

.plan-title span {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  line-height: 1;
}
.plan-title span.object {
  position: relative;
  font-size: 20px;
  padding: 0 44px;
  margin-bottom: 27px;
}
@media (max-width: 767px) {
  .plan-title span.object {
    font-size: 14px;
    padding: 0 25px;
  }
}
.plan-title span.object:before {
  position: absolute;
  content: "";
  background: url("../img/border-object.png") no-repeat;
  background-size: contain;
  width: 24px;
  height: 37px;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .plan-title span.object:before {
    width: 15px;
    height: 24px;
  }
}
.plan-title span.object:after {
  position: absolute;
  content: "";
  background: url("../img/border-object.png") no-repeat;
  background-size: contain;
  width: 24px;
  height: 37px;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform: scale(-1, 1);
}
@media (max-width: 767px) {
  .plan-title span.object:after {
    width: 15px;
    height: 24px;
  }
}
.plan-title span.bg {
  position: relative;
  width: 500px;
  background: #f65691;
  font-size: 40px;
  color: #fff;
  text-align: center;
  padding: 30px 0;
  border-radius: 50px;
}
@media (max-width: 767px) {
  .plan-title span.bg {
    width: 318px;
    font-size: 30px;
    padding: 16px 0;
  }
}
.plan-title span.bg:before {
  position: absolute;
  content: "";
  border: 1px solid #fff;
  width: 490px;
  height: 93px;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  border-radius: 50px;
}
@media (max-width: 767px) {
  .plan-title span.bg:before {
    width: 312px;
    height: 59px;
  }
}

.price {
  position: relative;
  width: 550px;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 0 25px;
  margin: 0 auto;
  margin-bottom: 65px;
  padding: 20px 0;
}
@media (max-width: 767px) {
  .price {
    width: 324px;
    gap: 0 15px;
    margin-bottom: 30px;
  }
}
.price:before {
  position: absolute;
  content: "";
  background: url("../img/plan-ttl-object-01.png") no-repeat;
  background-size: contain;
  width: 39px;
  height: 115px;
  top: 0;
  left: -10px;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .price:before {
    width: 21.5px;
    height: 63px;
    left: 0;
  }
}
.price:after {
  position: absolute;
  content: "";
  background: url("../img/plan-ttl-object-02.png") no-repeat;
  background-size: contain;
  width: 39px;
  height: 115px;
  top: 0;
  right: -10px;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .price:after {
    width: 21.5px;
    height: 63px;
    right: 0;
  }
}
.price dt {
  font-size: 34px;
  line-height: 1;
  margin-bottom: 5px;
}
@media (max-width: 767px) {
  .price dt {
    font-size: 18px;
  }
}
.price dd {
  font-size: 24px;
  color: #b2072f;
  line-height: 1;
}
@media (max-width: 767px) {
  .price dd {
    font-size: 13px;
  }
}
.price dd span {
  display: inline-block;
}
.price dd span.num {
  font-size: 52px;
  font-style: italic;
  margin-right: 10px;
}
@media (max-width: 767px) {
  .price dd span.num {
    font-size: 28px;
  }
}
.price dd span.mid {
  font-size: 34px;
}
@media (max-width: 767px) {
  .price dd span.mid {
    font-size: 18px;
  }
}
@media (max-width: 767px) {
  .price.pc-only {
    display: none;
  }
}
.price.sp-only {
  display: none;
}
@media (max-width: 767px) {
  .price.sp-only {
    display: flex;
  }
}

.plan-text {
  width: 613px;
  margin-top: 15px;
}
@media (max-width: 767px) {
  .plan-text {
    width: 100%;
    margin-top: 0;
  }
}
.plan-text .detail {
  background: #fff;
  overflow: hidden;
  border-radius: 30px;
  margin-bottom: 30px;
}
@media (max-width: 767px) {
  .plan-text .detail {
    border-radius: 15px;
  }
}
.plan-text .detail .ttl {
  width: -moz-fit-content;
  width: fit-content;
  background: #b49664;
  font-size: 30px;
  color: #fff;
  padding: 12px 48px 12px 37px;
  line-height: 1;
  border-radius: 0 0 30px 0;
}
@media (max-width: 767px) {
  .plan-text .detail .ttl {
    font-size: 18px;
    padding: 10px 15px;
    border-radius: 0 0 15px 0;
  }
}
.plan-text .detail ul {
  padding: 30px 30px 50px;
}
@media (max-width: 767px) {
  .plan-text .detail ul {
    padding: 30px 15px;
  }
}
.plan-text .detail ul li {
  position: relative;
  line-height: 1;
  margin-bottom: 47px;
  padding-left: 50px;
}
@media (max-width: 767px) {
  .plan-text .detail ul li {
    display: flex;
    align-items: center;
    font-size: 14px;
    padding-left: 43.5px;
    line-height: 1.64;
    margin-bottom: 15px;
    min-height: 46px;
  }
}
.plan-text .detail ul li:before {
  position: absolute;
  content: "";
  background: url("../img/plan-object.png") no-repeat;
  background-size: contain;
  width: 35px;
  height: 35px;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  .plan-text .detail ul li:before {
    width: 26.5px;
    height: 26.5px;
  }
}
.plan-text .detail ul li:nth-child(even):before {
  filter: brightness(0) saturate(100%) invert(89%) sepia(13%) saturate(5770%) hue-rotate(291deg) brightness(101%) contrast(99%);
}
.plan-text .detail ul li:last-of-type {
  margin-bottom: 0;
}
.plan-text .caution {
  font-size: 15px;
  line-height: 1;
}
@media (max-width: 767px) {
  .plan-text .caution {
    font-size: 10px;
    font-feature-settings: "palt";
  }
}

.plan-img {
  width: 440px;
}
@media (max-width: 767px) {
  .plan-img {
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
}
.plan-img .img {
  width: 100%;
  height: 400px;
}
@media (max-width: 767px) {
  .plan-img .img {
    width: 49%;
    height: 200px;
  }
}
.plan-img .img:first-of-type {
  margin-bottom: 10px;
}
@media (max-width: 767px) {
  .plan-img .img:first-of-type {
    margin-bottom: 0;
  }
}
.plan-img .img img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}

html, body, div, span, applet, object, iframe, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
}

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

caption, th, td {
  text-align: left;
  vertical-align: middle;
  font-weight: 200;
}

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

a {
  display: inline-block;
}

a img {
  border: none;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

ul {
  list-style: none;
}

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

a {
  color: #000;
  text-decoration: none;
}
a:link {
  color: #000;
}
a:active {
  color: #000;
}
a:visited {
  color: #000;
}
a:hover {
  cursor: pointer;
}

p {
  margin: 0;
}

input, button, textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

*:focus {
  outline: none;
}

*, *:before, *:after {
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
}

header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 9999;
  transition: all 0.4s;
}
header .header-cnt {
  align-items: center;
  justify-content: space-between;
  padding: 20px 40px;
}
@media (max-width: 767px) {
  header .header-cnt {
    padding: 0 0 0 20px;
  }
}
header .header-cnt .logo a {
  display: block;
  width: 118px;
}
@media (max-width: 767px) {
  header .header-cnt .logo a {
    width: 72px;
  }
}
header .header-cnt .cta {
  gap: 0 20px;
  align-items: center;
}
@media (max-width: 767px) {
  header .header-cnt .cta {
    gap: 0;
  }
}
header .header-cnt .cta .tel {
  font-size: 14px;
  line-height: 1;
}
header .header-cnt .cta .tel a {
  position: relative;
  display: block;
  font-family: "Noto Serif JP", serif;
  font-size: 26px;
  padding-left: 24px;
  letter-spacing: 0;
  margin-bottom: 10px;
  pointer-events: none;
}
@media (max-width: 767px) {
  header .header-cnt .cta .tel a {
    font-family: zen-kaku-gothic-new, sans-serif;
    font-weight: 700;
    color: #455ec9;
    font-size: 10px;
    padding: 36px 27px 8px;
    margin-bottom: 0;
    border: 1px solid #455ec9;
    background: #fff;
    pointer-events: all;
  }
}
header .header-cnt .cta .tel a:before {
  position: absolute;
  content: "";
  background: url("../img/tel-icon.png") no-repeat;
  background-size: contain;
  width: 15px;
  height: 19px;
  top: 4px;
  left: 0;
  bottom: 0;
  margin: auto;
  filter: brightness(0) saturate(100%) invert(29%) sepia(67%) saturate(1273%) hue-rotate(206deg) brightness(104%) contrast(86%);
}
@media (max-width: 767px) {
  header .header-cnt .cta .tel a:before {
    width: 18px;
    height: 23px;
    top: 8px;
    left: 0;
    right: 0;
    bottom: auto;
    margin: auto;
  }
}
header .header-cnt .cta .btn a {
  position: relative;
  display: block;
  width: 180px;
  color: #fff;
  background: #f65691;
  border: 1px solid #f65691;
  font-size: 15px;
  padding: 10px 0;
  border-radius: 25px;
  box-shadow: 0 0 20px rgba(133, 43, 76, 0.2);
}
@media (max-width: 767px) {
  header .header-cnt .cta .btn a {
    text-align: center;
    width: 75px;
    font-size: 10px;
    box-shadow: none;
    padding: 36px 0 8px;
    border-radius: 0;
    line-height: 1;
  }
}
@media (min-width: 1024px) {
  header .header-cnt .cta .btn a:hover {
    background: #fff;
    color: #f65691;
  }
}
header .header-cnt .cta .btn.mail a {
  padding-left: 74px;
}
@media (max-width: 767px) {
  header .header-cnt .cta .btn.mail a {
    padding-left: 0;
  }
}
header .header-cnt .cta .btn.mail a:before {
  position: absolute;
  content: "";
  background: url("../img/mail-icon-wh.png") no-repeat;
  background-size: contain;
  width: 22px;
  height: 16px;
  top: 0;
  left: 42px;
  bottom: 0;
  margin: auto;
  transition: all 0.4s;
}
@media (max-width: 767px) {
  header .header-cnt .cta .btn.mail a:before {
    width: 25px;
    height: 18px;
    top: -15px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }
}
@media (min-width: 1024px) {
  header .header-cnt .cta .btn.mail a:hover:before {
    background: url("../img/mail-icon-pink.png") no-repeat;
    background-size: contain;
  }
}
header .header-cnt .cta .btn.line a {
  background: #06c755;
  padding-left: 52px;
  border: 1px solid #06c755;
}
@media (max-width: 767px) {
  header .header-cnt .cta .btn.line a {
    padding-left: 0;
  }
}
header .header-cnt .cta .btn.line a:before {
  position: absolute;
  content: "";
  background: url("../img/line-icon.png") no-repeat;
  background-size: contain;
  width: 24px;
  height: 23px;
  top: 0;
  left: 17px;
  bottom: 0;
  margin: auto;
  transition: all 0.4s;
}
@media (max-width: 767px) {
  header .header-cnt .cta .btn.line a:before {
    width: 28px;
    height: 26.5px;
    top: -14px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }
}
@media (min-width: 1024px) {
  header .header-cnt .cta .btn.line a:hover {
    background: #fff;
    color: #06c755;
  }
}
header .header-cnt .cta .btn.line a:hover:before {
  background: url("../img/line-icon-gr.png") no-repeat;
  background-size: contain;
}
header.active {
  background: #fff;
}

#mainv {
  padding: 110px 0 120px;
  background: url("../img/mainv-bg.png") no-repeat;
  background-size: cover;
  background-position: top center;
}
@media (max-width: 767px) {
  #mainv {
    padding: 56px 0;
  }
}
#mainv .main-img {
  position: relative;
  width: 1093px;
  height: 520px;
  margin: 0 auto 95px;
}
@media (max-width: 767px) {
  #mainv .main-img {
    width: 100%;
    height: auto;
    margin: 0 auto 50px;
  }
}
#mainv .main-img img {
  position: relative;
  left: -23px;
}
@media (max-width: 767px) {
  #mainv .main-img img {
    left: auto;
  }
}
#mainv .inner {
  max-width: 1100px;
}
#mainv .intro-text {
  position: relative;
  font-size: 30px;
  text-align: center;
  line-height: 1;
  margin-bottom: 140px;
}
@media (max-width: 767px) {
  #mainv .intro-text {
    font-size: 23px;
    line-height: 1.6;
    font-feature-settings: "palt";
    margin-bottom: 90px;
  }
}
#mainv .intro-text:before {
  position: absolute;
  content: "";
  background: url("../img/intro-text-01.png") no-repeat;
  background-size: contain;
  width: 89px;
  height: 136px;
  top: 0;
  left: 50px;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  #mainv .intro-text:before {
    background: url("../img/intro-text-01-sp.png") no-repeat;
    background-size: contain;
    width: 41px;
    height: 78.5px;
    top: -18px;
    left: -4%;
    bottom: auto;
  }
}
#mainv .intro-text:after {
  position: absolute;
  content: "";
  background: url("../img/intro-text-02.png") no-repeat;
  background-size: contain;
  width: 137px;
  height: 185px;
  top: 0;
  right: 20px;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  #mainv .intro-text:after {
    background: url("../img/intro-text-02-sp.png") no-repeat;
    background-size: contain;
    width: 58.5px;
    height: 113.5px;
    top: auto;
    right: -4%;
    bottom: -44px;
  }
}
#mainv .intro-text .sub {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 25px;
  font-size: 26px;
}
@media (max-width: 767px) {
  #mainv .intro-text .sub {
    font-size: 20px;
    margin: 0 auto 15px;
    font-feature-settings: "palt";
  }
}
#mainv .intro-text .pink {
  display: inline-block;
  color: #f65691;
}
#mainv .benefits {
  position: relative;
}
#mainv .benefits:before {
  position: absolute;
  content: "";
  background: url("../img/batch.png") no-repeat;
  background-size: contain;
  width: 178px;
  height: 173px;
  top: -38px;
  left: 40px;
  z-index: 2;
}
@media (max-width: 767px) {
  #mainv .benefits:before {
    width: 85px;
    height: 82.5px;
    top: -10px;
    left: -12px;
  }
}
#mainv .benefits dl dt {
  position: relative;
  background: #b10645;
  color: #fff;
  font-size: 40px;
  line-height: 1;
  letter-spacing: 0.06em;
  padding: 34px 0 40px 240px;
  border-radius: 30px 30px 0 0;
}
@media (max-width: 767px) {
  #mainv .benefits dl dt {
    font-size: 21px;
    padding: 15px 7px 15px 80px;
  }
}
#mainv .benefits dl dt:before {
  position: absolute;
  content: "";
  background: url("../img/box-icon.png") no-repeat;
  background-size: contain;
  width: 45px;
  height: 56px;
  top: 0;
  right: 72px;
  bottom: 4px;
  margin: auto;
}
@media (max-width: 767px) {
  #mainv .benefits dl dt:before {
    width: 22.5px;
    height: 28px;
    top: auto;
    right: 50px;
    bottom: 15px;
  }
}
#mainv .benefits dl dt span {
  display: inline-block;
}
#mainv .benefits dl dt span.wave {
  position: relative;
}
#mainv .benefits dl dt span.wave:before {
  position: absolute;
  content: "";
  background: url("../img/wave.png") no-repeat;
  background-size: contain;
  width: 444px;
  height: 8px;
  left: 0;
  bottom: -18px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dt span.wave:before {
    display: none;
  }
}
#mainv .benefits dl dt span.mini {
  font-size: 30px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dt span.mini {
    font-size: 15px;
  }
}
@media (max-width: 767px) {
  #mainv .benefits dl dt span.sp-big {
    font-size: 30px;
    margin-top: 10px;
  }
}
#mainv .benefits dl dd {
  background: #fdd4e3;
  padding: 50px 50px 80px;
  border-radius: 0 0 30px 30px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd {
    padding: 25px 20px 20px;
  }
}
#mainv .benefits dl dd .read {
  font-size: 30px;
  text-align: center;
  line-height: 1;
  margin-bottom: 35px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .read {
    font-size: 18px;
    line-height: 1.75;
  }
}
#mainv .benefits dl dd .read .num {
  display: inline-block;
  font-family: "Noto Serif JP", serif;
  font-size: 40px;
  font-style: italic;
  color: #7a0530;
  letter-spacing: 0.02em;
  margin-right: 12px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .read .num {
    font-size: 30px;
  }
}
#mainv .benefits dl dd .read .num span {
  display: inline-block;
  font-size: 20px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .read .num span {
    font-size: 15px;
  }
}
#mainv .benefits dl dd .flex {
  justify-content: space-between;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex {
    flex-direction: column;
    gap: 20px 0;
  }
}
#mainv .benefits dl dd .flex dl {
  position: relative;
  width: 480px;
  z-index: 1;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl {
    width: 100%;
  }
}
#mainv .benefits dl dd .flex dl:before {
  position: absolute;
  content: "";
  background: #f3c3d5;
  width: 100%;
  height: 100%;
  right: -10px;
  bottom: -10px;
  border-radius: 20px;
  z-index: -1;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl:before {
    right: -5px;
    bottom: -5px;
  }
}
#mainv .benefits dl dd .flex dl:after {
  position: absolute;
  content: "";
  background: url("../img/main-img-01.png") no-repeat;
  background-size: contain;
  width: 445px;
  height: 194px;
  left: 0;
  right: 0;
  bottom: 20px;
  margin: auto;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl:after {
    width: 275px;
    height: 120px;
  }
}
#mainv .benefits dl dd .flex dl dt {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 18px;
  padding: 8px 0;
  text-align: center;
  font-size: 30px;
  background: #f65691;
  border-radius: 20px 20px 0 0;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dt {
    gap: 0 8px;
    font-size: 18px;
    padding: 4px 0;
  }
}
#mainv .benefits dl dd .flex dl dt:before {
  display: none;
}
#mainv .benefits dl dd .flex dl dt span {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-size: 40px;
  background: #fff;
  width: 65px;
  height: 65px;
  border-radius: 100%;
  color: #f65691;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dt span {
    width: 32.5px;
    height: 32.5px;
    font-size: 20px;
  }
}
#mainv .benefits dl dd .flex dl dd {
  background: #fff;
  padding: 30px 0 236px;
  border-radius: 0 0 20px 20px;
  border: 1px solid #f65691;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dd {
    padding: 15px 0 165px;
  }
}
#mainv .benefits dl dd .flex dl dd .text {
  font-size: 20px;
  text-align: center;
  line-height: 1;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dd .text {
    font-size: 13px;
  }
}
#mainv .benefits dl dd .flex dl dd .text span {
  display: block;
  font-size: 26px;
  margin-top: 20px;
  color: #f65691;
  line-height: 1;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dd .text span {
    font-size: 17px;
    margin-top: 15px;
  }
}
#mainv .benefits dl dd .flex dl dd .text span span {
  display: inline-block;
  margin-top: 0;
  font-size: 40px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl dd .text span span {
    font-size: 27px;
  }
}
#mainv .benefits dl dd .flex dl dd .text span.blue {
  color: #6696ee;
  margin-top: 6px;
}
#mainv .benefits dl dd .flex dl dd .text span.blue span {
  color: #6696ee;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl:last-of-type dd {
    padding: 15px 0 150px;
  }
}
#mainv .benefits dl dd .flex dl:last-of-type:after {
  background: url("../img/main-img-02.png") no-repeat;
  background-size: contain;
  width: 406px;
  height: 216px;
  left: auto;
  right: 20px;
  bottom: 40px;
}
@media (max-width: 767px) {
  #mainv .benefits dl dd .flex dl:last-of-type:after {
    width: 250px;
    height: 132px;
    bottom: 20px;
  }
}

#sec01 {
  padding: 65px 0 40px;
  background: url("../img/sec01-bg.jpg") no-repeat;
  background-size: cover;
  width: 100%;
  height: 100%;
}
@media (max-width: 767px) {
  #sec01 {
    padding: 40px 0 30px;
  }
}
#sec01 h2 {
  font-size: 32px;
  line-height: 1;
  margin-bottom: 30px;
  margin-left: 20px;
}
@media (max-width: 767px) {
  #sec01 h2 {
    font-size: 25px;
    margin-left: 0;
    margin-bottom: 20px;
  }
}
#sec01 h2 .dot {
  display: inline-block;
  position: relative;
}
#sec01 h2 .dot:before {
  position: absolute;
  content: "";
  background: #eba306;
  width: 6px;
  height: 6px;
  top: -10px;
  left: 0;
  right: 0;
  margin: auto;
  border-radius: 100%;
}
#sec01 h2 .serif {
  display: inline-block;
  width: 261px;
  margin: 0 10px 0 12px;
}
@media (max-width: 767px) {
  #sec01 h2 .serif {
    display: block;
    width: 190px;
    margin: 15px 0;
  }
}
#sec01 .bg {
  position: relative;
  background: #fff;
  padding: 42px 54px 50px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  border-radius: 20px;
}
@media (max-width: 767px) {
  #sec01 .bg {
    padding: 30px 43px;
    flex-direction: column-reverse;
    gap: 50px 0;
  }
}
#sec01 .bg:before {
  position: absolute;
  content: "";
  background: url("../img/sec01-img-01.png") no-repeat;
  background-size: cover;
  width: 185px;
  height: 230px;
  top: -230px;
  right: 10px;
}
@media (max-width: 767px) {
  #sec01 .bg:before {
    width: 116px;
    height: 158px;
    top: -155px;
    right: -2%;
  }
}
#sec01 .bg:after {
  position: absolute;
  content: "";
  background: url("../img/sec01-img-02.png") no-repeat;
  background-size: cover;
  background-position: top;
  width: 159px;
  height: 201px;
  top: 75px;
  left: -85px;
}
@media (max-width: 767px) {
  #sec01 .bg:after {
    width: 75px;
    height: 136px;
    top: auto;
    left: -4%;
    bottom: -50px;
  }
}
#sec01 .bg .tel {
  text-align: center;
}
#sec01 .bg .tel .sub {
  line-height: 1;
  margin-bottom: 20px;
}
@media (max-width: 767px) {
  #sec01 .bg .tel .sub {
    margin-bottom: 10px;
  }
}
#sec01 .bg .tel a {
  position: relative;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 34px;
  letter-spacing: 0;
  line-height: 1;
  padding-left: 32px;
  margin-bottom: 10px;
  pointer-events: none;
}
@media (max-width: 767px) {
  #sec01 .bg .tel a {
    font-size: 29px;
    padding-left: 27.5px;
    margin: 0 auto 10px;
    pointer-events: all;
  }
}
#sec01 .bg .tel a:before {
  position: absolute;
  content: "";
  background: url("../img/tel-icon.png") no-repeat;
  background-size: contain;
  width: 21px;
  height: 27px;
  top: 2px;
  left: 0;
  bottom: 0;
  margin: auto;
  filter: brightness(0) saturate(100%) invert(29%) sepia(67%) saturate(1273%) hue-rotate(206deg) brightness(104%) contrast(86%);
}
@media (max-width: 767px) {
  #sec01 .bg .tel a:before {
    width: 17.5px;
    height: 22.5px;
  }
}
#sec01 .bg .tel .time {
  line-height: 1;
}
@media (max-width: 767px) {
  #sec01 .bg .tel .time {
    font-size: 15px;
  }
}
#sec01 .bg .mail {
  position: relative;
}
@media (max-width: 767px) {
  #sec01 .bg .mail:before {
    position: absolute;
    content: "";
    background: #a0a0a0;
    width: 150px;
    height: 1px;
    top: -25px;
    left: 0;
    right: 0;
    margin: auto;
  }
}
@media (max-width: 767px) {
  #sec01 .bg .mail:after {
    position: absolute;
    content: "";
    background: #a0a0a0;
    width: 150px;
    height: 1px;
    left: 0;
    right: 0;
    bottom: -25px;
    margin: auto;
  }
}
#sec01 .bg .mail .caption {
  text-align: center;
  color: #f43e81;
  line-height: 1;
  margin-bottom: 20px;
}
@media (max-width: 767px) {
  #sec01 .bg .mail .caption {
    margin-bottom: 15px;
  }
}
#sec01 .bg .mail .caption span {
  display: inline-block;
  font-size: 30px;
}
@media (max-width: 767px) {
  #sec01 .bg .mail .caption span {
    font-size: 18px;
  }
}
#sec01 .bg .mail .btn a {
  position: relative;
  display: block;
  width: 270px;
  background: #f43e81;
  border: 1px solid #f43e81;
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 20px 0 20px 112px;
  border-radius: 30px;
}
@media (max-width: 767px) {
  #sec01 .bg .mail .btn a {
    width: 250px;
    font-size: 15px;
    padding: 15px 0 15px 108px;
  }
}
#sec01 .bg .mail .btn a:before {
  position: absolute;
  content: "";
  background: url("../img/mail-icon-wh.png") no-repeat;
  background-size: contain;
  width: 29px;
  height: 21px;
  top: 0;
  left: 71px;
  bottom: 0;
  margin: auto;
  transition: all 0.4s;
}
@media (max-width: 767px) {
  #sec01 .bg .mail .btn a:before {
    width: 23px;
    height: 16px;
    left: 75px;
  }
}
@media (min-width: 1024px) {
  #sec01 .bg .mail .btn a:hover {
    background: #fff;
    color: #f65691;
  }
}
@media (min-width: 1024px) {
  #sec01 .bg .mail .btn a:hover:before {
    background: url("../img/mail-icon-pink.png") no-repeat;
    background-size: contain;
  }
}
#sec01 .bg .line {
  margin-top: 12px;
}
@media (max-width: 767px) {
  #sec01 .bg .line {
    margin-top: 0;
  }
}
#sec01 .bg .line .caption {
  text-align: center;
  color: #04b94e;
  line-height: 1;
  margin-bottom: 20px;
}
#sec01 .bg .line .btn a {
  position: relative;
  display: block;
  width: 270px;
  background: #04b94e;
  border: 1px solid #04b94e;
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 20px 0 20px 85px;
  border-radius: 30px;
}
@media (max-width: 767px) {
  #sec01 .bg .line .btn a {
    width: 250px;
    font-size: 15px;
    padding: 15px 0 15px 87.5px;
  }
}
#sec01 .bg .line .btn a:before {
  position: absolute;
  content: "";
  background: url("../img/line-icon.png") no-repeat;
  background-size: contain;
  width: 32px;
  height: 31px;
  top: 0;
  left: 39px;
  bottom: 0;
  margin: auto;
  transition: all 0.4s;
}
@media (max-width: 767px) {
  #sec01 .bg .line .btn a:before {
    width: 24px;
    height: 24px;
    left: 52.5px;
  }
}
@media (min-width: 1024px) {
  #sec01 .bg .line .btn a:hover {
    background: #fff;
    color: #06c755;
  }
}
#sec01 .bg .line .btn a:hover:before {
  background: url("../img/line-icon-gr.png") no-repeat;
  background-size: contain;
}
#sec01 .caution {
  text-align: center;
  font-size: 14px;
  line-height: 1;
}
@media (max-width: 767px) {
  #sec01 .caution {
    display: none;
  }
}

#sec02 {
  padding: 120px 0 75px;
}
@media (max-width: 767px) {
  #sec02 {
    padding: 65px 0 30px;
  }
}
#sec02 .inner {
  max-width: 1100px;
}
#sec02 h2 {
  margin-bottom: 100px;
}
@media (max-width: 767px) {
  #sec02 h2 {
    margin-bottom: 25px;
  }
}
#sec02 .object-img {
  position: absolute;
  z-index: 1;
}
#sec02 .object-img.first {
  width: 224px;
  height: 124px;
  top: -50px;
  left: -50px;
}
@media (max-width: 767px) {
  #sec02 .object-img.first {
    display: none;
  }
}
#sec02 .object-img.second {
  width: 85px;
  height: 259px;
  top: -20px;
  left: 112px;
}
@media (max-width: 767px) {
  #sec02 .object-img.second {
    width: 53px;
    height: 163px;
    top: auto;
    left: auto;
    right: 10px;
    bottom: 205px;
  }
}
#sec02 .object-img.third {
  width: 149px;
  height: 186px;
  top: 26px;
  right: 116px;
  z-index: 2;
}
@media (max-width: 767px) {
  #sec02 .object-img.third {
    width: 66px;
    height: 82.5px;
    top: auto;
    right: -3%;
    bottom: 135px;
  }
}
#sec02 .object-img.last {
  width: 171px;
  height: 177px;
  top: -36px;
  right: -11px;
}
@media (max-width: 767px) {
  #sec02 .object-img.last {
    display: none;
  }
}

#sec03 {
  padding: 75px 0;
}
@media (max-width: 767px) {
  #sec03 {
    padding: 30px 0;
  }
}
#sec03:before {
  top: 170px;
  filter: brightness(0) saturate(100%) invert(82%) sepia(9%) saturate(281%) hue-rotate(160deg) brightness(111%) contrast(104%);
}
@media (max-width: 767px) {
  #sec03:before {
    top: 110px;
  }
}
#sec03:after {
  background: #e3f4fd;
  top: 230px;
}
@media (min-width: 1400px) {
  #sec03:after {
    top: 240px;
  }
}
@media (min-width: 1600px) {
  #sec03:after {
    top: 250px;
  }
}
@media (min-width: 1800px) {
  #sec03:after {
    top: 260px;
  }
}
#sec03 .inner {
  max-width: 1100px;
}
#sec03 h2 {
  margin-bottom: 100px;
}
@media (max-width: 767px) {
  #sec03 h2 {
    margin-bottom: 25px;
  }
}
@media (max-width: 767px) {
  #sec03 h2 .object {
    line-height: 1.642;
    margin-bottom: 15px;
  }
}
@media (max-width: 767px) {
  #sec03 h2 .object:before, #sec03 h2 .object:after {
    top: auto;
    bottom: 5px;
  }
}
#sec03 h2 .bg {
  background: #369fd7;
}
#sec03 .flex .price dd {
  color: #0e5a82;
}
#sec03 .flex .plan-text .detail ul li:before {
  filter: brightness(0) saturate(100%) invert(62%) sepia(51%) saturate(2787%) hue-rotate(171deg) brightness(92%) contrast(81%);
}
#sec03 .flex .plan-text .detail ul li:nth-child(even):before {
  filter: brightness(0) saturate(100%) invert(75%) sepia(70%) saturate(452%) hue-rotate(171deg) brightness(97%) contrast(94%);
}
#sec03 .object-img {
  position: absolute;
  z-index: 1;
}
#sec03 .object-img.first {
  width: 163px;
  height: 163px;
  top: -80px;
  left: -20px;
}
@media (max-width: 767px) {
  #sec03 .object-img.first {
    width: 57px;
    height: 81.5px;
    top: -20px;
    left: -4%;
  }
}
#sec03 .object-img.second {
  width: 137px;
  height: 245px;
  top: -37px;
  left: 70px;
}
@media (max-width: 767px) {
  #sec03 .object-img.second {
    width: 65.5px;
    height: 117px;
    top: 530px;
    left: auto;
    right: -3%;
  }
}
#sec03 .object-img.third {
  width: 172px;
  height: 133px;
  top: 50px;
  right: 63px;
  z-index: 2;
}
@media (max-width: 767px) {
  #sec03 .object-img.third {
    width: 86px;
    height: 66.5px;
    top: auto;
    left: auto;
    right: 5px;
    bottom: 175px;
  }
}
#sec03 .object-img.last {
  width: 65px;
  height: 62px;
  top: -20px;
  right: -17px;
}
@media (max-width: 767px) {
  #sec03 .object-img.last {
    width: 32.5px;
    height: 31px;
    top: auto;
    left: auto;
    right: -3%;
    bottom: 250px;
  }
}

#sec04 {
  padding: 75px 0 100px;
}
@media (max-width: 767px) {
  #sec04 {
    padding: 30px 0 80px;
  }
}
#sec04:before {
  top: 170px;
  filter: brightness(0) saturate(100%) invert(84%) sepia(25%) saturate(227%) hue-rotate(6deg) brightness(112%) contrast(98%);
}
@media (max-width: 767px) {
  #sec04:before {
    top: 110px;
  }
}
#sec04:after {
  background: #fcfad4;
  top: 230px;
  height: 86%;
}
@media (min-width: 1400px) {
  #sec04:after {
    top: 240px;
  }
}
@media (min-width: 1600px) {
  #sec04:after {
    top: 250px;
  }
}
@media (min-width: 1800px) {
  #sec04:after {
    top: 260px;
  }
}
#sec04 .inner {
  max-width: 1100px;
}
#sec04 h2 {
  margin-bottom: 100px;
}
@media (max-width: 767px) {
  #sec04 h2 {
    margin-bottom: 25px;
  }
}
@media (max-width: 767px) {
  #sec04 h2 .object {
    line-height: 1.642;
    margin-bottom: 15px;
  }
}
@media (max-width: 767px) {
  #sec04 h2 .object:before, #sec04 h2 .object:after {
    top: auto;
    bottom: 5px;
  }
}
#sec04 h2 .bg {
  background: #edd325;
}
#sec04 .flex {
  margin-bottom: 30px;
}
#sec04 .flex .price dd {
  color: #ea8d07;
}
@media (max-width: 767px) {
  #sec04 .flex .plan-text .detail .ttl {
    text-align: center;
    width: 100%;
    border-radius: 0;
  }
}
#sec04 .flex .plan-text .detail ul li:before {
  filter: brightness(0) saturate(100%) invert(80%) sepia(63%) saturate(577%) hue-rotate(1deg) brightness(108%) contrast(81%);
}
#sec04 .flex .plan-text .detail ul li:nth-child(even):before {
  filter: brightness(0) saturate(100%) invert(86%) sepia(19%) saturate(548%) hue-rotate(16deg) brightness(103%) contrast(104%);
}
#sec04 .flex .plan-img .img {
  height: 320px;
}
@media (max-width: 767px) {
  #sec04 .flex .plan-img .img {
    height: 200px;
  }
}
#sec04 .object-img {
  position: absolute;
  z-index: 1;
}
#sec04 .object-img.first {
  width: 84px;
  height: 55px;
  top: -60px;
  left: -17px;
}
@media (max-width: 767px) {
  #sec04 .object-img.first {
    width: 40px;
    height: 26px;
    top: auto;
    left: auto;
    right: 85px;
    bottom: 480px;
  }
}
#sec04 .object-img.second {
  width: 97px;
  height: 247px;
  top: -43px;
  left: 67px;
}
@media (max-width: 767px) {
  #sec04 .object-img.second {
    width: 42.5px;
    height: 114px;
    top: auto;
    left: auto;
    right: 30px;
    bottom: 375px;
  }
}
#sec04 .object-img.third {
  width: 128px;
  height: 148px;
  top: 18px;
  right: 100px;
  z-index: 2;
}
@media (max-width: 767px) {
  #sec04 .object-img.third {
    width: 53px;
    height: 62px;
    top: auto;
    right: -2%;
    bottom: 335px;
  }
}
#sec04 .object-img.last {
  width: 180px;
  height: 182px;
  top: -75px;
  right: -34px;
}
@media (max-width: 767px) {
  #sec04 .object-img.last {
    width: 58.5px;
    height: 69.5px;
    top: -25px;
    right: -4%;
  }
}

#sec05 {
  padding: 60px 0 80px;
}
@media (max-width: 767px) {
  #sec05 {
    padding: 60px 0;
  }
}
#sec05:before {
  top: -20px;
  filter: brightness(0) saturate(100%) invert(99%) sepia(4%) saturate(691%) hue-rotate(242deg) brightness(121%) contrast(100%);
}
#sec05:after {
  background: #ffeff5;
  width: 100%;
  height: 200px;
  top: auto;
  left: 0;
  bottom: 0;
}
@media (max-width: 767px) {
  #sec05:after {
    height: 110px;
  }
}
#sec05 h2 {
  position: relative;
  font-size: 50px;
  text-align: center;
  line-height: 1;
  margin-bottom: 60px;
}
@media (max-width: 767px) {
  #sec05 h2 {
    font-size: 30px;
    margin-bottom: 40px;
  }
}
#sec05 h2:before {
  position: absolute;
  content: "";
  background: url("../img/sec05-title-01.png") no-repeat;
  background-size: contain;
  width: 304px;
  height: 90px;
  top: -36px;
  left: 95px;
}
@media (max-width: 767px) {
  #sec05 h2:before {
    width: 140px;
    height: 42px;
    left: 0;
  }
}
#sec05 h2 span {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 30px;
  font-size: 30px;
  background: #f65691;
  color: #fff;
  padding: 7px 23px;
  border-radius: 10px;
}
@media (max-width: 767px) {
  #sec05 h2 span {
    font-size: 20px;
    margin: 0 auto 15px;
  }
}
#sec05 .flex {
  position: relative;
  justify-content: space-between;
  z-index: 1;
}
@media (max-width: 767px) {
  #sec05 .flex {
    flex-direction: row;
  }
}
#sec05 .flex .img {
  height: auto;
  background: #e8e8e8;
}
#sec05 .flex .img:first-of-type {
  width: 31%;
  aspect-ratio: 37/35;
}
#sec05 .flex .img:nth-of-type(2) {
  width: 39%;
  aspect-ratio: 47/35;
}
#sec05 .flex .img:last-of-type {
  width: 26.5%;
  aspect-ratio: 32/35;
}

#sec06 {
  padding: 100px 0 170px;
}
@media (max-width: 767px) {
  #sec06 {
    padding: 60px 0 80px;
  }
}
#sec06 .inner {
  position: relative;
}
#sec06 .inner:before {
  position: absolute;
  content: "";
  background: url("../img/sec06-img-01.png") no-repeat;
  background-size: contain;
  width: 281px;
  height: 132px;
  top: 20px;
  left: -63px;
}
@media (max-width: 767px) {
  #sec06 .inner:before {
    width: 140px;
    height: 64px;
    top: -30px;
    left: -4%;
  }
}
#sec06 h2 {
  font-size: 50px;
  text-align: center;
  line-height: 1;
  margin-bottom: 60px;
}
@media (max-width: 767px) {
  #sec06 h2 {
    font-size: 30px;
    margin-bottom: 40px;
  }
}
#sec06 .flex {
  position: relative;
  gap: 0 60px;
  margin-bottom: 40px;
}
@media (max-width: 767px) {
  #sec06 .flex {
    flex-direction: column-reverse;
    gap: 40px 0;
  }
}
#sec06 .flex:before {
  position: absolute;
  content: "";
  background: url("../img/sec06-img-02.png") no-repeat;
  width: 300px;
  height: 293px;
  right: -70px;
  bottom: -40px;
}
@media (max-width: 767px) {
  #sec06 .flex:before {
    background-size: cover;
    background-position: top right;
    width: 180px;
    height: 130px;
    right: 0;
    bottom: -120px;
    display: none;
  }
}
#sec06 .flex .img {
  width: 420px;
  overflow: hidden;
  border-radius: 20px;
}
@media (max-width: 767px) {
  #sec06 .flex .img {
    width: 100%;
    border-radius: 10px;
  }
}
#sec06 .flex .img img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
#sec06 .flex .detail dl {
  display: flex;
  align-items: flex-start;
  font-size: 16px;
  gap: 0 17px;
  margin-bottom: 16px;
}
#sec06 .flex .detail dl:last-of-type {
  margin-bottom: 0;
}
#sec06 .flex .detail dl dt {
  width: 97px;
  text-align: center;
  background: #ffeff5;
  color: #f65691;
  border-radius: 15px;
}
#sec06 .gmap {
  width: 100%;
  height: 250px;
}
#sec06 .gmap iframe {
  width: 100%;
  height: 100%;
}

#form {
  padding: 100px 0;
  background: url("../img/form-bg.png") no-repeat;
  background-size: cover;
  background-position: top center;
}
#form .inner {
  position: relative;
}
#form .inner:before {
  position: absolute;
  content: "";
  background: url("../img/form-img-02.png") no-repeat;
  background-size: contain;
  width: 152px;
  height: 426px;
  top: -146px;
  left: -42px;
}
@media (max-width: 767px) {
  #form .inner:before {
    width: 100px;
    height: 280px;
    top: 85px;
    left: -4%;
  }
}
#form .inner:after {
  position: absolute;
  content: "";
  background: url("../img/form-img-03.png") no-repeat;
  background-size: contain;
  width: 176px;
  height: 241px;
  top: -142px;
  right: 0;
}
@media (max-width: 767px) {
  #form .inner:after {
    width: 90px;
    height: 122px;
    top: 70px;
    right: -4%;
  }
}
#form h2 {
  position: relative;
  font-size: 40px;
  text-align: center;
  line-height: 1;
  margin-bottom: 50px;
}
@media (max-width: 767px) {
  #form h2 {
    font-size: 30px;
    line-height: 1.6;
  }
}
#form h2:before {
  position: absolute;
  content: "";
  background: url("../img/form-img-01.png") no-repeat;
  background-size: contain;
  width: 250px;
  height: 173px;
  top: -180px;
  left: 95px;
}
@media (max-width: 767px) {
  #form h2:before {
    width: 120px;
    height: 82px;
    top: -70px;
    left: -5px;
  }
}
#form h2 .gold {
  font-family: "Noto Serif JP", serif;
  font-size: 50px;
  color: #a48032;
}
@media (max-width: 767px) {
  #form h2 .gold {
    font-size: 40px;
  }
}
#form h2 .gold .mini {
  font-family: zen-kaku-gothic-new, sans-serif;
  font-weight: 700;
  font-size: 40px;
}
@media (max-width: 767px) {
  #form h2 .gold .mini {
    font-size: 30px;
  }
}
#form .bg {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 0 40px rgba(222, 205, 238, 0.5);
}
#form .cta-cnt {
  position: relative;
  padding: 40px 30px 18px 115px;
  margin-bottom: 60px;
  justify-content: space-between;
  z-index: 2;
}
@media (max-width: 767px) {
  #form .cta-cnt {
    flex-direction: column-reverse;
    padding: 40px 20px;
    gap: 60px 0;
  }
}
#form .cta-cnt:before {
  position: absolute;
  content: "";
  background: #b0c7f2;
  width: 1px;
  height: 120px;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  #form .cta-cnt:before {
    width: 60%;
    height: 1px;
  }
}
#form .cta-cnt .tel {
  text-align: center;
}
#form .cta-cnt .tel .sub {
  font-size: 20px;
  line-height: 1;
  margin-bottom: 15px;
}
@media (max-width: 767px) {
  #form .cta-cnt .tel .sub {
    font-size: 18px;
    margin-bottom: 10px;
  }
}
#form .cta-cnt .tel a {
  position: relative;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 34px;
  letter-spacing: 0;
  line-height: 1;
  padding-left: 32px;
  margin-bottom: 18px;
  pointer-events: none;
}
@media (max-width: 767px) {
  #form .cta-cnt .tel a {
    font-size: 29px;
    padding-left: 27.5px;
    margin: 0 auto 10px;
    pointer-events: all;
  }
}
#form .cta-cnt .tel a:before {
  position: absolute;
  content: "";
  background: url("../img/tel-icon.png") no-repeat;
  background-size: contain;
  width: 21px;
  height: 27px;
  top: 4px;
  left: 0;
  bottom: 0;
  margin: auto;
  filter: brightness(0) saturate(100%) invert(29%) sepia(67%) saturate(1273%) hue-rotate(206deg) brightness(104%) contrast(86%);
}
@media (max-width: 767px) {
  #form .cta-cnt .tel a:before {
    width: 17.5px;
    height: 22.5px;
  }
}
#form .cta-cnt .tel .time {
  line-height: 1;
}
@media (max-width: 767px) {
  #form .cta-cnt .tel .time {
    font-size: 15px;
  }
}
#form .cta-cnt .line .caption {
  font-size: 20px;
  text-align: center;
  color: #04b94e;
  line-height: 1;
  margin-bottom: 20px;
}
#form .cta-cnt .line .btn {
  margin-bottom: 12px;
}
@media (max-width: 767px) {
  #form .cta-cnt .line .btn {
    margin-bottom: 0;
  }
}
#form .cta-cnt .line .btn a {
  position: relative;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  background: #04b94e;
  border: 1px solid #04b94e;
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 20px 30px 20px 80px;
  border-radius: 30px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  #form .cta-cnt .line .btn a {
    width: 250px;
    font-size: 15px;
    padding: 15px 0 15px 50px;
  }
}
#form .cta-cnt .line .btn a:before {
  position: absolute;
  content: "";
  background: url("../img/line-icon.png") no-repeat;
  background-size: contain;
  width: 32px;
  height: 31px;
  top: 0;
  left: 33px;
  bottom: 0;
  margin: auto;
  transition: all 0.4s;
}
@media (max-width: 767px) {
  #form .cta-cnt .line .btn a:before {
    width: 24px;
    height: 24px;
    left: 18px;
  }
}
@media (min-width: 1024px) {
  #form .cta-cnt .line .btn a:hover {
    background: #fff;
    color: #06c755;
  }
}
#form .cta-cnt .line .btn a:hover:before {
  background: url("../img/line-icon-gr.png") no-repeat;
  background-size: contain;
}
#form .cta-cnt .line .caution {
  font-size: 13px;
  line-height: 1;
}
@media (max-width: 767px) {
  #form .cta-cnt .line .caution {
    display: none;
  }
}
#form .form-cnt {
  padding: 60px 65px;
}
@media (max-width: 767px) {
  #form .form-cnt {
    padding: 40px 20px;
  }
}
#form .form-cnt h3 {
  text-align: center;
  font-size: 26px;
  line-height: 1;
  margin-bottom: 30px;
}
@media (max-width: 767px) {
  #form .form-cnt h3 {
    font-size: 22px;
  }
}
#form .form-cnt .read {
  text-align: center;
  line-height: 1;
  margin-bottom: 50px;
}
@media (max-width: 767px) {
  #form .form-cnt .read {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 30px;
  }
}
#form .form-cnt form table {
  width: 100%;
  margin-bottom: 40px;
}
#form .form-cnt form table tr {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0;
  font-size: 16px;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr {
    flex-direction: column;
    gap: 20px 0;
  }
}
#form .form-cnt form table tr:before {
  position: absolute;
  content: "";
  width: 100%;
  height: 1px;
  background: repeating-linear-gradient(90deg, #929292 0 1px, transparent 1px 7px);
  top: 0;
  left: 0;
}
#form .form-cnt form table tr:last-of-type:after {
  position: absolute;
  content: "";
  width: 100%;
  height: 1px;
  background: repeating-linear-gradient(90deg, #929292 0 1px, transparent 1px 7px);
  bottom: 0;
  left: 0;
}
#form .form-cnt form table tr th {
  position: relative;
  width: 187px;
  font-weight: 700;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr th {
    width: 100%;
  }
}
#form .form-cnt form table tr th span {
  display: block;
  position: absolute;
  content: "";
  top: 3px;
  right: 0;
  font-size: 12px;
  line-height: 1;
  border: 1px solid #a48032;
  color: #a48032;
  padding: 3px 7px;
}
#form .form-cnt form table tr th span.required {
  background: #a48032;
  color: #fff;
}
#form .form-cnt form table tr td {
  width: 615px;
  font-weight: 700;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td {
    width: 100%;
  }
}
#form .form-cnt form table tr td input[type=text],
#form .form-cnt form table tr td input[type=email],
#form .form-cnt form table tr td input[type=tel],
#form .form-cnt form table tr td textarea {
  width: 100%;
  background: #fafafa;
  padding: 16px 20px;
  font-size: 16px;
  font-weight: 700;
}
#form .form-cnt form table tr td input[type=text]::-moz-placeholder, #form .form-cnt form table tr td input[type=email]::-moz-placeholder, #form .form-cnt form table tr td input[type=tel]::-moz-placeholder, #form .form-cnt form table tr td textarea::-moz-placeholder {
  color: #cbcbcb;
}
#form .form-cnt form table tr td input[type=text]::placeholder,
#form .form-cnt form table tr td input[type=email]::placeholder,
#form .form-cnt form table tr td input[type=tel]::placeholder,
#form .form-cnt form table tr td textarea::placeholder {
  color: #cbcbcb;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td .time-cnt .cnt {
    font-size: 14px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px 0;
  }
}
#form .form-cnt form table tr td .time-cnt.mb {
  margin-bottom: 20px;
}
#form .form-cnt form table tr td .time-cnt .text {
  display: inline-block;
}
#form .form-cnt form table tr td .time-cnt .text.mr25 {
  margin-right: 25px;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td .time-cnt .text.mr25 {
    margin-right: 0;
  }
}
#form .form-cnt form table tr td .time-cnt .text.mr30 {
  margin-right: 30px;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td .time-cnt .text.mr30 {
    margin-right: 5px;
  }
}
#form .form-cnt form table tr td .time-cnt .select-box {
  position: relative;
  display: inline-block;
}
#form .form-cnt form table tr td .time-cnt .select-box:before {
  position: absolute;
  content: "";
  background: #a4a4a4;
  width: 10px;
  height: 9px;
  top: 0;
  right: 20px;
  bottom: 0;
  margin: auto;
  clip-path: polygon(100% 0, 0 0, 50% 100%);
}
#form .form-cnt form table tr td .time-cnt .select-box select {
  width: 110px;
  font-size: 16px;
  font-weight: 700;
  padding: 16px 20px;
  background: #fafafa;
  color: #cdcdcd;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td .time-cnt .select-box select {
    width: 65px;
    padding: 10px;
  }
}
#form .form-cnt form table tr td .time-cnt .select-box select.selected {
  color: #160f03;
}
#form .form-cnt form table tr td .time-cnt .select-box select.last {
  width: 160px;
}
#form .form-cnt form table tr td .time-cnt .select-box select option {
  color: #160f03;
}
#form .form-cnt form table tr td input[type=radio] {
  -webkit-appearance: auto;
     -moz-appearance: auto;
          appearance: auto;
}
#form .form-cnt form table tr td.flex {
  gap: 0 20px;
}
@media (max-width: 767px) {
  #form .form-cnt form table tr td.flex {
    flex-direction: column;
    gap: 10px 0;
  }
}
#form .form-cnt form table tr.st {
  align-items: flex-start;
}
#form .form-cnt form table tr.st th {
  margin-top: 10px;
}
#form .form-cnt form button {
  display: block;
  background: #f65691;
  border: 1px solid #f65691;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
  padding: 15px 80px;
  border-radius: 30px;
  margin: 0 auto;
  transition: all 0.4s;
}
@media (min-width: 1024px) {
  #form .form-cnt form button:hover {
    background: #fff;
    color: #f65691;
  }
}
#form.mail-confirm {
  padding: 200px 0;
  background: none;
}
@media (max-width: 767px) {
  #form.mail-confirm {
    padding: 120px 0 80px;
  }
}
#form.mail-confirm .inner:before, #form.mail-confirm .inner:after {
  display: none;
}
@media (max-width: 767px) {
  #form.mail-confirm h2 {
    margin-bottom: 25px;
  }
}
#form.mail-confirm h2:before {
  display: none;
}
#form.mail-confirm h3 {
  text-align: center;
  margin-bottom: 40px;
}
@media (max-width: 767px) {
  #form.mail-confirm h3 {
    font-size: 18px;
  }
}
#form.mail-confirm table {
  width: 650px;
  margin: 0 auto 40px;
  border-collapse: collapse;
}
@media (max-width: 767px) {
  #form.mail-confirm table {
    width: 100%;
  }
}
#form.mail-confirm table tr th,
#form.mail-confirm table tr td {
  font-size: 16px;
  font-weight: 700;
  border: 1px solid #160f03;
  padding: 10px 20px;
}
#form.mail-confirm .clum_box {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 30px;
}
@media (max-width: 767px) {
  #form.mail-confirm .clum_box {
    flex-direction: column;
    gap: 30px 0;
  }
}
#form.mail-confirm .clum_box li button {
  display: block;
  background: #f65691;
  border: 1px solid #f65691;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
  padding: 15px 80px;
  border-radius: 30px;
  margin: 0 auto;
  transition: all 0.4s;
}
@media (min-width: 1024px) {
  #form.mail-confirm .clum_box li button:hover {
    background: #fff;
    color: #f65691;
  }
}
#form.thanks {
  padding: 200px 0;
  background: none;
}
@media (max-width: 767px) {
  #form.thanks {
    padding: 120px 0 80px;
  }
}
#form.thanks .inner:before, #form.thanks .inner:after {
  display: none;
}
@media (max-width: 767px) {
  #form.thanks h2 {
    margin-bottom: 25px;
  }
}
#form.thanks h2:before {
  display: none;
}
#form.thanks p {
  font-size: 18px;
  text-align: center;
  margin-bottom: 40px;
}
@media (max-width: 767px) {
  #form.thanks p {
    font-size: 16px;
  }
}
#form.thanks a {
  width: 300px;
  display: block;
  background: #f65691;
  border: 1px solid #f65691;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
  padding: 15px 80px;
  border-radius: 30px;
  margin: 0 auto;
  text-align: center;
  transition: all 0.4s;
}
@media (min-width: 1024px) {
  #form.thanks a:hover {
    background: #fff;
    color: #f65691;
  }
}

footer {
  background: #b10645;
  padding: 40px 0;
  color: #fff;
}
footer .flex {
  justify-content: space-between;
  align-items: flex-end;
}
@media (max-width: 767px) {
  footer .flex {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px 0;
  }
}
footer .flex .info {
  display: flex;
  gap: 0 30px;
}
@media (max-width: 767px) {
  footer .flex .info {
    flex-direction: column;
  }
}
footer .flex .info .logo a {
  display: block;
  width: 135px;
}
footer .flex .info .detail {
  font-size: 14px;
  line-height: 1.85;
  margin-top: 18px;
}
footer .flex .copy {
  font-size: 14px;
}