@charset "UTF-8";
:root {
  --color-base: #141414;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-gray: #808080;
  --color-red: #8D2A15;
  --color-gold: #C49D30;
  --bg-sub-base: #EDE4E1;
  --bg-orange: rgb(118,57,25);
  --bg-gradient-orange: linear-gradient(90deg, rgba(118,57,25,1) 0%, rgba(215,151,118,1) 60%, rgba(118,57,25,1) 100%);
  --bg-btn: linear-gradient(45deg, #763919, #D79776 60%, #763919);
}

/*
 *
 * Hiragino
 *
 */
@font-face {
  font-family: "Hiragino Sans";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/HiraKakuProN-W5.otf");
}
@font-face {
  font-family: "Hiragino Sans";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/HiraKakuProN-W6.otf");
}
@font-face {
  font-family: "Hiragino Sans";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/HiraKakuStdN-W7.otf");
}
@font-face {
  font-family: "Hiragino Sans";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/HiraKakuStdN-W8.otf");
}
/*
 *  
 * DIN Alternate
 *
 */
@font-face {
  font-family: "DIN";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/DINAlternate.ttf");
}
:root {
  --font-fallback: "Hiragino Kaku Gothic Pro","メイリオ", "Meiryo", sans-serif;
  --font-base: "Hiragino Sans", var(--font-fallback);
  --font-english: "DIN", var(--font-base);
  --font-weight-regular: 400;
  --font-weight-semibold: 500;
  --font-weight-demibold: 600;
  --font-weight-bold: 700;
}

.font-eng {
  font-family: var(--font-english);
}

html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-size: 10px;
}
@media print, (min-width: 1920px) {
  html {
    font-size: 0.5208333333vw;
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: 2.5641025641vw;
  }
}

