@charset "UTF-8";
/* Scss Document */
.flex_30 {
  width: 30%;
}

.flex_31 {
  width: 31%;
}

.flex_32 {
  width: 32%;
}

.flex_33 {
  width: 33%;
}

.flex_34 {
  width: 34%;
}

.flex_35 {
  width: 35%;
}

.flex_36 {
  width: 36%;
}

.flex_37 {
  width: 37%;
}

.flex_38 {
  width: 38%;
}

.flex_39 {
  width: 39%;
}

.flex_40 {
  width: 40%;
}

.flex_41 {
  width: 41%;
}

.flex_42 {
  width: 42%;
}

.flex_43 {
  width: 43%;
}

.flex_44 {
  width: 44%;
}

.flex_45 {
  width: 45%;
}

.flex_46 {
  width: 46%;
}

.flex_47 {
  width: 47%;
}

.flex_48 {
  width: 48%;
}

.flex_49 {
  width: 49%;
}

.flex_50 {
  width: 50%;
}

.flex_51 {
  width: 51%;
}

.flex_52 {
  width: 52%;
}

.flex_53 {
  width: 53%;
}

.flex_54 {
  width: 54%;
}

.flex_55 {
  width: 55%;
}

.flex_56 {
  width: 56%;
}

.flex_57 {
  width: 57%;
}

.flex_58 {
  width: 58%;
}

.flex_59 {
  width: 59%;
}

.flex_60 {
  width: 60%;
}

.flex_61 {
  width: 61%;
}

.flex_62 {
  width: 62%;
}

.flex_63 {
  width: 63%;
}

.flex_64 {
  width: 64%;
}

.flex_65 {
  width: 65%;
}

.flex_66 {
  width: 66%;
}

.flex_67 {
  width: 67%;
}

.flex_68 {
  width: 68%;
}

.flex_69 {
  width: 69%;
}

.flex_70 {
  width: 70%;
}

.padding100 {
  padding-top: 100px;
  padding-bottom: 100px;
}

.padding110 {
  padding-top: 110px;
  padding-bottom: 110px;
}

.padding120 {
  padding-top: 120px;
  padding-bottom: 120px;
}

.padding130 {
  padding-top: 130px;
  padding-bottom: 130px;
}

.padding140 {
  padding-top: 140px;
  padding-bottom: 140px;
}

.padding150 {
  padding-top: 150px;
  padding-bottom: 150px;
}

.padding160 {
  padding-top: 160px;
  padding-bottom: 160px;
}

.padding170 {
  padding-top: 170px;
  padding-bottom: 170px;
}

.padding180 {
  padding-top: 180px;
  padding-bottom: 180px;
}

.padding190 {
  padding-top: 190px;
  padding-bottom: 190px;
}

.padding200 {
  padding-top: 200px;
  padding-bottom: 200px;
}

.padding210 {
  padding-top: 210px;
  padding-bottom: 210px;
}

.padding220 {
  padding-top: 220px;
  padding-bottom: 220px;
}

.padding230 {
  padding-top: 230px;
  padding-bottom: 230px;
}

.padding240 {
  padding-top: 240px;
  padding-bottom: 240px;
}

.padding250 {
  padding-top: 250px;
  padding-bottom: 250px;
}

.padding260 {
  padding-top: 260px;
  padding-bottom: 260px;
}

.padding270 {
  padding-top: 270px;
  padding-bottom: 270px;
}

.padding280 {
  padding-top: 280px;
  padding-bottom: 280px;
}

.padding290 {
  padding-top: 290px;
  padding-bottom: 290px;
}

.padding300 {
  padding-top: 300px;
  padding-bottom: 300px;
}

.margin100 {
  margin-top: 100px;
  margin-bottom: 100px;
}

.margin110 {
  margin-top: 110px;
  margin-bottom: 110px;
}

.margin120 {
  margin-top: 120px;
  margin-bottom: 120px;
}

.margin130 {
  margin-top: 130px;
  margin-bottom: 130px;
}

.margin140 {
  margin-top: 140px;
  margin-bottom: 140px;
}

.margin150 {
  margin-top: 150px;
  margin-bottom: 150px;
}

.margin160 {
  margin-top: 160px;
  margin-bottom: 160px;
}

.margin170 {
  margin-top: 170px;
  margin-bottom: 170px;
}

.margin180 {
  margin-top: 180px;
  margin-bottom: 180px;
}

.margin190 {
  margin-top: 190px;
  margin-bottom: 190px;
}

.margin200 {
  margin-top: 200px;
  margin-bottom: 200px;
}

.margin210 {
  margin-top: 210px;
  margin-bottom: 210px;
}

.margin220 {
  margin-top: 220px;
  margin-bottom: 220px;
}

.margin230 {
  margin-top: 230px;
  margin-bottom: 230px;
}

.margin240 {
  margin-top: 240px;
  margin-bottom: 240px;
}

.margin250 {
  margin-top: 250px;
  margin-bottom: 250px;
}

.margin260 {
  margin-top: 260px;
  margin-bottom: 260px;
}

.margin270 {
  margin-top: 270px;
  margin-bottom: 270px;
}

.margin280 {
  margin-top: 280px;
  margin-bottom: 280px;
}

.margin290 {
  margin-top: 290px;
  margin-bottom: 290px;
}

.margin300 {
  margin-top: 300px;
  margin-bottom: 300px;
}

.pt-110 {
  padding-top: 110px;
}

.pt-120 {
  padding-top: 120px;
}

.pt-130 {
  padding-top: 130px;
}

.pt-140 {
  padding-top: 140px;
}

.pt-150 {
  padding-top: 150px;
}

.pt-160 {
  padding-top: 160px;
}

.pt-170 {
  padding-top: 170px;
}

.pt-180 {
  padding-top: 180px;
}

.pt-190 {
  padding-top: 190px;
}

.pt-200 {
  padding-top: 200px;
}

.pt-210 {
  padding-top: 210px;
}

.pt-220 {
  padding-top: 220px;
}

.pt-230 {
  padding-top: 230px;
}

.pt-240 {
  padding-top: 240px;
}

.pt-250 {
  padding-top: 250px;
}

.pt-260 {
  padding-top: 260px;
}

.pt-270 {
  padding-top: 270px;
}

.pt-280 {
  padding-top: 280px;
}

.pt-290 {
  padding-top: 290px;
}

.pt-300 {
  padding-top: 300px;
}

.pb-110 {
  padding-bottom: 110px;
}

.pb-120 {
  padding-bottom: 120px;
}

.pb-130 {
  padding-bottom: 130px;
}

.pb-140 {
  padding-bottom: 140px;
}

.pb-150 {
  padding-bottom: 150px;
}

.pb-160 {
  padding-bottom: 160px;
}

.pb-170 {
  padding-bottom: 170px;
}

.pb-180 {
  padding-bottom: 180px;
}

.pb-190 {
  padding-bottom: 190px;
}

.pb-200 {
  padding-bottom: 200px;
}

.pb-210 {
  padding-bottom: 210px;
}

.pb-220 {
  padding-bottom: 220px;
}

.pb-230 {
  padding-bottom: 230px;
}

.pb-240 {
  padding-bottom: 240px;
}

.pb-250 {
  padding-bottom: 250px;
}

.pb-260 {
  padding-bottom: 260px;
}

.pb-270 {
  padding-bottom: 270px;
}

.pb-280 {
  padding-bottom: 280px;
}

.pb-290 {
  padding-bottom: 290px;
}

.pb-300 {
  padding-bottom: 300px;
}

.mt-110 {
  margin-top: 110px;
}

.mt-120 {
  margin-top: 120px;
}

.mt-130 {
  margin-top: 130px;
}

.mt-140 {
  margin-top: 140px;
}

.mt-150 {
  margin-top: 150px;
}

.mt-160 {
  margin-top: 160px;
}

.mt-170 {
  margin-top: 170px;
}

.mt-180 {
  margin-top: 180px;
}

.mt-190 {
  margin-top: 190px;
}

.mt-200 {
  margin-top: 200px;
}

.mt-210 {
  margin-top: 210px;
}

.mt-220 {
  margin-top: 220px;
}

.mt-230 {
  margin-top: 230px;
}

.mt-240 {
  margin-top: 240px;
}

.mt-250 {
  margin-top: 250px;
}

.mt-260 {
  margin-top: 260px;
}

.mt-270 {
  margin-top: 270px;
}

.mt-280 {
  margin-top: 280px;
}

.mt-290 {
  margin-top: 290px;
}

.mt-300 {
  margin-top: 300px;
}

.mb-110 {
  margin-bottom: 110px;
}

.mb-120 {
  margin-bottom: 120px;
}

.mb-130 {
  margin-bottom: 130px;
}

.mb-140 {
  margin-bottom: 140px;
}

.mb-150 {
  margin-bottom: 150px;
}

.mb-160 {
  margin-bottom: 160px;
}

.mb-170 {
  margin-bottom: 170px;
}

.mb-180 {
  margin-bottom: 180px;
}

.mb-190 {
  margin-bottom: 190px;
}

.mb-200 {
  margin-bottom: 200px;
}

.mb-210 {
  margin-bottom: 210px;
}

.mb-220 {
  margin-bottom: 220px;
}

.mb-230 {
  margin-bottom: 230px;
}

.mb-240 {
  margin-bottom: 240px;
}

.mb-250 {
  margin-bottom: 250px;
}

.mb-260 {
  margin-bottom: 260px;
}

.mb-270 {
  margin-bottom: 270px;
}

.mb-280 {
  margin-bottom: 280px;
}

.mb-290 {
  margin-bottom: 290px;
}

.mb-300 {
  margin-bottom: 300px;
}

* {
  text-decoration: none !important;
}

#header.scroll {
  z-index: 9990;
}
#header.scroll .scroll_logo {
  display: block;
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 500;
}
#header.scroll .scroll_nav {
  position: fixed;
  top: 30px;
  right: 30px;
  z-index: 9990;
}
#header.scroll .scroll_nav ul {
  background-color: rgba(255, 255, 255, 0.8);
  padding-left: 120px;
  max-width: 1050px;
  box-shadow: 0 11px 30px rgba(10, 123, 181, 0.15);
}

.scroll_logo {
  display: none;
}

/*header*/
#header {
  position: absolute;
  z-index: 3;
  width: 100%;
}

