
@charset "UTF-8";
/* CSS Document */



@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W0);
  font-weight: 10;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W1);
  font-weight: 100;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W2);
  font-weight: 200;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W3);
  font-weight: 300;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W4);
  font-weight: 400;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W5);
  font-weight: 500;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W6);
  font-weight: 600;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W7);
  font-weight: 700;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W8);
  font-weight: 800;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W9);
  font-weight: 900;
}



.margin_top_0 {
  margin-top: 0px;
}
.margin_top_05 {
  margin-top: 5px;
}
.margin_top_10 {
  margin-top: 10px;
}
.margin_top_15 {
  margin-top: 15px;
}
.margin_top_20 {
  margin-top: 20px;
}
.margin_top_25 {
  margin-top: 25px;
}
.margin_top_30 {
  margin-top: 30px;
}
.margin_top_35 {
  margin-top: 35px;
}
.margin_top_40 {
  margin-top: 40px;
}
.margin_top_45 {
  margin-top: 45px;
}
.margin_top_50 {
  margin-top: 50px;
}
.margin_top_55 {
  margin-top: 55px;
}
.margin_top_60 {
  margin-top: 60px;
}
.margin_top_65 {
  margin-top: 65px;
}
.margin_top_70 {
  margin-top: 70px;
}
.margin_top_75 {
  margin-top: 75px;
}
.margin_top_80 {
  margin-top: 80px;
}
.margin_top_85 {
  margin-top: 85px;
}
.margin_top_90 {
  margin-top: 90px;
}
.margin_top_95 {
  margin-top: 95px;
}
.margin_top_100 {
  margin-top: 100px;
}

.margin_bottom_05 {
  margin-bottom: 5px;
}
.margin_bottom_10 {
  margin-bottom: 10px;
}
.margin_bottom_15 {
  margin-bottom: 15px;
}
.margin_bottom_20 {
  margin-bottom: 20px;
}
.margin_bottom_25 {
  margin-bottom: 25px;
}
.margin_bottom_30 {
  margin-bottom: 30px;
}
.margin_bottom_35 {
  margin-bottom: 35px;
}
.margin_bottom_40 {
  margin-bottom: 40px;
}
.margin_bottom_45 {
  margin-bottom: 45px;
}
.margin_bottom_50 {
  margin-bottom: 50px;
}
.margin_bottom_55 {
  margin-bottom: 55px;
}
.margin_bottom_60 {
  margin-bottom: 60px;
}
.margin_bottom_65 {
  margin-bottom: 65px;
}
.margin_bottom_70 {
  margin-bottom: 70px;
}
.margin_bottom_75 {
  margin-bottom: 75px;
}
.margin_bottom_80 {
  margin-bottom: 80px;
}
.margin_bottom_85 {
  margin-bottom: 85px;
}
.margin_bottom_90 {
  margin-bottom: 90px;
}
.margin_bottom_95 {
  margin-bottom: 95px;
}
.margin_bottom_100 {
  margin-bottom: 100px;
}

.margin_left_05 {
  margin-left: 5px;
}
.margin_left_10 {
  margin-left: 10px;
}
.margin_left_15 {
  margin-left: 15px;
}
.margin_left_20 {
  margin-left: 20px;
}
.margin_left_25 {
  margin-left: 25px;
}
.margin_left_30 {
  margin-left: 30px;
}
.margin_left_35 {
  margin-left: 35px;
}
.margin_left_40 {
  margin-left: 40px;
}
.margin_left_45 {
  margin-left: 45px;
}
.margin_left_50 {
  margin-left: 50px;
}
.margin_left_55 {
  margin-left: 55px;
}
.margin_left_60 {
  margin-left: 60px;
}
.margin_left_65 {
  margin-left: 65px;
}
.margin_left_70 {
  margin-left: 70px;
}
.margin_left_75 {
  margin-left: 75px;
}
.margin_left_80 {
  margin-left: 80px;
}
.margin_left_85 {
  margin-left: 85px;
}
.margin_left_90 {
  margin-left: 90px;
}
.margin_left_95 {
  margin-left: 95px;
}
.margin_left_100 {
  margin-left: 100px;
}

.margin_right_05 {
  margin-right: 5px;
}
.margin_right_10 {
  margin-right: 10px;
}
.margin_right_15 {
  margin-right: 15px;
}
.margin_right_20 {
  margin-right: 20px;
}
.margin_right_25 {
  margin-right: 25px;
}
.margin_right_30 {
  margin-right: 30px;
}
.margin_right_35 {
  margin-right: 35px;
}
.margin_right_40 {
  margin-right: 40px;
}
.margin_right_45 {
  margin-right: 45px;
}
.margin_right_50 {
  margin-right: 50px;
}
.margin_right_55 {
  margin-right: 55px;
}
.margin_right_60 {
  margin-right: 60px;
}
.margin_right_65 {
  margin-right: 65px;
}
.margin_right_70 {
  margin-right: 70px;
}
.margin_right_75 {
  margin-right: 75px;
}
.margin_right_80 {
  margin-right: 80px;
}
.margin_right_85 {
  margin-right: 85px;
}
.margin_right_90 {
  margin-right: 90px;
}
.margin_right_95 {
  margin-right: 95px;
}
.margin_right_100 {
  margin-right: 100px;
}

