@charset "UTF-8";

/* 共通（smartstore / scan 共有） */
html {
  scroll-behavior: smooth;
}



#selfregi h2 {
  color: white;
  background-color: #0064ff;
  text-align: center;
  font-size: 3rem;
  font-weight: 900;
  padding: 10px;
  width: 100%;
}

#selfregi h3 {
  font-size: 2.8rem;
  text-align: center;
  font-weight: 900;
  color: #FFF;
  padding: 5px 10px;
  margin: 20px 40px;
  background-color: #ff0000;
  border-radius: 50px;
}


#selfregi h4 {
  font-size: 2.5rem;
  text-align: center;
  font-weight: 900;
  color: #000;
  padding: 25px 20px 20px;
}

#selfregi .section01-2 h4 {
  font-size: 4.5rem;
  text-align: center;
  font-weight: 900;
  color: #000;
  padding: 25px 20px 20px;
}

#selfregi .section01-2 p {
  font-size: 3rem;
  line-height: 2;
}



#selfregi p {
  font-size: 2rem;
  font-weight: 700;
  color: #000;
}

.text-center {
  text-align: center !important;
}

.text-left {
  text-align: left !important;
}

.obi-red{
  background-color: #ff0000 !important;
  border-radius: 0;
}

.obi-blue{
  background-color: #0064ff !important;
  border-radius: 0;
}

.font-weight-bold {
  font-weight: 900;
}

.text-red {
  color: #ff0000 !important;
}


.text-large {
  font-size: 5.6rem;
  font-weight: 900;
  color: #000;
}

.text-xlarge {
  font-size: 7.5rem;
  font-weight: 900;
  color: #000;
}

.text-white {
  color: #FFF !important;
}


.text-blue {
  color: #001eb4;
}

.text-bg-black {
  background-color: #000;
  color: #FFF;
  padding: 15px 25px;
  line-height: 3;
}

.text-bg-blue {
  background-color: #001eb4;
  color: #FFF;
  padding: 15px 25px;
  line-height: 3;
}


.text-larger1 {
  font-size: 1.2em;
}

.text-larger2 {
  font-size: 1.7em;
}


.text-smaller {
  font-size: 0.8em;
}

.bg-red {
  background-color: #ff0000;
  border-radius: 15px;
  padding: 15px 30px;
  display: inline-block;
}

.font-30 {
  font-size: 2.5rem;
}

.mt-2 {
  margin-top: 2rem;
}


.mt-5 {
  margin-top: 5rem;
}

.mb-5 {
  margin-bottom: 5rem;
}


.w-100 {
  width: 100%;
}

.u-full-bleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.u-full-bleed-inset {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}

@media (max-width: 768.98px) {
  .u-full-bleed {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
  }
}

/* ボタン本体 */
.btn-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  width: 200px;
  padding: 12px 25px;
  background-color: #FFF;
  /* 通常時の背景色 */
  color: #000;
  font-weight: bold;
  text-decoration: none;
  border-radius: 50px;
  transition: 0.3s;
  border: #fff 1px solid;
}

/* ホバー時のボタン */
.btn-arrow:hover {
  background-color: #004457;
  /* ホバー時に背景色を変更 */
  color: #FFF;
  /* 文字色も変更 */
}

.btn-arrow2 {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  width: 200px;
  padding: 12px 25px;
  background-color: #FFF;
  /* 通常時の背景色 */
  color: #000;
  font-weight: bold;
  text-decoration: none;
  border-radius: 50px;
  transition: 0.3s;
  border: #fff 1px solid;
}

/* ホバー時のボタン */
.btn-arrow2:hover {
  background-color: #351f86;
  /* ホバー時に背景色を変更 */
  color: #FFF;
  /* 文字色も変更 */
}


/* 矢印の「棒」部分 */
.arrow-stick {
  position: relative;
  display: inline-block;
  width: 25px;
  height: 2px;
  background-color: #000;
  transition: 0.3s;
}

/* 矢印の「先端（＞）」部分 */
.arrow-stick::after {
  content: "";
  position: absolute;
  top: -6px;
  right: 0;
  width: 14px;
  height: 14px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: rotate(45deg);
}

/* ホバー時の動き（右にスライド） */
.btn-arrow:hover .arrow-stick {
  transform: translateX(8px);
  background-color: #FFF;
}

