@charset "UTF-8";
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

body {
  line-height: 1; }

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

nav ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

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

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }

/* Specify the box size calculation method */
*,
*::before,
*::after {
  box-sizing: border-box; }

/* Improved responsiveness of links and buttons on touch devices */
a,
area,
button,
[role="button"],
input:not([type="range"]),
label,
select,
summary,
textarea {
  -ms-touch-action: manipulation;
  touch-action: manipulation; }

/* --------------------
	Settings
	変数・mixin設定
-------------------- */
/*
	書体
-------------------- */
/*
	カラー
-------------------- */
/*
	その他
-------------------- */
/* --------------------
	Base
	基本設定
-------------------- */
html {
  font-size: 3.86vw; }
  @media screen and (min-width: 768px) {
    html {
      font-size: 1.8vw; } }
  @media screen and (min-width: 1000px) {
    html {
      font-size: 18px; } }

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal; }
  body a {
    color: inherit;
    text-decoration: none;
    /*&[href^="tel:"] {
    	pointer-events: none;
    }*/ }
  body img {
    width: 100%;
    height: auto;
    vertical-align: bottom; }
  body em {
    font-style: normal; }
  body li {
    list-style: none; }
  body h1, body h2, body h3, body h4, body h5, body h6 {
    font-weight: inherit; }

