@charset "utf-8";
/* --------------------------------------------


トップページ


---------------------------------------------- */

* {
 /* background-color: rgba(255, 0, 0, 0.05); */
 /* border: 0.1px solid rgba(255, 0, 0, 0.5); */
}

.tree {
 position: absolute;
 width: 250px;
}


@media only screen and (max-width:640px) {
 .tree {
  width: 220px;
 }
}


.contactBtn {}

.contactBtn div {
 border-radius: 6px;
}

.contactBtn_line {
 background-color: #14c543;
}
.contactBtn_tel {
 background-color: #eb7037;
}

.contactBtn_mail {
 background-color: #378e55;
}

.contactBtn div a {
 display: block;
 height: 100%;
 text-align: center;
 color: #fff;
 overflow: hidden;
}

.contactBtn div a::before {
 content: "";
 display: inline-block;
 width: 1.6em;
 height: 1.6em;
 vertical-align: middle;
 margin: -4px 6px 0 0px;
 background-position: center;
 background-repeat: no-repeat;
}

.contactBtn_line a::before {
 background-image: url(../_image/icon-line.svg);
}

.contactBtn_tel a::before {
 background-image: url(../_image/icon-tel.svg);
}

.contactBtn_mail a::before {
 background-image: url(../_image/icon-mail.svg);
}


@media only screen and (max-width:640px) {}



/* --------------------------------------------

#header

---------------------------------------------- */
#header.flex {
 align-items: center;
 justify-content: space-between;
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 min-width: 960px;
 height: 100px;
 padding: 0 32px 0 26px;
 background-color: rgba(251, 243, 232, 0.7);
 background-color: rgba(244, 234, 221, 0.7);
 border-bottom: 1px solid rgba(128, 128, 128, 0.4);
 backdrop-filter: blur(10px);
 z-index: 997;
}

.header_logo {
 width: 200px;
}


.header_nav {
 margin: auto 24px auto auto;
}

.header_menu.flex {}

.header_menu.flex li {
 margin: 0 8px;
}

.header_menu.flex li a {
 display: block;
 padding: 12px;
}


@media only screen and (max-width:1356px) {
 .header_nav {
  display: none;
 }
}


@media only screen and (max-width:640px) {
 #header.flex {
  min-width: inherit;
  padding: 0 12px;
 }

 .header_logo {
  width: 280px;
 }

}




.header_contact {
 width: 560px;
}

.header_contact div {}

.header_contact div a {
 padding: 20px 0;
}

.header_contact .contactBtn_line {
 width: 31%;
}

.header_contact .contactBtn_mail {
 width: 31%;
}

.header_contact .contactBtn_tel {
 width: 35%;
}

@media only screen and (max-width:640px) {
 .header_contact {
  border-top-color: 0;
  width: 250px;
 }
 
 .header_contact .contactBtn_line,
 .header_contact .contactBtn_tel,
 .header_contact .contactBtn_mail {
  width: 31%;
  height: 80px;
 }

 .header_contact div a {
  padding-top: 16px;
 }

 .header_contact.contactBtn div a::before {
  display: block;
  width: 2.0em;
  height: 2.0em;
  margin: 0 auto 100px;
 }

}


/* --------------------------------------------

mv

---------------------------------------------- */
.mv {
 position: relative;
 display: flex;
 flex-wrap: wrap;
}

.mv_inner {
 position: relative;
 width: 82%;
 min-width: 1024px;
 margin: 9.4vw auto 0;
}

.mv_text {
 width: 57.2%;
 margin: 3.4% 0 0 3.2%;
}

.mv_staff {
 width: 31.3%;
}

.mv::before {
 content: "";
 position: absolute;
 bottom: 0;
 left: 0;
 display: block;
 width: 66.5%;
 height: 80%;
 background-color: #fff;
 border-radius: 0 40px 0 0;
}

@media only screen and (max-width:640px) {
 .mv {}

 .mv_inner {
  width: 88%;
  min-width: inherit;
  margin: 24vw auto 0;
 }

 .mv_text {
  width: 100%;
  margin: 0%;
 }

 .mv_staff {
  width: 60%;
  margin: 16px auto -160px;
 }

 .mv::before {
  width: 80%;
  height: 87%;
 }
}




/* --------------------------------------------

例えばこんな手続き

---------------------------------------------- */
.serviceList {
 position: relative;
 width: 92%;
 max-width: 1480px;
 margin: 0 auto 113px;
 padding: 48px 5%;
 background-color: #e7f3ea;
 background-color: #d3ecd9;
 border-radius: 40px;
}

.serviceList figure {
 position: absolute;
 top: -54px;
 left: 70px;
 width: 200px;
}