* {
  margin: 0;
  padding: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

[hidden],
template {
  display: none;
}

a {
  background-color: transparent;
}

a:active,
a:hover {
  outline: 0;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b,
strong {
  font-weight: bold;
}

dfn {
  font-style: italic;
}

h1 {
  font-size: 2em;
}

mark {
  background: #ff0;
  color: #000;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

svg:not(:root) {
  overflow: hidden;
}

hr {
  box-sizing: content-box;
  height: 0;
}

pre {
  overflow: auto;
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
  -webkit-appearance: button;
  cursor: pointer;
}

button[disabled],
html input[disabled] {
  cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input {
  line-height: normal;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  height: auto;
}

input[type=search] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

legend {
  border: 0;
}

textarea {
  overflow: auto;
}

optgroup {
  font-weight: bold;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

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

li {
  list-style: none;
}

body {
  --color-base: #141414;
  --color-bg-base: #fff;
  --font-weight-normal: 400;
  font-family: var(--font-base);
  font-size: 1.6rem;
  font-weight: var(--font-weight-normal);
  color: var(--color-base);
  background: var(--color-bg-base);
  line-height: 1.5;
}
@media print, (min-width: 768px) {
  body {
    --screen-pc-min: 116rem;
    min-width: var(--screen-pc-min);
  }
}

img {
  height: auto;
  vertical-align: top;
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.js-fade {
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), translate 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-fade.fadeIn {
  opacity: 0;
}
.js-fade.fadeIn.in {
  animation: fadeIn;
  animation-duration: 2s;
}
.js-fade.fadeUp {
  translate: 0 50%;
  opacity: 0;
}
.js-fade.fadeUp.in {
  animation: fadeUp;
}
.js-fade.fadeDown {
  translate: 0 -50%;
  opacity: 0;
}
.js-fade.fadeDown.in {
  animation: fadeDown;
}
.js-fade.fadeLeft {
  translate: -50% 0;
  opacity: 0;
}
.js-fade.fadeLeft.in {
  animation: fadeLeft;
}
.js-fade.fadeRight {
  translate: 50% 0;
  opacity: 0;
}
.js-fade.fadeRight.in {
  animation: fadeRight;
}
.js-fade.fadeBg::before {
  opacity: 0;
}
.js-fade.fadeBg.in::before {
  animation: fadeIn;
}
.js-fade__in, .js-fade.fadeIn.in, .js-fade.fadeUp.in, .js-fade.fadeDown.in, .js-fade.fadeLeft.in, .js-fade.fadeRight.in, .js-fade.fadeBg.in::before {
  animation-fill-mode: both;
  animation-duration: 1s;
}
@media print, (min-width: 768px) {
  .js-fade.in.delay-01 {
    animation-delay: 0.25s;
  }
  .js-fade.in.delay-02 {
    animation-delay: 0.5s;
  }
  .js-fade.in.delay-03 {
    animation-delay: 0.75s;
  }
  .js-fade.in.delay-04 {
    animation-delay: 1s;
  }
  .js-fade.in.delay-05 {
    animation-delay: 1.25s;
  }
  .js-fade.in.delay-06 {
    animation-delay: 1.5s;
  }
  .js-fade.in.delay-07 {
    animation-delay: 1.75s;
  }
  .js-fade.in.delay-08 {
    animation-delay: 2s;
  }
}

.move-light::after {
  position: absolute;
  inset: 0;
  content: "";
  background: radial-gradient(hsla(54, 70%, 90%, 0) 0%, hsla(54, 70%, 90%, 0.4) 55%, hsla(8, 79%, 90%, 0.45) 70%, hsla(8, 79%, 90%, 0) 80%, hsla(8, 79%, 90%, 0) 100%);
  background-repeat: no-repeat;
  background-position: 120% 120%;
  background-size: 500% 500%;
  mix-blend-mode: hard-light;
}
.move-light.in::after {
  animation: move-light 1500ms 300ms ease-out forwards, move-light-opacity 1500ms 300ms forwards;
  animation-delay: 2s;
}

.text-light.in {
  animation: text-light 3s forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeUp {
  from {
    translate: 0 50%;
    opacity: 0;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes fadeDown {
  from {
    translate: 0 -50%;
    opacity: 0;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes fadeRight {
  from {
    translate: 50% 0;
    opacity: 0;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes fadeLeft {
  from {
    translate: -50% 0;
    opacity: 0;
  }
  to {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes move-light {
  from {
    background-position: 150% 100%;
  }
  to {
    background-position: 50% 50%;
  }
}
@keyframes move-light-up {
  from {
    background-position: 120% 0%;
  }
  to {
    background-position: 50% 50%;
  }
}
@keyframes move-light-opacity {
  50% {
    opacity: 0.75;
  }
  100% {
    opacity: 0;
  }
}
@keyframes text-light {
  from {
    background-position: 100% 50%;
  }
  to {
    background-position: 0% 50%;
  }
}
@keyframes text-color-w {
  from {
    color: rgba(255, 255, 255, 0);
  }
  to {
    color: rgb(255, 255, 255);
  }
}
@keyframes dash {
  from {
    stroke-dashoffset: 100;
  }
  to {
    stroke-dashoffset: 0;
  }
}
[data-animation^=fade-in]:not(.animated) {
  opacity: 0;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in-left {
  0% {
    opacity: 0;
    transform: translateX(12px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fade-in-right {
  0% {
    opacity: 0;
    transform: translateX(-12px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fade-in-up {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/*  button
---------------------------------------------------------- */
.c-btn {
  --color-bg-btn: #000;
  --color-white: #fff;
  --font-size: 3rem;
  color: var(--color-white);
  background: var(--color-bg-btn);
}
.c-btn01 {
  font-size: 2.6rem;
  font-weight: 600;
  color: #fff;
  background: #00AA4B;
  min-height: 6.4rem;
  min-width: 23.6rem;
  letter-spacing: 0.05em;
  position: relative;
  padding: 1rem 1.7rem;
  display: inline-flex;
  gap: 1rem;
  align-items: center;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  border-radius: 3.2rem;
  overflow: hidden;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .c-btn01 {
    min-width: 12.6rem;
    min-height: 3.4rem;
    font-size: 1.3rem;
    font-weight: 500;
    border-radius: 1rem;
    padding: 0.8rem 1.2rem;
    gap: 0.5rem;
  }
}
.c-btn01 ._icon {
  width: 3rem;
  height: 3rem;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .c-btn01 ._icon {
    width: 1.6rem;
    height: 1.6rem;
  }
}
.c-btn01.font-eng {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.c-btn02 {
  font-size: 3.5rem;
  font-weight: 700;
  background: #1A238A;
  border-radius: 1.4rem;
  overflow: hidden;
  position: relative;
  letter-spacing: 0.02em;
  color: #FFF648;
  padding: 0 7.6rem;
  min-height: 9.7rem;
  width: 46rem;
  display: flex;
  align-items: center;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
  .c-btn02 {
    width: 27.7rem;
    min-height: 5.8rem;
    font-size: 2rem;
    padding: 0 4.5rem 0 5rem;
  }
}
.c-btn02::after {
  content: "";
  width: 5.4rem;
  height: 5.4rem;
  background: url("../images/ico_arrow_w.png") no-repeat;
  background-size: 100% 100%;
  position: absolute;
  top: calc(50% - 2.7rem);
  right: 1.4rem;
}
@media screen and (max-width: 767px) {
  .c-btn02::after {
    width: 3.2rem;
    height: 3.2rem;
    top: calc(50% - 1.6rem);
    right: 0.9rem;
  }
}
.c-btn02 small {
  color: #fff;
  font-size: 3.1rem;
}
@media screen and (max-width: 767px) {
  .c-btn02 small {
    font-size: 1.7rem;
  }
}
.c-btn02 ._icon {
  width: 4rem;
  height: 4rem;
  position: absolute;
  top: calc(50% - 2rem);
  left: 2.5rem;
}
@media screen and (max-width: 767px) {
  .c-btn02 ._icon {
    width: 2.6rem;
    height: 2.6rem;
    top: calc(50% - 1.3rem);
    left: 1.5rem;
  }
}
.c-btn03 {
  display: inline-block;
  font-size: 4.4rem;
  font-weight: 600;
  letter-spacing: 0.07rem;
  text-align: center;
  padding: 2.5rem 9rem;
  background: #22AAED;
  color: #fff;
  border-radius: 2.5rem;
  overflow: hidden;
  width: 69.8rem;
}
@media screen and (max-width: 767px) {
  .c-btn03 {
    font-size: 2.1rem;
    padding: 1.8rem 3.1rem;
    border-radius: 0.9rem;
    width: 30.8rem;
  }
}

@media print, (min-width: 768px) {
  a {
    transition: opacity 0.2s;
  }
  a:hover {
    opacity: 0.5;
  }
}
.footer {
  background: #22AAED;
  padding: 3rem 0 16rem;
  position: relative;
  color: #fff;
  z-index: 12;
}
@media screen and (max-width: 767px) {
  .footer {
    padding-bottom: 11rem;
  }
}
.footer__inner {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .footer__inner {
    flex-direction: column;
    flex-flow: column-reverse;
  }
}
@media screen and (max-width: 767px) {
  .footer__main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-top: 5rem;
  }
}
.footer__logo {
  width: 22.6rem;
  margin-bottom: 5rem;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .footer__logo {
    width: 16.7rem;
    margin-top: 0;
    margin-bottom: 2rem;
  }
}
.footer__link {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem;
  margin-bottom: 1rem;
}
.footer__link li a {
  color: #fff;
  text-decoration: underline;
  font-size: 1.9rem;
  font-weight: 600;
  letter-spacing: 0.07;
}
@media screen and (max-width: 767px) {
  .footer__link li a {
    font-size: 1.3rem;
  }
}
.footer__copy {
  font-size: 1.9rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .footer__copy {
    font-size: 1.3rem;
  }
}
.footer__contact {
  width: 57.5rem;
  background: #fff;
  padding: 2.8rem 4.6rem 4rem;
}
@media screen and (max-width: 767px) {
  .footer__contact {
    width: 100%;
    margin: auto;
    padding: 2.5rem 1.5rem;
  }
}
.footer__contact__label {
  font-size: 2.2rem;
  text-align: center;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #000;
}
.footer__contact__label.--color-blue {
  font-size: 3.3rem;
  margin-bottom: 0;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .footer__contact__label {
    font-size: 2.2rem;
  }
}
.footer__contact__btn {
  display: flex;
  gap: 1.5rem 2rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn {
    gap: 2rem 1rem;
  }
}
.footer__contact__btn .c-btn01 {
  border-radius: 1.8rem;
  font-size: 2.5rem;
  padding: 2rem 1rem;
  min-width: 23.1rem;
  gap: 0;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn .c-btn01 {
    font-size: 1.8rem;
    border-radius: 1.5rem;
    min-width: 15.3rem;
    text-align: center;
    justify-content: center;
    padding: 1rem 0.8rem 1rem 1rem;
  }
}
.footer__contact__btn .c-btn01 ._icon {
  width: 4.3rem;
  height: 4.3rem;
  margin-right: 0.7rem;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn .c-btn01 ._icon {
    width: 3.6rem;
    height: 3.6rem;
    margin-right: 0.7rem;
  }
}
.footer__contact__btn .c-btn01-large {
  font-size: 4.1rem;
  width: 100%;
  justify-content: center;
  padding: 1.1rem 1rem;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn .c-btn01-large {
    font-size: 2.6rem;
  }
}
.footer__contact__btn .c-btn01-large ._icon {
  width: 5.8rem;
  height: 5.8rem;
  margin-right: 2.3rem;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn .c-btn01-large ._icon {
    width: 4rem;
    height: 4rem;
    margin-right: 1.4rem;
  }
}
.footer__contact__btn .c-btn01.font-eng {
  font-size: 2.7rem;
}
@media screen and (max-width: 767px) {
  .footer__contact__btn .c-btn01.font-eng {
    font-size: 1.7rem;
    letter-spacing: 0;
  }
}

.navFixed {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.3);
  padding: 2.4rem 0;
  box-shadow: 0 -3px 5px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
  z-index: 11;
}
@media screen and (max-width: 767px) {
  .navFixed {
    padding: 0.8rem 0;
  }
}
.navFixed__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 7.9rem;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .navFixed__inner {
    gap: 3rem;
  }
}
.navFixed .c-btn01 {
  border-radius: 1.4rem;
  min-width: 30.4rem;
  font-size: 2.6rem;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .navFixed .c-btn01 {
    flex-direction: column;
    font-size: 1.3rem;
    min-width: 9rem;
    text-align: center;
    gap: 1rem;
    border-radius: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .navFixed .c-btn01 ._icon {
    width: 2.2rem;
    height: 2.2rem;
  }
}
.navFixed .c-btn01.font-eng {
  font-size: 3rem;
}
.navFixed:not(.active) {
  opacity: 0;
  translate: 0 101%;
}

.header {
  height: 14.3rem;
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: 2.2rem 0;
}
@media screen and (max-width: 767px) {
  .header {
    width: 100%;
    height: 11.6rem;
    padding: 2.8rem;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
  }
}
.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 3rem;
}
@media screen and (max-width: 767px) {
  .header__inner {
    gap: 1.5rem;
    background: #fff;
    border-radius: 1.8rem;
    padding: 1.3rem 2rem !important;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  }
}
.header__logo {
  --color-base: #1B1464;
  --font-weight-semibold: 600;
  width: 30.3rem;
  position: relative;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .header__logo {
    width: 14.5rem;
    margin-top: 0;
    line-height: 1;
  }
}
.header__logo__text {
  color: var(--color-base);
  position: absolute;
  top: -0.5rem;
  right: 0.3rem;
  font-size: 1.7rem;
  letter-spacing: 0.03em;
  font-weight: var(--font-weight-semibold);
}
.header__contact__label {
  font-size: 2rem;
  margin: 0 0 0.4rem 1.5rem;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
}
.header__contact__label .--line span {
  display: inline-block;
  position: relative;
}
.header__contact__label .--line span::before, .header__contact__label .--line span::after {
  content: "";
  width: 1px;
  height: 2rem;
  background: #141414;
  position: absolute;
  bottom: -0.5rem;
  transform-origin: bottom;
}
.header__contact__label .--line span::before {
  left: 0;
  rotate: -30deg;
}
.header__contact__label .--line span::after {
  right: 0;
  rotate: 30deg;
}
.header__contact__btn {
  display: flex;
  gap: 1rem;
}
@media screen and (max-width: 767px) {
  .header .c-btn01.font-eng {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
}

@media print, (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.db {
  display: block !important;
}

.hide {
  display: none !important;
}

@media print, (min-width: 768px) {
  .db_pc {
    display: block !important;
  }
}
article {
  overflow: hidden;
  position: relative;
}

.wrap, .kv__main, .footer__inner, .header__inner {
  width: 100%;
  padding: 0 2rem;
  margin: auto;
}
@media print, (min-width: 768px) {
  .wrap, .kv__main, .footer__inner, .header__inner {
    width: 116rem;
    padding: 0 4rem;
  }
}

.secGray {
  background: #F5F5F5;
}

.--color-yellow {
  color: #FFF649;
}
.--color-red {
  color: #B70000;
}
.--color-blue {
  color: #22AAED;
}

.--txt-outline {
  position: relative;
}
.--txt-outline::before {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.heading02 {
  font-size: 3.5rem;
  font-weight: 600;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .heading02 {
    font-size: 2.3rem;
  }
}
.heading02__label {
  display: inline-block;
  position: relative;
}
@media print, (min-width: 768px) {
  .heading02__label {
    padding: 0 1rem;
  }
}
.heading02__label::before, .heading02__label::after {
  content: "";
  width: 2px;
  height: 3.6rem;
  background: #141414;
  position: absolute;
  bottom: 0;
  transform-origin: bottom;
}
.heading02__label::before {
  left: 0;
  rotate: -30deg;
}
.heading02__label::after {
  right: 0;
  rotate: 30deg;
}

.heading03 {
  text-align: center;
}
.heading03__label {
  position: relative;
  display: inline-block;
  padding-bottom: 1rem;
  font-size: 5.9rem;
  font-weight: 600;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 767px) {
  .heading03__label {
    font-size: 3.1rem;
    padding-bottom: 1.5rem;
  }
}
.heading03__label::after {
  content: "";
  width: 31.3rem;
  height: 1rem;
  border-radius: 1.2rem;
  background: #FFF649;
  position: absolute;
  bottom: 0;
  left: calc(50% - 16rem);
}
@media screen and (max-width: 767px) {
  .heading03__label::after {
    height: 0.8rem;
    width: 15.4rem;
    left: calc(50% - 7.7rem);
  }
}

._price-35 {
  background: url("../images/txt_price_35.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-35 {
    background: url("../images/txt_price_35-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-50 {
  background: url("../images/txt_price_50.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-50 {
    background: url("../images/txt_price_50-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-60 {
  background: url("../images/txt_price_60.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-60 {
    background: url("../images/txt_price_60-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-120 {
  background: url("../images/txt_price_120.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-120 {
    background: url("../images/txt_price_120-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-250 {
  background: url("../images/txt_price_250.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-250 {
    background: url("../images/txt_price_250-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-500 {
  background: url("../images/txt_price_500.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-500 {
    background: url("../images/txt_price_500-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-600 {
  background: url("../images/txt_price_600.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-600 {
    background: url("../images/txt_price_600-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-3500 {
  background: url("../images/txt_price_3500.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-3500 {
    background: url("../images/txt_price_3500-sp.png") no-repeat;
    background-size: 100%;
  }
}
._price-4000 {
  background: url("../images/txt_price_4000.png") no-repeat;
  background-size: 100%;
}
@media screen and (max-width: 767px) {
  ._price-4000 {
    background: url("../images/txt_price_4000-sp.png") no-repeat;
    background-size: 100%;
  }
}

.label__line {
  font-size: 2.4rem;
  color: #00AA4B;
  text-align: center;
  font-weight: 600;
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .label__line {
    font-size: 1.9rem;
  }
}
.label__line span {
  display: inline-block;
  position: relative;
  padding: 0 0.5rem;
}
.label__line span::before, .label__line span::after {
  content: "";
  width: 2px;
  height: 3rem;
  background: #141414;
  position: absolute;
  bottom: 0;
  transform-origin: bottom;
}
@media screen and (max-width: 767px) {
  .label__line span::before, .label__line span::after {
    width: 1px;
    height: 2.5rem;
  }
}
.label__line span::before {
  left: 0;
  rotate: -30deg;
}
.label__line span::after {
  right: 0;
  rotate: 30deg;
}

.kv {
  height: 66rem;
  position: relative;
  background: #7ABFFC;
}
@media screen and (max-width: 767px) {
  .kv {
    height: 72.6rem;
  }
}
.kv__img {
  position: absolute;
  overflow: hidden;
  inset: 0;
}
.kv__img img {
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
}
@media print, (min-width: 768px) {
  .kv__img img {
    min-width: 192rem;
    left: 50%;
    translate: -50% 0;
  }
}
.kv__main {
  position: relative;
  display: flex;
  align-items: center;
  height: 66rem;
}
@media screen and (max-width: 767px) {
  .kv__main {
    height: 72.6rem;
    align-items: flex-start;
  }
}
.kv__main__img {
  width: 39.6rem;
  position: absolute;
  right: 3.5rem;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .kv__main__img {
    width: 30.9rem;
    bottom: 8.3rem;
    right: -8.1rem;
  }
}
.kv__main__text {
  width: 68.5rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .kv__main__text {
    width: 100%;
    padding-top: 16rem;
  }
  .kv__main__text__group01 {
    width: 30rem;
    margin-left: -1rem;
  }
  .kv__main__text__group02 {
    width: 31.2rem;
    margin: auto;
    margin-top: 10rem;
  }
}
.kv__main__text ._text1 {
  --shadow-width1: 2px;
  --shadow-width2: -2px;
  font-size: 5.5rem;
  color: #EC3D31;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-align: center;
  line-height: 1.3;
  text-shadow: var(--shadow-width1) var(--shadow-width1) 0 #fff, var(--shadow-width2) var(--shadow-width2) 0 #fff, var(--shadow-width2) var(--shadow-width1) 0 #fff, var(--shadow-width1) var(--shadow-width2) 0 #fff;
}
@media screen and (max-width: 767px) {
  .kv__main__text ._text1 {
    font-size: 2.9rem;
    --shadow-width1: 1px;
    --shadow-width2: -1px;
  }
}
.kv__main__text ._text1 span {
  color: #141414;
  text-shadow: none;
}
.kv__main__text ._text2 {
  font-size: 5.5rem;
  line-height: 1.4909090909;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
@media print, (min-width: 768px) {
  .kv__main__text ._text2 {
    white-space: nowrap;
  }
}
@media screen and (max-width: 767px) {
  .kv__main__text ._text2 {
    font-size: 3.1rem;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 0.5rem;
    gap: 0 0.5rem;
  }
}
.kv__main__text ._text2 ._mark {
  display: inline-flex;
  background: #fff;
  padding: 1rem 0.8rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .kv__main__text ._text2 ._mark {
    font-size: 4.3rem;
    padding: 0.8rem 0.6rem;
    font-weight: 700;
  }
}
.kv__main__text ._text3 {
  margin: 1rem 0 3rem;
  width: 68.2rem;
}
@media screen and (max-width: 767px) {
  .kv__main__text ._text3 {
    width: 28.6rem;
    margin-top: 0;
  }
}
.kv__main__text ._text4 {
  font-size: 2.3rem;
  font-weight: 600;
  color: #2B7ABE;
  background: #fff;
  margin-bottom: 1.4rem;
  padding: 0.5rem 1rem;
  text-align: center;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .kv__main__text ._text4 {
    font-size: 1.4rem;
  }
}
.kv__main__text ul._text5 {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  .kv__main__text ul._text5 {
    flex-wrap: wrap;
    gap: 1.2rem 1.2rem;
    justify-content: center;
  }
}
.kv__main__text ul._text5 li {
  width: 15.8rem;
  color: #fff;
  background: #2B7ABE;
  font-size: 3.5rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-align: center;
  border-radius: 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 0;
}
@media screen and (max-width: 767px) {
  .kv__main__text ul._text5 li {
    width: 11.6rem;
    font-size: 2.5rem;
  }
}
.kv__main__text ul._text5 li:nth-child(even) {
  background: #22AAEC;
}
.kv__main__text ul._text5 li small {
  font-size: 2.8rem;
  font-weight: 700;
  display: inline-flex;
}
@media screen and (max-width: 767px) {
  .kv__main__text ul._text5 li small {
    font-size: 2rem;
  }
}

.mediaPublic {
  padding: 5rem 0 10rem;
}
@media screen and (max-width: 767px) {
  .mediaPublic {
    padding: 3rem 0 7.2rem;
    overflow: hidden;
  }
}
.mediaPublic__ttl {
  text-align: center;
  margin-bottom: 2rem;
}
.mediaPublic__ttl__label {
  font-size: 3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  position: relative;
  padding: 0 5.5rem;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .mediaPublic__ttl__label {
    font-size: 1.8rem;
    padding: 0 4rem;
  }
}
.mediaPublic__ttl__label::before, .mediaPublic__ttl__label::after {
  content: "";
  width: 3.6rem;
  height: 2px;
  background: #141414;
  position: absolute;
  top: 50%;
}
@media screen and (max-width: 767px) {
  .mediaPublic__ttl__label::before, .mediaPublic__ttl__label::after {
    width: 2.4rem;
  }
}
.mediaPublic__ttl__label::before {
  left: 0;
}
.mediaPublic__ttl__label::after {
  right: 0;
}
.mediaPublic__list {
  padding: 0 2.5rem;
}
@media screen and (max-width: 767px) {
  .mediaPublic__list {
    overflow-x: auto;
    width: 38.5rem;
    padding-right: 0;
    padding-left: 1.6rem;
  }
}
.mediaPublic__list ul {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}
@media screen and (max-width: 767px) {
  .mediaPublic__list ul {
    gap: 1rem;
    width: 69.4rem;
  }
}
.mediaPublic__list ul li {
  width: 24.5rem;
  padding-top: 7.7rem;
  background: #141414;
}
@media screen and (max-width: 767px) {
  .mediaPublic__list ul li {
    width: 16.6rem;
  }
}

.frameUse {
  border-top: 4rem solid #22AAEC;
  border-bottom: 4rem solid #22AAEC;
}
.frameUse__body {
  padding: 6rem 0 5rem;
  width: 99rem;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .frameUse__body {
    width: 100%;
    padding: 4.7rem 1rem 5rem;
  }
}
.frameUse__body__lead {
  font-size: 2.6rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}
@media print, (min-width: 768px) {
  .frameUse__body__lead {
    display: flex;
    justify-content: center;
    align-items: flex-end;
  }
}
@media screen and (max-width: 767px) {
  .frameUse__body__lead {
    font-size: 2.3rem;
    text-align: center;
  }
}
.frameUse__body__lead img {
  width: 42rem;
}
@media screen and (max-width: 767px) {
  .frameUse__body__lead img {
    width: 30.6rem;
    display: inline-block;
    margin-top: 1rem;
  }
}
.frameUse__body__ttl {
  margin-top: 1.5rem;
}
@media screen and (max-width: 767px) {
  .frameUse__body__ttl {
    margin-top: 2.1rem;
  }
}
.frameUse__body__btn {
  margin-top: 2.7rem;
}
@media print, (min-width: 768px) {
  .frameUse__body__btn {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .frameUse__body__btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
  }
}

.problem {
  position: relative;
  padding-top: 7rem;
}
@media screen and (max-width: 767px) {
  .problem {
    padding-top: 4.8rem;
  }
}
.problem::before {
  content: "";
  width: 100%;
  height: 5rem;
  position: absolute;
  bottom: 0;
  right: 0;
  background: #fff;
}
@media screen and (max-width: 767px) {
  .problem::before {
    height: 1.2rem;
  }
}
.problem__inner {
  position: relative;
  background: url("../images/bg_support.png") no-repeat;
  background-size: 100% 100%;
  padding: 10rem 4rem 13rem;
}
@media screen and (max-width: 767px) {
  .problem__inner {
    background: url("../images/bg_support-sp.png") no-repeat;
    background-size: 100% 100%;
    padding: 3rem 1.5rem 4rem;
  }
}
.problem__ttl {
  font-size: 4.8rem;
  font-weight: 600;
  color: #fff;
  text-align: center;
  letter-spacing: 0.02em;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 767px) {
  .problem__ttl {
    font-size: 2.2rem;
  }
}
.problem__ttl ._color {
  --shadow-width1: 2px;
  --shadow-width2: -2px;
  color: #22AAEC;
  text-shadow: var(--shadow-width1) var(--shadow-width1) 0 #fff, var(--shadow-width2) var(--shadow-width2) 0 #fff, var(--shadow-width2) var(--shadow-width1) 0 #fff, var(--shadow-width1) var(--shadow-width2) 0 #fff;
}
@media screen and (max-width: 767px) {
  .problem__ttl ._color {
    --shadow-width1: 1px;
    --shadow-width2: -1px;
  }
}
.problem__ttl ._sizeL {
  font-size: 1.3em;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .problem__ttl ._sizeL {
    font-size: 3.1rem;
  }
}
.problem__txt {
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .problem__txt {
    font-size: 1rem;
  }
}
.problem__list {
  margin-top: 6.9rem;
}
@media screen and (max-width: 767px) {
  .problem__list {
    margin-top: 2rem;
  }
}
.problem__list ul {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem 1.2rem;
}
@media screen and (max-width: 767px) {
  .problem__list ul {
    gap: 1.2rem 2rem;
  }
}
.problem__list ul li {
  width: 24rem;
  background: #22AAEC;
  border-radius: 2rem;
  padding: 1.5rem 0 1rem;
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.03em;
  text-align: center;
  line-height: 1.35;
}
@media screen and (max-width: 767px) {
  .problem__list ul li {
    width: 15rem;
    font-size: 1.5rem;
    padding: 1.5rem 0;
  }
}
.problem__list__count {
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.03em;
  margin-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .problem__list__count {
    font-size: 1.5rem;
  }
}
.problem__list__img {
  margin-bottom: 2.5rem;
}
@media screen and (max-width: 767px) {
  .problem__list__img {
    margin-bottom: 1em;
  }
}
.problem__list__img img {
  width: 17.5rem;
}
@media screen and (max-width: 767px) {
  .problem__list__img img {
    width: 10.9rem;
  }
}

.solution {
  padding: 4.5rem 0 9rem;
}
@media screen and (max-width: 767px) {
  .solution {
    padding: 6.2rem 0 7rem;
  }
}
.solution__ttl {
  font-size: 7rem;
}
@media screen and (max-width: 767px) {
  .solution__ttl {
    font-size: 2.8rem;
  }
}
.solution__ttl .heading02__label::after {
  right: 4rem;
}
@media screen and (max-width: 767px) {
  .solution__ttl .heading02__label::after {
    right: 1rem;
  }
}
.solution__ttl .heading02__label::after, .solution__ttl .heading02__label::before {
  height: 2.3rem;
}
.solution__ttl img {
  width: 87.9rem;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .solution__ttl img {
    width: 35.4rem;
    margin-top: 0.5rem;
  }
}
.solution__list {
  margin-top: 7.4rem;
}
@media screen and (max-width: 767px) {
  .solution__list {
    margin-top: 2.7rem;
  }
}
.solution__list ul {
  width: 105.2rem;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .solution__list ul {
    width: 100%;
  }
}
.solution__list ul li {
  font-size: 4.1rem;
  line-height: 1.5365853659;
  color: #fff;
  padding: 2.7rem 2.7rem 2.7rem 35.6rem;
  position: relative;
  min-height: 17.7rem;
  background: #22AAED;
  border-radius: 8.9rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .solution__list ul li {
    font-size: 1.7rem;
    padding: 3.5rem 2rem 2.8rem 12rem;
    min-height: 10rem;
  }
}
.solution__list ul li .--color-yellow {
  font-weight: 700;
}
.solution__list ul li + li {
  margin-top: 3.2rem;
}
.solution__list__img {
  position: absolute;
  height: 17.1rem;
  width: auto;
  left: 16.6rem;
  top: 50%;
  translate: 0 -50%;
}
@media screen and (max-width: 767px) {
  .solution__list__img {
    left: 2.8rem;
    height: 10rem;
    top: 51%;
  }
}
.solution__list__img img {
  width: auto;
  height: 100%;
}

.ownership {
  padding: 6.5rem 10.5rem;
}
@media screen and (max-width: 767px) {
  .ownership {
    padding: 7.3rem 0 8rem;
  }
}
.ownership__inner {
  background: #fff;
  padding: 7.2rem 5.4rem;
}
@media screen and (max-width: 767px) {
  .ownership__inner {
    padding: 4rem 0.5rem 5rem;
  }
}
.ownership__ttl {
  font-size: 5.4rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.03em;
  line-height: 1.35;
  margin-bottom: 4.5rem;
}
@media screen and (max-width: 767px) {
  .ownership__ttl {
    font-size: 2rem;
    margin-bottom: 3.5rem;
  }
}
.ownership__ttl h2 {
  font-size: 8rem;
  color: #22AAED;
  margin-bottom: 1.7rem;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .ownership__ttl h2 {
    font-size: 3rem;
    margin: 0.4rem 0 1rem;
  }
}
.ownership__ttl h2 > span {
  display: inline-block;
  position: relative;
}
.ownership__ttl h2 > span > * {
  position: relative;
}
.ownership__ttl h2 > span::before {
  content: "";
  width: 103%;
  height: 3.4rem;
  background: #FFF648;
  position: absolute;
  left: -2%;
  bottom: 0;
  transform: skewX(-15deg);
}
@media screen and (max-width: 767px) {
  .ownership__ttl h2 > span::before {
    height: 1.3rem;
  }
}

.service {
  padding: 13rem 0 5rem;
  position: relative;
  background: #61C0FC url("../images/bg_service.png") no-repeat;
  background-size: 100% 78rem;
}
@media screen and (max-width: 767px) {
  .service {
    padding: 10rem 0 2rem;
    background-size: 200% 65rem;
    background-position: top center;
  }
}
.service__head {
  text-align: center;
  margin-bottom: 10.5rem;
  font-size: 2.1rem;
  font-weight: 500;
  letter-spacing: 0.03rem;
  margin-bottom: 10.5rem;
}
@media screen and (max-width: 767px) {
  .service__head {
    font-size: 1.3rem;
  }
}
.service__head h2 {
  margin-bottom: 1rem;
}
.service__head h2 img {
  width: 64.2rem;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .service__head h2 img {
    width: 32.6rem;
  }
}
.service__head ._lead {
  font-size: 3.7rem;
  font-weight: 600;
  margin-bottom: 1.3rem;
}
@media screen and (max-width: 767px) {
  .service__head ._lead {
    font-size: 2.2rem;
  }
}
.service__list {
  width: 100.6rem;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6.3rem 3.1rem;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .service__list {
    width: 100%;
    gap: 2.4rem 1.3rem;
  }
}
.service__list > li {
  width: 31.4rem;
  border-radius: 1.8rem;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
  background: #fff;
  padding: 3.5rem 1.6rem 2.4rem;
  min-height: 37.2rem;
}
@media screen and (max-width: 767px) {
  .service__list > li {
    width: 15.4rem;
    min-height: 22.6rem;
    padding: 1rem;
  }
}
.service__list figure {
  font-size: 2.4rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .service__list figure {
    font-size: 1.3rem;
  }
}
.service__list figure img {
  width: 18.6rem;
  display: inline-block;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  .service__list figure img {
    width: 11.2rem;
  }
}
.service .expert {
  margin-top: 14.4rem;
  background: #fff;
  padding: 3.9rem 3rem 1.8rem;
}
@media screen and (max-width: 767px) {
  .service .expert {
    margin-top: 11.5rem;
    padding: 2.6rem 1.2rem 1.6rem;
  }
}
.service .expert__head {
  font-size: 2.1rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-align: center;
  margin-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .service .expert__head {
    font-size: 1.3rem;
    margin-bottom: 4rem;
  }
}
.service .expert__head h3 {
  font-size: 6.2rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  margin-bottom: 1.8rem;
}
@media screen and (max-width: 767px) {
  .service .expert__head h3 {
    font-size: 2.9rem;
  }
}
.service .expert__lead {
  font-size: 2.7rem;
  font-weight: 600;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .service .expert__lead {
    font-size: 1.5rem;
  }
}
.service .expert__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .service .expert__list {
    margin-bottom: 3.6rem;
  }
}
.service .expert__list > li {
  width: 23.2rem;
}
@media screen and (max-width: 767px) {
  .service .expert__list > li {
    width: 14.1rem;
  }
}
.service .expert__list > li figure {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
}
.service .expert__list > li figure figcaption {
  font-size: 1.9rem;
  text-align: center;
  margin-top: 1rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .service .expert__list > li figure figcaption {
    font-size: 1.5rem;
  }
}
.service .expert__list > li figure figcaption .--color-blue {
  font-size: 1.7rem;
  display: block;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .service .expert__list > li figure figcaption .--color-blue {
    font-size: 1.3rem;
  }
}
.service .expert__list > li figure figcaption small {
  font-size: 1.6rem;
  display: block;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .service .expert__list > li figure figcaption small {
    font-size: 1.2rem;
  }
}

.serviceArea {
  height: 95.4rem;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .serviceArea {
    height: 43.6rem;
  }
}
.serviceArea::before {
  content: "";
  width: 100%;
  height: 100%;
  background: url("../images/img_area.png") no-repeat center;
  background-size: auto 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  .serviceArea::before {
    width: calc(100% + 2.5rem);
    left: -2.5rem;
  }
}
.serviceArea__ttl {
  width: 74rem;
  background: rgba(255, 255, 255, 0.9);
  padding: 3.3rem 2.7rem 2rem;
  text-align: center;
  position: relative;
}
@media screen and (max-width: 767px) {
  .serviceArea__ttl {
    width: 27.2rem;
    padding: 2.5rem 1rem 1.5rem;
  }
}
.serviceArea__ttl h2 {
  font-size: 7.3rem;
  letter-spacing: 0.07em;
  font-weight: 700;
  margin-bottom: 1.7rem;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .serviceArea__ttl h2 {
    font-size: 2.6rem;
    margin-bottom: 1.5rem;
  }
}
.serviceArea__ttl h2 small {
  font-size: 5.7rem;
  display: block;
  border-top: 0.5rem solid #1A559E;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  .serviceArea__ttl h2 small {
    font-size: 2rem;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
  }
}
.serviceArea__ttl h2 .--color-red {
  font-size: 9.4rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .serviceArea__ttl h2 .--color-red {
    font-size: 3.9rem;
  }
}
.serviceArea__ttl p {
  font-size: 2.7rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 767px) {
  .serviceArea__ttl p {
    font-size: 1.2rem;
  }
}

.introduce {
  background: #D8F0FF;
  padding: 8rem 0 5rem;
}
@media screen and (max-width: 767px) {
  .introduce {
    padding: 3.5rem 0 4.5rem;
  }
}
.introduce__ttl {
  margin-bottom: 9.4rem;
}
@media screen and (max-width: 767px) {
  .introduce__ttl {
    margin-bottom: 3.6rem;
  }
}
.introduce__ttl .heading03__label::after {
  width: 89.8%;
  left: 50%;
  translate: -50% 0;
}
@media screen and (max-width: 767px) {
  .introduce__ttl .heading03__label::after {
    width: 100%;
  }
}
.introduce .result {
  background: #fff;
  padding: 4rem 7.2rem;
  border-radius: 1.8rem;
  overflow: hidden;
  font-size: 2.3rem;
  letter-spacing: 0.07em;
  margin-bottom: 3.2rem;
}
@media screen and (max-width: 767px) {
  .introduce .result {
    padding: 4rem 1.5rem;
    font-size: 1.6rem;
  }
}
.introduce .result__ttl {
  font-size: 3rem;
  font-weight: 600;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #B9B9B9;
  margin-bottom: 2.5rem;
}
@media screen and (max-width: 767px) {
  .introduce .result__ttl {
    padding: 0 1rem;
    font-size: 2.1rem;
    padding-bottom: 0.5rem;
    margin-bottom: 2rem;
  }
}
.introduce .result__ttl small {
  font-size: 0.76em;
}
.introduce .result__label {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  margin-bottom: 3.2rem;
  text-align: center;
  font-size: 3rem;
  font-weight: 700;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .introduce .result__label {
    gap: 1.7rem 1.1rem;
    font-size: 1.7rem;
  }
}
.introduce .result__label > li {
  width: 26rem;
  background: #22AAED;
  padding: 0.7rem 0.5rem 0.5rem 0.5rem;
}
@media screen and (max-width: 767px) {
  .introduce .result__label > li {
    width: 15.3rem;
  }
}
@media screen and (max-width: 767px) {
  .introduce .result__label__text {
    font-size: 1.8rem;
  }
}
.introduce .result__label__text ._price {
  font-size: 5.4rem;
  font-family: "DIN";
  line-height: 1;
  --shadow-width1: 1px;
  --shadow-width2: -1px;
  text-shadow: var(--shadow-width1) var(--shadow-width1) 0 transparent, var(--shadow-width2) var(--shadow-width2) 0 transparent, var(--shadow-width2) var(--shadow-width1) 0 transparent, var(--shadow-width1) var(--shadow-width2) 0 transparent;
  letter-spacing: 0.05em;
  color: transparent;
  display: inline-block;
}
@media print, (min-width: 768px) {
  .introduce .result__label__text ._price {
    line-height: 1.1;
    margin-right: 0.3rem;
  }
}
@media screen and (max-width: 767px) {
  .introduce .result__label__text ._price {
    font-size: 3rem;
    text-shadow: none;
    letter-spacing: 0.03em;
    margin-right: 0.2rem;
  }
}
.introduce .result__label__text strong {
  font-size: 3.6rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .introduce .result__label__text strong {
    font-size: 2.1rem;
  }
}
.introduce .result__label__text small {
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  .introduce .result__label__text small {
    font-size: 1.3rem;
  }
}

.frameService {
  background: #62BDE8;
  background-image: linear-gradient(to top, #62BDE8, #6ACFFF);
}
.frameService__inner {
  position: relative;
  min-height: 45.1rem;
}
.frameService__ttl {
  font-size: 2.1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #fff;
  text-align: center;
  padding-top: 6.2rem;
  padding-left: 19rem;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .frameService__ttl {
    font-size: 1rem;
    padding-top: 2.5rem;
    padding-left: 9rem;
    text-align: left;
  }
}
.frameService__ttl h2 {
  font-size: 5.1rem;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .frameService__ttl h2 {
    font-size: 3.2rem;
    margin-bottom: 0.5rem;
  }
}
.frameService__img {
  width: 30rem;
  position: absolute;
  bottom: 0;
  left: 1.7rem;
}
@media screen and (max-width: 767px) {
  .frameService__img {
    width: 22.3rem;
    left: -4.5rem;
  }
}
@media print, (min-width: 768px) {
  .frameService__btn {
    margin-left: 19.6rem;
    margin-top: 6rem;
  }
}
@media screen and (max-width: 767px) {
  .frameService__btn {
    margin-top: 14rem;
    margin-left: 1rem;
  }
}
.frameService__btn .c-btn02 {
  width: 57.4rem;
  font-size: 4.7rem;
  padding: 2.6rem 10rem 2.6rem 11.5rem;
}
@media screen and (max-width: 767px) {
  .frameService__btn .c-btn02 {
    width: 33rem;
    font-size: 2.9rem;
    padding: 1.3rem 6rem 1.3rem 6.5rem;
  }
}
@media print, (min-width: 768px) {
  .frameService__btn .c-btn02::after {
    width: 6.8rem;
    height: 6.8rem;
    top: calc(50% - 3.4rem);
    right: 2.1rem;
  }
}
@media screen and (max-width: 767px) {
  .frameService__btn .c-btn02::after {
    width: 3.8rem;
    height: 3.8rem;
    top: calc(50% - 1.9rem);
    right: 1.4rem;
  }
}
.frameService__btn .c-btn02 small {
  font-size: 3.7rem;
}
@media screen and (max-width: 767px) {
  .frameService__btn .c-btn02 small {
    font-size: 1.9rem;
  }
}
@media print, (min-width: 768px) {
  .frameService__btn .c-btn02 ._icon {
    width: 6rem;
    height: 6rem;
    top: calc(50% - 3rem);
    left: 4rem;
  }
}
@media screen and (max-width: 767px) {
  .frameService__btn .c-btn02 ._icon {
    width: 3.2rem;
    height: 3.2rem;
    top: calc(50% - 1.6rem);
    left: 2rem;
  }
}

.flow {
  padding: 10.6rem 0 12rem;
}
@media screen and (max-width: 767px) {
  .flow {
    padding: 6rem 0 7.6rem;
  }
}
.flow__ttl {
  margin-bottom: 8rem;
}
@media screen and (max-width: 767px) {
  .flow__ttl {
    margin-bottom: 7.5rem;
  }
}
.flow__step {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8.5rem 4.6rem;
}
@media screen and (max-width: 767px) {
  .flow__step {
    gap: 5.4rem 0;
  }
}
.flow__step li {
  position: relative;
}
.flow__step li::before {
  content: "";
  width: 2.2rem;
  height: 8.2rem;
  background: url("../images/ico_arrow_gray.png") no-repeat;
  background-size: 100% 100%;
  position: absolute;
}
@media print, (min-width: 768px) {
  .flow__step li::before {
    right: -3.4rem;
    top: calc(50% - 4.1rem);
  }
}
@media screen and (max-width: 767px) {
  .flow__step li::before {
    bottom: -6.7rem;
    rotate: 90deg;
    left: calc(50% - 2.1rem);
  }
}
@media print, (min-width: 768px) {
  .flow__step li.--row-reverse::before {
    left: -3.4rem;
    right: auto;
  }
}
@media screen and (max-width: 767px) {
  .flow__step li:last-child::before {
    display: none;
  }
}
.flow .step {
  width: 28.9rem;
  height: 100%;
  border: 1px solid #707070;
  border-radius: 1.8rem;
  overflow: hidden;
  position: relative;
  padding: 1rem 2.8rem 2.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 767px) {
  .flow .step {
    width: 31.8rem;
    padding: 1rem 1rem 3rem 9.5rem;
    font-size: 1.2rem;
    text-align: left;
    align-items: flex-start;
  }
}
.flow .step__count {
  font-size: 2rem;
  font-weight: 600;
  text-transform: capitalize;
  text-align: center;
  margin-bottom: 0.5rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .flow .step__count {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    margin-left: 4.5rem;
  }
}
.flow .step__count ._num {
  font-size: 5.8rem;
  line-height: 1;
  font-family: "DIN";
  --shadow-width1: 1px;
  --shadow-width2: -1px;
  text-shadow: var(--shadow-width1) var(--shadow-width1) 0 #141414, var(--shadow-width2) var(--shadow-width2) 0 #141414, var(--shadow-width2) var(--shadow-width1) 0 #141414, var(--shadow-width1) var(--shadow-width2) 0 #141414;
}
@media screen and (max-width: 767px) {
  .flow .step__count ._num {
    font-size: 3.5rem;
  }
}
.flow .step__img {
  width: 17.7rem;
  margin-bottom: 1.9rem;
}
@media screen and (max-width: 767px) {
  .flow .step__img {
    width: 7.5rem;
    position: absolute;
    top: 6rem;
    left: 0.7rem;
  }
}
.flow .step__ttl {
  font-size: 2.7rem;
  font-weight: 500;
  margin-bottom: 2rem;
}
@media screen and (max-width: 767px) {
  .flow .step__ttl {
    font-size: 2.1rem;
    margin-bottom: 1rem;
  }
}

.estateOhter {
  padding: 3.7rem 0 5.9rem;
  background: #D8F0FF;
}
.estateOhter__inner {
  background: #fff;
  padding: 4rem 7.5rem 7.5rem;
}
@media screen and (max-width: 767px) {
  .estateOhter__inner {
    padding: 2.9rem 1.6rem 4.5rem;
  }
}
.estateOhter__ttl {
  display: flex;
  justify-content: center;
  margin-bottom: 4rem;
}
.estateOhter__ttl h2 {
  font-size: 5.6rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding-right: 5rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .estateOhter__ttl h2 {
    font-size: 2.3rem;
    padding-right: 2rem;
  }
}
.estateOhter__ttl h2::after {
  content: "！";
  font-size: 123%;
  font-weight: 500;
  rotate: 15deg;
  display: inline-block;
  position: absolute;
  bottom: -1rem;
  right: -0.5rem;
}
@media screen and (max-width: 767px) {
  .estateOhter__ttl h2::after {
    bottom: 0;
  }
}
.estateOhter__ttl h2 .--mark-line {
  --shadow-width1: 3px;
  --shadow-width2: -3px;
  font-size: 9.6rem;
  font-weight: 700;
  line-height: 1;
  color: #00567E;
  letter-spacing: 0.05em;
  text-shadow: var(--shadow-width1) var(--shadow-width1) 0 #fff, var(--shadow-width2) var(--shadow-width2) 0 #fff, var(--shadow-width2) var(--shadow-width1) 0 #fff, var(--shadow-width1) var(--shadow-width2) 0 #fff;
  display: inline-block;
  position: relative;
  padding-bottom: 1rem;
}
@media screen and (max-width: 767px) {
  .estateOhter__ttl h2 .--mark-line {
    font-size: 3.9rem;
  }
}
.estateOhter__ttl h2 .--mark-line::before {
  content: "";
  width: 103%;
  height: 2.6rem;
  background: #FFF648;
  position: absolute;
  left: -2%;
  bottom: 0;
  transform: skewX(-15deg);
}
.estateOhter__ttl h2 .--mark-line > span {
  position: relative;
}
.estateOhter__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8.8rem;
}
@media screen and (max-width: 767px) {
  .estateOhter__list {
    gap: 3rem;
  }
}
.estateOhter__list li {
  width: 42rem;
  border-radius: 1.8rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .estateOhter__list li {
    width: 14.4rem;
  }
}
.estateOhter__list li figure {
  width: 100%;
  position: relative;
}
.estateOhter__list li figcaption {
  font-size: 4.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #01567E;
  background: rgba(255, 255, 255, 0.9);
  position: absolute;
  bottom: 1.9rem;
  right: 0;
  padding: 1rem;
}
@media screen and (max-width: 767px) {
  .estateOhter__list li figcaption {
    font-size: 1.4rem;
    bottom: 1.2rem;
    padding: 0.4rem 0.7rem;
  }
}

.qa {
  padding: 6.5rem 0 9rem;
}
@media screen and (max-width: 767px) {
  .qa {
    padding: 6rem 0;
  }
}
.qa__ttl {
  margin-bottom: 8rem;
}
@media print, (min-width: 768px) {
  .qa__set {
    width: 100rem;
    margin: auto;
  }
}
.qa__set > * + * {
  margin-top: 2.4rem;
}
.qa__item {
  border: 2px solid #DEDEDE;
  border-radius: 1.8rem;
  overflow: hidden;
}
.qa__item__q {
  padding: 3.6rem 2.6rem 3.6rem 13.4rem;
  position: relative;
  background: #DEDEDE;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 767px) {
  .qa__item__q {
    padding: 3rem 3rem 2rem 6.6rem;
    font-size: 1.6rem;
  }
}
.qa__item__q::before {
  content: "Q";
  text-transform: capitalize;
  width: 6.4rem;
  height: 6.4rem;
  border-radius: 50%;
  background: #fff;
  font-size: 3.5rem;
  position: absolute;
  left: 4.5rem;
  top: 2.1rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .qa__item__q::before {
    width: 3.4rem;
    height: 3.4rem;
    font-size: 1.9rem;
    top: 2.4rem;
    left: 1.6rem;
  }
}
.qa__item__a__body {
  padding: 3.6rem 11.4rem 1.8rem 13.4rem;
  position: relative;
  background: #fff;
  font-size: 2rem;
  letter-spacing: 0.05em;
  min-height: 10rem;
}
@media screen and (max-width: 767px) {
  .qa__item__a__body {
    padding: 3rem 3rem 2rem 6.6rem;
    font-size: 1.4rem;
  }
}
.qa__item__a__body::before {
  content: "A";
  text-transform: capitalize;
  width: 6.4rem;
  height: 6.4rem;
  border-radius: 50%;
  background: #DEDEDE;
  font-size: 3.5rem;
  position: absolute;
  left: 4.5rem;
  top: 2.1rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .qa__item__a__body::before {
    width: 3.4rem;
    height: 3.4rem;
    font-size: 1.9rem;
    top: 2.4rem;
    left: 1.6rem;
  }
}

@media screen and (max-width: 767px) {
  .formArea {
    padding: 14.5rem 0 0 0;
  }
}

.bnrLine {
  text-align: center;
}
@media print, (min-width: 768px) {
  .bnrLine {
    margin-top: 6rem;
  }
}
.bnrLine__img {
  width: 89.8rem;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .bnrLine__img {
    width: 32rem;
  }
}

.form {
  margin: auto;
  font-size: 2rem;
}
@media print, (min-width: 768px) {
  .form {
    width: 89.8rem;
    padding: 10rem 0 18rem;
  }
}
@media screen and (max-width: 767px) {
  .form {
    width: 100%;
    padding: 5.8rem 0 4.8rem;
    font-size: 1.5rem;
  }
}
.form__label {
  text-align: center;
  margin-bottom: 5.4rem;
}
.form__label > * {
  display: inline-block;
  font-size: 4.4rem;
  font-weight: 600;
  letter-spacing: 0.07rem;
  text-align: center;
  padding: 2.5rem 9rem;
  background: #22AAED;
  color: #fff;
  border-radius: 2.5rem;
  overflow: hidden;
  width: 69.8rem;
}
@media screen and (max-width: 767px) {
  .form__label > * {
    font-size: 2.1rem;
    padding: 1.8rem 3.1rem;
    border-radius: 0.9rem;
    width: 30.8rem;
  }
}
.form__ttl {
  margin-bottom: 1rem;
}
.form__ttl .heading02__label {
  font-size: 3.3rem;
}
@media screen and (max-width: 767px) {
  .form__ttl .heading02__label {
    font-size: 2rem;
    padding: 0 0.2rem 0 0.5rem;
  }
  .form__ttl .heading02__label::before, .form__ttl .heading02__label::after {
    height: 2.6rem;
    width: 0.1rem;
  }
}
.form__ttl .heading02__label .--color-red {
  font-size: 4.4rem;
  color: #F50000;
  display: inline-block;
  padding-right: 0.3rem;
}
@media screen and (max-width: 767px) {
  .form__ttl .heading02__label .--color-red {
    font-size: 2.7rem;
  }
}
.form__ttl .heading02__label .--txt-slash {
  font-size: 4.1rem;
  rotate: 15deg;
  display: inline-block;
}
@media screen and (max-width: 767px) {
  .form__ttl .heading02__label .--txt-slash {
    font-size: 2.1rem;
  }
}
.form__inner {
  background: #F4F4F4;
  padding: 9.2rem 17.5rem 5rem;
}
@media screen and (max-width: 767px) {
  .form__inner {
    padding: 4rem 3.6rem;
  }
}
.form dl + * {
  margin-top: 4rem;
}
@media screen and (max-width: 767px) {
  .form dl + * {
    margin-top: 1.6rem;
  }
}
.form dl dt {
  font-weight: 500;
  margin-bottom: 0.8rem;
  display: flex;
  align-items: flex-end;
  line-height: 1;
}
.form dl dt .required {
  display: inline-block;
  font-size: 1.4rem;
  color: #fff;
  background: #898989;
  padding: 0.6rem 1rem;
  border-radius: 0.6rem;
  margin-right: 1.6rem;
}
@media screen and (max-width: 767px) {
  .form dl dt .required {
    font-size: 1rem;
    margin-right: 0.8rem;
  }
}
.form dl dt .required.need {
  background: #CB0000;
}
.form dl dd input, .form dl dd select, .form dl dd textarea {
  width: 100%;
  background: #fff;
  border: 1px solid #C9C9C9;
  padding: 1rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.form dl dd input::-moz-placeholder, .form dl dd select::-moz-placeholder, .form dl dd textarea::-moz-placeholder {
  color: #D9D9D9;
}
.form dl dd input::placeholder, .form dl dd select::placeholder, .form dl dd textarea::placeholder {
  color: #D9D9D9;
}
.form dl dd textarea {
  min-height: 15.5rem;
  resize: none;
}
.form dl dd .--select {
  display: block;
  position: relative;
}
.form dl dd .--select::after {
  content: "";
  pointer-events: none;
  width: 0px;
  height: 0px;
  border-left: 1.4rem solid transparent;
  border-right: 1.4rem solid transparent;
  border-top: 2rem solid #141414;
  position: absolute;
  top: calc(50% - 1rem);
  right: 1.7rem;
}
@media screen and (max-width: 767px) {
  .form dl dd .--select::after {
    border-left: 1rem solid transparent;
    border-right: 1rem solid transparent;
    border-top: 1.4rem solid #141414;
    top: calc(50% - 0.7rem);
    right: 1.2rem;
  }
}
.form .agree {
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 5rem;
}
.form .agree input {
  width: 2.7rem;
  height: 2.7rem;
  border: 1px solid #C9C9C9;
  margin-right: 1.6rem;
}
@media screen and (max-width: 767px) {
  .form .agree input {
    width: 2rem;
    height: 2rem;
  }
}
.form .agree a {
  color: #385D98;
  text-decoration: underline;
}
.form .submit {
  text-align: center;
  margin-top: 5.5rem;
}
@media screen and (max-width: 767px) {
  .form .submit {
    margin-top: 3.8rem;
  }
}
.form .submit button {
  font-size: 2.7rem;
  color: #fff;
  letter-spacing: 0.07rem;
  background: #FF2E2E;
  border-radius: 1.5rem;
  padding: 1.5rem 10rem;
  display: inline-block;
  border: none;
}
@media screen and (max-width: 767px) {
  .form .submit button {
    font-size: 1.9rem;
    padding: 1.4rem 5rem;
    display: block;
    width: 100%;
  }
}
.form__btn {
  text-align: center;
}
.form__mess {
  font-size: 2.8rem;
  font-weight: 600;
  letter-spacing: 0.07rem;
  margin-top: 6rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .form__mess {
    font-size: 1rem;
    margin-top: 3rem;
  }
}