@charset 'UTF-8';
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@font-face {
  font-family: 'Satoshi-Variable';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/heimmaison/common/fonts/Satoshi-Variable.woff2') format('woff2');
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  vertical-align: bottom;
}

a {
  color: #333;
  text-decoration: underline;
}

html {
  font-size: 87.5%;
  overflow-y: scroll;
}

@media (max-width: 374px) {
  html {
    font-size: 3.73333vw;
  }
}

body {
  background: none;
  color: #333;
  font-family: 'Satoshi-Variable', 'Noto Sans JP', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', '游ゴシック体', 'Yu Gothic', 'YuGothic', 'メイリオ', 'Meiryo', sans-serif;
  font-variation-settings: 'wght' 400;
  font-weight: 400;
  line-height: 1.7;
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@media screen and (max-width: 767px) {
  .c-br.is-pc {
    display: none;
  }
}
@media print, (min-width: 768px) {
  .c-br.is-sp {
    display: none;
  }
}

@media print, (min-width: 768px) {
  .l-wrapper {
    min-width: 1140px;
  }
}

.l-header {
  position: relative;
  height: 140px;
}
@media screen and (max-width: 767px) {
  .l-header {
    height: 90px;
  }
}
.l-header__hm {
  position: absolute;
  left: 50px;
  top: 35px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .l-header__hm {
    left: 20px;
    top: 21px;
  }
}
.l-header__hm > a {
  display: block;
}
.l-header__hm > a img {
  display: block;
  width: 262.5px;
  height: 71px;
}
@media screen and (max-width: 767px) {
  .l-header__hm > a img {
    width: 180px;
    height: 49px;
  }
}
.l-header__sk {
  position: absolute;
  right: 50px;
  top: 40px;
  line-height: 1;
}
@media screen and (max-width: 767px) {
  .l-header__sk {
    right: 20px;
    top: 23px;
  }
}
.l-header__sk > a {
  display: block;
}
.l-header__sk > a img {
  display: block;
  width: 94px;
  height: 61px;
}
@media screen and (max-width: 767px) {
  .l-header__sk > a img {
    width: 70px;
    height: 45px;
  }
}

.l-breadcrumb {
  position: relative;
  height: 30px;
  box-sizing: border-box;
  background: #ebebeb;
}
@media screen and (max-width: 767px) {
  .l-breadcrumb {
    overflow-x: auto;
    overflow-y: visible;
  }
}
.l-breadcrumb__nv {
  width: 970px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 6px 20px 0;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .l-breadcrumb__nv {
    float: left;
    width: auto;
    padding: .42857rem .71429rem 0;
    white-space: nowrap;
  }
}
.l-breadcrumb__nv > li {
  display: inline-block;
  position: relative;
  margin-left: 35px;
  font-size: 13px;
  vertical-align: top;
}
@media screen and (max-width: 767px) {
  .l-breadcrumb__nv > li {
    margin-left: 2.5rem;
    font-size: .92857rem;
  }
}
.l-breadcrumb__nv > li::before {
  content: '';
  display: block;
  position: absolute;
  left: -27px;
  top: 10px;
  width: 16px;
  height: 1px;
  background: #333;
}
@media screen and (max-width: 767px) {
  .l-breadcrumb__nv > li::before {
    left: -1.92857rem;
    top: .71429rem;
    width: 1.14286rem;
    height: .07143rem;
  }
}
.l-breadcrumb__nv > li::after {
  content: '';
  display: block;
  position: absolute;
  left: -16px;
  top: 8px;
  width: 6px;
  height: 1px;
  background: #333;
  transform: rotate(45deg);
}
@media screen and (max-width: 767px) {
  .l-breadcrumb__nv > li::after {
    left: -1.14286rem;
    top: .57143rem;
    width: .42857rem;
    height: .07143rem;
  }
}
.l-breadcrumb__nv > li > a,
.l-breadcrumb__nv > li > span {
  color: #a3a3a3;
}
.l-breadcrumb__nv > li > a.is-active,
.l-breadcrumb__nv > li > span.is-active {
  color: #333;
}
.l-breadcrumb__nv > li > a {
  text-decoration: none;
  transition: color 150ms linear;
}
@media print, (min-width: 768px) {
  .l-breadcrumb__nv > li > a:hover,
  .l-breadcrumb__nv > li > a:active {
    color: #0075c1;
  }
}
.l-breadcrumb__nv > li:first-child {
  margin-left: 0;
}
.l-breadcrumb__nv > li:first-child::before,
.l-breadcrumb__nv > li:first-child::after {
  content: normal;
}

.l-footer {
  position: relative;
  padding: 7.14286rem 0;
  background: #fff;
}
@media screen and (max-width: 767px) {
  .l-footer {
    padding: 2.85714rem 0 2.85714rem;
  }
}
.l-footer__lg {
  line-height: 1;
  text-align: center;
}
.l-footer__lg > a {
  display: inline-block;
  vertical-align: top;
}
.l-footer__lg > a img {
  width: 18.75rem;
  height: 5.07143rem;
}
@media screen and (max-width: 767px) {
  .l-footer__lg > a img {
    width: 12.85714rem;
    height: 3.5rem;
  }
}
.l-footer__nv {
  margin-top: 3.57143rem;
  line-height: 1.4;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .l-footer__nv {
    margin-top: 1.78571rem;
  }
}
.l-footer__nv__wn {
  display: inline-block;
  position: relative;
  width: 8px;
  height: 8px;
  margin-left: .71429rem;
  background: #000;
  vertical-align: 10%;
}
.l-footer__nv__wn::before,
.l-footer__nv__wn::after {
  content: '';
  display: block;
  position: absolute;
  background: #000;
}
.l-footer__nv__wn::before {
  left: -2px;
  top: 1px;
  width: 1px;
  height: 9px;
}
.l-footer__nv__wn::after {
  left: -2px;
  top: 9px;
  width: 9px;
  height: 1px;
}
.l-footer__nv > li {
  display: inline-block;
  margin-left: 3.57143rem;
}
@media screen and (max-width: 767px) {
  .l-footer__nv > li {
    display: block;
    margin: .85714rem auto 0;
  }
}
.l-footer__nv > li > a {
  transition: opacity 150ms cubic-bezier(.215, .61, .355, 1);
  display: inline-block;
  position: relative;
  color: #000;
  font-size: 1.07143rem;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .l-footer__nv > li > a {
    font-size: .85714rem;
  }
}
@media print, (min-width: 768px) {
  .l-footer__nv > li > a:hover,
  .l-footer__nv > li > a:active {
    opacity: .5;
  }
}
.l-footer__nv > li:first-child {
  margin-left: 0;
}
@media screen and (max-width: 767px) {
  .l-footer__nv > li:first-child {
    margin: 0 auto;
  }
}
.l-footer__cp {
  margin-top: 3.57143rem;
  color: #000;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .l-footer__cp {
    margin-top: 1.78571rem;
    font-size: .85714rem;
  }
}