.text_left {
  text-align: left;
}
.text_right {
  text-align: right;
}
.text_center {
  text-align: center;
}



html {
  color: #333333;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", Noto Sans, Meiryo, "sans-serif";
  font-size: 10px;
  font-weight: 300;
  line-height: 1.67;
  scroll-behavior: smooth; /* スムーズスクロールを有効化 */
}


body {
  margin: 0 auto;
  width: 100%;
  max-width: 500px;
}

section {
  margin: 100px 0 0;
}
section.about_wrap {
  margin: 70px 0 0;
}
section.overview_wrap {
  margin: 100px　0;
}
section.description_wrap {
  margin: 30px 0 0;
}

h1 {
  margin: 0;
}
h1 img {
  width: 100%;
  height: auto;
}
h1.page_title {
  background-size: contain;
  color: #ffffff;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.34;
  text-align: center;
  padding-top: calc((100% * 9 / 16 - 82px) / 2);
  width: 100%;
  aspect-ratio: 16 / 9;
}
h1.page_title.villa {
  background-image: url("../img/hasama_title_bg_villa.webp");
}
h1.page_title.villa > span {
  letter-spacing: 0.03em;
}
h1.page_title.condominium {
  background-image: url("../img/hasama_title_bg_condominium.webp");
}
h1.page_title.hotel {
  background-image: url("../img/hasama_title_bg_hotel.webp");
}
h1.page_title.hotel > span {
  letter-spacing: 0.03em;
}
h1.page_title > span {
  font-family: neue-haas-grotesk-display, Helvetica, Arial, "sans-serif";
  font-size: 5.0rem;
  font-weight: 600;
  line-height: 1.0;
}

h2 {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 0;
  text-align: center;
}
.images_wrap > h2 {
  margin-bottom: 30px;
}

h3 {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.0;
  text-align: center;
  margin: 25px 0 0;
}
h3 > span {
  font-size: 3.0rem;
  font-weight: 10;
  vertical-align: -4.5px;
}

p {
  font-size: 1.4rem;
  font-weight: 200;
  line-height: 1.67;
  margin: 0 7.5%;
  width: 85%;
  min-width: 300px;
}
p.plans_page {
  font-weight: 500;
}
.googlemap + p {
  margin-top: 30px;
}
.images_wrap p {
  font-size: 1.2rem;
  font-weight: 200;
  line-height: 1.0;
  margin: 5px 2.5% 0;
  width: 95%;
}

a {
  cursor: pointer !important;
}

section img {
  margin: 20px 0 0;
  width: 100%;
  height: auto;
}
picture + p {
  margin-top: 30px;
}
.images_wrap img {
  margin: 30px 0 0;
}

.googlemap {
  margin: 20px 0 0;
  width: 100%;
  height: 66.7vw;
  aspect-ratio: auto;
}

dl {
  display: grid;
  grid-template-columns: 5.0em 1fr; /* 左：項目名 / 右：内容 */
  gap: 0.5em 1.5em;
  font-size: 1.4rem;
  line-height: 1.5;
  margin: 40px 15% 0;
  width: 70%;
  min-width: 300px;
  
}
dt {
  font-weight: 600;
}
dd {
  font-weight: 300;
}

.cta_sp_wrap {
  margin:70px 0;
}
.cta_sp_wrap > div.plans_wrap {
  background-color: #eeeeee;
  border-top: solid 1px #aaaaaa;
  text-align: center;
  margin-top: 15px;
  padding: 15px 018px;
}
.cta_sp_wrap > div.plans_wrap h4 {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.0;
  margin-bottom: 10px;
}
.cta_sp_wrap > div.plans_wrap a {
  display: block;
  letter-spacing: 0.03em;
  margin-top: 5px;
}
.cta_sp_wrap > div.plans_wrap a.top_button {
  margin-top: 15px;
}
.cta_sp_wrap > div.plans_wrap a img {
  margin: 0 calc((100% - 250px) / 2);
  width: 250px;
  height: auto;
}
.cta_sp_wrap > div.plans_wrap a img:hover {
  opacity: 0.7;
}
.cta_sp_wrap > div.contact_wrap {
  background-color: #f3c8aa;
  border-top: solid 1px #f28a5a;
  border-bottom: solid 1px #f28a5a;
  text-align: center;
  padding: 15px 0;
}
.cta_sp_wrap > div.contact_wrap p {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.0;
  mix-blend-mode: multiply;
  opacity: 0.6;
}
.cta_sp_wrap > div.contact_wrap a {
  display: block;
  background-color: #f0512c;
  border-radius: 8px;
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.0;
  margin: 15px calc((100% - 250px) / 2) 0;
  padding: 15px 0 15px 15px;
  width: 250px;
}