.header_box {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 35px 35px 0 2.5vw;
}
.header_box nav {
  display: flex;
  gap: 3vw;
  align-items: center;
}
.header_box nav ul {
  display: flex;
  gap: 1.7vw;
  width: 100%;
  max-width: 945px;
  height: 60px;
  padding: 0 45px;
  align-items: center;
  justify-content: center;
  border-radius: 75px;
  backdrop-filter: blur(20px);
  background-color: rgba(255, 255, 255, 0.7);
}
.header_box nav ul li a {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: normal;
}

#h_contact {
  position: relative;
}

#h_contact:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: contact_scroll;
  width: 95px;
  height: 95px;
  background-image: url(../images/Contact-Contact.webp);
  background-size: cover;
}

#top_main {
  overflow: hidden;
}
#top_main section {
  position: relative;
  z-index: 2;
}

/*sec01*/
#top_sec01 {
  background: url(../images/top_bg.webp) center bottom/cover;
  padding-top: 100px;
  padding-bottom: 18%;
}
#top_sec01 .text {
  font-size: 18px;
  font-weight: 500;
}

.catch_box {
  position: relative;
  right: 0;
  width: 100%;
  max-width: 1110px;
  margin: 0 auto;
  margin-top: 10px;
  margin-bottom: 80px;
  text-align: center;
}

.catch_title {
  padding: 0 10% 0 3.5%;
}
.catch_title img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.catch_gif {
  width: 18%;
  position: absolute;
  right: 20px;
  top: 64%;
  transform: translateY(-50%);
  z-index: 1;
  text-align: right;
}
.catch_gif img {
  max-width: 200px;
  width: 100%;
  height: auto;
}

/*sec02*/
#top_sec02 {
  padding: 80px 0 130px;
}
#top_sec02 .midashi210 {
  letter-spacing: -0.02em;
  line-height: 1em;
  margin-bottom: 30px;
}
#top_sec02 .bg_effaff {
  width: 100%;
  max-width: 640px;
  border-radius: 24px;
  padding: 40px 45px;
  margin: 0 auto;
}

/*sec03*/
#top_sec03 .container1760,
#top_sec04 .container1760 {
  padding: 80px 70px 110px;
  border-radius: 50px;
  overflow: hidden;
}
#top_sec03 .container1760 .midashi170,
#top_sec04 .container1760 .midashi170 {
  line-height: 1.2em;
  letter-spacing: -0.02em;
}

#top_sec03 .title_box {
  padding-bottom: 50px;
}
#top_sec03 .title_box:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background: #a7dffd;
  width: 2000px;
  height: 2px;
}
#top_sec03 .grid {
  display: grid;
  grid-template-columns: 53% 43%;
  justify-content: space-between;
  gap: 3vw;
  align-items: center;
}
#top_sec03 .grid-repeat3 {
  gap: 3vw;
}
#top_sec03 .grid-repeat3 .midashi25 {
  position: relative;
  border-bottom: 1px solid #002d6a;
  padding-bottom: 20px;
  margin-bottom: 30px;
  padding-top: 0;
  display: flex;
  justify-content: space-between;
  align-items: end;
  font-size: clamp(18px, 1.5vw, 25px);
  min-height: 90px;
  line-height: 1em;
}
#top_sec03 .grid-repeat3 .midashi25 .font2 {
  position: absolute;
  right: 15px;
  font-size: clamp(40px, 5.5vw, 110px);
  bottom: 20px;
  display: inline-block;
  line-height: 1em;
}
#top_sec03 .grid-repeat3 .midashi25 .mini {
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.5em;
  display: inline-block;
}

#top_sec04 .title_box {
  padding-bottom: 50px;
}
#top_sec04 .title_box:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background: #a1eaec;
  width: 2000px;
  height: 2px;
}
#top_sec04 .grid {
  display: grid;
  grid-template-columns: 45% 52.5%;
  justify-content: space-between;
  gap: 2vw;
  align-items: center;
}
#top_sec04 .grid .right {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

/*sec 05*/
#top_sec05 .grid-repeat2 {
  gap: 2vw;
}
#top_sec05 .grid-repeat2 li {
  border-radius: 40px;
  transition: 0.3s;
}
#top_sec05 .grid-repeat2 li a {
  position: relative;
  display: block;
  height: 350px;
  padding: 80px 45px 50px;
}
#top_sec05 .grid-repeat2 li a .font2 {
  font-size: 8vw;
  letter-spacing: -0.02em;
  line-height: 1.1em;
}
#top_sec05 .grid-repeat2 li a .btn_shape02 {
  position: absolute;
  bottom: 12px;
  right: 12px;
}
#top_sec05 .grid-repeat2 li:nth-child(1) {
  background: url(../images/top-recruitment_bg.webp) center/cover;
}
#top_sec05 .grid-repeat2 li:nth-child(1) a .font2 {
  color: #19a8f2;
  mix-blend-mode: color;
}
#top_sec05 .grid-repeat2 li:nth-child(2) {
  background: url(../images/top-company_bg.webp) center/cover;
}
#top_sec05 .grid-repeat2 li:nth-child(2) a .font2 {
  color: #fff;
}
#top_sec05 .grid-repeat2 li:hover {
  opacity: 0.6;
}

/*top news*/
.top_news_wrap {
  display: grid;
  grid-template-columns: 270px 1fr;
  align-items: end;
  gap: 6vw;
  padding-bottom: 230px;
}
.top_news_wrap .left {
  padding-bottom: 15px;
}

.news_list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 15px;
}
.news_list li a {
  background-color: #effaff;
  border-radius: 3px;
  padding: 15px 15px;
  display: grid;
  align-items: center;
  grid-template-columns: 100px 1fr;
  gap: 15px;
}
.news_list li a time {
  font-size: 17px;
  font-family: "oswald", sans-serif;
  font-weight: 600;
  font-style: normal;
  position: relative;
  top: 3px;
}

/*sec06*/
#top_sec06 {
  position: relative;
  padding: 80px 0 110px;
  overflow: hidden;
}

#top_sec06:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8%;
  background-image: url(../images/contact_parts.webp);
  background-size: cover;
  width: 18vw;
  height: 60vw;
}

#top_sec06::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-40%);
  background-image: url(../images/contact_shape.webp);
  background-size: cover;
  width: 686px;
  height: 565px;
}

.btn_contact {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #fff;
  display: inline-flex;
  align-items: center;
  padding-left: 40px;
  color: #19a8f2;
  border-radius: 75px;
  width: 100%;
  max-width: 260px;
  height: 60px;
  font-size: 23px;
  font-family: "oswald", sans-serif;
  font-weight: 500;
  font-style: normal;
  transition: 0.3s;
  padding-top: 7px;
}

.iphone .btn_contact {
  padding-top: 0;
  padding-bottom: 4px;
}

.btn_contact:hover .btn_shape::after {
  transform: translate(550%, -50%);
  animation: btn_return 0s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.6s;
  transition: 0.6s;
}

.btn_contact:hover .btn_shape::before {
  animation: btn_hover 0.3s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.3s;
}

/*パーツ*/
.parts01 {
  position: absolute;
  bottom: 3%;
  right: 0;
  max-width: 10vw;
  z-index: 2;
  height: auto;
}

.parts02 {
  position: absolute;
  bottom: 0;
  left: 0;
  max-width: 28vw;
  z-index: 2;
  height: auto;
}

.parts03 {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(24%);
  width: 21vw;
  max-width: 388px;
  height: auto;
}

.parts04 {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-56%);
  max-width: 303px;
  height: auto;
}

.parts05 {
  position: absolute;
  top: -5%;
  right: 0;
  max-width: 972px;
  z-index: 2;
  height: auto;
}

.parts06 {
  position: absolute;
  top: -63%;
  left: 0;
  max-width: 285px;
  z-index: 2;
  height: auto;
}

.top_shape01 {
  position: absolute;
  bottom: 15.3%;
  left: 0;
  max-width: 1304px;
  height: auto;
}

.top_shape02 {
  position: absolute;
  bottom: 19%;
  right: 0;
  max-width: 357px;
  height: auto;
}

.top_shape03 {
  position: absolute;
  top: 25%;
  left: 0;
  max-width: 1920px;
  height: auto;
}

/*footer*/
.footer {
  padding: 80px 0 70px;
  background-color: #c3e9fd;
}

.footer_wrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.footer_wrap .left {
  width: 500px;
}
.footer_wrap .right {
  width: calc(100% - 500px);
  max-width: 1010px;
}

.f_nav {
  border-top: 1px solid #002d6a;
  padding-top: 20px;
}
.f_nav ul {
  display: flex;
  justify-content: space-between;
}
.f_nav a {
  color: #002d6a;
}
.f_nav .font2 {
  letter-spacing: -0.02em;
  font-size: clamp(15px, 1.5vw, 25px);
}
.f_nav .ja {
  font-size: 14px;
  padding-top: 5px;
  letter-spacing: 0.02em;
}

.copy_wrap {
  font-size: 13px;
  padding-top: 25px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
}
.copy_wrap a {
  order: 2;
}

.f_privacy_link {
  display: block;
  text-align: end;
  font-size: 14px;
}

.f_btn {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #002d6a;
  display: inline-flex;
  align-items: center;
  padding-left: 30px;
  color: #fff;
  border-radius: 75px;
  width: 100%;
  max-width: 250px;
  height: 60px;
  font-size: 18px;
  font-weight: 500;
  transition: 0.3s;
}

.f_btn_shape {
  right: 7px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  max-width: 47px;
  height: 47px;
  border-radius: 50%;
  background-color: #0c3f85;
  overflow: hidden;
  transition: 0.3s;
}

.f_btn_shape:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url(../images/btn-arrow01.webp);
  background-size: cover;
  background-repeat: no-repeat;
  line-height: 0;
  letter-spacing: 0;
  width: 12px;
  height: 11px;
}

.f_btn_shape::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-150%, -50%);
  line-height: 0;
  letter-spacing: 0;
  background-image: url(../images/btn-arrow01.webp);
  background-size: cover;
  background-repeat: no-repeat;
  width: 12px;
  height: 11px;
  transition: 0.3s;
  opacity: 0;
  z-index: 1;
}

.f_btn:hover .f_btn_shape::after {
  transform: translate(550%, -50%);
  animation: btn_return 0s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.6s;
  transition: 0.6s;
}

.f_btn:hover .f_btn_shape::before {
  animation: btn_hover 0.3s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.3s;
}