.m-wp {
  position: relative;
  overflow: hidden;
  container-type: inline-size;
}
.m-wp__kv {
  position: relative;
}
.m-wp__kv__p {
  position: relative;
}
@media print, (min-width: 768px) {
  .m-wp__kv__p {
    height: 300px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__kv__p {
    aspect-ratio: 750/770;
  }
}
.m-wp__kv__p img {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.m-wp__kv__tw {
  position: absolute;
  left: 0;
  width: 100%;
}
@media print, (min-width: 768px) {
  .m-wp__kv__tw {
    top: 75px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__kv__tw {
    top: calc(125 / 375 * 100cqw);
  }
}
.m-wp__kv__tt {
  color: #fff;
  font-variation-settings: 'wght' 300;
  font-weight: 300;
  line-height: 1.3;
  text-align: center;
}
@media print, (min-width: 768px) {
  .m-wp__kv__tt {
    font-size: 42px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__kv__tt {
    font-size: calc(20 / 375 * 100cqw);
  }
}
.m-wp__kv__tt strong {
  display: block;
}
@media screen and (max-width: 767px) {
  .m-wp__kv__tt strong {
    margin-top: calc(5 / 375 * 100cqw);
    font-size: calc(36 / 375 * 100cqw);
  }
}
.m-wp__kv__t {
  color: #fff;
  line-height: 1.6;
  text-align: center;
}
@media print, (min-width: 768px) {
  .m-wp__kv__t {
    margin-top: 20px;
    font-size: 16px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__kv__t {
    margin-top: calc(13 / 375 * 100cqw);
    font-size: calc(16 / 375 * 100cqw);
  }
}
@media print, (min-width: 768px) {
  .m-wp__bd {
    max-width: 1220px;
    margin: 0 auto;
    padding: 80px 20px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__bd {
    padding: 60px 20px;
  }
}
.m-wp__ls {
  display: flex;
}
@media print, (min-width: 768px) {
  .m-wp__ls {
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__ls {
    flex-direction: column;
    gap: 60px;
  }
}
.m-wp__ls__tt {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
  font-size: 16px;
  font-variation-settings: 'wght' 700;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .m-wp__ls__tt {
    height: auto !important;
  }
}
.m-wp__ls__p {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
@media print, (min-width: 768px) {
  .m-wp__ls__p {
    aspect-ratio: 1;
  }
}
@media print, (min-width: 768px) {
  .m-wp__ls__p > span {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  }
}
@media print, (min-width: 768px) {
  .m-wp__ls__p > span img {
    max-width: 100%;
    max-height: 100%;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__ls__p > span img {
    max-width: 220px;
    max-height: 220px;
  }
}
.m-wp__ls__t {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .m-wp__ls__t {
    height: auto !important;
  }
}
.m-wp__ls__bt {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 200px;
  height: 45px;
  margin: 20px auto 0;
  box-sizing: border-box;
  border: 1px solid #156082;
  border-radius: 4px;
  background: #156082;
  color: #fff;
  font-size: 17px;
  font-variation-settings: 'wght' 700;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  transition: background-color 450ms cubic-bezier(.215, .61, .355, 1), color 450ms cubic-bezier(.215, .61, .355, 1);
}
.m-wp__ls__bt > span {
  display: block;
  position: absolute;
  right: 20px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -5px;
  background: #fff;
  transition: background-color 450ms cubic-bezier(.215, .61, .355, 1);
}
.m-wp__ls__bt > span::before,
.m-wp__ls__bt > span::after {
  content: '';
  display: block;
  position: absolute;
  background: #fff;
  transition: background-color 450ms cubic-bezier(.215, .61, .355, 1);
}
.m-wp__ls__bt > span::before {
  left: -2px;
  top: 1px;
  width: 1px;
  height: 9px;
}
.m-wp__ls__bt > span::after {
  left: -2px;
  top: 9px;
  width: 9px;
  height: 1px;
}
@media print, (min-width: 768px) {
  .m-wp__ls__sn {
    height: 100%;
    box-sizing: border-box;
    padding: 30px 15px;
  }
}
@media print, (min-width: 768px) {
  .m-wp__ls__sn__p {
    aspect-ratio: 1;
  }
}
.m-wp__ls__sn__p > span {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  aspect-ratio: 376/532;
  background: rgba(0, 0, 0, .08);
  color: #8d8d8d;
  font-variation-settings: 'wght' 700;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}
@media print, (min-width: 768px) {
  .m-wp__ls__sn__p > span {
    max-height: 100%;
    font-size: 20px;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__ls__sn__p > span {
    max-height: 220px;
    font-size: 16px;
  }
}
@media print, (min-width: 768px) {
  .m-wp__ls > li {
    width: 25%;
  }
}
.m-wp__ls > li a {
  display: block;
  color: inherit;
  text-decoration: none;
}
@media print, (min-width: 768px) {
  .m-wp__ls > li a {
    height: 100%;
    box-sizing: border-box;
    padding: 30px 15px;
    transition: background-color 450ms cubic-bezier(.215, .61, .355, 1);
  }
}
@media print, (min-width: 768px) {
  .m-wp__ls > li a:hover,
  .m-wp__ls > li a:active {
    background: #eff4f7;
  }
  .m-wp__ls > li a:hover .m-wp__ls__bt,
  .m-wp__ls > li a:active .m-wp__ls__bt {
    background: #fff;
    color: #156082;
  }
  .m-wp__ls > li a:hover .m-wp__ls__bt > span,
  .m-wp__ls > li a:active .m-wp__ls__bt > span {
    background: #156082;
  }
  .m-wp__ls > li a:hover .m-wp__ls__bt > span::before,
  .m-wp__ls > li a:hover .m-wp__ls__bt > span::after,
  .m-wp__ls > li a:active .m-wp__ls__bt > span::before,
  .m-wp__ls > li a:active .m-wp__ls__bt > span::after {
    background: #156082;
  }
}
@media screen and (max-width: 767px) {
  .m-wp__ls > li.is-soon .m-wp__ls__tt {
    display: none;
  }
}
