html body .l-container {
  width: clamp(960px, 87.8477306003vw, 1440px);
  max-width: calc(100% - clamp(32px, 2.9282576867vw, 48px));
  margin-inline: auto;
}
@media screen and (max-width: 1093px) {
  html body .l-container {
    width: clamp(550.4px, 89.5833333333vw, 825.6px);
    max-width: calc(100% - clamp(32px, 5.2083333333vw, 48px) * 2);
    margin-inline: auto;
  }
}
@media screen and (max-width: 767px) {
  html body .l-container {
    width: clamp(268px, 89.3333333333vw, 402px);
    max-width: calc(100% - clamp(16px, 5.3333333333vw, 24px) * 2);
    margin-inline: auto;
  }
}
html body .c-button {
  display: inline-flex;
  align-items: center;
  height: clamp(37.6px, 3.4407027818vw, 56.4px);
  padding: 0 clamp(12px, 1.0980966325vw, 18px) 0 clamp(16px, 1.4641288433vw, 24px);
  border-radius: 5px;
  transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}
html body .c-button::after {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-left: auto;
  background-color: currentColor;
  -webkit-mask-image: url("../images/icon-arrow-right.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-arrow-right.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  transition: background-color 0.3s ease;
}
html body .c-button--blue {
  background: #0276d9;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-button--blue:hover {
    background: #fff;
    box-shadow: inset 0 0 0 1px #0276d9;
  }
}
html body .c-button--white {
  background: #fff;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-button--white:hover {
    background: #0276d9;
    box-shadow: inset 0 0 0 1px #fff;
  }
}
html body .c-button--outline {
  border: 1px solid currentColor;
}
@media (hover: hover) and (pointer: fine) {
  html body .c-button--outline:hover {
    background: #fff;
  }
}
html body .c-button--mail::before {
  content: "";
  flex-shrink: 0;
  width: 14px;
  height: 11px;
  margin-right: clamp(4px, 0.3660322108vw, 6px);
  background-color: currentColor;
  -webkit-mask-image: url("../images/icon-mail.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-mail.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
@media screen and (max-width: 1093px) {
  html body .c-button {
    height: 47px;
    padding: 0 15px 0 20px;
  }
  html body .c-button--mail::before {
    margin-right: 5px;
  }
}
@media screen and (max-width: 320px) {
  html body .c-button {
    max-width: 100%;
    height: auto;
    min-height: 47px;
    padding-block: 6px;
  }
}
html body .c-sectionTitle {
  text-align: center;
}
html body .c-sectionTitle__en {
  display: flex;
  align-items: center;
  gap: clamp(19.2px, 1.756954612vw, 28.8px);
}
html body .c-sectionTitle__en::before, html body .c-sectionTitle__en::after {
  content: "";
  flex: 1;
  height: 1px;
  background: currentColor;
}
html body .c-sectionTitle__ja {
  margin-top: clamp(4.8px, 0.439238653vw, 7.2px);
}
@media screen and (max-width: 1093px) {
  html body .c-sectionTitle__en {
    gap: clamp(19.2px, 3.125vw, 28.8px);
  }
  html body .c-sectionTitle__ja {
    margin-top: clamp(4.8px, 0.78125vw, 7.2px);
  }
}
@media screen and (max-width: 767px) {
  html body .c-sectionTitle__en {
    gap: clamp(12.8px, 4.2666666667vw, 19.2px);
  }
  html body .c-sectionTitle__ja {
    margin-top: clamp(4.8px, 1.6vw, 7.2px);
  }
}
html body .c-sectionTitle--plain {
  text-align: left;
}
html body .c-sectionTitle--plain .c-sectionTitle__en {
  display: block;
}
html body .c-sectionTitle--plain .c-sectionTitle__en::before, html body .c-sectionTitle--plain .c-sectionTitle__en::after {
  content: none;
}
html body .c-outlineText {
  position: relative;
  width: fit-content;
}
html body .c-outlineText::before {
  content: "";
  position: absolute;
  top: -6%;
  bottom: -6%;
  pointer-events: none;
  background-color: var(--outline-color, #fff);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
html body .c-outlineText--01::before {
  left: -5.7088%;
  right: -5.7088%;
  -webkit-mask-image: url("../images/outline-01.svg");
  mask-image: url("../images/outline-01.svg");
}
html body .c-outlineText--02::before {
  left: -4.8038%;
  right: -4.8038%;
  -webkit-mask-image: url("../images/outline-02.svg");
  mask-image: url("../images/outline-02.svg");
}
html body .c-outlineText--03::before {
  left: -4.7962%;
  right: -4.7962%;
  -webkit-mask-image: url("../images/outline-03.svg");
  mask-image: url("../images/outline-03.svg");
}
html body .c-outlineText--04::before {
  left: -4.451%;
  right: -4.451%;
  -webkit-mask-image: url("../images/outline-04.svg");
  mask-image: url("../images/outline-04.svg");
}
html body .c-outlineText--kouyusya::before {
  left: -0.9875%;
  right: -0.9875%;
  -webkit-mask-image: url("../images/outline-kouyusya.svg");
  mask-image: url("../images/outline-kouyusya.svg");
}
html body .p-contactCta {
  position: relative;
  z-index: 3;
  padding-bottom: clamp(56px, 5.1244509517vw, 84px);
}
html body .p-contactCta--top .p-contactCta__inner {
  border-top: 1px solid rgba(255, 255, 255, 0.75);
}
html body .p-contactCta__head {
  position: relative;
}
html body .p-contactCta__title {
  padding: clamp(77px, 7.0461200586vw, 115.5px) 0 0 clamp(269.6px, 24.6705710102vw, 404.4px);
  text-indent: clamp(-194.4px, -11.859443631vw, -129.6px);
}
html body .p-contactCta__photo {
  position: absolute;
  width: clamp(121.6px, 11.1273792094vw, 182.4px);
  height: clamp(80px, 7.3206442167vw, 120px);
  border-radius: 5px;
  object-fit: cover;
}
html body .p-contactCta__photo--machine {
  left: clamp(525.6px, 48.0966325037vw, 788.4px);
  top: clamp(85.2px, 7.7964860908vw, 127.8px);
}
html body .p-contactCta__photo--tablet {
  left: clamp(129.6px, 11.859443631vw, 194.4px);
  top: clamp(178.8px, 16.3616398243vw, 268.2px);
}
html body .p-contactCta__lead {
  margin-top: clamp(25.8px, 2.3609077599vw, 38.7px);
  margin-left: clamp(504px, 46.1200585652vw, 756px);
}
html body .p-contactCta__cards {
  display: flex;
  justify-content: center;
  gap: clamp(32px, 2.9282576867vw, 48px);
  margin-top: clamp(60px, 5.4904831625vw, 90px);
}
html body .p-contactCta__card {
  position: relative;
  width: clamp(384px, 35.1390922401vw, 576px);
  min-height: clamp(200px, 18.3016105417vw, 300px);
  padding: clamp(40px, 3.6603221083vw, 60px) clamp(40.8px, 3.7335285505vw, 61.2px) 0;
  border-radius: 5px;
  background: #fff;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}
html body .p-contactCta__card::before {
  content: "";
  position: absolute;
  right: clamp(24px, 2.196193265vw, 36px);
  bottom: clamp(24px, 2.196193265vw, 36px);
  width: 60px;
  height: 60px;
  border-radius: 5px;
  background: #0276d9;
  transition: background-color 0.3s ease;
}
html body .p-contactCta__card::after {
  content: "";
  position: absolute;
  right: calc(clamp(24px, 2.196193265vw, 36px) + 30px);
  bottom: calc(clamp(24px, 2.196193265vw, 36px) + 30px);
  background-color: #fff;
  transform: translate(50%, 50%);
  transition: background-color 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  html body .p-contactCta__card:hover {
    background: #0276d9;
    box-shadow: inset 0 0 0 1px #fff;
  }
  html body .p-contactCta__card:hover::before {
    background: #fff;
  }
  html body .p-contactCta__card:hover::after {
    background-color: #0276d9;
  }
}
html body .p-contactCta__card--mail::after {
  width: 22px;
  height: 22px;
  -webkit-mask-image: url("../images/icon-arrow-right.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-arrow-right.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
html body .p-contactCta__card--tel::after {
  width: 28.5px;
  height: 28.5px;
  -webkit-mask-image: url("../images/icon-phone.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-image: url("../images/icon-phone.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}
html body .p-contactCta__cardTitle {
  margin-top: clamp(1.6px, 0.1464128843vw, 2.4px);
}
html body .p-contactCta__cardText {
  margin-top: clamp(15.2px, 1.3909224012vw, 22.8px);
}
html body .p-contactCta__cardTel {
  margin-top: clamp(16px, 1.4641288433vw, 24px);
}
html body .p-contactCta__cardHours {
  margin-top: clamp(11.2px, 1.0248901903vw, 16.8px);
}
@media screen and (max-width: 1093px) {
  html body .p-contactCta {
    padding-bottom: clamp(64px, 10.4166666667vw, 96px);
  }
  html body .p-contactCta__inner {
    padding-top: clamp(64px, 10.4166666667vw, 96px);
  }
  html body .p-contactCta__title {
    position: relative;
    z-index: 1;
    padding: 0 0 0 clamp(104px, 16.9270833333vw, 156px);
    text-indent: clamp(-156px, -16.9270833333vw, -104px);
  }
  html body .p-contactCta__photo {
    z-index: 2;
    width: clamp(91.2px, 14.84375vw, 136.8px);
    height: clamp(60px, 9.765625vw, 90px);
    translate: 0 -50%;
  }
  html body .p-contactCta__photo--machine {
    left: clamp(265.6px, 43.2291666667vw, 398.4px);
    top: clamp(32.8px, 5.3385416667vw, 49.2px);
  }
  html body .p-contactCta__photo--tablet {
    left: 0;
    top: clamp(98.4px, 16.015625vw, 147.6px);
  }
  html body .p-contactCta__lead {
    margin: clamp(19.2px, 3.125vw, 28.8px) 0 0 clamp(104px, 16.9270833333vw, 156px);
  }
  html body .p-contactCta__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: clamp(19.2px, 3.125vw, 28.8px);
    margin-top: clamp(38.4px, 6.25vw, 57.6px);
  }
  html body .p-contactCta__card {
    display: flex;
    flex-direction: column;
    width: auto;
    min-height: clamp(160px, 26.0416666667vw, 240px);
    padding: clamp(32px, 5.2083333333vw, 48px);
  }
  html body .p-contactCta__card::before {
    position: static;
    flex-shrink: 0;
    order: 1;
    align-self: flex-end;
    margin-top: auto;
  }
  html body .p-contactCta__card::after {
    right: calc(clamp(32px, 5.2083333333vw, 48px) + 30px);
    bottom: calc(clamp(32px, 5.2083333333vw, 48px) + 30px);
  }
  html body .p-contactCta__card > :last-child {
    margin-bottom: clamp(12.8px, 2.0833333333vw, 19.2px);
  }
  html body .p-contactCta__cardTitle {
    margin-top: clamp(3.2px, 0.5208333333vw, 4.8px);
  }
  html body .p-contactCta__cardText,
  html body .p-contactCta__cardTel {
    margin-top: clamp(9.6px, 1.5625vw, 14.4px);
  }
  html body .p-contactCta__cardHours {
    margin-top: clamp(6.4px, 1.0416666667vw, 9.6px);
  }
}
@media screen and (max-width: 767px) {
  html body .p-contactCta {
    padding-bottom: clamp(51.2px, 17.0666666667vw, 76.8px);
  }
  html body .p-contactCta__inner {
    padding-top: clamp(51.2px, 17.0666666667vw, 76.8px);
  }
  html body .p-contactCta__head {
    --ctaIndent: clamp(51.2px, 17.0666666667vw, 76.8px);
  }
  html body .p-contactCta__title {
    padding-left: var(--ctaIndent);
    text-indent: calc(var(--ctaIndent) * -1);
  }
  html body .p-contactCta__photo--machine {
    left: auto;
    right: 0;
    top: clamp(19.2px, 6.4vw, 28.8px);
    width: clamp(0px, 100% - clamp(20px, 6.6666666667vw, 30px) * 7 - 8px, clamp(44.8px, 14.9333333333vw, 67.2px));
    height: auto;
    aspect-ratio: 56/37;
  }
  html body .p-contactCta__photo--tablet {
    top: clamp(57.6px, 19.2vw, 86.4px);
    width: max(0px, var(--ctaIndent) - 8px);
    height: auto;
    aspect-ratio: 56/37;
  }
  html body .p-contactCta__lead {
    margin: clamp(12.8px, 4.2666666667vw, 19.2px) 0 0;
  }
  html body .p-contactCta__cards {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(12.8px, 4.2666666667vw, 19.2px);
    margin-top: clamp(25.6px, 8.5333333333vw, 38.4px);
  }
  html body .p-contactCta__card {
    min-height: 0;
    padding: clamp(16px, 5.3333333333vw, 24px);
  }
  html body .p-contactCta__card::after {
    right: calc(clamp(16px, 5.3333333333vw, 24px) + 30px);
    bottom: calc(clamp(16px, 5.3333333333vw, 24px) + 30px);
  }
  html body .p-contactCta__card > :last-child {
    margin-bottom: clamp(9.6px, 3.2vw, 14.4px);
  }
  html body .p-contactCta__cardTitle {
    margin-top: clamp(3.2px, 1.0666666667vw, 4.8px);
  }
  html body .p-contactCta__cardText,
  html body .p-contactCta__cardTel {
    margin-top: clamp(8px, 2.6666666667vw, 12px);
  }
  html body .p-contactCta__cardHours {
    margin-top: clamp(4.8px, 1.6vw, 7.2px);
  }
}
@media screen and (max-width: 320px) {
  html body .p-contactCta__head {
    --ctaIndent: clamp(0px, calc(100vw - 249px), clamp(51.2px, 17.0666666667vw, 76.8px));
  }
}