.btn-arrow:hover .arrow-stick::after {
  border-color: #FFF;
}

.btn-arrow2:hover .arrow-stick {
  transform: translateX(8px);
  background-color: #FFF;
}

.btn-arrow2:hover .arrow-stick::after {
  border-color: #FFF;
}



@media (max-width: 768.98px) {

  /* ボタン本体 */
  .btn-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 90px;
    padding: 2px 6px;
    background-color: #FFF;
    color: #000;
    font-weight: bold;
    text-decoration: none;
    border-radius: 10px;
    transition: 0.3s;
    border: #fff 1px solid;
    font-size: 1rem;
  }

  /* ホバー時のボタン */
  .btn-arrow:hover {
    background-color: #004457;
    color: #FFF;
  }

  .btn-arrow2 {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 90px;
    padding: 2px 6px;
    background-color: #FFF;
    color: #000;
    font-weight: bold;
    text-decoration: none;
    border-radius: 10px;
    transition: 0.3s;
    border: #fff 1px solid;
    font-size: 1rem;
  }

  /* ホバー時のボタン */
  .btn-arrow2:hover {
    background-color: #351f86;
    color: #FFF;
  }

  /* 矢印の「棒」部分 */
  .arrow-stick {
    position: relative;
    display: inline-block;
    width: 12px;
    height: 2px;
    background-color: #000;
    transition: 0.3s;
  }

  .arrow-stick::after {
    content: "";
    position: absolute;
    top: -2px;
    right: 0;
    width: 6px;
    height: 6px;
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    transform: rotate(45deg);
  }

  /* ホバー時の動き（右にスライド） */
  .btn-arrow:hover .arrow-stick {
    transform: translateX(8px);
    background-color: #FFF;
  }

  .btn-arrow:hover .arrow-stick::after {
    border-color: #FFF;
  }
}


/* ===================================================
 *バーガーメニュー対応
 * =================================================== */

@media (max-width: 768.98px) {

  .header__check+span [for]>span::before {
    top: -8px;
  }
}

@media (max-width: 768.98px) {

  .header__check+span [for]>span::before,
  .header__check+span [for]>span::after {
    display: inherit;
    position: inherit;
    left: 0;
    right: 0;
    height: inherit;
    margin: inherit;
    background-color: #000;
    -webkit-transition: top .5s, -webkit-transform .5s;
    transition: top .5s, -webkit-transform .5s;
    transition: transform .5s, top .5s;
    transition: transform .5s, top .5s, -webkit-transform .5s;
    content: "";
  }
}

/* ===================================================
 * 1. ルート＆スクロール基本設定
 * ブレークポイント: SP max-width 768.98px / PC min-width 769px（smartstore.js と統一）
 * =================================================== */
html,
body {
  scroll-snap-type: none !important;
  overscroll-behavior-y: none;
  margin: 0;
  padding: 0;
}

/* ===================================================
 * 2. コンテナの設定リセット
 * =================================================== */
.container {
  scroll-snap-type: none !important;
  height: auto;
  overflow: visible;
  padding-top: 0px !important;
}

/* ===================================================
 * 3. .main-visual / .area スクロールスナップ（PC基本）
 * =================================================== */
.main-visual,
.area {
  scroll-snap-align: none !important;
  scroll-snap-stop: normal !important;
  box-sizing: border-box;
  scroll-margin-top: 80px;
}

.main-visual {
  height: calc(100vh - 190px) !important;
}

.area {
  height: calc(100vh - 50px) !important;
  min-height: 0;
  padding-top: 25px !important;
  padding-bottom: 25px !important;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-start;
  justify-content: safe center;
  align-items: center;
}

/* ===================================================
 * 4. パンくずリストの設定（PC）
 * =================================================== */
.breadcrumb {
  position: relative;
  z-index: 10;
  background: #fff;
  /* 背景を白に固定 */
  margin: 0 auto;
  padding: 15px;

  margin-top: 140px !important;
}

