@charset "utf-8";

/*
16px基準文字サイズ
8px	  0.5rem
10px	0.625rem
11px	0.6875rem
12px	0.750rem
13px	0.8125rem
14px  0.875rem
15px	0.9375rem
16px	1rem
18px	1.125rem
20px	1.25rem
21px  1.3125rem
22px	1.375rem
24px	1.5rem
28px  1.75rem
30px  
32px	2rem
36px	2.25rem 
38px	2.375rem 
39px	 2.4375rem
40px	 2.5rem
*/
/*
Layout（ページを構成する要素に対して使用するクラス）・・・「l-」
Component（複数のページで再利用できる要素に対して使用するクラス）・・・「c-」
Project（ページ単位で使用するクラス）・・・「p-」
Utility（強制的にスタイルを当てたりする調整用のクラス）・・・「u-」
*/

/* ================================================
   RESET
================================================ */
html, body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea,
p, blockquote, th, td {
margin: 0;
padding: 0;
}
h1, h2, h3, h4, h5, h6 {
font-size: 100%;
font-weight: normal;
}
address, caption, cite, code, dfn, th, var {
font-style: normal;
font-weight: normal;
}
caption, th {
text-align: left;
}
ol, ul {
list-style: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
img, abbr, acronym, fieldset {
border: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
}
img {
max-width: 100%;
height: auto;
vertical-align: top;
}
a {
display: block; 
text-decoration: none;
color: inherit;
outline: none;
}

/* ================================================
   BASIC
================================================ */
html {
	scroll-behavior: smooth;
}

@media (max-width: 1400px) {
  html {
    font-size: 1.3333333333vw;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 0.9375rem;
  }
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
/*html {
font-size:62.5%;
}
*/
body {
font-size:1rem;
line-height: 1.6;
font-family: "Outfit","Noto Sans JP", sans-serif;
color: #000;
background-color: #f3ece1;
padding: 0px;
margin: 0px;
-webkit-text-size-adjust:100%;
letter-spacing:0.05em;
overflow:hidden;
overflow-y:scroll;
overflow-x:hidden;
-webkit-backface-visibility: hidden;
-webkit-font-smoothing: antialiased;
}

a {
color:#000;
-webkit-transition: all .4s;
transition: all .4s;
text-decoration:none;
}
a:hover {
opacity: 0.7;
-webkit-transition: all .4s;
transition: all .4s;
text-decoration:none;

}
@media screen and (min-width: 768px) {
   a[href^="tel:"] {
       pointer-events: none;
   }
}

/* WRAPPER
------------------------------------------------ */
.l-wrapper {
   position: relative;
}
.l-wrapper img {
max-width:100%;
height:auto;
}
.l-wrapper_bg {
   transition: all .3s;
    content: '';
   position: fixed;
   background: url(images/mv_earth_bg.png) no-repeat center center;  
    background-size: 50%;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;

    display: none;
    filter: blur(0.5rem);

}
@media screen and (max-width: 768px) {
   .l-wrapper_bg {
   background-size: 85%;
   }
}


/* HEADER
------------------------------------------------ */
.header {
position: fixed;
top: 25px;
left: 27px;
width: calc(100% - 54px);
z-index: 110;
}
@media screen and (max-width: 768px) {
   .header {
   top: 0;
   left: 0;
   width: 100%;
   }
}
.l-header_innr {
position: relative;
margin: 0 auto;
display: flex;
justify-content: end;
align-items: center;
height: 70px;
}
@media screen and (max-width: 768px) {
   .l-header_innr {
   justify-content: start;
   }
}
.l-logo {
width: 14rem;
height: fit-content;
min-width: 140px;
position: absolute;
left: 0;
top: 0;
bottom: 0;
margin: auto;
z-index: 10;
}

.l-header_main {
   display: flex;
   justify-content:flex-start;
}
@media screen and (max-width: 768px) {
   .l-header_main {
   display: none;
   }
}

.l-header_main a {
   position: relative;
}

.l-header_link_insta {
width: 3rem;
min-width: 34px;
}
.l-header_nav {
   display: flex;
   justify-content: flex-end;
   align-items: center;
}
.l-header_nav a {
padding: 0.5rem 1rem;
}

.l-gnav {
display: flex;
align-items: baseline;
justify-content:space-around;
}
.l-gnav_item:first-child {
   margin-left: 0;
}

.l-header_nav_item {
font-size: 1.125rem;
font-weight: bold;
line-height: 1.25vw;
margin: 0 0.5rem;
padding: 0.7291666667vw 0.2083333333vw;
}

@media screen and (max-width: 768px) {

   .l-logo {
      min-width: 120px;
      margin: 0 1rem;
      width: 6rem;
      position: relative;
      left: 0rem;
      top: 0.2rem;
  }
  .l-gnav_item a {
   padding: 0.8rem;
   line-height: 1.3;
  }
  .l-gnav {
   display: grid;
   grid-template-columns: 1fr 1fr 1fr;
   background: #ddc041;
  }
  .l-gnav li a {
   color: #fff;
  }
  .l-gnav li {
   width: auto;
   text-align: center;
  }
  .l-header_inr_nav_sub {
   display: none;
   margin: 0 auto;
  }
  #header {
   height: 70px;
   }
   .l-header_inr {
   max-height: 70px;
   line-height: unset;
   justify-content: space-between;
   }
   .l-header_nav a {
    line-height: 70px;
    padding: 0 1rem;
    font-size: 0.937rem;
   }
   .l-header_link_insta {
    width: 2rem;
    min-width: 32px;
   }
   .l-header_contact a {
    line-height: 70px;
   }
   .l-header_contact {
    gap: 1rem;
    margin: 0 1rem;
   }
   .l-header_link_tel {
      display: none;
   }
}
@media screen and (max-width: 640px) {
   .l-gnav_item a {
      font-size: 3.2vw;
      line-height: 1.2;
      padding: 0.8rem 0;
   }
   .l-gnav_item span {
      display: block;
   }
   .l-header_nav a {
    padding: 0 0.6rem;
    font-size: 0.8rem;
   }

}

/* SPMENU
***************************************************/
.c-hamburger {
	display: none;
	position: relative;
    width: 40px;
	z-index: 30;
	padding: 0 0;
   background: none;
   border: none;
   position: absolute;
   right: 1rem;
   top: 1.5rem;
}
@media screen and (max-width: 768px) {
   .c-hamburger {
	display: block;
   }
}

.c-hamburger span {
	position: relative;
	display: block;
	height: 1px;
	width: 100%;
	background-color: #2667aa;
	transition: 0.2s ease-in-out;
}

.c-hamburger span:nth-child(1) {
  top: 0;
}

.c-hamburger span:nth-child(2) {
  margin: 10px 0;
}

.c-hamburger span:nth-child(3) {
  top: 0;
}

.c-hamburger-black span {
	background-color: #2667aa;
}

.c-hamburger.open span {
	box-shadow: none;
}

.c-hamburger.open span:nth-child(1),
.c-hamburger.open span:nth-child(3) {
	background-color: #2667aa;
}

.c-hamburger.open span:nth-child(1) {
  top: 13px;
  transform: rotate(45deg);
}

.c-hamburger.open span:nth-child(2) {
  background-color: transparent;
}

.c-hamburger.open span:nth-child(3) {
  top: -9px;
  transform: rotate(-45deg);
}

.p-drawer {
   display: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-bottom: 5%;
background-color: #f3ece1;
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  z-index: 20;
  overflow-y: scroll;
}
@media screen and (max-width: 768px) {
   .p-drawer {
      display: block;
   }

}
.p-drawer_wrap {
   /*height: 100%;*/
}

.p-drawer__menu {
  display: block;
  margin-top: 25%;
  padding: 40px;
}
@media screen and (max-width: 768px) {
  .p-drawer__menu {
     margin-top: 20%;
  }
}

.p-drawer__container {
  margin-top: 5.3125rem;
}
@media screen and (max-width: 768px) {
  .p-drawer__container {

  }
}

.p-drawer__menu-item {
  display: flex;
  line-height: 1;
  color: #2667aa;
}

.p-drawer__menu-item:not(:first-of-type) {
  margin-right: 2.8125rem;
}
@media screen and (max-width: 768px) {
  .p-drawer__menu-item:not(:first-of-type) {
    margin-right: 0;
  }
}

@media screen and (max-width: 768px) {
  .p-drawer__menu-item:nth-child(n+5) {
    margin-top: 3.125rem;
  }
}

.p-drawer__box-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-drawer__box-bottom {
    margin-top: 1.25rem;
    flex-direction: column;
  }
}