.serviceList h2 {
 display: block;
 width: 11em;
 text-align: center;
 margin: auto;
 font-size: 2.4rem;
 line-height: 1.6;
 letter-spacing: 0.12em;
 border-bottom: 1px solid #000;
}

.serviceList ul {
 justify-content: center;
 margin: 30px 0 24px;
}

.serviceList li {
 margin: 1px;
 padding: 4px 22px 8px;
 font-size: 2.6rem;
 letter-spacing: 0.08em;
 color: #378e55;
 background-color: #fff;
 border: 1px solid green;
 border-radius: 40px;
}

.serviceList_contact {
 max-width: 980px;
 margin: auto;
}

.serviceList_contact div a {
 padding: 32px;
 font-size: 2.2rem;
 line-height: 1.6;
}


.serviceList_contact .contactBtn_line,
.serviceList_contact .contactBtn_mail {
 width: 31%;
}
.serviceList_contact .contactBtn_tel {
 width: 34%;
}


@media only screen and (max-width:1180px) {
 .serviceList li {
  font-size: 2.2rem;
 }
}

@media only screen and (max-width:640px) {
 .serviceList {
  width: 92%;
  margin: 0 auto 113px;
  padding: 64px 6%;
 } 

 .serviceList figure {
  top: -48px;
  left: 32px;
  width: 140px;
 }

 .serviceList h2 {}

 .serviceList ul {
  margin: 30px 0 24px;
 }

 .serviceList li {
  margin: 4px;
  font-size: 2.6rem;
 }

 .serviceList_contact {}

 .serviceList_contact div a {}
 
 .serviceList_contact .contactBtn_line,
 .serviceList_contact .contactBtn_tel,
 .serviceList_contact .contactBtn_mail {
  width: 100%;
  margin: 8px;
 }
}



/* --------------------------------------------

ABOUT

---------------------------------------------- */
.aboutWrap {
 position: relative;
}

.aboutWrap .tree {
 bottom: -140px;
 left: 15%;
}

.aboutWrap h2 {
 height: 640px;
 padding: 160px 0 0;
 letter-spacing: 0.12em;
 background-image: url(../_image/aboutImage.jpg);
 background-position: center;
 background-size: cover;
}

.aboutWrap h2 span {
 display: block;
 text-align: center;
 font-size: 1.6rem;
 color: #4fa763;
}

.aboutWrap h2 span::after {
 content: "";
 display: block;
 width: 32px;
 height: 1px;
 margin: 6px auto 16px;
 background-color: #4fa763;
}

.aboutWrap h2 p {
 text-align: center;
 font-size: 2.6rem;
 line-height: 1.4;
 color: #fff;
}

.about_text {
 width: 92%;
 max-width: 1180px;
 margin: -178px auto 0;
 padding: 92px 9.4% 64px;
 background-color: #fff;
 border-radius: 40px;
}

.about_text h3 {
 margin: 0 0 64px;
 text-align: center;
 font-size: 3rem;
 line-height: 2;
 letter-spacing: 0.12em;
 color: #8c8c8c;
}

.about_text p {
 margin: 24px 0;
}

.about_text p:last-child {
 text-align: right;
 margin: 48px 0% 0 0;
}

@media only screen and (max-width:640px) {
 .aboutWrap {}

 .aboutWrap .tree {
  bottom: -140px;
  left: 15%;
 }

 .aboutWrap h2 {
  height: 340px;
  padding: 48px 0 0;
 }

 .aboutWrap h2 span {}

 .aboutWrap h2 span::after {}

 .aboutWrap h2 p {}

 .about_text {
  margin: -64px auto 0;
  padding: 64px 6% 64px;
 }

 .about_text h3 {
  margin: 0 0 48px;
  font-size: 2.8rem;
  line-height: 1.8;
 }

 .about_text p {}

 .about_text p:last-child {
  margin: 16px 0% 0 0;
 }
}




/* --------------------------------------------

SERVICE

---------------------------------------------- */
.serviceWrap {
 position: relative;
 margin: 310px 0 0;
}

.serviceWrap>span {
 position: absolute;
 top: -120px;
 left: 2%;
 font-size: 14rem;
 letter-spacing: 0.18em;
 line-height: 1;
 color: #e7f3ea;
 color: #d3ecd9;
}

.service_item.flex {
 justify-content: center;
 align-content: center;
 align-items: center;
 padding: 92px 0;
 background-color: #e7f3ea;
 background-color: #d3ecd9;
}

.service_image {
 width: 43.4%;
 max-width: calc(84% - 440px);
 height: 410px;
 margin: 0 4%;
 border-radius: 20px;
 overflow: hidden;
}

