.p-top_mv {
  position: relative;
}
.p-mv_box01 {
  background: url(../img/mv_01.webp) no-repeat center;
  aspect-ratio: 1440/649;
  background-size: cover;
}
.p-mv_box02 {
  background: url(../img/mv_02.webp) no-repeat center;
  aspect-ratio: 1440/649;
  background-size: cover;
}
.p-mv_box03 {
  background: url(../img/mv_03.webp) no-repeat center;
  aspect-ratio: 1440/649;
  background-size: cover;
}
.p-top__ttl {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  left: 50%;
  color: #fff;
  line-height: 2;
}
.p-top__ttl h1 {
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  text-align: center;
  white-space: nowrap;
}
.p-about {
  max-width: calc();
}
.p-about__inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(84 / 1440 * 100vw);
  padding: calc(84 / 1440 * 100vw) 0 calc(115 / 1440 * 100vw);
}
.p-about__lead {
  width: calc(613 / 1440 * 100vw);
}
.p-about__lead h2 {
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  color: #56acdb;
  font-weight: 700;
  font-family: "Ubuntu Sans", sans-serif;
}
.p-about__lead h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  font-weight: 700;
  margin: calc(14 / 1440 * 100vw) 0 calc(30 / 1440 * 100vw);
}
.p-about__img {
  width: calc(493 / 1440 * 100vw);
}

.p-service {
  background: url(../img/service_bg.webp) no-repeat;
  background-size: contain;
  aspect-ratio: 1440/797;
  padding: calc(80 / 1440 * 100vw) 0 0;
}
.p-service__ttl {
  color: #fff;
  text-align: center;
}
.p-service__ttl h2 {
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-family: "Ubuntu Sans", sans-serif;
  font-weight: 700;
  letter-spacing: 0.2rem;
}
.p-service__ttl h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  font-weight: 700;
  letter-spacing: 0.2rem;
  margin: calc(10 / 1440 * 100vw) 0 calc(80 / 1440 * 100vw);
}
.p-service__list ul {
  display: flex;
  justify-content: center;
  gap: calc(15 / 1440 * 100vw);
}
.p-service__list img {
  width: calc(415 / 1440 * 100vw);
}
.p-service__txt {
  text-align: center;
  background-color: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  width: calc(350 / 1440 * 100vw);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  padding: calc(27 / 1440 * 100vw) calc(20 / 1440 * 100vw) 0;
  margin: calc(-50 / 1440 * 100vw) auto 0;
  aspect-ratio: 391/205;
}

.p-service__txt h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  color: #fff;
  margin: calc(11 / 1440 * 100vw) 0 calc(18 / 1440 * 100vw);
}
.p-service__txt p {
  font-size: min(calc(16 / 1440 * 100vw), 1.6rem);
  color: #fff;
  text-align: left;
}
.c-blue {
  color: #56acdb !important;
  font-style: italic;
  font-size: min(calc(20 / 1440 * 100vw), 2rem) !important;
  text-align: center !important;
}
.p-area {
  margin: calc(100 / 1440 * 100vw) 0 calc(217 / 1440 * 100vw);
  background-color: #f2f6f8;
  padding: calc(56 / 1440 * 100vw) 0 calc(81 / 1440 * 100vw);
}
.p-area__box {
  position: relative;
  margin-left: calc(203 / 1440 * 100vw);
}
.p-area__box::after {
  content: "";
  background: url(../img/img05.webp) no-repeat;
  background-size: contain;
  width: calc(564 / 1440 * 100vw);
  aspect-ratio: 564/564;
  position: absolute;
  right: calc(119 / 1440 * 100vw);
  top: calc(-130 / 1440 * 100vw);
}
.p-area__box h2 {
  color: #56acdb;
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-family: "Ubuntu Sans", sans-serif;
  font-weight: 700;
}

.p-area__box h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.62em);
  font-weight: 700;
  margin: calc(20 / 1440 * 100vw) 0 calc(24 / 1440 * 100vw);
}