.p-drawer__sns-icons {
  display: flex;
  margin-top: 2.8125rem;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .p-drawer__sns-icons {
    margin-top: 0;
  }
}

.p-drawer__sns-icons a {
  margin-right: 1.25rem;
  width: 1.4375rem;
  height: 1.4375rem;
}

.p-drawer__privacy-policy {
  position: relative;
  font-family: "Zen Old Mincho", "Noto Serif JP", serif;
  font-size: 0.8125rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .p-drawer__privacy-policy {
    margin-top: 1.5625rem;
  }
}

.p-drawer__privacy-policy-line {
  position: absolute;
  bottom: -0.9375rem;
  left: 0;
  display: block;
  width: 0%;
  height: 0.125rem;
  background-color: #fff;
  opacity: 0.6;
  transition: width 0.2s;
}
.p-drawer__privacy-policy:hover .p-drawer__privacy-policy-line {
  width: 100%;
}
.js-drawer.open {
  visibility: visible;
  opacity: 1;
}
/* ドロワーオープン時 スクロールさせない*/
body.is-fixed {
	height: 100%;
	overflow: hidden !important;
}
.p-drawer__menu-item {
   padding: 1.5rem 0;
   border-bottom: 1px solid #ccc;
   display: block;
   font-size: 1.125rem;
}


