@charset "utf-8";

@font-face {
  font-family: "Yu Gothic M";
  src: local("Yu Gothic Medium");
}
html {
  font-size: 10px;
  /*font-size: 0.5208333vw;*/
}
body {
  background: #F5F5F5;
  width: 100%;
  font-size: 1.6rem;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
  /* font-feature-settings: "palt"; */
  /* font-family: "游明朝", "Yu Mincho","Hiragino Mincho Pro", serif; */
  /* font-family: "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", sans-serif; */
  /*font-family: "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",sans-serif;*/
  font-family: "Zen Kaku Gothic New", sans-serif;
  }

/* -------

【重要】
上記bodyに対するfont-familyの記述は必要なものだけ使用し、
使わない分は忘れずに削除すること。

----*/

img {
  max-width: 100%;
  width: auto;
  height: auto;
  vertical-align: bottom;
}


/*PC用*/
@media print,screen  {
  .pc { display: block !important }
  .sp { display: none !important }
  .h_menu, #sp_global_nav { display: none; }

  .container {
    padding-top: 118px;
  }
/* header */
  #header {
    position: fixed;
    top: 0;
    left: 0;
    margin: 0 auto;
    padding: 0 3rem;
    width: 100%;
    max-width: 1905px;
    height: 118px;
    align-items: center;
    z-index: 9999;
    transition: height .7s, background-color .7s;
  }

  #header .logo {
    padding-top: 1.9rem;
    width: 49.4rem;
  }

  #header #gnav .gnav_list li {
    position: relative;
    flex: 1;
  }
  #header #gnav .gnav_list li::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 1px;
    height: 4rem;
    background-color: var(--border-color);
  }
  #header #gnav .gnav_list li:last-child:after {
    display: none;
  }
  #header #gnav .gnav_list li a {
    display: block;
    padding: 0 2.45rem;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
    transition: color .7s;
  }
  #header #gnav .gnav_list li:first-child a {
    padding-left: 0;
  }

  #header #gnav .gnav_list li a span {
    display: block;
    color: var(--green-color);
    font-size: 1.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
  }

  #header #gnav .contact_btn {
    width: 26rem;
  }

  #header #gnav .contact_btn a {
    display: block;
    position: relative;
    padding: 1.3rem 0 1.6rem 1rem;
    color: #fff;
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
    border: 2px solid var(--blue-color);
    border-radius: 180px;
    background-color: var(--blue-color);
    transition: .7s;
  }

  #header #gnav .contact_btn a::before,
  #header #gnav .contact_btn a::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  #header #gnav .contact_btn a::before {
    left: 1rem;
    width: 4.4rem;
    height: 4.4rem;
    background: url(../../images/src/common/ico_mail_blue.svg) no-repeat left center / 100%;
  }
  #header #gnav .contact_btn a::after {
    right: 1.8rem;
    width: 1.1rem;
    height: 1.3rem;
    background: url(../../images/src/common/triangle_white.svg) no-repeat right center / 100%;
  }

  #header.fixed {
    height: 96px;
    background-color: var(--bg-color);
  }
  #header.fixed .logo {
    width: 34.6rem;
  }
  
  #header.fixed #gnav {
    align-items: center;
  }
  #header.fixed #gnav .gnav_list li a {
    padding: 2.3rem;
    font-size: 2rem;
  }
  #header.fixed #gnav .gnav_list li a span {
    font-size: 1.6rem;
  }
  #header.fixed #gnav .contact_btn {
    width: 24.3rem;
  }
  #header.fixed #gnav .contact_btn a {
    font-size: 2rem;
  }
  .cta_sec {
    color: #fff;
    padding: 8rem 0 8.7rem;
    background-color: var(--green-color);
  }
  .cta_sec .ttl_img {
    text-align: center;
  }
  .cta_sec .ttl_jp {
    margin: 0.8rem 0 1.6rem;
  }
  .cta_sec .txt {
    margin-bottom: 4.9rem;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.61;
  }
  .cta_sec .btn_list {
    margin-bottom: 4rem;
    gap: 0 2.7rem;
  }
  .cta_sec .btn_list02 {
    gap: 0 2.7rem;
  }
  .cta_sec .btn_list p,
  .cta_sec .btn_list02 p {
    flex: 1;
    display: flex;
  }
  .cta_sec .btn_list p a {
    position: relative;
    display: flex;
    align-items: center;
    padding: 2.4rem 0 2.4rem 9.6rem;
    width: 100%;
    color: var(--green-color);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.33;
    letter-spacing: 0.04em;
    border-radius: 180px;
    border: 2px solid #fff;
    background-color: #fff;
  }
  .cta_sec .btn_list p:first-of-type a {
    letter-spacing: -0.04em;
  }
  .cta_sec .btn_list p a.f_mont {
    font-size: 2.72rem;
    font-weight: 600;
  }
  .cta_sec .btn_list p a::before,
  .cta_sec .btn_list p a::after,
  .cta_sec .btn_list02 p a::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  .cta_sec .btn_list p a::before {
    left: 1.6rem;
    width: 6.8rem;
    height: 6.8rem;
    background: url(../../images/src/common/cta_ico01.svg) no-repeat left center / 100%;
  }
  .cta_sec .btn_list p:nth-of-type(2) a::before {
    background-image: url(../../images/src/common/cta_ico02.svg);
  }
  .cta_sec .btn_list p:nth-of-type(3) a::before {
    background-image: url(../../images/src/common/cta_ico03.svg);
  }
  .cta_sec .btn_list p:nth-of-type(3) a::after {
    display: none;
  }
  .cta_sec .btn_list p a::after{
    right: 3rem;
    width: 1.3rem;
    height: 1.5rem;
    background: url(../../images/src/common/triangle_green.svg) no-repeat right center / 100%;
  }

  
  .cta_sec .btn_list02 p {
    position: relative;
    flex-direction: column;
    justify-content: center;
    padding: 2.3rem 0 2.3rem 7.6rem;
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: 10px;
    background-color: var(--green-sub-color);
    transition: .7s;
  }
  .cta_sec .btn_list02 .f_mont {
    font-weight: 600;
  }
  
  .cta_sec .btn_list02 p a {
    position: relative;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;
  }
  .cta_sec .btn_list02 p a::after {
    right: 3rem;
    width: 1.3rem;
    height: 1.5rem;
    background: url(../../images/src/common/triangle_white.svg) no-repeat right center / 100%;
  }
  .cta_sec .btn_list02 p span {
    font-size: 2rem;
    font-weight: 700;
  }
  
  .cta_sec .btn_list02 p::before {
    content: '';
    position: absolute;
    left: 2.4rem;
    top: 0;
    bottom: 0;
    margin: auto;
    background: url(../../images/src/common/cta_ico04.svg) no-repeat left center / 100%;
  }
  .cta_sec .btn_list02 p:nth-of-type(1)::before {
    width: 3.5rem;
    height: 3.5rem;
  }
  
  .cta_sec .btn_list02 p:nth-of-type(2)::before {
    width: 4.6rem;
    height: 4.6rem;
    background-image: url(../../images/src/common/cta_ico05.svg);
  }
  
  .cta_sec .btn_list02 p:nth-of-type(3)::before {
    width: 3.4rem;
    height: 2.8rem;
    background-image: url(../../images/src/common/cta_ico06.svg);
  }
  

  #footer {
    padding: 11rem 0;
    background-color: #fff;
  }
  #footer .ft_address {
    width: 35.5%;

  }
  #footer .ft_address .logo {
    margin-bottom: 15px;
  }
  #footer .ft_address p {
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    line-height: 1.8;
  }
  #footer .ft_nav {
    width: 31rem;
    display: flex;
    flex-direction: column;
  }
  #footer .ft_nav ul {
    justify-content: left;
    gap: 1.7rem 0;
  }
  #footer .ft_nav ul li {
    width: 15.1rem;
  }
  #footer .ft_nav ul li a {
    display: block;
    position: relative;
    padding-left: 2.4rem;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.04em;
  }
  #footer .ft_nav ul li a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 1.3rem;
    height: 1.5rem;
    background: url(../../images/src/common/triangle_green.svg) no-repeat left center / 100%;
  }
  #footer .ft_nav .insta {
    margin-top: 3rem;
    width: 4.6rem;
  }
  
  #footer .ft_nav .copyright {
    margin-top: auto;
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: 0.07em;
    white-space: nowrap;
  }
  .pagetop {
    position: fixed;
    right: 2rem;
    bottom: 2rem;
    z-index: 999;
  }

}

