@charset "UTF-8";
/* ローカルフォント指定 */
@font-face {
  font-family: "Regular";
  src: url(../font/NotoSansJP-Regular.woff2) format("woff2"), url(../font/NotoSansJP-Regular.ttf) format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Medium";
  src: url(../font/NotoSansJP-Medium.woff2) format("woff2"), url(../font/NotoSansJP-Medium.ttf) format("truetype");
  font-display: swap;
}
@font-face {
  font-family: "Bold";
  src: url(../font/NotoSansJP-Bold.woff2) format("woff2"), url(../font/NotoSansJP-Bold.ttf) format("truetype");
  font-display: swap;
}
@media screen and (min-width: 321px) {
  .ssp {
    display: none;
  }
}
@media screen and (min-width: 541px) {
  .sp {
    display: none;
  }
}
@media screen and (max-width: 540px) {
  .pc {
    display: none;
  }
}
@media screen and (min-width: 769px) {
  .tb {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .nb {
    display: none;
  }
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

:root {
  --base-paragraph:#565656;
  --base-white:#ffffff;
  /* --blue-main:#01ADE8;
  --blue-middle:#D6F6FF;
  --blue-light:#F0FCFF; */
  --blue-main: #F0782A;
  --blue-middle: #FFE7DA;
  --blue-light: #FFF8F3;
  --pink-main:#EE6CA7;
  --monogatari-yamabuki:#F99900;
  --monogatari-orange:#E54600;
  /* --gradation-main:linear-gradient(to right,#01ADE8,#BB7CEC,#FF668F);
  --gradation-blue:linear-gradient(to bottom,#B5EDEB,#01ADE8); */
  --gradation-main: linear-gradient(to right, #EE8A00, #F5705A, #F0669A);
  --gradation-blue: linear-gradient(to bottom, #F9B45C, #F0782A);
  --gradation-pink:linear-gradient(to bottom,#FCB39D,#FF668F);
  --font-din: "DIN Alternate", "DIN 2014", "Barlow Semi Condensed", sans-serif;
  /* --step1: #11a9e8;
  --step2: #9e83ec;
  --step3: #cc76d6;
  --step4: #f96897; */
  --step1: #EE8A00;
  --step2: #F27A3A;
  --step3: #F46E6E;
  --step4: #F0669A;
  /* IBJ onlineそのものを指す箇所（比較カード・プランカード）だけに残すIBJ側の配色 */
  --ibj-blue: #01ADE8;
  --ibj-blue-light: #F0FCFF;
  --ibj-gradation: linear-gradient(to right, #01ADE8, #BB7CEC, #FF668F);
}

body {
  color: var(--base-paragraph);
  font-family: "Regular", sans-serif;
  background-color: var(--blue-light);
}

img {
  display: block;
  width: 100%;
}

ul li {
  list-style: none;
}
ul.dot-list li {
  position: relative;
  padding-left: 22px;
}
ul.dot-list li::before {
  content: "";
  position: absolute;
  left: 8px;
  top: calc(0.875em - 2px);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
}

a {
  display: block;
  text-decoration: none;
}
a.cta-button {
  background: var(--base-white);
  border-radius: 100px;
  padding: 30px 0;
  text-align: center;
  color: var(--pink-main);
  font-family: "Bold", sans-serif;
  position: relative;
  border: 3px solid var(--pink-main);
  box-shadow: 0px 5px 0px #ac4800;
  font-size: 30px;
  transition: 0.4s;
}
@media screen and (max-width:540px) {
  a.cta-button {
    padding: 20px 0;
    font-size: 23px;
    box-shadow: 0px 6px 0px #ac4800;
  }
}
@media screen and (max-width:320px) {
  a.cta-button {
    font-size: 18px;
  }
}
a.cta-button::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 18px solid var(--pink-main);
  border-right: 0;
  top: 50%;
  transform: translateY(-50%);
  right: 30px;
}
@media screen and (max-width:540px) {
  a.cta-button::before {
    border-top: 7.5px solid transparent;
    border-bottom: 7.5px solid transparent;
    border-left: 13px solid var(--pink-main);
    right: 25px;
  }
}
a.cta-button:hover {
  transform: scale(1.02);
  opacity: 0.8;
}

h2.sec-title {
  color: var(--blue-main);
  font-size: 35px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  text-align: center;
}
@media screen and (max-width:540px) {
  h2.sec-title {
    font-size: 30px;
  }
}

p {
  font-size: 18px;
}
@media screen and (max-width:540px) {
  p {
    font-size: 16px;
  }
}
@media screen and (max-width:320px) {
  p {
    font-size: 16px;
  }
}
p b {
  font-family: "Bold", sans-serif;
}

section {
  padding: 100px 0;
}
@media screen and (max-width:375px) {
  section {
    padding: 70px;
  }
}
@media screen and (max-width:540px) {
  section {
    padding: 70px 0;
  }
}

.container {
  max-width: 960px;
  width: 90%;
  margin: 0 auto;
}
@media screen and (max-width:540px) {
  .container {
    width: 100%;
    padding: 0 20px;
  }
}

.sub-container {
  max-width: 700px;
  width: 90%;
  margin: 0 auto;
}
@media screen and (max-width:540px) {
  .sub-container {
    width: 100%;
    padding: 0 20px;
  }
}

.grad-border {
  border: solid transparent;
  background: linear-gradient(#fff, #fff) padding-box, var(--gradation-main) border-box;
}

header {
  position: fixed;
  width: 100%;
  background: var(--base-white);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.05);
  z-index: 999;
}
@media screen and (max-width:540px) {
  header {
    padding: 15px;
  }
}
header img {
  width: 253px;
}
@media screen and (max-width:540px) {
  header img {
    width: 137px;
  }
}
header a {
  background: var(--gradation-main);
  width: 235px;
  color: var(--base-white);
  text-align: center;
  padding: 15px 0;
  border-radius: 10px;
  position: relative;
  font-size: 18px;
  font-family: "Bold", sans-serif;
  transition: 0.4s;
}
@media screen and (max-width:540px) {
  header a {
    width: 149px;
    padding: 10px 0;
    border-radius: 6px;
    font-size: 13px;
  }
}
header a::before {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 8px solid #ffffff;
  border-right: 0;
  opacity: 0.5;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}
@media screen and (max-width:540px) {
  header a::before {
    border-top: 6.5px solid transparent;
    border-bottom: 6.5px solid transparent;
    border-left: 6.5px solid #ffffff;
    right: 8px;
  }
}
header a:hover {
  transform: scale(1.02);
  opacity: 0.8;
}

.kv {
  padding: 150px 0 0;
}
@media screen and (max-width:540px) {
  .kv {
    padding: 106px 0 0;
  }
}
.kv .top {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
}
.kv .top img.main-copy {
  width: 700px;
  margin-bottom: 80px;
  padding-left: 135px;
}
@media screen and (max-width:1024px) {
  .kv .top img.main-copy {
    width: 570px;
    padding-left: 50px;
  }
}
@media screen and (max-width:768px) {
  .kv .top img.main-copy {
    width: 506px;
    padding-left: 20px;
  }
}
.kv .top img.main-copy--sp {
  max-width: 350px;
  width: 90%;
  margin: 0 auto 20px;
}
.kv .top img.kv-visual {
  width: 100%;
  margin-bottom: -6px;
}
.kv .middle {
  background: var(--base-white);
  padding: 25px 0;
  position: relative;
}
@media screen and (max-width:540px) {
  .kv .middle {
    padding: 0;
  }
}
.kv .middle .contents {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0px;
  margin-top: -50px;
  padding-left: 390px;
  position: relative;
}
@media screen and (max-width:768px) {
  .kv .middle .contents {
    padding-left: 280px;
  }
}
@media screen and (max-width:540px) {
  .kv .middle .contents {
    align-items: center;
    gap: 8px;
    height: 123px;
    margin-top: 0;
    padding: 0 20px 0 149px;
  }
}
@media screen and (max-width:320px) {
  .kv .middle .contents {
    padding-right: 0px;
    padding-left: 120px;
  }
}
.kv .middle .contents::before {
  position: absolute;
  content: "";
  width: 213px;
  height: 213px;
  background: url(../img/campaign-medal.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.15);
  top: 62%;
  left: 145px;
  transform: translateY(-50%);
}
@media screen and (max-width:768px) {
  .kv .middle .contents::before {
    left: 40px;
  }
}
@media screen and (max-width:540px) {
  .kv .middle .contents::before {
    width: 121px;
    height: 121px;
    top: 50%;
    left: 20px;
  }
}
@media screen and (max-width:320px) {
  .kv .middle .contents::before {
    width: 100px;
    height: 100px;
    left: 10px;
  }
}
.kv .middle .contents::after {
  position: absolute;
  content: "";
  width: 585px;
  height: 534px;
  background: url(../img/kv-pc.webp);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  bottom: -39px;
  right: 90px;
}
@media screen and (max-width:1024px) {
  .kv .middle .contents::after {
    width: 405px;
    height: 353px;
    bottom: 165px;
    right: 30px;
  }
}
@media screen and (max-width:768px) {
  .kv .middle .contents::after {
    width: 260px;
    height: 226px;
    bottom: 165px;
    right: 6px;
  }
}
@media screen and (max-width:540px) {
  .kv .middle .contents::after {
    display: none;
  }
}
@media screen and (max-width:540px) {
  .kv .middle .contents .content {
    order: 2;
  }
}
.kv .middle .contents .content p {
  font-size: 14px;
}
@media screen and (max-width:540px) {
  .kv .middle .contents .content p {
    font-size: 11px;
    line-height: 1.3;
  }
}
@media screen and (max-width:320px) {
  .kv .middle .contents .content p {
    font-size: 9px;
  }
}
.kv .middle .contents .content p.big {
  font-family: "Bold", sans-serif;
  font-size: 38px;
  margin-bottom: 10px;
}
@media screen and (max-width:540px) {
  .kv .middle .contents .content p.big {
    font-size: 21.5px;
    line-height: 1.3;
    margin-bottom: 5px;
    margin-left: -30px;
    color: var(--blue-main);
  }
}
@media screen and (max-width:375px) {
  .kv .middle .contents .content p.big {
    font-size: 19.5px;
  }
}
@media screen and (max-width:320px) {
  .kv .middle .contents .content p.big {
    font-size: 18px;
  }
}
.kv .middle .contents img.free {
  width: 165px;
  z-index: 2;
}
@media screen and (max-width:540px) {
  .kv .middle .contents img.free {
    order: 1;
    width: 96px;
  }
}
@media screen and (max-width:320px) {
  .kv .middle .contents img.free {
    width: 85px;
  }
}
.kv .bottom {
  background: var(--gradation-blue);
  padding: 50px 0;
}
@media screen and (max-width:540px) {
  .kv .bottom {
    padding: 40px 0 24px;
  }
}
.kv .bottom p.ano {
  color: var(--base-white);
  font-size: 12px;
  margin-top: 30px;
}
@media screen and (max-width:540px) {
  .kv .bottom p.ano {
    font-size: 12px;
    line-height: 1.5;
  }
}

/* ===== Hero ===== */
.hero {
  position: relative;
  padding-bottom: 0;
}
@media screen and (max-width:540px) {
  .hero {
    padding: 55px 0 80px;
    overflow: hidden;
  }
}
.hero::before {
  position: absolute;
  content: "";
  width: 650px;
  height: 650px;
  border-radius: 100%;
  background: var(--base-white);
  opacity: 0.5;
  top: -30px;
  left: 200px;
  z-index: -1;
}
@media screen and (max-width:768px) {
  .hero::before {
    transform: translateX(-50%);
    left: 50%;
  }
}
@media screen and (max-width:540px) {
  .hero::before {
    width: 532px;
    height: 531px;
    top: 126px;
  }
}
.hero::after {
  position: absolute;
  content: "";
  width: 600px;
  height: 600px;
  border-radius: 100%;
  background: var(--base-white);
  top: 0px;
  left: 230px;
  z-index: -1;
}
@media screen and (max-width:768px) {
  .hero::after {
    transform: translateX(-50%);
    left: 50%;
  }
}
@media screen and (max-width:540px) {
  .hero::after {
    width: 491px;
    height: 490px;
    top: 147px;
  }
}
.hero .hero-contents {
  display: flex;
  align-items: flex-end;
  gap: 28px;
  position: relative;
}
@media screen and (max-width:768px) {
  .hero .hero-contents {
    flex-direction: column;
    align-items: center;
    gap: 26px;
  }
}
.hero .hero-contents .hero__text {
  width: 403px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (max-width:768px) {
  .hero .hero-contents .hero__text {
    text-align: center;
  }
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__text {
    order: 2;
    width: 100%;
    max-width: 350px;
    gap: 26px;
  }
}
.hero .hero-contents .hero__text .hero__title {
  font-size: 45px;
  font-family: "Bold", sans-serif;
  line-height: 1.5;
  white-space: nowrap;
  font-family: "Bold", sans-serif;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__text .hero__title {
    font-size: 30px;
  }
}
.hero .hero-contents .hero__text .hero__title span.blue {
  color: var(--blue-main);
}
.hero .hero-contents .hero__text .hero__title span.pink {
  color: var(--pink-main);
}
.hero .hero-contents .hero__text .hero__lead {
  font-size: 18px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__text .hero__lead {
    font-size: 16px;
  }
}
.hero .hero-contents .hero__text .hero__lead + .hero__lead {
  margin-top: 1.75em;
}
.hero .hero-contents .hero__visual {
  position: relative;
  width: 524px;
  height: 353px;
  flex-shrink: 0;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__visual {
    order: 1;
    width: 304px;
    height: 209px;
  }
}
.hero .hero-contents .hero__visual .person {
  position: absolute;
  width: 243px;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__visual .person {
    transform: scale(0.5808);
    transform-origin: top left;
  }
}
.hero .hero-contents .hero__visual .person .person__bg {
  position: absolute;
  left: 0;
  width: 243px;
  border: 6px solid var(--base-white);
}
.hero .hero-contents .hero__visual .person .person__photo {
  position: absolute;
  left: 0;
  top: 0;
  width: 243px;
  -o-object-fit: cover;
     object-fit: cover;
}
.hero .hero-contents .hero__visual .person.person--male {
  left: 0;
  top: 0;
  height: 283px;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__visual .person.person--male {
    left: 0;
    top: 0;
  }
}
.hero .hero-contents .hero__visual .person.person--male .person__bg {
  top: 40px;
  height: 243px;
  background: var(--gradation-blue);
  border-radius: 66.5px 66.5px 12px 66.5px;
}
.hero .hero-contents .hero__visual .person.person--male .person__photo {
  height: 283px;
}
.hero .hero-contents .hero__visual .person.person--female {
  left: 280px;
  top: 56px;
  height: 297px;
}
@media screen and (max-width:540px) {
  .hero .hero-contents .hero__visual .person.person--female {
    left: 163px;
    top: 37px;
  }
}
.hero .hero-contents .hero__visual .person.person--female .person__bg {
  top: 55px;
  height: 242px;
  background: var(--gradation-pink);
  border-radius: 12px 66.5px 66.5px 66.5px;
}
.hero .hero-contents .hero__visual .person.person--female .person__photo {
  height: 297px;
}

/* ===== Compare ===== */
.compare {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 31px;
}
@media screen and (max-width:540px) {
  .compare {
    padding-top: 20px;
  }
}
.compare .compare__heading {
  position: relative;
  width: 700px;
  height: 93px;
  margin: 0 auto 30px;
}
@media screen and (max-width:540px) {
  .compare .compare__heading {
    width: 100%;
    max-width: 350px;
    height: 132px;
    margin: 0 auto 5px;
  }
}
.compare .compare__heading h2 {
  position: absolute;
  left: 0;
  right: 0;
  top: 24px;
  text-align: center;
  font-family: "Bold", sans-serif;
  font-size: 30px;
  line-height: 1;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .compare .compare__heading h2 {
    top: 30px;
    font-size: 25px;
    line-height: 1.3;
    white-space: normal;
  }
}
.compare .compare__heading h2 .em {
  font-size: 45px;
  color: var(--blue-main);
}
@media screen and (max-width:540px) {
  .compare .compare__heading h2 .em {
    font-size: 35px;
  }
}
.compare .compare__heading .bracket {
  position: absolute;
  width: 133px;
  height: 65px;
}
@media screen and (max-width:540px) {
  .compare .compare__heading .bracket {
    width: 65px;
    height: 62px;
  }
}
.compare .compare__heading .bracket.bracket--tl {
  left: -1.5px;
  top: -1.5px;
}
.compare .compare__heading .bracket.bracket--br {
  right: -1.5px;
  bottom: -1.5px;
  transform: rotate(180deg);
}
.compare .compare__body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 20px;
}
@media screen and (max-width:540px) {
  .compare .compare__body {
    align-items: center;
    gap: 15px;
  }
}
.compare .compare__body .cards {
  width: 100%;
  display: flex;
  gap: 22px;
}
@media screen and (max-width:768px) {
  .compare .compare__body .cards {
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }
}
.compare .compare__body .cards .card {
  flex: 0 0 305px;
  height: 376px;
  background: var(--base-white);
  border: 1px solid var(--gray);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding-bottom: 31px;
  overflow: hidden;
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards .card {
    flex: none;
    width: 100%;
    max-width: 306px;
    height: auto;
    padding-bottom: 25px;
  }
}
.compare .compare__body .cards .card .card__head {
  width: 100%;
  height: 52px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #7E7E7E;
  color: var(--base-white);
  font-size: 20px;
  font-family: "Bold", sans-serif;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards .card .card__head {
    font-size: 18px;
  }
}
.compare .compare__body .cards .card .card__body {
  width: 268px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards .card .card__body {
    width: calc(100% - 38px);
  }
}
.compare .compare__body .cards .card .card__body .card__img {
  width: 100%;
  height: 138px;
  -o-object-fit: cover;
     object-fit: cover;
}
.compare .compare__body .cards .card .card__body .card__img--agency {
  -o-object-position: 30% 35%;
     object-position: 30% 35%;
}
.compare .compare__body .cards .card .card__body .card__logo {
  height: 138px;
  background: var(--ibj-blue-light);
  display: flex;
  align-items: center;
  justify-content: center;
}
.compare .compare__body .cards .card .card__body .card__logo svg {
  width: 240px;
  height: auto;
}
.compare .compare__body .cards .card .card__body .card__text {
  font-size: 16px;
  line-height: 1.5;
  text-align: justify;
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards .card .card__body .card__text {
    font-size: 14px;
  }
}
.compare .compare__body .cards .card.card--ibj {
  border-color: var(--ibj-blue);
}
.compare .compare__body .cards .card.card--ibj .card__head {
  background: var(--ibj-gradation);
}
.compare .compare__body .cards .card.card--ibj .card__body {
  width: 270px;
}
@media screen and (max-width:540px) {
  .compare .compare__body .cards .card.card--ibj .card__body {
    width: calc(100% - 36px);
  }
}
.compare .compare__body .cards .card.card--agency {
  border-color: var(--monogatari-yamabuki);
}
.compare .compare__body .cards .card.card--agency .card__head {
  background: var(--monogatari-yamabuki);
}
.compare .compare__body .compare__note {
  font-size: 14px;
  text-align: right;
}
@media screen and (max-width:540px) {
  .compare .compare__body .compare__note {
    width: 100%;
    font-size: 12px;
    line-height: 1.4;
    text-align: left;
  }
}

/* ===== One app ===== */
.oneapp {
  position: relative;
  padding: 50px 0;
}
@media screen and (max-width:768px) {
  .oneapp {
    overflow: hidden;
  }
}
@media screen and (max-width:540px) {
  .oneapp {
    padding: 140px 0 230px;
  }
}
.oneapp::before {
  position: absolute;
  content: "";
  width: 212px;
  height: 235px;
  background: url(../img/oneapp-blue.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  top: 50px;
  left: 180px;
  z-index: 2;
}
@media screen and (max-width:1024px) {
  .oneapp::before {
    left: 50px;
  }
}
@media screen and (max-width:768px) {
  .oneapp::before {
    width: 180px;
    height: 195px;
    top: 20px;
    left: 30px;
  }
}
@media screen and (max-width:540px) {
  .oneapp::before {
    width: 121px;
    height: 134px;
    top: 0;
    left: 20px;
  }
}
.oneapp::after {
  position: absolute;
  content: "";
  width: 212px;
  height: 235px;
  background: url(../img/oneapp-pink.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  bottom: 50px;
  right: 180px;
}
@media screen and (max-width:1024px) {
  .oneapp::after {
    right: 50px;
  }
}
@media screen and (max-width:768px) {
  .oneapp::after {
    width: 180px;
    height: 195px;
    bottom: 20px;
    right: 30px;
  }
}
@media screen and (max-width:540px) {
  .oneapp::after {
    width: 121px;
    height: 134px;
    bottom: 30px;
    right: 20px;
  }
}
.oneapp .oneapp__circle {
  position: relative;
  left: 50%;
  top: 0;
  width: 878px;
  height: 878px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transform: translateX(-50%);
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__circle {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}
.oneapp .oneapp__circle::before {
  content: "";
  position: absolute;
  inset: 23px;
  border-radius: 50%;
  background: var(--base-white);
}
.oneapp .oneapp__content {
  position: absolute;
  left: 50%;
  top: 165px;
  width: 557px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 19px;
  text-align: center;
  transform: translateX(-50%);
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    transform: none;
  }
}
.oneapp .oneapp__content .oneapp__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__head {
    gap: 7px;
  }
}
.oneapp .oneapp__content .oneapp__head .badge {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.oneapp .oneapp__content .oneapp__head .badge__label {
  width: 181px;
  height: 40px;
  margin-bottom: -5px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blue-main);
  border-radius: 24px;
  color: var(--base-white);
  font-size: 18px;
  font-family: "Bold", sans-serif;
  line-height: 1.5;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__head .badge__label {
    height: 43px;
    font-size: 16px;
  }
}
.oneapp .oneapp__content .oneapp__head .badge__tail {
  width: 16px;
  height: 10px;
}
.oneapp .oneapp__content .oneapp__head .oneapp__title {
  color: var(--blue-main);
  font-size: 45px;
  font-family: "Bold", sans-serif;
  line-height: 1.5;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__head .oneapp__title {
    font-size: 30px;
    line-height: 1.3;
    white-space: normal;
  }
}
.oneapp .oneapp__content .oneapp__body {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body {
    gap: 30px;
  }
}
.oneapp .oneapp__content .oneapp__body .oneapp__text {
  font-size: 18px;
  line-height: 1.75;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .oneapp__text {
    font-size: 16px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats {
  width: 484px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats {
    width: 100%;
    gap: 19px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row {
  width: 100%;
  display: flex;
  gap: 16px;
  justify-content: center;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row {
    gap: 12px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat {
  flex: 0 0 234px;
  height: 151px;
  border-radius: 16px;
  padding-top: 18px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat {
    flex: 1 1 0;
    height: 109px;
    border-radius: 11.5px;
    padding-top: 13px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat {
  color: var(--base-white);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat.stat--blue {
  background: linear-gradient(to right, #01ade8, #b5edeb);
  gap: 15px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat.stat--blue {
    gap: 11px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat.stat--pink {
  background: var(--gradation-main);
  gap: 12px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat.stat--pink {
    gap: 9px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__label {
  font-size: 25px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__label {
    font-size: 18px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value {
  display: flex;
  align-items: flex-end;
  white-space: nowrap;
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__num {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 60px;
  line-height: 1;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__num {
    font-size: 43px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__num--tight {
  letter-spacing: -3px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__num--tight {
    letter-spacing: -2px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__unit {
  font-size: 25px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__row .stat .stat__value span.stat__unit {
    font-size: 18px;
  }
}
.oneapp .oneapp__content .oneapp__body .stats .stats__note {
  color: var(--note);
  font-size: 14px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__body .stats .stats__note {
    width: 100%;
    font-size: 12px;
    line-height: 1.4;
    text-align: left;
  }
}
.oneapp .oneapp__content .oneapp__foot {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 17px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__foot {
    width: 329px;
    max-width: 100%;
    margin: 0 auto;
    gap: 20px;
  }
}
.oneapp .oneapp__content .oneapp__foot .marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__foot .marker {
    width: 100%;
  }
}
.oneapp .oneapp__content .oneapp__foot .marker span {
  display: block;
  padding: 2px 5px 2px 10px;
  background: var(--blue-main);
  color: var(--base-white);
  font-size: 18px;
  font-family: "Bold", sans-serif;
  line-height: 1.75;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__foot .marker span {
    font-size: 16px;
  }
}
.oneapp .oneapp__content .oneapp__foot .marker span:first-child {
  width: 369px;
}
@media screen and (max-width:540px) {
  .oneapp .oneapp__content .oneapp__foot .marker span:first-child {
    width: 100%;
  }
}

.merit {
  position: relative;
  background: var(--gradation-blue);
  padding: 18px;
}
@media screen and (max-width:540px) {
  .merit {
    padding: 10px;
  }
}
.merit .merit__inner {
  background: rgba(255, 255, 255, 0.8);
  border: 3px solid var(--base-white);
  border-radius: 21px;
  max-width: 1404px;
  margin: 0 auto;
  padding: 76px 20px 78px;
}
@media screen and (max-width:540px) {
  .merit .merit__inner {
    padding: 70px 24px;
  }
}
.merit .merit__inner .merit__title {
  font-size: 40px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  text-align: center;
  color: var(--base-paragraph);
}
@media screen and (max-width:540px) {
  .merit .merit__inner .merit__title {
    font-size: 30px;
  }
}
.merit .merit__inner .merit__title span {
  color: var(--blue-main);
}
.merit .merit__inner ul.merit__list {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin: 62px auto 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width:768px) {
  .merit .merit__inner ul.merit__list {
    flex-direction: column;
    align-items: center;
    gap: 25px;
    margin-top: 50px;
  }
}
.merit .merit__inner ul.merit__list li.merit-card {
  width: 300px;
  height: 399px;
  border-width: 2px;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card {
    width: 100%;
    max-width: 322px;
    height: auto;
    padding-bottom: 20px;
  }
}
.merit .merit__inner ul.merit__list li.merit-card .merit-card__img {
  width: 296px;
  height: 149px;
  margin-bottom: -15px;
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card .merit-card__img {
    width: 100%;
    height: 160px;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
.merit .merit__inner ul.merit__list li.merit-card .merit-card__body {
  position: relative;
  width: 267px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card .merit-card__body {
    width: calc(100% - 36px);
    gap: 12px;
  }
}
.merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__labels {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7.876px;
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__labels {
    gap: 4px;
  }
}
.merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__labels .label {
  display: inline-flex;
  align-items: center;
  height: 39.562px;
  padding: 0 8.991px;
  background: var(--blue-main);
  color: var(--base-white);
  font-size: 23px;
  font-family: "Bold", sans-serif;
  line-height: 1.4;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__labels .label {
    height: auto;
    padding: 4.5px 9px;
    font-size: 20px;
  }
}
.merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__text {
  font-size: 18px;
  line-height: 1.75;
  color: var(--base-paragraph);
}
@media screen and (max-width:540px) {
  .merit .merit__inner ul.merit__list li.merit-card .merit-card__body .merit-card__text {
    font-size: 16px;
  }
}

.flow {
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
  padding: 119px 20px 85px;
}
@media screen and (max-width:540px) {
  .flow {
    padding: 80px 20px 60px;
  }
}
.flow img.flow__deco {
  position: absolute;
  left: calc(50% - 374px);
  top: 72px;
  width: 108px;
}
@media screen and (max-width:540px) {
  .flow img.flow__deco {
    left: 8px;
    top: 35px;
    width: 55px;
    height: 60px;
  }
}
.flow img.flow__phone {
  position: absolute;
  left: calc(50% + 231px);
  top: 82px;
  width: 203px;
  height: 269px;
  z-index: -1;
}
@media screen and (max-width:768px) {
  .flow img.flow__phone {
    display: none;
  }
}
.flow .flow__head {
  position: relative;
  z-index: 1;
  width: 453px;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
@media screen and (max-width:540px) {
  .flow .flow__head {
    width: 243px;
    gap: 12px;
  }
}
.flow .flow__head .flow__title {
  font-size: 35px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  text-align: center;
  color: var(--base-paragraph);
}
@media screen and (max-width:540px) {
  .flow .flow__head .flow__title {
    font-size: 25px;
  }
}
.flow .flow__phases {
  display: flex;
  flex-direction: column;
  gap: 38px;
  width: 960px;
  max-width: 100%;
  margin: 39px auto 0;
}
@media screen and (max-width:540px) {
  .flow .flow__phases {
    gap: 40px;
    margin-top: 30px;
  }
}
.flow .flow__phases {
  /* フェーズ */
}
.flow .flow__phases .phase {
  position: relative;
  padding-top: 50px;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase {
    padding-top: 56px;
  }
}
.flow .flow__phases .phase .phase__header {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 700px;
  height: 120px;
  z-index: 1;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header {
    width: 100%;
    height: 101px;
  }
}
.flow .flow__phases .phase .phase__header .phase__bar {
  position: absolute;
  left: 52px;
  top: 14px;
  width: 648px;
  height: 92px;
  display: flex;
  align-items: center;
  padding-left: 90px;
  background: var(--base-white);
  border-radius: 9px;
  filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.1));
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header .phase__bar {
    left: 43px;
    top: 8px;
    width: calc(100% - 43px);
    padding: 10px;
    padding-left: 78px;
  }
}
.flow .flow__phases .phase .phase__header .phase__bar .phase__title {
  font-size: 30px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  white-space: nowrap;
  color: var(--base-paragraph);
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase .phase__header .phase__bar .phase__title {
    font-size: 20px;
    line-height: 1.5;
    white-space: normal;
  }
}
@media screen and (max-width:375px) {
  .flow .flow__phases .phase .phase__header .phase__bar .phase__title {
    font-size: 18px;
  }
}
.flow .flow__phases .phase .phase__header .phase__badge {
  position: absolute;
  left: 0;
  top: 0;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 5px solid var(--base-white);
  background: var(--gradation-main);
  filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.25));
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--base-white);
  font-size: 14px;
  font-family: "Bold", sans-serif;
  line-height: 1;
  white-space: nowrap;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header .phase__badge {
    width: 101px;
    height: 101px;
    border: 2px solid var(--base-white);
    font-size: 12px;
  }
}
.flow .flow__phases .phase .phase__header .phase__badge img {
  flex: none;
}
.flow .flow__phases .phase .phase__header .phase__badge img.badge-icon1 {
  width: 35px;
  height: 56px;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header .phase__badge img.badge-icon1 {
    width: 29px;
    height: 46px;
  }
}
.flow .flow__phases .phase .phase__header .phase__badge img.badge-icon2 {
  width: 52px;
  height: 51px;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header .phase__badge img.badge-icon2 {
    width: 44px;
    height: 43px;
  }
}
.flow .flow__phases .phase .phase__header .phase__badge img.badge-icon3 {
  width: 53px;
  height: 53px;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__header .phase__badge img.badge-icon3 {
    width: 48px;
    height: 48px;
  }
}
.flow .flow__phases .phase .phase__box {
  position: relative;
  background: rgba(255, 255, 255, 0.8);
  border: 4px solid var(--base-white);
  border-radius: 9px;
  min-height: 468px;
  padding: 90px 20px 20px;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__box {
    min-height: 0;
    padding: 72px 20px 50px;
  }
}
.flow .flow__phases .phase .phase__box .steps {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__box .steps {
    flex-direction: column;
    gap: 7px;
    width: 100%;
  }
}
.flow .flow__phases .phase .phase__box .steps .step {
  flex: none;
  height: 324px;
  border-width: 1px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__box .steps .step {
    width: 100%;
    height: auto;
    padding: 25px 20px;
    gap: 20px;
  }
}
.flow .flow__phases .phase .phase__box .steps .step .step__title {
  font-size: 20px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  text-align: center;
  color: var(--base-paragraph);
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__box .steps .step .step__title {
    font-size: 18px;
  }
}
.flow .flow__phases .phase .phase__box .steps .step .step__text {
  font-size: 15px;
  line-height: 1.75;
  color: var(--base-paragraph);
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase .phase__box .steps .step .step__text {
    width: 100% !important;
    font-size: 14px;
  }
}
.flow .flow__phases .phase .phase__box .steps .step .step__text.step__text--note {
  font-size: 12px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase .phase__box .steps .step .step__text.step__text--note {
    font-size: 12px;
    line-height: 1.5;
  }
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase .phase__box .steps .step .step__img {
    width: 100%;
    max-width: 270px;
    height: 122px;
    -o-object-fit: contain;
       object-fit: contain;
  }
}
.flow .flow__phases .phase .phase__box .steps .arrow {
  flex: none;
  width: 23px;
  height: 23px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width:768px) {
  .flow .flow__phases .phase .phase__box .steps .arrow {
    transform: rotate(90deg);
  }
}
.flow .flow__phases .phase .phase__box .steps .arrow::before {
  content: "";
  width: 17.25px;
  height: 19.9px;
  background: var(--blue-main);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.flow .flow__phases .phase.phase--1 .phase__header .phase__bar {
  padding-left: 87px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__header .phase__bar {
    padding-left: 78px;
  }
}
.flow .flow__phases .phase.phase--1 .phase__header .phase__badge {
  padding-top: 15px;
  gap: 9px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__header .phase__badge {
    padding: 16px 23px 15px;
    gap: 8px;
  }
}
.flow .flow__phases .phase.phase--1 .phase__box .steps {
  gap: 2px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__box .steps {
    gap: 7px;
  }
}
.flow .flow__phases .phase.phase--1 .phase__box .steps .step {
  width: 264px;
  padding-top: 20px;
  gap: 18px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__box .steps .step {
    width: 100%;
    padding: 25px 20px;
    gap: 20px;
  }
}
.flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__img {
  width: 224px;
  height: 122px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__img {
    width: 100%;
    max-width: 270px;
  }
}
.flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__text {
  width: 226px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__text {
    width: 100% !important;
  }
}
.flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__text.step__text--note {
  width: 218px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--1 .phase__box .steps .step .step__text.step__text--note {
    width: 100% !important;
  }
}
.flow .flow__phases .phase.phase--2 .phase__header .phase__badge {
  padding-top: 18px;
  gap: 11px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--2 .phase__header .phase__badge {
    padding: 18px 23px 17px;
    gap: 10px;
  }
}
.flow .flow__phases .phase.phase--2 .phase__box .steps {
  gap: 5px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--2 .phase__box .steps {
    gap: 7px;
  }
}
.flow .flow__phases .phase.phase--2 .phase__box .steps .step {
  width: 334px;
  padding-top: 29px;
  gap: 19px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--2 .phase__box .steps .step {
    width: 100%;
    padding: 25px 20px;
    gap: 20px;
  }
}
.flow .flow__phases .phase.phase--2 .phase__box .steps .step .step__img {
  width: 290px;
  height: 135px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--2 .phase__box .steps .step .step__img {
    width: 100%;
    max-width: 270px;
    height: 122px;
  }
}
.flow .flow__phases .phase.phase--2 .phase__box .steps .step .step__text {
  width: 290px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--2 .phase__box .steps .step .step__text {
    width: 100% !important;
  }
}
.flow .flow__phases .phase.phase--3 .phase__header .phase__badge {
  padding-top: 17px;
  gap: 9px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--3 .phase__header .phase__badge {
    padding: 17px 23px 15px;
    gap: 6px;
  }
}
.flow .flow__phases .phase.phase--3 .phase__box .steps {
  gap: 5px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--3 .phase__box .steps {
    gap: 7px;
  }
}
.flow .flow__phases .phase.phase--3 .phase__box .steps .step {
  width: 334px;
  padding-top: 23px;
  gap: 17px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--3 .phase__box .steps .step {
    width: 100%;
    padding: 25px 20px;
    gap: 20px;
  }
}
.flow .flow__phases .phase.phase--3 .phase__box .steps .step .step__img {
  width: 224px;
  height: 122px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--3 .phase__box .steps .step .step__img {
    width: 100%;
    max-width: 270px;
  }
}
.flow .flow__phases .phase.phase--3 .phase__box .steps .step .step__text {
  width: 290px;
}
@media screen and (max-width:540px) {
  .flow .flow__phases .phase.phase--3 .phase__box .steps .step .step__text {
    width: 100% !important;
  }
}

.safety {
  background: var(--blue-middle);
  padding: 85px 20px 90px;
}
@media screen and (max-width:540px) {
  .safety {
    padding: 70px 20px 79px;
  }
}
.safety .safety__inner {
  width: 700px;
  max-width: 100%;
  margin: 0 auto;
}
.safety .safety__inner .safety__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
}
.safety .safety__inner .safety__head .safety__lead {
  display: flex;
  align-items: flex-end;
  gap: 1px;
}
.safety .safety__inner .safety__head .safety__lead .safety__badges {
  display: flex;
  align-items: flex-end;
  gap: 6.25px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__lead .safety__badges {
    gap: 4.8px;
  }
}
.safety .safety__inner .safety__head .safety__lead .safety__badges .kanji-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--base-white);
  font-family: "Bold", sans-serif;
  line-height: 1;
}
.safety .safety__inner .safety__head .safety__lead .safety__badges .kanji-badge.kanji-badge--an {
  width: 70px;
  height: 70px;
  font-size: 50px;
  background: var(--gradation-blue);
  border-radius: 23px 23px 4.19px 23px;
  padding-bottom: 1px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__lead .safety__badges .kanji-badge.kanji-badge--an {
    width: 54px;
    height: 54px;
    font-size: 37px;
    border-radius: 18px 18px 3.2px 18px;
  }
}
.safety .safety__inner .safety__head .safety__lead .safety__badges .kanji-badge.kanji-badge--shin {
  width: 61px;
  height: 61px;
  font-size: 45px;
  background: var(--gradation-pink);
  border-radius: 3.65px 20px 20px 20px;
  padding-bottom: 6px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__lead .safety__badges .kanji-badge.kanji-badge--shin {
    width: 47px;
    height: 47px;
    font-size: 34px;
    border-radius: 2.8px 15.4px 15.4px 15.4px;
  }
}
.safety .safety__inner .safety__head .safety__lead .safety__lead-text {
  font-size: 35px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  margin-bottom: -1px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__lead .safety__lead-text {
    font-size: 25px;
  }
}
@media screen and (max-width:320px) {
  .safety .safety__inner .safety__head .safety__lead .safety__lead-text {
    font-size: 18px;
  }
}
.safety .safety__inner .safety__head .safety__title {
  font-size: 70px;
  font-family: "Bold", sans-serif;
  line-height: 1;
  text-align: center;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__title {
    font-size: 50px;
  }
}
@media screen and (max-width:320px) {
  .safety .safety__inner .safety__head .safety__title {
    font-size: 35px;
  }
}
.safety .safety__inner .safety__head .safety__title span {
  font-size: 100px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__head .safety__title span {
    font-size: 75px;
  }
}
.safety .safety__inner .mechanisms {
  display: grid;
  grid-template-columns: 341px 339px;
  gap: 25px 20px;
  margin-top: 70px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 47px;
  }
}
.safety .safety__inner .mechanisms .mech {
  position: relative;
  padding: 6px 0 0 7px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech {
    padding: 4px 0 0 7px;
  }
}
.safety .safety__inner .mechanisms .mech:nth-child(even) {
  padding-left: 5px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech:nth-child(even) {
    padding-left: 7px;
  }
}
.safety .safety__inner .mechanisms .mech .mech__num {
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 63px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blue-main);
  border-radius: 15px 15px 4.19px 15px;
  color: var(--base-white);
  font-family: var(--font-din);
  font-size: 38.33px;
  line-height: 1;
  letter-spacing: 0.03em;
  z-index: 1;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech .mech__num {
    width: 54px;
    height: 57px;
    font-size: 34.5px;
  }
}
.safety .safety__inner .mechanisms .mech .mech__card {
  height: 100%;
  background: var(--base-white);
  border: 1px solid var(--blue-main);
  border-radius: 10px;
  padding: 19px 15px 24px 13px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech .mech__card {
    padding: 13px 16px 20px 14px;
    gap: 11px;
  }
}
.safety .safety__inner .mechanisms .mech .mech__card .mech__title {
  padding-left: 50px;
  font-size: 20px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech .mech__card .mech__title {
    min-height: 44px;
    padding-left: 52px;
    font-size: 18px;
  }
}
.safety .safety__inner .mechanisms .mech .mech__card .mech__img {
  width: 302px;
  height: 143px;
  background: var(--blue-light);
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech .mech__card .mech__img {
    width: 100%;
    height: 143px;
  }
}
.safety .safety__inner .mechanisms .mech .mech__card .mech__text {
  font-size: 16px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech .mech__card .mech__text {
    font-size: 14px;
  }
}
.safety .safety__inner .mechanisms .mech.mech--row2 {
  padding-top: 5px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech.mech--row2 {
    padding-top: 4px;
  }
}
.safety .safety__inner .mechanisms .mech.mech--row2 .mech__card {
  gap: 26px;
  padding-bottom: 19px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech.mech--row2 .mech__card {
    gap: 11px;
    padding-bottom: 20px;
  }
}
.safety .safety__inner .mechanisms .mech.mech--rules .mech__card {
  gap: 14px;
  padding-top: 16px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .mechanisms .mech.mech--rules .mech__card {
    gap: 11px;
    padding-top: 13px;
  }
}
.safety .safety__inner .safety__notes {
  margin-top: 20px;
  font-size: 12px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .safety__notes {
    margin-top: 30px;
  }
}
.safety .safety__inner .conditions {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 60px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions {
    margin-top: 35px;
  }
}
.safety .safety__inner .conditions .cond__head {
  height: 38px;
  display: flex;
  align-items: center;
  padding: 0 20px;
  background: var(--blue-main);
  color: var(--base-white);
  font-size: 18px;
  font-family: "Bold", sans-serif;
  line-height: 1;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions .cond__head {
    height: 36px;
    font-size: 16px;
  }
}
.safety .safety__inner .conditions .cond__body {
  background: var(--base-white);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions .cond__body {
    padding: 15px;
    gap: 10px;
  }
}
.safety .safety__inner .conditions .cond__body .cond__list {
  font-size: 15px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions .cond__body .cond__list {
    font-size: 14px;
  }
}
.safety .safety__inner .conditions .cond__body .cond__note {
  font-size: 13px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions .cond__body .cond__note {
    font-size: 12px;
  }
}
.safety .safety__inner .conditions .cond__body .cond__note.cond__note--lg {
  font-size: 15px;
}
@media screen and (max-width:540px) {
  .safety .safety__inner .conditions .cond__body .cond__note.cond__note--lg {
    font-size: 13px;
  }
}

.about {
  background: linear-gradient(180deg, var(--blue-light) calc(100% - 319px), var(--blue-middle) calc(100% - 319px));
  padding: 80px 0 119px;
}
@media screen and (max-width:540px) {
  .about {
    background: linear-gradient(180deg, var(--blue-light) calc(100% - 304px), var(--blue-middle) calc(100% - 304px));
    padding: 70px 0 0;
  }
}
.about .what {
  position: relative;
  padding-top: 27px;
}
.about .what .what__box {
  background: rgba(255, 255, 255, 0.8);
  outline: 4px solid var(--base-white);
  border-radius: 20px;
  padding: 0 20px 50px;
}
@media screen and (max-width:540px) {
  .about .what .what__box {
    outline-width: 2px;
    padding: 0 20px 40px;
  }
}
.about .what .what__box {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.about .what .what__box .bubble {
  position: relative;
  margin-top: -27px;
  min-width: 311px;
  height: 53px;
  padding: 0 29px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 26.5px;
  background: var(--gradation-main);
  color: var(--base-white);
  font-size: 23px;
  font-family: "Bold", sans-serif;
  line-height: 1.5;
}
@media screen and (max-width:540px) {
  .about .what .what__box .bubble {
    min-width: 243px;
    padding: 0 22px;
    font-size: 18px;
  }
}
.about .what .what__box .bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 18px;
  height: 9px;
  background: #ff6a6a;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.about .what .what__box .what__lead {
  width: 450px;
  max-width: 100%;
  margin-top: 34px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: center;
  font-family: "Bold", sans-serif;
}
@media screen and (max-width:540px) {
  .about .what .what__box .what__lead {
    width: 100%;
    margin-top: 25px;
    gap: 10px;
  }
}
.about .what .what__box .what__lead .what__listed {
  font-size: 23px;
  font-family: "Medium", sans-serif;
  line-height: 1.3;
}
.about .what .what__box .what__lead .what__company {
  font-size: 32px;
  line-height: 1.3;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .about .what .what__box .what__lead .what__company {
    font-size: 23px;
  }
}
@media screen and (max-width:320px) {
  .about .what .what__box .what__lead .what__company {
    white-space: normal;
  }
}
.about .what .what__box .what__lead .what__company strong {
  font-size: 52.11px;
  color: var(--ibj-blue);
}
@media screen and (max-width:540px) {
  .about .what .what__box .what__lead .what__company strong {
    font-size: 35px;
  }
}
.about .what .what__box .what__lead .what__platform {
  font-size: 23px;
  line-height: 1.26;
}
@media screen and (max-width:540px) {
  .about .what .what__box .what__lead .what__platform {
    line-height: 1.5;
  }
}
.about .what .stat {
  position: relative;
  width: 515px;
  height: 175px;
  margin-top: 29px;
}
@media screen and (max-width:540px) {
  .about .what .stat {
    zoom: 0.58;
    margin-top: 40px;
  }
}
.about .what .stat {
  border-radius: 16px;
  overflow: hidden;
  background: var(--gradation-blue);
  color: var(--base-white);
}
.about .what .stat::before {
  content: "";
  position: absolute;
  left: 228px;
  top: 0;
  width: 287px;
  height: 175px;
  background: var(--gradation-pink);
  clip-path: path("M 0 0 L 287 0 L 287 175 L 24 175 C 24 175 7.5 157.5 7.5 125 C 7.5 93.27 33.36 82.14 31 50.5 C 28.91 22.52 0 0 0 0 Z");
}
.about .what .stat .stat__inner {
  position: relative;
  padding: 0;
}
.about .what .stat .stat__inner .stat__label {
  font-size: 29.39px;
  font-family: "Bold", sans-serif;
  line-height: 1.2;
  text-align: center;
}
.about .what .stat .stat__inner .stat__row {
  display: flex;
  align-items: center;
  gap: 50px;
  margin-top: 8px;
}
@media screen and (max-width:540px) {
  .about .what .stat .stat__inner .stat__row {
    gap: 34px;
    justify-content: center;
  }
}
.about .what .stat .stat__inner .stat__row {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  line-height: 1;
}
.about .what .stat .stat__inner .stat__row .stat__count {
  font-size: 70.52px;
}
@media screen and (max-width:540px) {
  .about .what .stat .stat__inner .stat__row .stat__count {
    white-space: nowrap;
    font-size: 55px;
  }
}
.about .what .stat .stat__inner .stat__row .stat__count small {
  font-size: 30.22px;
}
/* 会員数だけの枠（ピンク 1 色で中央に置く） */
.about .what .stat.stat--count {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gradation-pink);
}
.about .what .stat.stat--count::before {
  content: none;
}
.about .what .stat.stat--count .stat__inner .stat__row {
  justify-content: center;
}
.about .what .what__notes {
  width: 663px;
  max-width: 100%;
  margin-top: 40px;
  line-height: 1.45;
}
@media screen and (max-width:540px) {
  .about .what .what__notes {
    width: 100%;
    margin-top: 24px;
  }
}
.about .what .what__notes p {
  font-size: 12px;
  display: flex;
}
.about .what .what__notes p + p {
  margin-top: 1.45em;
}
.about .what .what__notes .mark {
  flex: none;
  width: 2.5em;
}
.about .choose {
  width: 700px;
  max-width: 100%;
  margin: 90px auto 0;
}
@media screen and (max-width:540px) {
  .about .choose {
    width: 90%;
    margin-top: 70px;
    padding-bottom: 76px;
  }
}
.about .choose .choose__head {
  text-align: center;
}
.about .choose .choose__head .choose__title {
  font-size: 30px;
  font-family: "Bold", sans-serif;
  line-height: 1.4;
  color: var(--blue-main);
}
@media screen and (max-width:540px) {
  .about .choose .choose__head .choose__title {
    font-size: 25px;
  }
}
.about .choose .choose__head .choose__sub {
  margin-top: 19px;
  font-size: 18px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .about .choose .choose__head .choose__sub {
    margin-top: 20px;
    font-size: 16px;
  }
}
.about .choose .plans {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 50px;
}
@media screen and (max-width:540px) {
  .about .choose .plans {
    grid-template-columns: 1fr;
    gap: 19px;
    margin-top: 30px;
  }
}
.about .choose .plans .plan {
  display: flex;
  flex-direction: column;
  background: var(--base-white);
  border: 1px solid;
  border-radius: 10px;
  overflow: hidden;
}
.about .choose .plans .plan .plan__head {
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--base-white);
  font-size: 16px;
  font-family: "Bold", sans-serif;
  line-height: 1.2;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan .plan__head {
    height: 40px;
    font-size: 14px;
  }
}
.about .choose .plans .plan .plan__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  font-size: 15px;
  line-height: 1.5;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan .plan__intro {
    font-size: 14px;
  }
}
.about .choose .plans .plan .plan__intro img.plan__logo--online {
  width: 227px;
  height: 41px;
}
.about .choose .plans .plan .plan__intro img.plan__logo--agency {
  width: 209px;
  height: 39px;
}
.about .choose .plans .plan .plan__detail {
  flex: 1;
  margin-top: 19px;
  font-size: 15px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan .plan__detail {
    font-size: 14px;
  }
}
.about .choose .plans .plan .plan__detail .plan__note {
  margin: 5px 0 0 35px;
  font-size: 12px;
  line-height: 1.5;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan .plan__detail .plan__note {
    margin: 10px 0 0 0;
  }
}
.about .choose .plans .plan .plan__detail .plan__note a {
  display: inline;
  color: #f95b00;
  text-decoration: underline;
}
.about .choose .plans .plan.plan--online {
  border-color: transparent;
  background: linear-gradient(#fff, #fff) padding-box, var(--ibj-gradation) border-box;
}
.about .choose .plans .plan.plan--online .plan__head {
  background: var(--ibj-gradation);
}
.about .choose .plans .plan.plan--online .plan__intro {
  margin-top: 25px;
  gap: 16px;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan.plan--online .plan__intro {
    margin-top: 19px;
  }
}
.about .choose .plans .plan.plan--online .plan__detail {
  padding: 15px 26px 30px 14px;
  background: linear-gradient(90deg, #d5f4ff 0%, #f0dbff 52.885%, #ffd0dc 100%);
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan.plan--online .plan__detail {
    margin-top: 19px;
    padding: 16px 13px 17px 12px;
  }
}
.about .choose .plans .plan.plan--agency {
  border-color: var(--monogatari-yamabuki);
}
.about .choose .plans .plan.plan--agency .plan__head {
  background: var(--monogatari-yamabuki);
}
.about .choose .plans .plan.plan--agency .plan__intro {
  margin-top: 22px;
  gap: 21px;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan.plan--agency .plan__intro {
    margin-top: 21px;
    gap: 16px;
  }
}
.about .choose .plans .plan.plan--agency .plan__detail {
  padding: 15px 18px 15px 10px;
  background: #fff2dd;
}
@media screen and (max-width:540px) {
  .about .choose .plans .plan.plan--agency .plan__detail {
    margin-top: 21px;
    padding: 16px 10px 20px 10px;
  }
}

.campaign {
  background: var(--gradation-main);
  padding: 31px 30px 30px;
}
@media screen and (max-width:540px) {
  .campaign {
    padding: 16px 11px;
  }
}
.campaign .campaign__box {
  max-width: 1380px;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.9);
  border: 5px solid var(--base-white);
  border-radius: 30px;
  padding: 41px 0 58px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box {
    border-width: 3px;
    border-radius: 20px;
    padding: 42px 0;
  }
}
.campaign .campaign__box .campaign-contents {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 13px;
  height: 283px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents {
    flex-wrap: wrap;
    height: auto;
    gap: 23px 13px;
    padding: 0 20px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents {
    gap: 0px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo {
  position: relative;
  flex: none;
  width: 194px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents .campaign__photo {
    order: 2;
    width: 146px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 194px;
  height: 194px;
  box-shadow: 3.86px 3.86px 9.66px rgba(0, 0, 0, 0.1);
}
.campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man {
  height: 226px;
  margin-top: 28.5px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man {
    height: 170px;
    margin-top: 21px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man {
    width: 125px;
    height: 140px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man::before {
  background: var(--gradation-blue);
  border-radius: 53px 53px 9.66px 53px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man::before {
    width: 146px;
    height: 146px;
    border-radius: 40px 40px 7.3px 40px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--man::before {
    width: 120px;
    height: 120px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman {
  height: 247px;
  margin-top: 17.9px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman {
    height: 186px;
    margin-top: 13px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman {
    height: 150px;
    width: 127px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman::before {
  height: 193px;
  background: var(--gradation-pink);
  border-radius: 9.66px 53px 53px 53px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman::before {
    width: 146px;
    height: 145px;
    border-radius: 7.3px 40px 40px 40px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents .campaign__photo.campaign__photo--woman::before {
    width: 120px;
    height: 120px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__photo img {
  position: relative;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.campaign .campaign__box .campaign-contents .campaign__body {
  width: 546px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 17px;
  text-align: center;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .campaign-contents .campaign__body {
    order: 1;
    width: 100%;
    gap: 11px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__body .campaign__catch {
  width: 285px;
  height: 77px;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .campaign-contents .campaign__body .campaign__catch {
    width: 229px;
    height: auto;
  }
}
.campaign .campaign__box .campaign-contents .campaign__body .campaign__title {
  font-size: 50px;
  font-family: "Bold", sans-serif;
  line-height: 1.4;
  -webkit-text-stroke: 10px var(--base-white);
  paint-order: stroke fill;
}
@media screen and (max-width:1024px) {
  .campaign .campaign__box .campaign-contents .campaign__body .campaign__title {
    font-size: 49px;
  }
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .campaign-contents .campaign__body .campaign__title {
    font-size: 28px;
    letter-spacing: -0.02em;
    line-height: 1.5;
    -webkit-text-stroke: 7px var(--base-white);
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .campaign-contents .campaign__body .campaign__title {
    font-size: 23px;
  }
}
.campaign .campaign__box .campaign-contents .campaign__body .campaign__sub {
  font-size: 18px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .campaign-contents .campaign__body .campaign__sub {
    order: 3;
    width: 100%;
    margin-top: 18px;
    font-size: 16px;
  }
}
.campaign .campaign__box .offer {
  position: relative;
  height: 237px;
  margin-top: 24px;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer {
    height: 127px;
    margin-top: 42px;
  }
}
.campaign .campaign__box .offer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50px;
  height: 169px;
  background: var(--base-white);
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer::before {
    top: 8px;
    height: 116px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer::before {
    height: 95px;
  }
}
.campaign .campaign__box .offer .offer__inner {
  position: relative;
  width: 676px;
  height: 100%;
  margin: 0 auto;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner {
    width: 100%;
  }
}
.campaign .campaign__box .offer .offer__inner .limit {
  position: absolute;
  left: 0;
  top: 25px;
  width: 212px;
  height: 212px;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner .limit {
    left: 7px;
    top: 0;
    width: 121px;
    height: 121px;
  }
}
@media screen and (max-width:375px) {
  .campaign .campaign__box .offer .offer__inner .limit {
    width: 100px;
    height: 100px;
  }
}
.campaign .campaign__box .offer .offer__inner .limit img {
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
  border-radius: 100%;
}
.campaign .campaign__box .offer .offer__inner .offer-img {
  width: 165px;
  position: absolute;
  right: 5px;
  bottom: 50%;
  transform: translateY(50%);
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner .offer-img {
    width: 111px;
    right: 150px;
    bottom: 58%;
  }
}
@media screen and (max-width:375px) {
  .campaign .campaign__box .offer .offer__inner .offer-img {
    right: 120px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner .offer-img {
    right: 87px;
    bottom: 62%;
    width: 94px;
  }
}
.campaign .campaign__box .offer .offer__inner p.offer__fee {
  position: absolute;
  left: 238px;
  top: 68px;
  font-size: 37.69px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner p.offer__fee {
    left: 225px;
    top: 21px;
    font-size: 21.4px;
    color: var(--pink-main);
  }
}
@media screen and (max-width:375px) {
  .campaign .campaign__box .offer .offer__inner p.offer__fee {
    left: 207px;
    font-size: 20px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner p.offer__fee {
    font-size: 15px;
    left: 185px;
    top: 16px;
  }
}
.campaign .campaign__box .offer .offer__inner p.offer__note {
  position: absolute;
  left: 237.5px;
  top: 177px;
  font-size: 14px;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner p.offer__note {
    left: 265.5px;
    top: 85px;
    width: 115px;
    font-size: 11px;
    line-height: 1.2;
    white-space: normal;
  }
}
@media screen and (max-width:375px) {
  .campaign .campaign__box .offer .offer__inner p.offer__note {
    left: 237.5px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner p.offer__note {
    width: 70px;
    top: 61px;
    left: 215.5px;
    font-size: 9px;
  }
}
.campaign .campaign__box .offer .offer__inner p.offer__zero {
  position: absolute;
  left: 509px;
  top: 0;
  font-family: var(--font-din);
  font-size: 239.42px;
  line-height: 0.9;
  color: var(--blue-main);
  -webkit-text-stroke: 14px var(--base-white);
  paint-order: stroke fill;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner p.offer__zero {
    left: 136px;
    top: 4px;
    font-size: 136.2px;
    -webkit-text-stroke: 8px var(--base-white);
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner p.offer__zero {
    left: 114px;
    top: -10px;
  }
}
.campaign .campaign__box .offer .offer__inner p.offer__free {
  position: absolute;
  left: 555px;
  top: 77px;
  font-size: 23.81px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
  color: var(--blue-main);
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner p.offer__free {
    left: 162px;
    top: 48px;
    font-size: 13.5px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner p.offer__free {
    left: 140px;
    top: 34px;
  }
}
.campaign .campaign__box .offer .offer__inner p.offer__yen {
  position: absolute;
  left: 625px;
  top: 126px;
  font-size: 50.86px;
  font-family: "Bold", sans-serif;
  line-height: 1.3;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .offer .offer__inner p.offer__yen {
    left: 202px;
    top: 75px;
    font-size: 28.9px;
  }
}
@media screen and (max-width:320px) {
  .campaign .campaign__box .offer .offer__inner p.offer__yen {
    left: 182px;
    top: 55px;
  }
}
.campaign .campaign__box .prices {
  display: flex;
  justify-content: center;
  gap: 22px;
  margin-top: 24px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .prices {
    gap: 5px;
    margin: 23px 22px 0;
  }
}
.campaign .campaign__box .prices .price {
  width: 339px;
  height: 154px;
  padding-top: 17px;
}
@media screen and (max-width:768px) {
  .campaign .campaign__box .prices .price {
    width: calc(50% - 2.5px);
    height: 146px;
    padding: 20px 10px 0;
  }
}
.campaign .campaign__box .prices .price {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--base-white);
  border-radius: 10px;
  text-align: center;
}
.campaign .campaign__box .prices .price .price__label {
  font-size: 20px;
  font-family: "Bold", sans-serif;
  line-height: 1.75;
  color: var(--blue-main);
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .prices .price .price__label {
    font-size: 14px;
  }
}
.campaign .campaign__box .prices .price .price__value {
  margin-top: 12px;
  font-size: 41.54px;
  font-family: "Bold", sans-serif;
  line-height: 1;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .prices .price .price__value {
    margin-top: 11px;
    font-size: 22px;
  }
}
.campaign .campaign__box .prices .price .price__note {
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.5;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .prices .price .price__note {
    margin-top: 11px;
  }
}
.campaign .campaign__box .prices .price.price--free .price__label {
  line-height: 1.4;
}
.campaign .campaign__box .prices .price.price--free .price__value {
  margin-top: 11px;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .prices .price.price--free .price__value {
    margin-top: 13px;
    font-size: 30px;
  }
}
.campaign .campaign__box .cta {
  width: 636px;
  max-width: 100%;
  margin: 32px auto 0;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .cta {
    width: calc(100% - 44px);
    margin-top: 28px;
  }
}
@media screen and (max-width:375px) {
  .campaign .campaign__box .cta {
    width: calc(100% - 20px);
  }
}
.campaign .campaign__box .cta .cta__notes {
  margin-top: 30px;
  font-size: 12px;
  line-height: 1.5;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .cta .cta__notes {
    margin-top: 33px;
  }
}
.campaign .campaign__box .member-offer {
  width: 700px;
  max-width: calc(100% - 44px);
  margin: 32px auto 0;
  padding: 22px 24px 26px;
  background: var(--base-white);
  border: 2px solid var(--monogatari-yamabuki);
  border-radius: 14px;
  text-align: center;
}
@media screen and (max-width:540px) {
  .campaign .campaign__box .member-offer {
    margin-top: 24px;
    padding: 18px 14px 20px;
  }
}
.campaign .campaign__box .member-offer .member-offer__head {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
}
.campaign .campaign__box .member-offer .member-offer__head .member-offer__logo {
  width: 168px;
  height: auto;
  flex-shrink: 0;
}
.campaign .campaign__box .member-offer .member-offer__head .member-offer__title {
  font-family: "Bold", sans-serif;
  font-size: 20px;
  line-height: 1.4;
}
.campaign .campaign__box .member-offer .member-offer__lead {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.6;
}
.campaign .campaign__box .member-offer .member-offer__cells {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 10px;
  margin-top: 14px;
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 12px 10px 14px;
  background: #FFF2DD;
  border-radius: 10px;
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell .member-offer__label {
  font-family: "Bold", sans-serif;
  font-size: 15px;
  line-height: 1.4;
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell .member-offer__value {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 10px;
  line-height: 1.3;
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell .member-offer__before {
  font-family: "Medium", sans-serif;
  font-size: 18px;
  color: #8a8a8a;
  text-decoration: line-through;
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell .member-offer__arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent var(--monogatari-yamabuki);
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__cell .member-offer__after {
  font-family: "Bold", sans-serif;
  font-size: 32px;
  color: var(--monogatari-orange);
}
.campaign .campaign__box .member-offer .member-offer__cells .member-offer__plus {
  align-self: center;
  font-family: "Bold", sans-serif;
  font-size: 22px;
  color: var(--monogatari-yamabuki);
}
.campaign .campaign__box .member-offer .member-offer__button {
  position: relative;
  display: inline-block;
  margin-top: 16px;
  padding: 11px 48px 11px 32px;
  border-radius: 999px;
  background: var(--monogatari-yamabuki);
  color: var(--base-white);
  font-family: "Bold", sans-serif;
  font-size: 15px;
  line-height: 1.3;
  transition: 0.4s;
}
.campaign .campaign__box .member-offer .member-offer__button::after {
  position: absolute;
  content: "";
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
  border-style: solid;
  border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent var(--base-white);
}
.campaign .campaign__box .member-offer .member-offer__button:hover {
  transform: scale(1.02);
  opacity: 0.8;
}
@media screen and (max-width: 540px) {
  .campaign .campaign__box .member-offer .member-offer__head {
    flex-direction: column;
    gap: 4px;
  }
  .campaign .campaign__box .member-offer .member-offer__logo {
    width: 150px;
  }
  .campaign .campaign__box .member-offer .member-offer__title {
    font-size: 15px;
  }
  .campaign .campaign__box .member-offer .member-offer__lead {
    font-size: 12px;
  }
  .campaign .campaign__box .member-offer .member-offer__cells {
    flex-direction: column;
    gap: 4px;
  }
  .campaign .campaign__box .member-offer .member-offer__plus {
    font-size: 18px;
    line-height: 1;
  }
  .campaign .campaign__box .member-offer .member-offer__label {
    font-size: 14px;
  }
  .campaign .campaign__box .member-offer .member-offer__before {
    font-size: 15px;
  }
  .campaign .campaign__box .member-offer .member-offer__after {
    font-size: 26px;
  }
  .campaign .campaign__box .member-offer .member-offer__button {
    display: block;
    font-size: 14px;
  }
}
@media screen and (max-width: 350px) {
  .campaign .campaign__box .member-offer .member-offer__title {
    white-space: normal;
  }
  .campaign .campaign__box .member-offer .prices .price .price__value {
    font-size: 19px;
  }
  .campaign .campaign__box .member-offer .member-offer__after {
    font-size: 23px;
  }
}

.step-section {
  padding: 90px 0 100px;
}
@media screen and (max-width:540px) {
  .step-section {
    padding: 70px 0 60px;
  }
}
.step-section ol {
  list-style: none;
}
.step-section ol.steps {
  margin: 50px auto 0;
  display: flex;
}
@media screen and (max-width:768px) {
  .step-section ol.steps {
    flex-direction: column;
    gap: 40px;
    margin-top: 35px;
  }
}
.step-section ol.steps li.step {
  position: relative;
  width: 240px;
  flex-shrink: 0;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step {
    width: 100%;
  }
  .step-section ol.steps li.step::after {
    position: absolute;
    content: "";
    left: 50%;
    bottom: -30px;
    transform: translateX(-50%);
    width: 64px;
    height: 27px;
    background: var(--step-color);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    z-index: 1;
  }
  .step-section ol.steps li.step:last-child::after {
    display: none;
  }
}
.step-section ol.steps li.step .step__head {
  height: 63px;
  display: flex;
  align-items: center;
  padding-left: 25px;
  color: var(--base-white);
  font-size: 16px;
  border: 2px solid var(--base-white);
  font-family: "Bold", sans-serif;
  line-height: 1;
  white-space: nowrap;
  border-right: none;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step .step__head {
    height: 44px;
    justify-content: center;
    padding: 0 20px;
    border: none;
  }
}
.step-section ol.steps li.step .step__body {
  height: 309px;
  background: var(--base-white);
  border-right: 1px solid var(--step-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 21px 20px 40px;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step .step__body {
    height: auto;
    border-right: none;
    gap: 20px;
    padding: 20px 20px 25px;
  }
}
.step-section ol.steps li.step .step__body img.step__img--phone {
  width: 141px;
  height: 128px;
  -o-object-fit: contain;
     object-fit: contain;
}
.step-section ol.steps li.step .step__body img.step__img--card {
  width: 156px;
  height: 100px;
  -o-object-fit: contain;
     object-fit: contain;
}
.step-section ol.steps li.step .step__body img.step__img--app {
  width: 124px;
  height: 124px;
  border-radius: 29.719px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
  -o-object-fit: cover;
     object-fit: cover;
}
.step-section ol.steps li.step .step__body .step__text {
  width: 200px;
  font-size: 15px;
  line-height: 1.75;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step .step__body .step__text {
    width: 100%;
  }
}
.step-section ol.steps li.step .step__body .step__texts {
  width: 200px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step .step__body .step__texts {
    width: 100%;
    gap: 3px;
  }
}
.step-section ol.steps li.step .step__body .step__texts .step__note {
  font-size: 12px;
  line-height: 1.5;
}
.step-section ol.steps li.step:nth-child(1) {
  z-index: 4;
  --step-color: var(--step1);
}
.step-section ol.steps li.step:nth-child(1) .step__head {
  background: var(--step1);
}
.step-section ol.steps li.step:nth-child(1) .step__head {
  padding-left: 20px;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step:nth-child(1) .step__head {
    padding: 0 20px;
  }
}
.step-section ol.steps li.step:nth-child(2) {
  z-index: 3;
  --step-color: var(--step2);
}
.step-section ol.steps li.step:nth-child(2) .step__head {
  background: var(--step2);
}
.step-section ol.steps li.step:nth-child(2) .step__body {
  padding: 37px 20px 25px;
  gap: 28px;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step:nth-child(2) .step__body {
    padding: 20px 20px 25px;
    gap: 20px;
  }
}
.step-section ol.steps li.step:nth-child(3) {
  z-index: 2;
  --step-color: var(--step3);
}
.step-section ol.steps li.step:nth-child(3) .step__head {
  background: var(--step3);
}
.step-section ol.steps li.step:nth-child(3) .step__body {
  padding: 25px 20px 66px;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step:nth-child(3) .step__body {
    padding: 20px 20px 25px;
  }
}
.step-section ol.steps li.step:nth-child(4) {
  z-index: 1;
  --step-color: var(--step4);
}
.step-section ol.steps li.step:nth-child(4) .step__head {
  width: 240px;
  justify-content: center;
  padding: 0 20px 0 25px;
  background: var(--step4);
  border: 2px solid var(--base-white);
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step:nth-child(4) .step__head {
    width: 100%;
    padding: 0 20px;
    border: none;
  }
}
.step-section ol.steps li.step:nth-child(4) .step__head::before, .step-section ol.steps li.step:nth-child(4) .step__head ::after {
  display: none;
}
.step-section ol.steps li.step:nth-child(4) .step__body {
  padding: 21px 17px 40px 23px;
  border-right: 0;
}
@media screen and (max-width:768px) {
  .step-section ol.steps li.step:nth-child(4) .step__body {
    padding: 16px 20px 25px;
  }
}

/* =========================================
   セクション2：よくある質問
   ========================================= */
.faq {
  background: var(--blue-middle);
  padding: 84px 0 123px;
}
@media screen and (max-width:540px) {
  .faq {
    padding: 60px 0;
  }
}

.faq__groups {
  margin-top: 50px;
  display: flex;
  flex-direction: column;
  gap: 50px;
}
.faq__groups .faq-group__title {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--blue-main);
  font-size: 20px;
  font-family: "Bold", sans-serif;
  line-height: normal;
}
@media screen and (max-width:540px) {
  .faq__groups .faq-group__title {
    font-size: 18px;
  }
}

.faq-group__list {
  margin-top: 31px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (max-width:540px) {
  .faq-group__list {
    margin-top: 25px;
    gap: 20px;
  }
}

details.qa .qa__q {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 22px 14px 18px;
  background: var(--base-white);
  border-radius: 10px;
  cursor: pointer;
  list-style: none;
}
details.qa .qa__q::-webkit-details-marker {
  display: none;
}
details.qa .qa__q .qa__q-inner {
  display: flex;
  align-items: center;
  gap: 13px;
}
details.qa .qa__q .qa__q-inner .qa__mark {
  flex-shrink: 0;
  color: var(--blue-main);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 36px;
  line-height: 1;
}
details.qa .qa__q .qa__q-inner .qa__q-text {
  font-size: 18px;
  font-family: "Medium", sans-serif;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  details.qa .qa__q .qa__q-inner .qa__q-text {
    font-size: 16px;
    line-height: 1.5;
  }
}
details.qa .qa__q .qa__icon {
  position: relative;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
details.qa .qa__q .qa__icon::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8.5px;
  width: 20px;
  height: 3px;
  background: var(--blue-main);
  transition: transform 0.2s;
}
details.qa .qa__q .qa__icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 8.5px;
  width: 20px;
  height: 3px;
  background: var(--blue-main);
  transition: transform 0.2s;
  transform: rotate(90deg);
}
details.qa .qa__a {
  margin-top: 10px;
  padding: 25px 25px 25px 24px;
  background: var(--blue-light);
  border-radius: 10px;
  font-size: 15px;
  line-height: 1.75;
}
@media screen and (max-width:540px) {
  details.qa .qa__a {
    padding: 20px;
    font-size: 14px;
  }
}
details.qa .qa__a a {
  color: var(--blue-main);
  font-family: "Bold", sans-serif;
  text-decoration: underline;
  display: inline;
}
details.qa[open] .qa__icon::after {
  transform: rotate(0deg);
}

footer {
  background-color: var(--base-paragraph);
  padding: 20px 0;
}
footer .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width:540px) {
  footer .container {
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    text-align: center;
  }
}
footer .container .link-group {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width:540px) {
  footer .container .link-group {
    justify-content: center;
  }
}
footer .container .link-group a {
  font-size: 14px;
  color: var(--base-white);
}
footer .container p {
  font-size: 14px;
  color: var(--base-white);
}

/* ---------- 4c. 結婚物語。会員向けの案内（キャンペーン枠の申込みボタンの下） ---------- */
/* ---------- 4d. スマホ幅での改行 ----------
   ボタンや金額は途中で折り返さない。見出し・質問文は行の長さをそろえ、
   本文は最後の行に1〜2文字だけ残らないようにする（対応ブラウザのみ。非対応でも崩れはしない） *//*# sourceMappingURL=style.css.map */