/* VISUAL
------------------------------------------------ */
.p-hero {
   background-size: cover;
   height: auto;
    position: relative;
    z-index: 0;
}
.p-hero::before {
   content: "";
   position: absolute;
   width: 50%;
   height: 50%;
   background: url(images/mv_deco1.png) no-repeat left center;
   background-size: cover;
       bottom: 0;
    left: 0;
}
.p-hero::after {
   content: "";
   position: absolute;
   width: 50%;
   height: 50%;
   background: url(images/mv_deco2.png) no-repeat right center;
   background-size: cover;
       top: 0;
    right: 0;
}
@media screen and (max-width: 1023px) {
   .p-hero {
    display: flex;
    align-items: center;
    justify-content: center;
   }
}
/*.p-hero:before {
    content: '';
   position: relative;
   background: url(images/mv_earth_bg.png) no-repeat center center;  
    background-size: 50%;
   filter: blur(0.5rem);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}*/
.p-hero_innr {
   position: relative;
   display: grid;
   grid-template-columns: 44% 1fr;
   align-items: flex-end;
   padding-top: 2rem;
   max-width: 1600px;
   margin: 0 auto;
   align-items: center;
   height: 100vh;
   place-content: center;
}
@media screen and (max-width: 1023px) {
   .p-hero_innr {
      position: relative;
      display: grid;
      grid-template-columns: 1fr;
      align-items: center;
      padding-top: 0;
      margin: 0 auto;
      place-content: center;
      height: auto;
   }
}
@media screen and (max-width: 900px) {
   .p-hero_innr {
      
   }
}
@media screen and (max-width: 768px) {
   .p-hero_innr {
   place-items: unset;
   margin: 0;
   }
}
@media screen and (max-width: 640px) {
   .p-hero_innr {
   height: 100dvh;
   }
}
.p-hero_main {
   line-height: 1.2;
   width:auto;
   height: fit-content;
   padding-left:3rem ;
}
@media screen and (max-width: 1023px) {
   .p-hero_main {
      margin: 9rem 0 4rem 1rem;
      padding-left: 3rem;
   }
}
@media screen and (max-width: 768px) {
   .p-hero_main {
      margin: 5rem 0 1rem 1rem;
      padding-left: 0;
   }
}
.p-hero_txt_en {
   font-size: 2rem;
   font-weight: 600;
   color: #2667aa;
   margin-top: 1rem;
}
@media screen and (max-width: 768px) {
   .p-hero_txt_en {
   font-size: 5vw;
   }
}
@media screen and (max-width: 640px) {

}
.p-hero_txt {
font-size: 5rem;
font-weight: 500;
}

@media (max-width: 1400px) {
   .p-hero_txt {
   font-size: 4.5rem;
   }
}
@media (max-width: 768px) {
   .p-hero_txt {
   font-size: 11vw;
   }
}

.p-hero_pic {
   position: relative;
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   align-items: center;
   max-width: 1920px;
   margin: 0 auto;
}
.p-hero_pic_area {
   display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3%;
    padding-bottom: 6rem;
    padding-right: 3rem;
}
@media screen and (max-width: 1023px) {
   .p-hero_pic_area {
       gap: 3%;
       padding: 0 4rem;
   }
}
@media screen and (max-width: 768px) {
   .p-hero_pic_area {
       gap: 3%;
       padding: 0 1rem;
   }
}
.p-hero_pic_area_img{
    opacity: 1;
    transform: translate(0, 0);
    filter: blur(0);
}
.p-hero_pic_area_img img {
    border-radius: 10px 10px;
}
.p-hero_pic_area_img:nth-child(1) {
   margin-top: 5rem;
}
.p-hero_pic_area_img:nth-child(3) {
   margin-top: 7rem;
}


@media screen and (max-width: 768px) {

   .p-hero_txt {
   padding: 4rem 0 0;
  }
  .p-hero_txt h2 {
   font-size: 1.75rem;
  }
  .p-mv {
   height: 75vw;
   }
}
@media screen and (max-width: 640px) {
   .p-mv_pic {
   width: 7rem;
   }
   .p-mv_txt {
      font-size: 4vw;
  }
  .p-hero_txt h2 {
   font-size: 1.5rem;
   }
   .p-hero_txt p {
      font-size: 1rem;
      margin: 0.8rem auto;
   }
}


/* CONTENTS
------------------------------------------------ */
.l-contents {
margin: 0 auto;
max-width: 1400px;
}


