/* 1170 */

:root {
  --familyYuGothic: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  --familyZenOldMincho: "Zen Old Mincho", serif;
  --familyOswald: "Oswald", sans-serif;
  --familyMinchoB1: "Shippori Mincho B1", serif;
  --familySawarabiMincho: "Sawarabi Mincho", sans-serif;
  --colorBlack: #333;
  --colorWhite: #fff;
  --colorGreen1: #229384;
  --colorGreen2: #029e8a;
  --colorGreen3: #00a9a9;
  --colorRed: #f00;
  --colorYellowBG: #f6f6f1;
  --gradientGreen: linear-gradient(to bottom, #4bdb86, #05af4b);
  --gradientOrange: linear-gradient(to bottom, #ff9640, #db5801);
  --gradientTeal: linear-gradient(to bottom, #1db29f 0%, #128475 50%, #0d5f54);
  --sizeMax14Min12: clamp(0.75rem, 0.512rem + 0.5vw, 0.875rem);
  --sizeMax13Min11: clamp(0.688rem, 0.577rem + 0.32vw, 0.813rem);
  --sizeMax15Min13: clamp(0.813rem, 0.702rem + 0.32vw, 0.938rem);
  --sizeMax16Min14: clamp(0.875rem, 0.764rem + 0.32vw, 1rem);
  --sizeMax17Min14: clamp(0.875rem, 0.709rem + 0.48vw, 1.063rem);
  --sizeMax18Min16: clamp(1rem, 0.889rem + 0.32vw, 1.125rem);
  --sizeMax20Min18: clamp(1.125rem, 0.887rem + 0.5vw, 1.25rem);
  --sizeMax22Min18: clamp(1.125rem, 0.903rem + 0.65vw, 1.375rem);
  --sizeMax24Min20: clamp(1.25rem, 1.028rem + 0.65vw, 1.5rem);
  --sizeMax26Min22: clamp(1.375rem, 0.899rem + 0.99vw, 1.625rem);
  --sizeMax30Min24: clamp(1.5rem, 1.167rem + 0.97vw, 1.875rem);
  --sizeMax32Min26: clamp(1.625rem, 1.292rem + 0.97vw, 2rem);
  --sizeMax34Min26: clamp(1.625rem, 1.181rem + 1.29vw, 2.125rem);
  --sizeMax38Min28: clamp(1.75rem, 1.196rem + 1.61vw, 2.375rem);
  --sizeMax42Min34: clamp(2.125rem, 1.173rem + 1.99vw, 2.625rem);
  --sizeMax44Min36: clamp(2.25rem, 1.806rem + 1.29vw, 2.75rem);
  --sizeMax50Min38: clamp(2.375rem, 1.71rem + 1.94vw, 3.125rem);
  --sizeMax54Min42: clamp(2.625rem, 1.96rem + 1.94vw, 3.375rem);
}

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

p,
h5,
h4,
h3,
h2,
h1,
a,
dd,
dt,
li,
dd,
dt,
figcaption,
button,
input,
label,
textarea,
select,
address {
  color: var(--colorBlack);
  font-family: var(--familyYuGothic);
  font-size: var(--sizeMax16Min14);
  line-height: 1.5;
}

body {
  background-color: var(--colorWhite);
  padding-bottom: 7vw;
}

@media screen and (min-width: 1440px) {
  body {
    padding-bottom: 6.25rem;
  }
}

/* Common */

main {
  overflow: hidden;
}

.section {
  overflow: hidden;
  padding-inline: 1.25rem;
  position: relative;
  z-index: 1;
}

.section--padBlock {
  padding-block: 5rem;
}

.section--yellowBg {
  background: var(--colorYellowBG);
}

.section--flex .container {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.section__text {
  font-size: var(--sizeMax18Min16);
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}

.bgIcon {
  aspect-ratio: 443 / 462;
  height: auto;
  position: absolute;
  width: min(37.8632vw, 27.6875rem);
  z-index: -1;
}

.pageHeading__group {
  text-align: center;
}

.pageHeading__lead {
  font-size: var(--sizeMax26Min22);
  font-weight: 700;
}

.pageHeading {
  font-family: var(--familyZenOldMincho);
  font-size: var(--sizeMax42Min34);
  font-weight: 600;
  margin-top: 0.125rem;
}

.green1 {
  color: var(--colorGreen1);
}

.green2 {
  color: var(--colorGreen2);
}

.container {
  margin: 0 auto;
  max-width: 73.125rem;
  position: relative;
  width: 100%;
}

.bgBlock {
  background: var(--colorYellowBG);
  position: absolute;
  width: 97.22vw;
  z-index: -1;
}

.js-accordHeading {
  cursor: pointer;
  transition: opacity 0.2s;
}

.js-accordHeading:hover {
  opacity: 0.8;
}

.js-accordBody {
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.4s ease-out;
}

.for-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .for-sp {
    display: block;
  }
  .section__text {
    text-align: start;
  }

  .section--padBlock {
    padding-block: 3.75rem;
  }
}

/* Header */

/* Use a height animation for the drop down */

.header {
  background: #fff;
  padding: 0 1.25rem;
  position: relative;
  z-index: 100;
}

.header a {
  transition: opacity 0.2s;
}

.header a:hover {
  opacity: 0.6;
}

.header__inner {
  align-items: center;
  display: flex;
  height: 7.25rem;
  margin: 0 auto;
  max-width: 75rem;
  position: relative;
  width: 100%;
}

.header__logo {
  width: clamp(8.75rem, 15.33vw, 11.5rem);
}

.header__logo img {
  width: 100%;
}

.header__nav {
  margin-left: auto;
}

.header__nav ul {
  display: flex;
  gap: clamp(0.75rem, 1.67vw, 1rem);
}

.header__nav a {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "Yu Gothic", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  font-size: min(0.9375rem, 2.34vw);
  font-weight: 500;
  padding-block: 0.3125rem;
  position: relative;
}

.header__nav a::after {
  background: #1db29f;
  border-radius: 50px;
  bottom: 0;
  content: "";
  display: block;
  height: 0.125rem;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: calc();
  transition: transform 0.5s;
  width: 100%;
}

.header__nav a:hover::after {
  transform: scaleX(1);
}

.header__contactGroup,
.header__telephone {
  display: flex;
  flex-direction: column;
}

.header__contactGroup {
  margin-left: clamp(1rem, 2.67vw, 2rem);
}

.header__telephone {
  justify-content: center;
}

.header__telephone img {
  width: var(--sizeMax20Min18);
}

.header__telephoneLink {
  align-items: center;
  align-self: center;
  color: #1db29f;
  display: flex;
  font-family: var(--familyYuGothic);
  font-size: var(--sizeMax32Min26);
  font-weight: 700;
  gap: 0.125rem;
  line-height: 1;
}

.header__telephoneTimes {
  font-family: var(--familyYuGothic);
  font-size: 0.875rem;
  font-weight: 500;
  margin-left: 0.25rem;
  margin-top: 0.25rem;
  text-align: center;
}

.header__telephoneTimes .small {
  font-size: 85%;
  line-height: 1.4em;
}

.header__contactLinks {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.header__contactLinks a {
  background: #1db29f url(../images/link_btn.svg) no-repeat right 0.4375rem center;
  background-size: 6px;
  border-radius: 100px;
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.1875rem 1.5625rem 0.1875rem 1.25rem;
  text-decoration: none;
}

.hamburgerBtn {
  background: transparent;
  border: none;
  cursor: pointer;
  display: none;
  height: 1.625rem;
  margin-left: 1rem;
  position: relative;
  transition: 0.3s;
  width: 1.875rem;
}

.hamburgerBtn span {
  background: #1db29f;
  height: 0.1875rem;
  left: 0;
  position: absolute;
  transition: transform 0.2s ease-out;
  width: 1.875rem;
}

.hamburgerBtn span:nth-child(1) {
  top: 0;
}

.navOpen .hamburgerBtn span:nth-child(1) {
  transform: translate(-1px, 12px) rotate(45deg);
}

.hamburgerBtn span:nth-child(2) {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.navOpen .hamburgerBtn span:nth-child(2) {
  opacity: 0;
}

.hamburgerBtn span:nth-child(3) {
  top: calc(100% - 3px);
}

.navOpen .hamburgerBtn span:nth-child(3) {
  transform: translate(-1px, -12px) rotate(-45deg);
}

@media screen and (max-width: 1080px) {
  .header__nav {
    bottom: 0;
    left: 50%;
    max-height: 0;
    overflow: hidden;
    pointer-events: none;
    position: absolute;
    transform: translate(-50%, 100%);
    transition: max-height 0.5s;
    width: 100vw;
  }
  .navOpen .header__nav {
    pointer-events: all;
  }
  .header__contactGroup {
    margin-left: auto;
  }
  .hamburgerBtn {
    display: block;
  }
  .header__nav ul {
    background: #e8f8db;
    flex-direction: column;
    gap: 0;
  }
  .header__nav ul li {
    background: #e8f8db url(../images/link_btn_green.svg) no-repeat right 20px center;
    background-size: 10px;
    border-bottom: 1px solid #2ab7a5;
    padding: 0.75rem 1.875rem;
  }
  .header__nav ul li:first-child {
    border-top: 1px solid #2ab7a5;
  }
  .header__nav ul a {
    font-size: 1rem;
  }
}

@media screen and (max-width: 500px) {
  .header__inner {
    height: 3.5rem;
  }
  .header__telephoneLinkText,
  .header__telephoneTimes,
  .header__contactLinks {
    display: none;
  }
  .header__telephone img {
    width: 1.5rem;
  }
}

/* Footer */

.pageFooter__linkArea {
  background-color: #e2f6ed;
  border-top: 2px solid #6ecfc3;
  padding: 1.25rem 0.625rem;
}

.pageFooter__linkContainer {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem 0;
  margin: 0 auto;
  max-width: 72.5rem;
}

.pageFooter__column {
  border-left: 1px solid #6ecfc3;
  padding: 0 0.8125rem;
}

.pageFooter__linkContainer a {
  background: url(../images/link_btn_green.svg) no-repeat left 20px top 13px;
  background-size: 10px;
  color: black;
  display: block;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "Yu Gothic", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  font-size: var(--sizeMax16Min14);
  font-weight: 700;
  line-height: 1em;
  padding: 0.625rem 2.5rem;
  position: relative;
  text-decoration: none;
}

.pageFooter__subGroup {
  padding: 0 0.8125rem;
}

.pageFooter__tertiaryGroup {
  border-top: 1px dotted #6ecfc3;
  margin-top: 0.625rem;
  padding: 0.625rem 0.8125rem 0;
}

.pageFooter__secondaryLink a {
  background: url(../images/footernav_lili.svg) no-repeat left 30px top 8px;
  background-size: 7px;
  font-size: var(--sizeMax15Min13);
  font-weight: 500;
  line-height: 1.5;
  padding: 0.375rem 1.875rem 0.375rem 3.125rem;
}

.pageFooter__tertiaryLink a {
  background-image: url(../images/link_btn_green.svg);
  background-position: left 20px top 8px;
  background-size: 7px;
  font-size: var(--sizeMax14Min12);
  font-weight: 400;
  padding: 0.3125rem 0.625rem 0.3125rem 2.5rem;
}

.pageFooter__linkContainer a {
  transition: 0.3s;
}

.pageFooter__linkContainer a::after {
  background: #1db29f;
  border-radius: 50px;
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.8s;
  width: 100%;
}

.pageFooter__linkContainer a:hover {
  opacity: 0.6;
}

.pageFooter__linkContainer a:hover::after {
  transform: scale(1, 1);
}

.footer__main {
  background: #1db29f;
  padding: 2.5rem 1.25rem 1.875rem;
}

.footer__mainContainer {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 75rem;
}

.footer__left {
  display: flex;
  flex-direction: column;
}

.footer__right {
  margin-top: 0.625rem;
}

.footer__leftLinks {
  align-items: center;
  display: flex;
  gap: 0.5rem;
}

.footer__logo {
  transition: 0.3s;
}

.footer__logo:hover {
  opacity: 0.6;
}

.footer__logo img {
  width: clamp(15rem, 26.7vw, 20rem);
}

.footer__instagram {
  margin-top: 1rem;
  transition: 0.3s;
}

.footer__instagram:hover {
  opacity: 0.6;
}

.footer__instagram img {
  width: clamp(1.375rem, 3.12vw, 1.75rem);
}

.footer__address {
  color: #fff;
  font-size: 0.875rem;
  font-style: normal;
  margin-top: 1.25rem;
}

.footer__address a {
  color: #fff;
  font-size: 0.8125rem;
  text-decoration: underline;
}

.footer__contactNumbers {
  color: #fff;
  margin: 0.625rem 0;
}

.footer__contactNumbers a {
  color: #fff;
  margin: 0 0.25rem;
}

.footer__contactNumbers .small {
  font-size: 85%;
  line-height: 1.4em;
}

.footer__message {
  color: #fff;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "Yu Gothic", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  text-align: center;
}

.footer__message--small {
  font-size: var(--sizeMax13Min11);
  line-height: 1em;
  margin-right: 0.625rem;
  margin-top: 0.625rem;
  text-align: end;
}

.footer__phone {
  align-items: center;
  background: url(../images/footer_tel@2x.png) no-repeat left center;
  background-size: 30px;
  color: #fff;
  display: flex;
  font-size: var(--sizeMax38Min28);
  font-weight: 700;
  gap: 0.25rem;
  line-height: 1em;
  padding: 0.625rem 0 0.625rem 2.1875rem;
}

.footer__times {
  color: #fff;
  margin-top: 0.25rem;
  text-align: center;
}

.footer__times .small {
  font-size: 85%;
  line-height: 1.4em;
}

.footer__copyright {
  background: #128475;
  padding: 0.9375rem 0;
}

.footer__copyright p,
.footer__mainCopyright {
  color: #fff;
  font-size: 0.6875rem;
  text-align: center;
}

.footer__bannerLinks {
  display: none;
}

.pageTop {
  bottom: max(4.032vw, 3.125rem);
  position: fixed;
  right: 1.25rem;
  transition: 0.3s ease-out;
  z-index: 10;
}

.pageTop:hover {
  opacity: 0.6;
}

.pageTop.hidden {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.pageTop img {
  width: clamp(3.75rem, 6.58vw, 4.8125rem);
}

@media screen and (max-width: 767px) {
  .pageFooter {
    position: relative;
    z-index: 10;
  }

  .pageFooter__linkArea {
    display: none;
  }

  .footer__right {
    background: #189280;
    bottom: 0;
    display: grid;
    grid-template-columns: 38% 62%;
    left: 0;
    position: fixed;
    width: 100%;
  }

  .footer__message {
    border-bottom: 1px solid #1fbea6;
    font-size: min(3.47vw, 0.8125rem);
    grid-column: span 2;
    grid-row: 1;
    padding: min(1.3333vw, 0.3125rem) 0;
    text-align: center;
  }

  .footer__message--small {
    display: none;
  }

  .footer__phone {
    background-size: min(4.8vw, 18px);
    font-size: min(7.4667vw, 1.75rem);
    grid-column: 2;
    grid-row: 2;
    justify-self: center;
    margin: min(1.0667vw, 0.25rem) 0 0;
    padding: min(1.0667vw, 0.25rem) 0 0 min(6.6667vw, 1.5625rem);
  }

  .footer__times {
    font-size: min(0.875rem, 3.7333vw);
    grid-column: 2;
    grid-row: 3;
    padding-bottom: min(1.0667vw, 0.25rem);
  }

  .footer__bannerLinks {
    align-self: center;
    display: flex;
    flex-direction: column;
    gap: min(1.0667vw, 0.25rem);
    grid-column: 1;
    grid-row: span 2;
    justify-self: center;
    max-width: 8.75rem;
    width: 100%;
    padding-inline: 0.375rem;
  }

  .footer__bannerLinks a {
    background: white url(../images/link_btn_green.svg) no-repeat right 7px center;
    background-size: min(1.6vw, 6px);
    border-radius: 100px;
    color: #1db29f;
    display: block;
    font-size: min(3.2vw, 0.75rem);
    font-weight: 500;
    padding: 0.0625rem min(3.2vw, 0.75rem) 0.0625rem min(1.8667vw, 0.4375rem);
    text-align: center;
  }

  .footer__left {
    margin: 0 auto;
    text-align: center;
  }

  .footer__leftLinks {
    flex-direction: column;
    gap: 0;
  }

  .footer__address {
    line-height: 1.75;
  }

  .footer__instagram {
    margin-top: 0;
  }

  .footer__instagram img {
    width: 1.75rem;
  }

  .footer__logo img {
    max-width: 20rem;
    width: 100%;
  }

  .footer__address {
    margin-top: 0.625rem;
  }

  .footer__copyright {
    display: none;
  }

  .footer__mainCopyright {
    font-size: 0.625rem;
    margin: 0.75rem 0 1.5rem;
  }

  .pageTop {
    bottom: 4.0625rem;
    right: 0.125rem;
  }
}

/* Mv */

.mv {
  aspect-ratio: 1440 / 762;
  background: #fff;
  display: flex;
  height: auto;
  overflow: hidden;
  position: relative;
  width: 100vw;
  z-index: 5;
}

.mv__bannerBg {
  background: var(--gradientTeal);
  bottom: 0;
  display: block;
  height: 25.7%;
  position: absolute;
  width: 100%;
  z-index: -1;
}

.mv__bgIconTop {
  left: -7.0139vw;
  position: absolute;
  top: 0;
  width: 30.7639vw;
  z-index: 2;
}

.mv__bgIconBottom {
  left: 73.1806vw;
  position: absolute;
  top: 19.69%;
  width: 25vw;
  z-index: 2;
}

.mv__visual {
  position: absolute;
  z-index: 2;
}

.mv__visual--one {
  left: 82.7778vw;
  top: 5.18%;
  width: 25.9722vw;
}

.mv__visual--two {
  left: -13.9583vw;
  top: 26.3%;
  width: 37.9861vw;
}

.mv__visual--three {
  left: 77.2917vw;
  top: 54.27%;
  width: 39.375vw;
}

.mv__bgBlock {
  aspect-ratio: 1400 / 658;
  background: #eef0e7;
  border-radius: 80px 0 0 80px;
  height: auto;
  left: 2.7778vw;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 97.2222vw;
  z-index: 1;
}

.mv__wave {
  aspect-ratio: 1759 / 1806;
  height: auto;
  mix-blend-mode: overlay;
  opacity: 0.5;
  position: absolute;
  width: 122.1528vw;
  z-index: -2;
}

.mv__wave--right {
  left: 30.5%;
  top: 0;
}

.mv__wave--left {
  right: 34.43%;
  top: -26.42%;
}

.mv__outline {
  position: absolute;
  z-index: 1;
}

.mv__outline--one {
  left: -17.43%;
  top: 53.5%;
  width: 47.5%;
}

.mv__outline--two {
  left: -17.57%;
  top: 56.47%;
  width: 54.93%;
}

.mv__outline--three {
  left: 73.64%;
  top: -14.63%;
  width: 48.5%;
}

.mv__headingGroup {
  left: 0;
  position: absolute;
  right: 0;
  text-align: center;
  top: calc(9.32% - 5px);
  z-index: 3;
}

.mv__headingLead {
  color: #107567;
  font-family: var(--familyZenOldMincho);
  font-size: 1.6667vw;
  font-weight: 700;
  line-height: 1.2;
}

.mv__heading {
  color: #0a0a0a;
  font-family: var(--familyZenOldMincho);
  font-size: 2.9167vw;
  font-weight: 600;
  line-height: 1.14;
  margin-top: 1.3889vw;
}

.mv__heading .large {
  font-size: 3.75vw;
}

.mv__list {
  display: grid;
  gap: 2.2222vw;
  grid-template-columns: 1fr 1fr 1fr;
  left: 31.3889vw;
  padding: 0.5556vw 0;
  position: absolute;
  top: calc(32.77% + 5px);
  width: 37.7778vw;
  z-index: 3;
}

.mv__item {
  aspect-ratio: 1 / 1;
  height: auto;
  width: 100%;
}

.mv__figure {
  align-items: center;
  background: linear-gradient(to bottom, #128475, #1db29f);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  width: 100%;
}

.mv__figure--one {
  gap: 0.9028vw;
}

.mv__figure--one img {
  width: 3.8889vw;
}

.mv__figure--two {
  gap: 0.9028vw;
}

.mv__figure--two img {
  width: 5.2778vw;
}

.mv__figure--three {
  gap: 0.6944vw;
}

.mv__figure--three img {
  width: 2.7083vw;
}

.mv__caption {
  color: #fff;
  font-family: var(--familyZenOldMincho);
  font-size: 1.25vw;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.mv__contact {
  align-items: center;
  background: var(--gradientOrange);
  border-radius: 40px;
  color: #fff;
  display: flex;
  font-family: var(--familyZenOldMincho);
  font-size: 1.3889vw;
  font-weight: 700;
  height: 4.1667vw;
  justify-content: center;
  left: 39.8611vw;
  letter-spacing: -0.028em;
  line-height: 1.4;
  position: absolute;
  top: calc(69.56% - 5px);
  transition: opacity 0.2s;
  width: 20.8333vw;
  z-index: 3;
}

.mv__contact:hover {
  opacity: 0.8;
}

.mv__cta {
  align-items: center;
  background: #fff;
  border: 2px solid var(--colorGreen3);
  border-radius: 4px;
  display: flex;
  gap: 0.5556vw;
  height: 5vw;
  justify-content: center;
  left: 33.6111vw;
  position: absolute;
  top: calc(58.16% - 5px);
  transition: opacity 0.2s;
  width: 33.3333vw;
  z-index: 3;
}

.mv__cta:hover {
  opacity: 0.8;
}

.mv__ctaText {
  align-items: center;
  color: var(--colorGreen1);
  display: grid;
  font-family: var(--familyZenOldMincho);
  font-size: 1.3889vw;
  font-weight: 700;
  gap: 0.5556vw;
  grid-template-columns: 1.3889vw 1fr;
  letter-spacing: -0.028em;
  line-height: 1.4;
}

.mv__ctaLink {
  color: var(--colorGreen1);
  font-family: var(--familyOswald);
  font-size: 2.2222vw;
  letter-spacing: 0.03em;
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .mv__bannerBg {
    display: none;
  }
  .ctaFoot--mv {
    display: none;
  }
  .mv {
    align-items: center;
    aspect-ratio: unset;
    flex-direction: column;
    height: fit-content;
    padding: min(7.75rem, 31.7949vw) 0 min(7.5rem, 30.7692vw);
  }
  .mv__bgBlock {
    border-radius: 0;
    height: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
  }
  .mv__visual--two {
    left: 0;
    top: 0;
    transform: translate(-17.3333%, -42.33%);
    width: 47.359vw;
  }
  .mv__visual--one {
    left: unset;
    right: 0;
    top: 0;
    transform: translate(36%, 16%);
    width: 42.5641vw;
  }
  .mv__visual--three {
    bottom: 0;
    left: unset;
    right: 0;
    top: unset;
    transform: translate(39%, 12%);
    width: 47.8974vw;
  }
  .mv__headingGroup {
    position: static;
    text-align: center;
    width: 100%;
  }
  .mv__headingLead {
    font-size: min(1.75rem, 5.1282vw);
  }
  .mv__heading {
    font-size: min(1.8125rem, 5.641vw);
    line-height: 1.5;
    margin-top: min(0.5rem, 2.0513vw);
  }
  .mv__heading .sp-large {
    font-size: min(2.125rem, 6.6667vw);
  }
  .mv__heading .sp-xl,
  .mv__heading .large {
    font-size: min(2.625rem, 9.2308vw);
    line-height: 1.1;
  }
  .mv__list {
    display: grid;
    gap: 0.625rem;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: min(0.75rem, 4.1026vw);
    padding: min(0.375rem, 1.5385vw) 0;
    position: static;
    width: min(26.5rem, 84.1026vw);
  }
  .mv__figure--one {
    gap: min(0.375rem, 1.5385vw);
  }
  .mv__figure--one img {
    width: min(2.75rem, 9.2308vw);
  }
  .mv__figure--two {
    gap: min(0.375rem, 1.5385vw);
  }
  .mv__figure--two img {
    width: min(3.625rem, 12.3077vw);
  }
  .mv__figure--three {
    gap: min(0.375rem, 1.0256vw);
  }
  .mv__figure--three img {
    width: min(1.875rem, 6.4103vw);
  }
  .mv__caption {
    font-size: min(1.125rem, 3.5897vw);
  }
  .mv__cta {
    background: linear-gradient(to bottom, #fff, #d3fff9);
    border: 1px solid var(--colorGreen3);
    border-radius: 40px;
    filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
    flex-direction: column;
    gap: min(4px, 1.0256vw);
    height: min(4.625rem, 18.9744vw);
    margin-top: min(1rem, 4.1026vw);
    position: static;
    width: min(18.5rem, 75.8974vw);
  }
  .mv__ctaText {
    font-size: min(1rem, 4.1026vw);
    font-weight: 700;
    gap: min(0.25rem, 1.0256vw);
    grid-template-columns: min(0.875rem, 3.5897vw) 1fr;
  }
  .mv__ctaTextIcon img {
    aspect-ratio: 1 / 1;
    height: auto;
  }
  .mv__ctaLink {
    font-size: min(1.75rem, 7.1795vw);
  }
  .mv__contact {
    background: linear-gradient(to bottom, #ff9640, #db5801);
    filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
    font-size: min(1.125rem, 4.6154vw);
    height: min(3.25rem, 13.3333vw);
    line-height: 1.4;
    margin-top: min(0.5rem, 2.0513vw);
    position: static;
    width: min(18.25rem, 74.8718vw);
  }

  .mv__outline--three {
    display: none;
  }

  .mv__wave--right {
    aspect-ratio: unset;
    height: 93.485%;
    left: 56.0256%;
    max-width: fit-content;
    top: 33.18%;
    width: auto;
  }

  .mv__wave--left {
    aspect-ratio: unset;
    height: 91.24%;
    left: unset;
    max-width: max-content;
    right: 55.2821%;
    top: -1.06%;
    transform: rotate(34deg) scaleX(-1);
    width: auto;
  }

  .mv__outline--one {
    height: 17.12%;
    left: 0;
    top: 80%;
    transform: translateX(-43.29%);
    width: auto;
    z-index: 2;
  }

  .mv__outline--two {
    height: 20.3%;
    left: 0;
    top: 81.515%;
    transform: translateX(-43.96%);
    width: auto;
  }

  .mv__bgIconBottom {
    bottom: 0;
    height: 36.82%;
    left: 0;
    position: absolute;
    top: unset;
    transform: translate(-13.95%, 22.33%);
    width: auto;
  }

  .mv__bgIconTop {
    height: 36.82%;
    left: unset;
    position: absolute;
    right: 0;
    top: 0;
    transform: translate(13.05%, -15.67%);
    width: auto;
  }
}

@media screen and (max-width: 500px) {
  .mv__visual--two {
    left: -13.3333vw;
    top: -3.3333vw;
    transform: unset;
    width: 54.359vw;
  }
  .mv__visual--one {
    left: unset;
    right: -15.3846vw;
    top: 5.641vw;
    transform: unset;
    width: 42.5641vw;
  }
  .mv__visual--three {
    bottom: -4.5641vw;
    left: unset;
    right: -24.8718vw;
    top: unset;
    transform: unset;
    width: 65.8974vw;
  }
  .mv__wave--left {
    height: 89.242%;
    left: unset;
    max-width: fit-content;
    right: 28.72vw;
    top: -9.24%;
    transform: rotate(34deg) scaleX(-1);
    width: auto;
  }
  .mv__wave--right {
    height: 93.485%;
    left: 38.0256%;
    max-width: fit-content;
    top: 33.18%;
    width: auto;
  }
  .mv__bgIconTop {
    transform: translate(13.05%, -31.67%);
  }
}

/* CTA Foot */

.ctaFoot {
  background: var(--gradientTeal);
  bottom: 0;
  left: 0;
  padding: 1.1111vw 1.3889vw;
  position: fixed;
  width: 100%;
  z-index: 3;
}

.ctaFoot--mv {
  background: transparent;
  margin-top: auto;
  position: relative;
}

.ctaFoot__content {
  display: grid;
  gap: 3.8889vw;
  grid-template-columns: auto auto;
  margin: 0 auto;
  width: fit-content;
}

.ctaFoot__number {
  align-items: center;
  display: flex;
  gap: 0.8333vw;
}

.ctaFoot__numberText {
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 1.1806vw;
  font-weight: 700;
  line-height: 1.5;
}

.ctaFoot__numberText .large {
  font-size: 1.5278vw;
}

.ctaFoot__numberLink {
  align-items: center;
  color: #fff;
  display: grid;
  font-family: var(--familyOswald);
  font-size: 2.6389vw;
  gap: 0.2778vw;
  grid-template-columns: 1.9444vw 1fr;
  letter-spacing: 0.029em;
  line-height: 1.05;
}

.ctaFoot__numberNotice {
  color: #fff;
  font-size: var(--sizeMax14Min12);
  font-weight: 700;
  letter-spacing: 0.0625em;
  line-height: 1.14;
  margin-left: 2.3611vw;
  margin-top: 0.5556vw;
}

.ctaFoot__buttons {
  display: flex;
  gap: 1.1111vw;
}

.ctaFoot__lineLink,
.ctaFoot__mailLink {
  align-items: center;
  border-radius: 100px;
  color: #fff;
  display: grid;
  gap: 0.8333vw;
  height: 4.8611vw;
  justify-content: center;
  min-width: 18.0556vw;
  transition: opacity 0.2s;
  width: max-content;
}

.ctaFoot__lineLink:hover,
.ctaFoot__mailLink:hover {
  opacity: 0.8;
}

.ctaFoot__lineLink {
  background: var(--gradientGreen);
  grid-template-columns: 1.9444vw 1fr 0.5556vw;
  padding-left: 2.7778vw;
  padding-right: 1.6667vw;
}

.ctaFoot__mailLink {
  background: var(--gradientOrange);
  grid-template-columns: 3.0556vw 1fr 0.5556vw;
  padding: 0 1.6667vw;
}

.ctaFoot__lineLinkText,
.ctaFoot__mailLinkText {
  font-size: 1.5278vw;
  font-weight: 700;
  line-height: 1.1;
}

.ctaFoot__lineLinkText .small,
.ctaFoot__mailLinkText .small {
  font-size: 0.9722vw;
}

@media screen and (min-width: 1440px) {
  .ctaFoot--fixed {
    padding: 1rem 1.25rem 1rem;
  }

  .ctaFoot--fixed .ctaFoot__content {
    gap: 3.5rem;
    margin: 0 auto;
  }

  .ctaFoot--fixed .ctaFoot__number {
    gap: 0.75rem;
  }

  .ctaFoot--fixed .ctaFoot__numberText {
    font-size: 1.0625rem;
  }

  .ctaFoot--fixed .ctaFoot__numberText .large {
    font-size: 1.375rem;
  }

  .ctaFoot--fixed .ctaFoot__numberLink {
    font-size: 2.375rem;
    gap: 0.25rem;
    grid-template-columns: 1.75rem 1fr;
  }

  .ctaFoot--fixed .ctaFoot__numberNotice {
    font-size: 0.875rem;
    margin-left: 2.125rem;
    margin-top: 0.5rem;
  }

  .ctaFoot--fixed .ctaFoot__buttons {
    gap: 1rem;
  }

  .ctaFoot--fixed .ctaFoot__lineLink,
  .ctaFoot--fixed .ctaFoot__mailLink {
    gap: 0.75rem;
    height: 4.375rem;
    min-width: 16.25rem;
  }

  .ctaFoot--fixed .ctaFoot__lineLink {
    grid-template-columns: 1.75rem 1fr 0.5rem;
    padding-left: 2.5rem;
    padding-right: 1.5rem;
  }

  .ctaFoot--fixed .ctaFoot__mailLink {
    grid-template-columns: 2.75rem 1fr 0.5rem;
    padding: 0 1.5rem;
  }

  .ctaFoot--fixed .ctaFoot__lineLinkText,
  .ctaFoot--fixed .ctaFoot__mailLinkText {
    font-size: 1.375rem;
  }

  .ctaFoot--fixed .ctaFoot__lineLinkText .small,
  .ctaFoot--fixed .ctaFoot__mailLinkText .small {
    font-size: 0.875rem;
  }
}

@media screen and (max-width: 767px) {
  .ctaFoot {
    display: none;
  }
}

/* Concerns */

.section--concerns {
  position: relative;
}

.bgIcon--concerns {
  left: -9.0624vw;
  text-align: center;
  top: -5.4376vw;
  width: 30.7639vw;
}

.section--concerns .container {
  padding-block: 9.0625rem 5.25rem;
}

.section--concerns .pageHeading {
  font-family: var(--familyMinchoB1);
}

.concerns__list {
  display: grid;
  gap: 3rem clamp(1.625rem, 3.8462vw, 2.8125rem);
  grid-template-columns: 1fr 1fr 1fr;
  margin: 2.875rem auto 0;
}

.concerns__figure {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.concerns__figure img {
  border-radius: 10px;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  width: 100%;
}

.concerns__caption {
  font-weight: 700;
}

.concerns__caption .large {
  font-family: var(--familyZenOldMincho);
  font-size: var(--sizeMax20Min18);
}

.bgBlock--concerns {
  border-radius: 0 40px 40px 0;
  bottom: 0;
  height: 66.72%;
  left: 0;
  margin-left: calc(50% - 50vw);
}

@media screen and (max-width: 1170px) {
  .bgIcon--concerns {
    left: -9.8624vw;
    top: -3.5376vw;
  }
  .concerns__list {
    grid-template-columns: 1fr 1fr;
  }
}

@media screen and (max-width: 767px) {
  .section--concerns .container {
    padding-block: calc(9.0625rem - 30px) 5.25rem;
  }
  .section--concerns .pageHeading__group {
    padding-bottom: 30px;
  }
  .concerns__list {
    grid-template-columns: 1fr;
    max-width: 30rem;
  }
  .bgBlock--concerns {
    height: 87.72%;
  }
  .bgIcon--concerns {
    left: -9.3125rem;
    top: -1.1875rem;
    width: 16rem;
  }
}

@media screen and (max-width: 500px) {
  .bgIcon--concerns {
    left: -25.3624vw;
    top: -9.5376vw;
    width: 60vw;
  }
}

/* Reassurance */

.section--reassurance {
  padding-block: clamp(5rem, 8.547vw, 6.25rem);
}

.reassurance__list {
  display: grid;
  gap: 1.5rem 2rem;
  grid-template-columns: 1fr 1fr 1fr;
  margin: 0 auto;
}

.reassurance__item {
  background: #fff;
  border-radius: 10px;
  box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.15);
  display: grid;
  grid-template-rows: 5rem 1fr;
  padding: 1.875rem clamp(1.25rem, 2.735vw, 2rem) 2.5rem;
  width: 100%;
}

.reassurance__content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: 1.125rem;
}

.reassurance__subheading {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax26Min22);
  font-weight: 600;
  text-align: center;
}

.bgBlock--reassurance {
  border-radius: 40px 0 0 0;
  bottom: 0;
  height: 66.72%;
  margin-right: calc(50% - 50vw);
  right: 0;
}

.reassurance__icon {
  align-items: flex-end;
  display: flex;
  justify-content: center;
}

.reassurance__text {
  font-size: var(--sizeMax18Min16);
  font-weight: 500;
  line-height: 1.7;
}

.bgIcon--reassurance {
  bottom: -4.3139vw;
  right: -0.5556vw;
  width: 30.7639vw;
}

@media screen and (max-width: 900px) {
  .reassurance__list {
    grid-template-columns: 1fr 1fr;
  }
  .bgBlock--reassurance {
    height: 72.72%;
  }
}

@media screen and (max-width: 767px) {
  .bgIcon--reassurance {
    bottom: -6.3139vw;
    right: -10.5556vw;
    width: 44.7639vw;
  }
}

@media screen and (max-width: 550px) {
  .reassurance__list {
    grid-template-columns: 1fr;
    max-width: 25rem;
  }
  .bgBlock--reassurance {
    height: 82.72%;
  }
  .bgIcon--reassurance {
    bottom: -11.3139vw;
    right: -23.5556vw;
    width: 81.7639vw;
  }
}

/* CTA Banner */

.ctaBanner {
  background: var(--gradientTeal);
  overflow: hidden;
  padding: 3.5rem 1.25rem;
  position: relative;
  text-align: center;
  z-index: 1;
}

.ctaBanner .container {
  display: flex;
  flex-direction: column;
  width: fit-content;
}

.ctaBanner__wave {
  aspect-ratio: 1051 / 1079;
  height: 192.34%;
  mix-blend-mode: overlay;
  opacity: 0.1;
  position: absolute;
  width: auto;
  z-index: -1;
}

.ctaBanner__wave--left {
  right: 43.0684vw;
  top: -9.79%;
}

.ctaBanner__wave--right {
  left: 51.741vw;
  top: -61.14%;
}

.ctaBanner__pattern {
  aspect-ratio: 443 / 462;
  height: auto;
  opacity: 0.2;
  position: absolute;
  width: 30.76vw;
  z-index: -2;
}

.ctaBanner__pattern--left {
  left: -7.78vw;
  top: -3.82vw;
  transform: scale(-1);
}

.ctaBanner__pattern--right {
  bottom: -6.021vw;
  right: -5.46vw;
}

.ctaBanner__heading {
  color: #fff;
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax44Min36);
  font-weight: 600;
}

.ctaBanner__text {
  color: #fff;
  font-size: var(--sizeMax20Min18);
  font-weight: 700;
  line-height: 1.7;
  margin-top: 0.75rem;
}

.ctaBanner__contact {
  align-items: center;
  background: #fff;
  border: 2px solid var(--colorGreen3);
  border-radius: 4px;
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-inline: auto;
  margin-top: 1.25rem;
  padding: 1.375rem;
  width: fit-content;
}

.ctaBanner__contactLead {
  color: var(--colorBlack);
  font-size: var(--sizeMax14Min12);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.14;
}

.ctaBanner__contactHeading {
  color: var(--colorGreen1);
  font-family: var(--familyZenOldMincho);
  font-size: var(--sizeMax20Min18);
  font-weight: 700;
  letter-spacing: -0.028em;
  line-height: 1.16;
  margin-top: 0.25rem;
}

.ctaBanner__contactHeading .large {
  font-size: var(--sizeMax30Min24);
}

.ctaBanner__contactLink {
  align-items: center;
  display: grid;
  gap: 0.3125rem;
  grid-template-columns: clamp(1.625rem, 4.25vw, 2.125rem) 1fr;
  transition: opacity 0.2s;
}

.ctaBanner__contactLink:hover {
  opacity: 0.8;
}

.ctaBanner__contactText {
  color: var(--colorGreen3);
  font-family: var(--familyOswald);
  font-size: var(--sizeMax54Min42);
  letter-spacing: 0.03em;
  line-height: 1;
}

.ctaBanner__consult {
  border: 1px solid #fff;
  border-radius: 4px;
  margin: 1.5rem auto 0;
  max-width: 42.6875rem;
  padding: 1rem 1.5rem 1.125rem;
  width: 100%;
}

.ctaBanner__consult * {
  color: #fff;
}

.ctaBanner__consultHeading {
  font-family: var(--familyZenOldMincho);
  font-size: 1.375rem;
  font-weight: 600;
}

.ctaBanner__consultContact {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr 1fr;
  margin-top: 0.875rem;
}

.ctaBanner__consultSubheading {
  align-items: center;
  display: grid;
  font-size: 0.8125rem;
  font-weight: 700;
  gap: 0.5rem;
  grid-template-columns: 1fr auto 1fr;
  justify-content: center;
  margin: 0 auto;
  max-width: 18.25rem;
}

.ctaBanner__line {
  background: #fff;
  display: block;
  height: 1px;
  line-height: 1.27;
  opacity: 0.4;
}

.ctaBanner__consultLink {
  align-items: center;
  display: grid;
  font-family: var(--familyOswald);
  font-size: 2rem;
  gap: 0.25rem;
  grid-template-columns: 1.5625rem 1fr;
  letter-spacing: 0.03em;
  line-height: 1.25;
  margin: 0.375rem auto 0;
  transition: opacity 0.2s;
  width: fit-content;
}

.ctaBanner__consultLink:hover {
  opacity: 0.8;
}

.ctaBanner__consultNotice {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.7;
  margin-top: 0.125rem;
}

.ctaBanner__mailLink {
  align-items: center;
  background: var(--gradientOrange);
  border-radius: 40px;
  display: grid;
  font-size: 1rem;
  font-weight: 700;
  gap: 0.5rem;
  grid-template-columns: 2.0625rem auto 0.75rem;
  justify-content: center;
  letter-spacing: 0.01em;
  margin-top: 0.5rem;
  min-height: 3.5rem;
  outline: 1px solid rgba(0, 0, 0, 0);
  padding: 1rem 1.125rem;
  transition: opacity 0.2s;
  width: 100%;
}

.ctaBanner__mailLink:hover {
  opacity: 0.8;
}

@media screen and (max-width: 767px) {
  .ctaBanner__heading {
    font-size: clamp(1.625rem, 0.923rem + 2.25vw, 2rem);
  }
  .ctaBanner__text {
    font-size: 1rem;
  }
  .ctaBanner__contact {
    flex-direction: column;
  }
  .ctaBanner__consultContact {
    grid-template-columns: 1fr;
  }
  .ctaBanner__mailLink {
    justify-self: center;
    max-width: 19.75rem;
  }
  .ctaBanner__consult {
    width: fit-content;
  }
  .ctaBanner__contactLead {
    line-height: 1.5;
  }
  .ctaBanner__pattern {
    width: 40.76vw;
  }
  .ctaBanner__wave--right {
    left: 59.741vw;
  }
  .ctaBanner__wave--left {
    right: 33.0684vw;
  }
}

@media screen and (max-width: 500px) {
  .ctaBanner__contactText {
    font-size: min(11vw, 2.625rem);
  }
  .ctaBanner__mailLink {
    font-size: min(1rem, 4.267vw);
    grid-template-columns: 1.625rem auto 0.4375rem;
    padding-inline: 2.35vw;
  }
  .ctaBanner__consult {
    padding: 1.5rem 1.125rem;
  }
  .ctaBanner__pattern {
    width: 77.76vw;
  }
  .ctaBanner__pattern--right {
    bottom: -28.621vw;
    right: -15.56vw;
  }
  .ctaBanner__pattern--left {
    left: -33.78vw;
    top: -6.82vw;
  }
}

/* Plan */

.section--plan {
  z-index: 1;
}

.plan__list {
  display: grid;
  gap: 3.125rem clamp(2rem, 4.2735vw, 3.125rem);
  grid-template-columns: 1fr 1fr;
}

.plan__item {
  align-items: center;
  background: #fff;
  border-radius: 15px;
  display: flex;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  flex-direction: column;
  padding: 1.5rem;
  width: 100%;
}

.plan__heading {
  color: #000;
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax24Min20);
  font-weight: 500;
  padding-bottom: 0.8125rem;
  position: relative;
  width: fit-content;
}

.plan__heading::after {
  background: var(--colorGreen3);
  bottom: 0;
  content: "";
  display: block;
  height: 2px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 68.2%;
}

.plan__price {
  display: grid;
  grid-template-columns: auto auto auto;
  margin-top: 2.8125rem;
}

.plan__priceType {
  align-self: flex-start;
  font-family: var(--familyMinchoB1);
  font-size: min(3.2479vw, 2.375rem);
  font-weight: 500;
  line-height: 1.45;
  margin-right: min(1.1966vw, 0.875rem);
  margin-top: clamp(0.75rem, 1.42vw, 0.5rem);
}

.plan__priceType--large {
  font-size: min(4.4444vw, 3.25rem);
}

.plan__priceNumber {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: min(11.9658vw, 8.75rem);
  font-weight: 600;
  line-height: 0.9;
}

.plan__priceUnit {
  align-self: flex-end;
  display: flex;
  flex-direction: column;
}

.plan__priceTax {
  font-family: var(--familySawarabiMincho);
  font-weight: 400;
  line-height: 1.1;
}

.plan__priceUnitText {
  font-family: var(--familyMinchoB1);
  font-size: min(3.7607vw, 2.75rem);
  font-weight: 600;
  line-height: 1;
}

.plan__itemText {
  font-weight: 500;
  line-height: 1.7;
  margin-top: 1.5625rem;
  text-align: center;
}

.plan__itemHighlight {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax18Min16);
  font-weight: 700;
  margin-top: 0.5rem;
  text-align: center;
}

.plan__flow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-top: 2rem;
}

.plan__flowItem {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
}

.plan__flowText {
  align-items: center;
  background: #daeeeb;
  border: 1px solid var(--colorGreen3);
  border-radius: 2px;
  display: flex;
  font-weight: 700;
  height: 1.875rem;
  justify-content: center;
  line-height: 1.7;
  width: 5rem;
}

.plan__flowArrow {
  align-self: center;
  background: var(--colorGreen1);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  display: block;
  height: 0.5625rem;
  width: 0.375rem;
}

.bgBlock--plan {
  background: #d7d1b4;
  border-radius: 0 40px 40px 0;
  bottom: 0;
  height: 48.2%;
  left: 0;
  margin-left: calc(50% - 50vw);
}

.bgIcon--plan {
  bottom: -9.3vw;
  left: -3.33vw;
}

@media screen and (max-width: 767px) {
  .plan__list {
    grid-template-columns: 1fr;
    margin: 0 auto;
    max-width: 35rem;
  }
  .plan__flowText {
    width: 4.5rem;
  }
  .plan__priceUnitText {
    font-size: var(--sizeMax44Min36);
  }
  .plan__priceType--large {
    font-size: var(--sizeMax54Min42);
  }
  .plan__priceNumber {
    /* 140px => 120px */
    font-size: clamp(7.5rem, 6.391rem + 3.23vw, 8.75rem);
  }
  .plan__priceType {
    font-size: var(--sizeMax38Min28);
  }
  .plan__flow {
    justify-content: flex-start;
  }
  .bgBlock--plan {
    height: 38%;
  }
  .bgIcon--plan {
    bottom: -23.3vw;
    left: -9.33vw;
    width: 54vw;
  }
}

@media screen and (max-width: 500px) {
  .plan__priceUnitText {
    font-size: 7.2vw;
  }
  .plan__priceType--large {
    font-size: 8.4vw;
  }
  .plan__priceNumber {
    /* 140px => 120px */
    font-size: 24vw;
  }
  .plan__priceType {
    font-size: 5.6vw;
  }
  .bgIcon--plan {
    bottom: -36.3vw;
    left: -7.33vw;
    width: 80vw;
  }
}

/* Voices */

.voices__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.voices__list a {
  background: #fff;
  border-radius: 10px;
  display: grid;
  grid-template-areas: 
  "img cat"
  "img txt";
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  column-gap: clamp(1.5rem, 2.735vw, 2rem);
  grid-template-columns: clamp(7.875rem, 13.67vw, 10rem) 1fr 0.875rem;
  grid-template-rows: min-content min-content;
  row-gap: 0;  
  padding: 1.5rem;
  position: relative;
}

.voices__list a::after {
  content: '';
  display: block;
  background-image: url(../images/icons/icon-chevron_right_green.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  transform: translate(-50%, -50%);
  height: 25px;
  width: 14px;
}

.voices__list a .img {
  grid-area: img;
}

.categorydate {
  grid-area: cat;
  align-items: center;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 6.25rem 1fr;
  grid-template-areas: "date category";
  align-self: start;
  margin-bottom: 0;
}

.voices__list .date {
  grid-area: date;
  font-family: var(--familyOswald);
  font-size: var(--sizeMax18Min16);
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.voices__list .category {
  grid-area: category;
  display: flex;
  gap: 0.5rem;
}

.voices__list .category span {
  align-items: center;
  background: #daeeeb;
  border: 1px solid var(--colorGreen3);
  border-radius: 2px;
  display: flex;
  font-size: 0.75rem;
  font-weight: 700;
  height: 1.3125rem;
  justify-content: center;
  letter-spacing: 0.01em;
  min-width: 4.375rem;
  padding: 0 0.5rem;
}

.voices__list .text {
  grid-area: txt;
  align-self: start;
}

.voices__list .text strong {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax24Min20);
  font-weight: 600;
  margin-top: 0.625rem;
}

.voices__list .detail {
  display: block;
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.625rem;
}

.voices__list .detail p {
  line-height: 1.7;
}

.voices__moreLink {
  align-items: center;
  background: var(--colorGreen3);
  border-radius: 50px;
  color: #fff;
  display: flex;
  font-size: 1.25rem;
  font-weight: 700;
  height: 3.75rem;
  justify-content: center;
  margin: 0 auto;
  max-width: 26.875rem;
  position: relative;
  transition: opacity 0.2s;
  width: 100%;
}

.voices__moreLinkText {
  transform: translateX(-0.625rem);
}

.voices__moreLinkChevron {
  position: absolute;
  right: 2.8125rem;
  top: 50%;
  transform: translateY(-50%);
}

.voices__moreLinkChevron path {
  stroke: #fff;
  transition: stroke 0.3s ease-in-out;
}

.voices__moreLink:hover {
  opacity: 0.8;
}

@media screen and (max-width: 767px) {
  .voices__list a {
    column-gap: 0;
    row-gap: .3em;
    grid-template-columns: 1fr auto;
    grid-template-areas: 
    "img img"
    "cat cat"
    "txt txt"
    "excerpt -";
  }

  .voices__list a .img {
    text-align: center;
  }

  .voices__list a .img img {
    margin-inline: auto;
    width: 100%;
  }
  .categorydate {
    margin-top: 1em;
  }
  .voices__list a::after {
    content: none;
  }
  .voices__list .category {
    flex-wrap: wrap;
  }
  .voices__list .text {
    margin-top: 0.625rem;
  }
  .voices__list .detail {
    margin-top: calc(0.3em + 0.625rem);
  }
  .voices__list .detail p {
    padding-right: calc(clamp(1.5rem, 2.735vw, 2rem) + 13px);
    position: relative;
  }
  .voices__list .detail p::after {
    content: '';
    display: block;
    background-image: url(../images/icons/icon-chevron_right_green.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(-50%, -50%);
    height: 23px;
    width: 13px;
  }
  .voices__moreLinkChevron {
    right: 5.87vw;
  }
  .voices__moreLink {
    font-size: max(2.35vw, 1rem);
    max-width: 22.5rem;
    height: 3.25rem;
  }
  .voices__moreLinkChevron svg {
    height: 0.875rem;
    width: 0.5rem;
  }
}

/* Service */

.service__locationList {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}

.service__locationItem {
  align-items: center;
  background: #fff;
  border-radius: 8px;
  display: flex;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  flex-direction: column;
  justify-content: center;
  padding-block: 0.75rem;
  width: clamp(9.0625rem, 13.0769vw, 9.5625rem);
}

.service__locationIcon {
  max-width: 1.25rem;
}

.service__locationHeading {
  font-weight: 700;
  line-height: 1.7;
  margin-top: 0.75rem;
  text-align: center;
}

.service__locationHeading .small {
  font-size: var(--sizeMax14Min12);
}

.service__locationLead {
  color: #4a5565;
  font-size: 0.75rem;
  line-height: 1.33;
  margin-top: 0.25rem;
  text-align: center;
}

.service__areas {
  background: #fff;
  border: 2px solid var(--colorGreen3);
  margin-top: 1.5rem;
  padding: 2.5rem 1.25rem;
}

.service__areaHeading {
  color: var(--colorGreen1);
  font-size: var(--sizeMax24Min20);
  font-weight: 700;
  text-align: center;
}

.service__areaText {
  font-size: var(--sizeMax18Min16);
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.5rem;
  text-align: center;
}

.service__areaList {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin: 1rem auto 0;
  width: fit-content;
}

.service__areaItem {
  align-items: center;
  background: #daeeeb;
  border-radius: 4px;
  display: grid;
  font-weight: 700;
  gap: 0.5rem;
  grid-template-columns: 1.25rem 1fr;
  height: 2.875rem;
  line-height: 1.7;
  padding: 0 1rem;
}

@media screen and (max-width: 767px) {
  .service__locationList {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin: 0 auto;
    width: fit-content;
  }

  .service__areaList {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
  }
}

@media screen and (max-width: 550px) {
  .service__areas {
    padding: 2rem 0.875rem;
  }
  .service__locationList {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: fit-content;
  }
  .service__areaList {
    grid-template-columns: 1fr 1fr;
  }
}

@media screen and (max-width: 374px) {
  .service__locationList {
    display: grid;
    grid-template-columns: 1fr;
    width: fit-content;
  }
  .service__areaList {
    grid-template-columns: 1fr;
  }
}

/* Facilities */

.facilities__list {
  display: grid;
  gap: 2rem 2.25rem;
  grid-template-columns: 1fr 1fr;
}

.facilities__item {
  display: grid;
  grid-row: span 2; 
  grid-template-rows: subgrid;
  row-gap: 0;
  filter: drop-shadow(6px 6px 15px rgba(0, 0, 0, 0.15));
}

.facilities__image img {
  border-radius: 10px 10px 0 0;
}

.facilities__content {
  background: #f6f9f6;
  border-radius: 0 0 10px 10px;
  padding: 2rem 2rem 2.5rem;
}

.facilities__heading {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax26Min22);
  font-weight: 600;
}

.facilities__text {
  font-size: var(--sizeMax18Min16);
  font-weight: 500;
  line-height: 1.7;
  margin-top: 1.125rem;
}

@media screen and (max-width: 767px) {
  .facilities__list {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 500px) {
  .facilities__content {
    padding: 1.25rem;
  }
  .facilities__text {
    margin-top: 1rem;
  }
}

/* Flow */

.flow__list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.flow__item {
  background: #fff;
  border-radius: 10px;
  display: grid;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  gap: 0.875rem;
  grid-template-columns: 5.375rem 5.375rem 1fr;
  padding: 2.5rem 1.5rem;
  position: relative;
  z-index: 1;
}

.flow__item:nth-child(6) {
  z-index: 1;
}

.flow__item:nth-child(5) {
  z-index: 2;
}

.flow__item:nth-child(4) {
  z-index: 3;
}

.flow__item:nth-child(3) {
  z-index: 4;
}

.flow__item:nth-child(2) {
  z-index: 5;
}

.flow__item:nth-child(1) {
  z-index: 6;
}

.flow__item::after {
  background: var(--colorGreen3);
  content: "";
  height: 100%;
  left: 10.3125rem;
  position: absolute;
  top: 4.375rem;
  width: 0.1875rem;
  z-index: -1;
}

.flow__item:nth-child(6)::after {
  display: none;
}

.flow__point {
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  height: auto;
  justify-content: center;
  text-align: center;
}

.flow__pointText {
  color: #a2831e;
  font-family: var(--familyOswald);
  font-size: 0.625rem;
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.flow__pointNumber {
  color: #a2831e;
  font-family: var(--familyMinchoB1);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.1;
}

.flow__content {
  margin-left: clamp(1rem, 3.0769vw, 2.25rem);
}

.flow__heading {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax24Min20);
  font-weight: 600;
}

.flow__text {
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.5rem;
}

@media screen and (max-width: 767px) {
  .flow__item {
    grid-template-columns: 3.75rem 1fr;
    grid-template-rows: auto 1fr;
    padding: 1.25rem;
  }
  .flow__point {
    aspect-ratio: unset;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    grid-column: 2;
    grid-row: 1;
  }
  .flow__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
  }
  .flow__content {
    grid-column: 2;
    grid-row: 2;
  }
  .flow__item::after {
    height: 100%;
    left: 3.3125rem;
  }
  .flow__item:nth-child(1)::after {
    height: 100%;
    bottom: 0;
  }
  .flow__pointNumber {
    font-size: 1.5rem;
  }

}

@media screen and (max-width: 500px) {
  .flow__item::after {
    left: 2.8125rem;
  }
  .flow__item:nth-child(6)::after {
    height: 3.75rem;
  }
  .flow__item::after {
    height: calc(100% - 1.375rem);
  }
  .flow__item:nth-child(1)::after {
    height: calc(100% - 0.75rem);
  }
  .flow__content {
    margin-left: 0;
  }
}

/* Support */

.support__iconList {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(7, clamp(5rem, 8.547vw, 6.25rem));
  margin: 1.5rem auto 0;
  width: fit-content;
}

.support__iconItem {
  align-items: center;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--colorGreen1);
  border-radius: 50%;
  display: flex;
  height: auto;
  justify-content: center;
  width: 100%;
}

.support__iconItem img {
  width: 53%;
}

.support__list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.support__item {
  background: #f6f9f6;
  border-radius: 10px;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  padding: 2.5rem 2rem;
}

.support__itemHeading {
  align-items: center;
  display: grid;
  gap: 1.5625rem;
  grid-template-columns: 3rem 4rem 1fr 1.25rem;
  width: 100%;
}

.support__itemCount {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  height: fit-content;
  justify-content: center;
  text-align: center;
}

.support__itemCountText {
  color: #a2831e;
  font-family: var(--familyOswald);
  font-size: 0.625rem;
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.support__itemCountNumber {
  color: #a2831e;
  font-family: var(--familyMinchoB1);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.1;
}

.support__itemHeadingContent {
  display: flex;
  flex-direction: column;
  text-align: start;
}

.support__itemHeadingText {
  color: #101328;
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax26Min22);
  font-weight: 600;
}

.support__itemHeadingLead {
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.375rem;
}

.support__chevron {
  height: fit-content;
  transition: transform 0.2s ease-in-out;
  transform: rotate(180deg);
}

.support__itemPointList {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-top: 1.5rem;
}

.support__itemPoint {
  background: #fff;
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: 1.5rem 1fr;
  grid-template-rows: auto 1fr;
  padding: 1.75rem 2rem 2rem;
}

.support__itemCheck {
  grid-column: 1;
  grid-row: 1;
  margin-top: 0.375rem;
}

.support__itemSubheading {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax22Min18);
  font-weight: 600;
  grid-column: 2;
  grid-row: 1;
}

.support__itemText {
  font-weight: 500;
  grid-column: 2;
  grid-row: 2;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .support__item {
    padding: 1.625rem 1rem;
  }
  .support__itemHeading {
    gap: 1rem .5rem;
    grid-template-columns: auto 1fr 1.25rem
  }
  .support__itemCount {
    flex-direction: row;
    align-items: center;
    grid-column: 1;
    grid-row: 1;
    justify-self: flex-end;
    width: fit-content;
  }
  .support__itemCountNumber {
    font-size: 1.5rem;
  }
  .support__itemIcon {
    grid-column: 1;
    grid-row: 2;
    justify-items: flex-start;
  }
  .support__itemHeadingContent {
    display: contents;
  }
  .support__itemHeadingText {
    grid-column: span 2;
    grid-row: 2;
  }
  .support__itemHeadingLead {
    grid-column: span 4;
    grid-row: 3;
  }
  .support__iconList {
    display: flex;
    gap: .4375rem;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 37.5rem;
  }
  .support__iconItem {
    width: calc((100% - .4375rem * 3) / 4)
  }
  .support__chevron {
    grid-column: 4;
    grid-row: 2;
  }
}

@media screen and (max-width: 500px) {
  .support__itemHeadingText {
    font-size: 1.25rem;
  }
  .support__itemText {
    grid-column: span 2;
  }
  .support__itemPoint {
    gap: 0.5rem 0.875rem;
    grid-template-columns: 1.25rem 1fr;
    padding: 1.5rem 1.25rem;
  }
}

/* FAQ */

.faq__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.faq__item {
  background: #fff;
  border-radius: 10px;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  padding: 1.5625rem;
}

.faq__heading,
.faq__answer {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 2.5rem 1fr 1.25rem;
  padding: 0;
  text-align: start;
  width: 100%;
}

.faq__heading {
  align-items: center;
}

.faq__answer {
  grid-template-columns: 2.5rem 1fr;
}

.faq__mark {
  align-items: center;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--colorGreen3);
  border-radius: 50%;
  display: flex;
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax22Min18);
  font-weight: 600;
  height: auto;
  justify-content: center;
  line-height: 1;
  width: 100%;
}

.faq__mark span {
  transform: translateY(-0.1em);
}

.faq__mark--q {
  background: var(--colorGreen3);
  color: #fff;
}

.faq__mark--a {
  background: #fff;
  color: var(--colorGreen3);
}

.faq__headingText {
  font-size: var(--sizeMax18Min16);
  font-weight: 700;
  line-height: 1.7;
}

.faq__text {
  font-weight: 500;
  line-height: 1.7;
}

.faq__chevron {
  transition: transform 0.2s ease-in-out;
  transform: rotate(180deg);
}

.faq__answer {
  padding-top: 2.625rem;
  position: relative;
}

.faq__answer::before {
  background: #d9d9d9;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: 0;
  top: 1.3125rem;
  width: 100%;
}

@media screen and (max-width: 767px) {
  .faq__heading {
    grid-template-columns: 2rem 1fr 1.25rem;
  }
  .faq__answer {
    grid-template-columns: 2rem 1fr;
  }
  .faq__item {
    padding: 1.25rem 1rem;
  }
}

/* Access */

.access__block {
  background: #fff;
  border-radius: 10px;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  margin: 0 auto;
  max-width: 61.25rem;
  padding: clamp(1.625rem, 4.082vw, 2.5rem);
  width: 100%;
}

.access__heading {
  color: var(--colorGreen1);
  font-family: var(--familyMinchoB1);
  font-size: var(--sizeMax26Min22);
  font-weight: 600;
}

.access__name {
  font-size: var(--sizeMax24Min20);
  font-weight: 700;
  line-height: 1.7;
  margin-top: 0.625rem;
}

.access__address {
  font-size: var(--sizeMax20Min18);
  font-style: normal;
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.5rem;
}

.access__information {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.625rem;
}

.access__information p {
  font-size: var(--sizeMax20Min18);
  font-weight: 700;
  line-height: 1.7;
}

.access__directions {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  margin-top: 0.75rem;
}

.access__directions p {
  font-weight: 500;
  line-height: 1.7;
}

.access__block mark {
  background: linear-gradient(to bottom, transparent 0%, transparent 55%, #fde56b 55%, #fde56b 100%);
  color: #000;
  font-weight: 500;
  padding-bottom: 0.125rem;
}

.access__block .bold {
  font-weight: 700;
}

.access__route {
  margin: 1.25rem auto 0;
  max-width: 40.75rem;
}

.access__mapDetails {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.875rem;
}

.access__map {
  margin-top: 1.25rem;
}

.tourist__text {
  margin-top: 0.875rem;
}

.tourist__list {
  display: grid;
  gap: 2.375rem 1.875rem;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 1.25rem;
}

.tourist__heading {
  align-items: center;
  background: var(--colorGreen3);
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 1.125rem;
  font-weight: 700;
  justify-content: center;
  line-height: 1.5;
  margin-top: 0.4375rem;
  min-height: 2.9375rem;
  padding: 0.5rem 1.11vw;
}

.tourist__heading .small {
  font-size: 0.75rem;
}

.tourist__details {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.57;
  margin-top: 0.5rem;
}

.tourist__directions {
  align-items: center;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1.5rem 1fr;
  margin-top: 0.5rem;
}

.tourist__directions p {
  color: #0a0a0a;
  font-size: 0.875rem;
  letter-spacing: 0.0044em;
  line-height: 2.2;
}

.tourist__item {
  display: grid;
}

@media screen and (max-width: 880px) {
  .tourist__list {
    grid-template-columns: 1fr 1fr;
  }
  .tourist__item {
    display: grid;
    grid-template-rows: auto 1fr auto auto;
  }
  .tourist__heading {
    height: 3.8125rem;
  }
}

@media screen and (max-width: 600px) {
  .tourist__list {
    grid-template-columns: 1fr;
  }
  .tourist__heading {
    height: unset;
  }
  .access__information p,
  .access__address {
    font-size: 1rem;
  }
}

/* Form */

.contactForm {
  background: #f6f9f6;
  filter: drop-shadow(4px 4px 20px rgba(0, 0, 0, 0.15));
  margin: 0 auto;
  max-width: 61.25rem;
  padding: clamp(1.75rem, 4.082vw, 2.5rem);
  width: 100%;
}
/* 980 */
.contactForm__row {
  border-bottom: 1px solid #ddd;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: clamp(7.5rem, 16.33vw, 10rem) 1.875rem 1fr;
  padding: 1.125rem 0;
}

.contactForm__row:nth-child(1) {
  border-top: 1px solid #ddd;
}

.contactForm__label {
  align-items: center;
  display: flex;
  font-size: 1rem;
  font-weight: 700;
  height: 1.875rem;
  justify-content: flex-end;
  line-height: 1.6;
  margin-top: 0.5rem;
}

.contactForm__required {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--colorGreen3);
  border-radius: 50%;
  color: #fff;
  display: flex;
  font-size: 0.625rem;
  font-weight: 700;
  height: auto;
  justify-content: center;
  margin-top: 0.5rem;
  width: 100%;
}

.contactForm__input {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.contactForm__input select,
.contactForm__input input,
.contactForm__input textarea {
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-weight: 500;
  padding: 0.6875rem 0.875rem;
  width: 100%;
}

.contactForm__input input::placeholder {
  color: #757575;
}

.contactForm__input select {
  max-width: 12.375rem;
}

.contactForm__input input[name="name"],
.contactForm__input input[name="furigana"] {
  max-width: 13.5rem;
}

.contactForm__input input[name="tel"],
.contactForm__input input[name="postcode"] {
  max-width: 10.375rem;
}

.contactForm__input input[name="address"] {
  max-width: 25rem;
}

.contactForm__input input[name="email"] {
  max-width: 18.75rem;
}

.contactForm__submit {
  align-items: center;
  background: #fc6f19;
  border: 1px solid #fc6f19;
  border-radius: 50px;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: var(--sizeMax20Min18);
  font-weight: 700;
  height: 3.75rem;
  justify-content: center;
  margin: 2.5rem auto 0;
  max-width: 18.75rem;
  position: relative;
  transition: opacity 0.2s;
  width: 100%;
}

.contactForm__submit:hover {
  opacity: 0.8;
}

.contactForm__submit svg {
  position: absolute;
  right: 23%;
  top: 50%;
  transform: translateY(-50%);
}

@media screen and (max-width: 500px) {
  .contactForm {
    padding: 1.75rem 1.125rem;
  }
  .contactForm__row {
    grid-template-columns: 1fr 1.875rem;
  }
  .contactForm__label {
    grid-column: 1;
    grid-row: 1;
    justify-content: flex-start;
  }
  .contactForm__required {
    grid-column: 2;
    grid-row: 1;
  }
  .contactForm__input {
    grid-column: span 2;
    grid-row: 2;
  }
}

/* Contact Banner */

.contactBanner {
  background: var(--gradientTeal);
  padding: 5rem 1.25rem;
}

.contactBanner * {
  color: #fff;
}

.contactBanner .container {
  display: grid;
  gap: clamp(2rem, 6.8376vw, 5rem);
  grid-template-columns: 1fr 1fr;
}

.contactBanner__column {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.contactBanner__heading {
  border-bottom: 1px solid #fff;
  font-family: var(--familyZenOldMincho);
  font-size: var(--sizeMax34Min26);
  font-weight: 600;
  padding-bottom: 1.25rem;
}

.contactBanner__phoneGroup,
.contactBanner__mailGroup {
  display: flex;
  flex-direction: column;
}

.contactBanner__phoneTimes {
  align-items: center;
  display: flex;
  font-size: var(--sizeMax14Min12);
  font-weight: 700;
  gap: 0.75rem;
  line-height: 1.14;
}

.contactBanner__phoneTimes .large {
  font-size: var(--sizeMax22Min18);
}

.contactBanner__phoneIcon {
  max-width: 1.625rem;
}

.contactBanner__phoneLink {
  font-family: var(--familyOswald);
  font-size: var(--sizeMax44Min36);
  letter-spacing: 0.029em;
  line-height: 1.1;
  margin-top: 0.75rem;
  transition: opacity 0.2s;
  width: fit-content;
}

.contactBanner__phoneLink:hover {
  opacity: 0.8;
}

.contactBanner__phoneMemo,
.contactBanner__lineMemo {
  font-weight: 500;
  line-height: 1.7;
  margin-top: 0.75rem;
}

.contactBanner__line,
.contactBanner__mail {
  align-items: center;
  display: flex;
  font-size: var(--sizeMax22Min18);
  font-weight: 700;
  gap: 0.75rem;
  line-height: 1.7;
}

.contactBanner__lineIcon img {
  max-width: 1.75rem;
  width: 100%;
}

.contactBanner__mailIcon img {
  max-width: 1.5625rem;
  width: 100%;
}

.contactBanner__lineLink,
.contactBanner__mailLink {
  align-items: center;
  border-radius: 100px;
  display: flex;
  font-size: var(--sizeMax20Min18);
  font-weight: 700;
  height: 3.75rem;
  justify-content: center;
  line-height: 1.7;
  margin-top: 1rem;
  max-width: 25.5rem;
  transition: opacity 0.2s;
  width: 100%;
}

.contactBanner__lineLink {
  background: #06c755;
  border: 1px solid #06c755;
}

.contactBanner__mailLink {
  background: var(--gradientOrange);
}

.contactBanner__mailLink:hover,
.contactBanner__lineLink:hover {
  opacity: 0.8;
}

@media screen and (max-width: 800px) {
  .contactBanner .container {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 500px) {
  .contactBanner__phoneTimes {
    flex-wrap: wrap;
  }
  .contactBanner__lineLink,
  .contactBanner__mailLink {
    font-size: min(1rem, 4.27vw);
    height: 3.125rem;
  }
}

/* ========================================================
   お墓LP用：プラン4列比較テーブル（連結型）
   ======================================================== */
.planTable {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  margin: 2.5rem auto 0;
  max-width: 78rem;
  overflow: hidden;
  width: 100%;
}

.planTable__table {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}

.planTable__table th,
.planTable__table td {
  border: 1px solid #e5e7eb;
  vertical-align: middle;
}

.planTable__corner {
  background: #009689;
  width: 8.5rem;
}

.planTable__planHead {
  background: #009689;
  color: #fff;
  font-family: var(--familyZenOldMincho);
  font-weight: 700;
  height: 4.75rem;
  letter-spacing: 0.04em;
  padding: 0.75rem 0.5rem;
  text-align: center;
}

.planTable__planName {
  display: block;
  font-size: 1.375rem;
  line-height: 1.2;
}

.planTable__planNameSub {
  display: block;
  font-family: var(--familyYuGothic);
  font-size: 0.8125rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-top: 0.25rem;
  opacity: 0.95;
}

.planTable__rowLabel {
  background: #f0fdfa;
  color: #1f2937;
  font-family: var(--familyYuGothic);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.75rem 0.5rem;
  text-align: center;
  vertical-align: middle;
  width: 8.5rem;
}

.planTable__cell {
  background: #fff;
  color: #1f2937;
  font-family: var(--familyYuGothic);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.6;
  padding: 1rem;
  text-align: center;
  vertical-align: middle;
}

.planTable__cell--price {
  padding: 1rem 0.5rem;
}

.planTable__priceNum {
  color: #009689;
  font-family: "Oswald", sans-serif;
  font-size: 1.875rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1;
}

.planTable__cell--price small {
  color: #009689;
  font-size: 1rem;
  font-weight: 700;
  margin-left: 0.125rem;
}

.planTable__cell--banner {
  background: #f0fdfa;
  color: #009689;
  font-family: var(--familyZenOldMincho);
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: center;
}

.planTable__cell--banner strong {
  color: #009689;
  font-size: 1.25rem;
  margin-left: 0.25em;
}

.planTable__cell--feature {
  padding: 1rem 0.875rem 1.125rem;
  position: relative;
  text-align: left;
  vertical-align: top;
}

.planTable__badge {
  background: #e7000b;
  border-radius: 4px;
  color: #fff;
  display: block;
  font-family: var(--familyYuGothic);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 auto 0.625rem;
  padding: 0.25rem 0.5rem;
  text-align: center;
  width: 7rem;
}

.planTable__featureBody {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.875rem;
}

.planTable__featureCatch {
  background: #fff7d6;
  border-radius: 4px;
  color: #854d0e;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.375rem 0.5rem;
  text-align: center;
}

.planTable__featureList {
  display: grid;
  font-size: 0.8125rem;
  gap: 0.375rem;
  line-height: 1.6;
  list-style: disc;
  padding-left: 1.2em;
}

.planTable__featureList li {
  color: #1f2937;
}

.planTable__featureNote {
  color: #4a5565;
  font-size: 0.75rem;
  line-height: 1.5;
}

.planTable__featureNoteInline {
  color: #4a5565;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  margin-top: 0.125rem;
}

.planTable__cta {
  align-items: center;
  background: #00bba7;
  border-radius: 999px;
  color: #fff;
  display: flex;
  font-family: var(--familyYuGothic);
  font-size: 0.875rem;
  font-weight: 500;
  gap: 0.375rem;
  justify-content: center;
  letter-spacing: 0.02em;
  padding: 0.625rem 1rem;
  text-decoration: none;
  transition: opacity 0.2s;
  width: 100%;
}

.planTable__cta:hover {
  opacity: 0.85;
}

.planTable__ctaArrow {
  font-size: 1rem;
  margin-left: 0.25rem;
}

.planTable__ctaText {
  text-align: center;
}

@media screen and (max-width: 1024px) {
  .planTable {
    overflow-x: auto;
  }
  .planTable__table {
    min-width: 60rem;
  }
}

@media screen and (max-width: 767px) {
  .planTable {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    margin: 2rem 0 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .planTable::-webkit-scrollbar {
    height: 6px;
  }
  .planTable::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.05);
    border-radius: 3px;
  }
  .planTable::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.3);
    border-radius: 3px;
  }
  .planTable__table {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
    min-width: 0;
    width: 749px;
  }
  .planTable__planHead {
    height: auto;
    padding: 0.75rem 0.25rem;
  }
  .planTable__planHead:nth-of-type(2) {
    width: 150px;
  }
  .planTable__planHead:nth-of-type(3),
  .planTable__planHead:nth-of-type(4),
  .planTable__planHead:nth-of-type(5) {
    width: 165px;
  }
  .planTable__planName {
    font-size: 1.125rem;
  }
  .planTable__planNameSub {
    font-size: 0.75rem;
  }
  .planTable__rowLabel {
    font-size: 0.8125rem;
    padding: 0.75rem 0.25rem;
    width: 5rem;
  }
  .planTable__cell {
    font-size: 0.8125rem;
    padding: 0.75rem 0.25rem;
  }
  .planTable__cell--banner {
    font-size: 0.9375rem;
    padding: 0.75rem 0.5rem;
  }
  .planTable__priceNum {
    font-size: 1.5rem;
  }
  .planTable__cell--feature {
    padding: 0.75rem 0.5rem 4.5rem;
    vertical-align: top;
  }
  .planTable__featureBody {
    margin-bottom: 0;
  }
  .planTable__featureCatch {
    font-size: 0.75rem;
  }
  .planTable__featureList {
    font-size: 0.75rem;
  }
  .planTable__cell--feature .planTable__cta {
    bottom: 0.75rem;
    left: 0.5rem;
    position: absolute;
    right: 0.5rem;
    width: auto;
  }
  .planTable__cta {
    font-size: 0.75rem;
    padding: 0.5rem 0.75rem;
  }
}

/* ========================================================
   お墓LP用：KVバッジ（No.1エンブレム2つ）と注釈
   ======================================================== */
.mv__badges {
  align-items: flex-start;
  display: flex;
  gap: 1.5vw;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  top: calc(30% - 15px);
  z-index: 3;
}

.mv__badgeItem {
  max-width: 190px;
  width: 13.1944vw;
}

.mv__badgeItem img {
  height: auto;
  width: 100%;
}

.mv__notes {
  display: grid;
  gap: 0.3vw;
  left: 0;
  margin: 0 auto;
  position: absolute;
  right: 0;
  top: calc(69.56% + 4.1667vw + 10px);
  width: min(58rem, 88%);
  z-index: 3;
}

.mv__note {
  color: #333;
  font-family: var(--familyYuGothic);
  font-size: 0.7vw;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .mv__badges {
    display: grid;
    gap: min(0.625rem, 2.5641vw);
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    margin-top: min(1rem, 4.1026vw);
    position: static;
    width: min(22rem, 84.1026vw);
  }
  .mv__badgeItem {
    max-width: none;
    width: 100%;
  }
  .mv__notes {
    gap: min(0.375rem, 1.5385vw);
    margin-top: min(0.75rem, 3.0769vw);
    padding: 0;
    position: static;
    width: min(22rem, 84.1026vw);
  }
  .mv__note {
    font-size: min(0.6875rem, 2.8205vw);
    line-height: 1.6;
    text-align: left;
  }
}