/*見出し*/
.midashi210 {
  font-family: "oswald", sans-serif;
  font-style: normal;
  font-size: clamp(50px, 15.5vw, 210px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1em;
  text-box: trim-both cap alphabetic;
}

.midashi170 {
  font-family: "oswald", sans-serif;
  font-style: normal;
  font-size: clamp(40px, 12.5vw, 170px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1em;
  text-box: trim-both cap alphabetic;
}

.midashi120 {
  font-family: "oswald", sans-serif;
  font-style: normal;
  font-size: clamp(40px, 10.5vw, 120px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2em;
  text-box: trim-both cap alphabetic;
}

.midashi29 {
  font-size: clamp(22px, 2vw, 29px);
}

.midashi25 {
  font-size: clamp(20px, 2vw, 25px);
}

.midashi21 {
  font-size: clamp(19px, 1.8vw, 21px);
}

.font14 {
  font-size: 14px;
}

/*カラー*/
.c-19a8f2 {
  color: #19a8f2;
}

.c-002d6a {
  color: #002d6a;
}

.c-fff {
  color: #fff;
}

.bg_effaff {
  background-color: #effaff;
}

.bg_c3e9fd {
  background-color: #c3e9fd;
}

.bg_c6f0f1 {
  background-color: #c6f0f1;
}

.bg_19a8f2 {
  background-color: #19a8f2;
}

/**/
/*ボタンの矢印*/
.btn {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #19a8f2;
  display: inline-flex;
  align-items: center;
  padding-left: 30px;
  color: #fff;
  border-radius: 75px;
  width: 100%;
  max-width: 180px;
  height: 60px;
  font-size: 23px;
  font-family: "oswald", sans-serif;
  font-weight: 500;
  font-style: normal;
  transition: 0.3s;
  padding-top: 8px;
  line-height: 60px;
  text-box-trim: trim-both;
}

.iphone .btn {
  padding-top: 0;
  padding-bottom: 5px;
}

.btn_shape {
  right: 7px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  max-width: 47px;
  height: 47px;
  border-radius: 50%;
  background-color: #50bef7;
  overflow: hidden;
  transition: 0.3s;
}

.btn_shape:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url(../images/btn-arrow01.webp);
  background-size: cover;
  background-repeat: no-repeat;
  line-height: 0;
  letter-spacing: 0;
  width: 12px;
  height: 11px;
}

.btn_shape::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-150%, -50%);
  line-height: 0;
  letter-spacing: 0;
  background-image: url(../images/btn-arrow01.webp);
  background-size: cover;
  background-repeat: no-repeat;
  width: 12px;
  height: 11px;
  transition: 0.3s;
  opacity: 0;
  z-index: 1;
}

.btn:hover .btn_shape::after {
  transform: translate(550%, -50%);
  animation: btn_return 0s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.6s;
  transition: 0.6s;
}

.btn:hover .btn_shape::before {
  animation: btn_hover 0.3s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.3s;
}

/*------------------*/
.btn_shape02 {
  right: 7px;
  position: absolute;
  width: 100%;
  max-width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #010440;
  overflow: hidden;
  transition: 0.3s;
}

.btn_shape02:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-image: url(../images/btn-arrow02.webp);
  background-size: cover;
  background-repeat: no-repeat;
  line-height: 0;
  letter-spacing: 0;
  width: 17px;
  height: 14px;
}

.btn_shape02::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-150%, -50%);
  line-height: 0;
  letter-spacing: 0;
  background-image: url(../images/btn-arrow02.webp);
  background-size: cover;
  background-repeat: no-repeat;
  width: 17px;
  height: 14px;
  transition: 0.3s;
  opacity: 0;
  z-index: 1;
}

/*------------------------------------*/
#top_sec05 .grid-repeat2 li a:hover .btn_shape02::after {
  transform: translate(550%, -50%);
  animation: btn_return 0s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.6s;
  transition: 0.6s;
}

#top_sec05 .grid-repeat2 li a:hover .btn_shape02::before {
  animation: btn_hover 0.3s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.3s;
}

@keyframes btn_hover {
  0% {
    opacity: 0;
    transform: translate(-550%, -50%);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}
@keyframes btn_return {
  0% {
    transform: translate(-550%, -50%);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%);
  }
}
/************************************************************************

    コンセプト

************************************************************************/
.main_in {
  background: url("../images/main_bg.webp") 50% 0/cover no-repeat;
  padding: 320px 0 110px;
  position: relative;
}

.title_eng {
  font-size: clamp(80px, 20.5vw, 230px);
  color: #002d6a;
  line-height: 1em;
  text-align: center;
  letter-spacing: -0.04em;
}
.title_eng.dental {
  font-size: clamp(60px, 16.5vw, 180px);
}

.title_ja {
  font-size: clamp(20px, 2.5vw, 29px);
  color: #002d6a;
  text-align: center;
  letter-spacing: -0.04em;
  font-weight: 900;
  margin-top: 25px;
}

.concept_text {
  text-align: center;
  font-size: 18px;
  margin-top: 130px;
  letter-spacing: 0;
  line-height: 2.2em;
}

.max_img100 img {
  max-width: 100%;
  height: auto;
}

.main_bg_absolute1 {
  position: absolute;
  right: 0;
  top: 0;
}

.c_main_bg_absolute2 {
  position: absolute;
  left: 0;
  top: 470px;
  z-index: 400;
  width: 35%;
}

/*************************************/
.title_29 {
  font-size: clamp(22px, 2vw, 29px);
  letter-spacing: 0;
  line-height: 1.3em;
  font-weight: 600;
}

.title_100 {
  font-size: clamp(50px, 8vw, 100px);
  letter-spacing: -0.02em;
  line-height: 1.1em;
  font-weight: bold;
}

.blue_002d6a {
  color: #002d6a;
}

.letter-160 {
  letter-spacing: -0.16em;
}

.title_span_ml {
  margin-left: -15px;
}

.concept_flex {
  display: flex;
  justify-content: space-between;
}
.concept_flex > div {
  width: 49%;
  max-width: 860px;
}
.concept_flex img {
  width: 100%;
  height: auto;
}

/*******************/
.concept02_bg {
  background-color: #c3e9fd;
  border-radius: 50px;
  padding: clamp(35px, 4.2%, 4.2%) clamp(35px, 3.2%, 3.2%);
  overflow: hidden;
}
.concept02_bg.bg_c6f0f1 {
  background-color: #c6f0f1;
}

.eng_170 {
  font-size: clamp(70px, 15vw, 170px);
  letter-spacing: -0.01em;
  line-height: 1em;
}

.title_21 {
  font-size: 21px;
  letter-spacing: 0.02em;
  font-weight: 500;
  line-height: 1.5em;
}

.bb_calc {
  padding-bottom: 60px;
  margin-bottom: 60px;
  position: relative;
}
.bb_calc:after {
  content: "";
  border-bottom: 1px solid #a7dffd;
  position: absolute;
  bottom: 0;
  left: -80px;
  width: calc(100% + 160px);
}

/******************/
.concept02_flex {
  display: flex;
  justify-content: space-between;
}
.concept02_flex > div {
  width: 49%;
  max-width: 860px;
}
.concept02_flex h3 {
  margin: 40px 0 40px;
}

/************/
.concept_bg_absolute1 {
  position: absolute;
  top: -150px;
  right: 0;
  text-align: right;
  z-index: 100;
  width: 23%;
}

.concept_bg_absolute2 {
  position: absolute;
  top: 30px;
  left: 0;
}

.concept_bg_absolute3 {
  position: absolute;
  top: 335px;
  right: 0;
  text-align: right;
  width: 50%;
}

.concept_bg_absolute4 {
  position: absolute;
  top: 1620px;
  left: 0;
  width: 50%;
}

/********************/
.concept_under_bg {
  background: url("../images/concept_under_bg.webp") 50% 0/cover no-repeat;
  padding: clamp(80px, 6%, 6%) 0 clamp(80px, 10%, 10%);
}

.border_title {
  width: fit-content;
  border-bottom: 1px solid #FFF;
  border-top: 1px solid #FFF;
  padding: 25px 0;
  margin-left: auto;
  margin-right: auto;
}
.border_title .center {
  text-align: center;
  margin: 0 auto;
}

.text_18 {
  font-size: 18px;
}

.line_height22 {
  line-height: 2.2em;
}

.concept_bg_absolute5 {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40%;
}

.concept_bg_absolute6 {
  position: absolute;
  right: 0;
  bottom: 20px;
  width: 25%;
  text-align: right;
}

.visible {
  overflow: visible;
}

/************************************************************************

    クリーンサービス

************************************************************************/
.main_bg_absolute2 {
  position: absolute;
  top: 280px;
  left: 0;
}

.clean_title_flex {
  display: flex;
  align-items: center;
}

.clean_cell1 {
  width: 155px;
  font-size: 150px;
  line-height: 1em;
  color: rgba(255, 255, 255, 0);
  -webkit-text-stroke: 2px #002d6a;
  text-stroke: 2px #002d6a;
  white-space: nowrap;
  letter-spacing: -0.02em;
  text-box: trim-both cap alphabetic;
}

.clean_cell2 {
  margin-left: 20px;
  flex-grow: 2;
  position: relative;
  top: 5px;
}
.clean_cell2 h2 {
  margin-top: 15px;
}
.clean_cell2 p {
  text-box: trim-both cap alphabetic;
}

.eng_80 {
  font-size: clamp(40px, 7.5vw, 80px);
  letter-spacing: -0.02em;
  line-height: 1em;
}

.clean_more_absolute {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 180px;
}

/*************************************/
.clean_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 40px;
  row-gap: 60px;
}
.clean_grid h3 {
  font-size: clamp(18px, 2vw, 25px);
  margin: 20px 0 15px;
  letter-spacing: -0.06em;
  font-weight: 600;
}

/*****************/
.clean_flex {
  display: flex;
  justify-content: space-between;
}

.clean_right {
  order: 2;
  width: calc(100% - 460px);
  padding-top: 20px;
}

.title_25 {
  font-size: clamp(22px, 2vw, 25px);
  letter-spacing: -0.06em;
  font-weight: 600;
  line-height: 1.5em;
}

.clean_left {
  width: 410px;
}
.clean_left img {
  width: 100%;
  height: auto;
}