/* FOOTER
------------------------------------------------ */
.l-footer {
margin-top: 8rem;
background: #2667aa;
}
.l-footer_inr {
position: relative;
margin: 0 auto;
padding: 8rem 1rem;
max-width: 1300px;
width: calc(100% - 50px);
color: #fff;
display: flex;
justify-content: space-between;
align-items: baseline;
flex-direction: row-reverse;
gap: 3rem;
}
@media (max-width: 768px) {
   .l-footer_inr {
   position: relative;
   margin: 0 auto;
   padding: 8rem 1rem;
   max-width: 1300px;
   width: calc(100% - 50px);
   color: #fff;
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   gap: 3rem;
   }

}
.l-footer_logo {
   width: 20rem;
}
.l-footer_logo_sub {
   max-width: 300px;
   width: 90%;
   margin:0 0 1rem 0;
}
.l-footer_add {
font-size: 1rem;
margin-top: 2rem;
}
.l-footer_tel {
   font-size: 1rem;
}
.l-footer_privacy {
   font-size: 1rem;
   margin-top: 5rem;
}
.l-footer_copy {
   font-size: 1rem;
   margin-top: 8rem;
}
@media (max-width: 768px) {
   .l-footer_company {
      margin-top: 2rem;
   }
}
.l-footer_menu {

}
.l-footer_menu_list {
   display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 3rem 2rem;
}
.l-footer_menu_list_item {
width: 8rem;
}
@media (max-width: 768px) {
   .l-footer_menu_list_item {
   width: auto;
   }
}
.l-footer_menu_list_item a {
   color: #fff;
   font-size: 1.125rem;
   font-weight: bold;
}

.c-footer_ec {
    margin-top: 7rem;
    max-width: 20rem;
    background: #fff;
    color: #000;
    border-radius: 10px 10px;
    margin-left: auto;
    position: relative;
    overflow: hidden;
}
@media (max-width: 768px) {
   .c-footer_ec {
      margin: 6rem auto;
   }
}
.sp_ec {
 margin: 1rem auto 0 !important;
 transform: scale(0.8);
}
.c-footer_ec a {
   display: block;
   position: relative;
   padding: 1.3rem 2rem 1.3rem 1.5rem;
}
.c-footer_ec_innr {
position: relative;
display: flex;
align-items: center;
}

.c-footer_ec_name_en {
   font-size: 2rem;
   line-height: 1.2;
}
.l-footer_ec_name_jp {
   font-size: 1rem;
}
.c-footer_ec_icn {
     background: #e0ebf6;
    padding: 0.8rem;
    border-radius: 50% 50%;
    left: 1rem;
    width: 1.2rem;
    height: 1.2rem;
    display: flex;
    align-items: center;
    margin-right: 1rem;
    justify-content: center;
}
.c-footer_ec_link_icn {
   position: absolute;
    right: -0.5rem;
    bottom: -0.5rem;
   width: 3rem;
   height: 3rem;
    background: #e0ebf6;
    border-radius: 50% 50%;
        display: flex;
    align-items: center;
    justify-content: center;
}
.c-footer_ec_link_icn img {
width: 1rem;
}



@media (max-width: 768px) {
  .l-footer_logo {
   margin: 0 auto 2rem;
   }
   .l-footer_inr {
      display: block;
      text-align: center;
   }
   .l-copy {
   font-size: 1rem;
   margin-top: 3rem;
   text-align: center;
   }
}


/* PAGETOP */

/* ================================================
   コンテンツページ
================================================ */

.p-top__sec {
   margin-top: -3rem;
   padding-top: 13rem;
}
@media screen and (max-width: 768px) {
   .p-top__sec {
      margin-top: -6rem;
      height: auto;
   }
}
@media screen and (max-width: 640px) {
   .p-top__sec {
      margin-top: -9rem;
   }
}
.p-top__sec .l-innr {
    max-width: 1300px;
    padding-right: 25px;
    padding-left: 25px;
    margin-right: auto;
    margin-left: auto;
}

.main-content-wrapper {
    height: auto !important;
    min-height: auto !important;
    overflow: visible !important;
}

/* TOP
------------------------------------------------ */
.p-top__sec_head {
   display: grid;
    align-items: center;
    justify-content: space-between;
    grid-template-columns: 30rem 1fr;
}
@media (max-width: 768px) {
   .p-top__sec_head {
       grid-template-columns: 1fr;
   }

}
@media (max-width: 768px) {
   .p-top__secttl_head {
      margin-bottom: 2rem;
   }

}
.p-top__secttl_head_sub {
   width: 20rem;
}
@media (max-width: 768px) {
   .p-top__secttl_head_sub {
      width: auto;
   }
}

.p-top__secttl_lead {
   font-size: 1.215rem;
   font-weight: bold;
}
@media (max-width: 768px) {
   .p-top__secttl_lead {
      font-size: 1.125rem;
   }
}