@media screen and (max-width:1700px) {
	html {
		font-size: 0.588vw;
	}
  #header .logo {
    width: 37rem;
  }
}
@media screen and (max-width:1560px) {
}
@media screen and (max-width:1440px) {
  /*html {
		font-size: 0.694vw;
	}*/
}

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

}
/*小さめ画面 */
@media screen and (max-width:1280px) {
  html {
   /* font-size: 0.781vw;*/
  }
  
}

/*タブレット */
@media screen and (max-width:1180px) {
}


@media screen and (max-width:980px) {
  #footer .ft_map iframe {
    width: 45rem;
  }
}
/*SP用*/
@media screen and (max-width:828px) {
  .pc { display: none !important }
  .sp { display: block !important }
  img { max-width: 100%; height: auto; width: auto; }
  body { min-width: auto !important; overflow: inherit !important; }
  div, p, dd, dl, dt, th, td, span, li { box-sizing: border-box; }
  
  .container {
    padding-top: calc(23.348vw + 5vw);
  }
  #header {
    padding: 2.657vw 5vw 2.657vw 2.415vw;
    height: 20.531vw;
  }
  #header.fixed {
    height: 20.531vw;
  }
  #header .logo,
  #header.fixed .logo {
    padding-top: 0;
    width: 74.406vw;
  }
  #header #gnav {
    width: auto;
  }
  #gnav .gnav_list,
  #gnav .contact_btn {
    display: none;
  }
  #gnav .hamburger {
    position: relative;
    padding-left: 3.14vw;
    width: 11.836vw;
    height: 11.836vw;
    border-radius: 1.208vw;
    background-color: var(--green-color);
    z-index: 9999;
  }
  #gnav .hamburger span {
    display: block;
    position: absolute;
    width: 5.676vw;
    height: 0.604vw;
    background-color: #fff;
    transition: .8s;
  }
  #gnav .hamburger span:nth-of-type(1) {
    top: 3.14vw;
  }
  #gnav .hamburger span:nth-of-type(2) {
    top: 5.314vw;
  }
  #gnav .hamburger span:nth-of-type(3) {
    top: 7.488vw;
  }
  #gnav .globalMenu {
    display: none;
    padding-bottom: 16vw;
    position: absolute;
    top: 0;
    right: 0;
    overflow-y: scroll;
    width: 100%;
    z-index: 999;
  }
  
  #gnav .globalMenu .wave {
    padding: 27.536vw 4.831vw 8.4vw;
    background-color: var(--bg02-color);
  }
  #gnav .globalMenu .wave::after {
    content: '';
    position: absolute;
    bottom: 5vw;
    left: 0;
    right: 0;
    width: 100%;
    height: 15.217vw;
    background: url(../../images/src/common/sp/gnav_wave.svg) no-repeat center bottom / 100%;
  }
  

  #gnav .globalMenu ul {
    border-top: 3px dotted var(--border-color);
  }
  #gnav .globalMenu li {
    width: 45vw;
  }
  #gnav .globalMenu li a {
    display: block;
    position: relative;
    padding: 3.382vw 0 3.382vw 5.556vw;
    width: 100%;
    font-size: 4.589vw;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-bottom: 3px dotted var(--border-color);
  }
  #gnav .globalMenu li:nth-of-type(odd) a {
    border-right: 3px dotted var(--border-color);
  }
  #gnav .globalMenu li a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    height: 2.778vw;
    width: 2.415vw;
    background: url(../../images/src/common/triangle_green.svg) no-repeat right center / 100%;
  }

  #gnav .globalMenu li:nth-of-type(even) a {
    padding-left: 10.024vw;
  }
  #gnav .globalMenu li:nth-of-type(even) a::before {
    left: 4.831vw;
  }
  
  #gnav .globalMenu .btn01 {
    margin: 8.454vw auto 0;
    width: 70.048vw;
  }
  #gnav .globalMenu .btn01 a {
    background-color: var(--blue-color);
  }
  #gnav .globalMenu .btn01 a::before {
    width: 10.386vw;
    height: 10.386vw;
    background: url(../../images/src/common/ico_mail_blue.svg) no-repeat left center / 100%;
  }

  #gnav .hamburger.active {
  }
  #gnav .hamburger.active span {
    background-color: #fff;
  }
  #gnav .hamburger.active span:nth-of-type(1) {
    top: 3vw;
    -webkit-transform: translateY(10px) rotate(-45deg);
    transform: translateY(10px) rotate(-45deg);
  }
  #gnav .hamburger.active span:nth-of-type(2) {
    display: none;
  }
  #gnav .hamburger.active span:nth-of-type(3) {
    top: 3vw;
    -webkit-transform: translateY(10px) rotate(45deg);
    transform: translateY(10px) rotate(45deg);
  }
  #gnav .globalMenu.active {
    display: block;
  }

  
  .cta_sec {
    padding: 10.386vw 4.831vw 13.285vw;
  }
  .cta_sec .ttl_img {
    margin: 0 auto;
    width: 18.599vw;
    text-align: center;
  }
  .cta_sec .ttl_jp {
    margin: 1.449vw 0 2.174vw;
  }
  .cta_sec .txt {
    margin-bottom: 7.246vw;
    font-size: 4.831vw;
    line-height: 1.4;
    text-align: left;
  }
  .cta_sec .btn_list {
    margin-bottom: 8.454vw;
    gap: 4.831vw 0;
  }
  .cta_sec .btn_list02 {
    gap: 4.831vw 0;
  }
  .cta_sec .btn_list p,
  .cta_sec .btn_list02 p {
    flex: auto;
    width: 100%;
    display: flex;
  }
  .cta_sec .btn_list p a {
    padding: 5.314vw 0 5.314vw 18.478vw;
    font-size: 4.831vw;
    border-radius: 32.609vw;
    height: 25.362vw;
  }
  .cta_sec .btn_list p a.f_mont {
    font-size: 5.7vw;
  }
  .cta_sec .btn_list p a::before {
    left: 2.415vw;
    width: 13.285vw;
    height: 13.285vw;
  }
  .cta_sec .btn_list p a::after{
    right: 6.22vw;
    height: 3.14vw;
    width: 2.778vw;
  }
  .cta_sec .btn_list p:nth-of-type(3) a::after{
    display: block;
  }

  
  .cta_sec .btn_list02 p {
    padding: 5.797vw 0 5.797vw 19.324vw;
    font-size: 4.589vw;
    border-radius: 1.208vw;
    height: 22.101vw;
  }
  .cta_sec .btn_list02 .f_mont {
    font-size: 5.072vw;
  }
  
  .cta_sec .btn_list02 p a {
    font-size: 4.589vw;
    line-height: 0.84;
  }
  .cta_sec .btn_list02 p a .f_mont {
    font-size: 4.106vw;
    line-height: 2;
  }
  .cta_sec .btn_list02 p a::after {
    right: 6.22vw;
    height: 3.14vw;
    width: 2.778vw;
  }
  .cta_sec .btn_list02 p span {
    font-size: 4.106vw;
  }
  
  .cta_sec .btn_list02 p::before {
    left: 6.039vw;
  }
  .cta_sec .btn_list02 p:nth-of-type(1)::before {
    width: 7.246vw;
    height: 7.246vw;
  }
  
  .cta_sec .btn_list02 p:nth-of-type(2)::before {
    width: 7.246vw;
    height: 6.159vw;
    background-image: url(../../images/src/common/sp/cta_ico05.svg);
  }
  
  .cta_sec .btn_list02 p:nth-of-type(3)::before {
    width: 5.556vw;
    height: 4.589vw;
  }

  #footer {
    padding: 12.077vw 4.831vw 42.995vw;
  }
  #footer .ft_address {
    order: 2;
    width: 100%;
    text-align: center;
  }
  #footer .ft_address .logo {
    margin-bottom: 2.174vw;
  }
  #footer .ft_address p {
    font-size: 4.106vw;
    line-height: 1.52;
  }
  #footer .ft_address .insta {
    margin: 4.71vw auto;
    width: 9.903vw;
  }
  #footer .ft_map {
    order: 3;
    margin: 7.246vw auto 9.662vw;
    width: 100%;
  }
  #footer .ft_map iframe {
    width: 100%;
    height: 50.242vw;
  }
  #footer .ft_nav {
    display: block;
    order: 1;
    margin-bottom: 7.246vw;
    width: 100%;
  }
  #footer .ft_nav ul {
    gap: 0;
    border-top: 0.362vw dotted var(--border-color);
  }
  #footer .ft_nav ul li {
    width: 45vw;
  }
  #footer .ft_nav ul li a {
    padding: 3.382vw 0 3.382vw 5.314vw;;
    font-size: 4.106vw;
    border-bottom: 0.362vw dotted var(--border-color);
  }
  
  #footer .ft_nav ul li:nth-of-type(odd) a {
    border-right: 0.362vw dotted var(--border-color);
  }
  #footer .ft_nav ul li:nth-of-type(even) a {
    padding-left: 10.024vw;
  }
  #footer .ft_nav ul li:nth-of-type(even) a::before {
    left: 4.831vw;
}
  #footer .ft_nav ul li a::before {
    top: 1vw;
    height: 2.778vw;
    width: 2.415vw;
  }
  #footer .copyright {
    order: 4;
    margin: auto;
    font-size: 3.502vw;
    text-align: center;
  }

  
 .ft_fixed {
    position: fixed;
    bottom: 0;
    padding: 4.589vw 4.831vw 3.623vw 5.435vw;
    width: 100%;
    background: url(../../images/src/common/sp/ft_fixed_bg.svg) no-repeat center bottom / 100%;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(100%);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  }
  .ft_fixed.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .ft_fixed .ft_ct {
    width: 71.014vw;
  }
  .ft_fixed #pagetop {
    width: 16.667vw;
  }

}