/*****************/
.clean_flex2 {
  display: flex;
  justify-content: space-between;
}
.clean_flex2 > div {
  width: 50%;
  display: flex;
  justify-content: space-between;
}

.clean_right2 {
  width: 44%;
  order: 2;
  container-type: inline-size;
}

.clean_left2 {
  width: 50%;
}
.clean_left2 img {
  width: 100%;
  height: auto;
}

/***********************/
.main_under_bg {
  position: absolute;
  top: 40px;
  right: 0;
}

.clean_bg_shape1 {
  position: absolute;
  top: 380px;
  left: 0;
}

.clean_bg_shape2 {
  position: absolute;
  bottom: 0;
  left: 0;
}

.clean_bg_absolute1 {
  position: absolute;
  top: 1850px;
  left: 0;
}

.clean_bg_absolute2 {
  position: absolute;
  top: 3345px;
  right: 0;
}

.clean_bg_absolute3 {
  position: absolute;
  top: 3670px;
  left: 0;
}

.clean_bg_absolute4 {
  position: absolute;
  top: 5300px;
  right: 0;
}

.clean_bg_absolute5 {
  position: absolute;
  top: 5833px;
  left: 0;
}

.clean_bg_absolute6 {
  position: absolute;
  bottom: 1080px;
  right: 0;
}

.clean_bg_absolute7 {
  position: absolute;
  bottom: 0;
  left: 0;
}

.clean_bg_absolute8 {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 200;
  width: 30%;
}

/************************************************************************

    歯科クリニック清掃

************************************************************************/
.dental01_flex {
  display: flex;
  justify-content: space-between;
}

.dental01_right {
  order: 2;
  width: 47%;
  max-width: 580px;
}
.dental01_right img {
  width: 100%;
  height: 100%;
  min-height: 400px;
  object-fit: cover;
}

.dental01_left {
  width: 50%;
  display: flex;
  align-items: center;
}

/******************/
.dental_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 60px;
  row-gap: 70px;
}

.dental_title {
  display: flex;
  align-items: flex-end;
  padding: 30px 0 15px;
  margin-bottom: 25px;
  border-bottom: 1px solid #002d6a;
}
.dental_title p {
  font-size: 60px;
  line-height: 1em;
  white-space: nowrap;
  letter-spacing: -0.02em;
}
.dental_title h3 {
  font-size: clamp(18px, 2vw, 25px);
  flex-grow: 2;
  margin-left: 20px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3em;
}

/*****************************/
.denta03_flex > div {
  display: flex;
  justify-content: space-between;
}
.denta03_flex > div:nth-child(n+2) {
  margin-top: 70px;
}

.dental03_right {
  display: flex;
  justify-content: space-between;
  width: 65%;
  max-width: 1010px;
  order: 2;
}
.dental03_right > div {
  width: 49.5%;
  max-width: 500px;
}
.dental03_right img {
  min-height: 380px;
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.dental03_left {
  width: 34%;
}

.dental03_title {
  background-color: #e9f9fa;
  display: flex;
  align-items: center;
  padding: 25px 20px;
  border-radius: 11px;
  margin-bottom: 40px;
}
.dental03_title p {
  white-space: nowrap;
  font-size: 45px;
  line-height: 1em;
}
.dental03_title h3 {
  font-size: clamp(18px, 2vw, 25px);
  flex-grow: 2;
  margin-left: 10px;
  line-height: 1.3em;
  font-weight: 600;
}

/****************************/
.dental04_flow > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #dff5ff;
  border-radius: 20px;
  padding: 20px 15px 13px;
  position: relative;
}
.dental04_flow > div:nth-child(n+2) {
  margin-top: 40px;
}
.dental04_flow > div:last-child:after {
  display: none;
}
.dental04_flow > div:after {
  content: "";
  background: url("../images/dental16.webp") left 0/100% 100% no-repeat;
  width: 28px;
  height: 15px;
  position: absolute;
  bottom: -30px;
  left: 97px;
}

.dental04_left {
  width: 320px;
  display: flex;
  align-items: center;
  text-align: center;
}
.dental04_left > div {
  width: 32px;
  text-align: center;
  color: #19a8f2;
}
.dental04_left > div p {
  line-height: 1.2em;
  font-weight: 600;
  white-space: nowrap;
  position: relative;
  top: -3px;
}
.dental04_left > div .eng {
  font-size: 16px;
  letter-spacing: 0.02em;
}
.dental04_left > div .num {
  letter-spacing: -0.02em;
  font-size: 32px;
  flex-grow: 2;
  margin-top: 3px;
}
.dental04_left h3 {
  font-size: 25px;
  letter-spacing: -0.02em;
  color: #002d6a;
  font-weight: 600;
  margin-left: 15px;
  line-height: 1.3em;
  padding-bottom: 5px;
  min-width: 95px;
}

.dental04_right {
  width: calc(100% - 350px);
}
.dental04_right p {
  letter-spacing: 0.02em;
}

/**************/
.dental_bg_absolute1 {
  position: absolute;
  top: 766px;
  left: 0;
}

.dental_bg_absolute2 {
  position: absolute;
  top: 3340px;
  right: 0;
}

.dental_bg_absolute3 {
  position: absolute;
  top: 3660px;
  left: 0;
}

.dental_bg_absolute4 {
  position: absolute;
  bottom: 180px;
  right: 0;
}

.dental_bg_absolute5 {
  position: absolute;
  bottom: 0;
  left: 0;
}

/************************************************************************

    リース

************************************************************************/
.concept02_bg.bg_dff5ff {
  background-color: #dff5ff;
}

.lease_title_flex {
  display: flex;
  align-items: center;
}

.lease_cell1 {
  width: 95px;
  text-align: center;
}
.lease_cell1 p {
  white-space: nowrap;
}
.lease_cell1 .eng {
  font-size: 41px;
  letter-spacing: -0.02em;
  line-height: 1em;
  border-bottom: 5px solid #002d6a;
  color: #002d6a;
  padding-bottom: 8px;
}
.lease_cell1 .num {
  font-size: 100px;
  letter-spacing: -0.02em;
  line-height: 1em;
  margin-left: -5px;
  margin-top: 20px;
  color: rgba(255, 255, 255, 0);
  -webkit-text-stroke: 2px #002d6a;
  text-stroke: 2px #002d6a;
}

.lease_cell2 {
  flex-grow: 2;
  margin-left: 25px;
  padding-top: 10px;
}
.lease_cell2 h2 {
  margin-top: 20px;
}

.eng_100 {
  font-size: clamp(60px, 8.5vw, 100px);
  line-height: 1em;
  letter-spacing: -0.02em;
}

/*****************************/
.lease_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 30px;
  row-gap: 30px;
}
.lease_grid > div {
  background-color: #FFF;
  border-radius: 20px;
  padding: 40px 45px;
}

.lease01_border {
  border-radius: 20px;
  background-color: #d2ecfb;
  padding: 45px;
  display: flex;
  justify-content: space-between;
}

.lease01_left {
  width: 50%;
}

.lease01_right {
  width: 48%;
  text-align: center;
}
.lease01_right img {
  max-width: 100%;
  height: auto;
}

/*****/
.border_title2 {
  border-top: 2px solid #002d6a;
  border-bottom: 2px solid #002d6a;
  padding: 30px 0;
}

.lease01_grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 55px;
  row-gap: 55px;
}
.lease01_grid h3 {
  margin: 12px 0 12px;
}
.lease01_grid .column2 {
  grid-column: span 2;
}

.lease01_table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 5px;
}
.lease01_table .table_bg th {
  background-color: #8ed7fc;
  font-size: 16px;
  letter-spacing: -0.02em;
  background-color: #8ed7fc;
  padding: 5px 0 0 20px;
}
.lease01_table .table_bg td {
  background-color: #8ed7fc;
  font-size: 14px;
  letter-spacing: 0;
  padding: 5px 5px 0 0;
}
.lease01_table th, .lease01_table td {
  background-color: #effaff;
  padding: 7px 20px;
  line-height: 1.3em;
  font-weight: 500;
  vertical-align: top;
}
.lease01_table td {
  text-align: right;
}
.lease01_table .mini13 {
  font-size: 13px;
}
.lease01_table .mini14 {
  font-size: 14px;
}

.lease01_type {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.lease01_type > div {
  position: relative;
}
.lease01_type img {
  width: 100%;
  height: auto;
}
.lease01_type p {
  font-size: clamp(10px, 0.8vw, 14px);
  text-align: center;
  margin-top: 2px;
  font-weight: bold;
  letter-spacing: 0;
  white-space: nowrap;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

/**********************************/
.lease02_bg {
  background-color: #effaff;
  border-radius: 20px;
  max-width: 870px;
  padding: 50px;
}

.lease02_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 35px;
}
.lease02_grid p {
  padding-right: 5px;
}

.lease01_grid .lease04_bg_column {
  grid-column: span 2;
  background: url("../images/lease30.webp") right 0/579px 122px no-repeat;
  background-color: #effaff;
  border-radius: 20px;
  overflow: auto;
  position: relative;
  padding: 50px 40px;
}

.lease04_title {
  display: flex;
  align-items: center;
  font-size: clamp(18px, 2vw, 25px);
  display: flex;
  align-items: center;
  column-gap: 0;
  row-gap: 5px;
}
.lease04_title p {
  color: #002d6a;
  letter-spacing: -0.02em;
  font-weight: bold;
  padding: 0 10px;
  white-space: nowrap;
}
.lease04_title .bg {
  background-color: #c3e9fd;
  border-radius: 15px;
}

.text_14 {
  font-size: 14px;
}

.lease04_bg_column {
  container-type: inline-size;
}

@container (width <= 700px) {
  .lease04_title {
    flex-wrap: wrap;
  }
}
/******************/
.lease06_bg {
  background-color: #effaff;
  padding: 15px 8px 8px;
  font-size: 14px;
}
.lease06_bg .img100 {
  background-color: #FFF;
  padding: 15px 10px;
}

/*******************/
.lease_bg_absolute1 {
  position: absolute;
  top: 760px;
  left: 0;
}

.lease_bg_absolute2 {
  position: absolute;
  top: 3350px;
  right: 0;
}

.lease_bg_absolute3 {
  position: absolute;
  top: 3380px;
  left: 0;
}

.lease_bg_absolute4 {
  position: absolute;
  top: 5180px;
  right: 0;
}

.lease_bg_absolute5 {
  position: absolute;
  top: 5880px;
  left: 0;
}

.lease_bg_absolute6 {
  position: absolute;
  bottom: 1270px;
  right: 0;
}

.lease_bg_absolute7 {
  position: absolute;
  bottom: 1250px;
  left: 0;
}

.lease_bg_absolute8 {
  position: absolute;
  bottom: 0;
  right: 0;
}

.lease_bg_shape {
  position: absolute;
  bottom: 1180px;
  left: 0;
}

/**追加***/
.lease01_new_flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  max-width: 1520px;
}
.lease01_new_flex > div {
  width: 23%;
}
.lease01_new_flex > div.column2 {
  width: 45%;
}
.lease01_new_flex h3 {
  margin: 12px 0 12px;
}