.p-top__secttl_en {
   font-size: 5rem;
   font-weight: bold;
   color: #2667aa;
   line-height: 1;
}
@media (max-width: 768px) {
   .p-top__secttl_en {
   font-size: 3.5rem;
   }
}
.p-top__secttl_jp {
   font-size: 1.35rem;
   font-weight: bold;
   color: #000;
   margin-bottom: 0.5rem;
}

.p-top__secttl_sub {
   font-size: 2.5rem;
   font-weight: bold;
   margin-bottom: 2rem;
   line-height: 1.5;
}
@media (max-width: 768px) {
   .p-top__secttl_sub {
   font-size: 1.5rem;
   }
   .p-top__secttl_sub br {
      display: none;
   }
}
.p-top__secttl_sub .__ttl_bk {
   color: #000;
}
.p-top__secttl_en.__ttl_wh {
   color: #fff !important;
}
.p-top__secttl_jp.__ttl_wh {
   color: #fff !important;
}



.p-top-section {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.p-top-section_inr {
   max-width: calc(1000px - 30px);
   margin: 0 auto;
}
.p-top-section_ttl {
font-size: 2rem;
margin-bottom: 2rem;
color: #5e759e;
font-weight: 600;
}
.p-top-section_ttl_lead {
   font-size: 1.125rem;
   margin-bottom: 3rem;
}
.p-top-section_head {
   position: relative;
   padding: 17rem 3rem;
   margin: 8rem auto 3rem;
}
.p-top-section_ttl_pic {
   display: block;
   line-height: 1;
   width: 12rem;
   margin: 0 auto;
}
.p-top-section_txt {
    margin: 0 0 4rem;
}
.p-top-section_txt_item {
       line-height: 2;
}



.p-top-section__price_table {
   width: 100%;
}
.p-top-section__price_table tr {
   border-bottom: 1px solid #e0e4eb;
    display: flex;
    justify-content: space-between;
}
.p-top-section__price_table tr th {
padding: 0.8rem 0;
font-weight: bold;
}
.p-top-section__price_table tr td {
padding: 0.8rem 0;
}


@media screen and (max-width: 768px) {
   .p-top-section_ttl {
   font-size: 1.75rem;
   }
   .p-top-section_head {
   padding: 14rem 3rem;
   }
   .p-top-section_txt {
    text-align: left;
    margin: 0 0 4rem;
   }
   .p-top-section_txt_item br {
      display: none;
   }
}
@media (max-width: 660px) {

   .p-top-section__price_block {
   display: block;
   }
   .p-top-section__price_pic {
   width: auto;
   margin-bottom: 2rem;
   }
   .p-top-section__price_main {
   width: auto;
   }
   .p-top-section__price {
    padding: 2rem 1.5rem;
    margin-bottom: 2rem;
   }

   .p-top-head_main_ttl {
         left: 0 !important;
         right: 0 !important;
   }
   .p-top-head_main_ttl_sub {
         left: 0 !important;
         right: 0 !important;
   }

}
@media screen and (max-width: 640px) {
   .p-top-section_head {
      padding: 8rem 2rem;
      margin: 6rem auto 3rem;
   }
   .p-top-head_main_ttl {
      width: 9rem;
      left: 0 !important;
      right: 0 !important;
   }
   .p-top-section_ttl {
      font-size: 1.25rem;
      }
      .p-top-head_main_ttl_sub {
      width: 9rem;
      left: 0 !important;
      right: 0 !important;
      }
}


/*ABOUT*/
.p-top_about {
}
.p-top_about_wrap {
   display: grid;
   gap: 5rem;
   grid-template-columns: 1fr 1fr;
   margin-top: 3rem;
}

@media (max-width: 768px) {
   .p-top_about_wrap {
      gap: 2rem;
      grid-template-columns: 1fr ;
   }

}

.p-top_about_txt {
   line-height: 2;
   font-size: 1.125rem;
   margin-top: 1.5rem;
}
.p-top_about_pic img {
   border-radius: 10px 10px;
}
.p-contents__inr {
 max-width: 1200px;  
 margin: 0 auto;
}
.p-contents__inr_wide {
 max-width: 100%;  
}
@media screen and (max-width: 768px) {
   .p-top_about_txt {
   font-size: 0.9rem;
   }
}

/*Service*/
.circle  {
   width: 70%;
   height: 65%;
   border-radius:50%;
   border:1px solid #2667aa;
   position:absolute;
   top:-5rem;
   bottom: 0;
   left: 0;
   right: 0;
   margin: auto;
   z-index: -1;
}
@media (max-width: 768px) {
   .circle  {
      display: none;
   }
}

.p-top_service__list {
   margin-top: 4rem;
   position: relative;
}
.p-top_service__list_wrap {
position: relative;
display: flex;
gap: 5rem;
}
@media screen and (max-width: 768px) {
   .p-top_service__list_wrap {
   gap: 2rem;
   flex-wrap: wrap;
   }
}
.__list_one {
justify-content:center;
}
.__list_two {
justify-content: space-between;
}
@media (max-width: 768px) {
   .__list_two {
   margin: 2rem auto;
       justify-content: center;
   }
}
.__list_three {
justify-content: center;
margin-top: -3rem;
}
@media (max-width: 768px) {
   .__list_three {
   margin-top: 0;
       justify-content: center;
   }
   
}
.p-top_service__list:after {
   content: "";
   position:absolute;
   top:0;
   bottom: 0;
   left: 0;
   right: 0;
   margin: auto;
   width: 20rem;
   background: url(images/top_service_bg.png) no-repeat center center;
   background-size:contain ;
   z-index: -1;
}
@media (max-width: 768px) {
   .p-top_service__list:after {
      display: none;
   }
}
@media (max-width: 768px) {
   .p-top_service__list:after {
     width: 12rem;    
   }
}
.p-top_service__list_item {
   width: 18rem;
}
.p-top_service__list_item_pic {
   text-align: center;
      width: 12rem;
      margin: 0 auto;
}
@media (max-width: 768px) {
   .p-top_service__list_item_pic {
   width: 12rem;
   }
}
.p-top_service__list_item_pic img {
   border-radius: 50% 50%;
}
.p-top_service__list_item_ttl {
   font-size: 1.125rem;
   font-weight: bold;
   margin-top: 1rem;
   text-align: center;
}
.p-top_service__list_item_txt {
   font-size: 1rem;
   text-align: center;
}

@media (max-width: 768px) {
   .p-top_service__list_item_txt {
   text-align: left;
   }
   .p-top_service__list_item_txt br {
   display: none;
   }

}

/*Industry*/
.p-top_industry .p-top__secttl {
color: #fff !important;   
}
.p-top_industry.l-innr {
   max-width: 1200px;
   padding-right: 6rem;
   padding-left: 6rem;
   padding-top: 8rem;
   padding-bottom: 8rem;
}
@media (max-width: 1023px) {
   .p-top_industry.l-innr {
      padding-right: 3rem;
      padding-left: 3rem;
   }

}
@media (max-width: 768px) {
   .p-top_industry.l-innr {
      padding-right: 2rem;
      padding-left: 2rem;
   }

}

.p-top_industry {
   background: #2667aa;
   border-radius: 20px 20px;
}
.p-top_industry_lead {
   color: #fff !important; 
   font-size: 1.215rem;
   font-weight: bold;
}
.p-top_industry__list_items {
   display: grid;
   gap: 2rem 0;
   grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
   justify-items: center;
   align-items: center;
}
@media (max-width: 768px) {
   .p-top_industry__list_items {
      grid-template-columns: 1fr 1fr 1fr;
   }
}
@media (max-width: 640px) {
   .p-top_industry__list_items {
      grid-template-columns: 1fr 1fr;
   }
}
.p-top_industry__list {
   margin-top: 4rem;
}
.p-top_industry__list_item {
   background: #fff;
   border-radius: 50% 50%;
   height: fit-content;
   width: 12rem;
    height: 12rem;
    align-items: center;
    justify-content: center;
    display: flex;
}
@media (max-width: 768px) {
   .p-top_industry__list_item {
      width: 9rem;
       height: 9rem;
   }
}
.p-top_industry__list_pic {
text-align: center;
margin: 0 auto;
}
.p-top_industry__list_pic img {
width: 4rem;
}
@media (max-width: 768px) {
   .p-top_industry__list_pic img {
   width: 3rem;
   }
}
.p-top_industry__list_item_wrap {
}
.p-top_industry__list_name {
   text-align: center;
   margin-top: 1rem;
   font-size: 1.125rem;
}

/*Strength*/
.p-top__sec.__strength {
margin-top: 4rem;
}
.p-top_strength .p-top__secttl {
color: #fff !important;   
}
.p-top_strength.l-innr {
   max-width: 1200px;
   padding-right: 6rem;
   padding-left: 6rem;
   padding-top: 8rem;
   padding-bottom: 8rem;
}
@media (max-width: 1023px) {

   .p-top_strength.l-innr {
      padding-right: 2rem;
      padding-left: 2rem;
   }

}
.p-top_strength_col {
   display: flex;
   gap: 3rem;
}
@media (max-width: 768px) {
   .p-top_strength_col {
   display: block;
   }

}

.p-top_strength_col .p-top__secttl_head {
   width: 55rem;
}
@media screen and (max-width: 768px) {
   .p-top_strength_col .p-top__secttl_head {
      width: auto;
   }
}
.p-top_strength_lead {

}
.p-top_strength {
   background: #c27e15;
   border-radius: 20px 20px;
}
.p-top_strength_ttl_sub {
   margin: 2rem 0;
    font-size: 1.75rem;
    font-weight: bold;
    color: #fff;
}
@media (max-width: 768px) {
   .p-top_strength_ttl_sub {
       font-size: 1.5rem;
   }
   .p-top_strength_ttl_sub br {
      display: none;
   } 
}

.p-top_strength_txt {
   color: #fff ;   
   font-size: 1.125rem;
}
.p-top_strength_lead {

}
.p-top_strength__pic_list {
   display: flex;
   gap: 3rem;
}
@media (max-width: 768px) {
   .p-top_strength__pic_list {
   gap: 1rem;
   }
   .p-top_strength__pic_list_item {
      margin-top: 1rem;
   }

}
@media (max-width: 640px) {
   .p-top_strength__pic_list {
   display: block;
   }

}

.p-top_strength__pic {
   margin-top: 5rem;
}
.p-top_strength__pic_list_item img {
   border-radius: 20px 20px;
}

.p-top-Sticky {
  position: sticky;
  top:-60rem;
  z-index: 1;
}
@media (max-width: 768px) {

}
@media (max-width: 600px) {
   .p-top-Sticky {
    top: -50rem;
   }
}

/*Company*/
.p-top_company_table {
   border-top: 1px solid #ddd;
   width: 100%;
   font-size: 1rem !important;
}
.p-top_company_table tr {
   border-bottom: 1px solid #ddd;
   vertical-align: baseline;
}
.p-top_company_table tr th {
   padding: 1rem 0.5rem;
   font-weight: bold;
   width: 14rem;
}
.p-top_company_table tr td {
padding: 1rem 0.5rem;
}
.p-top_company_summary {
   margin-top: 5rem;
   display: grid;
   gap: 5rem;
   grid-template-columns: 1fr 1fr;
   align-items: center;
}
@media (max-width: 768px) {
   .p-top_company_summary {
      margin-top: 5rem;
      gap: 5rem;
      grid-template-columns: 1fr;
   }
   .p-top_company_table tr th {
      padding: 1rem 0.5rem 0;
      display: block;
      font-weight: bold;
      width: auto;
   }
   .p-top_company_table tr td {
   padding: 1rem 0.5rem;
   width: auto;
   display: block;
   }

}


.p-top_company_summary_txt {
   font-size: 1.125rem;
   line-height: 1.8;
}
@media (max-width: 768px) {
   .p-top_company_summary_txt {
      font-size: 1rem;
   }
}

/*Vision*/
.p-top_vision {
   margin-top: 5rem;
   border-radius: 20px 20px;
   background:url(images/top_vision_bg.jpg) no-repeat center center #2667aa;
   background-size: cover;
}
.p-top_vision_innr {
   padding: 8rem 5rem;
   display: flex;
   gap: 2rem;
}
@media (max-width: 768px) {
   .p-top_vision_innr {
      padding: 6rem 2rem;
      display: block;
   }
   .p-top_vision_main br {
      display: none;
   }

}
.p-top_vision_ttl_sub {
   font-size: 1.75rem;
   font-weight: bold;
   color: #fff;
}
@media (max-width: 768px) {
   .p-top_vision_ttl_sub {
      font-size: 1.35rem;
   }
}
.p-top_vision_list {
margin-top: 2rem;
   color: #fff;
}
.p-top_vision_list_item {
   font-size: 1.215rem;
   font-weight: bold;
   padding: 0.5rem 0;
}
@media (max-width: 768px) {
   .p-top_vision_list_item {
      font-size: 1rem;
   }
}
.p-top__secttl_jp.__vision_ttl {
   color: #fff;
   font-size: 1.125rem;
}
.p-top__secttl_en.__vision_ttl {
   color: #fff;
   font-size: 3rem;
}
@media (max-width: 768px) {
   .p-top__secttl_en.__vision_ttl {
   font-size: 2rem;
   }

}
.p-top_vision_main {
   margin-top: 3rem;
}

/*Respect*/
.p-top_respect_head {
display: flex;
    justify-content: start;
    gap: 5rem;
}
@media (max-width: 768px) {
   .p-top_respect_head {
      display: block;
       gap: 5rem;
   }

}
.p-top_respect_head_lead {
   font-size: 1.215rem;
   font-weight: bold;
}
.p-top_respect_list_wrap {

}
.p-top_respect_list {
margin-top: 4rem;
display: grid;
gap: 2rem;
grid-template-columns: 1fr 1fr 1fr 1fr;
}
@media (max-width: 768px) {
   .p-top_respect_list {
     grid-template-columns: 1fr 1fr;
   }
}
@media (max-width: 640px) {
   .p-top_respect_list {
      grid-template-columns: 1fr;
   }
}
.p-top_respect_list_item_ttl {
   font-size: 1.125rem;
   font-weight: bold;
   margin: 1rem 0;
   text-align: center;
}
.p-top_respect_list_item_txt {
   font-size: 1rem;
}


/*Contact
-----------------------------------*/
.p-contact {
    margin-top:8rem;
    border-radius: 20px 20px;
    background: url(images/top_contact_bg.jpg) no-repeat center center #000;
    background-size: cover;
}
@media (max-width: 1400px) {
   .p-contact {
      margin-right: 1rem;
      margin-left: 1rem;
   }

}
@media (max-width: 768px) {
   .p-contact {
       margin: 0 1rem;
       margin-top:8rem;
   }
}
.p-contact_innr {
   padding: 8rem 6rem;
    display: grid;
    gap: 5rem;
    grid-template-columns: 1fr 1fr;
    align-items: center;
}
@media (max-width: 768px) {
   .p-contact_innr {
      padding: 6rem 2rem;
       gap: 5rem;
       grid-template-columns: 1fr ;

   }


}
.p-contact__en {
    font-size: 5rem;
    font-weight: bold;
    color: #fff;
}
@media (max-width: 768px) {
   .p-contact__en {
    font-size: 3rem;
   }
}
.p-contact__jp {
   font-size: 1.35rem;
    font-weight: bold;
     color: #fff;
}
.p-contact__txt {
   font-size: 1.5rem;
    font-weight: bold;
     color: #fff;
}
.p-contact_lead {
   font-size: 1rem;
   color: #fff;
   text-align: center;
   margin-top: 1rem;
}

.p-contact_btn {
    max-width: 30rem;
    text-align: center;
    margin: 0 auto;
}
.p-contact_tel a {
display: inline-block;
}
.p-contact_btn a {
   border-radius: 50px 50px;
   text-align: center;
   margin: 0 auto;
   display: block;
   padding: 1.5rem 1.5rem;
   color: #fff;
   background: #2667aa;
   position: relative;
}

 .p-contact_btn_css:hover {
   color: #fff;
   opacity: 0.8;
 }
.p-contact_btn_deco {
    background: #ccc;
    padding: 0.8rem;
    border-radius: 50% 50%;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 1rem;
    margin: auto;
    width: 1.2rem;
    height: 1.2rem;
    display: flex;
    align-items: center;
}
.p-contact_btn_deco img {
   width: 2rem;
}


/*map*/
.ggmap {
   position: relative;
   width: 100%;
   padding-top: 40%;
   height: 0;
}
.ggmap iframe {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
}
@media screen and (max-width: 768px) {
   .ggmap {
      padding-top: 67%;
   }
}




/* PAGE
------------------------------------------------ */
.l-page_head_ttl {
   font-size:5rem;
   line-height: 1.2;
   }
.l-page_head_ttl span {
   display: block;
   font-size: 1.125rem;
   color: #cbaf33;
   font-weight: 600;
}
.l-page_head {
   margin: 4rem 0;
   padding: 0 20px;
}

@media screen and (max-width: 768px) {
   .l-page_head_ttl {
      font-size:3rem;
   }
}


/* ARCHIVE
------------------------------------------------ */


/* SINGLE
------------------------------------------------ */



/* ADD
------------------------------------------------ */
.b {
font-weight:bold;
}
.center {
text-align:center;
}
.red {
color: #cc0000;
}
.txt-r {
text-align: right;
}
.bg-gray1{
padding:20px;
background:#efefef;
}
.aligncenter {
display: block;
margin: 0 auto;
}
.alignright {
float: right;
}
.alignleft {
float: left;
}

/* Button
------------------------------------------------ */
.c-btn__center {
text-align: center;
margin: 0 auto;
}
.c-btn_more_details {
display: block;
position: relative;
text-align: center;
margin: 0 auto;
padding: 1rem 2.5rem;

border-radius: 10px;
}

.c-btn_more {
   display: flex;
   justify-content: center;
}
.c-btn_main {
   display: flex;
   justify-content: center;
}
.c-btn {
    align-items: center;
    background: #5f759e;
  /*background-image: linear-gradient(90deg, rgba(35, 100, 251, 1), rgba(14, 176, 255, 1));*/
    color: #fff;
    text-align: center;
    border-radius: 10px;
    border: none;
    box-sizing: border-box;
    display: flex;
    height: 65px;
    justify-content: center;
    max-width: max-content;
    min-width: 250px;
    padding: 0 15px 0 30px;
    position: relative;
    z-index: 0;
}
.c-btn_sub {
   border: 1px solid #ccc;
    align-items: center;
    text-align: center;
    border-radius: 10px;
    box-sizing: border-box;
    display: flex;
    height: 65px;
    justify-content: center;
    max-width: max-content;
    min-width: 250px;
    padding: 0 15px 0 30px;
    position: relative;
    z-index: 0;
}

/* 初期状態: 非表示で下に少し移動 */
.fadeup {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}

/* 表示状態: フェードアップ完了 */
.fadeup.is-visible {
	opacity: 1;
	transform: translateY(0);
}
