@use "sass:math";
.u-pc-only {
  display: block;
}
.u-sp-only {
  display: none;
}
.u-color-red {
  color: #cd0000;
}
.u-color-green {
  color: #00b900;
}
.u-border-green {
  border: 0.1rem solid #00b900;
}
.u-border-red {
  border: 0.1rem solid #cd0000;
}
@media screen and (max-width: 767px) {
  .u-pc-only {
    display: none;
  }
  .u-sp-only {
    display: block;
  }
}
.p-hero {
  padding-top: 10rem;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-hero {
    padding-top: 5rem;
    background: #f7f7f7;
  }
}
.p-hero__img img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-hero__img img {
    aspect-ratio: 750/1250;
    width: 100%;
    height: auto;
  }
}
.p-hero__content {
  position: absolute;
  bottom: 0;
  left: 0;
  text-align: center;
  right: 0;
  padding-bottom: 75rem;
}
@media screen and (max-width: 767px) {
  .p-hero__content {
    position: absolute;
    z-index: 1;
    padding-inline: 1rem;
    text-align: left;
    margin-top: -4.7rem;
    padding-bottom: 0;
  }
}
@media screen and (max-width: 767px) {
  .p-hero__title {
    font-size: 2.8rem;
    padding-inline: 1rem;
    background: #fff;
    padding-bottom: 1.1rem;
  }
}
.p-hero__title-small, .p-hero__title-medium, .p-hero__title-main, .p-hero__title-tiny {
  letter-spacing: 0.05em;
}
.p-hero__title-small {
  font-size: 2.7rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .p-hero__title-small {
    font-size: 1.8rem;
    line-height: calc(40 / 18);
    display: block;
    background: #fe5226;
    color: #fff;
    text-align: center;
    font-feature-settings: "palt";
    margin-inline: -1rem;
  }
}
.p-hero__title-medium {
  font-size: 3rem;
  font-weight: 900;
}
@media screen and (max-width: 767px) {
  .p-hero__title-medium {
    font-size: 2rem;
  }
}
.p-hero__title-tiny {
  font-weight: 900;
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  .p-hero__title-tiny {
    font-size: 1.3rem;
  }
}
.p-hero__title-main {
  color: #64b5a1;
  font-size: clamp(3rem, 7vw, 10.9rem);
  font-weight: 900;
  margin-inline: -3rem;
}
@media screen and (max-width: 767px) {
  .p-hero__title-main {
    font-size: 2.4rem;
    color: #cd0000;
    margin-inline: 0 -0.5rem;
    font-feature-settings: "palt";
    margin-inline: 0;
    line-height: 1.3;
    display: inline-block;
    width: 100%;
    word-break: keep-all;
  }
}
.p-hero__subcontent img {
  width: 32.9rem;
  height: 10rem;
  aspect-ratio: 329/227;
  display: block;
  margin-inline: auto;
  margin-top: 4rem;
}
.p-hero__text {
  font-size: 2.6rem;
}
@media screen and (min-width: 768px) {
  .p-hero__subcontent {
    display: none;
  }
  .p-hero__text {
    font-size: 3.6rem;
  }
  .p-hero__subcontent img {
    width: 32.9rem;
    height: auto;
    aspect-ratio: 329/227;
    display: block;
    margin-inline: auto;
  }
}
.campaign {
  position: absolute;
  width: 45rem;
  right: 34rem;
  top: 44rem;
}
.megaphone {
  max-width: 4rem;
  position: absolute;
  margin-bottom: 4rem;
}
.p-cta {
  max-width: 97rem;
  margin-inline: auto;
  margin-block: 5.6rem;
}
@media screen and (max-width: 767px) {
  .p-cta {
    max-width: calc(100% - 4rem);
    margin-block: 2.5rem;
  }
}
.p-cta__inner {
  display: flex;
  gap: 7rem;
}
@media screen and (max-width: 767px) {
  .p-cta__inner {
    flex-direction: column;
    gap: 1.3rem;
  }
  .campaign {
    position: absolute;
    width: 27rem;
    right: 6rem;
    top: 33rem;
  }
}
.p-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  width: 100%;
  padding: 2rem;
  min-height: 11.5rem;
  background: #00b900;
  border: 0.2rem solid #00b900;
  color: #fff;
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1;
  transition: 0.3s;
  border-radius: 1rem;
  font-size: 4rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  line-height: 1;
  width: calc(40% - 3.5rem);
  position: relative;
  z-index: 1;
  font-feature-settings: "palt";
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-cta__btn {
    width: 100%;
    min-height: 10.8rem;
    font-size: 3rem;
    padding: 1rem;
  }
}
@media (hover: hover) {
  .p-cta__btn:hover {
    background: #fff;
    color: #00b900;
    border-color: #00b900;
    opacity: 1;
  }
  .p-cta__btn:hover::before {
    background: #00b900;
  }
}
.p-cta__btn::before {
  content: "";
  width: 2.5rem;
  aspect-ratio: 1/1;
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  background: #fff;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
@media screen and (max-width: 767px) {
  .p-cta__btn::before {
    width: 1.9rem;
    right: 0.5rem;
    bottom: 0.6rem;
  }
}
.p-cta__btn-small {
  font-size: 3rem;
  margin-bottom: 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-cta__btn-small {
    font-size: 2.2rem;
  }
}
.p-cta__btn--red {
  background: #cd0000;
  border-color: #cd0000;
  color: #fff;
  font-size: 3.3rem;
  padding: 1rem 0.5rem;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .p-cta__btn--red {
    font-size: 2.5rem;
    padding: 0.7rem 0.5rem;
  }
}
@media (hover: hover) {
  .p-cta__btn--red:hover {
    background: #fff;
    color: #cd0000;
    border-color: #cd0000;
    opacity: 1;
  }
  .p-cta__btn--red:hover::before {
    background: #cd0000;
  }
}
.p-top-problem {
  padding: 5.6rem 0 10rem;
  position: relative;
  z-index: 1;
}
.p-top-problem2 {
  padding: 5.6rem 0 10rem;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-top-problem {
    padding-block: 0.4rem 5rem;
  }
  .p-top-problem2 {
    padding-block: 0.4rem 5rem;
  }
}
.p-top-problem::before {
  content: "";
  width: 100%;
  height: 70.2rem;
  left: 0;
  top: 0;
  background: #f7f7f7;
  position: absolute;
  z-index: -1;
}
.p-top-problem2::before {
  content: "";
  width: 100%;
  height: 130rem;
  left: 0;
  top: 0;
  background: #f7f7f7;
  position: absolute;
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .p-top-problem::before {
    height: 59.2rem;
  }
  .p-top-problem2::before {
    height: 202rem;
  }
}
.p-top-problem .p-cta {
  margin-top: 0;
}
.p-top-problem + .p-cta {
  margin-block: 6.7rem 10rem;
}
.p-top-problem__inner {
  width: 100%;
  max-width: 124rem;
  margin-inline: auto;
  padding-inline: 2rem;
  margin-top: 16.3rem;
}
.p-top-problem__inner2 {
  width: 100%;
  max-width: 124rem;
  margin-inline: auto;
  padding-inline: 2rem;
  margin-top: 6.3rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__inner {
    margin-top: 5.2rem;
    padding-inline: 2rem;
  }
  .p-top-problem__inner2 {
    margin-top: 5.2rem;
    padding-inline: 2rem;
  }
}
.p-top-problem__title {
  font-size: 7.2rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: #fe5226;
  line-height: calc(85 / 72);
  text-align: center;
  margin-bottom: 1.2rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__title {
    font-size: 2.6rem;
    line-height: calc(44 / 32);
    font-feature-settings: "palt";
    margin-bottom: 2.1rem;
    letter-spacing: 0rem;
  }
}
.p-top-problem__title-decor {
  display: block;
  margin-inline: auto;
  width: 18.4rem;
  aspect-ratio: 211 / 190;
  height: auto;
}
.p-top-problem__title-decor2 {
  display: block;
  margin-inline: auto;
  width: 12.4rem;
  aspect-ratio: 191 / 175;
  height: auto;
}
.p-top-problem__icon {
  display: inline-block;
}
.p-top-problem__icon img {
  display: block;
  max-width: 100%;
  height: auto;
}
.p-top-problem__list {
  display: flex;
  flex-wrap: wrap;
  gap: 3.8rem 8.6rem;
  margin-top: 6.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__list {
    margin-top: 3.4rem;
    gap: 5.3rem 0;
  }
}
.p-top-problem__list_2 {
  display: flex;
  flex-wrap: wrap;
  gap: 3.8rem 8.6rem;
  margin-top: 0.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__list_2 {
    margin-top: 2.5rem;
    gap: 2.5rem 0;
  }
}
.p-top-problem__item {
  width: calc((100% - 8.6rem * 2) / 3);
}
@media screen and (max-width: 767px) {
  .p-top-problem__item {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
}
.p-top-problem__item-icon {
  width: 100%;
  max-width: 25.4rem;
  aspect-ratio: 1/1;
  position: relative;
  margin-inline: auto;
}
.p-top-problem__item-icon_2 {
  width: 100%;
  max-width: 25.4rem;
  margin-top: 0.2rem;
  position: relative;
  margin-inline: auto;
}
.p-top-problem__item-icon2 {
  width: 100%;
  position: relative;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-icon {
    width: 11.3rem;
  }
}
.p-top-problem__item-icon img {
  position: absolute;
  height: auto;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.p-top-problem__item-icon--1 img {
  width: 25.4rem;
  display: block;
  top: unset;
  bottom: 0;
  transform: translate(-50%, 0);
}
.p-top-problem__item-icon--3 img {
  max-width: 31.1rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-icon--3 img {
    max-width: 13.8rem;
  }
}
.p-top-problem__item-icon--4 img {
  max-width: 29.2rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-icon--4 img {
    max-width: 13rem;
  }
}
.p-top-problem__item-icon--5 img {
  max-width: 25.4rem;
  top: 45%;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-icon--5 img {
    max-width: 11.3rem;
  }
}
.p-top-problem__item-title {
  font-size: 2.8rem;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0em;
  line-height: calc(38 / 28);
  text-align: center;
  margin-top: 1.3rem;
  margin-bottom: 2.5rem;
  background-color: #cd0000;
}
.p-top-problem__item-title2 {
  font-size: 2.2rem;
  font-weight: 700;
  color: #fe5226;
  letter-spacing: 0.1em;
  line-height: calc(38 / 31);
  text-align: center;
  margin: 1.3rem auto 1.3rem auto;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-title {
    font-size: 2.3rem;
    line-height: calc(30 / 24);
    width: calc(100% - 11.3rem);
    padding: 1.5rem;
    font-feature-settings: "palt";
    text-align: center;
  }
}
.p-top-problem__item-title_2 {
  font-size: 2.5rem;
  font-weight: 700;
  color: #fe5226;
  letter-spacing: 0.1em;
  line-height: calc(38 / 28);
  text-align: center;
  margin-top: 1.3rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-title_2 {
    font-size: 1.7rem;
    line-height: calc(30 / 24);
    width: calc(100% - 0.3rem);
    text-align: left;
    padding-left: 2.2rem;
    font-feature-settings: "palt";
    letter-spacing: 0rem;
  }
}
.p-top-problem__item-text {
  font-size: 2rem;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-top: 2rem;
}
.p-top-problem__item-text2 {
  font-size: 1.8rem;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .p-top-problem__item-text {
    font-size: 1.8rem;
    line-height: calc(24 / 18);
    margin-top: 1.1rem;
    margin-right: -1rem;
  }
  .p-top-problem__item-text2 {
    font-size: 1.6rem;
    line-height: calc(24 / 18);
    margin-top: 1.1rem;
    margin-right: -1rem;
  }
}
.p-top-solution {
  position: relative;
  z-index: 1;
  padding-block: 1rem;
  background: #f7f7f7;
}
@media screen and (max-width: 767px) {
  .p-top-solution {
    padding-block: 5.1rem 4.8rem;
  }
}
.p-top-solution::before {
  content: "";
  width: 100%;
  height: 118rem;
  position: absolute;
  background: #fff;
  top: 0;
  left: 0;
  z-index: -1;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-top-solution::before {
    height: 100%;
  }
}
.p-top-solution__header {
  text-align: center;
}
.p-top-solution__title {
  font-size: 6.8rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
  font-feature-settings: "palt";
  line-height: calc(85 / 72);
}
@media screen and (max-width: 767px) {
  .p-top-solution__title {
    font-size: 3.2rem;
    line-height: calc(41 / 32);
    margin-inline: -1rem;
  }
}
.p-top-solution__subtitle {
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: calc(60 / 28);
  color: #fff;
  margin-top: 5.2rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-top-solution__subtitle {
    font-size: 1.8rem;
    margin-top: 3rem;
    line-height: calc(29 / 18);
    margin-top: 2.3rem;
  }
}
.p-top-solution__inner {
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .p-top-solution__inner {
    margin-top: -1.6rem;
  }
}
.p-top-solution__box {
  border-radius: 2rem;
  padding: 8rem 10rem;
  position: relative;
  aspect-ratio: 1200/1100;
  background: url(../img/top/bg-box-solution.jpg) no-repeat center center/cover;
}
@media screen and (max-width: 767px) {
  .p-top-solution__box {
    padding: 3rem 1rem;
    margin-inline: -1rem;
    aspect-ratio: 355/1000;
    background: url(../img/top/bg-box-solution-sp.jpg) no-repeat center center/cover;
  }
}
.p-top-solution__box-title {
  font-size: 5rem;
  font-weight: 700;
  color: #636363;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.1em;
  position: relative;
}
@media screen and (max-width: 767px) {
  .p-top-solution__box-title {
    font-size: 2.4rem;
    line-height: calc(30 / 24);
  }
}
.p-top-solution__box-content {
  font-size: 2rem;
  letter-spacing: 0.05em;
  line-height: 1.8;
  font-weight: 400;
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  .p-top-solution__box-content {
    margin-top: 0rem;
  }
}
.p-top-solution__box-text {
  font-size: 2.8rem;
  font-weight: 400;
  line-height: calc(45 / 28);
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-top-solution__box-text {
    font-size: 1.8rem;
    line-height: 1.56;
  }
}
.p-top-solution__box-text:last-child {
  margin-bottom: 0;
}
.p-top-solution__box-text strong {
  font-weight: 700;
}
.p-top-solution__box-text--large {
  font-size: 3rem;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .p-top-solution__box-text--large {
    font-size: 1.8rem;
    line-height: calc(28 / 18);
  }
}
.worries-section {
  width: 100%;
  overflow: hidden;
}
/* =========================================
     上部エリア（ピンク背景）
     ========================================= */
.worries-top {
  background-color: #FFF0EB;
  padding-top: 60px;
  padding-bottom: 0;
  text-align: center;
  position: relative;
}
.worries-title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 40px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.circle-container {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 4rem;
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  z-index: 10;
  padding: 0 20px;
  box-sizing: border-box;
}
.circle-item {
  background-color: #fff;
  width: 28rem;
  height: 28rem;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
}
.circle-title {
  color: #FF6B5C;
  font-size: 2.6rem;
  font-weight: 700;
  margin: 0 0 10px 0;
  line-height: 1.4;
  text-align: center;
}
.circle-text {
  font-size: 1.8rem;
  margin: 0;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}
.image-wrapper {
  max-width: 800px;
  margin: -40px auto 0 auto;
  position: relative;
  z-index: 1;
  line-height: 0;
}
.woman-img {
  width: 100%;
  height: auto;
  display: block;
  -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}
.worries-bottom {
  background-color: #fff;
  padding: 2rem 2rem;
  text-align: center;
}
.message-text {
  color: #55C3B3;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 3.6rem;
  margin: 0;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 820px) {
  .circle-title {
    font-size: 2.4rem;
    margin: 0 0 10px 0;
    line-height: 1.4;
  }
  .circle-text {
    font-size: 1.5rem;
    line-height: 1.6;
  }
}
@media screen and (max-width: 767px) {
  .worries-bottom {
    padding: 2rem 1rem;
  }
  .worries-title {
    font-size: 22px;
    padding: 0 15px;
  }
  .circle-container {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }
  .circle-item {
    width: 23rem;
    height: 23rem;
    padding: 0px;
  }
  .circle-title {
    font-size: 2.3rem;
  }
  .image-wrapper {
    margin-top: 30px;
  }
  .message-text {
    font-size: 1.8rem;
    text-align: left;
    display: inline-block;
    text-align: center;
    line-height: 2.5rem;
  }
}
/* =========================================
     セクション全体設定
     ========================================= */
.achievement-section {
  background: linear-gradient(45deg, #fffbe0 0%, #ffeef5 45%, #79e6e5 100%);
  padding: 5rem 1rem;
}
.container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     ヘッダーエリア
     ----------------------------------------- */
.section-header {
  text-align: center;
  margin-bottom: 4rem;
}
.main-title {
  color: var(--color-orange);
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.sub-title {
  font-size: 1.8rem;
  font-weight: 700;
}
/* -----------------------------------------
     カードグリッドエリア
     ----------------------------------------- */
.card-grid {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 5rem;
}
.card {
  background: #fff;
  width: 100%;
  max-width: 40rem;
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
  overflow: visible;
  margin-top: 8rem;
}
.card-top {
  background-color: #fe5226;
  color: var(--text-white);
  text-align: center;
  padding: 3rem 1rem 1rem 1rem;
  position: relative;
  border-radius: 0.5rem 0.5rem 0 0;
}
.user-icon {
  width: 10rem;
  height: 10rem;
  background-color: #fff;
  border-radius: 50%;
  border: 0.25rem solid #fff;
  position: absolute;
  top: -8rem;
  left: 50%;
  transform: translateX(-50%);
  object-fit: cover;
}
.user-name {
  font-size: 2.0rem;
  font-weight: 700;
  margin: 0;
  color: #fff;
  letter-spacing: 0.3rem;
  padding-bottom: 1.5rem;
}
.card-body {
  padding: 1.5rem;
}
.ba-area {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.ba-item {
  flex: 1;
  text-align: center;
}
.ba-label {
  display: block;
  font-size: 1.8rem;
  font-weight: 700;
  color: #999;
  margin-bottom: 1.0rem;
  font-family: sans-serif;
}
.ba-label.is-after {
  color: #4CAF50;
}
.ba-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 15px;
}
.ba-desc {
  font-size: 2.0rem;
  font-weight: 700;
  margin-top: 0.5rem;
  line-height: 1.4;
}
.voice-box {
  position: relative;
  border-radius: 0.5rem;
  padding: 3.25rem 0rem 0.75rem 0rem;
  margin-top: 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.voice-badge {
  position: absolute;
  top: -0.75rem;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.65rem 5rem;
  border-radius: 3rem;
  font-size: 2.3rem;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}
.face-illustration {
  width: 10rem;
  flex-shrink: 0;
}
.voice-text {
  font-size: 1.6rem;
  margin: 0;
  line-height: 1.5;
  text-align: left;
}
.voice-box.worry {
  background-color: var(--color-gray-bg);
}
.voice-box.worry .voice-badge {
  background-color: #636363;
}
.voice-box.joy {
  background-color: var(--color-green-bg);
}
.voice-box.joy .voice-badge {
  background-color: #64b5a1;
}
@media screen and (max-width: 767px) {
  .ba-area {
    gap: 3rem;
    margin-bottom: 3rem;
  }
  .ba-desc {
    font-size: 1.8rem;
  }
  .face-illustration {
    width: 8rem;
  }
}
/* -----------------------------------------
     CTA（フッター）エリア
     ----------------------------------------- */
.cta-area {
  text-align: center;
}
.cta-lead {
  font-size: 3.8rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.cta-sub {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: -2.6rem;
  margin-top: 6rem;
}
.cta-button {
  display: inline-block;
  background: linear-gradient(to right, #ff8a65, #ff5722);
  color: #fff;
  font-size: 3.75rem;
  font-weight: 700;
  text-decoration: none;
  padding: 1.25rem 5rem;
  border-radius: 10rem;
  box-shadow: 0 0.25rem 0 #e64a19;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  letter-spacing: 0.6rem;
  padding: 2rem 6rem;
  margin-top: 3rem;
}
.cta-button::after {
  content: "▶";
  font-size: 1.6rem;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
}
.cta-button:hover {
  transform: translateY(0.125rem);
  box-shadow: 0 0.125rem 0 #e64a19;
}
/* =========================================
     レスポンシブ対応 (スマホ)
     ========================================= */
@media screen and (max-width: 767px) {
  .achievement-section {
    padding: 3rem 1rem;
  }
  .main-title {
    font-size: 2.6rem;
    margin-bottom: 1rem;
    margin-top: 1rem;
  }
  .sub-title {
    font-size: 1.8rem;
    margin-bottom: 3rem;
    line-height: 2.2rem;
  }
  .card {
    margin-top: 7rem;
    max-width: 100%;
  }
  .cta-lead {
    font-size: 2.2rem;
    line-height: 3.2rem;
  }
  .cta-button {
    font-size: 3rem;
    padding: 1rem 2rem;
    width: 95%;
    box-sizing: border-box;
  }
  .cta-button::after {
    right: 1rem;
  }
  .cta-sub {
    font-size: 1.8rem;
    line-height: 3rem;
    margin-top: 1rem;
  }
}
.dr-gives-section {
  --c-orange: #ff6b4a;
  --c-blue-text: #6c9bd2;
  --c-blue-bg: #e3f2fd;
  --c-text-main: #333;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: #fff;
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.8;
  padding: 5rem 1rem;
  box-sizing: border-box;
}
.dr-gives-section * {
  box-sizing: border-box;
}
.dr-gives-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     メイン見出し
     ----------------------------------------- */
.dr-gives-header {
  text-align: center;
  margin-bottom: 4rem;
}
.dr-gives-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
/* -----------------------------------------
     2カラムレイアウト
     ----------------------------------------- */
.dr-gives-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8rem;
  align-items: start;
}
/* -----------------------------------------
     各ポイント共通スタイル
     ----------------------------------------- */
.point-header {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
  border-bottom: 0.3rem solid #eee;
  padding-bottom: 0.5rem;
}
.point-header img {
  max-width: 15rem;
}
.point-flag {
  background-color: var(--c-blue-bg);
  color: var(--c-blue-text);
  font-weight: 900;
  font-size: 1.6rem;
  padding: 0.25rem 1rem 0.25rem 0.75rem;
  margin-right: 1rem;
  position: relative;
  clip-path: polygon(0 0, 100% 0, 90% 50%, 100% 100%, 0 100%);
}
.point-flag::before {
  content: "✦";
  position: absolute;
  top: -1.2rem;
  left: 0;
  color: #ccc;
  font-size: 1.6rem;
}
.point-title {
  font-size: 3rem;
  font-weight: 700;
  vertical-align: middle;
  margin-top: 1.5rem;
}
.point-sub-head {
  color: #6777b5;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 2.5rem 0;
  text-align: center;
}
.point-desc {
  font-size: 2.0rem;
  margin-bottom: 1rem;
  text-align: justify;
}
.point-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.point-list li {
  font-size: 1.6rem;
  margin-bottom: 0.75rem;
  position: relative;
  padding-left: 1rem;
}
.point-list li::before {
  content: "●";
  color: #333;
  font-size: 0.5rem;
  position: absolute;
  left: 0;
  top: 0.6rem;
}
.text-bold {
  font-weight: 700;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .dr-gives-container {
    max-width: 124rem;
    margin: 0 auto;
    padding: 0rem 1rem;
  }
  .point-title {
    font-size: 2.0rem;
  }
  .dr-gives-section {
    padding: 3rem 1rem 1rem 1rem;
  }
  .dr-gives-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.3;
    margin-top: 2rem;
  }
  .dr-gives-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .point-sub-head {
    font-size: 2.6rem;
  }
  .point-header img {
    max-width: 10.5rem;
  }
  .point-title {
    margin-top: 0.5rem;
  }
  .point-desc {
    font-size: 1.8rem;
    line-height: 2.4rem;
  }
}
.microscope-section {
  --c-bg-beige: #fff9f5;
  --c-orange: #ff6b4a;
  --c-text-main: #333;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: var(--c-bg-beige);
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.8;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.microscope-section * {
  box-sizing: border-box;
}
.microscope-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     メイン見出し
     ----------------------------------------- */
.microscope-header {
  text-align: center;
  margin-bottom: 4rem;
}
.microscope-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
/* -----------------------------------------
     2カラムレイアウト (テキスト + 画像)
     ----------------------------------------- */
.microscope-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.microscope-desc {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 2rem;
}
.microscope-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.microscope-list li {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 1rem;
  position: relative;
  padding-left: 1.25rem;
  line-height: 1.6;
}
.microscope-list li::before {
  content: "●";
  color: #333;
  font-size: 0.6rem;
  position: absolute;
  left: 0;
  top: 0.5rem;
}
.microscope-image-wrapper {
  width: 100%;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
}
.microscope-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .microscope-section {
    padding: 2rem 2rem;
  }
  .microscope-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .microscope-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .microscope-desc, .microscope-list li {
    font-size: 1.6rem;
    line-height: 2.1rem;
  }
}
.reasons-section {
  --c-orange: #ff6b4a;
  --c-blue: #5b7da3;
  --c-text: #333;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: #fff;
  font-family: var(--font-base);
  color: var(--c-text);
  line-height: 1.6;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.reasons-section * {
  box-sizing: border-box;
}
.reasons-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     ヘッダーエリア
     ----------------------------------------- */
.reasons-header {
  text-align: center;
  margin-bottom: 10rem;
}
.reasons-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.reasons-sub {
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .reasons-sub {
    font-size: 2rem;
    line-height: 2.8rem;
  }
  .reasons-header {
    margin-bottom: 3rem;
  }
}
/* -----------------------------------------
     グリッドエリア (Flexboxで4列/3列を実現)
     ----------------------------------------- */
.reasons-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6rem 2rem;
}
.reason-item {
  width: calc(25% - 1.5rem);
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* -----------------------------------------
     各パーツのデザイン
     ----------------------------------------- */
.reason-badge {
  background-color: #fe5226;
  color: #fff;
  font-size: 2.1rem;
  font-weight: 700;
  padding: 0.25rem 1.5rem;
  position: relative;
  margin-bottom: 1rem;
  clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%, 10% 50%);
  padding: 1rem 2rem;
  width: 15rem;
  text-align: center;
}
.reason-badge::before {
  content: "≫";
  position: absolute;
  left: 0.2rem;
  font-size: 1.6rem;
  opacity: 0.7;
  padding-left: 1.5rem;
  margin-top: 0.3rem;
}
.reason-badge::after {
  content: "≪";
  position: absolute;
  right: 0.2rem;
  font-size: 1.6rem;
  opacity: 0.7;
  padding-right: 1.5rem;
  margin-top: 0.3rem;
}
/* 青文字タイトル */
.reason-title {
  color: #6777b5;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.5rem;
  min-height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.reason-img-wrapper {
  width: 15rem;
  height: 15rem;
  border-radius: 50%;
  overflow: hidden;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.reason-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.reason-desc {
  font-size: 1.8rem;
  font-weight: 700;
  text-align: left;
  width: 100%;
  padding: 0 1.1rem;
  line-height: 2.8rem;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .reasons-section {
    padding: 4rem 1rem;
  }
  .reasons-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .reasons-grid {
    gap: 3rem;
  }
  .reason-item {
    width: 100%;
    max-width: 35rem;
  }
  .reason-title {
    min-height: auto;
    font-size: 2.8rem;
    line-height: 3.8rem;
  }
  .reason-desc {
    font-size: 1.6rem;
  }
}
.scroll_s {
  margin: 2rem 0rem 0rem 2rem;
}
.voices-section {
  --c-bg-blue: #eef8fd;
  --c-orange: #ff6b4a;
  --c-text-main: #333;
  --c-text-sub: #5b7da3;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: var(--c-bg-blue);
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.8;
  /* 上下の余白 */
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.voices-section * {
  box-sizing: border-box;
}
/* コンテナ */
.voices-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     ヘッダーエリア
     ----------------------------------------- */
.voices-header {
  text-align: center;
  margin-bottom: 4rem;
}
.voices-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.voices-sub {
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .voices-sub {
    font-size: 2.0rem;
    font-weight: 700;
    margin: 0;
  }
}
/* =========================================
   実績スライダー追加スタイル
   ========================================= */
.achievement-slider-area {
  margin-top: 4rem;
  margin-bottom: 4rem;
  width: 100%;
  overflow: hidden;
}
/* スライド内の画像設定 */
.js-achievement-slider .swiper-slide {
  height: auto;
  background-color: #fff;
}
.js-achievement-slider .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.js-achievement-slider .swiper-wrapper {
  transition-timing-function: linear !important;
}
@media screen and (max-width: 767px) {
  .achievement-slider-area {
    margin-top: 3rem;
    margin-bottom: 3rem;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
  }
}
.voices-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: stretch;
}
.voice-card {
  background-color: #fff;
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
}
.voice-img-wrapper {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.voice-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.voice-card:hover .voice-img {
  transform: scale(1.05);
}
.voice-content {
  padding: 2rem;
  text-align: center;
  flex-grow: 1;
}
.voice-heading {
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  line-height: 1.4;
}
.voice-meta {
  color: var(--c-text-sub);
  font-size: 2.1rem;
  font-weight: 700;
  display: block;
  margin-bottom: 0.5rem;
}
.voice-text {
  font-size: 1.8rem;
  text-align: left;
  margin: 0;
  line-height: 1.6;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .voices-section {
    padding: 1rem 1rem;
  }
  .voices-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .voices-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .voice-content {
    padding: 1.5rem;
  }
  .voice-heading {
    font-size: 2.0rem;
  }
  .voice-text {
    font-size: 1.6rem;
    text-align: left;
    margin: 0;
    line-height: 1.6;
  }
}
.flow-section {
  --c-orange: #ff6b4a;
  --c-cyan: #2bdebb;
  --c-blue: #00b0ff;
  --c-text-blue: #5b7da3;
  --c-text-main: #333;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: #fff;
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.8;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.flow-section * {
  box-sizing: border-box;
}
.flow-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     ヘッダーエリア
     ----------------------------------------- */
.flow-header {
  text-align: center;
  margin-bottom: 5rem;
}
.flow-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.flow-sub {
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .flow-sub {
    font-size: 2.0rem;
  }
}
/* -----------------------------------------
     タイムライングリッド
     ----------------------------------------- */
.flow-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  position: relative;
}
.flow-grid::before {
  content: "";
  position: absolute;
  top: 8.5rem;
  left: 12.5%;
  right: 12.5%;
  height: 0.25rem;
  background: linear-gradient(to right, var(--c-cyan), var(--c-blue));
  z-index: 0;
}
.flow-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
}
/* -----------------------------------------
     ステップのデザイン (STEP 01 等)
     ----------------------------------------- */
.step-label {
  background: linear-gradient(135deg, var(--c-cyan) 0%, #00c4cc 100%);
  color: #fff;
  font-size: 2.8rem;
  font-weight: 900;
  padding: 0.5rem 0;
  width: 80%;
  text-align: center;
  margin-bottom: 2rem;
  position: relative;
}
.step-label::after {
  content: "";
  position: absolute;
  bottom: -1.2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 0.125rem;
  height: 1.2rem;
  background-color: var(--c-cyan);
}
.step-dot {
  width: 1.5rem;
  height: 1.5rem;
  background-color: #00c4cc;
  border: 0.25rem solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 0.125rem #00c4cc;
  margin-bottom: 1.5rem;
}
.flow-step:nth-child(1) .step-dot {
  background-color: var(--c-cyan);
  box-shadow: 0 0 0 0.125rem var(--c-cyan);
  margin-bottom: 1.5rem;
}
.flow-step:nth-child(1) .step-label {
  background: var(--c-cyan);
}
.flow-step:nth-child(2) .step-dot {
  background-color: #00d2d6;
  box-shadow: 0 0 0 0.125rem #00d2d6;
}
.flow-step:nth-child(2) .step-label {
  background: #00d2d6;
}
.flow-step:nth-child(3) .step-label::after {
  background-color: #00c2ea;
}
.flow-step:nth-child(3) .step-dot {
  background-color: #00c2ea;
  box-shadow: 0 0 0 0.125rem #00c2ea;
}
.flow-step:nth-child(3) .step-label {
  background: #00c2ea;
}
.flow-step:nth-child(4) .step-label::after {
  background-color: var(--c-blue);
}
.flow-step:nth-child(4) .step-dot {
  background-color: var(--c-blue);
  box-shadow: 0 0 0 0.125rem var(--c-blue);
}
.flow-step:nth-child(4) .step-label {
  background: var(--c-blue);
}
.step-title {
  color: #6777b5;
  font-size: 2.6rem;
  font-weight: 700;
  text-align: center;
}
.step-desc {
  font-size: 1.6rem;
  margin-bottom: 1.5rem;
  text-align: justify;
  line-height: 1.6;
  flex-grow: 1;
  padding: 0 1.8rem;
}
.step-img-wrapper {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 0.25rem;
}
.step-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 767px) {
  .flow-step:nth-child(1) .step-dot {
    margin-bottom: 0rem;
  }
  .flow-step:nth-child(2) .step-dot {
    margin-bottom: 0rem;
  }
  .flow-step:nth-child(3) .step-dot {
    margin-bottom: 0rem;
  }
  .flow-step:nth-child(4) .step-dot {
    margin-bottom: 0rem;
  }
  .flow-header {
    margin-bottom: 2rem;
  }
  .flow-section {
    padding: 1rem 1rem;
  }
  .flow-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .flow-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .flow-grid::before {
    display: none;
  }
  .flow-step {
    max-width: 35rem;
    margin: 0 auto;
    border-top: 2px solid #d9e2ff;
    padding-top: 2rem;
  }
  .step-label::after {}
}
.campaign-section {
  --c-orange-bg: #ff5722;
  --c-orange-btn: #ff6b4a;
  --c-green-bar: #66c7b6;
  --c-text-gray: #777;
  --c-price-red: #ff3d00;
  --font-base: "Noto Sans JP", sans-serif;
  --font-price: "Oswald", sans-serif;
  background-color: var(--c-orange-bg);
  font-family: var(--font-base);
  color: #fff;
  line-height: 1.6;
  padding: 5rem 1rem;
  box-sizing: border-box;
  text-align: center;
}
.campaign-section * {
  box-sizing: border-box;
}
/* -----------------------------------------
     上部キャッチコピーエリア
     ----------------------------------------- */
.campaign-badge {
  background-color: #fff;
  color: var(--c-orange-bg);
  font-size: 3.0rem;
  font-weight: 700;
  padding: 0.25rem 2rem;
  border-radius: 5rem;
  display: inline-block;
  margin-bottom: 1.5rem;
}
.campaign-main-title {
  line-height: 1.4;
  text-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 4.5rem;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 2rem;
  text-align: center;
}
/* -----------------------------------------
     白いコンテナボックス
     ----------------------------------------- */
.campaign-box {
  background-color: #fff;
  color: var(--c-text-gray);
  max-width: 124rem;
  margin: 0 auto;
  padding-bottom: 4rem;
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.15);
}
.campaign-bar {
  background-color: var(--c-green-bar);
  color: #fff;
  font-size: 3.5rem;
  font-weight: 700;
  padding: 1rem;
  margin-bottom: 3rem;
}
.price-area {
  display: flex;
  justify-content: center;
  align-items: baseline;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.price-normal {
  font-size: 4.2rem;
  font-weight: 700;
  color: #999;
  position: relative;
  padding: 0 0.5rem;
}
.price-normal::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0.25rem;
  background-color: var(--c-price-red);
  transform: rotate(-10deg);
}
.price-arrow {
  color: #999;
  font-size: 1.8rem;
  margin: 0 0.5rem;
}
.price-special {
  font-family: var(--font-price);
  color: var(--c-price-red);
  font-size: 8rem;
  font-weight: 700;
  line-height: 1;
}
.price-note {
  font-size: 1.8rem;
  font-weight: 700;
  color: #777;
  margin-bottom: 2.5rem;
}
.campaign-desc {
  font-size: 1.8rem;
  text-align: center;
  margin: 0 auto 3rem auto;
  padding: 0 1rem;
  line-height: 1.8;
}
/* -----------------------------------------
     CTAボタン
     ----------------------------------------- */
.campaign-btn {
  display: inline-block;
  background-color: var(--c-orange-btn);
  color: #fff;
  font-size: 2rem;
  font-weight: 900;
  text-decoration: none;
  padding: 1.5rem 6rem;
  border-radius: 0.75rem;
  box-shadow: 0 0.375rem 0 #e64a19;
  transition: transform 0.1s, box-shadow 0.1s;
  position: relative;
  line-height: 1.2;
}
.campaign-btn::after {
  content: "▶";
  font-size: 1.8rem;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
}
.campaign-btn:hover {
  transform: translateY(0.25rem);
  box-shadow: 0 0.125rem 0 #e64a19;
}
.campaign-tel-note {
  font-size: 1.8rem;
  color: #999;
  margin-top: 1.5rem;
  font-weight: 700;
}
.small_t {
  font-size: 2.4rem;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .campaign-desc {
    font-size: 1.6rem;
    text-align: left;
    line-height: 2.1rem;
    margin: 0 auto 2rem auto;
  }
  .price-note {
    font-size: 1.4rem;
  }
  .campaign-section {
    padding: 3rem 1rem;
  }
  .campaign-main-title {
    font-size: 2.2rem;
    margin-bottom: 2rem;
    margin-top: 0rem;
  }
  .campaign-box {
    width: 100%;
    padding-bottom: 1rem;
  }
  .campaign-bar {
    font-size: 1.6rem;
    padding: 1rem 0.5rem;
    margin-bottom: 1rem;
  }
  .price-area {
    flex-direction: column;
    align-items: center;
    gap: 0rem;
  }
  .price-arrow {
    transform: rotate(90deg);
    margin: 0;
  }
  .price-special {
    font-size: 8rem;
  }
  .campaign-btn {
    font-size: 1.8rem;
    padding: 1.25rem 2rem;
    width: 90%;
  }
  .campaign-btn::after {
    right: 1rem;
  }
}
.message-section {
  --c-orange: #ff6b4a;
  --c-text-main: #333;
  --font-base: "Noto Sans JP", sans-serif;
  --font-serif: "Noto Serif JP", serif;
  background-color: #fff;
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 2;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.message-section * {
  box-sizing: border-box;
}
.message-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     タイトルエリア
     ----------------------------------------- */
.message-header {
  text-align: center;
  margin-bottom: 4rem;
}
.message-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.message-dash {
  display: inline-block;
  margin: 0 0.5rem;
}
/* -----------------------------------------
     本文エリア
     ----------------------------------------- */
.message-body {
  font-size: 2.1rem;
  font-weight: 500;
  margin-bottom: 4rem;
  text-align: justify;
}
/* -----------------------------------------
     プロフィールエリア
     ----------------------------------------- */
.profile-box {
  display: flex;
  align-items: center;
  gap: 3rem;
}
.profile-img-wrapper {
  flex: 0 0 45%;
}
.profile-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.25rem;
}
.profile-info {
  flex: 1;
}
.profile-name-area {
  display: flex;
  align-items: flex-end;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}
.profile-role {
  font-size: 2.4rem;
  line-height: 1.2;
  margin-right: 1rem;
  margin-bottom: 0.5rem;
  text-align: right;
}
.profile-name {
  font-size: 5rem;
  font-weight: normal;
  line-height: 1;
  margin: 0 0 1rem 0;
  letter-spacing: 1.5rem;
  padding-left: 2rem;
}
/* 区切り線 */
.profile-line {
  width: 100%;
  height: 0.125rem;
  background-color: #333;
  margin-bottom: 1rem;
}
.profile-bio {
  font-size: 2.1rem;
  line-height: 1.6;
  margin: 0;
  font-weight: normal;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .message-header {
    margin-bottom: 2rem;
  }
  .profile-bio {
    font-size: 1.6rem;
  }
  .message-section {
    padding: 1rem 2rem 1rem 2rem;
  }
  .message-title {
    font-size: 2.2rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .message-body {
    font-size: 1.6rem;
    margin-bottom: 2rem;
    line-height: 2.3rem;
  }
  .profile-box {
    flex-direction: column;
    gap: 2rem;
  }
  .profile-img-wrapper {
    width: 100%;
    max-width: 30rem;
  }
  .profile-name-area {
    justify-content: center;
  }
  .profile-name {
    font-size: 2.8rem;
    padding: 0rem 0.5rem 1.7rem 2rem;
  }
}
.contact-section {
  --c-bg-gray: #f5f3f2;
  --c-green-start: #00c853;
  --c-green-end: #2e7d32;
  --c-blue-start: #aabadd;
  --c-blue-end: #5c6bc0;
  --c-orange: #ff5722;
  --c-yellow: #ffff00;
  --c-text-main: #333;
  --font-base: "Noto Sans JP", sans-serif;
  --font-num: "Oswald", sans-serif;
  background-color: var(--c-bg-gray);
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.5;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.contact-section * {
  box-sizing: border-box;
}
.contact-container {
  max-width: 124rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .contact-section {
    padding: 2rem 1rem;
  }
}
.contact-grid-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
}
.contact-box {
  border-radius: 1rem;
  padding: 2.5rem 2rem;
  text-align: center;
  color: #fff;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.contact-box.line {
  background-image: url("../img/top/bk01.png");
  background-size: cover;
  border-radius: 3rem;
}
.contact-box.online {
  background-image: url("../img/top/bk02.png");
  background-size: cover;
  border-radius: 3rem;
}
.box-title {
  font-size: 3.85rem;
  font-weight: 700;
  margin: 2rem 0 4rem 0;
  line-height: 1.2;
  text-shadow: 2px 2px 2px #666666;
}
.box-lead {
  font-size: 2.1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  text-shadow: 2px 2px 2px #666666;
}
.box-desc {
  font-size: 1.8rem;
  margin-bottom: 2rem;
  text-align: left;
  line-height: 1.6;
  text-shadow: 2px 2px 2px #666666;
}
.btn-white {
  display: block;
  background-color: #fff;
  text-decoration: none;
  font-weight: bold;
  font-size: 2.9rem;
  padding: 1rem 1rem;
  border-radius: 10rem;
  position: relative;
  transition: transform 0.2s, box-shadow 0.2s;
  letter-spacing: 0.3rem;
  box-shadow: 3px 3px 6px #666666;
}
.btn-white::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.6rem 0 0.6rem 0.8rem;
  border-color: transparent transparent transparent currentColor; /* 文字色と同じ色 */
}
.btn-white:hover {
  transform: translateY(0.125rem);
  box-shadow: 0 0.125rem 0 rgba(0, 0, 0, 0.2);
}
.contact-box.line .btn-white {
  color: #00c853;
}
.contact-box.online .btn-white {
  color: #5c6bc0;
}
/* -----------------------------------------
     下段：電話・メール (オレンジボックス)
     ----------------------------------------- */
.contact-box-full {
  background-color: var(--c-orange);
  border-radius: 3rem;
  padding: 3rem 2rem;
  text-align: center;
  color: #fff;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}
.full-title {
  font-size: 4rem;
  font-weight: 900;
  color: var(--c-yellow);
  margin: 0 0 3rem 0;
  text-shadow: 0 0.125rem 0 rgba(0, 0, 0, 0.1);
  letter-spacing: 0.5rem;
}
.phone-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
  align-items: center;
}
.phone-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
}
.staff-img {
  width: 15rem;
  height: 15rem;
  border-radius: 50%;
  object-fit: cover;
  border: 0.25rem solid #fff;
  background-color: #fff;
}
.phone-info {
  text-align: left;
}
.tags {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
  font-size: 1.8rem;
  font-weight: 700;
}
.tag {
  background-color: #fff;
  color: var(--c-orange);
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
}
.phone-label {
  font-size: 1.6rem;
  margin-bottom: 0.25rem;
}
.phone-number a {
  font-family: var(--font-num);
  font-size: 4.7rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  letter-spacing: 0.5rem;
  color: #fff
}
.phone-icon {
  font-size: 1.75rem;
  margin-right: 0.5rem;
}
.phone-meta {
  font-size: 1.8rem;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.meta-box {
  border: 1px solid #fff;
  padding: 0 0.25rem;
  border-radius: 0.2rem;
  font-size: 1.6rem;
}
.btn-mail {
  display: block;
  background-color: #fff;
  color: var(--c-orange);
  text-decoration: none;
  font-weight: 900;
  font-size: 3.2rem;
  padding: 1.5rem 1rem;
  border-radius: 6rem;
  position: relative;
  max-width: 124rem;
  margin: 0 auto;
  transition: transform 0.2s, box-shadow 0.2s;
  letter-spacing: 0.3rem;
  box-shadow: 3px 3px 6px #666666;
}
.btn-mail i {
  margin-right: 0.5rem;
  font-size: 1.75rem;
  vertical-align: middle;
}
.btn-mail::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2rem;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.75rem 0 0.75rem 1rem;
  border-color: transparent transparent transparent var(--c-orange);
}
.btn-mail:hover {
  transform: translateY(0.125rem);
  box-shadow: 0 0.125rem 0 rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  .contact-box-full {
    padding: 3rem 1.5rem;
    border-radius: 2rem;
  }
  .full-title {
    font-size: 2.2rem;
    margin-bottom: 3rem;
    line-height: 1.4;
    letter-spacing: 0.1rem;
  }
  .phone-grid {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    margin-bottom: 3rem;
  }
  .phone-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
  }
  .staff-img {
    width: 17rem;
    height: 17rem;
    border: 0.3rem solid #fff;
  }
  .phone-info {
    text-align: center;
    width: 100%;
  }
  .tags {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
    font-size: 1.4rem;
  }
  .tag {
    padding: 0.2rem 0.8rem;
  }
  .phone-number a {
    justify-content: center;
    font-size: 4.5rem;
    margin-bottom: 0.8rem;
    white-space: nowrap;
    letter-spacing: 0.1rem;
  }
  .phone-icon {
    font-size: 2.4rem;
    margin-right: 0.5rem;
  }
  .phone-meta {
    justify-content: center;
    font-size: 1.4rem;
    flex-wrap: wrap;
    gap: 1rem;
    line-height: 1.5;
  }
  .meta-box {
    font-size: 1.2rem;
    padding: 0.1rem 0.6rem;
  }
  /* メールボタン */
  .btn-mail {
    font-size: 2.1rem;
    padding: 1.5rem 1rem;
    width: 100%;
    box-sizing: border-box;
    border-radius: 10rem;
    letter-spacing: 0.1rem;
  }
  .btn-mail i {
    font-size: 2rem;
    margin-right: 0.8rem;
  }
  .btn-mail::after {
    right: 1.5rem;
    border-width: 0.6rem 0 0.6rem 0.8rem;
  }
}
@media screen and (max-width: 375px) {
  .phone-number a {
    font-size: 2.8rem;
  }
  .full-title {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .contact-grid-top {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 3rem;
  }
  .contact-box {
    width: 100%;
    padding: 2.5rem 1.5rem;
    border-radius: 2rem;
    box-sizing: border-box;
  }
  .box-title {
    font-size: 2.8rem;
    margin: 0.5rem 0 2rem 0;
    line-height: 1.3;
  }
  .box-lead {
    font-size: 2.0rem;
    margin-bottom: 1rem;
  }
  .box-desc {
    font-size: 1.8rem;
    margin-bottom: 2rem;
    line-height: 1.6;
  }
  .btn-white {
    font-size: 1.9rem;
    padding: 1.5rem;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
    letter-spacing: 0rem;
    box-shadow: 3px 3px 6px #666666;
  }
  .btn-white::after {
    right: 1.5rem;
  }
}
.access-section {
  --c-orange: #ff5722;
  --c-text-main: #333;
  --c-border: #333;
  --font-base: "Noto Sans JP", sans-serif;
  background-color: #fff;
  font-family: var(--font-base);
  color: var(--c-text-main);
  line-height: 1.6;
  padding: 6rem 1rem;
  box-sizing: border-box;
}
.access-section * {
  box-sizing: border-box;
}
.access-container {
  max-width: 124rem;
  margin: 0 auto;
}
.small {
  font-size: 2rem;
}
/* -----------------------------------------
     ヘッダーエリア
     ----------------------------------------- */
.access-header {
  text-align: center;
  margin-bottom: 4rem;
}
.access-title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.access-sub {
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .access-sub {
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
  }
}
/* -----------------------------------------
     Google Map エリア
     ----------------------------------------- */
.map-wrapper {
  width: 100%;
  height: 45rem;
  background-color: #eee;
  margin-bottom: 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 2rem;
  color: #999;
}
.map-iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
/* -----------------------------------------
     店舗情報グリッド (2カラム)
     ----------------------------------------- */
.shop-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem 3rem;
}
.shop-item {
  border-bottom: 1px solid #ddd;
  padding-bottom: 2rem;
}
.shop-item:last-child, .shop-item:nth-last-child(2) {
  border-bottom: none;
}
.shop-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  border-bottom: 0.125rem solid var(--c-text-main);
  padding-bottom: 0.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.shop-name {
  font-size: 2.55rem;
  font-weight: 900;
  margin: 0;
  letter-spacing: 0.1rem;
}
.btn-map {
  background-color: var(--c-orange);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  text-decoration: none;
  padding: 0.25rem 1rem;
  border-radius: 2rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: opacity 0.2s;
}
.btn-map:hover {
  opacity: 0.8;
}
.shop-info-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.info-row {
  display: flex;
  align-items: baseline;
  margin-bottom: 0.75rem;
}
.info-label {
  flex-shrink: 0;
  width: 8rem;
  font-size: 1.6rem;
  font-weight: 700;
  border: 0.0625rem solid var(--c-border);
  padding: 0.125rem 0;
  text-align: center;
  margin-right: 1rem;
  background-color: #fff;
}
.info-text {
  font-size: 1.6rem;
  font-weight: 500;
  margin: 0;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .access-section {
    padding: 4rem 1rem;
  }
  .access-title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .map-wrapper {
    height: 20rem;
    margin-bottom: 3rem;
  }
  .shop-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .shop-item {
    border-bottom: 1px solid #ddd;
    padding-bottom: 2rem;
  }
  .shop-item:last-child {
    border-bottom: none;
  }
  .shop-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
  }
  .shop-name {
    font-size: 2.2rem;
  }
  .info-row {}
}
.footer-section {
  --c-bg-dark: #333; /* 背景色 */
  --c-orange: #ff5722; /* ロゴテキスト色 */
  --c-text-white: #fff;
  --c-border: #666; /* 区切り線の色 */
  --font-base: "Noto Sans JP", sans-serif;
  --font-en: "Oswald", sans-serif; /* 英語/数字用 */
  background-color: var(--c-bg-dark);
  font-family: var(--font-base);
  color: var(--c-text-white);
  line-height: 1.8;
  padding: 5rem 1rem 2rem 1rem; /* 下部はコピーライト用に狭く */
  box-sizing: border-box;
}
.footer-section * {
  box-sizing: border-box;
}
.footer-container {
  max-width: 124rem;
  margin: 0 auto;
}
/* -----------------------------------------
     上部：メインコンテンツエリア
     ----------------------------------------- */
.footer-main {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  gap: 3rem;
}
.footer-brand {
  flex: 0 0 20rem;
}
.footer-logo-area {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.footer-logo-img {
  width: 35rem;
  height: 10rem;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
}
.footer-logo-img img {
  width: 80%;
  height: auto;
}
.footer-logo-text {
  color: var(--c-orange);
  font-family: var(--font-en);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
}
.footer-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-nav-list li {
  margin-bottom: 0.5rem;
}
.footer-nav-list a {
  color: var(--c-text-white);
  text-decoration: none;
  font-weight: 700;
  font-size: 1.6rem;
  transition: opacity 0.2s;
}
.footer-nav-list a:hover {
  opacity: 0.7;
}
.footer-menus {
  flex: 1;
  display: flex;
  gap: 3rem;
}
.footer-col {
  flex: 1;
  border-left: 0.0625rem solid var(--c-border);
  padding-left: 1.5rem;
}
.footer-col-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin: 0 0 1.5rem 0;
  line-height: 1.4;
}
/* 通常リスト */
.footer-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-menu-list li {
  margin-bottom: 0.75rem;
}
.footer-menu-list a {
  color: var(--c-text-white);
  text-decoration: none;
  font-size: 1.6rem;
  font-weight: 500;
  transition: opacity 0.2s;
}
.footer-menu-list a:hover {
  opacity: 0.7;
}
.footer-shop-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-shop-list li {
  margin-bottom: 0.75rem;
  font-size: 1.6rem;
  font-weight: 500;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.shop-tel {
  font-family: var(--font-en);
  margin-left: 0.5rem;
}
/* -----------------------------------------
     下部：コピーライト
     ----------------------------------------- */
.footer-copyright {
  text-align: center;
  font-size: 1.4rem;
  color: #999;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
  border-top: 0.0625rem solid #444;
  padding-top: 0.5rem;
  letter-spacing: 0.2rem;
}
/* -----------------------------------------
     レスポンシブ (スマホ)
     ----------------------------------------- */
@media screen and (max-width: 767px) {
  .footer-menus {
    gap: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .footer-section {
    padding: 2rem 1rem 3rem 1rem;
  }
  .footer-main {
    flex-direction: column;
    gap: 3rem;
  }
  .footer-brand {
    flex: auto;
    text-align: center;
  }
  .footer-logo-area {
    justify-content: center;
  }
  .footer-menus {
    flex-direction: column;
    gap: 2rem;
  }
  .footer-col {
    border-left: none;
    padding-left: 0;
    border-top: 0.0625rem solid var(--c-border);
    padding-top: 1.5rem;
  }
  .footer-menus .footer-col:first-child {
    border-top: none;
    padding-top: 0;
  }
  .footer-shop-list li {
    justify-content: flex-start;
  }
}
.p-top-question {
  padding: 5rem 0 15rem 0;
  background-image:
    radial-gradient(circle at top left, #fff9c4 0%, transparent 55%), radial-gradient(circle at top right, #ffc1e3 0%, transparent 55%), radial-gradient(circle at bottom left, #61e5d6 0%, transparent 55%), radial-gradient(circle at bottom right, #b3e5fc 0%, transparent 55%);
}
.p-top-question__title {
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
  text-align: center;
}
.p-top-question__list {
  margin-top: 8rem;
}
.p-top-question__item {
  margin-top: 2rem;
  background: #fff;
}
.p-top-question__item:first-child {
  margin-top: 0;
}
.p-top-question__item.is-open .p-top-question__q::after {
  background-image: url(../img/top/icon-minus.svg);
}
.p-top-question__item.is-open .p-top-question__a {
  max-height: 100%;
  opacity: 1;
  background-color: #e4f4fd;
}
.p-top-question__q, .p-top-question__a {
  display: grid;
  grid-template-columns: minmax(0, 7rem) minmax(0, 1fr);
  align-items: flex-start;
}
.p-top-question__q picture, .p-top-question__a picture {
  width: 7rem;
  aspect-ratio: 100 / 100;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #6777b5;
}
.p-top-question__q picture img, .p-top-question__a picture img {
  display: block;
  width: 5.6rem;
  height: 5.6rem;
  object-fit: contain;
}
.p-top-question__q {
  background: #fff;
  position: relative;
  cursor: pointer;
  transition: 0.4s;
}
.p-top-question__q:hover {
  opacity: 0.7;
}
.p-top-question__q::after {
  position: absolute;
  content: "";
  background-image: url(../img/top/icon-plus.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 4.4rem;
  height: 4.4rem;
  top: 1.5rem;
  right: 2.5rem;
  transition: 0.4s;
}
.p-top-question__q picture {
  background: #fe5226;
  height: 100%;
}
.p-top-question__q picture img {
  display: block;
  width: 5.6rem;
  height: 5.6rem;
  object-fit: contain;
}
.p-top-question__q span {
  font-weight: 700;
  font-size: 2.1rem;
  line-height: 1.6;
  padding: 2rem 8rem 2rem 2rem;
  color: #fe5226;
}
.p-top-question__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  opacity: 0;
}
.p-top-question__a p {
  padding: 3rem;
  font-size: 2rem;
  line-height: 1.6;
  font-weight: bold;
  color: #6777b5;
}
@media screen and (max-width: 767px) {
  .p-top-question {
    padding: 2rem 2rem 2rem 2rem;
  }
  .p-top-question__title {
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 2rem;
  }
  .p-top-question__list {
    margin-top: 1.5rem;
    margin-inline: -1rem;
  }
  .p-top-question__item {
    margin-top: 0.8rem;
  }
  .p-top-question__item.is-open .p-top-question__q span::before {
    position: absolute;
    content: "";
    background-image: url(../img/top/icon-minus.svg);
  }
  .p-top-question__q picture, .p-top-question__a picture {
    width: 6rem;
    aspect-ratio: 50/50;
  }
  .p-top-question__q picture img, .p-top-question__a picture img {
    width: 2.0rem;
    height: auto;
  }
  .p-top-question__q, .p-top-question__a {
    display: grid;
    grid-template-columns: minmax(0, 6rem) minmax(0, 1fr);
  }
  .p-top-question__q::after {
    display: none;
  }
  .p-top-question__q picture img {
    width: 2.0rem;
    height: auto;
  }
  .p-top-question__q span {
    font-size: 1.6rem;
    line-height: calc(21 / 16);
    width: 100%;
    position: relative;
    z-index: 1;
    background: #fff;
    min-height: 5rem;
    display: flex;
    align-items: center;
  }
  .p-top-question__q span::before {
    position: absolute;
    content: "";
    background-image: url(../img/top/icon-plus.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    width: 3.1rem;
    height: 3.1rem;
    top: 50%;
    transform: translateY(-50%);
    right: 1rem;
    transition: 0.4s;
  }
  .p-top-question__a picture {
    margin-top: 0rem;
  }
  .p-top-question__a p {
    font-size: 1.4rem;
    line-height: calc(21 / 14);
    padding: 1.5rem;
  }
}
.p-top-contact {
  padding: 15rem 0;
}
@media screen and (max-width: 767px) {
  .p-top-contact {
    padding: 1.2rem 0 2.5rem;
  }
}
.p-top-contact__title {
  font-size: 5.0rem;
  font-weight: 700;
  line-height: 1.6;
  color: #fe5226;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-top-contact__title-main {
  border: 0.2rem solid #fe5226;
  padding: 1rem 11.2rem;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.p-top-contact__title-sub {
  border-bottom: 0.2rem solid #fe5226;
  letter-spacing: 0.2em;
  font-feature-settings: "palt";
  padding-inline: 1.4rem;
  margin-top: 1.2rem;
  padding-bottom: 1.2rem;
  t-size: 4rem;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: #fe5226;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  margin-top: 5rem;
}
.p-top-contact__form {
  margin-top: 5rem;
}
.p-top-contact__form-note {
  font-size: 1.4rem;
  line-height: calc(24 / 14);
  font-weight: 400;
  color: #fe5226;
  margin-top: 2rem;
  font-feature-settings: "palt";
}
.p-top-contact__form form {
  color: #fe5226;
  width: 100%;
}
.p-top-contact__form form table {
  border-collapse: collapse;
  width: 100%;
  background: #fff;
}
.p-top-contact__form form tr {
  display: block;
}
.p-top-contact__form form td {
  padding: 1rem;
  font-size: 2.8rem;
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #fff;
}
.p-top-contact__form form td b {
  font-size: 2.1rem;
}
.p-top-contact__form form font {
  font-family: #636363;
  font-size: 1.8rem;
  line-height: 1.7;
  color: #636363;
}
.p-top-contact__form form table:first-of-type tr:first-child td {
  display: none;
}
.p-top-contact__form form td[width="120"] {
  text-align: left !important;
  font-weight: 600;
  width: 100%;
}
.p-top-contact__form form td[width="400"] {
  width: 100%;
  padding-top: 0;
}
.p-top-contact__form form input[type="text"], .p-top-contact__form form textarea {
  width: 100%;
  max-width: 100%;
  height: 6rem;
  padding: 1rem;
  border: 0.1rem solid #636363;
  border-radius: 6px;
  font-size: 2.1rem;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  .p-top-contact__form form input[type="text"], .p-top-contact__form form textarea {
    font-size: 1.8rem;
  }
}
.p-top-contact__form form input[type="text"]:focus, .p-top-contact__form form textarea:focus {
  outline: none;
  border-color: #fe5226;
}
.p-top-contact__form form input[type="checkbox"] {
  margin-right: 6px;
  transform: scale(1.1);
}
.p-top-contact__form form textarea {
  min-height: 30rem;
  resize: vertical;
  background: url("../img/common/arrow-blue.svg") no-repeat calc(100% - 1rem) calc(100% - 1rem)/2.5rem 2.5rem, #fff;
}
.p-top-contact__form form strong {
  color: #fe5226 !important;
}
.p-top-contact__form form input[type="submit"] {
  background: url("../img/common/arrow-white.svg") no-repeat calc(100% - 1rem) calc(100% - 1rem)/2.5rem 2.5rem, #fe5226;
  border: 1px solid #fe5226;
  font-size: 4rem;
  line-height: 1;
  margin-top: 5rem;
}
@media screen and (max-width: 767px) {
  .p-top-contact__form form input[type="submit"] {
    background: url("../img/common/arrow-white.svg") no-repeat calc(100% - 0.5rem) calc(100% - 0.5rem)/1.3rem 1.3rem, #fe5226;
  }
}
.p-top-contact__form form input[type="submit"]:hover {
  background: url("../img/common/arrow-blue.svg") no-repeat calc(100% - 1rem) calc(100% - 1rem)/2.5rem 2.5rem, #fff;
  color: #fe5226;
}
.p-top-contact__form form .u-font {
  margin-top: 2rem;
}
.p-top-contact__form .groupDiv {
  background: transparent !important;
  margin-bottom: 2.5rem;
}
.p-top-contact__form .groupDiv hr {
  opacity: 0;
}
@media screen and (max-width: 767px) {
  .p-top-line__title {
    display: none;
  }
  .p-top-line__title-main {
    font-size: 2.8rem;
  }
  .p-top-line__title-sub {
    font-size: 1.3rem;
  }
  .p-top-contact {
    background: #f7f7f7;
  }
  .p-top-contact__title {
    font-size: 2.6rem;
  }
  .p-top-contact__title-main {
    padding: 0.2rem 1.5rem;
    letter-spacing: 0em;
    font-size: 1.8rem;
    margin-top: 2rem;
  }
  .p-top-contact__title-sub {
    display: inline-block;
    padding-bottom: 0.3rem;
    font-size: 2.6rem;
    letter-spacing: 0.2rem;
    line-height: 1.5;
    margin-top: 0rem;
  }
  .p-top-contact__form {
    margin-top: 1.5rem;
  }
  .p-top-contact__form form td {
    padding: 0 0 0.9rem 0;
    background: #f7f7f7;
    border: 0;
  }
  .p-top-contact__form form td b {
    font-size: 1.8rem;
  }
  .p-top-contact__form form font {
    font-size: 1.8rem;
  }
  .p-top-contact__form form input[type="text"] {
    height: 5.3rem;
    font-size: 1.4rem;
    border-radius: 1rem;
  }
  .p-top-contact__form form .u-font {
    font-size: 1.4rem;
    margin-top: 0rem;
  }
  .p-top-contact__form form input[type="submit"] {
    font-size: 1.9rem;
    width: 100%;
    max-width: 24rem;
    min-height: 7rem;
    margin-top: 0rem;
    color: #fff;
    border-radius: 1rem;
  }
  .p-top-contact__form form textarea {
    min-height: 16rem;
    border-radius: 1rem 1rem 0 1rem;
    background: url(../img/common/arrow-blue.svg) no-repeat 100% 100%/1.3rem 1.3rem, #f7f7f7;
  }
  .p-top-workshop__title {
    font-size: 3rem;
    letter-spacing: 0em;
  }
  .p-top-workshop__images {
    width: 13.7rem;
    aspect-ratio: 137 / 109;
  }
  .p-top-workshop__note--modi {
    margin-top: 2rem;
  }
  .p-top-workshop__note-title {
    font-size: 2.1rem;
    letter-spacing: 0.1rem;
    margin-bottom: 2rem;
  }
  .p-top-workshop__note-list {
    margin-top: 1.4rem;
  }
  .p-top-workshop__note-list li {
    font-size: 1.6rem;
    padding-left: 3.5rem;
    margin-top: 0.5rem;
  }
  .p-top-workshop__note-list li::before {
    width: 1.5rem;
    height: 1.5rem;
    top: 0.4rem;
    left: 1.2rem;
  }
  .p-top-workshop__content {
    margin-top: 2.4rem;
    font-size: 1.6rem;
  }
  .p-top-workshop__content p:last-child {
    margin-top: 2rem;
  }
}
.youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}
.blueline {
  border-bottom: 2px solid #fe5226;
}
.p-top-calendar {
  padding-block: 12.5rem 8rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar {
    padding-block: 0 4.6rem;
  }
}
.p-top-calendar__inner {
  border-radius: 2rem;
  padding-block: 0.3rem 5.8rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__inner {
    padding: 0rem 2rem 2rem 2rem;
  }
}
.p-top-calendar .l-container + .p-cta {
  margin-top: 13rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__header {
    display: flex;
    flex-direction: column;
  }
}
.p-top-calendar__title {
  text-align: center;
  font-size: 7.2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #184098;
  line-height: calc(85 / 72);
  margin-top: 3rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-top-calendar__title {
    font-size: 2.3rem;
    line-height: calc(44 / 32);
    order: 1;
    margin-top: 0;
  }
}
.p-top-calendar__title-number {
  font-size: 15rem;
  line-height: calc(85 / 150);
  font-weight: 400;
  font-family: "Oswald", sans-serif;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__title-number {
    font-size: 3.2rem;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 700;
    line-height: calc(44 / 32);
  }
}
.p-top-calendar__title-decor {
  display: block;
  width: 10rem;
  aspect-ratio: 100 / 93;
  height: auto;
  margin-top: 3rem;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__title-decor {
    width: 5.9rem;
    order: 2;
    margin-top: 0.7rem;
  }
}
.p-top-calendar__text {
  font-size: 2.8rem;
  letter-spacing: 0em;
  font-weight: 700;
  line-height: calc(60 / 28);
  font-feature-settings: "palt";
  margin-top: 4.3rem;
  color: #184098;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__text {
    font-size: 1.8rem;
    line-height: calc(26 / 18);
    margin-top: 1.8rem;
    order: 3;
  }
}
.p-top-calendar__list {
  margin-top: 8.2rem;
  margin-inline: 8.5rem 7rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__list {
    margin-inline: 0;
    margin-top: 2.9rem;
    overflow: hidden;
    position: relative;
    padding-bottom: 3rem;
  }
}
.p-top-calendar__list .swiper-pagination-bullet {
  width: 1.4rem;
  height: 1.4rem;
  background: transparent;
  border: 1px solid #fe5226;
  border-radius: 50%;
  opacity: 1;
}
.p-top-calendar__list .swiper-pagination-bullet-active {
  background: #fe5226;
}
.p-top-calendar__item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 3rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__item {
    gap: 0;
    padding-inline: 1.5rem;
    border-bottom: 0.2rem solid #6777b5;
    padding-bottom: 2rem;
  }
}
.p-top-calendar__item:not(:last-child) > .p-top-calendar__row {
  border-bottom: 0.2rem solid #fe5226;
  padding-bottom: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__item:not(:last-child) > .p-top-calendar__row {
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-top-calendar__item:not(:last-child) .p-top-calendar__circle {
  position: relative;
  z-index: 1;
}
.p-top-calendar__item:not(:last-child) .p-top-calendar__circle::before {
  content: "";
  width: 3.7rem;
  aspect-ratio: 37/56;
  position: absolute;
  left: 50%;
  top: calc(100% + 1.8rem);
  transform: translate(-50%, 0);
}
@media screen and (max-width: 767px) {
  .p-top-calendar__item:not(:last-child) .p-top-calendar__circle::before {
    display: none;
  }
}
.p-top-calendar__item:not(:first-child) {
  margin-top: 2rem;
}
.p-top-calendar__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: calc(100% - 23.5rem);
}
@media screen and (max-width: 767px) {
  .p-top-calendar__row {
    width: 100%;
  }
}
.p-top-calendar__row .p-top-calendar__row {
  width: 100%;
}
.p-top-calendar__row .p-top-calendar__row:not(:last-child) {
  border-bottom: 0.2rem solid #184098;
  padding-bottom: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__row .p-top-calendar__row:not(:last-child) {
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-top-calendar__row .p-top-calendar__row:not(:first-child) {
  margin-top: 2rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__row .p-top-calendar__row:not(:first-child) {
    margin-top: 1.2rem;
  }
}
@media screen and (max-width: 767px) {
  .p-top-calendar__row .p-top-calendar__row .p-top-calendar__content {
    margin-top: 0;
  }
}
.p-top-calendar__circle {
  background: #184098;
  color: #fff;
  aspect-ratio: 1/1;
  border-radius: 50%;
  width: 15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  line-height: calc(52 / 35);
  font-weight: 700;
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__circle {
    width: 6rem;
    font-size: 1.05rem;
  }
}
.p-top-calendar__circle-number {
  font-size: 7rem;
  line-height: calc(52 / 80);
  font-weight: 400;
  font-family: "Oswald", sans-serif;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__circle-number {
    font-size: 3.8rem;
  }
}
.p-top-calendar__subtitle {
  font-size: 2.6rem;
  line-height: calc(52 / 40);
  font-weight: 700;
  color: #184098;
  font-feature-settings: "palt";
  padding-left: 0.5rem;
  max-width: 28.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__subtitle {
    font-size: 2.1rem;
    line-height: calc(35 / 28);
    width: calc(100% - 6.5rem);
    padding-left: 1.2rem;
  }
}
.p-top-calendar__subtitle .u-sp-only {
  margin-top: 1rem;
}
.p-top-calendar__content {
  padding-left: 3.5rem;
  width: calc(100% - 28.5rem);
}
@media screen and (max-width: 767px) {
  .p-top-calendar__content {
    padding-left: 0;
    width: 100%;
    margin-top: 0.5rem;
    margin-bottom: 0rem;
  }
}
.p-top-calendar__subcontent {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__subcontent {
    margin-top: 1.5rem;
  }
}
.p-top-calendar__content-list, .p-top-calendar__content-text, .p-top-calendar__content-lead {
  font-size: 2rem;
  font-weight: 400;
  line-height: calc(31 / 20);
  color: #184098;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__content-list, .p-top-calendar__content-text, .p-top-calendar__content-lead {
    font-size: 1.6rem;
    line-height: calc(21 / 16);
  }
}
.p-top-calendar__content-list + .p-top-calendar__content-lead, .p-top-calendar__content-text + .p-top-calendar__content-lead, .p-top-calendar__content-lead + .p-top-calendar__content-lead {
  margin-top: 3.2rem;
}
@media screen and (max-width: 767px) {
  .p-top-calendar__content-list + .p-top-calendar__content-lead, .p-top-calendar__content-text + .p-top-calendar__content-lead, .p-top-calendar__content-lead + .p-top-calendar__content-lead {
    margin-top: 2.1rem;
  }
}
.p-top-calendar__content-list--sub {
  line-height: 2;
}
.p-top-calendar__content-text {
  margin-left: 0.5rem;
  margin-bottom: 1rem;
}
.p-top-calendar__content-lead {
  font-weight: 700;
}
.p-top-calendar__content-lead.u-mt-0 {
  margin-top: 0;
}
.p-top-reason {
  background: #184098;
  color: #fff;
  padding-block: 8.5rem 9rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason {
    padding-block: 3.8rem 4.5rem;
  }
}
.p-top-reason + .p-cta {
  margin-top: 3rem;
}
.p-top-reason .l-container + .p-cta {
  margin-top: 11.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason .l-container + .p-cta {
    margin-top: 7.5rem;
  }
}
.p-top-reason__lead {
  display: flex;
  justify-content: center;
}
.p-top-reason__lead-text {
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
  line-height: 1.1666666667;
  font-feature-settings: "palt";
  position: relative;
  z-index: 1;
  margin-left: 7rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__lead-text {
    font-size: 2rem;
    line-height: 1.2;
    margin-left: 2.6rem;
  }
}
.p-top-reason__lead-text::before {
  content: "";
  width: 32.8rem;
  aspect-ratio: 317/167;
  background: url(../img/common/border-message.svg) no-repeat center center/contain;
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translate(-8%, 38%);
  z-index: -1;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .p-top-reason__lead-text::before {
    width: 13.6rem;
    aspect-ratio: 136/72;
  }
}
.p-top-reason__title {
  text-align: center;
  font-size: 7.2rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.2em;
  line-height: 1.1805555556;
  font-feature-settings: "palt";
  margin-top: 3.3rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__title {
    font-size: 3.1rem;
    line-height: 1.375;
    margin-top: 1.5rem;
  }
}
.p-top-reason__title-number {
  font-size: 17rem;
  line-height: 0.5666666667;
  font-weight: 400;
  font-family: "Oswald", sans-serif;
}
@media screen and (max-width: 767px) {
  .p-top-reason__title-number {
    font-size: 7.3rem;
    line-height: 0.4931506849;
  }
}
.p-top-reason__title-large {
  font-size: 10rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__title-large {
    font-size: 4.3rem;
    line-height: 0.8372093023;
  }
}
.p-top-reason__list {
  width: 78rem;
  margin-inline: auto;
  margin-top: 12rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__list {
    width: 100%;
    margin-top: 5rem;
  }
}
.p-top-reason__item {
  background: #fff;
  border-radius: 0.8rem;
  display: grid;
  grid-template-columns: minmax(0, 11rem) minmax(0, 1fr);
  align-items: center;
  gap: 4.1rem;
  color: #184098;
  padding: 0 1rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__item {
    border-radius: 1rem;
    grid-template-columns: minmax(0, 4.7rem) minmax(0, 1fr);
    gap: 1.2rem;
    padding: 0 0.45em;
  }
}
.p-top-reason__item:not(:last-child) {
  margin-bottom: 4.4rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__item:not(:last-child) {
    margin-bottom: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .p-top-reason__item:first-child .p-top-reason__item-content {
    letter-spacing: -0.04em;
    padding: 0.3rem 0;
  }
}
.p-top-reason__item-number {
  font-weight: 500;
}
.p-top-reason__item-number p {
  font-family: "Oswald", sans-serif;
}
.p-top-reason__item-number p:first-child {
  background: #184098;
  color: #fff;
  transform: rotate(-10deg);
  border-radius: 0.3rem;
  padding: 0.8rem 1rem;
  margin-left: -0.3rem;
  letter-spacing: 0.3rem;
  text-align: center;
  font-size: 2.524rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__item-number p:first-child {
    font-size: 1.1rem;
    letter-spacing: 0.1em;
    padding: 0.3rem;
  }
}
.p-top-reason__item-number p:last-child {
  font-size: 12rem;
  line-height: 0.85;
  margin-top: 0.8rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__item-number p:last-child {
    font-size: 5.154rem;
    margin-top: 0.5rem;
  }
}
.p-top-reason__item-content {
  font-weight: 700;
  font-size: 4rem;
  line-height: 1.3;
  padding: 2rem 0;
  letter-spacing: -0.05em;
}
@media screen and (max-width: 767px) {
  .p-top-reason__item-content {
    font-size: 1.8rem;
    letter-spacing: 0;
    padding: 0.3rem;
    font-feature-settings: "palt";
  }
}
.p-top-reason__note {
  font-size: 2.8rem;
  font-weight: 400;
  line-height: 1.6071428571;
  color: #fff;
  text-align: center;
  margin-top: 2.5rem;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .p-top-reason__note {
    font-size: 1.6rem;
    margin-top: 2.4rem;
  }
}
.p-top-reason__text {
  font-size: 3.7rem;
  line-height: 1.35;
  font-weight: 700;
  text-align: center;
  margin-top: 5.6rem;
}
@media screen and (max-width: 767px) {
  .p-top-reason__text {
    font-size: 1.8rem;
    line-height: 1.5555555556;
    margin-top: 1.9rem;
  }
}
.p-top-reason__text-small {
  font-size: 2.7rem;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .p-top-reason__text-small {
    font-size: 1.8rem;
    line-height: 1.5555555556;
  }
}
.p-top-fee {
  color: #184098;
  padding: 15rem 0;
}
@media screen and (max-width: 767px) {
  .p-top-fee {
    padding: 3.7rem 0 1.7rem;
  }
}
.p-top-fee .l-container {
  max-width: 101rem;
}
@media screen and (max-width: 767px) {
  .p-top-fee .l-container {
    max-width: 100%;
  }
}
.sp-floating-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background-color: #fff;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
  padding: 10px;
  box-sizing: border-box;
}
.sp-floating-nav__container {
  display: flex;
  gap: 10px;
  max-width: 600px;
  margin: 0 auto;
}
.sp-floating-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  padding: 8px 5px;
  border-radius: 10rem;
  color: #fff;
  transition: opacity 0.2s;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.sp-floating-btn:active {
  opacity: 0.8;
  transform: translateY(1px);
}
.sp-floating-btn--line {
  background-color: #06c755;
}
.sp-floating-btn--reserve {
  background: #fe5226;
}
.sp-btn-sub {
  font-size: 10px;
  font-weight: 700;
  margin-bottom: 2px;
  opacity: 0.9;
}
.sp-btn-main {
  font-size: 16px;
  font-weight: 900;
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .sp-floating-nav {
    display: none;
  }
}