/* 注文住宅ページ（custom-house） */

#page-custom-house {
  overflow-x: clip;
  color: #221714;
}
:where(#page-custom-house img) {
  display: block;
  max-width: 100%;
  height: auto;
}
:where(#page-custom-house p, #page-custom-house h2) {
  margin: 0;
}

/* 傍点（黄色）：文字の上の点は擬似要素の背景で描く（読み上げの対象にしない） */
.custom-em {
  position: relative;
  font-style: normal;
}

.custom-em::before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  background-image: radial-gradient(circle closest-side, #FFD500 90%, transparent 100%);
  background-repeat: repeat-x;
  pointer-events: none;
}

/* 言葉の途中で改行しない（書体の違いで改行位置がずれる箇所） */
.custom-nw {
  white-space: nowrap;
}

/* ぼかしの円 */
.custom-blur {
  position: absolute;
  z-index: 0;
  display: block;
  border-radius: 50%;
  background: #FFD0B8;
  pointer-events: none;
}

/* ===== PC ===== */
@media (min-width: 768px) {

  #page-custom-house section {
    position: relative;
    max-width: 1920px;
    margin-inline: auto;
  }


  /* パンくずと FV のあいだ（このページだけ） */
  #custom-house .seo_bread_list {
    margin-bottom: min(49px, calc(49 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
  }

  /* TOP（FV＋コンセプト）。帯・コンセプトの位置と区切りの高さは、文字の大きさ（clamp）に合わせて計算 */
  .custom-top {
    height: calc(min(720px, calc(720 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px) * 3.46668 + clamp(14px, calc(18 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 18px) * 4.22223 + min(65px, calc(65 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + min(200px, calc(200 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    background: linear-gradient(#fff 0 min(514px, calc(514 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))), #F1F0EB min(514px, calc(514 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) calc(min(720px, calc(720 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px) * 3.46668 + clamp(14px, calc(18 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 18px) * 4.22223 + min(65px, calc(65 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))))), #fff calc(min(720px, calc(720 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px) * 3.46668 + clamp(14px, calc(18 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 18px) * 4.22223 + min(65px, calc(65 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))))));
  }

  .custom-fv__photo {
    position: absolute;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(151px, calc(151 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: 0;
    width: min(1174px, calc(1174 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
  }

  .custom-fv__en {
    position: absolute;
    z-index: 2;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(1284px, calc(1284 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: min(40px, calc(40 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
    width: min(599px, calc(599 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
    transform: translateX(-100%);
  }

  .custom-fv__title-en {
    position: absolute;
    z-index: 2;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(150px, calc(150 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: min(507px, calc(507 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
  }

  .custom-fv__title-en img {
    width: min(1032px, calc(1032 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
  }

  .custom-fv__catch {
    position: absolute;
    z-index: 2;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(0px, calc(0 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: min(153px, calc(153 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
    box-sizing: border-box;
    width: 17.916667em;
    height: 2.25em;
    padding-left: 1.041667em;
    background: #fff;
    font-size: clamp(16px, calc(24 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 24px);
    font-weight: 500;
    line-height: 2.25;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .custom-fv__copy {
    position: absolute;
    z-index: 2;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(0px, calc(0 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: calc(min(163px, calc(163 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(16px, calc(24 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 24px) * 2.25);
    font-size: clamp(32px, calc(50 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 50px);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.1em;
    color: #fff;
    white-space: nowrap;
  }

  .custom-fv__copy span {
    display: block;
    box-sizing: border-box;
    height: 1.6em;
    padding-left: 0.5em;
    background: #002F7B;
  }

  /* 帯の中の文字の高さ（カンプに合わせて行ごとに指定） */
  .custom-fv__copy span:first-child {
    line-height: 1.44;
    width: 8.1em;
    margin-bottom: 0.24em;
  }

  .custom-fv__copy span:last-child {
    line-height: 1.52;
    width: 10.6em;
  }


  .custom-concept__title {
    position: absolute;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(0px, calc(0 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: min(678px, calc(678 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
    width: max(690px, min(1250px, calc(1250 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    font-size: clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px);
    font-weight: 700;
    line-height: 1.73334;
    letter-spacing: 0.1em;
    text-align: center;
  }

  .custom-concept__marker {
    background: linear-gradient(transparent 59%, #FFEB00 59%, #FFEB00 91%, transparent 91%);
  }

  .custom-concept__text {
    position: absolute;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + min(0px, calc(0 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    top: calc(min(720px, calc(720 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px) * 3.46668);
    width: max(690px, min(1250px, calc(1250 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    font-size: clamp(14px, calc(18 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 18px);
    font-weight: 500;
    line-height: 2.11112;
    letter-spacing: 0.05em;
    text-align: center;
  }

  .custom-concept__boss {
    position: absolute;
    left: calc(max(0px, calc(min(50vw, 960px) - 625px)) + max(min(965px, calc(965 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))), calc(max(345px, min(625px, calc(625 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))))) + 245px)));
    top: calc(min(720px, calc(720 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) + clamp(24px, calc(30 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 30px) * 3.46668 + clamp(14px, calc(18 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))), 18px) * 4.22223 + min(65px, calc(65 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))) - min(142px, calc(142 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px))))));
    width: min(140px, calc(140 / 1325 * (min(100vw, 1920px) - 70px - max(0px, calc(min(50vw, 960px) - 625px)))));
  }


  /* 01〜03 共通 */
  .custom-point__main {
    position: absolute;
    z-index: 1;
    top: 0;
    width: calc(50% + min(450px, 33.088vw));
  }

  .custom-point__main img {
    width: 100%;
  }

  .custom-point__head {
    position: absolute;
    z-index: 2;
    height: min(250px, 18.382vw);
  }

  .custom-point__num {
    position: absolute;
  }

  .custom-point__title {
    position: absolute;
    font-size: clamp(24px, 2.794vw, 38px);
    font-weight: 500;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  .custom-point__title-line {
    display: block;
    height: 1.86843em;
  }

  .custom-point__big {
    font-size: 1.31579em;
    line-height: 1;
  }

  .custom-point__text,
  .custom-point__photo {
    position: absolute;
    z-index: 1;
  }

  .custom-point__lead {
    font-size: clamp(14px, 1.618vw, 22px);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.1em;
  }

  .custom-point__body {
    font-size: clamp(14px, 1.176vw, 16px);
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.1em;
  }

  .custom-point__body strong {
    font-weight: 700;
  }

  .custom-point__quote {
    font-size: clamp(16px, 1.765vw, 24px);
    font-weight: 700;
    line-height: 1.83334;
    letter-spacing: 0.1em;
    text-spacing-trim: trim-start;
    color: #1B3560;
  }

  .custom-trim {
    margin-inline: -0.5em;
  }

  .custom-nw-pc {
    white-space: nowrap;
  }

  /* 1360px 未満だけ言葉の途中で改行しない（1360px 以上はカンプの改行のまま） */
  @media (max-width: 1359px) {
    .custom-nw-tab {
      white-space: nowrap;
    }
  }

  /* 文章の幅が狭い幅で、1文を1行に収めるため字間をわずかに詰める */
  @media (max-width: 1023px) {
    .custom-ls-tab {
      letter-spacing: 0.08em;
    }
  }

  .custom-point__body,
  .custom-point__lead,
  .custom-point__quote {
    text-wrap: pretty;
  }

  .custom-marker {
    background: linear-gradient(transparent 70%, #FFEB00 70%, #FFEB00 94%, transparent 94%);
  }

  /* 閉じかっこで終わる線は、かっこの空き（半角分）に線を引かない */
  .custom-marker:has(+ .custom-trim) {
    background-repeat: no-repeat;
    background-size: calc(100% - 0.5em) 100%;
  }


  /* 01 */
  /* 「+ max(0px, calc(〇px - △vw))」は、狭い幅で文字が大きくなる分だけ下の段と区切りの高さを下げる値（広い幅では 0） */
  .custom-point--01 {
    height: calc(min(1800px, 132.353vw) + max(0px, calc(488.7px - 40.06vw)));
    background: linear-gradient(#fff 0 min(150px, 11.029vw), #FAF7E8 min(150px, 11.029vw) calc(min(1600px, 117.647vw) + max(0px, calc(488.7px - 40.06vw))), #fff calc(min(1600px, 117.647vw) + max(0px, calc(488.7px - 40.06vw))));
  }

  .custom-point--01 .custom-point__main {
    left: 0;
  }

  .custom-point__medals {
    position: absolute;
    z-index: 3;
    left: calc(50% - min(131px, 9.632vw));
    top: min(53px, 3.897vw);
    display: flex;
    gap: min(30px, 2.206vw);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .custom-point__medal {
    width: clamp(130px, 14.559vw, 198px);
  }

  .custom-point--01 .custom-point__head {
    left: calc(50% - min(250px, 18.382vw));
    top: min(446px, 32.794vw);
    width: min(850px, 62.5vw);
    background: #FAF7E8;
  }

  .custom-point--01 .custom-point__title-line:first-child {
    height: 1.7632em;
  }

  .custom-point--01 .custom-point__big {
    letter-spacing: 0.09em;
  }

  .custom-point--01 .custom-point__num {
    left: min(71px, 5.221vw);
    top: min(89px, 6.544vw);
  }

  .custom-point--01 .custom-point__title {
    left: min(155px, 11.397vw);
    top: min(65px, 4.779vw);
    line-height: 1.86843;
  }

  .custom-point--01 .custom-point__text--a {
    left: calc(50% - min(549px, 40.368vw));
    top: min(723px, 53.162vw);
    width: min(560px, max(calc(40.368vw - 16px), calc(41.176vw - max(0px, calc(1360px - 100vw)))));
  }

  .custom-point--01 .custom-point__lead {
    margin-bottom: min(44px, 3.235vw);
  }

  .custom-point--01 .custom-point__body:last-child {
    max-width: min(414px, 30.441vw);
  }

  .custom-point--01 .custom-point__body:not(:last-child) {
    margin-bottom: min(24px, 1.765vw);
  }

  .custom-point--01 .custom-point__photo--a {
    left: 50%;
    top: min(735px, 54.044vw);
    width: min(600px, 44.118vw);
  }

  .custom-point--01 .custom-point__photo--b {
    left: calc(50% - min(600px, 44.118vw));
    top: calc(min(1160px, 85.294vw) + max(0px, calc(488.7px - 40.06vw)));
    width: min(600px, 44.118vw);
  }

  .custom-point--01 .custom-point__text--b {
    left: calc(50% + min(87px, 6.397vw));
    top: calc(min(1264px, 92.941vw) + max(0px, calc(488.7px - 40.06vw)));
  }

  .custom-point--01 .custom-point__quote {
    margin-bottom: min(26px, 1.912vw);
    line-height: 1.58334;
  }

  .custom-point--01 .custom-point__lead--sub {
    font-size: clamp(14px, 1.324vw, 18px);
    line-height: 2.11112;
  }

  .custom-point--01 .custom-blur--a {
    left: calc(50% + min(431px, 31.691vw));
    top: calc(min(1152px, 84.706vw) + max(0px, calc(488.7px - 40.06vw)));
    width: min(269px, 19.779vw);
    height: min(268px, 19.706vw);
    filter: blur(min(43px, 3.162vw));
  }

  .custom-point--01 .custom-blur--b {
    left: calc(50% + min(295px, 21.691vw));
    top: calc(min(1400px, 102.941vw) + max(0px, calc(488.7px - 40.06vw)));
    width: min(123px, 9.044vw);
    height: min(123px, 9.044vw);
    filter: blur(min(43px, 3.162vw));
  }


  /* 02 */
  .custom-point--02 {
    height: calc(min(1995px, 146.691vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
    background: linear-gradient(#fff 0 min(137px, 10.074vw), #F1F0EB min(137px, 10.074vw) min(1080px, 79.412vw), #fff min(1080px, 79.412vw));
  }

  .custom-point--02::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: calc(50% - min(760px, 55.882vw));
    top: min(594px, 43.676vw);
    width: min(1520px, 111.765vw);
    height: calc(min(1296px, 95.294vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
    background: #fff;
  }

  .custom-point--02 .custom-point__main {
    right: 0;
  }

  .custom-point--02 .custom-point__head {
    left: calc(50% - min(754px, 55.441vw));
    top: min(430px, 31.618vw);
    width: calc(min(370px, 27.206vw) + clamp(24px, 2.647vw, 36px) * 16.5);
    background: #fff;
  }

  .custom-point--02 .custom-point__num {
    left: min(206px, 15.147vw);
    top: min(98px, 7.206vw);
  }

  .custom-point--02 .custom-point__title {
    left: min(293px, 21.544vw);
    top: min(87px, 6.397vw);
    font-size: clamp(24px, 2.647vw, 36px);
    line-height: 2.08334;
  }

  .custom-point--02 .custom-point__title-line {
    height: 2.08334em;
  }

  .custom-point--02 .custom-point__title-line:first-child {
    position: relative;
    top: -0.33334em;
    height: 1.5em;
  }

  .custom-point--02 .custom-point__title-line:last-child {
    position: relative;
    top: 0.11112em;
  }

  .custom-point--02 .custom-point__big {
    font-size: 1.33334em;
    letter-spacing: 0.15em;
  }

  .custom-point--02 .custom-point__photo--a {
    left: calc(50% - min(600px, 44.118vw));
    top: min(735px, 54.044vw);
    width: min(610px, 44.853vw);
  }

  .custom-point--02 .custom-point__text--a {
    left: calc(50% + min(91px, 6.691vw));
    top: min(775px, 56.985vw);
    width: min(520px, 38.235vw);
  }

  .custom-point--02 .custom-point__text--a .custom-point__body {
    max-width: min(440px, 32.353vw);
  }

  .custom-point--02 .custom-point__text--a .custom-point__lead {
    margin-bottom: min(64px, 4.706vw);
  }

  .custom-point--02 .custom-point__text--b {
    left: calc(50% - min(549px, 40.368vw));
    top: calc(min(1183px, 86.985vw) + max(0px, calc(249px - 19.92vw)));
    width: min(calc(min(479px, 35.221vw) - 24px), max(min(390px, 28.676vw), 260px));
  }

  .custom-point--02 .custom-point__photo--b {
    left: calc(50% - min(70px, 5.147vw));
    top: calc(min(1160px, 85.294vw) + max(0px, calc(249px - 19.92vw)));
    width: min(345px, 25.368vw);
  }

  .custom-point--02 .custom-point__photo--c {
    left: calc(50% + min(295px, 21.691vw));
    top: calc(min(1160px, 85.294vw) + max(0px, calc(249px - 19.92vw)));
    width: min(305px, 22.426vw);
  }

  .custom-point--02 .custom-point__photo--d {
    left: calc(50% - min(600px, 44.118vw));
    top: calc(min(1450px, 106.618vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
    width: min(600px, 44.118vw);
  }

  .custom-point--02 .custom-point__text--c {
    left: calc(50% + min(92px, 6.765vw));
    top: calc(min(1533px, 112.721vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
  }

  .custom-point--02 .custom-point__text--c .custom-point__lead {
    margin-bottom: min(22px, 1.618vw);
    font-size: clamp(14px, 1.324vw, 18px);
    line-height: 2;
  }

  .custom-point--02 .custom-blur--a {
    left: calc(50% + min(331px, 24.338vw));
    top: calc(min(1446px, 106.324vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
    width: min(269px, 19.779vw);
    height: min(268px, 19.706vw);
    filter: blur(min(43px, 3.162vw));
  }

  .custom-point--02 .custom-blur--b {
    left: calc(50% + min(195px, 14.338vw));
    top: calc(min(1694px, 124.559vw) + max(0px, calc(249px - 19.92vw)) + max(0px, min(calc(585.5px - 49.7vw), calc(207px - 11.85vw))));
    width: min(123px, 9.044vw);
    height: min(123px, 9.044vw);
    filter: blur(min(43px, 3.162vw));
  }


  /* 03 */
  .custom-point--03 {
    height: min(1684px, 123.824vw);
    background: linear-gradient(#fff 0 min(214px, 15.735vw), #FAF7E8 min(214px, 15.735vw));
  }

  .custom-point--03 .custom-point__main {
    left: 0;
  }

  .custom-point--03 .custom-point__head {
    left: calc(50% + min(640px, 47.059vw) - min(244px, 17.941vw) - clamp(24px, 2.61vw, 35.5px) * 15.802817);
    top: min(450px, 33.088vw);
    width: calc(min(244px, 17.941vw) + clamp(24px, 2.61vw, 35.5px) * 15.802817);
    background: #FAF7E8;
  }

  .custom-point--03 .custom-point__title-line {
    height: 2em;
  }

  .custom-point--03 .custom-point__title-line:first-child {
    height: 2.2817em;
  }

  .custom-point--03 .custom-point__num {
    left: min(91px, 6.691vw);
    top: min(76px, 5.588vw);
  }

  .custom-point--03 .custom-point__title {
    left: min(182px, 13.382vw);
    top: min(48px, 3.529vw);
    font-size: clamp(24px, 2.61vw, 35.5px);
    line-height: 2;
  }

  .custom-point--03 .custom-point__big {
    font-size: 1.43662em;
  }

  .custom-point--03 .custom-point__text--a {
    left: calc(50% - min(549px, 40.368vw));
    top: min(836px, 61.471vw);
  }

  .custom-point--03 .custom-point__photo--a {
    left: calc(50% - min(140px, 10.294vw));
    top: min(735px, 54.044vw);
    width: min(320px, 23.529vw);
  }

  .custom-point--03 .custom-point__photo--b {
    left: calc(50% + min(200px, 14.706vw));
    top: min(775px, 56.985vw);
    width: min(400px, 29.412vw);
  }

  .custom-point--03 .custom-point__photo--c {
    left: calc(50% - min(600px, 44.118vw));
    top: min(1275px, 93.75vw);
    width: min(340px, 25vw);
  }

  .custom-point--03 .custom-point__photo--d {
    left: calc(50% - min(240px, 17.647vw));
    top: min(1235px, 90.809vw);
    width: min(380px, 27.941vw);
  }

  .custom-point--03 .custom-point__text--b {
    left: calc(50% + min(203px, 14.926vw));
    top: min(1300px, 95.588vw);
    width: max(min(340px, 25vw), min(calc(50% - min(203px, 14.926vw) - 24px), 245px));
  }

  .custom-point--03 .custom-point__quote {
    margin-bottom: min(20px, 1.471vw);
  }

  .custom-point--03 .custom-point__body {
    text-wrap: wrap;
  }

  .custom-point--03 .custom-blur--a {
    left: calc(50% + min(331px, 24.338vw));
    top: min(1233px, 90.662vw);
    width: min(269px, 19.779vw);
    height: min(268px, 19.706vw);
    filter: blur(min(43px, 3.162vw));
  }

  .custom-point--03 .custom-blur--b {
    left: calc(50% + min(195px, 14.338vw));
    top: min(1481px, 108.897vw);
    width: min(123px, 9.044vw);
    height: min(123px, 9.044vw);
    filter: blur(min(43px, 3.162vw));
  }


  /* 締め */
  .custom-close {
    height: calc(min(1834px, 134.853vw) + max(0px, calc(376.7px - 41.544vw)));
    background: #FAF7E8;
  }

  .custom-close__lead {
    position: absolute;
    z-index: 1;
    left: 0;
    top: min(44px, 3.235vw);
    width: 100%;
    font-size: clamp(16px, 1.765vw, 24px);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: center;
  }

  .custom-close__vertical {
    position: absolute;
    z-index: 1;
    left: calc(50% - 4.805556em);
    top: min(235px, 17.279vw);
    display: flex;
    flex-direction: row-reverse;
    gap: 0.416667em;
    font-size: clamp(24px, 2.647vw, 36px);
  }

  .custom-close__col {
    box-sizing: border-box;
    width: 2.916667em;
    height: 15.69445em;
    padding-top: 0.305556em;
    border-left: 1px solid #221714;
    border-right: 1px solid #221714;
    white-space: nowrap;
    font-weight: 400;
    line-height: 2.86112;
    letter-spacing: 0.05em;
    writing-mode: vertical-rl;
    text-align: start;
  }

  .custom-close__col:last-child {
    letter-spacing: 0.06em;
  }

  .custom-close__photo {
    position: absolute;
    z-index: 1;
  }

  .custom-close__photo--a {
    left: calc(50% - min(600px, 44.118vw));
    top: min(336px, 24.706vw);
    width: min(350px, 25.735vw);
  }

  .custom-close__photo--b {
    left: calc(50% + min(250px, 18.382vw));
    top: min(188px, 13.824vw);
    width: min(350px, 25.735vw);
  }

  .custom-close__photo--c {
    left: calc(50% + min(231px, 16.985vw));
    top: min(698px, 51.324vw);
    width: min(280px, 20.588vw);
  }

  .custom-close__line {
    position: absolute;
    z-index: 3;
    left: 50%;
    top: calc(min(905px, 66.544vw) + max(0px, calc(376.7px - 41.544vw)));
    width: 1px;
    height: min(147px, 10.809vw);
    background: #221714;
  }

  .custom-close__text {
    position: absolute;
    z-index: 3;
    left: 0;
    top: calc(min(1117px, 82.132vw) + max(0px, calc(376.7px - 41.544vw)));
    width: 100%;
    font-size: clamp(24px, 2.353vw, 32px);
    font-weight: 700;
    line-height: 1.3125;
    letter-spacing: 0.1em;
    text-align: center;
  }

  .custom-close__wide {
    position: absolute;
    z-index: 2;
    left: 0;
    top: calc(min(1017px, 74.779vw) + max(0px, calc(376.7px - 41.544vw)));
    width: 100%;
  }

  .custom-close__wide img {
    width: 100%;
  }

  .custom-close .custom-blur--a {
    left: calc(50% - min(369px, 27.132vw));
    top: min(41px, 3.015vw);
    width: min(268px, 19.706vw);
    height: min(267px, 19.632vw);
    background: #FDE8BF;
    filter: blur(min(43px, 3.162vw));
  }

  .custom-close .custom-blur--b {
    left: calc(50% - min(505px, 37.132vw));
    top: min(288px, 21.176vw);
    width: min(123px, 9.044vw);
    height: min(123px, 9.044vw);
    filter: blur(min(43px, 3.162vw));
  }

  .custom-close .custom-blur--c {
    left: calc(50% - min(336px, 24.706vw));
    top: min(782px, 57.5vw);
    width: min(157px, 11.544vw);
    height: min(157px, 11.544vw);
    background: #FFE4B8;
    filter: blur(min(43px, 3.162vw));
  }

  .custom-close .custom-blur--d {
    left: calc(50% + min(369px, 27.132vw));
    top: min(563px, 41.397vw);
    width: min(255px, 18.75vw);
    height: min(254px, 18.676vw);
    filter: blur(min(43px, 3.162vw));
  }

  .custom-close .custom-blur--e {
    left: calc(50% + min(566px, 41.618vw));
    top: min(452px, 33.235vw);
    width: min(116px, 8.529vw);
    height: min(116px, 8.529vw);
    background: #FFE4B8;
    filter: blur(min(43px, 3.162vw));
  }


  /* WORKS */
  .custom-works {
    padding: min(127px, 8.496vw) 0 min(120px, 8.028vw);
    background: #F2F2F2;
  }

  .custom-works__inner {
    max-width: min(1420px, 95vw);
    width: 95%;
    margin-inline: auto;
  }

  .custom-works__en {
    margin-bottom: min(12px, 0.803vw);
    text-align: center;
  }

  .custom-works__en img {
    width: min(73px, 4.884vw);
    margin-inline: auto;
  }

  .custom-works__title {
    margin-bottom: min(42px, 2.81vw);
    font-size: clamp(24px, 2.141vw, 32px);
    font-weight: 500;
    line-height: 2.5;
    letter-spacing: 0.1em;
    text-align: center;
  }

  .custom-works__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: min(40px, 2.676vw) min(20px, 1.338vw);
    margin: 0 0 min(60px, 4.014vw);
    padding: 0;
    list-style: none;
  }

  .custom-works__item {
    background: #fff;
  }

  .custom-works__item a {
    display: block;
    color: #221714;
    text-decoration: none;
  }

  .custom-works__pic {
    aspect-ratio: 340 / 220;
  }

  .custom-works__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .custom-works__text {
    padding: min(20px, 1.338vw) min(20px, 1.338vw) min(38px, 2.542vw);
  }

  .custom-works__category {
    display: flex;
    flex-wrap: wrap;
    gap: min(8px, 0.535vw);
    margin-bottom: min(8px, 0.535vw);
  }

  .custom-works__category span {
    display: block;
    padding: min(3px, 0.201vw) min(20px, 1.338vw);
    background: #F1F0EB;
    font-size: max(12px, min(14px, 0.937vw));
    font-weight: 500;
    line-height: 1.7143;
    letter-spacing: 0.05em;
  }

  .custom-works__name {
    margin: 0 0 min(12px, 0.803vw);
    font-size: clamp(14px, 1.07vw, 16px);
    font-weight: 400;
    line-height: 1.875;
    letter-spacing: 0.05em;
  }

  .custom-works__area {
    font-size: max(12px, min(14px, 0.937vw));
    font-weight: 500;
    line-height: 1.7143;
    letter-spacing: 0.05em;
    color: #B7B7B7;
  }

  .custom-works__btn {
    text-align: center;
  }

  .custom-works__btn a {
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    width: min(600px, 40.141vw);
    padding: min(36px, 2.408vw) 0;
    background: #221714;
    color: #fff;
    font-size: clamp(14px, 1.07vw, 16px);
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.1em;
    text-decoration: none;
  }

  .custom-works__btn a::after {
    content: "";
    position: absolute;
    right: min(62px, 4.148vw);
    top: 50%;
    width: min(14px, 0.937vw);
    height: min(12px, 0.803vw);
    background: url(../images/common/white_arrow.svg?v=202610300917) no-repeat center center / contain;
    transform: translateY(-50%);
  }


  /* その他メニュー */
  #custom-house .p-link__page {
    padding-top: min(122px, 8.971vw);
    margin-bottom: min(186px, 13.676vw);
  }

  #custom-house .p-link__page-ttl {
    margin-bottom: min(34px, 2.5vw);
    font-size: clamp(24px, 2.353vw, 32px);
    line-height: 1.5625;
    position: relative;
    top: calc(min(4px, 0.294vw) * -1);
    letter-spacing: 0.05em;
  }

  #custom-house .p-link__page-item a {
    display: block;
    color: #221714;
    text-decoration: none;
  }

  #custom-house .p-link__page-items {
    max-width: clamp(540px, 52.941vw, 720px);
    gap: 0 clamp(30px, 2.941vw, 40px);
  }

  #custom-house .p-link__page-item a p {
    font-size: max(12px, min(16px, 1.176vw));
    text-align: left;
    line-height: 1.875;
    font-weight: 500;
  }

  #custom-house .p-link__page .banner {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: clamp(255px, 25vw, 340px);
    height: clamp(120px, 11.765vw, 160px);
    margin-bottom: clamp(9.75px, 0.956vw, 13px);
    overflow: hidden;
  }

  #custom-house .p-link__page .banner span,
  #custom-house .p-link__page .banner img,
  #custom-house .p-link__page .banner picture {
    position: absolute;
    display: block;
  }

  #custom-house .p-link__page .banner__arrow {
    right: 0;
    bottom: 0;
    width: clamp(15px, 1.471vw, 20px);
    height: clamp(15px, 1.471vw, 20px);
    background: #221714;
  }

  #custom-house .p-link__page .banner__arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(6px, 0.588vw, 8px);
    height: 1px;
    background: #fff;
    transform: translate(-50%, -50%);
  }

  #custom-house .p-link__page .banner__arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: clamp(3.75px, 0.368vw, 5px);
    height: clamp(3.75px, 0.368vw, 5px);
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translate(-70%, -50%) rotate(45deg);
  }

  /* 規格住宅のバナーは枠・文字・矢印まで画像に入っている */
  #custom-house .p-link__page .banner--standard {
    border: 0;
  }

  #custom-house .p-link__page .banner__bg {
    inset: 0;
  }

  #custom-house .p-link__page .banner__bg img {
    position: static;
    width: 100%;
    height: auto;
  }

  #custom-house .p-link__page .banner__catch,
  #custom-house .p-link__page .banner__title {
    z-index: 2;
    left: clamp(7.5px, 0.735vw, 10px);
    display: flex;
    align-items: center;
    box-sizing: border-box;
    background-color: #FAF7E8;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }

  /* 位置は枠線（1px）の内側から測った値。黄色の線は帯の中の左 8px・上 15px */
  #custom-house .p-link__page .banner__catch {
    top: clamp(51.75px, 5.074vw, 69px);
    width: clamp(136.5px, 13.382vw, 182px);
    height: clamp(22.5px, 2.206vw, 30px);
    justify-content: center;
    background: linear-gradient(#FFEB00, #FFEB00) clamp(6px, 0.588vw, 8px) clamp(11.25px, 1.103vw, 15px) / clamp(123px, 12.059vw, 164px) clamp(6px, 0.588vw, 8px) no-repeat, #FAF7E8;
    font-size: clamp(10.5px, 1.029vw, 14px);
  }

  #custom-house .p-link__page .banner__title {
    top: clamp(78.75px, 7.721vw, 105px);
    width: clamp(140.25px, 13.75vw, 187px);
    height: clamp(28.5px, 2.794vw, 38px);
    padding-left: clamp(9.75px, 0.956vw, 13px);
    font-size: clamp(16.5px, 1.618vw, 22px);
  }

  #custom-house .p-link__page .banner--standard .banner__arrow {
    z-index: 3;
  }

  #custom-house .p-link__page .banner--renovation {
    border: 1px solid #B7B7B7;
    background: #F1F0EB;
  }

  #custom-house .p-link__page .banner--renovation::before,
  #custom-house .p-link__page .banner--renovation::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: clamp(119.25px, 11.691vw, 159px);
    width: clamp(52.5px, 5.147vw, 70px);
    background: #F1F0EB;
  }

  #custom-house .p-link__page .banner--renovation::before {
    top: clamp(15px, 1.471vw, 20px);
    height: clamp(19.5px, 1.912vw, 26px);
  }

  #custom-house .p-link__page .banner--renovation::after {
    top: clamp(37.5px, 3.676vw, 50px);
    height: clamp(22.5px, 2.206vw, 30px);
  }

  #custom-house .p-link__page .banner__photo {
    left: 1px;
    top: clamp(5.25px, 0.515vw, 7px);
    width: clamp(150px, 14.706vw, 200px);
  }

  #custom-house .p-link__page .banner__dots {
    z-index: 2;
    left: clamp(123.75px, 12.132vw, 165px);
    top: clamp(18px, 1.765vw, 24px);
    width: clamp(45px, 4.412vw, 60px);
    height: clamp(1.5px, 0.147vw, 2px);
    background: radial-gradient(circle closest-side, #FFD500 80%, transparent 100%) 0 0 / clamp(7.5px, 0.735vw, 10px) clamp(1.5px, 0.147vw, 2px) repeat-x;
  }

  #custom-house .p-link__page .banner__lead {
    z-index: 2;
    left: clamp(123.75px, 12.132vw, 165px);
    top: clamp(19.5px, 1.912vw, 26px);
    font-size: clamp(7.5px, 0.735vw, 10px);
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  #custom-house .p-link__page .banner__name {
    z-index: 2;
    left: clamp(123px, 12.059vw, 164px);
    top: clamp(31.5px, 3.088vw, 42px);
    font-size: clamp(15px, 1.471vw, 20px);
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  #custom-house .p-link__page .banner__line {
    z-index: 2;
    left: clamp(144.75px, 14.191vw, 193px);
    top: clamp(69px, 6.765vw, 92px);
    width: clamp(12px, 1.176vw, 16px);
    height: 1px;
    background: #B7B7B7;
  }

  #custom-house .p-link__page .banner__en-sub {
    z-index: 2;
    left: clamp(165px, 16.176vw, 220px);
    top: clamp(66px, 6.471vw, 88px);
    font-size: clamp(3.75px, 0.368vw, 5px);
    line-height: 1.5;
    letter-spacing: 0.1em;
    color: #B7B7B7;
    white-space: nowrap;
  }

  #custom-house .p-link__page .banner__en {
    z-index: 2;
    left: clamp(64.5px, 6.324vw, 86px);
    top: clamp(84.75px, 8.309vw, 113px);
    width: clamp(165.75px, 16.25vw, 221px);
  }

  #custom-house .p-link__page .banner--renovation .banner__arrow {
    z-index: 3;
  }
}


/* ===== SP ===== */
@media (max-width: 767px) {
  #page-custom-house section {
    position: relative;
    overflow: hidden;
  }
  .custom-point__text {
    display: contents;
  }
  .custom-point__photo,
  .custom-point__lead,
  .custom-point__body,
  .custom-point__quote,
  .custom-point__main,
  .custom-point__head,
  .custom-point__medals {
    position: absolute;
    z-index: 1;
  }

  /* TOP（FV＋コンセプト） */
  .custom-top {
    height: 187.44vw;
    background: #fff;
  }
  .custom-top::before {
    content: "";
    position: absolute;
    left: 2.899vw;
    top: 74.396vw;
    width: 94.203vw;
    height: 93.72vw;
    background: #F1F0EB;
  }
  .custom-fv__photo {
    position: absolute;
    left: 13.043vw;
    top: 0;
    width: 86.957vw;
  }
  .custom-fv__en {
    position: absolute;
    z-index: 2;
    left: 17.15vw;
    top: 66.425vw;
    width: 76.77vw;
  }
  .custom-fv__title-en {
    position: absolute;
    z-index: 2;
    left: 12.56vw;
    top: 80.435vw;
  }
  .custom-fv__title-en img {
    width: 79.71vw;
  }
  .custom-fv__catch {
    position: absolute;
    z-index: 2;
    left: 5.314vw;
    top: 8.454vw;
    box-sizing: border-box;
    width: 66.425vw;
    height: 9.662vw;
    padding-left: 2.415vw;
    background: #fff;
    font-size: 3.865vw;
    font-weight: 500;
    line-height: 2.5;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }
  .custom-fv__copy {
    position: absolute;
    z-index: 2;
    left: 5.314vw;
    top: 19.082vw;
    font-size: 5.797vw;
    font-weight: 700;
    line-height: 1.667;
    letter-spacing: 0.1em;
    color: #fff;
    white-space: nowrap;
  }
  .custom-fv__copy span {
    display: block;
    box-sizing: border-box;
    height: 10.145vw;
    padding-left: 1.449vw;
    background: #002F7B;
  }
  .custom-fv__copy span:first-child {
    width: 48.309vw;
    margin-bottom: 0.966vw;
  }
  .custom-fv__copy span:last-child {
    width: 60.628vw;
  }
  .custom-concept__title {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 103.14vw;
    width: 100%;
    font-size: 4.348vw;
    font-weight: 700;
    line-height: 1.8889;
    letter-spacing: 0.1em;
    text-align: center;
  }
  .custom-concept__marker {
    background: linear-gradient(transparent 65%, #FFEB00 65%, #FFEB00 96%, transparent 96%);
  }
  .custom-concept__text {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 131.643vw;
    width: 100%;
    font-size: 3.865vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.05em;
    text-align: center;
  }
  .custom-concept__boss {
    position: absolute;
    z-index: 1;
    left: 73.671vw;
    top: 149.275vw;
    width: 18.599vw;
  }

  /* 01〜03 共通 */
  .custom-point__main {
    z-index: 1;
    top: 0;
    width: 97.101vw;
  }
  .custom-point__main img {
    width: 100%;
  }
  .custom-point__head {
    z-index: 2;
  }
  .custom-point__num {
    position: absolute;
  }
  .custom-point__title {
    position: absolute;
    font-size: 4.831vw;
    font-weight: 500;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  .custom-point__title-line {
    display: block;
    height: 10.145vw;
  }
  .custom-point__big {
    font-size: 6.28vw;
    line-height: 1;
    letter-spacing: 0.14em;
  }
  .custom-point__lead {
    font-size: 4.348vw;
    font-weight: 700;
    line-height: 1.8889;
    letter-spacing: 0.1em;
  }
  .custom-point__body {
    font-size: 3.865vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .custom-point__body strong {
    font-weight: 700;
  }
  .custom-point__quote {
    font-size: 5.072vw;
    font-weight: 700;
    line-height: 1.95;
    letter-spacing: 0.1em;
    color: #1B3560;
    text-align: center;
  }
  .custom-marker {
    background: linear-gradient(transparent 70%, #FFEB00 70%, #FFEB00 94%, transparent 94%);
  }

  /* 閉じかっこで終わる線は、かっこの空き（半角分）に線を引かない */
  .custom-marker:has(+ .custom-trim) {
    background-repeat: no-repeat;
    background-size: calc(100% - 0.5em) 100%;
  }
  .custom-trim {
    margin-inline: -0.5em;
  }

  /* 01 */
  .custom-point--01 {
    height: 414.976vw;
    background: linear-gradient(#fff 0 30.676vw, #FAF7E8 30.676vw 395.652vw, #fff 395.652vw);
  }
  .custom-point--01 .custom-point__main {
    left: 0;
  }
  .custom-point__medals {
    z-index: 3;
    left: 12.077vw;
    top: 40.338vw;
    display: flex;
    gap: 1.691vw;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .custom-point__medal {
    width: 24.155vw;
  }
  .custom-point--01 .custom-point__head {
    left: 7.729vw;
    top: 56.763vw;
    width: 84.541vw;
    height: 38.647vw;
    background: #FAF7E8;
  }
  .custom-point--01 .custom-point__num {
    left: 2.899vw;
    top: 15.942vw;
  }
  .custom-point--01 .custom-point__title {
    left: 9.42vw;
    top: 13.285vw;
  }
  .custom-point--01 .custom-point__title-line:first-child {
    height: 11.111vw;
  }
  .custom-point--01 .custom-point__big {
    font-size: 6.522vw;
  }
  .custom-point--01 .custom-point__lead:not(.custom-point__lead--sub) {
    left: 7.729vw;
    top: 98.309vw;
    width: 84.541vw;
  }
  .custom-point--01 .custom-point__body:nth-child(2) {
    left: 7.729vw;
    top: 195.169vw;
    width: 84.541vw;
  }
  .custom-point--01 .custom-point__body:nth-child(3) {
    left: 8.937vw;
    top: 222.705vw;
    width: 82.6vw;
  }
  .custom-point--01 .custom-point__photo--a {
    left: 7.729vw;
    top: 139.372vw;
    width: 84.541vw;
  }
  .custom-point--01 .custom-point__photo--b {
    left: 5.314vw;
    top: 262.802vw;
    width: 89.372vw;
  }
  .custom-point--01 .custom-point__quote {
    left: 0;
    top: 327.778vw;
    width: 100%;
  }
  .custom-point--01 .custom-point__lead--sub {
    left: 14.01vw;
    top: 351.932vw;
    width: 72.464vw;
    font-size: 4.348vw;
    font-weight: 700;
    line-height: 1.8889;
  }
  .custom-point--01 .custom-blur--a {
    left: 65.942vw;
    top: 340.338vw;
    width: 31.643vw;
    height: 31.401vw;
    filter: blur(15px);
  }
  .custom-point--01 .custom-blur--b {
    left: 50vw;
    top: 369.565vw;
    width: 14.493vw;
    height: 14.251vw;
    filter: blur(9px);
  }

  /* 02 */
  .custom-point--02 {
    height: 428.019vw;
    background: linear-gradient(#fff 0 30.676vw, #F1F0EB 30.676vw 225.604vw, #fff 225.604vw);
  }
  .custom-point--02::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 2.899vw;
    top: 97.101vw;
    width: 94.203vw;
    height: 330.918vw;
    background: #fff;
  }
  .custom-point--02 .custom-point__main {
    left: 2.899vw;
  }
  .custom-point--02 .custom-point__head {
    left: 7.729vw;
    top: 53.623vw;
    width: 84.541vw;
    height: 43.478vw;
    background: #fff;
  }
  .custom-point--02 .custom-point__num {
    left: 12.802vw;
    top: 13.527vw;
  }
  .custom-point--02 .custom-point__title {
    left: 20.048vw;
    top: 11.594vw;
  }
  .custom-point--02 .custom-point__title-line:first-child {
    height: 8.454vw;
  }
  .custom-point--02 .custom-point__title-line:last-child {
    height: auto;
    line-height: 1.9;
  }
  .custom-point--02 .custom-point__big {
    letter-spacing: 0.15em;
  }
  .custom-point--02 .custom-point__photo--a {
    left: 7.729vw;
    top: 101.932vw;
    width: 84.541vw;
  }
  .custom-point--02 .custom-point__text--a .custom-point__lead {
    left: 7.729vw;
    top: 158.213vw;
    width: 84.541vw;
    line-height: 1.944;
  }
  .custom-point--02 .custom-point__text--a .custom-marker:nth-of-type(2) {
    margin-left: -0.966vw;
  }
  .custom-point--02 .custom-point__text--a .custom-point__body {
    left: 7.729vw;
    top: 195.652vw;
    width: 84.541vw;
  }
  .custom-point--02 .custom-point__photo--b {
    left: 7.729vw;
    top: 227.053vw;
    width: 41.063vw;
  }
  .custom-point--02 .custom-point__photo--c {
    left: 51.208vw;
    top: 227.053vw;
    width: 41.063vw;
  }
  .custom-point--02 .custom-point__text--b .custom-point__body {
    left: 7.729vw;
    top: 259.903vw;
    width: 84.541vw;
  }
  .custom-point--02 .custom-point__photo--d {
    left: 7.729vw;
    top: 307.005vw;
    width: 84.541vw;
  }
  .custom-point--02 .custom-point__text--c .custom-point__lead {
    left: 7.729vw;
    top: 372.705vw;
    width: 84.541vw;
  }
  .custom-point--02 .custom-point__text--c .custom-point__quote {
    left: 7.729vw;
    top: 400.242vw;
    width: 84.541vw;
    text-align: left;
  }
  .custom-point--02 .custom-blur--a {
    left: 63.043vw;
    top: 371.498vw;
    width: 31.643vw;
    height: 31.401vw;
    filter: blur(15px);
  }
  .custom-point--02 .custom-blur--b {
    left: 47.101vw;
    top: 400.725vw;
    width: 14.493vw;
    height: 14.251vw;
    filter: blur(9px);
  }

  /* 03 */
  .custom-point--03 {
    height: 371.498vw;
    background: linear-gradient(#fff 0 30.676vw, #FAF7E8 30.676vw);
  }
  .custom-point--03 .custom-point__main {
    left: 0;
  }
  .custom-point--03 .custom-point__head {
    left: 5.314vw;
    top: 53.623vw;
    width: 89.372vw;
    height: 38.647vw;
    background: #FAF7E8;
  }
  .custom-point--03 .custom-point__num {
    left: 4.348vw;
    top: 11.836vw;
  }
  .custom-point--03 .custom-point__title {
    left: 12.077vw;
    top: 10.869vw;
    font-size: 4.831vw;
  }
  .custom-point--03 .custom-point__title-line {
    height: 11.594vw;
  }
  .custom-point--03 .custom-point__title-line:first-child {
    height: 10.386vw;
  }
  .custom-point--03 .custom-point__big {
    font-size: 6.522vw;
    letter-spacing: 0.14em;
  }
  .custom-point--03 .custom-point__text--a .custom-point__lead {
    left: 9.903vw;
    top: 94.928vw;
    width: 81.159vw;
  }
  .custom-point--03 .custom-point__photo--a {
    left: 7.729vw;
    top: 144.444vw;
    width: 62.802vw;
  }
  .custom-point--03 .custom-point__photo--b {
    left: 29.469vw;
    top: 185.507vw;
    width: 62.802vw;
  }
  .custom-point--03 .custom-point__text--b .custom-point__quote {
    left: 8.937vw;
    top: 237.198vw;
    width: 82.126vw;
    text-align: left;
    line-height: 1.5238;
  }
  .custom-point--03 .custom-point__text--b .custom-point__body {
    left: 7.729vw;
    top: 257.005vw;
    width: 84.541vw;
  }
  .custom-point--03 .custom-point__photo--c {
    left: 7.729vw;
    top: 286.232vw;
    width: 62.802vw;
  }
  .custom-point--03 .custom-point__photo--d {
    left: 29.469vw;
    top: 327.295vw;
    width: 62.802vw;
  }
  .custom-point--03 .custom-blur--a {
    left: 60.628vw;
    top: 235.024vw;
    width: 31.643vw;
    height: 31.401vw;
    filter: blur(15px);
  }
  .custom-point--03 .custom-blur--b {
    left: 44.686vw;
    top: 264.251vw;
    width: 14.493vw;
    height: 14.251vw;
    filter: blur(9px);
  }

  /* 締め */
  .custom-close {
    height: 204.348vw;
    background: #FAF7E8;
  }
  .custom-close__lead {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 3.382vw;
    width: 100%;
    font-size: 3.865vw;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: center;
  }
  .custom-close__vertical {
    position: absolute;
    z-index: 1;
    left: 34.3vw;
    top: 27.536vw;
    display: flex;
    flex-direction: row-reverse;
    gap: 1.208vw;
  }
  .custom-close__col {
    box-sizing: border-box;
    width: 9.662vw;
    height: 72.464vw;
    padding-top: 2.174vw;
    border-left: 1px solid #221714;
    border-right: 1px solid #221714;
    font-size: 4.348vw;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.105em;
    writing-mode: vertical-rl;
    text-align: start;
    white-space: nowrap;
  }
  .custom-close__photo {
    position: absolute;
    z-index: 1;
  }
  .custom-close__photo--a {
    left: 2.899vw;
    top: 52.174vw;
    width: 24.155vw;
  }
  .custom-close__photo--b {
    left: 72.947vw;
    top: 31.159vw;
    width: 24.155vw;
  }
  .custom-close__photo--c {
    left: 70.531vw;
    top: 75.845vw;
    width: 24.155vw;
  }
  .custom-close__line {
    position: absolute;
    z-index: 1;
    left: 49.758vw;
    top: 109.903vw;
    width: 1px;
    height: 14.01vw;
    background: #221714;
  }
  .custom-close__text {
    position: absolute;
    z-index: 3;
    left: 0;
    top: 128.019vw;
    width: 100%;
    font-size: 4.348vw;
    font-weight: 700;
    line-height: 2.1111;
    letter-spacing: 0.1em;
    text-align: center;
  }
  .custom-close__wide {
    position: absolute;
    z-index: 2;
    left: 0;
    top: 138.647vw;
    width: 100%;
  }
  .custom-close__wide img {
    width: 100%;
  }
  .custom-close .custom-blur--a {
    left: 14.493vw;
    top: 18.841vw;
    width: 25.362vw;
    height: 25.362vw;
    background: #FDE8BF;
    filter: blur(8px);
  }
  .custom-close .custom-blur--b {
    left: 2.899vw;
    top: 42.995vw;
    width: 11.594vw;
    height: 11.594vw;
    filter: blur(8px);
  }
  .custom-close .custom-blur--c {
    left: 16.425vw;
    top: 99.034vw;
    width: 15.7vw;
    height: 15.7vw;
    background: #FFE4B8;
    filter: blur(8px);
  }
  .custom-close .custom-blur--d {
    left: 65.217vw;
    top: 89.13vw;
    width: 18.357vw;
    height: 18.357vw;
    filter: blur(8px);
  }
  .custom-close .custom-blur--e {
    left: 87.44vw;
    top: 70.048vw;
    width: 12.56vw;
    height: 12.56vw;
    background: #FFE4B8;
    filter: blur(8px);
  }

  /* WORKS */
  .custom-works {
    padding: 19.565vw 0 14.493vw;
    background: #F2F2F2;
  }
  .custom-works__inner {
    width: 94.203vw;
    margin-inline: auto;
  }
  .custom-works__en {
    margin-bottom: 5.556vw;
    text-align: center;
  }
  .custom-works__en img {
    width: 12.319vw;
    margin-inline: auto;
  }
  .custom-works__title {
    margin-bottom: 9.42vw;
    font-size: 5.797vw;
    font-weight: 500;
    line-height: 1.5833;
    letter-spacing: 0.1em;
    text-align: center;
  }
  .custom-works__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4.831vw 2.415vw;
    margin: 0 0 9.662vw;
    padding: 0;
    list-style: none;
  }
  .custom-works__item {
    background: #fff;
  }
  .custom-works__item a {
    display: block;
    color: #221714;
    text-decoration: none;
  }
  .custom-works__pic {
    aspect-ratio: 190 / 120;
  }
  .custom-works__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .custom-works__text {
    padding: 2.415vw 2.415vw 4.589vw;
  }
  .custom-works__category {
    display: flex;
    flex-wrap: wrap;
    gap: 1.449vw;
    margin-bottom: 1.932vw;
  }
  .custom-works__category span {
    display: block;
    padding: 0.725vw 4.831vw;
    background: #F1F0EB;
    font-size: 3.382vw;
    font-weight: 500;
    line-height: 1.7143;
    letter-spacing: 0.05em;
  }
  .custom-works__name {
    margin: 0 0 3.14vw;
    font-size: 3.382vw;
    font-weight: 400;
    line-height: 1.7143;
    letter-spacing: 0.05em;
  }
  .custom-works__area {
    font-size: 3.382vw;
    font-weight: 500;
    line-height: 1.7143;
    letter-spacing: 0.05em;
    color: #B7B7B7;
  }
  .custom-works__btn {
    text-align: center;
  }
  .custom-works__btn a {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 82.126vw;
    margin-inline: auto;
    padding: 6.28vw 0;
    background: #221714;
    color: #fff;
    font-size: 3.382vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.1em;
    text-decoration: none;
  }
  .custom-works__btn a::after {
    content: "";
    position: absolute;
    right: 5.797vw;
    top: 50%;
    width: 3.382vw;
    height: 2.899vw;
    background: url(../images/common/white_arrow.svg?v=202610300917) no-repeat center center / contain;
    transform: translateY(-50%);
  }

  /* その他メニュー */
  #custom-house .p-link__page {
    padding-top: 12.077vw;
    margin-bottom: 28.744vw;
  }
  #custom-house .p-link__page-ttl {
    margin-bottom: 2.174vw;
    font-size: 4.831vw;
    line-height: 2.5;
    letter-spacing: 0.05em;
  }
  #custom-house .p-link__page-items {
    gap: 9.179vw 0;
  }
  #custom-house .p-link__page-item a {
    display: block;
    color: #221714;
    text-decoration: none;
  }
  #custom-house .p-link__page-item a p {
    font-size: 3.865vw;
    text-align: left;
    font-weight: 500;
    line-height: 1.875;
    letter-spacing: 0.05em;
  }
  #custom-house .p-link__page .banner {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 38.647vw;
    margin-bottom: 3.14vw;
    overflow: hidden;
  }
  #custom-house .p-link__page .banner span,
  #custom-house .p-link__page .banner img,
  #custom-house .p-link__page .banner picture {
    position: absolute;
    display: block;
  }
  #custom-house .p-link__page .banner__arrow {
    right: 0;
    bottom: 0;
    width: 4.831vw;
    height: 4.831vw;
    background: #221714;
  }
  #custom-house .p-link__page .banner__arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.932vw;
    height: 1px;
    background: #fff;
    transform: translate(-50%, -50%);
  }
  #custom-house .p-link__page .banner__arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: 1.208vw;
    height: 1.208vw;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translate(-70%, -50%) rotate(45deg);
  }
  #custom-house .p-link__page .banner--standard {
    border: 0;
  }
  #custom-house .p-link__page .banner__bg {
    inset: 0;
  }
  #custom-house .p-link__page .banner__bg img {
    position: static;
    width: 100%;
    height: auto;
  }
  #custom-house .p-link__page .banner__catch,
  #custom-house .p-link__page .banner__title {
    z-index: 2;
    left: 2.415vw;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    background-color: #FAF7E8;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
  #custom-house .p-link__page .banner__catch {
    top: 16.667vw;
    width: 43.961vw;
    height: 7.246vw;
    justify-content: center;
    background: linear-gradient(#FFEB00, #FFEB00) 1.932vw 3.623vw / 39.614vw 1.932vw no-repeat, #FAF7E8;
    font-size: 3.382vw;
  }
  #custom-house .p-link__page .banner__title {
    top: 25.362vw;
    width: 45.169vw;
    height: 9.179vw;
    padding-left: 3.14vw;
    font-size: 5.314vw;
  }
  #custom-house .p-link__page .banner--standard .banner__arrow {
    z-index: 3;
  }
  #custom-house .p-link__page .banner--renovation {
    border: 1px solid #B7B7B7;
    background: #F1F0EB;
  }
  #custom-house .p-link__page .banner--renovation::before,
  #custom-house .p-link__page .banner--renovation::after {
    content: "";
    position: absolute;
    z-index: 1;
    left: 38.406vw;
    width: 16.908vw;
    background: #F1F0EB;
  }
  #custom-house .p-link__page .banner--renovation::before {
    top: 4.831vw;
    height: 6.28vw;
  }
  #custom-house .p-link__page .banner--renovation::after {
    top: 12.077vw;
    height: 7.246vw;
  }
  #custom-house .p-link__page .banner__photo {
    left: -1px;
    top: 3.382vw;
    width: 48.309vw;
  }
  #custom-house .p-link__page .banner__dots {
    z-index: 2;
    left: 39.855vw;
    top: 6.039vw;
    width: 14.493vw;
    height: 0.483vw;
    background: radial-gradient(circle closest-side, #FFD500 80%, transparent 100%) 0 0 / 2.415vw 0.483vw repeat-x;
  }
  #custom-house .p-link__page .banner__lead {
    z-index: 2;
    left: 39.855vw;
    top: 6.28vw;
    font-size: 2.415vw;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  #custom-house .p-link__page .banner__name {
    z-index: 2;
    left: 39.13vw;
    top: 10.314vw;
    font-size: 4.831vw;
    font-weight: 500;
    line-height: 2.2;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  #custom-house .p-link__page .banner__line {
    z-index: 2;
    left: 46.618vw;
    top: 22.222vw;
    width: 3.865vw;
    height: 1px;
    background: #B7B7B7;
  }
  #custom-house .p-link__page .banner__en-sub {
    z-index: 2;
    left: 53.14vw;
    top: 21.498vw;
    font-size: 1.208vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    color: #B7B7B7;
    white-space: nowrap;
  }
  #custom-house .p-link__page .banner__en {
    z-index: 2;
    left: 20.773vw;
    top: 27.295vw;
    width: 53.382vw;
  }
  #custom-house .p-link__page .banner--renovation .banner__arrow {
    z-index: 3;
  }

  /* 共通 end-bnr の電話アイコン・番号の大きさ（このページだけ） */
  #custom-house #end-contact .p-end-contact-top p.tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 4.348vw;
  }
  #custom-house #end-contact .p-end-contact-top p.tel img.top {
    width: 5.556vw;
    height: 5.556vw;
  }
  #custom-house #end-contact .p-end-contact-top p.tel img.bottom {
    width: 58.213vw;
    height: auto;
  }
}

/* 共通の a:hover の下線を、このページのボタン・カード・バナーでは出さない */
#custom-house .custom-works__item a,
#custom-house .custom-works__btn a,
#custom-house .p-link__page .banner {
  text-decoration: none;
}

/* hover（規格住宅のバナーとそろえる） */
#custom-house .custom-works__item a,
#custom-house .custom-works__btn a,
#custom-house .p-link__page .banner {
  transition: opacity 0.3s ease-out;
}
#custom-house .custom-works__btn a:focus-visible,
#custom-house .p-link__page .banner:focus-visible {
  outline: 2px solid #221714;
  outline-offset: 2px;
}
@media (any-hover: hover) {
  #custom-house .custom-works__item a:hover,
  #custom-house .custom-works__btn a:hover,
  #custom-house .p-link__page .banner:hover {
    opacity: 0.8;
  }
}
@media (prefers-reduced-motion: reduce) {
  #custom-house .custom-works__item a,
  #custom-house .custom-works__btn a,
  #custom-house .p-link__page .banner {
    transition: none;
  }
}

/* PC の狭い幅（768〜1359px）：横に並ぶ写真を小さくして、文章の幅と写真とのすき間（32px 以上）を確保する。写真は比率を保って縮める */
@media (min-width: 768px) and (max-width: 1359px) {
  /* 01 上段：右の写真の右端はそのまま、左端を右へ */
  .custom-point--01 .custom-point__text--a {
    width: calc(min(549px, 40.368vw) + max(0px, calc(172.2px - 14.35vw)) - 32px);
  }

  .custom-point--01 .custom-point__photo--a {
    left: calc(50% + max(0px, calc(172.2px - 14.35vw)));
    width: calc(min(600px, 44.118vw) - max(0px, calc(172.2px - 14.35vw)));
  }

  /* 02 上段：左の写真を小さくし、右の文章を左へ広げる */
  .custom-point--02 .custom-point__photo--a {
    width: calc(min(610px, 44.853vw) - max(0px, calc(138.9px - 11.574vw)));
  }

  .custom-point--02 .custom-point__text--a {
    left: calc(50% + min(91px, 6.691vw) - max(0px, calc(138.9px - 11.574vw)));
    width: calc(min(520px, 38.235vw) + max(0px, calc(138.9px - 11.574vw)));
  }

  /* 02 中段：右の写真2枚を同じ割合で小さくし、左の文章を広げる */
  .custom-point--02 .custom-point__text--b {
    width: max(min(390px, 28.676vw), min(calc(min(479px, 35.221vw) + max(0px, calc(168.97px - 15.36vw)) - 32px), 290px));
  }

  .custom-point--02 .custom-point__photo--b {
    left: calc(50% - min(70px, 5.147vw) + max(0px, calc(168.97px - 15.36vw)));
    width: calc(min(345px, 25.368vw) - max(0px, calc(168.97px - 15.36vw)) * 0.5149);
  }

  .custom-point--02 .custom-point__photo--c {
    left: calc(50% + min(295px, 21.691vw) + max(0px, calc(168.97px - 15.36vw)) * 0.4552);
    width: calc(min(305px, 22.426vw) - max(0px, calc(168.97px - 15.36vw)) * 0.4552);
  }

  /* 03 上段：右の写真2枚を同じ割合で小さくし、左の文章とのすき間を広げる */
  .custom-point--03 .custom-point__photo--a {
    left: calc(50% - min(140px, 10.294vw) + max(0px, calc(136.4px - 15.15vw)));
    width: calc(min(320px, 23.529vw) - max(0px, calc(136.4px - 15.15vw)) * 0.4324);
  }

  .custom-point--03 .custom-point__photo--b {
    left: calc(50% + min(200px, 14.706vw) + max(0px, calc(136.4px - 15.15vw)) * 0.5405);
    width: calc(min(400px, 29.412vw) - max(0px, calc(136.4px - 15.15vw)) * 0.5405);
  }

  /* 03 下段：左の写真2枚を同じ割合で小さくし、右の文章を左へ広げる */
  .custom-point--03 .custom-point__photo--c {
    width: calc(min(340px, 25.0vw) - max(0px, calc(129.3px - 12.93vw)) * 0.4595);
  }

  .custom-point--03 .custom-point__photo--d {
    left: calc(50% - min(240px, 17.647vw) - max(0px, calc(129.3px - 12.93vw)) * 0.4595);
    width: calc(min(380px, 27.941vw) - max(0px, calc(129.3px - 12.93vw)) * 0.5135);
  }

  .custom-point--03 .custom-point__text--b {
    left: calc(50% + min(203px, 14.926vw) - max(0px, calc(129.3px - 12.93vw)));
    width: max(min(340px, 25.0vw), min(calc(50% - min(203px, 14.926vw) - 24px + max(0px, calc(129.3px - 12.93vw))), calc(245px + max(0px, calc(129.3px - 12.93vw)))));
  }
}

/* 傍点の位置（カンプに合わせた値。em は傍点が付く文字の大きさ） */
@media (min-width: 768px) {
  .custom-fv__catch .custom-em::before {
    top: 0.006em;
    height: 0.146em;
    background-size: 1.021em 0.146em;
    background-position: 0.052em 0;
  }

  .custom-point--01 .custom-em::before {
    top: -0.062em;
    height: 0.14em;
    background-size: 1.063em 0.14em;
    background-position: -0.0975em 0;
  }

  .custom-point--02 .custom-em::before {
    top: -0.148em;
    height: 0.146em;
    background-size: 1.146em 0.146em;
    background-position: -0.063em 0;
  }

  .custom-point--03 .custom-em::before {
    top: 0.0765em;
    height: 0.137em;
    background-size: 1.033em 0.137em;
    background-position: -0.0165em 0;
  }
}

@media (max-width: 767px) {
  .custom-fv__catch .custom-em::before {
    top: -0.095em;
    height: 0.19em;
    background-size: 1.0625em 0.19em;
    background-position: -0.006em 0;
  }

  .custom-point--01 .custom-em::before {
    top: -0.063em;
    height: 0.154em;
    background-size: 1.105em 0.154em;
    background-position: -0.096em 0;
  }

  .custom-point--02 .custom-em::before {
    top: -0.104em;
    height: 0.154em;
    background-size: 1.135em 0.154em;
    background-position: -0.0295em 0;
  }

  .custom-point--02 .custom-point__big:nth-of-type(2) .custom-em::before {
    top: -0.104em;
    height: 0.154em;
    background-size: 1.135em 0.154em;
    background-position: 0.0555em 0;
  }

  .custom-point--03 .custom-em::before {
    top: -0.189em;
    height: 0.148em;
    background-size: 1.099em 0.148em;
    background-position: -0.0305em 0;
  }
}

/* その他メニューの書体（デザインは Noto Sans CJK JP。このページの中だけで指定） */
#custom-house .p-link__page-ttl,
#custom-house .p-link__page .banner__catch,
#custom-house .p-link__page .banner__title,
#custom-house .p-link__page .banner__lead,
#custom-house .p-link__page .banner__name {
  font-family: "Noto Sans JP", sans-serif;
}
