@charset "UTF-8";
/* =========================================================
   CRAFT MAISON 商品ページ
   ========================================================= */
/* 改行出し分け */
@media screen and (max-width: 768px) {
  .u-br-pc {
    display: none;
  }
}

.u-br-sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .u-br-sp {
    display: inline;
  }
}

/* ---------------------------------------------------------
   イントロ（MV／コンセプト／FEATURES／MISSION／VALUE）
   Figma: node 76:1284（アートボード 1200px・コンテンツ幅 1000px）
          SP node 104:959（アートボード 393px・コンテンツ幅 320px）
   --------------------------------------------------------- */
.cm-intro {
  position: relative;
  overflow: hidden;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-intro {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-intro {
    font-size: 4.071247vw;
  }
}
.cm-intro__inner, .cm-intro__concept, .cm-intro__lower, .cm-intro__bg, .cm-intro__stage, .cm-intro__block, .cm-intro__values, .cm-intro__value, .cm-intro__value-head {
  font-size: 1em;
}
.cm-intro__inner {
  position: relative;
  z-index: 1;
  width: 62.5em;
  margin: 0 auto;
}
.cm-intro__inner--upper {
  padding-top: 3.375em;
}
@media screen and (max-width: 768px) {
  .cm-intro__inner {
    width: 20em;
  }
  .cm-intro__inner--upper {
    padding-top: 2.1875em;
  }
}
.cm-intro__title {
  position: relative;
  margin: 0;
  padding-left: 19.875em;
  font-size: 1em;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .cm-intro__title {
    padding-left: 0;
  }
}
.cm-intro__title-main {
  display: block;
  font-family: "Figtree", sans-serif;
  font-size: 4.375em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-intro__title-main {
    margin-top: 0.1851851852em;
    font-size: 3.375em;
    line-height: 0.962963;
  }
}
.cm-intro__title-sub {
  position: absolute;
  top: 1.25em;
  left: 3.3em;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 768px) {
  .cm-intro__title-sub {
    position: static;
    display: block;
    font-size: 1.125em;
    line-height: 1.444444;
  }
}
.cm-intro__title-ruby {
  position: absolute;
  top: -1em;
  left: 79.7em;
  font-size: 0.625em;
  font-weight: 400;
  line-height: 1.2;
}
@media screen and (max-width: 768px) {
  .cm-intro__title-ruby {
    top: 10.8em;
    left: 23.75em;
    letter-spacing: -0.02em;
    white-space: nowrap;
  }
}
.cm-intro__concept {
  position: relative;
  margin-top: 1.25em;
}
@media screen and (max-width: 768px) {
  .cm-intro__concept {
    margin-top: 1.3125em;
  }
}
.cm-intro__catch {
  position: absolute;
  top: 0.1818181818em;
  left: 4.0909090909em;
  margin: 0;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.3636363636em;
  white-space: nowrap;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 768px) {
  .cm-intro__catch {
    top: 0.2777777778em;
    left: 0;
    font-size: 1.125em;
    letter-spacing: 0.3333333333em;
  }
}
.cm-intro__lead {
  width: 41.6666666667em;
  margin: 0 0 0 8.3888888889em;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 2.111111;
}
@media screen and (max-width: 768px) {
  .cm-intro__lead {
    width: auto;
    margin-left: 2.53125em;
    font-size: 1em;
    line-height: 2;
    letter-spacing: -0.02em;
    text-align: justify;
  }
}
.cm-intro__lower {
  position: relative;
  margin-top: -1.4375em;
  padding-bottom: 6.3125em;
}
@media screen and (max-width: 768px) {
  .cm-intro__lower {
    margin-top: -1.0625em;
    padding-bottom: 3.875em;
  }
}
.cm-intro__bg {
  position: absolute;
  z-index: 0;
  top: 3em;
  right: 0;
  bottom: 0;
  left: 0;
}
.cm-intro__bg img {
  display: block;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 768px) {
  .cm-intro__bg {
    top: 3.625em;
    background-color: #e3dde8;
    clip-path: polygon(0 6em, 100% 0, 100% 100%, 0 100%);
  }
  .cm-intro__bg img {
    display: none;
  }
}
.cm-intro__stage {
  position: relative;
  padding-top: 12.9375em;
}
@media screen and (max-width: 768px) {
  .cm-intro__stage {
    padding-top: 0;
  }
}
.cm-intro__photo {
  position: absolute;
  top: -0.75em;
  left: 7.25em;
  width: 48.5625em;
  margin: 0;
  transform: rotate(-2deg);
}
.cm-intro__photo img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .cm-intro__photo {
    position: static;
    width: 23.06875em;
    margin-left: -1.2875em;
  }
}
.cm-intro__block {
  position: relative;
}
.cm-intro__block--features {
  width: 42.125em;
  margin-left: 15.875em;
  text-align: right;
}
.cm-intro__block--mission {
  width: 52.5em;
  margin: 3.625em 0 0 5.5em;
}
@media screen and (max-width: 768px) {
  .cm-intro__block--features, .cm-intro__block--mission {
    width: auto;
    margin-left: 0;
  }
  .cm-intro__block--features {
    margin-top: 1.875em;
    text-align: left;
  }
  .cm-intro__block--mission {
    margin-top: 2.5625em;
  }
}
.cm-intro__label {
  margin: 0;
  color: #a48daf;
  font-size: 1.25em;
  font-weight: 900;
  line-height: 2;
  letter-spacing: 0.02em;
  font-feature-settings: "palt";
}
.cm-intro__label--features {
  padding-right: 0.8em;
}
@media screen and (max-width: 768px) {
  .cm-intro__label--features {
    padding-right: 0;
  }
}
.cm-intro__heading {
  margin: 0;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.818182;
  letter-spacing: 0.08em;
  font-feature-settings: "palt";
}
.cm-intro__heading--features {
  padding-right: 0.5em;
}
@media screen and (max-width: 768px) {
  .cm-intro__heading {
    margin-top: -0.1363636364em;
    line-height: 1.727273;
  }
  .cm-intro__heading--features {
    padding-right: 0;
  }
}
.cm-intro__text {
  margin: 0.6666666667em 0 0;
  font-family: "Zen Old Mincho", serif;
  font-size: 1.125em;
  font-weight: 400;
  line-height: 2;
  letter-spacing: -0.02em;
  font-feature-settings: "palt";
}
.cm-intro__text--justify {
  letter-spacing: -0.04em;
  text-align: justify;
}
@media screen and (max-width: 768px) {
  .cm-intro__text {
    margin-top: 0.625em;
    font-size: 1em;
    letter-spacing: 0;
    text-align: justify;
  }
  .cm-intro__text--justify {
    letter-spacing: -0.04em;
  }
}
.cm-intro__values {
  display: flex;
  gap: 2.25em;
  margin: 3.75em 0 0 5.375em;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-intro__values {
    flex-direction: column;
    gap: 1.4375em;
    margin: 2.9375em 0 0;
  }
}
.cm-intro__value {
  width: 16.25em;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-intro__value {
    width: auto;
  }
}
.cm-intro__value-head {
  display: flex;
  align-items: center;
  height: 2.4375em;
  margin: 0;
  line-height: 1;
}
.cm-intro__value-num {
  flex: none;
  width: 5.25em;
  color: #a48daf;
  font-size: 1.25em;
  font-weight: 900;
  letter-spacing: 0.02em;
  font-feature-settings: "palt";
}
.cm-intro__value-name {
  font-size: 1.25em;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.cm-intro__value-line {
  display: block;
  position: relative;
  width: 12.5em;
  height: 1px;
}
.cm-intro__value-line img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  max-width: none;
  height: 12.5em;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.cm-intro__value-catch {
  margin: 0.55em 0 0;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-intro__value-text {
  margin: 0.75em 0 0;
  font-size: 1em;
  font-weight: 400;
  line-height: 1.75;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-intro__value-text {
    margin-top: 0.25em;
  }
}
.cm-intro__value-points {
  margin: 0.75em 0 0;
  padding: 0;
  font-size: 1em;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-intro__value-points {
    margin-top: 0.625em;
  }
}
.cm-intro__value-point {
  position: relative;
  margin: 0;
  padding-left: 1.4375em;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.02em;
  list-style: none;
}
.cm-intro__value-point::before {
  content: "■";
  position: absolute;
  top: 0;
  left: 0;
  color: #a48daf;
}
@media screen and (max-width: 768px) {
  .cm-intro__value-point {
    padding-left: 1.5625em;
  }
}

/* ---------------------------------------------------------
   商品詳細ページ MV（ZERO-CUBE / GARAGE 共通）
   Figma: node 77:1329 / 77:1330（アートボード 1200px・コンテンツ幅 1000px）
   --------------------------------------------------------- */
.cm-mv {
  overflow: hidden;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-mv {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-mv {
    font-size: 4.071247vw;
  }
}
.cm-mv__inner, .cm-mv__head, .cm-mv__photo {
  font-size: 1em;
}
.cm-mv__inner {
  width: 62.5em;
  margin: 0 auto;
  padding-top: 4.125em;
}
@media screen and (max-width: 768px) {
  .cm-mv__inner {
    width: 20em;
    padding-top: 2em;
  }
}
.cm-mv__head {
  position: relative;
  padding-left: 5.5625em;
}
.cm-mv__head::before {
  content: "";
  position: absolute;
  top: 0.4375em;
  left: -1.5625em;
  width: 6em;
  height: 4.5em;
  background-color: #a48daf;
}
@media screen and (max-width: 768px) {
  .cm-mv__head {
    padding-left: 0.8125em;
  }
  .cm-mv__head::before {
    top: 0.1875em;
    left: -2.28125em;
    width: 2.25em;
    height: 3em;
  }
}
.cm-mv__title {
  margin: 0;
  font-size: 1em;
  line-height: 1;
}
.cm-mv__title-sub {
  display: block;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-mv__title-sub {
    font-size: 1em;
    line-height: 1.25;
  }
}
.cm-mv__title-main {
  display: block;
  font-family: "Figtree", sans-serif;
  font-size: 3.25em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-mv__title-main {
    font-size: 2em;
    line-height: 1.09375;
    letter-spacing: 0.01em;
  }
}
.cm-mv__catch {
  margin: 1.2272727273em 0 0;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.818182;
  letter-spacing: 0.08em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-mv__catch {
    margin: 1em 0 0 -0.65em;
    font-size: 1.25em;
    line-height: 1.6;
  }
}
.cm-mv__badge {
  position: absolute;
  top: 0;
  right: 3.9375em;
  width: 7.5em;
  margin: 0;
}
.cm-mv__badge img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .cm-mv__badge {
    top: auto;
    right: 0;
    bottom: -28.26666vw;
    width: 18.1333vw;
  }
}
.cm-mv__photo {
  max-width: 75em;
  margin: 2.5em auto 0;
}
.cm-mv__photo img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .cm-mv__photo {
    margin-top: 1.5em;
  }
}

/* ---------------------------------------------------------
   プラン紹介（外観写真・間取り・価格）
   Figma: node 56:254007（パーツ幅 991px を 1000px コンテナ中央に配置）
   上段＝見出し・説明・写真、下段＝間取り図＋スペック
   --------------------------------------------------------- */
.cm-plan {
  padding: 7em 0 6.25em;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-plan {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-plan {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-plan {
    padding: 3.75em 0;
  }
}
.cm-plan__inner, .cm-plan__item, .cm-plan__upper, .cm-plan__middle, .cm-plan__floors, .cm-plan__floor, .cm-plan__floor-maps, .cm-plan__shot, .cm-plan__intro, .cm-plan__head, .cm-plan__row, .cm-plan__copy, .cm-plan__photo, .cm-plan__lower, .cm-plan__maps, .cm-plan__map, .cm-plan__side, .cm-plan__compass, .cm-plan__spec, .cm-plan__price, .cm-plan__price-row {
  font-size: 1em;
}
.cm-plan__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-plan__inner {
    width: 20em;
  }
}
.cm-plan__photo, .cm-plan__map {
  margin: 0;
}
.cm-plan__photo img, .cm-plan__map img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-plan__upper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .cm-plan__upper {
    flex-direction: column;
  }
}
.cm-plan__intro {
  width: 32em;
}
@media screen and (max-width: 768px) {
  .cm-plan__intro {
    width: auto;
  }
}
.cm-plan__head {
  display: flex;
  align-items: flex-start;
  margin: 0;
  line-height: 1;
}
.cm-plan__head::before {
  content: "";
  flex: none;
  width: 3em;
  height: 0.25em;
  margin: 1.5625em 1.0625em 0 0;
  background-color: #a48daf;
}
@media screen and (max-width: 768px) {
  .cm-plan__head {
    flex-wrap: wrap;
    margin-left: -2.28125em;
  }
  .cm-plan__head::before {
    width: 1.5em;
    margin: 1em 0.625em 0 0;
  }
}
.cm-plan__name {
  font-family: "Figtree", sans-serif;
  font-size: 2.75em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-plan__name {
    font-size: 2em;
  }
}
.cm-plan__name-note {
  margin: 0.8333333333em 0 0 0.2777777778em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.888889;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-plan__name-note {
    flex: 0 0 100%;
    margin: 0.2875em 0 0;
    padding-left: 2.1875em;
    font-size: 1em;
    line-height: 1.375;
  }
}
.cm-plan__row {
  display: flex;
  align-items: flex-start;
  margin-top: 1.8125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__row {
    flex-direction: column;
    margin-top: 0.8125em;
  }
}
.cm-plan__copy {
  flex: none;
  width: 15.6875em;
  margin-left: 0.0625em;
}
@media screen and (max-width: 768px) {
  .cm-plan__copy {
    width: auto;
    margin-left: 0;
  }
}
.cm-plan__catch {
  margin: 0;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.545455;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-plan__catch {
    font-size: 1.25em;
    line-height: 1.5;
    letter-spacing: 0.036em;
  }
}
.cm-plan__text {
  margin: 0.75em 0 0;
  font-size: 1em;
  font-weight: 400;
  line-height: 2;
  text-align: justify;
  font-feature-settings: "hwid" on, "halt" on;
}
@media screen and (max-width: 768px) {
  .cm-plan__text {
    margin-top: 1.4285714286em;
    font-size: 0.875em;
    line-height: 1.857143;
  }
}
.cm-plan__photo--portrait {
  flex: none;
  width: 14.5em;
  margin: 0.375em 0 0 1.75em;
}
.cm-plan__photo--landscape {
  flex: none;
  width: 26.25em;
  margin-top: 0.5em;
}
.cm-plan__photo--square {
  width: 14.5em;
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .cm-plan__photo--portrait {
    width: 16em;
    margin: 1.9375em auto 0;
  }
  .cm-plan__photo--landscape {
    width: 100%;
    margin-top: 1.875em;
  }
  .cm-plan__photo--square {
    order: 1;
    width: 100%;
    margin: 0.5em 0 0;
  }
}
.cm-plan__lower {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-top: 4em;
}
@media screen and (max-width: 768px) {
  .cm-plan__lower {
    flex-direction: column;
    margin-top: 0;
  }
}
.cm-plan__maps {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 38.875em;
}
@media screen and (max-width: 768px) {
  .cm-plan__maps {
    order: 3;
    flex-direction: column;
    gap: 1.6875em;
    width: 100%;
    margin: 3em 0 0 -0.40625em;
  }
}
.cm-plan__map--1f {
  width: 18.53125em;
}
.cm-plan__map--2f {
  width: 19.021875em;
  margin-top: 1.009375em;
}
@media screen and (max-width: 768px) {
  .cm-plan__map--1f {
    width: 19.4754098361em;
    margin-left: 0.4918032787em;
  }
  .cm-plan__map--2f {
    width: 20em;
    margin-top: 0;
  }
}
.cm-plan__side {
  position: relative;
  width: 21.6875em;
  margin-top: -7.125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__side {
    display: contents;
  }
}
.cm-plan__compass {
  position: absolute;
  top: 8.2134375em;
  left: -0.0365625em;
  width: 2.252825em;
  margin: 0;
}
.cm-plan__compass img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .cm-plan__compass {
    order: 4;
    position: static;
    margin: -0.4303125em 0 0 0.6821875em;
  }
}
.cm-plan__spec--side {
  margin: 2.8125em 0 0 1.9375em;
}
.cm-plan__spec--inline {
  flex: none;
  margin: -0.125em 0 0 1.5625em;
}
@media screen and (max-width: 768px) {
  .cm-plan__spec--side {
    order: 2;
    margin: 1.9375em 0 0;
  }
  .cm-plan__spec--inline {
    margin: 2em 0 0;
  }
}
.cm-plan__layout {
  width: 6.3636363636em;
  margin: 0;
  padding: 0.0909090909em 0;
  border: 1px solid #1e1e1e;
  font-size: 1.375em;
  font-weight: 500;
  line-height: 1.454545;
  letter-spacing: 0.04em;
  text-align: center;
  font-feature-settings: "palt";
}
.cm-plan__area {
  margin: 0.5555555556em 0 0;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.777778;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-plan__price {
  width: 19.6875em;
  margin: 0.875em 0 0 -0.125em;
  border-bottom: 2px solid #000;
}
@media screen and (max-width: 768px) {
  .cm-plan__price {
    width: auto;
    margin: 0.625em 0 0;
  }
}
.cm-plan__price-label {
  position: relative;
  z-index: 1;
  margin: 0;
  padding-left: 0.1111111111em;
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-plan__price-row {
  display: flex;
  align-items: flex-start;
  margin: -0.5em 0 0;
}
.cm-plan__price-num {
  width: 2.4230769231em;
  margin-left: -0.2692307692em;
  font-family: "Oswald", sans-serif;
  font-size: 3.25em;
  font-weight: 400;
  line-height: 1.461538;
  text-align: right;
}
@media screen and (max-width: 768px) {
  .cm-plan__price-num {
    margin-left: -0.1730769231em;
  }
}
.cm-plan__price-unit {
  margin: 1.5833333333em 0 0 0.125em;
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-plan__price-tax {
  margin: 2.1111111111em 0 0 0.1666666667em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-plan__row--cabin {
  margin-top: 1.6875em;
}
@media screen and (max-width: 768px) {
  .cm-plan__row--cabin {
    margin-top: 0.725em;
  }
}
.cm-plan__copy--wide {
  width: 16.3125em;
  margin-top: 0.125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__copy--wide {
    width: auto;
  }
}
.cm-plan__copy--wide .cm-plan__text {
  width: 15.6875em;
}
@media screen and (max-width: 768px) {
  .cm-plan__copy--wide .cm-plan__text {
    width: auto;
    margin-top: 1.2857142857em;
  }
}
.cm-plan__shot {
  flex: none;
  margin: 0;
}
.cm-plan__shot img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-plan__shot--north {
  width: 16.48875em;
  margin-left: 1.375em;
}
.cm-plan__shot--east {
  width: 24.9375em;
  margin-left: 1.44875em;
}
@media screen and (max-width: 768px) {
  .cm-plan__shot--north {
    width: 13.19125em;
    margin: 2.0625em auto 0;
  }
  .cm-plan__shot--east {
    width: 100%;
    margin: 1em 0 0;
  }
}
.cm-plan__shot-label {
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.888889;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-plan__shot-label {
    font-size: 1em;
    line-height: 2.125;
  }
}
.cm-plan__shot--north .cm-plan__shot-label {
  padding-left: 1.7222222222em;
}
.cm-plan__shot--north .cm-plan__shot-label + img {
  margin-top: -0.4375em;
}
.cm-plan__shot--east .cm-plan__shot-label {
  padding-left: 1em;
}
.cm-plan__shot--east .cm-plan__shot-label + img {
  margin-top: 0.3125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__shot--north .cm-plan__shot-label {
    padding-left: 1.5em;
  }
  .cm-plan__shot--north .cm-plan__shot-label + img {
    margin-top: -0.625em;
  }
  .cm-plan__shot--east .cm-plan__shot-label {
    padding-left: 0;
  }
  .cm-plan__shot--east .cm-plan__shot-label + img {
    margin-top: 0;
  }
}
.cm-plan__middle {
  display: flex;
  align-items: flex-start;
  margin-top: 2.3125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__middle {
    flex-direction: column;
    margin-top: 0;
  }
}
.cm-plan__photo--living {
  flex: none;
  width: 22.0625em;
}
.cm-plan__photo--room {
  flex: none;
  width: 17.875em;
  margin-left: 0.5em;
}
@media screen and (max-width: 768px) {
  .cm-plan__photo--living {
    width: 100%;
    margin: 1.75em 0 0;
  }
  .cm-plan__photo--room {
    width: 100%;
    margin: 0.5em 0 0;
  }
}
.cm-plan__floors {
  display: flex;
  margin-top: 2.5625em;
}
@media screen and (max-width: 768px) {
  .cm-plan__floors {
    flex-direction: column;
    gap: 0.725em;
    margin-top: 2.375em;
  }
}
.cm-plan__floor--north {
  flex: none;
  width: 33.375em;
}
@media screen and (max-width: 768px) {
  .cm-plan__floor--north {
    width: auto;
  }
}
.cm-plan__floor-label {
  margin: 0;
  padding-left: 1.2777777778em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.888889;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-plan__floor-label {
    padding-left: 0;
    font-size: 1em;
    line-height: 2.5;
  }
}
.cm-plan__floor--east .cm-plan__floor-label {
  padding-left: 0;
}
.cm-plan__floor-maps {
  display: flex;
  align-items: flex-start;
}
.cm-plan__map--n1f {
  width: 12.75em;
  margin: 0.6875em 0 0 1.13625em;
}
.cm-plan__map--n2f {
  width: 14.0625em;
  margin: 0.125em 0 0 1.75em;
}
.cm-plan__map--e1f {
  width: 12.5em;
  margin: 0.75em 0 0 0.13625em;
}
.cm-plan__map--e2f {
  width: 13.125em;
  margin: 0.75em 0 0 2.125em;
}
@media screen and (max-width: 768px) {
  .cm-plan__map--n1f, .cm-plan__map--n2f, .cm-plan__map--e1f, .cm-plan__map--e2f {
    flex: none;
  }
  .cm-plan__map--n1f {
    width: 9.550625em;
    margin: 0.03125em 0 0;
  }
  .cm-plan__map--n2f {
    width: 10.53375em;
    margin: -0.3875em 0 0 0.6375em;
  }
  .cm-plan__map--e1f {
    width: 9.5475em;
    margin: 0.025em 0 0 0.03125em;
  }
  .cm-plan__map--e2f {
    width: 10.024375em;
    margin: 0.025em 0 0 1.015625em;
  }
}
.cm-plan__item + .cm-plan__item {
  margin-top: 5.5em;
}
@media screen and (max-width: 768px) {
  .cm-plan__item + .cm-plan__item {
    margin-top: 5em;
  }
}
.cm-plan__note {
  margin: 6em 0 0;
  color: #212121;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.857143;
}
@media screen and (max-width: 768px) {
  .cm-plan__note {
    margin-top: 3.3333333333em;
    font-size: 0.75em;
    letter-spacing: 0;
  }
}

/* ---------------------------------------------------------
   室内ギャラリー（写真4枚＋空間の説明＋本体価格）
   Figma: node 84:1556（コンテンツ幅 992px）
          SP node 105:962（写真は画面幅いっぱい、説明・価格は 320px）
   上 100px・下 120px の余白はセクションの margin で確保
   --------------------------------------------------------- */
.cm-gallery {
  margin: 6.25em 0 7.5em;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-gallery {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-gallery {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-gallery {
    margin: 2.1875em 0 5em;
  }
}
.cm-gallery__inner, .cm-gallery__row, .cm-gallery__photo, .cm-gallery__list, .cm-gallery__item, .cm-gallery__term, .cm-gallery__desc, .cm-gallery__price {
  font-size: 1em;
}
.cm-gallery__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-gallery__inner {
    width: 20em;
  }
}
.cm-gallery__row {
  display: flex;
}
.cm-gallery__row + .cm-gallery__row {
  margin-top: 1em;
}
@media screen and (max-width: 768px) {
  .cm-gallery__row {
    margin: 0 -2.28125em;
  }
  .cm-gallery__row + .cm-gallery__row {
    margin-top: 0.5em;
  }
}
.cm-gallery__photo {
  position: relative;
  flex: none;
  margin: 0;
}
.cm-gallery__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-gallery__photo--dining {
  width: 42em;
}
.cm-gallery__photo--kitchen {
  width: 20em;
}
.cm-gallery__photo--living {
  width: 34.75em;
}
.cm-gallery__photo--void {
  width: 27.25em;
}
@media screen and (max-width: 768px) {
  .cm-gallery__photo img {
    height: 100%;
    object-fit: cover;
  }
  .cm-gallery__photo--dining {
    width: 16.625em;
    height: 9.25em;
  }
  .cm-gallery__photo--kitchen {
    width: 7.9375em;
    height: 9.25em;
  }
  .cm-gallery__photo--living {
    width: 13.75em;
    height: 8em;
  }
  .cm-gallery__photo--void {
    width: 10.8125em;
    height: 8em;
  }
}
.cm-gallery__label {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 0.4em 0.8em;
  color: #fff;
  font-family: "Figtree", sans-serif;
  font-size: 1.25em;
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.cm-gallery__label--dark {
  color: #1e1e1e;
}
@media screen and (max-width: 768px) {
  .cm-gallery__label {
    padding: 0.2857142857em 1.2857142857em;
    font-size: 0.875em;
    line-height: 1;
  }
  .cm-gallery__label--dark {
    color: #fff;
  }
}
@media screen and (max-width: 768px) {
  .cm-gallery__photo--kitchen .cm-gallery__label, .cm-gallery__photo--void .cm-gallery__label {
    padding-right: 0.5714285714em;
    padding-left: 0.5714285714em;
  }
}
.cm-gallery__list {
  width: 47.25em;
  margin: 2.5em 0 0 14.75em;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-gallery__list {
    width: auto;
    margin: 1.875em 0 0;
  }
}
.cm-gallery__item {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-gallery__item {
    flex-direction: column;
  }
  .cm-gallery__item + .cm-gallery__item {
    margin-top: 1em;
  }
}
.cm-gallery__term {
  display: flex;
  flex: none;
  align-items: center;
  width: 7em;
  margin-left: 0.75em;
  font-family: "Figtree", sans-serif;
  font-size: 1.25em;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.cm-gallery__term::after {
  content: "";
  flex: 1;
  height: 1px;
  margin-left: 0.4em;
  background-color: #1e1e1e;
}
@media screen and (max-width: 768px) {
  .cm-gallery__term {
    width: auto;
    margin-left: 0;
    line-height: 1;
  }
  .cm-gallery__term::after {
    align-self: flex-end;
    margin-bottom: 0.15em;
  }
}
.cm-gallery__desc {
  margin: 0 0 0 0.3125em;
  font-size: 1em;
  font-weight: 400;
  line-height: 2;
  white-space: nowrap;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on, "kern" 0;
}
@media screen and (max-width: 768px) {
  .cm-gallery__desc {
    margin: 0.5em 0 0;
    line-height: 1.625;
    text-align: justify;
    white-space: normal;
  }
}
.cm-gallery__price {
  display: flex;
  align-items: flex-start;
  box-sizing: border-box;
  width: 31.5em;
  height: 4.75em;
  margin: 2.5em 0 0 15.375em;
  border-bottom: 2px solid #000;
}
@media screen and (max-width: 768px) {
  .cm-gallery__price {
    flex-wrap: wrap;
    width: auto;
    height: 7.125em;
    margin: 1.0625em 0 0;
  }
}
.cm-gallery__price-label {
  flex: none;
  width: 9.8888888889em;
  margin: 0.7777777778em 0 0;
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  text-align: right;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-gallery__price-label {
    width: 100%;
    margin: 0 0 0 0.4444444444em;
    text-align: left;
  }
}
.cm-gallery__price-num {
  flex: none;
  width: 2.4230769231em;
  margin-left: -0.0576923077em;
  font-family: "Oswald", sans-serif;
  font-size: 3.25em;
  font-weight: 400;
  line-height: 1.461538;
  text-align: right;
}
@media screen and (max-width: 768px) {
  .cm-gallery__price-num {
    width: 2.25em;
    margin: -0.1923076923em 0 0;
  }
}
.cm-gallery__price-unit {
  margin: 1.5833333333em 0 0 0.125em;
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-gallery__price-unit {
    margin-top: 1.1666666667em;
  }
}
.cm-gallery__price-tax {
  margin: 2.1111111111em 0 0 0.1666666667em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-gallery__price-tax {
    margin-top: 1.5555555556em;
  }
}

/* ---------------------------------------------------------
   タイプ別プラン（ZERO-CUBE TYPE 8x8 ほか。同じ構成を縦に繰り返す）
   Figma: node 75:1453（コンテンツ幅 992px）
   左＝見出し・キャッチ・1F/2F間取り図、右＝外観・室内写真・間取り名・面積
   写真・間取り図は寸法と位置がタイプごとに違うため、タイプ別モディファイア（--8x8-1f 等）で指定する
   --------------------------------------------------------- */
.cm-type {
  margin: 0 0 7.5em;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-type {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-type {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-type {
    margin-bottom: 5em;
  }
}
.cm-type__inner, .cm-type__item, .cm-type__head, .cm-type__floors, .cm-type__map, .cm-type__side, .cm-type__photo {
  font-size: 1em;
}
.cm-type__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-type__inner {
    width: 20em;
  }
}
.cm-type__item + .cm-type__item {
  margin-top: 7.5em;
}
@media screen and (max-width: 768px) {
  .cm-type__item + .cm-type__item {
    margin-top: 4em;
  }
}
.cm-type__item {
  display: grid;
  grid-template-columns: 43.75em 17.5em;
  grid-template-rows: auto auto 1fr;
  grid-template-areas: "head side" "catch side" "floors side";
  column-gap: 0.75em;
}
@media screen and (max-width: 768px) {
  .cm-type__item {
    grid-template-columns: 100%;
    grid-template-rows: auto;
    grid-template-areas: "head" "catch" "floors" "side";
  }
}
.cm-type__head {
  display: flex;
  grid-area: head;
  align-items: flex-start;
  margin: 0.875em 0 0;
  line-height: 1;
}
.cm-type__head::before {
  content: "";
  flex: none;
  width: 3em;
  height: 0.25em;
  margin: 1.5625em 1.0625em 0 0;
  background-color: #a48daf;
}
@media screen and (max-width: 768px) {
  .cm-type__head {
    flex-wrap: wrap;
    position: relative;
    margin-top: 0;
    padding-left: 2.75em;
  }
  .cm-type__head::before {
    position: absolute;
    top: 1em;
    left: 0;
    width: 2em;
    margin: 0;
  }
}
.cm-type__name {
  font-family: "Figtree", sans-serif;
  font-size: 2.75em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-type__name {
    font-size: 1.875em;
  }
}
.cm-type__size {
  margin: 0.7916666667em 0 0 0.4166666667em;
  font-family: "Figtree", sans-serif;
  font-size: 1.5em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-type__size {
    margin-top: 0.7em;
    font-size: 1.25em;
    margin-left: 0;
  }
}
.cm-type__note {
  margin: 0.8333333333em 0 0 0.2222222222em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.888889;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-type__note--far {
  margin-left: 0.5555555556em;
}
@media screen and (max-width: 768px) {
  .cm-type__note--far {
    margin-left: 0;
  }
}
@media screen and (max-width: 768px) {
  .cm-type__note {
    margin-top: 0.4444444444em;
    font-size: 1.125em;
    letter-spacing: 0;
  }
}
.cm-type__catch {
  grid-area: catch;
  margin: 1.3181818182em 0 0 0.0454545455em;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.545455;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-type__catch {
    margin: 0.8em 0 0;
    font-size: 1.25em;
    padding-left: 2em;
  }
}
.cm-type__floors {
  display: flex;
  grid-area: floors;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .cm-type__floors {
    flex-direction: column;
    gap: 1em;
    margin-top: 2em;
  }
}
.cm-type__map {
  flex: none;
  margin: 0;
}
.cm-type__map img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-type__map--8x8-1f {
  width: 20.7825em;
  margin-top: 5.4825em;
}
.cm-type__map--8x8-2f {
  width: 19.579375em;
  margin: 5.0625em 0 0 1.405em;
}
.cm-type__map--7x9-1f {
  width: 21.275em;
  margin: 2.375em 0 0 -0.375em;
}
.cm-type__map--7x9-2f {
  width: 19.404375em;
  margin: 2.375em 0 0 1.6625em;
}
.cm-type__map--6x10-1f {
  width: 20.4375em;
  margin: 2.180625em 0 0 1.5em;
}
.cm-type__map--6x10-2f {
  width: 16.0625em;
  margin: 2.180625em 0 0 2em;
}
.cm-type__map--5x10-1f {
  width: 18.1075em;
  margin: 2.4375em 0 0 1.875em;
}
.cm-type__map--5x10-2f {
  width: 14.6675em;
  margin: 2.28625em 0 0 3.8925em;
}
@media screen and (max-width: 768px) {
  .cm-type__map {
    margin-top: 0;
  }
  .cm-type__map--8x8-1f {
    width: 19.0557939914em;
    margin-left: 0.2575107296em;
  }
  .cm-type__map--8x8-2f {
    width: 17.9399141631em;
    margin-left: 1.8025751073em;
  }
  .cm-type__map--7x9-1f {
    width: 19.4849785408em;
    margin-left: 0;
  }
  .cm-type__map--7x9-2f {
    width: 17.7682403433em;
    margin-left: 2.2317596567em;
  }
  .cm-type__map--6x10-1f {
    width: 18.7124463519em;
    margin-left: 0.643776824em;
  }
  .cm-type__map--6x10-2f {
    width: 14.7067238913em;
    margin-left: 2.9327610873em;
  }
  .cm-type__map--5x10-1f {
    width: 16.5951359084em;
    margin-left: 1.7024320458em;
  }
  .cm-type__map--5x10-2f {
    width: 13.4477825465em;
    margin-left: 4.8211731044em;
  }
}
.cm-type__side {
  grid-area: side;
}
@media screen and (max-width: 768px) {
  .cm-type__side {
    margin-top: 1.5em;
  }
}
.cm-type__photo {
  margin: 0;
}
.cm-type__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-type__photo--exterior {
  width: 12.5em;
  margin: 0 0 0 2.5em;
}
.cm-type__photo--interior {
  margin-top: 2.375em;
}
.cm-type__photo--7x9-exterior {
  margin-top: -2.125em;
}
.cm-type__photo--6x10-exterior {
  margin: -2.125em 0 0 2.125em;
}
.cm-type__photo--6x10-interior {
  margin-top: 1.9375em;
}
.cm-type__photo--5x10-exterior {
  margin: -2.9375em 0 0 2.125em;
}
.cm-type__photo--5x10-interior {
  margin-top: 0.875em;
}
@media screen and (max-width: 768px) {
  .cm-type__photo--exterior {
    width: 70%;
    margin: 0 auto;
  }
  .cm-type__photo--interior {
    margin-top: 1em;
  }
}
.cm-type__layout {
  width: 6.3636363636em;
  margin: 1.3181818182em 0 0;
  padding: 0.0909090909em 0;
  border: 1px solid #1e1e1e;
  font-size: 1.375em;
  font-weight: 500;
  line-height: 1.454545;
  letter-spacing: 0.04em;
  text-align: center;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-type__layout {
    margin-top: 1.1111111111em;
    font-size: 1.125em;
  }
}
.cm-type__area {
  margin: 0.5555555556em 0 0;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.777778;
  letter-spacing: 0.04em;
  white-space: nowrap;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-type__area {
    font-size: 1em;
  }
}

/* ---------------------------------------------------------
   APARTMENT シリーズ（LINO / ENCROSS ほか。同じ構成を縦に繰り返す）
   Figma: node 75:106238（LINO）/ 75:131188（ENCROSS）/ 75:139205（EVERQ）/ 90:1583（SOLIT）
   （コンテンツ幅 992px）
   見出し → 写真 → 間取り図 → 面積・価格（LINO は間取り図の右、ENCROSS / EVERQ / SOLIT は下）
   写真・間取り図は寸法と位置がシリーズごとに違うため、シリーズ別モディファイア（--lino 等）で指定する
   --------------------------------------------------------- */
.cm-apt {
  padding: 7.875em 0 6.25em;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-apt {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-apt {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-apt {
    padding: 3.75em 0;
  }
}
.cm-apt__inner, .cm-apt__item, .cm-apt__head, .cm-apt__photos, .cm-apt__photo, .cm-apt__floors, .cm-apt__map, .cm-apt__spec, .cm-apt__summary, .cm-apt__price, .cm-apt__price-list, .cm-apt__price-row {
  font-size: 1em;
}
.cm-apt__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-apt__inner {
    width: 20em;
  }
}
.cm-apt__item + .cm-apt__item {
  margin-top: 6.25em;
}
@media screen and (max-width: 768px) {
  .cm-apt__item + .cm-apt__item {
    margin-top: 4em;
  }
}
.cm-apt__head {
  display: flex;
  align-items: flex-start;
  margin: 0;
  line-height: 1;
}
.cm-apt__head::before {
  content: "";
  flex: none;
  width: 3em;
  height: 0.25em;
  margin: 1.5625em 1.0625em 0 0;
  background-color: #a48daf;
}
@media screen and (max-width: 768px) {
  .cm-apt__head {
    position: relative;
    flex-wrap: wrap;
    padding-left: 2.125em;
  }
  .cm-apt__head::before {
    position: absolute;
    top: 0.75em;
    left: 0;
    width: 1.5em;
    margin: 0;
  }
}
.cm-apt__name {
  font-family: "Figtree", sans-serif;
  font-size: 2.75em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-apt__name {
    font-size: 1.875em;
    line-height: 0.933333;
  }
}
.cm-apt__sub {
  margin: 0.8333333333em 0 0 0.9444444444em;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.888889;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
@media screen and (max-width: 768px) {
  .cm-apt__sub {
    flex: 0 0 100%;
    margin: 0.4375em 0 0;
    font-size: 1em;
    line-height: 1.25;
  }
}
.cm-apt__catch {
  margin: 0.8181818182em 0 0 0.0454545455em;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.545455;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__catch--inline {
  margin: 0.6363636364em 0 0 1.2727272727em;
}
@media screen and (max-width: 768px) {
  .cm-apt__catch {
    margin: 1em 0 0 1.6em;
    font-size: 1.25em;
    line-height: 1.5;
  }
  .cm-apt__catch--inline {
    flex: 0 0 100%;
    margin-left: -0.1em;
  }
}
.cm-apt__photos {
  display: flex;
  align-items: flex-start;
  margin-top: 2.875em;
}
.cm-apt__photos--encross {
  margin-top: 3em;
}
.cm-apt__photos--everq {
  justify-content: center;
  margin-top: 2.5em;
}
.cm-apt__photos--solit {
  margin-top: 3.125em;
}
@media screen and (max-width: 768px) {
  .cm-apt__photos {
    flex-direction: column;
    gap: 0.75em;
    margin-top: 1.5em;
  }
}
.cm-apt__photo {
  flex: none;
  margin: 0;
}
.cm-apt__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-apt__photo--interior {
  width: 18.875em;
}
.cm-apt__photo--interior + .cm-apt__photo--interior {
  margin-left: 1em;
}
.cm-apt__photo--lino {
  width: 19.035em;
  margin: 0.4375em 3.2775em 0 0.875em;
}
.cm-apt__photo--encross {
  width: 22.875em;
  margin: -0.3125em 0.3125em 0 0;
}
.cm-apt__photo--everq {
  width: 25.25em;
}
.cm-apt__photo--everq + .cm-apt__photo--everq {
  margin-left: 1em;
}
.cm-apt__photo--solit-front {
  width: 22.5em;
  margin-left: 1.1875em;
}
.cm-apt__photo--solit-living {
  width: 22.5em;
  margin-left: 1.0625em;
}
.cm-apt__photo--solit-side {
  width: 11.25em;
  margin-left: 2.8125em;
}
@media screen and (max-width: 768px) {
  .cm-apt__photo, .cm-apt__photo--interior + .cm-apt__photo--interior, .cm-apt__photo--everq + .cm-apt__photo--everq {
    width: 100%;
    margin: 0;
  }
  .cm-apt__photo--solit-side {
    width: 80%;
    margin-inline: auto;
  }
}
.cm-apt__floors {
  display: flex;
  align-items: flex-start;
}
.cm-apt__floors--lino {
  margin-top: 3.2875em;
}
.cm-apt__floors--encross {
  margin-top: 2.1875em;
}
.cm-apt__floors--everq {
  margin-top: 2.375em;
}
.cm-apt__floors--solit {
  margin-top: 2.890625em;
}
@media screen and (max-width: 768px) {
  .cm-apt__floors {
    flex-direction: column;
    gap: 1.5em;
    margin-top: 2em;
  }
}
.cm-apt__map {
  flex: none;
  margin: 0;
}
.cm-apt__map img {
  display: block;
  width: 100%;
  height: auto;
}
.cm-apt__map--lino-1f {
  width: 19.865em;
}
.cm-apt__map--lino-2f {
  width: 19.66em;
  margin: 0.445em 0 0 1.81125em;
}
.cm-apt__map--encross-1f {
  width: 28.839375em;
  margin-left: 1.3125em;
}
.cm-apt__map--encross-2f {
  width: 28.859375em;
  margin-left: 2.035625em;
}
.cm-apt__map--everq-1f {
  width: 23.700625em;
  margin-left: 6.0625em;
}
.cm-apt__map--everq-2f {
  width: 23.85375em;
  margin: 0.0925em 0 0 2.486875em;
}
.cm-apt__map--solit-1f {
  width: 30.323125em;
  margin-left: 0.125em;
}
.cm-apt__map--solit-2f {
  width: 29.201875em;
  margin-left: 2.114375em;
}
@media screen and (max-width: 768px) {
  .cm-apt__map {
    margin: 0;
  }
  .cm-apt__map--lino-1f {
    width: 19.9686520376em;
  }
  .cm-apt__map--lino-2f {
    width: 19.7805642633em;
    margin-left: 0.2194357367em;
  }
  .cm-apt__map--encross-1f, .cm-apt__map--encross-2f {
    width: 20em;
  }
  .cm-apt__map--everq-1f {
    width: 19.8952879581em;
  }
  .cm-apt__map--everq-2f {
    width: 20em;
  }
  .cm-apt__map--solit-1f {
    width: 20em;
  }
  .cm-apt__map--solit-2f {
    width: 19.2386831276em;
    margin-left: 0.3703703704em;
  }
}
.cm-apt__spec--side {
  flex: none;
  width: 17.9375em;
  margin: 0.375em 0 0 auto;
}
.cm-apt__spec--wide {
  margin: 0 0 0 3.5625em;
}
.cm-apt__spec--encross {
  margin-top: 0.6875em;
}
.cm-apt__spec--solit {
  margin: 0.75em 0 0 10.625em;
}
@media screen and (max-width: 768px) {
  .cm-apt__spec--side, .cm-apt__spec--wide, .cm-apt__spec--encross, .cm-apt__spec--solit {
    width: 17.875em;
    margin: 1.5em auto 0;
  }
}
.cm-apt__summary {
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .cm-apt__summary {
    flex-direction: column;
  }
}
.cm-apt__layout {
  width: 6.3636363636em;
  margin: 0;
  padding: 0.0909090909em 0;
  border: 1px solid #1e1e1e;
  font-size: 1.375em;
  font-weight: 500;
  line-height: 1.454545;
  letter-spacing: 0.04em;
  text-align: center;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__layout--tall {
  flex: none;
  margin-top: 0.3636363636em;
  padding: 0.3181818182em 0;
}
@media screen and (max-width: 768px) {
  .cm-apt__layout--tall {
    margin-top: 0;
    padding: 0.0909090909em 0;
  }
}
.cm-apt__area {
  margin: 0.5em 0 0;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.777778;
  letter-spacing: 0.04em;
  white-space: nowrap;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__area--beside {
  margin: 0 0 0 1.1666666667em;
}
@media screen and (max-width: 768px) {
  .cm-apt__area--beside {
    margin: 0.5em 0 0;
  }
}
.cm-apt__price {
  margin: 0.9375em 0 0;
  padding-bottom: 0.4375em;
  border-bottom: 2px solid #000;
}
.cm-apt__price--wide {
  width: 54.5em;
  margin-top: 1.25em;
  padding-bottom: 0.5em;
}
.cm-apt__price--solit {
  width: 37.5em;
}
@media screen and (max-width: 768px) {
  .cm-apt__price {
    margin-top: 0.4375em;
  }
  .cm-apt__price--wide, .cm-apt__price--solit {
    width: auto;
    margin-top: 0.4375em;
    padding-bottom: 0.4375em;
  }
}
.cm-apt__price-label {
  margin: 0;
  padding-left: 0.0555555556em;
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__price-list {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
  margin-top: 0.6875em;
}
.cm-apt__price-list--row {
  flex-direction: row;
  gap: 0.75em;
  margin-top: 0.625em;
}
.cm-apt__price-list--solit {
  gap: 0.9375em;
}
@media screen and (max-width: 768px) {
  .cm-apt__price-list--row {
    flex-direction: column;
    gap: 0.25em;
    margin-top: 0.6875em;
  }
}
.cm-apt__price-row {
  display: flex;
  align-items: flex-start;
  margin: 0;
}
.cm-apt__price-count {
  flex: none;
  width: 2.0555555556em;
  white-space: nowrap;
  margin: 0.4444444444em 0 0;
  font-size: 1.125em;
  font-weight: 500;
  line-height: 1.333333;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__price-num {
  flex: none;
  width: 2.34375em;
  margin: 0;
  font-family: "Oswald", sans-serif;
  font-size: 2em;
  font-weight: 400;
  line-height: 1.125;
  text-align: right;
}
.cm-apt__price-unit {
  flex: none;
  margin: 0.4em 0 0 0.15em;
  white-space: nowrap;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}
.cm-apt__price-tax {
  flex: none;
  margin: 0.5em 0 0 0.1875em;
  white-space: nowrap;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-feature-settings: "hwid" on, "halt" on, "pwid" on;
}

/* ---------------------------------------------------------
   注釈＋資料請求ボタン（ZERO-CUBE / GARAGE / APARTMENT 共通パーツ）
   Figma: node 75:1405（コンテンツ幅 992px）
   注釈とボタンの間は 80px
   --------------------------------------------------------- */
.cm-note {
  margin-top: 3.3125em;
  padding-bottom: 6.25em;
  background-color: #fff;
  color: #212121;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-note {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-note {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-note {
    margin-top: 2.5em;
    padding-bottom: 3.75em;
  }
}
.cm-note__inner {
  width: 62em;
  margin: 0 auto;
  font-size: 1em;
}
@media screen and (max-width: 768px) {
  .cm-note__inner {
    width: 20em;
  }
}
.cm-note__text {
  margin: 0 0 5.7142857143em;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.857143;
}
@media screen and (max-width: 768px) {
  .cm-note__text {
    margin-bottom: 4em;
    font-size: 0.75em;
  }
}
.cm-note .cm-lineup__cta {
  margin-top: 0;
}

/* ---------------------------------------------------------
   セクション見出し（EQUIPMENT / 商品ラインナップ 共通）
   英字タイトル＋和文サブを左、リードを右に並べる
   --------------------------------------------------------- */
.cm-head {
  display: flex;
  align-items: flex-start;
  font-size: 1em;
}
@media screen and (max-width: 768px) {
  .cm-head {
    flex-direction: column;
  }
}
.cm-head__title {
  flex: none;
  width: 18.4375em;
  margin: 0;
  font-size: 1em;
  line-height: 1;
}
.cm-head__title--wide {
  width: 23.5625em;
}
@media screen and (max-width: 768px) {
  .cm-head__title, .cm-head__title--wide {
    width: auto;
  }
}
.cm-head__title-en {
  display: block;
  font-family: "Figtree", sans-serif;
  font-size: 2.75em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .cm-head__title-en {
    font-size: 2.5em;
  }
}
.cm-head__title-ja {
  display: block;
  font-size: 1em;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
@media screen and (max-width: 768px) {
  .cm-head__title-ja {
    margin-top: 0.3125em;
    line-height: 1;
  }
}
.cm-head__lead {
  margin: 0.5em 0 0;
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-head__lead--kaku {
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 2;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 768px) {
  .cm-head__lead {
    margin-top: 0.8em;
    letter-spacing: 0.02em;
  }
  .cm-head__lead--kaku {
    letter-spacing: 0.01em;
  }
}

/* ---------------------------------------------------------
   EQUIPMENT（主な標準設備）
   Figma: node 77:1294（パーツ幅 992px を 1000px コンテナ中央に配置）
          SP node 105:960（写真・テキストを 1カラムで縦積み）
   --------------------------------------------------------- */
.cm-equip {
  padding: 6.25em 0;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-equip {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-equip {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-equip {
    padding: 3.125em 0 3.75em;
  }
}
.cm-equip__inner, .cm-equip__row, .cm-equip__item, .cm-equip__photos, .cm-equip__photo, .cm-equip__body, .cm-equip__name {
  font-size: 1em;
}
.cm-equip__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-equip__inner {
    width: 20em;
  }
}
.cm-equip__row {
  display: flex;
  justify-content: space-between;
}
.cm-equip__row--upper {
  margin-top: 3.625em;
}
.cm-equip__row--lower {
  margin-top: 3.5em;
}
@media screen and (max-width: 768px) {
  .cm-equip__row {
    flex-direction: column;
    gap: 3.75em;
  }
  .cm-equip__row--upper {
    margin-top: 1.875em;
  }
  .cm-equip__row--lower {
    margin-top: 3.75em;
  }
}
.cm-equip__item--wall {
  display: flex;
  gap: 1em;
  width: 28.25em;
}
.cm-equip__item--kitchen {
  width: 30.5em;
}
.cm-equip__item--wide {
  width: 20em;
}
.cm-equip__item--narrow {
  width: 18.75em;
}
@media screen and (max-width: 768px) {
  .cm-equip__item--wall, .cm-equip__item--kitchen, .cm-equip__item--wide, .cm-equip__item--narrow {
    width: auto;
  }
  .cm-equip__item--wall {
    flex-direction: column;
    gap: 0;
  }
}
.cm-equip__photos {
  display: flex;
  flex: none;
  gap: 1em;
}
.cm-equip__photos--stack {
  flex-direction: column;
  align-self: flex-start;
  gap: 0.625em;
  width: 14.75em;
}
@media screen and (max-width: 768px) {
  .cm-equip__photos {
    flex-direction: column;
    gap: 0.5em;
  }
  .cm-equip__photos--stack {
    align-self: stretch;
    gap: 0.5em;
    width: auto;
  }
}
.cm-equip__photo {
  position: relative;
  flex: 1 1 0;
  margin: 0;
}
.cm-equip__photo img {
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 768px) {
  .cm-equip__photo {
    flex: none;
  }
}
.cm-equip__photos--stack .cm-equip__photo {
  flex: none;
}
@media screen and (max-width: 768px) {
  .cm-equip__row--lower .cm-equip__photo img {
    aspect-ratio: 321/280;
    object-fit: cover;
  }
}
.cm-equip__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 0.1428571429em 0.5714285714em;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 2;
  text-align: right;
  white-space: nowrap;
}
.cm-equip__caption--left {
  right: auto;
  left: 0;
  text-align: left;
}
.cm-equip__caption--glow {
  text-shadow: 0 0 4px #fff;
}
.cm-equip__caption--light {
  color: #fff;
}
.cm-equip__caption--multi {
  padding-top: 0.2142857143em;
  padding-bottom: 0.2142857143em;
  line-height: 1.428571;
}
.cm-equip__body {
  width: 12.5em;
}
.cm-equip__body--below {
  width: auto;
  margin-top: 2.25em;
}
@media screen and (max-width: 768px) {
  .cm-equip__body {
    width: auto;
  }
  .cm-equip__body--below {
    margin-top: 1.875em;
  }
}
.cm-equip__item--wall .cm-equip__body {
  padding-top: 2.75em;
}
@media screen and (max-width: 768px) {
  .cm-equip__item--wall .cm-equip__body {
    padding-top: 1.875em;
  }
}
.cm-equip__item--kitchen .cm-equip__body--below {
  width: 24.875em;
  margin-top: 2.4375em;
}
@media screen and (max-width: 768px) {
  .cm-equip__item--kitchen .cm-equip__body--below {
    width: auto;
    margin-top: 1.875em;
  }
}
.cm-equip__name {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
  margin: 0;
  line-height: 1;
}
.cm-equip__name--stack {
  flex-direction: column;
  gap: 0;
}
@media screen and (max-width: 768px) {
  .cm-equip__name--stack {
    flex-direction: row;
    gap: 0.5em;
  }
}
.cm-equip__name-en {
  font-family: "Figtree", sans-serif;
  font-size: 1.75em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
.cm-equip__name-ja {
  font-size: 0.875em;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-equip__heading {
  margin: 0.4444444444em 0 0;
  font-size: 1.125em;
  font-weight: 700;
  line-height: 1.666667;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-equip__heading--fixed {
  min-height: 3.3333333333em;
}
@media screen and (max-width: 768px) {
  .cm-equip__heading {
    margin-top: 0.5em;
  }
  .cm-equip__heading--fixed {
    min-height: 0;
  }
}
.cm-equip__text {
  margin: 1.125em 0 0;
  font-size: 1em;
  font-weight: 400;
  line-height: 1.75;
  text-align: justify;
  font-feature-settings: "hwid" on, "halt" on;
}
@media screen and (max-width: 768px) {
  .cm-equip__text {
    margin-top: 1em;
  }
}
.cm-equip__note {
  margin: 4.2857142857em 0 0;
  color: #212121;
  font-size: 0.875em;
  font-weight: 500;
  line-height: 1.857143;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .cm-equip__note {
    margin-top: 6em;
    font-size: 0.625em;
    line-height: 1.8;
    text-align: justify;
  }
}

/* ---------------------------------------------------------
   商品ラインナップ
   Figma: node 77:1301（パーツ幅 992px を 1000px コンテナ中央に配置）
          SP node 105:961（カードを 1カラムで縦積み）
   PC の上余白は直前の EQUIPMENT の padding-bottom で確保
   --------------------------------------------------------- */
.cm-lineup {
  padding-bottom: 6.25em;
  background-color: #fff;
  color: #1e1e1e;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1;
  font-size: 16px;
}
@media screen and (max-width: 1039px) {
  .cm-lineup {
    font-size: 1.538462vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-lineup {
    font-size: 4.071247vw;
  }
}
@media screen and (max-width: 768px) {
  .cm-lineup {
    padding: 3.75em 0;
  }
}
.cm-lineup__inner, .cm-lineup__list, .cm-lineup__item {
  font-size: 1em;
}
.cm-lineup__inner {
  width: 62em;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .cm-lineup__inner {
    width: 20em;
  }
}
.cm-lineup__list {
  display: flex;
  gap: 2.25em;
  margin: 4.0625em 0 0;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .cm-lineup__list {
    flex-direction: column;
    gap: 2.25em;
    margin-top: 1.5em;
  }
}
.cm-lineup__item {
  width: 18.75em;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cm-lineup__item--wide {
  width: 20em;
}
@media screen and (max-width: 768px) {
  .cm-lineup__item, .cm-lineup__item--wide {
    width: auto;
  }
}
.cm-lineup__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.cm-lineup__link:hover, .cm-lineup__link:focus, .cm-lineup__link:active {
  color: inherit;
}
.cm-lineup__photo {
  display: block;
  overflow: hidden;
}
.cm-lineup__photo img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}
@media screen and (max-width: 768px) {
  .cm-lineup__photo img {
    aspect-ratio: 320/224;
    object-fit: cover;
  }
}
.cm-lineup__link:hover .cm-lineup__photo img {
  transform: scale(1.04);
}
.cm-lineup__name {
  display: flex;
  align-items: center;
  gap: 0.75em;
  margin: 1.3125em 0 0;
  font-size: 1em;
  line-height: 1;
}
.cm-lineup__name-text {
  font-family: "Figtree", sans-serif;
  font-size: 1.625em;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.cm-lineup__arrow {
  flex: none;
  width: 1.5em;
  height: 1.5em;
  transition: transform 0.3s ease;
}
.cm-lineup__link:hover .cm-lineup__arrow {
  transform: translateX(0.25em);
}
@media (prefers-reduced-motion: reduce) {
  .cm-lineup__photo img, .cm-lineup__arrow {
    transition: none;
  }
}
.cm-lineup__cta {
  display: flex;
  justify-content: center;
  margin-top: 7.5em;
  font-size: 1em;
}
@media screen and (max-width: 768px) {
  .cm-lineup__cta {
    margin-top: 3.75em;
  }
}

/* ---------------------------------------------------------
   ボタン（資料請求）
   Figma: node 65:1298（400×72）／SP node 100:964（321×72）
   --------------------------------------------------------- */
.cm-btn {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 25em;
  height: 4.5em;
  padding-left: 0.625em;
  border-radius: 2.1875em;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(102, 102, 102, 0.2) 75%), #ab933c;
  box-shadow: 2px 2px 6px rgba(33, 33, 33, 0.25);
  color: #fff;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.cm-btn:link, .cm-btn:visited, .cm-btn:hover, .cm-btn:focus, .cm-btn:active {
  color: #fff;
}
.cm-btn:hover {
  opacity: 0.8;
}
@media screen and (max-width: 768px) {
  .cm-btn {
    width: 20.0625em;
    padding-right: 0.5625em;
    padding-left: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cm-btn {
    transition: none;
  }
}
.cm-btn__label {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.416667;
  letter-spacing: 0.04em;
  font-feature-settings: "palt";
}
.cm-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 22.75em;
  width: 0.75em;
  height: 0.866025em;
  background-color: #fff;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 768px) {
  .cm-btn::after {
    left: 18.5em;
    width: 0.601875em;
    height: 0.695em;
  }
}