.max_w1530 {
  max-width: 1530px;
}

.lease01_print_flex {
  display: flex;
  justify-content: space-between;
}
.lease01_print_flex > div {
  width: 48%;
  max-width: 315px;
}
.lease01_print_flex > div img {
  max-width: 100%;
  height: auto;
}

.lease02_right {
  width: fit-content;
  margin-left: auto;
}

/****/
.lease01_type_new {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  column-gap: 10px;
  row-gap: 10px;
}
.lease01_type_new p {
  font-size: clamp(10px, 0.8vw, 14px);
  text-align: center;
  margin-top: 2px;
  font-weight: bold;
  letter-spacing: 0;
  white-space: nowrap;
}
.lease01_type_new img {
  width: 100%;
  height: auto;
}

/***************/
.mop_flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 1360px;
}

.mop_left {
  width: 70%;
}
.mop_left img {
  max-width: 100%;
  height: auto;
}

.mop_right {
  width: 26%;
}
.mop_right h3 {
  margin-bottom: 10px;
}

.mini18 {
  font-size: 18px;
}

.nowrap {
  white-space: nowrap;
}

/************************************************************************

    会社概要

************************************************************************/
.eng_130 {
  font-size: clamp(70px, 12vw, 130px);
  letter-spacing: -0.02em;
  line-height: 1em;
}

.com01_table {
  border-top: 1px solid #002d6a;
}
.com01_table > div {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #002d6a;
  padding: 25px 10px;
}

.com01_cell1 {
  width: 210px;
}

.com01_cell2 {
  width: calc(100% - 210px);
}

.eng_48 {
  letter-spacing: -0.02em;
  line-height: 1em;
  font-size: 48px;
}

/*********************/
.com01_map iframe {
  width: 100%;
  height: 580px;
}

/**************/
.com02_cell1 {
  width: 280px;
  font-size: 18px;
}

.com02_cell2 {
  width: calc(100% - 280px);
}

.dot_list li {
  position: relative;
  padding-left: 20px;
}
.dot_list li:before {
  content: "";
  background-color: #002d6a;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 10px;
}
.dot_list li:nth-child(n+2) {
  margin-top: 2px;
}

.com02_flex {
  display: flex;
  justify-content: space-between;
  max-width: 720px;
}

/********************************/
.com03_table > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.com03_table > div:nth-child(n+2) {
  margin-top: 15px;
}

.com03_cell1 {
  width: 245px;
  display: flex;
  align-items: center;
  letter-spacing: -0.02em;
  color: #002d6a;
  font-size: 31px;
}
.com03_cell1:after {
  content: "";
  border-bottom: 1px solid #002d6a;
  flex-grow: 2;
  margin-left: 30px;
}

.com03_cell2 {
  width: calc(100% - 260px);
  position: relative;
  top: 5px;
}

.com03_bg {
  width: fit-content;
  padding: 10px;
  border-radius: 11px;
  background-color: #f6f6f6;
}
.com03_bg p {
  letter-spacing: 0.01em;
}

/***************/
.company_bg_absolute1 {
  position: absolute;
  left: 0;
  top: 1270px;
}

.company_bg_absolute2 {
  position: absolute;
  right: 0;
  bottom: 0;
}

.company_bg_absolute3 {
  position: absolute;
  left: 0;
  bottom: 0;
}

/************************************************************************

    お問い合わせ

************************************************************************/
.contact_form {
  border-top: 1px solid #002d6a;
}
.contact_form > div {
  display: flex;
  justify-content: space-between;
  padding: 20px 10px;
  border-bottom: 1px solid #002d6a;
}
.contact_form > div.bb0 {
  border-bottom: 0;
  padding-bottom: 0px;
}

.contact_cell1 {
  width: 260px;
}
.contact_cell1:not(.pt0) {
  padding-top: 15px;
}

.req {
  background-color: #07c15a;
  color: #FFF;
  font-size: 14px;
  border-radius: 50px;
  margin-left: 20px;
  padding: 0 10px;
}

.contact_cell2 {
  width: calc(100% - 260px);
}

.size, .area {
  background-color: #f6f6f6;
  border: 0;
  width: 100%;
}

.size {
  padding: 0 15px;
  height: 60px;
}

.area {
  padding: 15px 15px;
  height: 320px;
}

.radio_flex {
  padding: 15px 0 20px;
}
.radio_flex .wpcf7-form-control {
  display: flex;
  flex-wrap: wrap;
  grid-row-gap: 10px;
}
.radio_flex .wpcf7-list-item {
  min-width: 170px;
}
.radio_flex label {
  cursor: pointer;
}

input[type=radio] {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1px solid #000;
  border-radius: 50%;
  vertical-align: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin-right: 10px;
}

input[type=radio]:checked:before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #002d6a;
  content: "";
}

.select {
  max-width: 320px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("../images/select.webp");
  background-repeat: no-repeat;
  background-size: 19px auto; /* 画像のサイズ（幅 高さ）*/
  background-position: right 12px center; /* 画像の位置 */
}

.a_style a {
  color: inherit;
  border-bottom: 1px solid #2d2d2d;
  margin-left: 10px;
  letter-spacing: -0.02em;
}

.submit {
  position: relative;
  overflow: hidden;
  background-color: #19a8f2;
  display: flex;
  align-items: center;
  color: #fff;
  border-radius: 75px;
  width: 180px;
  height: 60px;
  font-size: 18px;
  font-weight: 500;
  font-style: normal;
  transition: 0.3s;
  margin-left: auto;
  margin-right: auto;
}
.submit input {
  display: block;
  background: none;
  border: 0;
  width: 180px;
  height: 60px;
  position: relative;
  z-index: 500;
  text-align: left;
  padding-left: 40px;
}
.submit:hover .btn_shape::after {
  transform: translate(550%, -50%);
  animation: btn_return 0s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.6s;
  transition: 0.6s;
}
.submit:hover .btn_shape::before {
  animation: btn_hover 0.3s normal forwards running;
  animation-iteration-count: 1;
  animation-delay: 0.3s;
}

/*********************/
.contact_bg_absolute1 {
  position: absolute;
  left: 0;
  bottom: 0;
}

/************************************************************************

    お知らせ

************************************************************************/
/*Pagenation*/
.pagenation {
  text-align: center;
  position: relative;
}