/* pcのみのhoverアクションはここ */
@media (hover: hover) and (pointer: fine) {
  
  #header #gnav .gnav_list li a:hover {
    color: var(--green-color);
  }
  
  #header #gnav .contact_btn a:hover {
    color: var(--blue-color);
    background-color: #fff;
  }
  
  #header #gnav .contact_btn a:hover::before {
    background-image: url(../../images/src/common/ico_mail_white.svg);
  }
  #header #gnav .contact_btn a:hover::after {
    background-image: url(../../images/src/common/triangle_blue.svg);
  }
  
  .cta_sec .btn_list p:nth-of-type(1) a:hover,
  .cta_sec .btn_list p:nth-of-type(2) a:hover {
    color: #fff;
    background-color: var(--green-color);
  }
  .cta_sec .btn_list p:nth-of-type(1) a:hover::before {
    background-image: url(../../images/src/common/cta_ico01_hv.svg);
  }
  .cta_sec .btn_list p:nth-of-type(2) a:hover::before {
    background-image: url(../../images/src/common/cta_ico02_hv.svg);
  }
  .cta_sec .btn_list p:nth-of-type(3) a:hover::after {
    background: url(../../images/src/common/triangle_green.svg) no-repeat right center / 100%;
}
  .cta_sec .btn_list p a:hover::after {
    background-image: url(../../images/src/common/triangle_white.svg);
  }
  
  .cta_sec .btn_list02 p a:hover {
    opacity: 0.7;
  }
  #footer .ft_nav ul li a:hover {
    color: var(--green-color);
  }
}
  
 /*IE11用に以下のコードも追加*/
  @media (-ms-high-contrast: none), (-ms-high-contrast: active) {
}



/* 印刷用 */
@media print {
  body { zoom: 0.6; -webkit-print-color-adjust: exact; }
}

/* 印刷用 IE10以上 */
@media print and (-ms-high-contrast:none) {
  @page { size: A4; margin: 12.7mm 9.7mm; }
  body { zoom: 1.8; width: 1200px; transform: scale(0.5); transform-origin: 0 0; }
}