.service_image img {
 height: 100%;
 object-fit: cover;
}

.service_text {
 width: 440px;
 margin: 0 4%;
}

.service_text span {
 display: block;
 margin: 0 0 16px;
 font-size: 2.6rem;
 letter-spacing: 0.1em;
 color: #4fa763;
}

.service_text span::after {
 content: "";
 display: inline-block;
 width: 42px;
 height: 42px;
 vertical-align: middle;
 margin: -6px 0 0 8px;
 background-image: url(../_image/bird1.svg);
}

.service_text span small {
 font-size: 1.4rem;
}

.service_text h3 {
 margin: 0 0 48px;
 font-size: 3.4rem;
}

.service_text p {}

.service_item.flex:nth-of-type(1) {
 align-items: flex-end;
 align-content: flex-end;
 padding: 0 0 112px;
}

.service_item.flex:nth-of-type(1) .service_image {
 margin-top: -48px;
}

.service_item.flex:nth-of-type(even) {
 justify-content: center;
 background-color: #f5faf6;
 background-color: #e7f3ea;
}

.service_item.flex:nth-of-type(even) .service_text {
 order: 2;
}

.service_item.flex:nth-of-type(even) .service_text span::after {
 background-image: url(../_image/bird2.svg);
}


@media only screen and (max-width:640px) {
 .serviceWrap {}

 .serviceWrap>span {
  top: -110px;
  left: -1%;
  font-size: 9.2rem;
  letter-spacing: 0.05em;
 }

 .service_item.flex {
  padding: 64px 0;
 }

 .service_image {
  width: 100%;
  max-width: inherit;
  height: 320px;
  margin: 0 8%;
  order: 1;
 }

 .service_text {
  width: 100%;
  margin: 0 8%;
  order: 2;
 }

 .service_text span {
  margin: 32px 0 8px 48px;
  text-align: center;
 }

 .service_text span::after {
  width: 48px;
  height: 48px;
  margin: -48px 0 0 8px;
 }

 .service_text span small {
  font-size: 1.4rem;
 }

 .service_text h3 {
  margin: 0 0 32px;
  font-size: 3.0rem;
  text-align: center;
 }

 .service_text p {}

 .service_item.flex:nth-of-type(1) {
  padding: 64px 0;
 }

 .service_item.flex:nth-of-type(1) .service_image {
  margin-top: auto;
 }

}



/* --------------------------------------------

MERIT

---------------------------------------------- */
.meritWrap {
 position: relative;
 padding: 128px 0 0;
}

.merit_inner {
 position: relative;
 width: 92%;
 max-width: 1180px;
 margin: auto;
 padding: 92px 4% 64px;
 background-color: #fff;
 border-radius: 40px;
}

.merit_inner .tree:nth-of-type(1) {
 top: 2%;
 left: -12%;
}

.merit_inner .tree:nth-of-type(2) {
 top: 36%;
 right: -12%;
}

.merit_inner .tree:nth-of-type(3) {
 top: 75%;
 left: -12%;
}

.merit_inner h2 {
 text-align: center;
 background-position: center;
 background-size: cover;
 letter-spacing: 0.12em;
}

.merit_inner h2 span {
 display: block;
 text-align: center;
 font-size: 1.6rem;
 color: #4fa763;
}

.merit_inner h2 span::after {
 content: "";
 display: block;
 width: 32px;
 height: 1px;
 margin: 6px auto 16px;
 background-color: #4fa763;
}

.merit_inner h2 p {
 text-align: center;
 font-size: 2.6rem;
 line-height: 1.4;
}

.merit_list {
 position: relative;
 margin: 48px auto 0;
}

.merit_item.flex {
 align-items: center;
 align-content: center;
 width: 100%;
 padding: 45px 32px;
}

.merit_item.flex:not(:first-child) {
 border-top: 1px dashed #8c8c8c;
}

.merit_icon {
 width: 180px;
}

.merit_text {
 width: calc(100% - 180px);
 padding-left: 32px;
}

.merit_text h3 {
 font-size: 2.4rem;
 line-height: 1.8;
 color: #8c8c8c;
}

.merit_text h3 span {
 display: inline-block;
 margin: -12px 24px 0 0;
 font-size: 3.8rem;
 vertical-align: middle;
}

.merit_text h3 strong {
 color: #4fa763;
}

.merit_text p {}