.pagenation ul {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.pagenation li {
  list-style: none outside none;
  margin: 0 20px;
}

.pagenation li:first-child {
  margin-left: 0;
}

.pagenation li.active {
  cursor: not-allowed;
  color: #19a8f2;
}

.pagenation li a {
  color: #002d6a;
}

.pagenation .prev,
.pagenation .next {
  position: relative;
  top: -2px;
}

.pagenation .prev {
  transform: scale(-1, 1);
}

/************************************************************************

    個人情報保護方針

************************************************************************/
.privacy_width {
  max-width: 1260px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.num_list li {
  text-indent: -1.28em;
  padding-left: 1.28em;
}
.num_list li:nth-child(n+2) {
  margin-top: 5px;
}

.indent_p {
  text-indent: -1em;
  padding-left: 1em;
}

.privacy_pl {
  padding-left: 1em;
}

.indent_p2 {
  text-indent: -1.3em;
  padding-left: 1.3em;
}

.indent_p3 {
  text-indent: -1.4em;
  padding-left: 1.4em;
}

/*******************/
.privacy_bg_absolute1 {
  position: absolute;
  top: 835px;
  left: 0;
}

.privacy_bg_absolute2 {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 94%;
  max-width: 1560px;
  text-align: right;
}
.break-word{overflow-wrap: break-word;}
/* PPC用
------------------------------------------------------------*/
@media only screen and (max-width: 1400px) {
  /*header*/
  #header {
    position: absolute;
    z-index: 3;
    width: 100%;
  }
  #logo img {
    width: 250px;
    height: auto;
  }
  .header_box nav ul {
    gap: 1.1vw;
    padding: 0 25px;
  }
  /************************************************************************

      リース

  ************************************************************************/
  .lease01_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }
  .lease01_grid .lease04_bg_column {
    grid-column: span 3;
  }
  /***************/
  .mop_flex {
    display: block;
  }
  .mop_left {
    width: 100%;
  }
  .mop_left img {
    width: 100%;
  }
  .mop_right {
    width: 100%;
    margin-top: 20px;
  }
  .mini18 {
    font-size: 18px;
  }
  .nowrap {
    white-space: nowrap;
  }
}
@media only screen and (max-width: 1300px) {
  /*footer*/
  .footer_wrap {
    display: block;
  }
  .footer_wrap .left {
    width: 100%;
  }
  .footer_wrap .right {
    width: 100%;
    margin-top: 50px;
    max-width: 100%;
  }
  .f_nav .font2 {
    font-size: clamp(15px, 2.3vw, 25px);
  }
}
@media only screen and (max-width: 1200px) {
  #header.scroll .scroll_logo {
    display: none;
  }
  /*header*/
  #logo img {
    width: 300px;
    height: auto;
  }
  .header_box nav ul {
    display: none;
  }
  #h_contact {
    top: 35px;
    right: 140px;
    position: fixed;
  }
}
@media only screen and (max-width: 1024px) {
  .padding100 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding110 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding120 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding130 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding140 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding150 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding160 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding170 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding180 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding190 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding200 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding210 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding220 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding230 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding240 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding250 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding260 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding270 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding280 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding290 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .padding300 {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .margin100 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin110 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin120 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin130 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin140 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin150 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin160 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin170 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin180 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin190 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin200 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin210 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin220 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin230 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin240 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin250 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin260 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin270 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin280 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin290 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .margin300 {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .pt-120 {
    padding-top: 80px;
  }
  .pt-130 {
    padding-top: 80px;
  }
  .pt-140 {
    padding-top: 80px;
  }
  .pt-150 {
    padding-top: 80px;
  }
  .pt-160 {
    padding-top: 80px;
  }
  .pt-170 {
    padding-top: 80px;
  }
  .pt-180 {
    padding-top: 80px;
  }
  .pt-190 {
    padding-top: 80px;
  }
  .pt-200 {
    padding-top: 80px;
  }
  .pt-210 {
    padding-top: 80px;
  }
  .pt-220 {
    padding-top: 80px;
  }
  .pt-230 {
    padding-top: 80px;
  }
  .pt-240 {
    padding-top: 80px;
  }
  .pt-250 {
    padding-top: 80px;
  }
  .pt-260 {
    padding-top: 80px;
  }
  .pt-270 {
    padding-top: 80px;
  }
  .pt-280 {
    padding-top: 80px;
  }
  .pt-290 {
    padding-top: 80px;
  }
  .pt-300 {
    padding-top: 80px;
  }
  .pb-120 {
    padding-bottom: 80px;
  }
  .pb-130 {
    padding-bottom: 80px;
  }
  .pb-140 {
    padding-bottom: 80px;
  }
  .pb-150 {
    padding-bottom: 80px;
  }
  .pb-160 {
    padding-bottom: 80px;
  }
  .pb-170 {
    padding-bottom: 80px;
  }
  .pb-180 {
    padding-bottom: 80px;
  }
  .pb-190 {
    padding-bottom: 80px;
  }
  .pb-200 {
    padding-bottom: 80px;
  }
  .pb-210 {
    padding-bottom: 80px;
  }
  .pb-220 {
    padding-bottom: 80px;
  }
  .pb-230 {
    padding-bottom: 80px;
  }
  .pb-240 {
    padding-bottom: 80px;
  }
  .pb-250 {
    padding-bottom: 80px;
  }
  .pb-260 {
    padding-bottom: 80px;
  }
  .pb-270 {
    padding-bottom: 80px;
  }
  .pb-280 {
    padding-bottom: 80px;
  }
  .pb-290 {
    padding-bottom: 80px;
  }
  .pb-300 {
    padding-bottom: 80px;
  }
  .mt-120 {
    margin-top: 80px;
  }
  .mt-130 {
    margin-top: 80px;
  }
  .mt-140 {
    margin-top: 80px;
  }
  .mt-150 {
    margin-top: 80px;
  }
  .mt-160 {
    margin-top: 80px;
  }
  .mt-170 {
    margin-top: 80px;
  }
  .mt-180 {
    margin-top: 80px;
  }
  .mt-190 {
    margin-top: 80px;
  }
  .mt-200 {
    margin-top: 80px;
  }
  .mt-210 {
    margin-top: 80px;
  }
  .mt-220 {
    margin-top: 80px;
  }
  .mt-230 {
    margin-top: 80px;
  }
  .mt-240 {
    margin-top: 80px;
  }
  .mt-250 {
    margin-top: 80px;
  }
  .mt-260 {
    margin-top: 80px;
  }
  .mt-270 {
    margin-top: 80px;
  }
  .mt-280 {
    margin-top: 80px;
  }
  .mt-290 {
    margin-top: 80px;
  }
  .mt-300 {
    margin-top: 80px;
  }
  .mb-120 {
    margin-bottom: 80px;
  }
  .mb-130 {
    margin-bottom: 80px;
  }
  .mb-140 {
    margin-bottom: 80px;
  }
  .mb-150 {
    margin-bottom: 80px;
  }
  .mb-160 {
    margin-bottom: 80px;
  }
  .mb-170 {
    margin-bottom: 80px;
  }
  .mb-180 {
    margin-bottom: 80px;
  }
  .mb-190 {
    margin-bottom: 80px;
  }
  .mb-200 {
    margin-bottom: 80px;
  }
  .mb-210 {
    margin-bottom: 80px;
  }
  .mb-220 {
    margin-bottom: 80px;
  }
  .mb-230 {
    margin-bottom: 80px;
  }
  .mb-240 {
    margin-bottom: 80px;
  }
  .mb-250 {
    margin-bottom: 80px;
  }
  .mb-260 {
    margin-bottom: 80px;
  }
  .mb-270 {
    margin-bottom: 80px;
  }
  .mb-280 {
    margin-bottom: 80px;
  }
  .mb-290 {
    margin-bottom: 80px;
  }
  .mb-300 {
    margin-bottom: 80px;
  }
  /******************/
  #top_sec03 .grid {
    display: block;
  }
  #top_sec03 .right {
    margin-top: 40px;
  }
  #top_sec03 .grid-repeat3 {
    gap: 3vw;
    display: block;
  }
  #top_sec03 .grid-repeat3 .box {
    display: flex;
    justify-content: space-between;
  }
  #top_sec03 .grid-repeat3 .box:nth-child(n+2) {
    margin-top: 60px;
  }
  #top_sec03 .grid-repeat3 .box:nth-child(2n) .img100 {
    order: 2;
  }
  #top_sec03 .grid-repeat3 .img100 {
    width: 48%;
  }
  #top_sec03 .grid-repeat3 .sp_right {
    width: 48%;
    padding-top: 30px;
  }
  #top_sec03 .grid-repeat3 .midashi25 {
    position: relative;
    border-bottom: 1px solid #002d6a;
    padding-bottom: 20px;
    margin-bottom: 20px;
    padding-top: 0;
    display: flex;
    justify-content: space-between;
    align-items: end;
    font-size: clamp(18px, 1.5vw, 25px);
    min-height: 0;
    line-height: 1em;
  }
  #top_sec03 .grid-repeat3 .midashi25 .font2 {
    position: absolute;
    right: 0;
    font-size: clamp(40px, 5.5vw, 110px);
    bottom: 20px;
    top: auto;
    display: inline-block;
    line-height: 1em;
  }
  #top_sec03 .grid-repeat3 .midashi25 .mini {
    font-size: clamp(15px, 1.2vw, 18px);
    line-height: 1.5em;
    display: inline-block;
  }
  /**sec04**/
  #top_sec04 .grid {
    display: block;
  }
  #top_sec04 .grid .right {
    margin-top: 60px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  /*top news*/
  .top_news_wrap {
    display: block;
    padding-bottom: 110px;
  }
  .top_news_wrap .left {
    padding-bottom: 0;
    margin-bottom: 30px;
  }
  .sp_news_absolute {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 180px;
  }
  /*parts************/
  .parts05 {
    position: absolute;
    top: auto;
    bottom: -20px;
    right: 0;
    max-width: 402px;
    z-index: 2;
    height: auto;
  }
  .parts06 {
    position: absolute;
    top: -35%;
    left: 0;
    max-width: 200px;
    z-index: 2;
    height: auto;
  }
  /************************************************************************

      クリーンサービス

  ************************************************************************/
  .clean_more_absolute {
    position: static;
    margin-top: 30px;
  }
  /*************************************/
  .clean_grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 60px;
  }
  /*****************/
  .clean_flex2 {
    flex-wrap: wrap;
    grid-row-gap: 40px;
  }
  .clean_flex2 > div {
    width: 100%;
    display: flex;
    justify-content: space-between;
  }
  .clean_right2 {
    padding-top: 20px;
  }
  /************************************************************************

      歯科クリニック清掃

  ************************************************************************/
  .dental_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 40px;
  }
  .dental_title {
    margin-bottom: 25px;
  }
  /*****************************/
  .denta03_flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    grid-row-gap: 40px;
  }
  .denta03_flex > div {
    display: block;
    width: 48%;
  }
  .denta03_flex > div:nth-child(n+2) {
    margin-top: 0;
  }
  .dental03_right {
    display: flex;
    justify-content: space-between;
    width: 100%;
  }
  .dental03_right > div {
    width: 49.5%;
    max-width: 500px;
  }
  .dental03_right img {
    min-height: 200px;
  }
  .dental03_left {
    margin-top: 20px;
    width: 100%;
  }
  .dental03_title {
    padding: 15px 10px;
    margin-bottom: 10px;
  }
  /************************************************************************

      リース

  ************************************************************************/
  .lease_grid {
    grid-template-columns: repeat(1, 1fr);
    column-gap: 0;
    row-gap: 30px;
  }
  /*****/
  .lease01_grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 30px;
    row-gap: 40px;
  }
  /**********************************/
  .lease02_grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 35px;
  }
  .lease01_grid .lease04_bg_column {
    grid-column: span 2;
  }
}
@media only screen and (max-width: 740px) {
  .flex_30 {
    width: 100%;
  }
  .flex_31 {
    width: 100%;
  }
  .flex_32 {
    width: 100%;
  }
  .flex_33 {
    width: 100%;
  }
  .flex_34 {
    width: 100%;
  }
  .flex_35 {
    width: 100%;
  }
  .flex_36 {
    width: 100%;
  }
  .flex_37 {
    width: 100%;
  }
  .flex_38 {
    width: 100%;
  }
  .flex_39 {
    width: 100%;
  }
  .flex_40 {
    width: 100%;
  }
  .flex_41 {
    width: 100%;
  }
  .flex_42 {
    width: 100%;
  }
  .flex_43 {
    width: 100%;
  }
  .flex_44 {
    width: 100%;
  }
  .flex_45 {
    width: 100%;
  }
  .flex_46 {
    width: 100%;
  }
  .flex_47 {
    width: 100%;
  }
  .flex_48 {
    width: 100%;
  }
  .flex_49 {
    width: 100%;
  }
  .flex_50 {
    width: 100%;
  }
  .flex_51 {
    width: 100%;
  }
  .flex_52 {
    width: 100%;
  }
  .flex_53 {
    width: 100%;
  }
  .flex_54 {
    width: 100%;
  }
  .flex_55 {
    width: 100%;
  }
  .flex_56 {
    width: 100%;
  }
  .flex_57 {
    width: 100%;
  }
  .flex_58 {
    width: 100%;
  }
  .flex_59 {
    width: 100%;
  }
  .flex_60 {
    width: 100%;
  }
  .flex_61 {
    width: 100%;
  }
  .flex_62 {
    width: 100%;
  }
  .flex_63 {
    width: 100%;
  }
  .flex_64 {
    width: 100%;
  }
  .flex_65 {
    width: 100%;
  }
  .flex_66 {
    width: 100%;
  }
  .flex_67 {
    width: 100%;
  }
  .flex_68 {
    width: 100%;
  }
  .flex_69 {
    width: 100%;
  }
  .flex_70 {
    width: 100%;
  }
  .padding100 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding110 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding120 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding130 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding140 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding150 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding160 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding170 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding180 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding190 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding200 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding210 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding220 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding230 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding240 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding250 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding260 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding270 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding280 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding290 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .padding300 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .margin100 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin110 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin120 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin130 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin140 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin150 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin160 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin170 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin180 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin190 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin200 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin210 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin220 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin230 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin240 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin250 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin260 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin270 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin280 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin290 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .margin300 {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .pt-110 {
    padding-top: 60px;
  }
  .pt-120 {
    padding-top: 60px;
  }
  .pt-130 {
    padding-top: 60px;
  }
  .pt-140 {
    padding-top: 60px;
  }
  .pt-150 {
    padding-top: 60px;
  }
  .pt-160 {
    padding-top: 60px;
  }
  .pt-170 {
    padding-top: 60px;
  }
  .pt-180 {
    padding-top: 60px;
  }
  .pt-190 {
    padding-top: 60px;
  }
  .pt-200 {
    padding-top: 60px;
  }
  .pt-210 {
    padding-top: 60px;
  }
  .pt-220 {
    padding-top: 60px;
  }
  .pt-230 {
    padding-top: 60px;
  }
  .pt-240 {
    padding-top: 60px;
  }
  .pt-250 {
    padding-top: 60px;
  }
  .pt-260 {
    padding-top: 60px;
  }
  .pt-270 {
    padding-top: 60px;
  }
  .pt-280 {
    padding-top: 60px;
  }
  .pt-290 {
    padding-top: 60px;
  }
  .pt-300 {
    padding-top: 60px;
  }
  .pb-110 {
    padding-bottom: 60px;
  }
  .pb-120 {
    padding-bottom: 60px;
  }
  .pb-130 {
    padding-bottom: 60px;
  }
  .pb-140 {
    padding-bottom: 60px;
  }
  .pb-150 {
    padding-bottom: 60px;
  }
  .pb-160 {
    padding-bottom: 60px;
  }
  .pb-170 {
    padding-bottom: 60px;
  }
  .pb-180 {
    padding-bottom: 60px;
  }
  .pb-190 {
    padding-bottom: 60px;
  }
  .pb-200 {
    padding-bottom: 60px;
  }
  .pb-210 {
    padding-bottom: 60px;
  }
  .pb-220 {
    padding-bottom: 60px;
  }
  .pb-230 {
    padding-bottom: 60px;
  }
  .pb-240 {
    padding-bottom: 60px;
  }
  .pb-250 {
    padding-bottom: 60px;
  }
  .pb-260 {
    padding-bottom: 60px;
  }
  .pb-270 {
    padding-bottom: 60px;
  }
  .pb-280 {
    padding-bottom: 60px;
  }
  .pb-290 {
    padding-bottom: 60px;
  }
  .mt-110 {
    margin-top: 60px;
  }
  .mt-120 {
    margin-top: 60px;
  }
  .mt-130 {
    margin-top: 60px;
  }
  .mt-140 {
    margin-top: 60px;
  }
  .mt-150 {
    margin-top: 60px;
  }
  .mt-160 {
    margin-top: 60px;
  }
  .mt-170 {
    margin-top: 60px;
  }
  .mt-180 {
    margin-top: 60px;
  }
  .mt-190 {
    margin-top: 60px;
  }
  .mt-200 {
    margin-top: 60px;
  }
  .mt-210 {
    margin-top: 60px;
  }
  .mt-220 {
    margin-top: 60px;
  }
  .mt-230 {
    margin-top: 60px;
  }
  .mt-240 {
    margin-top: 60px;
  }
  .mt-250 {
    margin-top: 60px;
  }
  .mt-260 {
    margin-top: 60px;
  }
  .mt-270 {
    margin-top: 60px;
  }
  .mt-280 {
    margin-top: 60px;
  }
  .mt-290 {
    margin-top: 60px;
  }
  .mt-300 {
    margin-top: 60px;
  }
  .mb-110 {
    margin-bottom: 60px;
  }
  .mb-120 {
    margin-bottom: 60px;
  }
  .mb-130 {
    margin-bottom: 60px;
  }
  .mb-140 {
    margin-bottom: 60px;
  }
  .mb-150 {
    margin-bottom: 60px;
  }
  .mb-160 {
    margin-bottom: 60px;
  }
  .mb-170 {
    margin-bottom: 60px;
  }
  .mb-180 {
    margin-bottom: 60px;
  }
  .mb-190 {
    margin-bottom: 60px;
  }
  .mb-200 {
    margin-bottom: 60px;
  }
  .mb-210 {
    margin-bottom: 60px;
  }
  .mb-220 {
    margin-bottom: 60px;
  }
  .mb-230 {
    margin-bottom: 60px;
  }
  .mb-240 {
    margin-bottom: 60px;
  }
  .mb-250 {
    margin-bottom: 60px;
  }
  .mb-260 {
    margin-bottom: 60px;
  }
  .mb-270 {
    margin-bottom: 60px;
  }
  .mb-280 {
    margin-bottom: 60px;
  }
  .mb-290 {
    margin-bottom: 60px;
  }
  .mb-300 {
    margin-bottom: 60px;
  }
  body {
    min-width: auto;
  }
  /*****************/
  /*header*/
  #logo img {
    width: 280px;
  }
  .header_box {
    padding: 20px 20px 0 2vw;
  }
  #h_contact {
    right: 100px;
    top: 20px;
  }
  #h_contact img {
    width: 50px;
    height: auto;
  }
  #h_contact:after {
    width: 75px;
    height: 75px;
  }
  /*sec02*/
  #top_sec02 {
    padding: 60px 0 60px;
  }
  #top_sec02 .bg_effaff {
    padding: 30px 30px;
  }
  /******************/
  #top_sec03 .container1760,
  #top_sec04 .container1760 {
    padding: 40px 30px 60px;
    border-radius: 30px;
  }
  #top_sec03 .container1760 .midashi170,
  #top_sec04 .container1760 .midashi170 {
    line-height: 1em;
    margin-bottom: 15px;
  }
  #top_sec03 .title_box {
    padding-bottom: 30px;
  }
  #top_sec03 .right {
    margin-top: 30px;
  }
  #top_sec03 .grid-repeat3 {
    gap: 3vw;
    display: block;
  }
  #top_sec03 .grid-repeat3 .box {
    display: block;
  }
  #top_sec03 .grid-repeat3 .box:nth-child(n+2) {
    margin-top: 40px;
  }
  #top_sec03 .grid-repeat3 .img100 {
    width: 100%;
  }
  #top_sec03 .grid-repeat3 .sp_right {
    width: 100%;
    padding-top: 30px;
  }
  #top_sec03 .grid-repeat3 .midashi25 {
    position: relative;
    border-bottom: 1px solid #002d6a;
    padding-bottom: 20px;
    margin-bottom: 20px;
    padding-top: 0;
    font-size: 22px;
  }
  #top_sec03 .grid-repeat3 .midashi25 .font2 {
    font-size: 80px;
    bottom: 20px;
  }
  #top_sec03 .grid-repeat3 .midashi25 .mini {
    font-size: 18px;
    line-height: 1.5em;
    display: inline-block;
  }
  /**sec04**/
  #top_sec04 .title_box {
    padding-bottom: 30px;
  }
  #top_sec04 .grid .right {
    margin-top: 40px;
  }
  /*sec 05*/
  #top_sec05 .grid-repeat2 {
    display: block;
  }
  #top_sec05 .grid-repeat2 li {
    border-radius: 30px;
  }
  #top_sec05 .grid-repeat2 li:nth-child(n+2) {
    margin-top: 20px;
  }
  #top_sec05 .grid-repeat2 li a {
    height: 250px;
    padding: 50px 35px;
  }
  #top_sec05 .grid-repeat2 li a .font2 {
    font-size: 13vw;
  }
  /*パーツ*/
  .parts05 {
    bottom: -240px;
    width: 80%;
  }
  .parts06 {
    position: absolute;
    top: -10%;
    left: 0;
    max-width: 205px;
    z-index: 2;
    height: auto;
  }
  /*top news*/
  .top_news_wrap {
    padding-bottom: 60px;
  }
  .news_list li a {
    grid-template-columns: 80px 1fr;
  }
  /**********/
  .footer_wrap .right {
    margin-top: 30px;
  }
  .f_nav {
    border-top: 1px solid #002d6a;
    padding-top: 30px;
  }
  .f_nav ul {
    flex-wrap: wrap;
    grid-row-gap: 20px;
  }
  .f_nav li {
    width: 50%;
  }
  .f_nav .font2 {
    font-size: 22px;
  }
  .f_nav .ja {
    font-size: 16px;
    padding-top: 0;
  }
  .copy_wrap {
    font-size: 13px;
    padding-top: 25px;
    display: block;
  }
  .copy_wrap a {
    order: 2;
    display: inline-block;
    margin-bottom: 15px;
  }
  /************************************************************************

      コンセプト

  ************************************************************************/
  .main_in {
    padding: 130px 0 40px;
    position: relative;
  }
  .concept_text {
    margin-top: 30px;
    line-height: 2em;
  }
  .c_main_bg_absolute2 {
    width: 25%;
  }
  /*************************************/
  .title_span_ml {
    margin-left: -5px;
  }
  /*******************/
  .concept02_bg {
    border-radius: 30px;
  }
  .bb_calc {
    padding-bottom: 30px;
    margin-bottom: 30px;
  }
  /******************/
  .concept02_flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    grid-row-gap: 20px;
  }
  .concept02_flex > div {
    width: 100%;
    max-width: 100%;
  }
  .concept02_flex h3 {
    margin: 30px 0 20px;
  }
  /************/
  .concept_bg_absolute1 {
    position: absolute;
    top: -150px;
    right: 0;
    text-align: right;
    z-index: 100;
    width: 23%;
  }
  .concept_bg_absolute2 {
    position: absolute;
    top: 30px;
    left: 0;
  }
  .concept_bg_absolute3 {
    position: absolute;
    top: 335px;
    right: 0;
    text-align: right;
    width: 50%;
  }
  .concept_bg_absolute4 {
    position: absolute;
    top: 1620px;
    left: 0;
    width: 50%;
  }
  /********************/
  .concept_under_bg {
    background: url("../images/concept_under_bg.webp") 50% 0/cover no-repeat;
    padding: clamp(80px, 6%, 6%) 0 clamp(80px, 10%, 10%);
  }
  .border_title {
    width: fit-content;
    border-bottom: 1px solid #FFF;
    border-top: 1px solid #FFF;
    padding: 25px 0;
    margin-left: auto;
    margin-right: auto;
  }
  .border_title .center {
    text-align: center;
    margin: 0 auto;
  }
  .text_18 {
    font-size: 18px;
  }
  .line_height22 {
    line-height: 2em;
  }
  .concept_bg_absolute5 {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40%;
  }
  .concept_bg_absolute6 {
    position: absolute;
    right: 0;
    bottom: 20px;
    width: 25%;
    text-align: right;
  }
  .visible {
    overflow: visible;
  }
  /************************************************************************

      クリーンサービス

  ************************************************************************/
  .main_bg_absolute2 {
    position: absolute;
    top: 100px;
    left: 0;
    width: 18%;
  }
  .clean_title_flex {
    align-items: flex-start;
  }
  .clean_cell1 {
    width: 125px;
    font-size: 100px;
  }
  .clean_cell2 {
    top: 7px;
  }
  .clean_cell2 h2 {
    margin-top: 15px;
  }
  /*************************************/
  .clean_grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 0;
    row-gap: 40px;
  }
  .clean_grid h3 {
    font-size: 21px;
    margin: 15px 0 10px;
  }
  /*****************/
  .clean_flex {
    display: block;
  }
  .clean_right {
    width: 100%;
    padding-top: 25px;
  }
  .title_25 {
    font-size: clamp(22px, 2vw, 25px);
    letter-spacing: -0.06em;
    font-weight: 600;
    line-height: 1.5em;
  }
  .clean_left {
    width: 100%;
  }
  .clean_left img {
    width: 100%;
    height: auto;
  }
  /*****************/
  .clean_flex2 {
    flex-wrap: wrap;
    grid-row-gap: 40px;
  }
  .clean_flex2 > div {
    width: 100%;
    display: block;
  }
  .clean_right2 {
    width: 100%;
    order: 2;
    container-type: inline-size;
    padding-top: 20px;
  }
  .clean_left2 {
    width: 100%;
  }
  .clean_left2 img {
    width: 100%;
    height: auto;
  }
  /***********************/
  .main_under_bg {
    width: 40%;
  }
  .clean_bg_absolute7 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60%;
  }
  /************************************************************************

      歯科クリニック清掃

  ************************************************************************/
  .dental01_flex {
    display: block;
  }
  .dental01_right {
    width: 100%;
    max-width: 100%;
  }
  .dental01_right img {
    height: auto;
    min-height: auto;
  }
  .dental01_left {
    width: 100%;
    display: flex;
    margin-top: 30px;
    align-items: center;
  }
  /******************/
  .dental_grid {
    grid-template-columns: repeat(1, 1fr);
    column-gap: 0;
    row-gap: 40px;
  }
  .dental_title {
    padding: 15px 0 10px;
    margin-bottom: 20px;
    align-items: center;
  }
  .dental_title p {
    font-size: 50px;
    line-height: 1.3em;
    position: relative;
    top: -4px;
  }
  .dental_title h3 {
    font-size: 22px;
  }
  /*****************************/
  .denta03_flex {
    display: block;
    grid-row-gap: 0;
  }
  .denta03_flex > div {
    display: block;
    width: 100%;
  }
  .denta03_flex > div:nth-child(n+2) {
    margin-top: 40px;
  }
  .dental03_right {
    display: flex;
    justify-content: space-between;
    width: 100%;
  }
  .dental03_right > div {
    width: 49.5%;
    max-width: 500px;
  }
  .dental03_right img {
    min-height: 200px;
  }
  .dental03_left {
    margin-top: 20px;
    width: 100%;
  }
  .dental03_title {
    padding: 12px 10px 15px;
    margin-bottom: 15px;
  }
  .dental03_title p {
    font-size: 40px;
    line-height: 1em;
  }
  .dental03_title h3 {
    font-size: 21px;
  }
  /****************************/
  .dental04_flow > div {
    display: block;
    border-radius: 20px;
    padding: 20px 15px 13px;
    position: relative;
  }
  .dental04_flow > div:nth-child(n+2) {
    margin-top: 60px;
  }
  .dental04_flow > div:last-child:after {
    display: none;
  }
  .dental04_flow > div:after {
    bottom: auto;
    top: calc(100% + 25px);
    left: 50%;
    transform: translateX(-50%);
  }
  .dental04_left {
    width: 100%;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #a7dffd;
  }
  .dental04_left h3 {
    position: relative;
    top: 2px;
  }
  .dental04_right {
    width: 100%;
  }
  .dental04_right p {
    letter-spacing: 0.02em;
  }
  /**************/
  .dental_bg_absolute1 {
    position: absolute;
    top: 766px;
    left: 0;
  }
  .dental_bg_absolute2 {
    position: absolute;
    top: 3340px;
    right: 0;
  }
  .dental_bg_absolute3 {
    position: absolute;
    top: 3660px;
    left: 0;
  }
  .dental_bg_absolute4 {
    position: absolute;
    bottom: 180px;
    right: 0;
  }
  .dental_bg_absolute5 {
    position: absolute;
    bottom: 0;
    left: 0;
  }
  /************************************************************************

      リース

  ************************************************************************/
  .lease_cell1 {
    width: 75px;
  }
  .lease_cell1 .eng {
    font-size: 31px;
    padding-bottom: 8px;
  }
  .lease_cell1 .num {
    font-size: 60px;
    margin-top: 10px;
  }
  .lease_cell2 {
    flex-grow: 2;
  }
  .lease_cell2 h2 {
    margin-top: 10px;
  }
  .eng_100 {
    font-size: clamp(50px, 8.5vw, 100px);
  }
  /*****************************/
  .lease_grid {
    row-gap: 20px;
  }
  .lease_grid > div {
    padding: 30px 30px;
  }
  .lease01_border {
    display: block;
    padding: 30px;
  }
  .lease01_left {
    width: 100%;
  }
  .lease01_right {
    width: 100%;
    margin-top: 30px;
  }
  /*****/
  .border_title2 {
    padding: 25px 0;
  }
  .lease01_grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 0;
    row-gap: 40px;
  }
  .lease01_grid h3 {
    margin: 15px 0 12px;
  }
  /**追加***/
  .lease01_new_flex {
    grid-row-gap: 40px;
  }
  .lease01_new_flex > div {
    width: 100%;
  }
  .lease01_new_flex > div.column2 {
    width: 100%;
  }
  .lease01_new_flex h3 {
    margin: 15px 0 12px;
  }
  .max_w1530 {
    max-width: 1530px;
  }
  .lease01_print_flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
  }
  .lease01_print_flex > div {
    width: 100%;
    max-width: 100%;
  }
  /**********************************/
  .lease02_bg {
    padding: 30px;
  }
  .lease02_grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
    padding-top: 20px;
  }
  .lease02_grid .img100 {
    text-align: center;
  }
  .lease02_grid .img100 img {
    width: 100%;
    max-width: 200px;
    height: auto;
  }
  .lease02_grid p {
    padding-right: 0;
  }
  .lease01_grid .lease04_bg_column {
    grid-column: span 1;
    padding: 30px 30px;
  }
  .b_none740 {
    display: none !important;
  }
  .lease02_right {
    width: 100%;
  }
  /****/
  .lease01_type p {
    font-size: 14px;
  }
  .lease01_type_new {
    grid-template-columns: repeat(4, 1fr);
  }
  .lease01_type_new p {
    font-size: 14px;
  }
  /************************************************************************

      会社概要

  ************************************************************************/
  .com01_cell1 {
    width: 120px;
  }
  .com01_cell2 {
    width: calc(100% - 120px);
  }
  /*********************/
  .com01_map iframe {
    width: 100%;
    height: 300px;
  }
  /**************/
  .com01_table.com_sp_block > div {
    display: block;
  }
  .com02_cell1 {
    width: 100%;
    font-size: 18px;
  }
  .com02_cell2 {
    width: 100%;
    margin-top: 10px;
  }
  .dot_list li:before {
    width: 10px;
    height: 10px;
    top: 10px;
  }
  .com02_flex {
    display: block;
  }
  /********************************/
  .com03_table > div {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .com03_table > div:nth-child(n+2) {
    margin-top: 20px;
  }
  .com03_cell1 {
    width: 130px;
    font-size: 24px;
  }
  .com03_cell1:after {
    content: "";
    border-bottom: 1px solid #002d6a;
    flex-grow: 2;
    margin-left: 15px;
  }
  .com03_cell2 {
    width: calc(100% - 150px);
    position: relative;
    top: -2px;
  }
  /***************/
  .company_bg_absolute1 {
    position: absolute;
    left: 0;
    top: 1270px;
    width: 40%;
  }
  .company_bg_absolute2 {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 60%;
  }
  .company_bg_absolute3 {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 30%;
  }
  /************************************************************************

      お問い合わせ

  ************************************************************************/
  .contact_form {
    border-top: 1px solid #002d6a;
  }
  .contact_form > div {
    display: block;
    padding: 20px 10px;
    border-bottom: 1px solid #002d6a;
  }
  .contact_form > div.bb0 {
    border-bottom: 0;
    padding-bottom: 0px;
  }
  .contact_cell1 {
    width: 100%;
    font-size: 20px;
    font-weight: 600;
  }
  .contact_cell1:not(.pt0) {
    padding-top: 0;
  }
  .req {
    background-color: #07c15a;
    color: #FFF;
    font-size: 14px;
    border-radius: 50px;
    margin-left: 20px;
    padding: 0 10px;
  }
  .contact_cell2 {
    width: 100%;
    padding-top: 15px;
  }
  .area {
    height: 250px;
  }
  .radio_flex {
    padding: 0 0 0;
  }
  .radio_flex .wpcf7-list-item {
    display: block;
    width: 100%;
  }
  /*********************/
  .contact_bg_absolute1 {
    width: 40%;
  }
}
/* スマートフォン 縦(ポートレート) */