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

@media screen and (max-width:768px) {
  html {
    font-size: calc(100vw / 375 * 10);
  }
}
body {
  color: #000;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: normal;
}
/* M PLUS Rounded 1c */
.font_mPlus {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 500;
}
.font_sans {
  font-family: 'Noto Sans JP', sans-serif;
}
@media screen and (max-width: 768px) {
  body::before {
    background-size: 50rem;
  }
}
.body_container {
  opacity: 0;
  overflow: hidden;
  transition: .6s ease;
}
.lazy .body_container {
  opacity: 1;
}
.max1000 {
  margin: 0 auto;
  max-width: 100rem;
}
.max1116 {
  margin: 0 auto;
  max-width: 111.6rem;
}
img {
  height: auto;
  max-width: 100%;
  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;
  }
}
strong {
  font-weight: inherit;
}

/* ---------------------------------------------------------------------------
//  to_top
--------------------------------------------------------------------------- */
.to_top {
  bottom: 2.5rem;
  display: block;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 2.5rem;
  width: 8rem;
  z-index: 10;
}
.to_top.active {
  opacity: 1;
  pointer-events: all;
}
@media screen and (max-width: 767.9px) {
  .to_top {
    bottom: 1.8rem;
    right: 1.5rem;
    width: 5rem;
  }
}
/* ---------------------------------------------------------------------------
//  header
--------------------------------------------------------------------------- */
.header {
  height: 7rem;
  left: 0;
  position: fixed;
  top: 0;
  transition: .3s;
  transition-delay: .2s;
  width: 100%;
  z-index: 100;
}
body.other {
  padding-top: 7rem;
}
.other .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 {
  opacity: 0;;
}
.other .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) {
  .top .header {
    opacity: 1;
    position: absolute;
    transform: translateY(0);
  }
  .top .header.move {
    opacity: 0;
    transform: translateY(-100%);
  }
  .top .header.move.scrolled {
    opacity: 1;
    position: fixed;
    transform: translateY(0);
  }
  .top .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;
  }
  .top .header .logo img {
    opacity: 0!important;
  }
  .top .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 {
    color: #212121;
  }
}
@media screen and (max-width: 768px) {
  .header {
    height: 6rem!important;
    position: fixed!important;
    transform: translateY(0)!important;
  }
  body.other {
    padding-top: 6rem;
  }
  .top .header {
    opacity: 1!important;
  }
  .top .header img {
    opacity: 1;
  }
  .top .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 {
  color: #fff;
}
.other:has(.page_thanks) .bread .wrap01 ol {
  color: #101010;
}
.other:has(.page_single_properties) .bread .wrap01 ol {
  color: #101010;
}
.other: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;
  }
}