.service__list {
  max-width: calc(1360 / 1440 * 100vw);
  margin: 0 0 0 auto;
  display: flex;
  gap: calc(40 / 1440 * 100vw);
  margin-bottom: calc(105 / 1440 * 100vw);
}
.service__list--ttl h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  color: #005aae;
  font-weight: 700;
  position: relative;
}
.service__list--ttl h1::after {
  content: "";
  border-bottom: solid 1px #005aae;
  width: calc(523 / 1440 * 100vw);
  position: absolute;
  top: calc(20 / 1440 * 100vw);
  right: calc(-40 / 1440 * 100vw);
}
.service__list--ttl p {
  font-size: min(calc(20 / 1440 * 100vw), 2rem);
  margin: calc(24 / 1440 * 100vw) 0 0;
  width: calc(770 / 1440 * 100vw);
}
.service__img {
  width: calc(552 / 1440 * 100vw);
  position: relative;
}
.service__img::after {
  content: "";
  background: url(../img/dec02.webp) no-repeat;
  background-size: contain;
  width: calc(679 / 1440 * 100vw);
  aspect-ratio: 679/45;
  position: absolute;
  bottom: calc(-30 / 1440 * 100vw);
  right: 0;
}
.service__list02 {
  flex-direction: row-reverse;
  margin: 0 auto calc(105 / 1440 * 100vw) 0;
}
.service__list02 .service__list--ttl h1::after {
  width: calc(548 / 1440 * 100vw);
  right: calc(-80 / 1440 * 100vw);
}

.service__list02 .service__img::after {
  content: "";
  background: url(../img/dec03.webp) no-repeat;
  background-size: contain;
  width: calc(1059 / 1440 * 100vw);
  aspect-ratio: 1059/45;
  left: calc(80 / 1440 * 100vw);
  right: unset;
  bottom: calc(-23 / 1440 * 100vw);
}

.service__list03 .service__img::after {
  content: "";
  background: url(../img/dec04.webp) no-repeat;
  background-size: contain;
  width: calc(340 / 1440 * 100vw);
  aspect-ratio: 340/45;
}

.p-works__ttl {
  text-align: center;
}
.p-works__ttl h1 {
  color: #56acdb;
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-weight: 700;
  font-family: "Ubuntu Sans", sans-serif;
}
.p-works__ttl p {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  font-weight: 700;
}

.gallery-slider {
  width: 100%;
  margin: calc(56 / 1440 * 100vw) auto calc(196 / 1920 * 100vw);
}
.gallery-slider li {
  margin-right: calc(7 / 1920 * 100vw); /* 右側の余白を20pxに設定 */
}
.gallery-slider img {
  width: 100%; /* 画像を親要素に合わせる */
  display: block;
}

.gallery-slider li:nth-child(even) {
  padding: 20px 0;
}
.p-recruit {
  background-color: #f2f6f8;
  padding-bottom: calc(53 / 1440 * 100vw);
}
.p-recruit__inner {
  display: flex;
  justify-content: center;
  gap: calc(62 / 1440 * 100vw);
}
.p-recruit__ttl {
  margin-top: calc(-23 / 1440 * 100vw);
}
.p-recruit__ttl h2 {
  color: #56acdb;
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-weight: 700;
}
.p-recruit__ttl h1 {
  color: #005aae;
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  font-weight: 700;
  margin: calc(14 / 1440 * 100vw) 0 calc(24 / 1440 * 100vw);
}

.p-recruit__ttl p {
  width: calc(785 / 1440 * 100vw);
}
.p-recruit__img {
  width: calc(433 / 1440 * 100vw);
  margin-top: calc(-73 / 1440 * 100vw);
}
.p-recruit__box {
  padding: calc(72 / 1440 * 100vw) 0 calc(111 / 1440 * 100vw);
}
.p-recruit__box--ttl {
  text-align: center;
}
.p-recruit__box--ttl h2 {
  color: #56acdb;
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-weight: 700;
}
.p-recruit__box--ttl h1 {
  font-size: min(calc(32 / 1440 * 100vw), 3.2rem);
  font-weight: 700;
  margin: calc(14 / 1440 * 100vw) 0 calc(24 / 1440 * 100vw);
}