@media only screen and (max-width:640px) {
 .meritWrap {}

 .merit_inner {
  padding: 92px 6% 64px;
 }

 .merit_inner .tree:nth-of-type(1) {}

 .merit_inner .tree:nth-of-type(2) {}

 .merit_inner .tree:nth-of-type(3) {
  top: 84%;
  left: -12%;
 }

 .merit_inner h2 {}

 .merit_inner h2 span {}

 .merit_inner h2 span::after {}

 .merit_inner h2 p {}

 .merit_list {
  margin: 24px auto 0;
 }

 .merit_item.flex {
  width: 100%;
  padding: 45px 0px;
  margin: 0;
 }

 .merit_item.flex:not(:first-child) {}

 .merit_icon {
  width: 240px;
  margin: 0 auto 16px;
 }

 .merit_text {
  position: relative;
  width: calc(100% - 0px);
  padding-left: 0px;
 }

 .merit_text h3 {
  display: block;
  margin: 8px 0 16px;
  text-align: center;
  line-height: 1.6;
 }

 .merit_text h3 span {
  margin: -16px 4px 0 0;
  line-height: 1;
 }

 .merit_text h3 strong {}

 .merit_text p {}
}




/* --------------------------------------------

お知らせ

---------------------------------------------- */
#footer {
 position: relative;
 margin: 192px 0;
}

#footer .tree {
 bottom: -64px;
 right: 15%;
}

#footer>span {
 position: absolute;
 top: -90px;
 left: 0%;
 width: 100%;
 text-align: center;
 font-size: 11rem;
 letter-spacing: 0.18em;
 line-height: 1;
 color: #fff;
}

.footer_inner {
 align-items: center;
 align-content: center;
 width: 92%;
 max-width: 1180px;
 margin: auto;
 padding: 48px;
 background-color: #fff;
 border-radius: 40px;
}

.footer_map {
 width: 50%;
 height: 610px;
 border-radius: 20px;
 overflow: hidden;
}

.footer_map iframe {
 width: 100%;
 height: 100%;
}

.footer_text {
 width: 50%;
 padding: 0px 0 24px 48px;
}

.footer_text p {
 text-align: center;
 font-size: 2.2rem;
}

.footer_contact.contactBtn {
 width: 350px;
 margin: 32px auto;
}

.footer_contact.contactBtn div {
 height: 118px;
 margin: 16px 0;
}

.footer_contact.contactBtn div a {}

.footer_contact.contactBtn div a small {
 font-size: 1.4rem;
}


.footer_contact .contactBtn_line {
 padding: 42px 0 0;
 font-size: 2.0rem;
}

.footer_contact .contactBtn_mail {}

.footer_contact .contactBtn_mail a {
 padding: 32px 0 0;
 font-size: 2.0rem;
}
.footer_contact .contactBtn_tel {
 padding: 32px 0 0;
 font-size: 2.4rem;
}

.footer_contact .contactBtn_tel a {
 height: 35%;
}

.footer_contact .contactBtn_tel a:first-child:before {
 width: 2.6em;
 height: 1.6em;
 background-image: url(../_image/icon-tel2.svg);
 background-size: contain;
}

.footer_contact .contactBtn_tel a:last-child:before {
 display: none;
}

.footer_text address {
 text-align: center;
 line-height: 2;
}

.footer_copy {
 margin: 64px auto;
 text-align: center;
 font-size: 1.4rem;
}


@media only screen and (max-width:640px) {
 #footer {
  margin: 192px 0;
 }

 #footer .tree {
  right: -2%;
  bottom: 0%;
 }

 #footer>span {
  top: -100px;
  left: -1%;
  font-size: 8.3rem;
  letter-spacing: 0.05em;
 }

 .footer_inner {
  width: 92%;
  padding: 48px 6% 96px;
 }

 .footer_map {
  width: 100%;
  height: 440px;
 }

 .footer_map iframe {
  width: 70%;
  height: 70%;
  transform: scale(1.43);
  transform-origin: left top;
 }

 .footer_text {
  width: 100%;
  padding: 24px 0 24px 0px;
 }

 .footer_text p {}

 .footer_contact.contactBtn {
  width: 100%;
 }

 .footer_contact.contactBtn div {
  height: 140px;
 }

 .footer_contact.contactBtn div a {}

 .footer_contact.contactBtn div a small {}
 

 .footer_contact .contactBtn_line {
  padding: 48px 0 0;
 }
 .footer_contact .contactBtn_mail {}

 .footer_contact .contactBtn_tel {}

 .footer_contact .contactBtn_tel a {
  height: 40%;
 }

 .footer_contact .contactBtn_tel a:first-child:before {}

 .footer_contact .contactBtn_tel a:last-child:before {}





 .footer_text address {
  text-align: center;
  line-height: 2;
 }

 .footer_copy {
  margin: 64px auto;
  text-align: center;
  font-size: 1.4rem;
 }
}