.wrap {
  background: white;
  width: 100%;
  color: #000000; }
  @media screen and (max-width: 768px) {
    .wrap {
      /*a {
      	&[href^="tel:"] {
      		pointer-events: auto;
      	}
      }*/ } }

/* --------------------
	Layout
-------------------- */
/* Mixin */
/* common parts */
/* background image */
/* button */
/*
	Wrap
------------------------------------------------------------ */
body a {
  transition: all .2s ease-in-out;
  cursor: pointer; }
  @media screen and (min-width: 768px) {
    body a:hover {
      opacity: .7; } }

.wrap {
  overflow: hidden; }
  .wrap img {
    width: 100%;
    height: auto; }
  .wrap .sp {
    display: block; }
  .wrap .pc {
    display: none; }
  .wrap .font {
    font-family: "Manrope", sans-serif;
    font-style: normal; }
  @media screen and (min-width: 768px) {
    .wrap .pc {
      display: block; }
    .wrap .sp {
      display: none; } }

/*
	Header
------------------------------------------------------------ */
.header {
  background: white;
  width: 100%;
  color: #000000;
  position: relative;
  top: 0;
  left: 0;
  z-index: 1000; }
  .header__heading {
    width: 50%;
    margin: 0 auto;
    padding: .75rem 0; }
  .header__text {
    line-height: 1.8em; }
  .header__button {
    display: none; }
  @media screen and (min-width: 768px) {
    .header {
      padding: .5rem 1rem;
      position: fixed; }
      .header__inner {
        display: flex;
        flex-flow: row;
        align-items: center;
        justify-content: space-between; }
      .header__heading {
        width: 12rem;
        padding: 0;
        margin: 0; }
      .header__button {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        width: 100%; }
        .header__button-item {
          width: 18rem;
          filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.4)); } }
      @media screen and (min-width: 768px) and (min-width: 768px) {
        .header__button-item {
          filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.4)); } }
  @media screen and (min-width: 768px) {
          .header__button-item a {
            min-height: 3rem;
            padding: 0 0 0 4.5rem;
            color: white;
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-radius: 10px;
            position: relative;
            text-align: center; }
            .header__button-item a .font {
              font-weight: 800;
              font-size: 1.7rem; }
            .header__button-item a::before {
              content: "";
              position: absolute;
              display: inline-block;
              width: 2rem;
              height: 2rem;
              background-size: contain;
              background-repeat: no-repeat;
              background-position: center;
              top: 0;
              bottom: 0;
              margin: auto; }
          .header__button-item02 a {
            background: #F4253E;
            background: linear-gradient(0deg, #f4253e 0%, #ff7f28 100%); }
            .header__button-item02 a::before {
              left: 2rem;
              background-image: url("../images/icon_call.svg"); }
          .header__button-item01 {
            width: 16rem;
            margin-right: 1rem; }
            .header__button-item01 a {
              letter-spacing: .075em;
              font-weight: 700;
              font-size: .9rem;
              background: #48c0e3;
              padding: 0 0 0 4.5rem; }
              .header__button-item01 a::before {
                left: 2rem;
                background-image: url("../images/icon_mail.svg"); } }

/* visual */
.visual {
  background-color: white;
  background-image: url("../images/visual.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover; }
  .visual__inner {
    width: calc(100vw - 2rem);
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem 0;
    position: relative;
    z-index: 3; }
    .visual__inner::before {
      content: "";
      position: absolute;
      display: block;
      width: 90%;
      height: 82vw;
      background-image: url("../images/visual_image01.webp");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 100%;
      right: -1rem;
      bottom: 0;
      z-index: -1; }
  .visual__heading {
    padding: .5rem 0 1rem;
    position: relative; }
    .visual__heading::before {
      content: "";
      position: absolute;
      display: block;
      width: 22%;
      height: 31vw;
      background-image: url("../images/visual_image02.webp");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 100%;
      right: 8vw;
      bottom: -23vw;
      z-index: -2; }
  .visual__comment {
    width: 46%; }
  .visual__appeal {
    display: flex;
    flex-direction: column; }
    .visual__appeal-item01 {
      order: 2;
      padding: .5rem 0; }
    .visual__appeal-item02 {
      order: 1;
      width: 56%; }
  .visual__bottom {
    background: #006cbe;
    color: white;
    text-align: center;
    padding: 1rem 0;
    font-weight: 700;
    font-size: 4.3vw; }
  @media screen and (min-width: 768px) {
    .visual {
      background-image: url("../images/visual-pc.webp");
      position: relative;
      z-index: 4; }
      .visual::before {
        content: "";
        position: absolute;
        display: block;
        width: 36vw;
        height: 41vw;
        background-image: url("../images/visual_image01.webp");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100%;
        right: 0;
        bottom: 0;
        z-index: -1; }
      .visual__inner {
        padding: 4vw 0;
        max-width: 62vw; }
        .visual__inner::before {
          display: none; }
      .visual__heading {
        padding: .5vw 0 1vw;
        width: 38vw; }
        .visual__heading::before {
          width: 8vw;
          height: 11vw;
          right: -22%;
          bottom: 4vw; }
        .visual__heading-sub {
          width: 38vw; }
      .visual__comment {
        position: absolute;
        width: 13vw;
        right: -11%;
        top: 2vw;
        z-index: -100; }
      .visual__appeal {
        display: flex;
        flex-direction: row;
        align-items: center; }
        .visual__appeal-item01 {
          width: 30vw;
          order: 1;
          padding: .5vw 1vw .5vw 0; }
        .visual__appeal-item02 {
          order: 2;
          width: 22vw; }
      .visual__bottom {
        padding: 1vw 0;
        font-size: 1.2rem; } }

/*
	Contents
------------------------------------------------------------ */
.contents {
  background: transparent;
  color: #000000;
  /* 埋め込み地図・動画 レスポンシブ対応用 */ }
  .contents .video,
  .contents .map {
    width: fit-content;
    margin: 0 auto; }
    .contents .video iframe,
    .contents .video video,
    .contents .map iframe,
    .contents .map video {
      width: 100%;
      max-width: 1000px;
      height: auto;
      aspect-ratio: 16 / 9; }

/*
	Contents	主な編集箇所
------------------------------------------------------------ */
/* cv */
.cv {
  padding: 2rem 0;
  background-color: white;
  background-image: url("../images/cv.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 3; }
  @media screen and (min-width: 768px) {
    .cv {
      padding: 4rem 0; } }
  .cv::after {
    position: absolute;
    content: "";
    background: #48c0e3;
    width: 100%;
    height: 30vw;
    bottom: 0;
    margin-bottom: -2px;
    z-index: -1; }
  .cv01::before {
    content: "";
    position: absolute;
    display: block;
    width: 56%;
    height: 52vw;
    background-image: url(../images/cv_image.webp);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
    right: 0;
    top: 1rem;
    z-index: -1; }
  .cv01::after {
    background: #dff1ff; }
  .cv02::before {
    right: -4rem; }
  .cv02::after {
    display: none; }
  .cv__inner {
    width: calc(100vw - 2rem);
    max-width: 1000px;
    margin: 0 auto; }
  .cv__heading {
    width: 46%;
    margin: 0 0 0 2rem; }
    .cv__heading-sub {
      text-align: center;
      color: #006cbe;
      font-size: 6.2vw;
      font-weight: 900;
      letter-spacing: .075em; }
      .cv__heading-sub .medium {
        font-size: 5.6vw; }
  .cv__text {
    width: 84%;
    margin: 1.5rem auto 1rem; }
  .cv__button,
  .cv .button {
    filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.4)); }
    @media screen and (min-width: 768px) {
      .cv__button,
      .cv .button {
        filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.4)); } }
    .cv__button a,
    .cv .button a {
      padding: 1.5rem 1.5rem 1.5rem 4.5rem;
      color: white;
      width: 100%;
      display: block;
      border-radius: 10px;
      position: relative;
      text-align: center; }
      .cv__button a .font,
      .cv .button a .font {
        font-weight: 800;
        font-size: 8.4vw; }
      .cv__button a::before,
      .cv .button a::before {
        content: "";
        position: absolute;
        display: inline-block;
        width: 12%;
        height: 12vw;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        top: 0;
        bottom: 0;
        margin: auto; }
  .cv__button a {
    background: #F4253E;
    background: linear-gradient(0deg, #f4253e 0%, #ff7f28 100%); }
    .cv__button a::before {
      left: 2.5rem;
      background-image: url("../images/icon_call.svg"); }
  .cv .button {
    width: 80%;
    margin: 0 auto; }
    .cv .button a {
      letter-spacing: .075em;
      font-weight: 700;
      font-size: 4.3vw;
      background: #48c0e3; }
      .cv .button a::before {
        left: 2rem;
        background-image: url("../images/icon_mail.svg"); }
  .cv__campaign {
    padding: 2rem 0; }
    .cv__campaign02 {
      padding: .75rem 0 2rem; }
    .cv__campaign-item02 .text {
      text-align: center;
      letter-spacing: .075em;
      padding: 1rem 0 .5rem;
      font-weight: 700;
      font-size: 3.8vw;
      color: #48c0e3; }
  .cv__ecocute02 {
    padding: 1rem 0 0; }
  @media screen and (min-width: 768px) {
    .cv {
      background-image: url("../images/cv-pc.webp");
      padding: 4rem 0 0; }
      .cv::after {
        height: 9rem; }
      .cv01::before {
        width: 19rem;
        height: 17.5rem;
        right: 34%;
        transform: translateX(50%); }
      .cv02::before {
        right: 34%;
        transform: translateX(50%); }
      .cv02::after {
        display: none; }
      .cv__heading {
        width: 46%;
        margin: 0 0 0 2rem; }
        .cv__heading-sub {
          font-size: 2.2rem; }
          .cv__heading-sub .medium {
            font-size: 2.4rem; }
      .cv__text {
        width: 51%;
        margin: 1.5rem 0 2rem 2rem; }
        .cv__text02 {
          margin: 1.5rem 0 3rem 3rem;
          width: 50%; }
      .cv__button,
      .cv .button {
        filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.4)); } }
    @media screen and (min-width: 768px) and (min-width: 768px) {
      .cv__button,
      .cv .button {
        filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.4)); } }
  @media screen and (min-width: 768px) {
        .cv__button a,
        .cv .button a {
          padding: 1.5rem 1.5rem 1.5rem 4.5rem;
          color: white;
          width: 100%;
          display: block;
          border-radius: 20px;
          position: relative;
          text-align: center; }
          .cv__button a .font,
          .cv .button a .font {
            font-size: 3rem; }
          .cv__button a::before,
          .cv .button a::before {
            width: 4rem;
            height: 4rem; }
      .cv__button {
        width: 90%;
        margin: 0 auto; }
        .cv__button a::before {
          left: 20%;
          transform: translateX(25%); }
      .cv .button {
        width: 80%;
        margin: 0 auto; }
        .cv .button a {
          font-size: 1.2rem; }
          .cv .button a::before {
            width: 3rem;
            height: 3rem; }
      .cv__campaign {
        display: flex;
        align-items: center;
        justify-content: space-between; }
        .cv__campaign-pc {
          width: 58%;
          margin: 1rem auto 0; }
        .cv__campaign02 {
          padding: .75rem 0 2rem; }
        .cv__campaign-item {
          width: 49%; }
          .cv__campaign-item02 .text {
            font-size: 1.1rem; }
      .cv__spwrap {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 16px;
        align-items: flex-end;
        width: 90%;
        margin: 2rem auto; }
        .cv__spwrap-item01 {
          width: 100%; }
          .cv__spwrap-item01 .text {
            font-size: 1.1rem; }
          .cv__spwrap-item01 .button {
            width: 100%; }
            .cv__spwrap-item01 .button a {
              font-size: 1.2rem; }
              .cv__spwrap-item01 .button a::before {
                width: 3rem;
                height: 3rem; }
        .cv__spwrap-item02 {
          width: 100%; }
          .cv__spwrap-item02 a .font {
            font-size: 2.5rem; }
          .cv__spwrap-item02 a::before {
            left: .5rem;
            width: 3rem;
            height: 3rem; } }

/* 全ブロック共通 */
.credit,
.recommend,
.reason,
.voice,
.area,
.faq,
.step,
.contact {
  padding: 2rem 0; }
  @media screen and (min-width: 768px) {
    .credit,
    .recommend,
    .reason,
    .voice,
    .area,
    .faq,
    .step,
    .contact {
      padding: 4rem 0; } }
  .credit__inner,
  .recommend__inner,
  .reason__inner,
  .voice__inner,
  .area__inner,
  .faq__inner,
  .step__inner,
  .contact__inner {
    width: calc(100vw - 2rem);
    max-width: 1000px;
    margin: 0 auto; }
  .credit__heading,
  .recommend__heading,
  .reason__heading,
  .voice__heading,
  .area__heading,
  .faq__heading,
  .step__heading,
  .contact__heading {
    text-align: center;
    font-weight: 900;
    font-size: 8vw;
    letter-spacing: .05em;
    line-height: 1.2; }
    .credit__heading .logo img,
    .recommend__heading .logo img,
    .reason__heading .logo img,
    .voice__heading .logo img,
    .area__heading .logo img,
    .faq__heading .logo img,
    .step__heading .logo img,
    .contact__heading .logo img {
      width: 74%;
      margin: 0 .25rem .1rem; }
    .credit__heading .font,
    .recommend__heading .font,
    .reason__heading .font,
    .voice__heading .font,
    .area__heading .font,
    .faq__heading .font,
    .step__heading .font,
    .contact__heading .font {
      font-size: 10vw;
      font-weight: 800; }
    .credit__heading .blue,
    .recommend__heading .blue,
    .reason__heading .blue,
    .voice__heading .blue,
    .area__heading .blue,
    .faq__heading .blue,
    .step__heading .blue,
    .contact__heading .blue {
      color: #006cbe; }
  .credit__eng,
  .recommend__eng,
  .reason__eng,
  .voice__eng,
  .area__eng,
  .faq__eng,
  .step__eng,
  .contact__eng {
    font-size: 4.3vw;
    color: #006cbe;
    font-weight: 800;
    text-align: center;
    letter-spacing: .1em;
    padding: .5rem 0 2rem; }
  @media screen and (min-width: 768px) {
    .credit__heading,
    .recommend__heading,
    .reason__heading,
    .voice__heading,
    .area__heading,
    .faq__heading,
    .step__heading,
    .contact__heading {
      font-size: 3.3rem; }
      .credit__heading .logo img,
      .recommend__heading .logo img,
      .reason__heading .logo img,
      .voice__heading .logo img,
      .area__heading .logo img,
      .faq__heading .logo img,
      .step__heading .logo img,
      .contact__heading .logo img {
        width: 30rem; }
      .credit__heading .font,
      .recommend__heading .font,
      .reason__heading .font,
      .voice__heading .font,
      .area__heading .font,
      .faq__heading .font,
      .step__heading .font,
      .contact__heading .font {
        font-size: 4.2rem; }
    .credit__eng,
    .recommend__eng,
    .reason__eng,
    .voice__eng,
    .area__eng,
    .faq__eng,
    .step__eng,
    .contact__eng {
      font-size: 1.7rem;
      padding: 2rem 0 2.5rem; } }

/* 各ブロック個別 */
.maker {
  padding: 2rem 0; }
  .maker .head {
    font-size: 5.5vw;
    font-weight: 700;
    text-align: center;
    font-style: italic;
    position: relative;
    padding: 0 0 4vw;
    margin: 0 0 1rem; }
    .maker .head::before {
      position: absolute;
      content: "";
      width: 14%;
      background: #006cbe;
      height: 3px;
      left: 50%;
      transform: translateX(-50%);
      bottom: 0; }
  .maker__image {
    margin: 0 auto; }
  @media screen and (min-width: 768px) {
    .maker .head {
      font-size: 1.3rem;
      padding: 0 0 1rem; }
      .maker .head::before {
        width: 4rem; }
    .maker__image {
      margin: 0 auto; } }

.credit {
  background: #dff1ff; }
  .credit__text {
    font-size: 3.8vw;
    text-align: center;
    line-height: 1.5;
    font-weight: 500; }
  .credit__image {
    background: white;
    padding: .25rem .5rem;
    border-radius: 10px;
    width: 86%;
    margin: 1rem auto 0; }
  @media screen and (min-width: 768px) {
    .credit {
      padding: 2rem 0; }
      .credit__text {
        font-size: 1.2rem; }
      .credit__image {
        width: 30%; } }

.recommend {
  background: #dff1ff; }
  .recommend__heading {
    width: 90%;
    margin: 0 auto; }
  .recommend__text {
    width: 92%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center; }
    .recommend__text .badge {
      width: 26%; }
    .recommend__text .text {
      width: fit-content;
      text-align: center;
      font-size: 7.4vw;
      color: #006cbe;
      font-weight: 900;
      letter-spacing: .075em;
      line-height: 1.5;
      margin: 0 auto;
      border-bottom: 2px solid #006cbe; }
      .recommend__text .text .border {
        border-bottom: 2px solid #006cbe; }
  @media screen and (min-width: 768px) {
    .recommend__heading {
      width: 58%;
      margin: 0 auto; }
    .recommend__text {
      margin: 0 auto; }
      .recommend__text .badge {
        width: 7rem; }
      .recommend__text .text {
        font-size: 3rem;
        margin: 0 0 0 1rem; }
        .recommend__text .text .border {
          border-bottom: none; } }

.reason__list-item {
  background: #dff1ff;
  border-radius: 16px;
  padding: 2rem;
  position: relative;
  margin-bottom: 2rem; }
  .reason__list-item .number {
    position: absolute;
    top: -1rem;
    right: .5rem;
    color: white; }
    .reason__list-item .number .round {
      background: #006cbe;
      border-radius: 100rem;
      font-weight: 700;
      font-size: 2.9vw;
      letter-spacing: .1em;
      padding: .25rem 1rem; }
    .reason__list-item .number .circle {
      z-index: 2;
      font-size: 6.8vw;
      position: relative;
      right: .5rem;
      top: .25rem; }
      .reason__list-item .number .circle::before {
        content: "";
        position: absolute;
        width: 12vw;
        height: 12vw;
        border-radius: 50%;
        background: #006cbe;
        top: 0;
        bottom: 0;
        margin: auto;
        left: 50%;
        transform: translateX(-50%);
        z-index: -1; }
  .reason__list-item .head {
    font-size: 5vw;
    text-align: center;
    font-weight: 700;
    line-height: 1.5; }
    .reason__list-item .head .blue {
      color: #006cbe; }
    .reason__list-item .head .font {
      font-size: 5.5vw; }
    .reason__list-item .head .marker {
      background: linear-gradient(transparent 50%, #fff259 50%); }
  .reason__list-item .box .text {
    text-align: justify;
    letter-spacing: .025em;
    font-size: 3.4vw;
    line-height: 1.8;
    margin: 1.25rem 0; }
@media screen and (min-width: 768px) {
  .reason__list-item {
    padding: 3rem 4rem; }
    .reason__list-item .number {
      top: -1rem;
      right: 1.5rem; }
      .reason__list-item .number .round {
        font-size: .9rem; }
      .reason__list-item .number .circle {
        font-size: 2.2rem; }
        .reason__list-item .number .circle::before {
          width: 4rem;
          height: 4rem; }
    .reason__list-item .head {
      font-size: 1.7rem;
      margin: 0 0 1.5rem; }
      .reason__list-item .head .font {
        font-size: 1.8rem; }
    .reason__list-item .box {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      flex-flow: row-reverse; }
      .reason__list-item .box .text {
        width: 42%;
        font-size: 1rem;
        margin: 0; }
      .reason__list-item .box .image {
        width: 54%; } }

.voice {
  background: #48c0e3; }
  .voice__heading, .voice__eng {
    color: white; }
  .voice__list-item {
    background: white;
    border-radius: 16px;
    border: 2px solid #006cbe;
    margin: 0 0 1rem auto;
    width: 98%;
    position: relative; }
    .voice__list-item .number {
      position: absolute;
      width: 103%;
      left: -.55rem;
      top: 3rem; }
    .voice__list-item .product {
      padding: 0 0 0 1.5rem;
      line-height: 2; }
      .voice__list-item .product .round {
        border: 1px solid #000000;
        padding: 0 .5rem;
        border-radius: 6px; }
      .voice__list-item .product .arrow img {
        width: 5vw;
        margin: 0 0 3.25vw 2vw; }
    .voice__list-item .box .image {
      position: relative;
      z-index: 2;
      width: 98%;
      margin: 2rem auto 1rem; }
    .voice__list-item .box .detail {
      padding: 0 1.5rem 2rem; }
      .voice__list-item .box .detail .head {
        letter-spacing: .05em;
        font-size: 5vw;
        font-weight: 700;
        line-height: 1.6;
        margin: 1rem 0; }
        .voice__list-item .box .detail .head .marker {
          background: linear-gradient(transparent 50%, #fff259 50%); }
      .voice__list-item .box .detail .prof {
        margin: 0 0 1rem; }
        .voice__list-item .box .detail .prof .box {
          background: #006cbe;
          color: white;
          padding: .25rem 2rem;
          border-radius: 100rem;
          letter-spacing: .025em;
          font-weight: 500;
          font-size: 2.9vw;
          line-height: 0; }
          .voice__list-item .box .detail .prof .box .font {
            font-weight: 800;
            font-size: 3.1vw; }
      .voice__list-item .box .detail .text {
        line-height: 1.8;
        text-align: justify;
        letter-spacing: .025em;
        font-size: 3.4vw; }
  @media screen and (min-width: 768px) {
    .voice__list-item .number {
      width: 101.5%;
      left: -0.69rem;
      top: 1rem; }
    .voice__list-item .product .arrow img {
      width: 1.25rem;
      margin: 0 0 .75rem .5rem; }
    .voice__list-item .box-pc {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding: 4rem 2rem 2rem; }
    .voice__list-item .box-pcitem {
      width: 42%; }
    .voice__list-item .box .image {
      position: static;
      margin: 2rem auto 1rem; }
    .voice__list-item .box .detail {
      padding: 0 1.5rem 2rem;
      width: 58%; }
      .voice__list-item .box .detail .head {
        font-size: 1.7rem; }
      .voice__list-item .box .detail .prof {
        margin: 0 0 1.5rem; }
        .voice__list-item .box .detail .prof .box {
          font-size: .8rem; }
          .voice__list-item .box .detail .prof .box .font {
            font-size: .9rem; }
      .voice__list-item .box .detail .text {
        font-size: 1rem; } }

.area {
  position: relative;
  z-index: 2; }
  .area__text {
    text-align: center;
    font-size: 4vw;
    font-weight: 900;
    line-height: 1.5;
    letter-spacing: .05em; }
    .area__text .strong {
      font-size: 5vw;
      color: #006cbe; }
    .area__text .font {
      font-size: 5.6vw;
      font-weight: 800; }
    .area__text .marker {
      font-size: 5vw;
      background: linear-gradient(transparent 50%, #fff259 50%); }
  .area__image {
    position: relative;
    width: 110%;
    left: -3rem;
    transform: translateY(-3rem);
    margin-bottom: -3rem;
    z-index: -1; }
  .area__box {
    position: absolute;
    width: 37%;
    background: #efefef;
    padding: 1rem;
    bottom: 4rem;
    right: 2rem; }
    .area__box .text {
      font-size: 2.9vw;
      text-align: justify;
      color: #606060;
      line-height: 1.8; }
  @media screen and (min-width: 768px) {
    .area__text {
      font-size: 1.2rem; }
      .area__text .strong {
        font-size: 1.6rem; }
      .area__text .font {
        font-size: 1.8rem; }
      .area__text .marker {
        font-size: 1.6rem; }
    .area__image {
      position: relative;
      width: 52%;
      left: 50%;
      transform: translateX(-50%);
      margin-bottom: -3rem;
      top: -4rem; }
    .area__box {
      width: fit-content;
      padding: 1rem;
      bottom: 4rem;
      right: auto;
      left: 55%;
      transform: translateX(-5%); }
      .area__box .text {
        font-size: .8rem;
        text-align: center; } }

.faq {
  background: #dff1ff; }
  .faq .accordion {
    margin: .5rem auto; }
    .faq .accordion .icon-q,
    .faq .accordion .icon-a {
      font-weight: 800;
      font-size: 6vw; }
    .faq .accordion .head,
    .faq .accordion .text {
      padding: 0 0 0 .5rem; }
    .faq .accordion .icon-a {
      color: #006cbe; }
    .faq .accordion .text {
      line-height: 1.5em;
      text-align: justify; }
  .faq .accordion:not([open]) {
    margin-bottom: .5rem; }
  .faq .accordion summary {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    position: relative;
    padding: 1rem 4rem 1rem 1rem;
    background: #006cbe;
    color: white;
    font-weight: 700;
    cursor: pointer;
    border-radius: 10px; }
  .faq .accordion summary::-webkit-details-marker {
    display: none; }
  .faq .accordion summary::before,
  .faq .accordion summary::after {
    width: 3px;
    height: .9em;
    border-radius: 5px;
    background-color: #fff;
    content: ''; }
  .faq .accordion summary::before {
    position: absolute;
    right: 2rem;
    rotate: 90deg; }
  .faq .accordion summary::after {
    transition: rotate .3s;
    position: absolute;
    right: 2rem; }
  .faq .accordion[open] summary::after {
    rotate: 90deg; }
  .faq .accordion div {
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: 1rem;
    transition: transform .5s, opacity .5s; }
  .faq .accordion[open] div {
    transform: none;
    opacity: 1; }
  .faq .answer {
    display: flex;
    justify-content: flex-start; }
    .faq .answer .icon {
      margin: 0 .3rem 0 0; }
  @media screen and (min-width: 768px) {
    .faq .accordion {
      max-width: 800px;
      margin: 0 auto; }
      .faq .accordion .icon-q,
      .faq .accordion .icon-a {
        font-size: 1.2rem; } }

.step {
  background: #006cbe; }
  .step__heading, .step__eng {
    color: white; }
  .step__heading-comment {
    display: flex;
    justify-content: center;
    position: relative;
    max-width: 55%;
    margin: 0 auto 1rem;
    padding: .8em 1.2em;
    border-radius: 100rem;
    background-color: #48c0e3;
    color: white;
    font-weight: 700;
    font-size: 3.6vw; }
    .step__heading-comment::before {
      position: absolute;
      bottom: -0.5rem;
      width: 1.5rem;
      height: 1rem;
      background-color: #48c0e3;
      clip-path: polygon(0 0, 100% 0, 50% 100%);
      content: ''; }
  .step__text {
    color: white;
    text-align: center;
    line-height: 1.8;
    font-size: 3.4vw;
    padding: 1rem; }
  .step__line-bottom {
    margin-bottom: 1rem; }
  .step__list-item {
    background: white;
    border-radius: 16px;
    border: 2px solid #48c0e3;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1rem 1rem 1rem .5rem;
    margin-bottom: 1rem; }
    .step__list-item04 {
      border: 2px solid #ff7f28; }
    .step__list-item .number {
      width: 20%; }
    .step__list-item .free {
      position: relative; }
      .step__list-item .free::before {
        content: "";
        position: absolute;
        filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.4));
        top: -.75rem;
        left: -1.5rem;
        width: 10vw;
        height: 10vw;
        background-image: url("../images/step_free.svg");
        background-size: cover;
        background-repeat: no-repeat;
        background-size: 100%; }
        @media screen and (min-width: 768px) {
          .step__list-item .free::before {
            filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.4)); } }
    .step__list-item .box {
      width: 76%; }
      .step__list-item .box .head {
        font-weight: 700;
        font-size: 4.6vw;
        color: #48c0e3;
        margin-bottom: .75rem; }
      .step__list-item .box .orange {
        color: #ff7f28; }
      .step__list-item .box .text {
        font-size: 3.1vw;
        text-align: justify;
        line-height: 1.8; }
        .step__list-item .box .text .marker {
          background: #fff259; }
  @media screen and (min-width: 768px) {
    .step__heading-comment {
      max-width: 21rem;
      padding: .5em 1.2em;
      font-size: 1.4rem; }
    .step__text {
      font-size: 1.1rem; }
    .step__line {
      max-width: 1000px;
      margin: 0 auto; }
      .step__line-bottom {
        margin: 0 auto 1rem; }
    .step__list {
      max-width: 800px;
      margin: 0 auto; }
      .step__list-item {
        padding: 2rem;
        margin-bottom: 1rem; }
        .step__list-item04 {
          border: 2px solid #ff7f28; }
        .step__list-item .number {
          width: 16%; }
        .step__list-item .free {
          position: relative; }
          .step__list-item .free::before {
            top: -.75rem;
            left: -2.5rem;
            width: 4rem;
            height: 4rem; }
        .step__list-item .box {
          width: 82%; }
          .step__list-item .box .head {
            font-size: 1.5rem; }
          .step__list-item .box .text {
            font-size: 1rem; } }

/* contact */
.contact__heading-sub {
  text-align: center;
  font-size: 4vw;
  line-height: 1.5;
  color: #006cbe;
  font-weight: 700;
  padding: 2rem 0 1rem; }
  .contact__heading-sub .comment {
    position: relative; }
    .contact__heading-sub .comment::before, .contact__heading-sub .comment::after {
      position: absolute;
      content: "";
      bottom: 0;
      width: 8vw;
      height: 11vw;
      background-size: cover;
      background-repeat: no-repeat;
      background-size: 100%; }
    .contact__heading-sub .comment::before {
      left: -2.5rem;
      background-image: url("../images/contact_comment.svg"); }
    .contact__heading-sub .comment::after {
      right: -4.5rem;
      background-image: url("../images/contact_comment.svg");
      transform: scaleX(-1); }
.contact__text {
  text-align: center;
  line-height: 1.6;
  font-weight: 500;
  font-size: 3.4vw;
  margin: 0 0 1.5rem; }
.contact__box {
  background: #dff1ff;
  border-radius: 16px;
  padding: 3rem 2rem 1rem; }
  .contact__box .head {
    text-align: center; }
    .contact__box .head .box {
      background: #006cbe;
      color: white;
      font-size: 4vw;
      font-weight: 700;
      padding: .5rem 1rem; }
  .contact__box .text {
    text-align: center;
    line-height: 1.6;
    font-size: 3.4vw;
    padding: 2rem 0 0; }
  .contact__box-item .features {
    margin: 1.5rem 0 0; }
    .contact__box-item .features .head {
      font-size: 3.1vw;
      font-weight: 500;
      position: relative;
      z-index: 2; }
      .contact__box-item .features .head .border {
        background: #dff1ff;
        padding: 0 1rem; }
      .contact__box-item .features .head::before {
        position: absolute;
        content: "";
        background: #000000;
        width: 100%;
        height: 1px;
        top: 0;
        bottom: 0;
        margin: auto;
        left: 50%;
        transform: translateX(-50%);
        z-index: -1; }
    .contact__box-item .features .detail {
      font-size: 2.9vw;
      width: fit-content;
      margin: 1rem auto 0;
      line-height: 1.8; }
@media screen and (min-width: 768px) {
  .contact__heading-sub {
    font-size: 1.8rem;
    padding: 2rem 0 1rem; }
    .contact__heading-sub .comment::before, .contact__heading-sub .comment::after {
      width: 4rem;
      height: 5.5rem; }
    .contact__heading-sub .comment::before {
      left: -3.5rem; }
    .contact__heading-sub .comment::after {
      right: -7.5rem; }
  .contact__text {
    font-size: 1.2rem;
    margin: 0 0 1.5rem; }
  .contact__box {
    padding: 3rem 2rem; }
    .contact__box .head .box {
      font-size: 1.3rem;
      padding: .5rem 1rem; }
    .contact__box .text {
      font-size: 1rem;
      padding: 2rem 0 0; }
    .contact__box-item {
      display: flex;
      align-items: center;
      justify-content: center; }
      .contact__box-item .image {
        width: 56%;
        padding-right: 1.5rem; }
      .contact__box-item .features {
        width: 34%;
        margin: 1.5rem 0 0; }
        .contact__box-item .features .head {
          font-size: 1.1rem; }
          .contact__box-item .features .head::before {
            height: 2px; }
        .contact__box-item .features .detail {
          font-size: .9rem; } }

/*
	Footer
------------------------------------------------------------ */
.footer {
  background: #ebebeb;
  color: #000000;
  border-top: 4px solid #000000;
  padding: 3rem 0; }
  .footer__inner {
    width: calc(100vw - 2rem);
    max-width: 1000px;
    margin: 0 auto; }
  .footer .company__heading {
    width: 34%;
    margin: 0 auto 1rem; }
  .footer .company__text {
    text-align: center;
    font-size: 3.1vw;
    font-weight: 700;
    line-height: 1.8; }
  .footer .copyright {
    padding: 2rem 0 6rem;
    text-align: center;
    font-size: 2.9vw; }
  @media screen and (min-width: 768px) {
    .footer {
      padding: 3rem 0; }
      .footer .company__heading {
        width: 9rem; }
      .footer .company__text {
        font-size: .9rem; }
      .footer .copyright {
        padding: 2rem 0 0;
        font-size: .8rem; } }

/* Floating area */
.floating {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 1000; }
  .floating__button {
    display: flex;
    align-items: center;
    justify-content: space-between; }
    .floating__button-item a {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 5.5rem;
      width: 100%;
      position: relative;
      color: white;
      text-align: center; }
      .floating__button-item a::before {
        content: "";
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        top: -1rem;
        width: 10vw;
        height: 10vw;
        background-size: cover;
        background-repeat: no-repeat;
        background-size: 100%; }
    .floating__button-item01 {
      width: 36%; }
      .floating__button-item01 a {
        background: #48c0e3;
        letter-spacing: .075em;
        font-weight: 700;
        font-size: 4.3vw;
        line-height: 1.3; }
        .floating__button-item01 a::before {
          background-image: url("../images/icon_mail_blue.svg"); }
    .floating__button-item02 {
      width: 64%; }
      .floating__button-item02 a {
        font-weight: 700;
        font-size: 7.4vw;
        background: #ff7f28;
        background: linear-gradient(0deg, #f4253e 0%, #ff7f28 50%); }
        .floating__button-item02 a::before {
          background-image: url("../images/icon_call_orange.svg"); }
  @media screen and (min-width: 768px) {
    .floating {
      display: none; } }

/* swiper */
.swiper-slide .box {
  background: white;
  border-radius: 16px;
  border: 2px solid #006cbe;
  margin: 1rem auto 0;
  padding: 0 1rem;
  height: 100%;
  width: 93%; }
  .swiper-slide .box02 {
    padding: 0 1rem 1rem;
    margin: 3rem auto 2rem; }
  .swiper-slide .box .head {
    position: relative;
    transform: translateY(-1rem);
    margin-bottom: -3rem;
    width: 100%;
    min-height: 4rem; }
    .swiper-slide .box .head::before {
      position: absolute;
      content: "";
      background: #004391;
      clip-path: polygon(0% 100%, 0% 0%, 100% 100%);
      width: 10px;
      height: 1rem;
      right: 1.05rem; }
    .swiper-slide .box .head .blue {
      font-size: 4.3vw;
      text-align: center;
      color: white;
      background: #006cbe;
      font-weight: 700;
      letter-spacing: .05em;
      padding: .5rem;
      width: 84%;
      margin: 0 auto;
      display: block; }
  .swiper-slide .box .list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px; }
    .swiper-slide .box .list-item {
      text-align: center;
      height: 2.8rem;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #006cbe;
      border-radius: 10px;
      color: white;
      font-weight: 700;
      font-size: 3.4vw;
      line-height: 1.2; }
@media screen and (min-width: 768px) {
  .swiper-slide .box {
    padding: 0 1rem 2rem; }
    .swiper-slide .box02 {
      padding: 0 1rem 3rem; }
    .swiper-slide .box .head {
      margin-bottom: -3rem;
      min-height: 4rem; }
      .swiper-slide .box .head::before {
        display: none; }
      .swiper-slide .box .head .blue {
        font-size: 1.4rem;
        width: 22rem;
        position: relative; }
        .swiper-slide .box .head .blue::before {
          position: absolute;
          content: "";
          background: #004391;
          clip-path: polygon(0% 100%, 0% 0%, 100% 100%);
          width: 10px;
          height: 1rem;
          right: -.5rem;
          top: 0; }
    .swiper-slide .box .image {
      width: 78%;
      margin: 0 auto; }
    .swiper-slide .box .list {
      width: 78%;
      margin: 0 auto;
      grid-template-columns: repeat(3, 1fr); }
      .swiper-slide .box .list-item {
        height: 3.5rem;
        font-size: 1.2rem; } }
