:root {
  --blue: #005f8a;
  --deep-blue: #006f99;
  --pink: #fff0f1;
  --cream: #fffcef;
  --coral: #ff858b;
  --gray: #f7f7f7;
  --text: #111;
  --muted: #59666d;
  --line: #D0D0D0;
}
* {
  box-sizing: border-box;
}
/* ログイン時の管理バー分だけ下げる */
body.admin-bar .header {
  top: 32px;
}
/* スマホ時の管理バー高さ */
@media screen and (max-width: 782px) {
  body.admin-bar .header {
    top: 46px;
  }
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--text);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.8;
  overflow-x: hidden;
}
img {
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
  transition: 0.5s all;
}
a:hover {
  opacity: 0.6;
}
.mont {
  font-family: Montserrat, sans-serif;
  font-weight: 500;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 18px clamp(28px, 3vw, 84px);
  background-color: #fff;
}
.logo {
  margin: 0 150px 0 0;
}
.logo img {
  width: 134px;
}
.pc-nav {
  display: flex;
  gap: 42px;
  font-size: 15px;
  font-weight: 500;
}
.header-button, .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 80px;
  padding: 0 55px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 19px;
}
.header-button, .button.primary {
  background: var(--coral);
  color: #fff;
}
.button.secondary {
  background: #fff;
  color: var(--coral);
  border: 1px solid #ffd2d5;
}
.button.white {
  background: #fff;
  color: var(--coral);
}
section, footer {
  position: relative;
}
.container {
  width: min(1100px, calc(100% - 48px));
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.cream-section {
  background: var(--cream);
}
.pink-section {
  background: var(--pink);
}
.gray-section {
  background: var(--gray);
}
.white-section {
  background: #fff;
}
.ring {
  border-radius: 100vh;
  position: absolute;
  z-index: -1;
}
.hero {
  min-height: 786px;
  padding-top: 0;
  background-image: url("img/wave_bg.svg");
  background-position: center bottom -250px;
  background-repeat: no-repeat;
	z-index: 10;
}
.hero-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  align-items: flex-start;
}
.catch {
  margin: 50px 0 5px;
  color: var(--coral);
  font-size: 28px;
  font-weight: 700;
}
.hero-label {
  margin: 0 0 20px;
  border: 2px solid var(--blue);
  color: var(--blue);
  font-size: 20px;
  font-weight: 600;
  display: inline-block;
  border-radius: 8px;
  padding: 0 15px;
}
.hero-logo {
  width: 444px;
  margin-bottom: 40px;
}
h1, h2, h3, p {
  margin-top: 0;
}
h1 {
  font-size: 32px;
  line-height: 1.625;
  margin: 0;
}
h2 {
  font-size: 46px;
  line-height: 1.4782;
  margin-bottom: 5px;
  font-weight: 700;
}
h3 {
  font-size: 20px;
  line-height: 1.55;
  margin-bottom: 14px;
}
.en {
  color: #FF858B;
  font-size: 16px;
  margin: 0 0 20px;
}
.button-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-top: 70px;
}
.hero-visual {
  position: relative;
}
.hero-copy h1 {
	color: var(--blue);
}
.pc-device {
  position: absolute;
  right: 40px;
  top: 100px;
  width: 550px;
  z-index: 2;
}
.photo-stack {
  position: absolute;
  right: -110px;
  top: 0;
  width: 240px;
  display: grid;
  gap: 14px;
}
.photo-stack img {
  height: 136px;
  object-fit: cover;
  border-radius: 4px;
}
.hero-ring {
  border: 60px solid var(--pink);
  width: 295px;
  height: 295px;
  left: -264px;
  top: 116px;
}
.problems-ring {
  border: 60px solid var(--coral);
  width: 432px;
  height: 432px;
  right: -324px;
  top: -216px;
}
.solutions-ring {
  border: 60px solid var(--coral);
  width: 432px;
  height: 432px;
  left: -325px;
  top: 0;
}
.usage-ring {
  border: 60px solid #fff;
  width: 295px;
  height: 295px;
  left: -90px;
  bottom: -310px;
}
.supervision-ring {
  border: 60px solid #fff;
  width: 246px;
  height: 246px;
  right: -90px;
  top: 214px;
}
.plans-ring {
  border: 60px solid #fff;
  width: 432px;
  height: 432px;
  right: -230px;
  top: 20px;
}
.footer-ring {
  border: 60px solid var(--coral);
  width: 510px;
  height: 510px;
  right: -325px;
  bottom: -183px;
}
.scroll {
  text-align: center;
  font-size: 16px;
  margin: 70px 0 0;
  color: var(--blue);
  font-weight: 500;
  display: block;
  position: relative;
  line-height: 1;
}
.scroll::before {
  content: "";
  height: 37px;
  width: 1px;
  background-color: var(--blue);
  position: absolute;
  left: 50%;
  top: 30px;
}
.bnr-area ul {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 40px 0 0;
}
.label {
  display: inline-flex;
  min-height: 33px;
  align-items: center;
  justify-content: center;
  padding: 0 36px;
  margin: 0 0 16px;
  border-radius: 100vh;
  background: var(--coral);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}