.p-recruit__box--list dl {
  display: flex;
  max-width: calc(1000 / 1440 * 100vw);
  margin: 0 auto;
  border: solid 1px #005aae;
}
.p-recruit__box--list dt {
  font-size: min(calc(20 / 1440 * 100vw), 2rem);
  background-color: #005aae;
  color: #fff;
  width: calc(200 / 1440 * 100vw);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-recruit__box--list dd {
  font-size: min(calc(20 / 1440 * 100vw), 2rem);
  padding: calc(23 / 1440 * 100vw) 0 calc(23 / 1440 * 100vw)
    calc(28 / 1440 * 100vw);
}
.p-contact {
  background: url(../img/contact_bg.webp) no-repeat;
  background-size: cover;
  padding: calc(107 / 1440 * 100vw) 0 calc(109 / 1440 * 100vw);
}
.p-contact__box {
  display: flex;
  justify-content: center;
  gap: calc(22 / 1440 * 100vw);
}
.p-contact__tel {
  background-image: linear-gradient(90deg, #005aae, #002548);
  width: calc(314 / 1440 * 100vw);
  padding: calc(15 / 1440 * 100vw) 0;
}

.p-contact__tel a {
  display: flex;
  justify-content: center;
  gap: calc(10 / 1440 * 100vw);
  font-size: min(calc(36 / 1440 * 100vw), 3.6rem);
  font-weight: 700;
  align-items: center;
}
.p-contact__tel img {
  width: calc(25 / 1440 * 100vw);
}
.p-contact__mail {
  background-image: linear-gradient(90deg, #ff5900, #d44a00);
  width: calc(314 / 1440 * 100vw);
  padding: calc(19 / 1440 * 100vw) 0;
}
.p-contact__mail img {
  width: calc(24 / 1440 * 100vw);
}
.p-contact__mail a {
  display: flex;
  justify-content: center;
  gap: calc(10 / 1440 * 100vw);
  font-size: min(calc(24 / 1440 * 100vw), 2.4rem);
  font-weight: 700;
  align-items: center;
}
.p-company {
  padding: calc(100 / 1440 * 100vw) 0 0;
}
.p-company__inner {
  display: flex;
  justify-content: center;
  gap: calc(71 / 1440 * 100vw);
  margin-top: calc(44 / 1440 * 100vw);
}
.p-company__box dl {
  display: flex;
  max-width: calc(679 / 1440 * 100vw);
  margin: 0 auto;
  border: solid 1px #005aae;
}
.p-company__box dt {
  font-size: min(calc(20 / 1440 * 100vw), 2rem);
  background-color: #005aae;
  color: #fff;
  width: calc(164 / 1440 * 100vw);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-company__box dd {
  font-size: min(calc(20 / 1440 * 100vw), 2rem);
  padding: calc(32 / 1440 * 100vw) calc(117 / 1440 * 100vw)
    calc(28 / 1440 * 100vw) calc(30 / 1440 * 100vw);
}

.p-company__img {
  width: calc(529 / 1440 * 100vw);
}
.p-company__img img {
  margin-bottom: calc(30 / 1440 * 100vw);
}
.p-company__map {
  aspect-ratio: 1440/443;
  margin-top: calc(48 / 1440 * 100vw);
}
.p-contact--form02 {
  background-color: #f2f6f8;
  padding: calc(100 / 1440 * 100vw) 0 calc(120 / 1440 * 100vw);
}
.p-contact__form {
  background-color: #fff;
  max-width: calc(1027 / 1440 * 100vw);
  margin: calc(36 / 1440 * 100vw) auto;
  padding: calc(89 / 1440 * 100vw) calc(83 / 1440 * 100vw);
}
.form-group {
  display: flex;
  border-bottom: 1px solid #d9d9d9;
  align-items: center;
}
.form-group.no-border {
  border-bottom: none;
}
.form-label p {
  width: calc(300 / 1920 * 100vw);
  font-weight: 700;
  display: flex;
  font-size: min(calc(24 / 1920 * 100vw), 2.4rem);
  align-items: center;
}

.form-input p {
  flex: 1;
  padding: calc(48 / 1440 * 100vw) 15px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(36 / 1440 * 100vw);
}
.form-input p {
  width: 100%;
}
.form-input input {
  border: solid 2px #d9d9d9;
  height: 30px;
  border-radius: 5px;
  width: calc(166 / 1440 * 100vw);
}
.radio label,
.check label {
  display: flex;
  align-items: center;
  font-size: min(calc(24 / 1920 * 100vw), 2.4rem);
  font-weight: 700;
}
.form-input.form-group-tel p,
.form-input.fax-inputs p {
  display: flex;
  align-items: center;
  gap: 1%;
}

.form-group-tel.form-input input {
  width: calc(166 / 1440 * 100vw);
  text-align: center;
}

.form-input input[type="text"],
.form-input input[type="email"],
.form-input textarea {
  width: calc(595 / 1440 * 100vw);
  border: 2px solid #d9d9d9;
  font-size: 14px;
  border-radius: 4px;
  padding: calc(10 / 1920 * 100vw);
}
.form-input textarea {
  height: 200px;
}
.form-input input[type="text"][name^="tel"],
.form-input input[type="text"][name^="fax"] {
  width: calc(166 / 1440 * 100vw);
}

.form-input input[type="radio"],
.form-input input[type="checkbox"] {
  margin-right: 6px;
  width: 18px;
}

.form-input textarea {
  width: calc(595 / 1440 * 100vw);
  resize: vertical;
}

.form-input input[type="image"] {
  cursor: pointer;
  border: unset;
  border-radius: unset;
  margin: 100px auto;
}
.wpcf7 input[type="submit"] {
  background-color: #005aae;
  width: calc(401 / 1440 * 100vw);
  border: none;
  cursor: pointer;
  color: #fff;
  padding: calc(30 / 1440 * 100vw) 0;
  margin: 80px auto 0;
  display: block;
  font-size: min(calc(24 / 1440 * 100vw), 2.4rem);
}
.wpcf7-spinner {
  display: none !important;
}
.required {
  background-color: #d96022;
  color: #fff;
  font-size: calc(16 / 1920 * 100vw);
  padding: 5px 10px;
  margin-left: 15px;
  border-radius: 5px;
}
.form-group-tel .form-input p {
  gap: 0;
}
fieldset {
  display: none;
}
@media screen and (max-width: 768px) {
  .p-mv_box01 {
    background: url(../img/mv01_sp.webp) no-repeat center;
    aspect-ratio: 375/625;
    background-size: cover;
  }
  .p-mv_box02 {
    background: url(../img/mv02_sp.webp) no-repeat center;
    aspect-ratio: 375/625;
    background-size: cover;
  }
  .p-mv_box03 {
    background: url(../img/mv03_sp.webp) no-repeat center;
    aspect-ratio: 375/625;
    background-size: cover;
  }
  .p-top__ttl h1 {
    font-size: 2rem;
  }
  .p-about__inner {
    display: block;
    padding: 60px 4%;
  }
  .p-about__lead {
    width: auto;
  }
  .p-about__img {
    width: auto;
  }
  .p-about__lead h2,
  .p-service__ttl h2 {
    font-size: 2.4rem;
  }
  .p-about__lead h1 {
    font-size: 2rem;
    margin: 5px 0 10px;
  }
  .p-service {
    padding: 40px 4%;
  }
  .p-service__ttl h1 {
    font-size: 2rem;
    margin: 10px 0 40px;
  }
  .p-service__list ul {
    display: block;
  }
  .p-service__list img {
    width: auto;
  }
  .p-service__txt {
    width: auto;
  }
  .c-blue {
    font-size: 2rem !important;
  }
  .p-service {
    background: url(../img/service_bg_sp.webp) no-repeat;
    background-size: cover;
        aspect-ratio: 375/625;

  }
  .p-service__txt h1 {
    font-size: 2rem;
  }
  .p-service__txt p {
    font-size: 1.6rem;
  }
  .service__list {
    display: block;
    max-width: unset;
    margin: 0 4%;
  }
  .service__list--ttl h1 {
    font-size: 2.4rem;
  }
  .service__list--ttl h1::after {
    top: 15px;
    right: 10px;
  }
  .service__list--ttl p {
    font-size: 1.6rem;
    width: auto;
    margin: 10px 0 0;
  }
  .service__img {
    width: auto;
    margin: 20px 0;
  }
  .service__list02 {
    margin: 40px 4%;
  }
  .service__list02 .service__list--ttl h1::after {
    top: 15px;
    right: 3px;
    width: calc(466 / 1440 * 100vw);
  }
  .service__img::after {
    width: 300px;
    aspect-ratio: 375/28;
    bottom: 0;
  }
  .service__list03 .service__img::after {
    width: calc(150 / 375 * 100vw);
    aspect-ratio: 375/53;
  }
  .service__list02 .service__img::after {
    aspect-ratio: 375/40;
    width: calc(340 / 375 * 100vw);
    left: unset;
    right: 0;
    bottom: calc(-19 / 375 * 100vw);
  }
  .p-service__list li {
    margin-bottom: 20px;
  }
  .p-area {
    padding: 40px 4%;
  }
  .p-area__box {
    margin: 0;
  }
  .p-area__box h2 {
    font-size: 2.4rem;
  }
  .p-area__box h1 {
    font-size: 2rem;
  }
  .p-area__box::after {
    content: unset;
  }
  .p-works {
    padding: 60px 0;
  }
  .p-works__ttl h1 {
    font-size: 2.4rem;
  }
  .p-works__ttl p {
    font-size: 2rem;
  }
  .gallery-slider {
    margin: 20px 0 40px;
  }
  .gallery-slider li {
    margin-right: 10px;
  }
  .gallery-slider li:nth-child(even) {
    padding: 10px 0;
  }
  .p-recruit {
    padding: 40px 4%;
  }
  .p-recruit__ttl h2,
  .p-recruit__box--ttl h2 {
    font-size: 2.4rem;
  }
  .p-recruit__ttl h1,
  .p-recruit__box--ttl h1 {
    font-size: 2rem;
  }
  .p-recruit__inner {
    display: block;
  }
  .p-recruit__ttl p {
    width: auto;
  }
  .p-recruit__img {
    width: auto;
    margin-top: 20px;
  }
  .p-recruit__ttl {
    margin-top: -56px;
  }
  .p-recruit__box {
    padding: 60px 4%;
  }
  .p-recruit__box--ttl h1 {
    margin: 10px 0 20px;
  }
  .p-recruit__box--list dl {
    max-width: unset;
  }
  .p-recruit__box--list dt {
    width: 150px;
    font-size: 1.6rem;
  }
  .p-recruit__box--list dd {
    font-size: 1.6rem;
    padding: 10px 0 10px 10px;
    width: 100%;
  }
  .p-contact__box {
    display: block;
  }
  .p-contact__tel {
    width: 315px;
    padding: 10px 0;
    margin: 0 auto;
  }
  .p-contact__tel a {
    font-size: 2.4rem;
  }
  .p-contact__tel img {
    width: 18px;
  }
  .p-contact__mail {
    width: 315px;
    padding: 10px 0;
    margin: 15px auto 0;
  }
  .p-contact__mail a {
    font-size: 2.4rem;
  }
  .p-contact__mail img {
    width: 18px;
  }
  .p-company {
    padding: 40px 4%;
  }
  .p-company__inner {
    display: block;
    margin-top: 0;
  }
  .p-company__box dl {
    max-width: unset;
  }
  .p-company__box dt {
    width: 150px;
    font-size: 1.6rem;
  }
  .p-company__box dd {
    width: 100%;
    font-size: 1.6rem;
    padding: 10px 0 10px 10px;
  }
  .p-company__img {
    width: auto;
    margin-top: 20px;
  }
  .p-company__map {
    aspect-ratio: 375/320;
    margin-top: 20px;
  }
  .p-contact__form {
    padding: 10px 4% 20px;
    margin: 40px 4%;
    max-width: unset;
  }
  .form-group {
    display: block;
  }

  .form-label p {
    font-size: 1.6rem;
    margin-top: 10px;
    width: auto;
  }
  .required {
    font-size: 1.2rem;
  }
  .form-input p {
    padding: 10px 0 20px;
    display: block;
  }
  .form-input input {
    height: 25px;
    width: calc(80 / 375 * 100vw);
  }
  .radio label,
  .check label {
    font-size: 1.6rem;
  }
  .form-input input[type="text"],
  .form-input input[type="email"],
  .form-input textarea {
    padding: 5px;
    width: 97%;
  }
  .form-input textarea {
    width: 97%;
  }
  .wpcf7 input[type="submit"] {
    font-size: 2rem;
    width: 200px;
    height: 52px;
    margin: 0 auto;
  }
  .form-input input[type="text"][name^="tel"],
  .form-input input[type="text"][name^="fax"] {
    width: calc(84 / 375 * 100vw);
  }
  .form-group-tel .form-input p {
    display: flex;
  }
}
