@charset "UTF-8";
@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap);
/* @import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&display=swap'); */
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&family=M+PLUS+Rounded+1c&display=swap");
:root {
  --lp-black: #202020;
  --lp-sub-color: #76766B;
  --lp-bg-color: #EDEDE4;
  /* --sub-font: "M PLUS Rounded 1c", sans-serif; */
  --sub-font: "M PLUS 1", sans-serif;
}

.-bg-photo {
  background: url(https://stprodaeonblob.blob.core.windows.net/eshop-files/images/other/builtin_bg.jpg) no-repeat top center/cover;
  background-attachment: fixed;
}

.-bg-white {
  background-color: #fff;
}

.-bg-clear {
  background-color: rgba(255, 255, 255, 0.7333333333);
}

.-bg-blur {
  background-color: rgba(255, 255, 255, 0.7333333333);
  backdrop-filter: blur(8px);
}
.-bg-blur .p-builtin-grid-box__item .-desc {
  background-color: #fff;
}

.p-lp-wrapper {
  overflow: clip;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.p-bg-wrap {
  padding: 80px 0;
}
@media (width < 768px) {
  .p-bg-wrap {
    padding: 50px 0;
  }
}

.c-builtin-freedial {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: max-content;
  font-family: var(--sub-font);
  font-size: min(9vw, 3.4rem);
  font-weight: 400;
  line-height: 1;
  vertical-align: bottom;
}
.c-builtin-freedial:before {
  aspect-ratio: 53/42;
  content: "";
  display: block;
  width: min(9vw, 3.4rem);
  background: url(https://stprodaeonblob.blob.core.windows.net/eshop-files/images/other/builtin_ico_freedial.png) no-repeat center center/contain;
}

.c-builtin-heading-text {
  font-size: min(7vw, 3rem);
  font-weight: 300;
  text-align: center;
}
.c-builtin-heading-text.-text-small {
  font-size: min(5.6vw, 2.4rem);
}
.c-builtin-heading-text.-black {
  padding: 10px 5px;
  color: #fff;
  background: var(--lp-black);
}

/* ======================================
    MV
====================================== */
.p-builtin-mv {
  padding: 8% 0 12%;
}
@media (width >= 768px) {
  .p-builtin-mv {
    min-height: 500px;
    /* aspect-ratio: 1140/400; */
    padding-top: 3%;
    padding-bottom: 10%;
  }
}

.c-builtin-heading-label {
  position: relative;
  width: max-content;
  padding: 15px 150px 15px 0;
  font-size: min(6.2vw, 2.2rem);
  font-weight: 300;
  color: #fff;
  background-color: var(--lp-black);
}
@media (width < 768px) {
  .c-builtin-heading-label {
    padding: 10px 60px 10px 0;
  }
}
.c-builtin-heading-label span {
  position: relative;
}
.c-builtin-heading-label:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 100vw;
  height: 100%;
  background-color: var(--lp-black);
}
.c-builtin-heading-label.-baige {
  color: #252525;
}
.c-builtin-heading-label.-baige:before {
  background-color: var(--lp-bg-color);
}

.p-builtin-mv__copy {
  margin-top: 5%;
  font-size: min(8.8vw, 3.5rem);
  font-weight: 300;
  line-height: 1.2;
}
@media (width < 768px) {
  .p-builtin-mv__copy {
    margin-top: 10%;
  }
}

.p-builtin-mv__dial {
  margin-top: 5%;
  line-height: 1.5;
}
.p-builtin-mv__dial .c-builtin-freedial {
  margin: 12px 0;
}
.p-builtin-mv__dial p {
  font-family: var(--sub-font);
  font-size: min(4.5vw, 1.2rem);
}
@media (width < 768px) {
  .p-builtin-mv__dial {
    margin-top: 8%;
  }
}

/* ======================================
    ラインナップ
====================================== */
.p-builtin-lineup__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin: 50px 0;
}
@media (width < 768px) {
  .p-builtin-lineup__list {
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 30px 0;
  }
}

.c-builtin-lineup-card {
  display: grid;
  grid-template-columns: 45% 1fr;
  gap: 30px;
  background-color: var(--lp-bg-color);
}
@media (width < 768px) {
  .c-builtin-lineup-card {
    grid-template-columns: 35% 1fr;
    gap: 20px;
  }
}

.c-builtin-lineup-card__img img {
  aspect-ratio: 4/3;
  object-fit: cover;
}

.c-builtin-lineup-card__detail {
  padding: 20px 10px 20px 0;
  align-self: center;
}
.c-builtin-lineup-card__detail .-logo {
  max-width: min(25vw, 150px);
}
.c-builtin-lineup-card__detail .-name {
  margin-top: 15px;
  font-size: 1.25rem;
}
@media (width < 768px) {
  .c-builtin-lineup-card__detail .-name {
    margin-top: 10px;
  }
}
.c-builtin-lineup-card__detail .-description {
  margin-top: 10px;
  font-size: 0.7rem;
  line-height: 1.3;
  color: var(--lp-sub-color);
}
@media (width < 768px) {
  .c-builtin-lineup-card__detail .-description {
    margin-top: 5px;
  }
}

.c-builtin-link-btn {
  display: block;
  padding: 15px 20px;
  font-size: min(4.8vw, 1.6rem);
  text-align: center;
  color: #fff;
  background-color: var(--lp-black);
}

/* ======================================
    商品スペック
====================================== */
.c-builtin-spec-card {
  display: grid;
  grid-template-columns: 48% 1fr;
  gap: 50px;
}
@media (width < 768px) {
  .c-builtin-spec-card {
    grid-template-columns: 100%;
    gap: 0;
  }
}

.c-builtin-spec-card__img {
  position: relative;
  z-index: 1;
}
.c-builtin-spec-card__img img {
  aspect-ratio: 4.3/3;
  object-fit: cover;
}

.c-builtin-spec-card__detail {
  padding-top: 30px;
}
.c-builtin-spec-card__detail .-logo {
  max-width: min(40vw, 250px);
  margin-bottom: 30px;
}
.c-builtin-spec-card__detail .-name {
  margin-top: 15px;
  font-size: 2rem;
}
@media (width < 768px) {
  .c-builtin-spec-card__detail .-name {
    margin-top: 10px;
  }
}
.c-builtin-spec-card__detail .-name small {
  display: inline-block;
  margin-left: 20px;
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--lp-sub-color);
}
.c-builtin-spec-card__detail .-description {
  margin-top: 20px;
  color: var(--lp-sub-color);
}
@media (width < 768px) {
  .c-builtin-spec-card__detail .-description {
    margin-top: 5px;
  }
}