.label.light {
  background: #fff;
  color: var(--coral);
}
.intro {
  font-size: 16px;
  margin: 0 auto 75px;
}
.problems {
  padding: 230px 0 160px;
  text-align: center;
}
.card-grid {
  display: grid;
  gap: 32px;
}
.card-grid .icon {
  text-align: center;
}
.three {
  grid-template-columns: repeat(3, 1fr);
}
.problem-card, .solutions-card {
  min-height: 485px;
  padding: 40px 30px;
  background: #fff;
  border: 2px solid var(--blue);
  border-radius: 28px;
}
.solutions-card {
  border: 2px solid var(--coral);
  min-height: 464px;
}
.problem-card strong, .solutions-card strong {
  display: block;
  margin-bottom: 22px;
  color: var(--blue);
  font-size: 46px;
  line-height: 1;
}
.solutions-card strong {
  color: var(--coral);
}
.solutions-card h3 {
  color: var(--coral);
}
.problem-card p, .solutions-card p {
  text-align: left;
  font-size: 16px;
  min-height: 150px;
  margin: 0;
}
.solutions-card p {
  min-height: 130px;
}
.risk-message {
  margin: -62px auto;
  padding: 70px 0;
  border-radius: 62px;
  background: var(--deep-blue);
  color: #fff;
  z-index: 5;
}
.risk-message p {
  color: #fff;
}
.risk-flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.risk-text {
  padding: 0 0 0 82px;
  position: relative;
}
.risk-text p {
  max-width: 468px;
  margin: 35px 0 0;
}
.bang {
  color: #FCD34D;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 0;
  font-size: 179px;
}
.risk-price {
  width: 550px;
  text-align: center;
}
.risk-price .ttl {
  border: 1px solid #fff;
  border-radius: 100vh;
  display: inline-flex;
  height: 50px;
  font-size: 20px;
  justify-content: center;
  align-items: center;
  min-width: 310px;
  font-weight: 500;
  margin: 0 0 25px;
}
.risk-price h2 {
  color: #FCD34D;
  margin: 0 0 10px;
}
.risk-price h2 span {
  font-size: 85px;
  line-height: 1;
  font-weight: 700;
  padding: 0 0.1em 0 0;
  vertical-align: bottom;
}
.solutions {
  padding: 170px 0;
  text-align: center;
}
.solutions .container .icon_list .icon {
  position: absolute;
  left: 124px;
  top: 206px;
}
.solutions .container .icon_list .visual {
  position: absolute;
  right: -54px;
  top: 130px;
}
.solutions .container .intro {
  margin: 0 0 40px;
}
.solutions .container .icon-list {
  margin: 0 0 40px;
}
.solution-card {
  border-color: #ffcbd0;
}
.solution-card strong {
  color: var(--coral);
}
.usage {
  text-align: center;
  margin: -62px auto;
  padding: 75px 0 145px;
  border-radius: 62px;
  position: relative;
  z-index: 3;
}
.usage .flex {
  display: flex;
  margin: 0 98px 0 0;
  justify-content: space-between;
}
.check-list, .flow-list {
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: left;
}
.check-list li {
  position: relative;
  padding-left: 46px;
  margin: 0 0 75px;
}
.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  width: 22px;
  height: 6px;
  border-left: 3px solid var(--coral);
  border-bottom: 3px solid var(--coral);
  transform: rotate(-45deg);
}
.check-list li h3 {
  color: var(--coral);
  font-weight: 700;
  margin: 0 0 20px;
}
.check-list li p {
  max-width: 312px;
}
.flow-list li {
  margin: 0 0 35px;
}
.flow-list li:last-child {
  margin: 0;
}
.flow-list li p {
  margin: 0 0 10px;
}
.supervision {
  text-align: center;
  padding: 145px 0 145px;
  background-image: url("img/wave_bg_wh.svg");
  background-position: center bottom -600px;
  background-repeat: no-repeat;
}
.profile {
  display: flex;
  gap: 100px;
  text-align: left;
  margin: 95px auto;
  max-width: 800px;
}
.profile .pict {
  height: auto;
  width: 250px;
  flex: none;
}
.profile .ttl {
  margin-bottom: 20px;
}
.profile .role {
  margin-bottom: 10px;
}
.profile h3 {
  font-size: 32px;
  margin: 0 0 5px;
  line-height: 1;
}
.profile .ruby {
  font-size: 13px;
  margin: 0 0 30px 0.3em;
  letter-spacing: 0.2em;
}
.book {
  display: flex;
  gap: 40px;
  align-items: center;
  text-align: left;
  padding: 50px 70px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 28px;
  max-width: 800px;
  margin: auto;
}
.book .ttl {
  margin: 0 0 12px;
}
.book .cap {
  font-size: 13px;
  margin: 0 0 16px;
}
.book a {
  color: var(--coral);
}
.book a span {
  padding: 0 8px 0 0;
  vertical-align: middle;
}
.case {
  padding: 80px 0 180px;
  text-align: center;
}
.case-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 34px;
  margin-top: 95px;
}
.case-card {
  border: 2px solid var(--line);
  border-radius: 28px;
  padding: 45px;
  text-align: left;
  position: relative;
}
.case-card .icon {
  position: absolute;
  top: -30px;
  right: 44px;
}
.case-card .vol {
  font-size: 28px;
  color: var(--coral);
  line-height: 1;
  margin: 0 0 25px;
}
.case-card h3 {
  font-size: 28px;
  margin: 0 0 22px;
}
.case-card p {
  margin: 0;
}
.case-card .info {
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  margin: 20px 0 10px;
  padding: 15px 0 0;
  gap: 15px;
}
.case-card .info .pict {
  width: 80px;
}
.case-card .info .text .name {
  color: var(--coral);
  margin: 0 0 3px;
}
.case-card .info .text .year {
  font-size: 13px;
}
.cta-panel {
  margin-top: 65px;
  padding: 80px 20px;
  border-radius: 62px;
  background: var(--coral);
  color: #fff;
  position: relative;
}
.cta-panel .visual {
  position: absolute;
  right: 45px;
  bottom: -80px;
}
.cta-panel h2 {
  font-size: 36px;
  margin: 0 0 45px;
}
.cta-panel .button {
  width: 342px;
  height: 90px;
  font-size: 26px;
  padding: 0;
}
.plans {
  text-align: center;
  margin: -62px auto;
  padding: 85px 0 110px;
  border-radius: 62px;
  position: relative;
  z-index: 3;
}
.plans .intro {
  margin: 0 0 60px;
}
.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  text-align: left;
  margin: 0 0 45px;
}
.plan-grid p {
  margin: 0;
}
.plan-grid article {
  min-height: 800px;
  display: flex;
  flex-direction: column;
  padding: 45px 30px;
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 28px;
}
.plan-grid .vol {
  color: var(--coral);
  line-height: 1;
  margin: 0 0 10px;
}
.plan-grid h3 {
  font-size: 24px;
  margin: 0 0 14px;
  min-height: 84px;
  border-bottom: 1px solid var(--line);
}
.plan-grid .cap {
  margin: 0 0 14px;
  padding: 0 0 20px;
  min-height: 135px;
  border-bottom: 1px dashed var(--line);
}
.plan-grid .ttl {
  color: var(--coral);
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 6px;
}
.plan-grid ul {
  padding: 0;
  margin: 0;
  list-style: none;
}
.plan-grid ul li {
  font-size: 13px;
  padding: 0 0 0 22px;
  margin: 0 0 8px;
  background-image: url("img/icon_check.svg");
  background-repeat: no-repeat;
  background-position: left center;
  line-height: 1.5;
}
.plan-grid ul.plus_list li {
  color: var(--coral);
}
.plan-grid ul li:last-child {
  margin: 0;
}
.plan-grid .plus {
  font-size: 14px;
  color: var(--coral);
}
.plan-grid .bottom {
  margin-top: auto;
  display: grid;
}
.plan-grid .bottom .free {
  text-align: center;
  background-color: var(--pink);
  color: var(--coral);
  font-weight: 700;
  margin: 0 0 40px;
}
.plan-grid a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: auto;
  width: 100%;
  max-width: 252px;
  min-height: 76px;
  border-radius: 100vh;
  background: var(--coral);
  color: #fff;
  font-weight: 700;
}
.plan-grid .recommend {
  border-color: var(--coral) !important;
  position: relative;
}
.plan-grid .balloon {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  min-width: 144px;
  display: inline-flex;
  height: 36px;
  justify-content: center;
  align-items: center;
  background-color: var(--coral);
  border-radius: 100vh;
}
.process {
  text-align: center;
  padding: 145px 0;
}
.step-list {
  margin: 45px 0 0;
}
.step-list dl {
  background-color: var(--gray);
  padding: 40px 60px;
  gap: 40px;
  display: flex;
  text-align: left;
  align-items: center;
  margin: 0 0 36px;
  ;
}
.step-list dl:last-child {
  margin: 0;
}
.step-list dl dt {
  display: flex;
  align-items: center;
  min-width: 360px;
  min-height: 88px;
  border-right: 1px solid var(--line);
  gap: 35px;
}
.step-list dl dt span {
  font-size: 28px;
  color: var(--coral);
}
.step-list dl dt h3 {
  font-size: 28px;
  margin: 0;
}
.step-list dl dd, .step-list dl dd p {
  margin: 0;
}
.contact {
  background: var(--coral);
  color: #fff;
  text-align: center;
  margin: -62px auto;
  padding: 75px 0 110px;
  border-radius: 62px;
  z-index: 5;
}
.contact .intro {
  margin: 40px 0;
}
.contact .label-sub {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0 36px;
  margin: 0;
  border-radius: 100vh;
  border: 1px solid #fff;
}
.cf7-slot {
  margin-top: 50px;
  padding: 60px 50px;
  border-radius: 43px;
  background: #fff;
	color: #000;
}
.cf7-slot code {
  color: var(--coral);
  white-space: normal;
}
.footer {
  padding: 130px 0 40px;
  overflow: hidden;
  background-image: url("img/wave_bg_wh.svg");
  background-position: center bottom -540px;
  background-repeat: no-repeat;
}
.footer .hero-visual {
  position: absolute;
  top: 50px;
  right: 0;
}
.footer .catch {
  margin: 0 0 5px;
}
.footer h1 {
  margin: 0 0 15px;
}
.footer .link_list {
  display: flex;
  margin: 65px 0 0;
  gap: 55px;
}
.footer .link_list dl {
  margin: 0;
}
.footer .link_list dl dt {
  font-weight: 700;
  color: var(--coral);
  margin: 0 0 5px;
}
.footer .link_list dl dd {
  margin: 0 0 10px 18px;
}
.footer .link_list dl dd:last-child {
  margin: 0 0 0 18px;
}
.footer small {
  text-align: center;
  display: block;
  margin: 45px 0 0;
  font-size: 12px;
}
.nav-toggle, .hamburger, .mobile-menu {
  display: none;
}
.sp-only {
  display: none;
}
@media (max-width: 1024px) {
	html {
  -webkit-text-size-adjust: 100%;
}
	main {
		overflow: hidden;
	}
  .site-header {
    padding: 4.4vw 5.2vw;
  }
  .pc-nav, .header-button {
    display: none;
  }
  .logo img {
    width: 28vw;
  }
  .hamburger {
    display: flex;
    width: 48px;
    height: 48px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    cursor: pointer;
  }
  .hamburger span {
    width: 30px;
    height: 2px;
    background: var(--coral);
  }
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 60;
    padding: 4.4vw 5.2vw;
    background: #fff;
  }
  .nav-toggle:checked ~ .mobile-menu {
    display: flex;
    flex-direction: column;
  }
  body:has(.nav-toggle:checked) {
    overflow: hidden;
  }
  .mobile-menu-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
  }
  .mobile-menu-head img {
    width: 28vw;
  }
  .close-button {
    position: relative;
    width: 54px;
    height: 54px;
    cursor: pointer;
  }
  .close-button::before, .close-button::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 26px;
    width: 42px;
    height: 2px;
    background: var(--coral);
  }
  .close-button::before {
    transform: rotate(45deg);
  }
  .close-button::after {
    transform: rotate(-45deg);
  }
  .mobile-menu nav {
    display: grid;
    margin: 12vw auto 0;
    width: 73vw;
  }
  .mobile-menu nav a {
    display: grid;
    place-items: center;
    min-height: 20vw;
    border-bottom: 1px solid #d9d9d9;
    font-size: 4.6vw;
  }
  .mobile-menu nav a:last-child {
    border-bottom: none;
  }
  .mobile-menu-cta {
    width: 64vw;
    min-height: 14vw;
    margin: 2vw auto 0;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-weight: 700;
  }
  .container {
    width: min(100% - 48px, 760px);
  }
  .hero {
    min-height: auto;
    padding-top: 0;
    background-position: center bottom -8vw;
    background-size: 500%;
  }
  .catch {
    margin: 6.4vw 0 1vw;
    font-size: 4.8vw;
  }
  .hero-label {
    margin: 0 0 4.8vw;
    font-size: 3vw;
    padding: 0.8vw 4vw;
  }
  .hero-grid, .split, .band-grid, .profile, .footer-grid {
    grid-template-columns: 1fr;
    gap: 6vw;
  }
  .hero-logo {
    width: 80vw;
    margin: 0 0 5.2vw;
  }
  h1 {
    font-size: 5.6vw;
  }
  h2 {
    font-size: 6.15vw;
  }
  h3 {
    font-size: 4.6vw;
    margin-bottom: 4.6vw;
  }
  p {
    font-size: 3.5vw;
  }
  .en {
    font-size: 3.5vw;
    margin: 0 0 5vw;
  }
  .intro {
    font-size: 3.5vw;
    margin: 0 auto 10vw;
  }
  .hero-visual {
    min-height: auto;
  }
  .pc-device {
    left: auto;
    right: 0;
    top: auto;
    width: 87vw;
    margin: auto;
    position: relative;
  }
  .hero-ring {
    display: none;
  }
  .photo-stack {
    display: none;
  }
  .sp-only {
    display: block;
  }
  .three, .case-grid, .plan-grid {
    grid-template-columns: 1fr;
    gap: 6vw;
  }
  .button-row {
    gap: 3.5vw;
    margin-top: 5.2vw;
  }
  .header-button, .button {
    min-width: 68vw;
    min-height: 14vw;
    padding: 0;
    font-size: 4.1vw;
  }
  .button-row a:nth-child(1) {
    order: 2;
  }
  .button-row a:nth-child(2) {
    order: 1;
  }
  .problems-ring {
    border: 7.6vw solid var(--coral);
    width: 47vw;
    height: 47vw;
    right: -24vw;
    top: -17vw;
  }
  .solutions-ring {
    border: 7.6vw solid var(--coral);
    width: 47vw;
    height: 47vw;
    left: -24vw;
    top: 72vw;
  }
  .usage-ring {
    border: 7.6vw solid #fff;
    width: 47vw;
    height: 47vw;
    left: -30vw;
    bottom: -37vw;
  }
  .usage-ring-sp {
    border: 7.6vw solid var(--coral);
    width: 47vw;
    height: 47vw;
    right: -32vw;
    top: -11vw;
  }
  .supervision-ring {
    border: 7.6vw solid #fff;
    width: 47vw;
    height: 47vw;
    right: -32vw;
    top: 0;
  }
  .case-ring-sp {
    border: 7.6vw solid var(--pink);
    width: 47vw;
    height: 47vw;
    left: -32vw;
    top: 6.6vw;
  }
  .plans-ring {
    border: 7.6vw solid #fff;
    width: 47vw;
    height: 47vw;
    right: -34vw;
    top: -9.4vw;
  }
  .footer-ring {
    border: 7.6vw solid var(--coral);
    width: 47vw;
    height: 47vw;
    right: -42vw;
    bottom: -16.4vw;
  }
  .scroll {
    display: none;
  }
  .bnr-area ul {
    margin: 0;
    padding: 14vw 0 0;
  }
  .bnr-area ul li {
    max-width: 50vw;
  }
  .problems {
    padding: 15vw 0 22vw;
  }
  .problem-card {
    min-height: auto;
    padding: 6.4vw 8.8vw;
    border-radius: 7vw;
  }
  .problem-card strong, .solutions-card strong {
    margin-bottom: 4vw;
    font-size: 8.2vw;
  }
  .problem-card p, .solutions-card p {
    font-size: 3.5vw;
    min-height: auto;
    margin: 0 0 4vw;
  }
  .card-grid .icon {
    max-width: 30vw;
    margin: auto;
  }
  .risk-message {
    margin: -6vw auto;
    padding: 10vw 0;
    border-radius: 7vw;
    background: var(--deep-blue);
  }
  .risk-message p {
    color: #fff;
  }
  .risk-flex {
    display: flex;
    justify-content: center;
  }
  .risk-text {
    padding: 0;
  }
  .risk-text p {
    max-width: 100%;
    margin: 6.4vw 0 0;
  }
  .bang {
    position: relative;
    left: 0;
    top: 0;
    font-size: 25vw;
  }
  .risk-price {
    width: auto;
    margin: 6.4vw 0 0;
  }
  .risk-price .ttl {
    height: 10vw;
    font-size: 3.8vw;
    min-width: 66vw;
    margin: 0 0 4vw;
  }
  .risk-price h2 {
    font-size: 10vw;
    margin: 0 0 10px;
  }
  .risk-price h2 span {
    font-size: 18vw;
  }
  .risk-price .icon {
    width: 32vw;
    margin: auto;
  }
  .solutions {
    padding: 20vw 0 23vw;
  }
  .solutions .container .icon_list {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 5.6vw;
  }
  .solutions .container .icon_list .icon {
    position: relative;
    left: 0;
    top: 0;
    width: 23vw;
  }
  .solutions .container .icon_list .visual {
    position: relative;
    right: 0;
    top: 0;
    width: 57vw;
  }
  .solutions .container .intro {
    margin: 0 0 3.8vw;
  }
  .solutions .container .icon-list {
    margin: 0 0 12vw;
  }
  .solutions-card {
    min-height: auto;
  }
  .solutions-card p {
    margin: 0 0 8vw;
  }
  .usage {
    margin: -6.6vw auto;
    padding: 15vw 0;
    border-radius: 6.6vw;
  }
  .usage .flex {
    flex-wrap: wrap;
    margin: 0;
  }
  .check-list li {
    padding-left: 10vw;
    margin: 0 0 8vw;
  }
  .check-list li:last-child {
    margin: 0 0 12vw;
  }
  .check-list li::before {
    top: 2vw;
    width: 5.6vw;
    height: 1.5vw;
    border-left: 0.7vw solid var(--coral);
    border-bottom: 0.7vw solid var(--coral);
  }
  .check-list li h3 {
    margin: 0 0 2.5vw;
  }
  .check-list li p {
    max-width: 100%;
  }
  .flow-list li {
    margin: 0 0 4vw;
  }
  .flow-list li:last-child {
    margin: 0;
  }
  .flow-list li p {
    margin: 0 0 2vw;
  }
  .supervision {
    padding: 18vw 0;
    background-position: center bottom -120vw;
    background-size: 500vw;
  }
  .profile {
    flex-wrap: wrap;
    gap: 6vw;
    margin: 9vw auto;
    max-width: 100%;
    text-align: center;
    justify-content: center;
  }
  .profile .pict {
    height: auto;
    width: 250px;
    flex: none;
    max-width: 64vw;
    margin: auto;
  }
  .profile .ttl {
    margin-bottom: 3.2vw;
  }
  .profile .role {
    margin-bottom: 2vw;
  }
  .profile h3 {
    font-size: 5.6vw;
    margin: 0 0 1vw;
  }
  .profile .ruby {
    font-size: 2.5vw;
    margin: 0 0 4vw 0;
  }
  .profile .detail {
    text-align: left;
    max-width: 64vw;
    margin: auto;
  }
  .book {
    gap: 7.6vw;
    flex-wrap: wrap;
    padding: 12vw 7.6vw;
    border-radius: 7vw;
    max-width: 100%;
    margin: auto;
    justify-content: center;
  }
  .book .ttl {
    margin: 0 0 2vw;
    font-size: 3.8vw;
  }
  .book .cap {
    font-size: 3.3vw;
    margin: 0 0 3vw;
  }
  .book .cap br {
    display: none;
  }
  .case {
    padding: 5vw 0 20vw;
    text-align: center;
  }
  .case-grid {
    gap: 10vw;
    margin-top: 14vw;
  }
  .case-card {
    border-radius: 7vw;
    padding: 9vw 6vw;
  }
  .case-card .icon {
    top: -7.6vw;
    right: 5.8vw;
    max-width: 20vw;
  }
  .case-card .vol {
    font-size: 5.1vw;
    margin: 0 0 4.2vw;
  }
  .case-card h3 {
    font-size: 7vw;
    margin: 0 0 4.2vw;
  }
  .case-card .info {
    margin: 1vw 0 4vw;
    padding: 5vw 0 0;
    gap: 4vw;
  }
  .case-card .info .pict {
    width: 20vw;
  }
  .case-card .info .text .name {
    margin: 0 0 1vw;
  }
  .case-card .info .text .year {
    font-size: 3.3vw;
  }
  .cta-panel {
    margin-top: 9.4vw;
    padding: 12vw 7vw;
    border-radius: 7vw;
  }
  .cta-panel .visual {
    position: relative;
    right: 0;
    bottom: 0;
  }
  .cta-panel h2 {
    font-size: 6.6vw;
    margin: 0 0 8vw;
  }
  .cta-panel .button {
    width: 64vw;
    height: 14vw;
    font-size: 4.1vw;
    margin: 0 0 10vw;
  }
  .plans {
    margin: -6.6vw auto;
    padding: 9.4vw 0;
    border-radius: 6.6vw;
  }
  .plans .intro {
    margin: 0 0 6vw;
  }
  .scroll-wrap {
    overflow-x: scroll;
    margin: 0 -24px 0 0;
  }
  .plan-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6vw;
    margin: 0 4vw 4vw 0;
    width: 230vw;
    padding: 4vw 0 0;
  }
  .plan-grid p {
    margin: 0;
  }
  .plan-grid article {
    min-height: 165vw;
    padding: 9vw 5vw;
    border-radius: 7vw;
  }
  .plan-grid .vol {
    font-size: 3vw;
    margin: 0 0 2vw;
  }
  .plan-grid h3 {
    font-size: 4.8vw;
    margin: 0 0 3vw;
    min-height: 17vw;
  }
  .plan-grid .cap {
    margin: 0 0 3vw;
    padding: 0 0 2vw;
    min-height: 28vw;
  }
  .plan-grid .ttl {
    font-size: 3vw;
    margin: 0 0 2vw;
  }
  .plan-grid ul li {
    font-size: 2.5vw;
    padding: 0 0 0 3.75vw;
    margin: 0 0 2vw;
    background-size: 2.5vw;
  }
  .plan-grid ul li:last-child {
    margin: 0;
  }
  .plan-grid ul li br {
    display: none;
  }
  .plan-grid .plus {
    font-size: 2.5vw;
  }
  .plan-grid .bottom .free {
    margin: 0 0 8vw;
  }
  .plan-grid a {
    max-width: 100%;
    min-height: 14vw;
  }
  .plan-grid .balloon {
    top: -3.7vw;
    min-width: 30vw;
    height: 7.4vw;
  }
  .process {
    padding: 16vw 0 20vw;
  }
  .step-list {
    margin: 2.7vw 0 0;
  }
  .step-list dl {
    padding: 6.6vw;
    gap: 5.8vw;
    flex-wrap: wrap;
    margin: 0 0 5vw;
    ;
  }
  .step-list dl:last-child {
    margin: 0;
  }
  .step-list dl dt {
    align-items: flex-start;
    min-width: 100%;
    min-height: 12vw;
    border-right: none;
    border-bottom: 1px solid var(--line);
    gap: 6.4vw;
  }
  .step-list dl dt span {
    font-size: 5vw;
  }
  .step-list dl dt h3 {
    font-size: 5vw
  }
  .step-list dl dd, .step-list dl dd p {
    margin: 0;
  }
  .contact {
    margin: -7vw auto;
    padding: 12vw 0 20vw;
    border-radius: 7vw;
  }
  .contact .intro {
    margin: 7.6vw 0 5.8vw;
  }
  .contact .label-sub {
    min-height: 9.6vw;
    padding: 0;
    width: 100%;
  }
	
	.cf7-slot {
    padding:5vw;
	margin: 14vw -24px 0;
    border-radius: 0;
    background: #fff;
    color: #000;
}
	
	
  .footer {
    padding: 24vw 0 5.6vw;
    background-position: center bottom -110vw;
    background-size: 500vw;
  }
  .footer .hero-visual {
    position: relative;
    top: 0;
    right: 0;
  }
  .footer .catch {
    margin: 0 0 1vw;
  }
  .footer p br {
    display: none;
  }
  .footer h1 {
    margin: 0 0 3vw;
  }
  .footer .link_list {
    margin: 12vw 0 0;
    gap: 9vw;
  }
  .footer .link_list dl dt {
    margin: 0 0 1.8vw;
  }
  .footer .link_list dl dd {
    margin: 0 0 1.8vw 3vw;
  }
  .footer .link_list dl dd:last-child {
    margin: 0 0 0 3vw;
  }
  .footer small {
    margin: 10vw 0 0;
    font-size: 3vw;
  }
}
/*contact form7 */
.contact-form-box p {
	margin: 0;
}
.contact-form-title {
  margin: 0 0 44px;
  text-align: center;
  font-size: 28px;
  font-weight: 500;
}
.form-item {
  margin-bottom: 36px;
  text-align: left;
}
.form-item label {
  display: block;
  margin-bottom: 10px;
  font-weight: 700;
}
.required {
  color: #FD000C;
}
.form-item input, .form-item textarea {
  width: 100%;
  padding: 18px 22px;
  border: 1px solid #D8D8D8;
  border-radius: 7px;
  font-size: 16px;
	line-height: 1.5;
	font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
.form-item textarea {
  height: 310px;
  resize: vertical;
}
.form-item input::placeholder, .form-item textarea::placeholder {
  color: #D8D8D8;
}
.privacy-box {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 36px;
  padding: 22px;
  background: #FFFCEF;
  border: 1px solid #D8D8D8;
  border-radius: 7px;
  font-size: 15px;
}
.privacy-box a {
  color: #ff6b76;
  text-decoration: underline;
}
.privacy-box .wpcf7-list-item {
  margin: 0;
}
.privacy-box input[type="checkbox"] {
  width: 28px;
  height: 28px;
}
.submit-wrap {
  margin-top: 42px;
  text-align: center;
}
.submit-wrap input[type="submit"] {
  min-width: 172px;
  padding: 20px 40px;
  border: none;
  border-radius: 100vh;
  font-weight: 700;
  background: #ccc;
  color: #fff;
  cursor: not-allowed;
  transition: .3s;
}

/* チェック時 */
.contact-form-box:has(.wpcf7-acceptance input:checked)
.submit-wrap input[type="submit"] {
  background: var(--coral);
  cursor: pointer;
}

.wpcf7-spinner {
    position: absolute;
    right: 0;
}
@media (max-width: 1024px) {
  .contact-form-box {
    padding: 10vw 0;
    border-radius: 24px;
  }
  .privacy-box {
    align-items: flex-start;
    font-size: 14px;
  }
	
.contact-form-title {
  margin: 0 0 7vw;
  font-size: 5vw;
}
.form-item {
  margin-bottom: 5vw;
}
.form-item label {
  margin-bottom: 2vw;
}
.form-item input, .form-item textarea {
  padding: 3vw;
  font-size: 4.1vw;
}
.form-item textarea {
  height: 80vw;
}
.privacy-box {
  display: block;
  margin-top: 9vw;
  padding: 5.6vw;
 font-size: 4.1vw;
}
.privacy-box .wpcf7-form-control-wrap {
		display: block;
	}
.privacy-box input[type="checkbox"] {
  width: 7vw;
  height: 7vw;
}
.submit-wrap {
  margin-top: 7.6vw;
}
.submit-wrap input[type="submit"] {
  min-width: 44vw;
	font-size: 4.1vw;
}
.wpcf7-spinner {
    position: absolute !important;
    right: 0;
}
}


/*low-page*/

.low-section {
  padding: 110px 20px 170px;
}

.low-inner {
  max-width: 1100px;
  margin: 0 auto;
	position: relative;
}

.low-title {
  margin: 0 0 70px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.low-content {
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
  color: #222;
}

.low-content p {
  margin: 0 0 25px;
}

.low-content h2 {
  margin:30px 0 10px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}

.low-content ol {
  margin: -28px 0 36px;
  padding-left: 0;
  list-style: none;

  counter-reset: number;
}

.low-content ol li {
  position: relative;
  padding-left: 2em;
  line-height: 2;

  counter-increment: number;
}

.low-content ol li::before {
  content: "(" counter(number) ")";
  position: absolute;
  left: 0;
  top: 0;
}

.top-btn-wrap {
  margin-top: 80px;
  text-align: center;
}

.top-back-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  padding: 18px 34px;
  border: 1px solid #ff7f89;
  border-radius: 100vh;
  color: #ff7f89;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.3s;
}

.top-back-btn:hover {
  background: #ff7f89;
  color: #fff;
}

.complete-ring01 {
  border: 60px solid var(--pink);
  width: 432px;
  height: 432px;
  right: -270px;
  top: -55px;
}
.complete-ring02 {
  border: 60px solid var(--coral);
  width: 295px;
  height: 295px;
  left: -295px;
  top: 180px;
}

@media screen and (max-width: 1024px) {
  .low-section {
    padding: 12vw 5vw 14vw;
  }

  .low-title {
    margin-bottom: 10vw;
    font-size:5vw;
  }

  .low-content {
    font-size: 3.7vw;
  }

  .low-content h2 {
    margin-top: 5vw;
    font-size: 4.2vw;
	  margin: 8vw 0 3vw;
  }

  .top-btn-wrap {
    margin-top: 10vw;
  }
	.complete-ring01,
.complete-ring02 {
	display: none;
}
}