@media (min-width: 769px) {
  /* 縦幅不足時: 固定 height だと中身が次セクションと重なるため、コンテンツに合わせて伸ばす */
  .area {
    height: auto !important;
    min-height: calc(100vh - 50px);
    overflow: hidden;
    justify-content: safe center !important;
  }

  /* --- コンテンツ cap（PC） --- */
  .area figure.image,
  .area .image__wrap {
    width: 100%;
    max-width: 100%;
  }

  .area .image__wrap img,
  .area .room-container .base-plan {
    display: block;
    width: 100%;
    height: auto;
    margin-inline: auto;
    object-fit: contain;
  }

  .area .room-container {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }

  .area .fig-graph .image__wrap img {
    max-height: 26vh;
  }
}

@media (min-width: 769px) {
  .area .block-list--typeB--extend {
    max-height: 34vh;
    align-items: center;
  }

  .area .selfregi-video {
    width: 800px;
    max-width: 800px;
    min-width: 800px;
    max-height: none;
    margin-inline: auto;
    padding-top: 0;
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .area .primestore-sys-inner img {
    max-height: 16vh;
    width: auto;
    max-width: 100%;
    object-fit: contain;
  }

  .area.primestore04 .primestore04_lower img {
    max-height: 10vh;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    min-height: 100px;
  }

  /* --- はみ出し防止（共通） --- */
  .section-scan01.area,
  .section-scan02.area,
  .section-scan03.area,
  .section01.area,
  .section01-2.area,
  .section05.area,
  .primestore04.area {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .section-scan01.area,
  .section-scan02.area,
  .section-scan03.area,
  .section01.area,
  .section01-2.area,
  .section05.area {
    container-type: size;
  }

  .section-scan01.area > .block-scan,
  .section-scan02.area > .block-scan,
  .section-scan03.area > .primestore-sys,
  .section-scan03.area > .app-screens,
  .section01.area > *,
  .section01-2.area > *,
  .section05.area > * {
    flex-shrink: 0;
    margin-top: 0;
    margin-bottom: 0;
  }

  .section-scan03.area > .primestore-sys,
  .section-scan03.area > .app-screens {
    width: 100%;
  }

  /* --- はみ出し防止（Container Query・セクション別） --- */
  @container (min-height: 680px) {
    .section-scan01.area > .block-scan,
    .section-scan02.area > .block-scan {
      margin-top: auto;
      margin-bottom: auto;
    }
  }

  @container (min-height: 720px) {
    .section-scan03.area > .primestore-sys,
  .section-scan03.area > .app-screens {
      margin-top: auto;
      margin-bottom: auto;
    }
  }

  @container (min-height: 580px) {
    .section01.area::before,
    .section01.area::after {
      content: "";
      flex: 1 1 0;
      min-height: 0;
      width: 100%;
    }
  }

  @container (min-height: 480px) {
    .section01-2.area::before,
    .section01-2.area::after {
      content: "";
      flex: 1 1 0;
      min-height: 0;
      width: 100%;
    }
  }

  @container (min-height: 620px) {
    .section05.area::before,
    .section05.area::after {
      content: "";
      flex: 1 1 0;
      min-height: 0;
      width: 100%;
    }
  }

  /* --- その他 .area セクション --- */
  .primestore04_square-item {
    flex-shrink: 0;
  }

  .section06.br-PC {
    position: relative;
    z-index: 1;
    isolation: isolate;
  }
}



@media (max-width: 768.98px) {

  html,
  body {
    height: auto !important;
    overscroll-behavior-y: auto;
  }

  .breadcrumb {
    margin: 0 auto;
    padding-left: 15px;
    padding-right: 15px;
    margin-top: 0px !important;
  }

  .main-visual {
    height: 100dvh !important;
    box-sizing: border-box;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;

    padding-top: 40px !important;
    padding-bottom: 40px !important;

    left: auto !important;
    transform: none !important;
  }

  .main-visual-content {
    width: 100% !important;
  }

  /* .area SP リセット */
  .area {
    height: auto !important;
    min-height: 0 !important;
    box-sizing: border-box;
    display: block !important;
    clear: both !important;
    position: relative !important;
    float: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }

  .section01,
  .section01-2,
  .section01-3 {
    display: block !important;
    clear: both !important;
    position: relative !important;
    height: auto !important;
  }
}

@media (min-width: 769px) {
  .br-sp {
    display: none !important;
  }

  .br-PC {
    display: inline;
  }
}

@media (max-width: 768.98px) {
  .br-sp {
    display: inline;
  }

  .br-PC {
    display: none !important;
  }
}