.c-builtin-spec-card__detail-bg {
  position: relative;
  padding: 30px 40px 50px 0;
}
.c-builtin-spec-card__detail-bg:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 150%;
  height: 100%;
  background-color: var(--lp-bg-color);
}
.c-builtin-spec-card__detail-bg > * {
  position: relative;
}
.c-builtin-spec-card__detail-bg > *:first-child {
  margin-top: 0;
}

.c-builtin-spec-card__price {
  padding: 20px 30px 0 20px;
}

.c-builtin-spec-card__price-breakdown {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 3px 40px;
  font-size: 1.25rem;
}
.c-builtin-spec-card__price-breakdown dt {
  font-weight: 500;
  text-align: right;
}

.c-builtin-spec-card__price-total {
  margin-top: 20px;
  font-size: min(5vw, 2rem);
  line-height: 1;
}
.c-builtin-spec-card__price-total span {
  display: inline-block;
  margin: 0 10px 0 15px;
  font-size: 180%;
  font-weight: 400;
}

/* ======================================
    特徴
====================================== */
.p-builtin-features-box {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: auto;
  gap: 40px;
  margin-top: 50px;
}
@media (width < 768px) {
  .p-builtin-features-box {
    grid-template-columns: 1fr;
    /* grid-template-columns: repeat(2, 1fr); */
    gap: 20px;
  }
}

.p-builtin-features-box__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
  background-color: #fff;
}
.p-builtin-features-box__item .-desc {
  align-self: center;
  padding: 15px 12px;
  font-size: 0.9rem;
  color: var(--lp-sub-color);
}

/* ======================================
    機能・カラーラインナップ
====================================== */
.p-builtin-grid-box {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: auto;
  gap: 50px;
}
@media (width < 768px) {
  .p-builtin-grid-box {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

.p-builtin-grid-box__title {
  aspect-ratio: 1/1;
  display: grid;
  place-content: center;
  font-size: min(5vw, 2rem);
  font-weight: 300;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  background-color: var(--lp-black);
}

.p-builtin-grid-box__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
}
.p-builtin-grid-box__item .-desc {
  align-self: stretch;
  display: grid;
  place-content: center;
  padding: 12px;
  font-size: 1.1rem;
  line-height: 1.2;
  font-weight: bold;
  text-align: center;
  background-color: var(--lp-bg-color);
}
@media (width < 768px) {
  .p-builtin-grid-box__item .-desc {
    font-size: 0.9rem;
  }
}

/* ======================================
    お申し込みについて
====================================== */
.p-builtin-flow-section {
  font-size: 1.1rem;
  margin-top: 60px;
}
@media (width < 768px) {
  .p-builtin-flow-section {
    font-size: 0.9rem;
  }
}
.p-builtin-flow-section + .p-builtin-flow-section {
  margin-top: 60px;
}

.p-builtin-flow-section__title {
  position: relative;
  margin-bottom: 20px;
  padding-left: min(23vw, 110px);
  font-size: min(5vw, 1.6rem);
  font-weight: 500;
}
.p-builtin-flow-section__title span {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  margin-right: 15px;
  padding: 0 10px;
  font-size: 90%;
  font-weight: 400;
  color: #fff;
  background-color: var(--lp-black);
}