.cta_pc_wrap {
  display: none;
}

footer {
  text-align: center;
  margin: -20px 0 20px;
}
footer a {
  display: block;
  margin-bottom: 20px;
}
footer img {
  width: 180px;
  height: auto;
}





@media print, screen and (min-width:500px) {
  
  body {
    max-width: 100%;
  }

  section {
    margin: 100px auto 0;
    width: 80%;
    max-width: 800px;
  }
  section.about_wrap {
    margin: 100px auto 0;
  }
  section.overview_wrap {
    margin: 120px　auto;
  }
  section.description_wrap {
    margin: 50px auto 0;
  }
  
  h1.page_title {
    font-size: 5.0rem;
    font-weight: 700;
    line-height: 1.30;
    padding-top: calc((100% * 1 / 2 - 145px) / 2);
  }
  h1.page_title > span {
    font-size: 10.5rem;
    font-weight: 600;
    aspect-ratio: 2 / 1;
  }

  h2 {
    font-size: 3.0rem;
  }
  .images_wrap > h2 {
    margin-bottom: 50px;
  }

  h3 {
    font-size: 2.0rem;
    font-weight: 500;
    margin: 30px 0 0;
  }
  h3 > span {
    font-size: 3.0rem;
    font-weight: 10;
    vertical-align: -4.5px;
  }

  p {
    font-size: 1.6rem;
    margin: 0;
    width: 100%;
  }
  picture + p {
    margin-top: 40px;
  }
  .googlemap + p {
    margin-top: 40px;
  }
  .images_wrap p {
    font-size: 1.2rem;
    margin: 5px 1% 0;
    width: 98%;
  }

  section img {
    margin: 30px 0 0;
    width: 100%;
  }
  .images_wrap img {
    margin: 40px 0 0;
  }

  .googlemap {
    margin: 30px 0 0;
    max-width: 800px;
    max-height: 534px;
    aspect-ratio: auto;
  }

  dl {
    font-size: 1.8rem;
    margin: 60px 25% 0 30%;
    width: 45%;
  }
  dt {
    font-weight: 600;
  }
  dd {
    font-weight: 300;
  }

  .cta_sp_wrap {
    display: none;
  }
  
  .cta_pc_wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: rgb(0 0 0 / 0.05);
    border-top: solid 1px #cccccc;
    border-bottom: solid 1px #cccccc;
    text-align: center;
    margin:100px 0;
    padding: 35px 0 35px;
    width: 100%;
    max-width: none;
  }
  .cta_pc_wrap > div.plans_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 auto;
    width: 90%;
    max-width: 1000px;
    padding: 0;
  }
  .cta_pc_wrap > div.plans_wrap > h4 {
    display: inline-block;
    color: #333333;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.0;
    text-align: left;
    margin-bottom: 12px;
    width: 100%;
    position: relative;
  }
  .cta_pc_wrap > div.plans_wrap > h4.top_page {
    text-align: center;
  }
  .cta_pc_wrap > div.plans_wrap > h4.top_page::before {
    width: 0;
  }
/*
  .cta_pc_wrap > div.plans_wrap > h4.top_page::after { 
    width: 100%;
  }
*/
  .cta_pc_wrap > div.plans_wrap > a {
    display: block;
  　transition: opacity 0.5s;
    width: 30%;
    max-width: 300px;
    height: auto;
  }
  .cta_pc_wrap > div.plans_wrap > a:hover {
    opacity: 0.7;
  }
  .cta_pc_wrap > div.plans_wrap > a.top_button {
    margin-left: 4%;
  }
  .cta_pc_wrap > div.plans_wrap > a > img {
    margin: 0;
    width: 100%;
    height: auto;
  }
  .cta_pc_wrap > a {
    display: block;
    background-color: #f0512c;
    border-radius: 8px;
    color: #ffffff;
    font-size: 2.2rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.0;
  　transition: opacity 0.5s;
    margin: 30px auto 0;
    padding: 15px 0 15px 15px;
    width: 500px;
  }
  .cta_pc_wrap > a:hover {
    opacity: 0.7;
  }
  .cta_pc_wrap > a > span {
    display: block;
    font-size: 1.4rem;
    font-weight: 300;
    letter-spacing: 0em;
    margin-bottom: 10px
  }

  footer {
    margin: -20px 0 50px;
  }
  footer a {
    margin-bottom: 30px;
  }
  footer img {
    width: 240px;
  }

}
