html {
  font-feature-settings: 'palt';
  font-size: calc(100vw / 1440 * 10);
  /* font-size: 62.5%; */
  scroll-behavior: smooth;
}
/* @media screen and (min-width:1440px) {
  html {
    font-size: 62.5%;
  }
} */
/* @media screen and (min-width:1440px) {
  html {
    
  }
} */

@media screen and (max-width:768px) {
  html {
    font-size: calc(100vw / 390 * 10);
  }
}
body {
  color: #212121;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  font-weight: 500;
  line-height: normal;
}
.noto-medium {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
}
.noto-semibold {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 600;
}
.noto-bold {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
}
.noto-extrabold {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 800;
}
.noto-black {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
}

.f_poppins {
  font-family: 'Poppins', sans-serif;
  font-weight: 300;
}
.f_poppins_italic {
  font-family: 'Poppins', sans-serif;
  font-style: italic;
  font-weight: 600;
}

.f_roboto {
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  body::before {
    background-size: 50rem;
  }
}
.body_container {
  /* overflow: hidden; */
  opacity: 0;
  transition: .6s ease;
}
.lazy .body_container {
  opacity: 1;
}
.max1180 {
  margin: 0 auto;
  max-width: 118rem;
}
.max1360 {
  margin: 0 auto;
  max-width: 136rem;
}
img {
  width: 100%;
  height: auto;
  max-width: 100%;
}
@media screen and (max-width: 768px) {
  .body_container {
    min-width: 100%;
    overflow: hidden;
  }
}
a {
  transition: .3s;
}
.anchor {
  display: flex;
  margin-top: -8rem;
  padding-top: 8rem;
}
@media screen and (max-width: 768px) {
  .anchor {
    margin-top: -4.7rem;
    padding-top: 4.7rem;
  }
}

/* ---------------------------------------------------------------------------
//  bg
--------------------------------------------------------------------------- */
.page_bg {
  height: 100vh;
  position: fixed;
  top: 0;
  transition: .6s ease;
  width: 100%;
  z-index: -1;
}
.page_bg .video {
  height: 100%;
  object-fit: cover;
  opacity: .1;
  width: 100%;
}

/* ---------------------------------------------------------------------------
//  .btnA
--------------------------------------------------------------------------- */
.btnA {
  align-items: center;
  border-radius: 100rem;
  color: #fff;
  display: flex;
  font-size: 1.6rem;
  font-weight: 700;
  height: 5.7rem;
  justify-content: center;
  letter-spacing: .032rem;
  overflow: hidden;
  position: relative;
  transition: .3s ease;
  width: 24.2rem;
  /* background: #36d1dc; */
}
.btnA:hover {
  /* color: #000; */
}
.btnA::before {
  background: linear-gradient(131deg, rgba(94, 164, 240, 1) 0%, rgba(54, 209, 220, 1) 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: .3s ease;
  width: 100%;
}
.btnA::after {
  background: linear-gradient(131deg, #0a62a5 30%, rgba(94, 164, 240, 1) 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: translateX(-100%);
  transition: .3s ease;
  width: 100%;;
}
.btnA:hover:before {
  transform: translateX(100%);
}
.btnA:hover:after {
  transform: translateX(0);
}
.btnA span {
  position: relative;
  z-index: 2;
}

/* ---------------------------------------------------------------------------
//  footer01
--------------------------------------------------------------------------- */
.footer01 {
  background-image: url(../img/common/footer01_bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
}
.footer01::before {
  background: linear-gradient(131deg,#5ea4f0 0%,#36d1dc 100%);
  content: '';
  height: 100%;
  left: 0;
  opacity: .85;
  position: absolute;
  top: 0;
  width: 100%;
}
.footer01 .wrap01 {
  color: #fff;
  padding: 12rem 0;
  position: relative;
  text-align: center;
}
.footer01 .wrap01 .h2 {
  font-size: 3.5rem;
  font-weight: 700;
}
.footer01 .wrap01 .p {
  font-size: 2.2rem;
  font-weight: 500;
  margin-top: 1rem;
}
.footer01 .wrap01 .btn {
  align-items: center;
  background: #212121;
  border: solid 3px #212121;
  border-radius: 100rem;
  display: flex;
  font-size: 2.2rem;
  font-weight: 700;
  height: 8.8rem;
  justify-content: center;
  margin: 4rem auto 0;
  width: 42.6rem;
}
.footer01 .wrap01 .btn:hover {
  background: #fff;
  color: #212121;
}
@media screen and (max-width:768px) {
  .footer01 .wrap01 {
    padding: 10rem 2rem;
  }
  .footer01 .wrap01 .h2 {
    font-size: 2.5rem;
  }
  .footer01 .wrap01 .p {
    font-size: 2rem;
  }
  .footer01 .wrap01 .btn {
    font-size: 2rem;
    height: 6rem;
    width: 100%;
  }
}
/* ---------------------------------------------------------------------------
//  footer02
--------------------------------------------------------------------------- */
.footer02 {
  background: #fff;
  position: relative;
}
.footer02 .wrap01 {
  display: flex;
  gap: 20rem;
  padding: 12rem 0 10rem;
}

.footer02 .wrap01 .txts .h2 {
  margin-bottom: 2rem;
  width: 21.7rem;
}
.footer02 .wrap01 .txts .p {
  font-size: 1.8rem;
  font-weight: 400;
  margin-top: 1rem;
}
.footer02 .wrap01 .txts .p small {
  font-size: 1.5rem;
}
.footer02 .wrap01 .links {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  font-weight: 400;
  gap: 1.8rem 9rem;
  height: 15rem;
  padding-top: 4rem;
  position: relative;
}
.footer02 .wrap01 .links .link:first-of-type {
  left: 0;
  position: absolute;
  top: 0;
}
/* .footer02 .wrap01 .links .link{
  border-bottom: solid 1px transparent;
} */
.footer02 .wrap01 .links .link:hover {
  /* border-bottom: solid 1px #212121; */
  opacity: .7;
}
.footer02 .wrap02 {
  border-top: 1px solid #e6e6e6;
  color: #bcbcbc;
  font-size: 1.4rem;
  font-weight: 300;
  padding: 2rem;
  text-align: center;
}
@media screen and (max-width:768px) {
  .footer02 .wrap01 {
    flex-direction: column;
    gap: 4rem;
    padding: 10rem 2rem 6rem;
  }
  .footer02 .wrap02 {
    font-size: 1.2rem;
  }
}
/* ---------------------------------------------------------------------------
//  to_top
--------------------------------------------------------------------------- */
.to_top {
  background-image: url(../img/common/to_top.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  bottom: 3.7rem;
  display: block;
  height: 9rem;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 3.7rem;
  width: 9rem;
  z-index: 10;
}
.to_top.active {
  opacity: 1;
  pointer-events: all;
}
@media screen and (max-width: 767.9px) {
  .to_top {
    background-size: 8rem;
    bottom: 2rem;
    height: 6rem;
    right: 2rem;
    width: 6rem;
  }
}
/* ---------------------------------------------------------------------------
//  header
--------------------------------------------------------------------------- */
.header {
  height: 7rem;
  left: 0;
  position: fixed;
  top: 0;
  transition: .3s;
  transition-delay: .2s;
  width: 100%;
  z-index: 100;
}
body.other,body.single {
  padding-top: 7rem;
}
.other .header ,.single .header {
  background: #fff!important;
}
.header.scrolled {
  background: rgba(255,255,255,.9);
}
.header_inner {
  align-items: center;
  display: flex;
  margin: 0 auto;
}
.header .logo {
  margin-left: 3rem;
  position: relative;
  /* width: 21.7rem; */
  width: 15.9rem;
  z-index: 99;
}
.header .logo:hover {
  opacity: .7;
}

.header.scrolled .logo {
  height: auto!important;
  width: 15.9rem!important;
}

.header .logo img {
  transition: .3s;
}
.header .logo::before {
  background-image: url(../img/common/header_logo02.png);
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  height: 100%;
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: .3s;
  width: 100%;
}
.header.scrolled .logo::before {
  opacity: 1;
}
.other .header .logo img ,
.single .header .logo img{
  opacity: 0;;
}
.other .header .logo::before,
.single .header .logo::before {
  opacity: 1;
}
.global_nav {
  align-items: center;
  display: flex;
  flex-grow: 2;
}
.nav_list {
  align-items: center;
  display: flex;
  gap: 6rem;
  justify-content: flex-end;
  width: 100%;
}
.nav_item a {
  align-items: center;
  color: #fff;
  display: flex;
  font-weight: 700;
  height: 7rem;
  position: relative;
}
.nav_item a:hover {
  opacity: .7;
}
.nav_item.contact a {
  align-items: center;
  color: #fff!important;
  flex-direction: column;
  font-size: 1.8rem;
  height: 7rem;
  justify-content: center;
  opacity: 1;
  overflow: hidden;
  width: 16.5rem;
}

.nav_item.contact a span {
  position: relative;
  z-index: 2;
}
.nav_item.contact a::before {
  background: linear-gradient(131deg, rgba(94, 164, 240, 1) 0%, rgba(54, 209, 220, 1) 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: .3s ease;
  width: 100%;
}
.nav_item.contact a::after {
  background: linear-gradient(131deg, #0a62a5 30%, rgba(94, 164, 240, 1) 100%);
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: translateX(-100%);
  transition: .3s ease;
  width: 100%;;
}
.nav_item.contact a:hover:before {
  transform: translateX(100%);
}
.nav_item.contact a:hover:after {
  transform: translateX(0);
}
@media screen and (min-width: 768px) {
  .home .header {
    opacity: 1;
    position: absolute;
    transform: translateY(0);
  }
  .home .header.move {
    opacity: 0;
    transform: translateY(-100%);
  }
  .home .header.move.scrolled {
    opacity: 1;
    position: fixed;
    transform: translateY(0);
  }
  .home .header .logo {
    background-image: url(../img/top/header_logo01.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    height: 11.4rem;
    margin-left: 3rem;
    width: 21.7rem;
  }
  .home .header .logo img {
    opacity: 0!important;
  }
  .home .nav_item.contact a {
    height: 11.4rem;
    padding: 0 3rem;
    width: 11.4rem;
  }
  .scrolled .nav_item.contact a {
    height: 7rem!important;
    padding: 0!important;
    width: 16.5rem!important;
  }
  .scrolled .nav_item a {
    color: #212121;
  }
  .other .nav_item a,
  .single .nav_item a {
    color: #212121;
  }
}
@media screen and (max-width: 768px) {
  .header {
    height: 6rem!important;
    position: fixed!important;
    transform: translateY(0)!important;
  }
  body.other ,
    body.single {
    padding-top: 6rem;
  }
  .home .header {
    opacity: 1!important;
  }
  .home .header img {
    opacity: 1;
  }
  .home .header::after {
    display: none;
  }
  .header_inner {
    height: 6rem;
  }
  .header .logo {
    margin-left: 2rem;
    width: 15rem!important;
  }
  .nav_open .header .logo::before {
    opacity: 1;
  }
  .global_nav {
    align-items: center;
    background-color: rgba(255,255,255,.9);
    display: flex;
    flex-direction: column;
    flex-grow: 2;
    height: calc(100vh);
    height: calc(100svh);
    left: 0;
    opacity: 0;
    overflow: auto;
    padding: 8.5rem 2rem;
    pointer-events: none;
    position: absolute;
    top: 0;
    transition: .3s;
    width: 100%;;
  }
  .nav_open .global_nav {
    opacity: 1;
    pointer-events: all;
  }
  .nav_list {
    align-items: stretch;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
  }
  .nav_item a {
    align-items: center;
    color: #212121;
    font-size: 2rem;
    height: auto;
    justify-content: center;
    padding: 2rem 0;
    width: 100%;
  }
  .nav_item.contact a {
    height: 7rem!important;
    margin-top: 2rem;
    padding: 0!important;
    width: 100%!important;
  }
  .nav_item:hover {
    color: inherit;
  }
  .hamburger {
    cursor: pointer;
    display: block;
    height: 100%;
    position: absolute;
    right: 2rem;
    width: 3rem;
    z-index: 1000;
  }

  .hamburger span {
    background: linear-gradient(131deg, rgba(94, 164, 240, 1) 0%, rgba(54, 209, 220, 1) 100%);
    border-radius: 10rem;
    height: .4rem;
    position: absolute;
    transition: .3s;
    width: 100%;
  }

  .hamburger span:nth-child(1) {
    top: 1.8rem;
  }
  .hamburger span:nth-child(2) {
    top: 2.8rem;
  }
  .hamburger span:nth-child(3) {
    top: 3.8rem;
  }
  .hamburger.open  span:nth-child(1) {
    top: 2.8rem;
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    transform: rotate(135deg);
  }
  .hamburger.open  span:nth-child(2) {
    opacity: 0;
    width: 0;
  }
  .hamburger.open  span:nth-child(3) {
    top: 2.8rem;
    -webkit-transform: rotate(-135deg);
    -moz-transform: rotate(-135deg);
    transform: rotate(-135deg);
  }
}
/* ---------------------------------------------------------------------------
//  bread
--------------------------------------------------------------------------- */
.bread {
  position: relative;
  z-index: 1;
}
.bread .wrap01 {
  padding: 2rem 0;
}
.bread .wrap01 ol {
  color: #101010;
  display: flex;
  font-size: 1.5rem;
  font-weight: 400;
}
.other .bread .wrap01 ol,
.single .bread .wrap01 ol {
  color: #fff;
}
.other:has(.page_thanks) .bread .wrap01 ol,
.single:has(.page_thanks) .bread .wrap01 ol {
  color: #101010;
}
.other:has(.page_single_properties) .bread .wrap01 ol ,
.single:has(.page_single_properties) .bread .wrap01 ol{
  color: #101010;
}
.other:has(.page_single_news) .bread .wrap01 ol,
.single:has(.page_single_news) .bread .wrap01 ol {
  color: #101010;
}
.bread .wrap01 ol li {
  position: relative;
}
.bread .wrap01 ol li + li {
  padding-left: 3.5rem;
}
.bread .wrap01 ol li + li::before {
  content: '>';
  left: 1.5rem;
  position: absolute;
}
.bread .wrap01 ol li a {
  white-space: nowrap;
}
.bread .wrap01 ol li a:hover {
  opacity: .7;
}
.bread .wrap01 ol li:last-of-type {
  overflow: hidden;
  pointer-events: none;
  pointer-events: none;
  text-overflow: ellipsis;
}
@media screen and (max-width:768px) {
  .bread .wrap01 {
    padding: 1.2rem 2rem;
  }
  .bread .wrap01 ol {
    font-size: 1.2rem;
  }
  .bread .wrap01 ol li + li {
    padding-left: 2rem;
  }
  .bread .wrap01 ol li + li::before {
    left: .7rem;
  }
}
/* ---------------------------------------------------------------------------
//  PC/SP
--------------------------------------------------------------------------- */
.forSP {
  display: none;
}
@media screen and (max-width:768px) {
  .forSP {
    display: block;
  }
  .forPC {
    display: none;
  }
}
/* ---------------------------------------------------------------------------
//  リキャプチャ
--------------------------------------------------------------------------- */
.grecaptcha-badge{
  bottom: 16rem!important;
  opacity: 0;
  pointer-events: none;
}
.single-properties .grecaptcha-badge,
.contact  .grecaptcha-badge{
  opacity: 1;
  pointer-events: all;
}
@media screen and (max-width:768px){
  .grecaptcha-badge{
  bottom: 10rem!important;
}
}