@charset "UTF-8";
/* ===== 共通 ===== */
#page-standard-house {
  overflow-x: hidden;
  color: #221714;
}
:where(#page-standard-house) img {
  display: block;
  max-width: 100%;
  height: auto;
}
:where(#page-standard-house) picture {
  display: block;
}
:where(#page-standard-house) ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
:where(#page-standard-house) p,
:where(#page-standard-house) h2,
:where(#page-standard-house) h3,
:where(#page-standard-house) h4 {
  margin: 0;
  padding: 0;
}
/* 見出しに変えた部分は、文字の大きさ・太さを各クラスの指定に任せる */
:where(#page-standard-house) :is(.plan-group__tab, .plan-card__name, .point__head-title, .price__head),
:where(#page-standard-house) h5,
:where(#page-standard-house) h6 {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}
:where(#page-standard-house) b {
  font-weight: inherit;
}
:where(#page-standard-house) ruby rt {
  font-size: 0.267em;
  letter-spacing: 0.08em;
  line-height: 1;
  font-weight: 400;
}

/* ===== FV ブランド / 2つ目のブランド ===== */
.brand__inner {
  position: relative;
  display: inline-block;
}
.brand__catch {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  font-weight: 400;
  white-space: nowrap;
}
.brand__catch span {
  display: inline-block;
}
.brand__title {
  display: flex;
  align-items: flex-end;
}
.brand__label {
  display: block;
  text-align: center;
  font-weight: 400;
  letter-spacing: 0.08em;
  /* 42px・7文字で箱の幅（315px）をわずかに超えるため、折り返さない */
  white-space: nowrap;
}
.brand__name {
  display: block;
  white-space: nowrap;
  font-weight: 500;
  letter-spacing: 0.1em;
}

/* ===== スライダー ===== */
.slider {
  position: relative;
}
.slider__viewport {
  overflow: hidden;
}
.slider__track {
  position: relative;
  left: 50%;
  display: flex;
  width: max-content;
  will-change: transform;
}
.slider__list {
  display: flex;
  flex: none;
}
.slider__item {
  flex: none;
}
.slider__item img {
  width: 100%;
}
.slider__badge {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}
.slider__badge::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #e6966d;
}
.slider__badge-text {
  position: relative;
  display: block;
  color: #fff;
  font-weight: 500;
  text-align: center;
}

/* ===== コンセプト ===== */
.concept__text {
  text-align: center;
  font-weight: 500;
}
.concept__mark {
  background-repeat: no-repeat;
  background-image: linear-gradient(#ffeb00, #ffeb00);
}

/* ===== プラン一覧 ===== */
.plan-list {
  background: #faf7e8;
}
.plan-list__title {
  text-align: center;
  font-weight: 500;
}
.plan-list__title span,
.brand-2__title span {
  display: inline-block;
}
.plan-list__title span::after,
.brand-2__title span::after {
  content: "";
  display: block;
  margin-inline: auto;
  background: #221714;
}
.plan-group__tab {
  text-align: center;
  color: #fff;
  font-weight: 500;
}
.plan-group--small .plan-group__tab {
  background: #cda884;
}
.plan-group--family .plan-group__tab {
  background: #9bcd84;
}
.plan-group__body {
  background: #fff;
}
.plan-card {
  position: relative;
  background: #f1f0eb;
  /* カード全体を押しても詳細へ移動する（JS） */
  cursor: pointer;
}
.plan-card__pill {
  background: #fff;
  border: 1.5px solid #221714;
  text-align: center;
  font-weight: 500;
  white-space: nowrap;
}
.plan-card__pill b {
  font-weight: 700;
}
.plan-card__name {
  font-weight: 500;
  text-align: center;
  border-bottom: 1px solid #221714;
}
.plan-card__lead {
  /* 1行のときは中央、折り返したときは左寄せ（箱を文字の幅にして中央に置く） */
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  font-weight: 500;
  text-align: left;
}
.plan-card__price {
  display: flex;
  justify-content: center;
  align-items: center;
}
.plan-card__area {
  font-weight: 500;
}
.plan-card__yen {
  font-weight: 700;
  background-image: linear-gradient(#ffeb00, #ffeb00);
  background-repeat: no-repeat;
  background-position: 0 100%;
}
.plan-card__yen b {
  font-weight: 700;
  line-height: 0.744;
}
.plan-card__btn,
.merit-link__text::after {
  box-sizing: border-box;
}
/* 共通の a:hover の下線を、このページのボタン・バナーでは出さない */
#standard-house .merit-link,
#standard-house .plan-card__btn,
#standard-house .p-link__page .banner {
  text-decoration: none;
}
.plan-card__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #221714;
}
.plan-card__btn::after {
  content: "";
  display: block;
  box-sizing: border-box;
  border-right: 1px solid #221714;
  border-bottom: 1px solid #221714;
  /* V の字は回した四角の下半分に出るので、見た目の中心が丸の中心に来るよう上げる */
  transform: translateY(-30%) rotate(45deg);
}
.merit-link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #84aacd;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
}
.merit-link__text,
.merit-link__text b {
  /* 大きい「3」で行の高さが広がり、文字が下に寄るのを防ぐ */
  line-height: 1;
}
.merit-link__text {
  /* 和文は字面が下寄りなので、見た目の上下中央に合わせて少し上げる */
  position: relative;
  top: -0.12em;
}
.merit-link__text b {
  font-weight: 500;
}
.merit-link::after {
  content: "";
  position: absolute;
  top: 50%;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #221714;
  transform: translateY(-50%);
}
.merit-link::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  box-sizing: border-box;
  border-right: 1px solid #221714;
  border-bottom: 1px solid #221714;
  transform: translateY(-65%) rotate(45deg);
}

/* ===== プラン詳細 ===== */
.plans__panel--brown {
  background: #dbc4ac;
}
.plans__panel--green {
  background: #cdddc5;
}
.plan {
  background: #fff;
}
.plan__pill {
  background: #fff;
  border: 1.5px solid #221714;
  border-radius: 20px;
  font-weight: 500;
  text-align: center;
}
.plan__pill b {
  font-weight: 700;
}
.plan__name {
  font-weight: 500;
  text-align: center;
}
.plan__price {
  font-weight: 700;
  background-image: linear-gradient(#ffeb00, #ffeb00);
  background-repeat: no-repeat;
  background-position: 0 100%;
  width: fit-content;
}
.plan__price b {
  font-weight: 700;
  line-height: 0.744;
}
.plan__spec-item {
  position: relative;
  font-weight: 500;
}
.plan__spec-br {
  display: none;
}
.plan__spec-item::before {
  content: "";
  position: absolute;
  left: 0;
  border-radius: 50%;
  background: #b48e4d;
}
.plan__copy-title {
  font-weight: 700;
}
.plan__copy-p {
  font-weight: 500;
}
.point__head {
  background: #cc833b;
  color: #fff;
  text-align: center;
  font-weight: 500;
}
.point__body {
  background: #faf7e8;
}
.point__heading {
  font-weight: 500;
  text-align: center;
}
.point__heading span {
  display: block;
  border-bottom: 1px solid #221714;
  text-align: center;
}
.perf__pill {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fbdb13;
  border-radius: 123px;
  text-align: center;
}
.perf__label {
  font-weight: 500;
  line-height: 1;
}
.perf__num {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-weight: 700;
  line-height: 1;
}
.perf__num small {
  font-size: 0.375em;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.perf__text {
  font-weight: 500;
}
.perf__note {
  font-weight: 500;
  text-align: center;
}
.point__item-title {
  font-weight: 500;
}
.point__item-text {
  font-weight: 400;
}

/* ===== 標準仕様 ===== */
.spec {
  background: #faf7e8;
}
.spec__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.spec__lead-sub {
  font-weight: 700;
}
.spec__lead-main {
  font-weight: 500;
}
.spec__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 500;
}
.spec__heading span::after {
  content: "";
  display: block;
  margin-inline: auto;
  background: #221714;
}
.spec__card {
  background: #fff;
  overflow: hidden;
}
.spec__head {
  /* 見出し・写真のどこを押しても開閉する（JS） */
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #eee7df;
}
.spec__title {
  background: #fff;
  font-weight: 700;
  white-space: nowrap;
}
.spec__toggle {
  appearance: none;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #221714;
  font-family: inherit;
  font-weight: 700;
  cursor: pointer;
}
.spec__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
}
.spec__toggle-icon {
  display: inline-block;
  line-height: 1;
  transition: transform 0.4s ease-out;
}
.spec__card.is-open .spec__toggle-icon {
  transform: rotate(180deg);
}
.spec__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease-out;
}
.spec__body-inner {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease-out, visibility 0s 0.4s;
}
.spec__card.is-open .spec__body {
  grid-template-rows: 1fr;
  /* 開いた中身を押しても閉じる（JS） */
  cursor: pointer;
}
.spec__card.is-open .spec__body-inner {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.4s ease-out, visibility 0s;
}
.spec__row {
  display: flex;
}
.spec__label {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  border: 1px solid #221714;
  font-weight: 700;
  text-align: center;
}
.spec__items {
  flex: 1;
  min-width: 0;
}
.spec__item {
  font-weight: 400;
}
.spec__item--dot {
  position: relative;
}
.spec__item--dot::before {
  content: "";
  position: absolute;
  left: 0;
  border-radius: 50%;
  background: #d6c9b8;
}
/* 点つきの項目の中の細かい項目（「・」は CSS で付ける） */
.spec__sub-item::before {
  content: "・";
}
.price {
  background: #fff;
  border: 1px solid #221714;
}
.price__title {
  text-align: center;
  font-weight: 500;
}
.price__title span {
  display: inline-block;
}
.price__title span::after {
  content: "";
  display: block;
  margin-inline: auto;
  background: #221714;
}
.price__col {
  position: relative;
}
.price__col--in {
  background: #f8f5f2;
}
.price__col--out {
  background: #f7f9f7;
}
.price__head {
  text-align: center;
  font-weight: 700;
}
.price__col--in .price__head {
  background: #eee7df;
}
.price__col--out .price__head {
  background: #dfe9e1;
}
.price__note {
  font-weight: 500;
  text-align: right;
}
.price__item {
  position: relative;
  line-height: 1.6;
}
.price__item::before {
  content: "";
  position: absolute;
  top: 50%;
  box-sizing: border-box;
}
.price__item:not(.price__item--ng) {
  font-weight: 700;
}
.price__item:not(.price__item--ng)::before {
  border: 1.6px solid #221714;
  border-radius: 50%;
  transform: translateY(-50%);
}
.price__item--ng {
  color: #8a8a8a;
  font-weight: 400;
}
.price__item--ng::before {
  background: linear-gradient(#221714, #221714) center / 100% 1.2px no-repeat, linear-gradient(#221714, #221714) center / 1.2px 100% no-repeat;
  transform: translateY(-50%) rotate(45deg);
}

/* ===== メリット ===== */
.merit__title {
  position: relative;
  z-index: 2;
}
.merit__title-text {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #84aacd;
  color: #fff;
  font-weight: 500;
}
.merit__title-text b {
  font-weight: 500;
}
.merit__box {
  position: relative;
  z-index: 1;
  background: #fff;
  border: solid #e3e1d6;
}
.merit__card {
  background: #e3e1d6;
  text-align: center;
}
.merit__no {
  font-weight: 500;
}
.merit__heading {
  font-weight: 700;
}
.merit__text {
  font-weight: 500;
  text-align: left;
}
.merit__medals {
  position: relative;
}
.merit__medal {
  position: absolute;
  max-width: none !important;
}
.merit__img {
  margin-inline: auto;
}

/* ===== その他メニュー（既存 p-link__page に足す分） ===== */
#standard-house .p-link__page .banner {
  position: relative;
  display: block;
  overflow: hidden;
  color: #221714;
  text-decoration: none;
}
#standard-house .p-link__page .banner__photo img {
  width: 100%;
  margin-bottom: 0;
}
#standard-house .p-link__page .banner span {
  position: absolute;
  display: block;
}
#standard-house .p-link__page .banner__arrow {
  right: 0;
  bottom: 0;
  background: #221714;
}
#standard-house .p-link__page .banner__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  box-sizing: border-box;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate(-70%, -50%) rotate(45deg);
}
#standard-house .p-link__page .banner__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  height: 1px;
  background: #fff;
  transform: translate(-50%, -50%);
}
/* 注文住宅のバナーは枠・文字・矢印まで画像に入っている */
#standard-house .p-link__page .banner--order {
  border: 0;
}
#standard-house .p-link__page .banner--order .banner__label {
  background: #ff3700;
  color: #fff;
  text-align: center;
  font-weight: 400;
  letter-spacing: 0.1em;
}
#standard-house .p-link__page .banner--renovation {
  background: #f1f0eb;
  border: 1px solid #b7b7b7;
}
#standard-house .p-link__page .banner--renovation .banner__photo {
  position: absolute;
  left: 0;
}
#standard-house .p-link__page .banner__dots {
  background: radial-gradient(circle, #fadd14 38%, transparent 42%) 0 0 / 14.5% 100% repeat-x;
}
#standard-house .p-link__page .banner__lead {
  font-weight: 500;
  white-space: nowrap;
}
#standard-house .p-link__page .banner__name {
  font-weight: 500;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
#standard-house .p-link__page .banner__line {
  height: 1px;
  background: #221714;
}
#standard-house .p-link__page .banner__en-sub {
  color: #8a8a8a;
  font-style: italic;
  white-space: nowrap;
  line-height: 1.4;
}
#standard-house .p-link__page .banner__en {
  color: #fff;
  font-weight: 300;
  letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1;
}

/* ===== hover ===== */
.plan-card__btn,
.merit-link,
.merit-link::after,
.merit-link::before,
.plan-card__btn::after {
  transition: background-color 0.3s ease-out, color 0.3s ease-out, border-color 0.3s ease-out, transform 0.3s ease-out;
}
.spec__toggle:focus-visible,
.plan-card__btn:focus-visible,
.merit-link:focus-visible {
  outline: 2px solid #221714;
  outline-offset: 2px;
}
#standard-house .p-link__page {
  font-family: "Noto Sans JP", sans-serif;
}
@media (any-hover: hover) {
  /* 丸と矢印は色を変えず、一緒に少し下へ動かす */
  .plan-card:hover .plan-card__btn {
    transform: translateY(4px);
  }
  /* メリットのボタンは、丸と矢印を一緒に少し下へ動かす */
  .merit-link:hover::after {
    transform: translateY(4px) translateY(-50%);
  }
  .merit-link:hover::before {
    transform: translateY(4px) translateY(-65%) rotate(45deg);
  }
  #standard-house .p-link__page .banner {
    transition: opacity 0.3s ease-out;
  }
  #standard-house .p-link__page .banner:hover {
    opacity: 0.8;
  }
}

/* ===== PC ===== */
@media (min-width: 768px) {
  /* FV */
  .brand {
    display: flex;
    justify-content: center;
    padding: 21px 0 60px;
  }
  .brand__catch {
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0.08em;
    top: 21px;
  }
  .brand__catch span {
    background: linear-gradient(#fbdb13, #fbdb13) left bottom / 100% 12px no-repeat;
  }
  .brand__title {
    gap: 17px;
    padding-top: 12px;
  }
  .brand__label {
    width: 315px;
    font-size: 42px;
    line-height: 1.19;
    margin-bottom: 8px;
  }
  .brand__name {
    width: 288px;
    font-size: 90px;
    line-height: 1.29;
    margin-bottom: -0.09em;
  }
  /* ルビを漢字の真上にそろえる（字間の分だけ右にずれるため） */
  .brand__name ruby {
    letter-spacing: 0;
    margin-right: 0.1em;
  }
  .brand__name rt {
    position: relative;
    top: -0.375em;
    left: -0.125em;
  }
  .slider {
    height: 360px;
    margin-bottom: -40px;
  }
  .slider__viewport {
    height: 360px;
  }
  .slider__track {
    transform: translateX(-1480px);
    animation: slider-pc 60s linear infinite;
  }
  .slider__list {
    gap: 40px;
    padding-right: 40px;
  }
  .slider__item {
    width: 560px;
  }
  .slider__badge {
    top: -138px;
    left: min(calc(50% + 417px), calc(100% - 207px));
    width: 207px;
    height: 207px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .slider__badge::before {
    filter: blur(21.5px);
  }
  .slider__badge-text {
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
  @keyframes slider-pc {
    from { transform: translateX(-1480px); }
    to { transform: translateX(-4480px); }
  }
  .concept {
    position: relative;
    z-index: 3;
    padding: 0 20px 114px;
  }
  .concept__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1200px;
    max-width: 100%;
    height: 138px;
    margin-inline: auto;
    background: #fff;
  }
  .concept__text {
    font-size: 22px;
    line-height: 2;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }
  .concept__mark {
    background-size: 100% 12px;
    background-position: 0 14px;
  }

  /* プラン一覧 */
  .plan-list {
    padding: 120px 20px 120px;
  }
  .plan-list__title {
    font-size: 40px;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 56px;
  }
  .plan-list__title span::after,
  .brand-2__title span::after {
    width: 40px;
    height: 2px;
    margin-top: 16px;
  }
  .plan-list__groups {
    display: flex;
    gap: 40px;
    width: 1480px;
    max-width: 100%;
    margin: 0 auto 80px;
  }
  .plan-group {
    flex: 1;
    min-width: 0;
  }
  .plan-group__tab {
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    line-height: 1.5;
    letter-spacing: 0.1em;
    font-weight: 400;
    border-radius: 20px 20px 0 0;
  }
  .plan-group__body {
    display: flex;
    flex-direction: column;
    gap: 102px;
    padding: 62px 40px 80px;
  }
  .plan-card {
    display: grid;
    grid-template-columns: 296px 1fr;
    max-width: 640px;
    width: 100%;
    margin-inline: auto;
    border-radius: 20px;
  }
  .plan-card__pill {
    position: absolute;
    top: -22px;
    left: 50%;
    z-index: 2;
    width: 552px;
    max-width: calc(100% + 80px);
    transform: translateX(-50%);
    padding: 4px 0;
    border-radius: 22px;
    border-width: 2px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.035em;
  }
  .plan-card__pill b {
    letter-spacing: 0.12em;
  }
  .plan-card__info {
    padding: 51px 24px 0;
  }
  .plan-card__name {
    font-size: 38px;
    line-height: 1;
    letter-spacing: 0.05em;
    padding-bottom: 24px;
    margin-bottom: 24px;
    border-bottom: 2px solid #898480;
  }
  .plan-card__lead {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
  }
  .plan-card__lead--long {
    font-size: 12px;
    white-space: nowrap;
  }
  .plan-card__price {
    gap: 20px;
  }
  .plan-card__area {
    font-size: 18px;
    letter-spacing: 0.05em;
  }
  .plan-card__yen {
    font-size: 18px;
    line-height: 0.744;
    padding: 0 0.13em 4px;
    background-size: 100% 12px;
    letter-spacing: 0.1em;
  }
  .plan-card__yen b {
    font-size: 38px;
    letter-spacing: 0.1em;
  }
  .plan-card__btn {
    position: absolute;
    left: 50%;
    bottom: -40px;
    width: 80px;
    height: 80px;
    margin-left: -40px;
    border-width: 2px;
  }
  .plan-card__btn::after {
    width: 20px;
    height: 20px;
    border-width: 2px;
  }
  .merit-link {
    width: 1000px;
    max-width: 100%;
    height: 120px;
    margin-inline: auto;
    border-radius: 60px;
    font-size: 32px;
    letter-spacing: 0.1em;
  }
  .merit-link__text b {
    font-size: 52px;
    letter-spacing: 0.1em;
  }
  .merit-link::after {
    right: 40px;
    width: 40px;
    height: 40px;
  }
  .merit-link::before {
    right: 53px;
    width: 14px;
    height: 14px;
    margin-top: 0;
  }

  /* 2つ目のブランド */
  .brand-2 {
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    padding: 0 0 60px;
  }
  .brand-2__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 80px;
    padding-top: 180px;
  }
  .brand-2 .brand__title {
    padding-top: 12px;
  }
  .brand-2__title {
    font-size: 40px;
    line-height: 1.5;
    letter-spacing: 0.08em;
    font-weight: 500;
  }
  .brand-2::before,
  .brand-2::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: #ffedd9;
    filter: blur(10px);
  }
  .brand-2::before {
    top: 190px;
    left: calc(50% + 295px);
    width: 134px;
    height: 134px;
    box-shadow: -124px -31px 0 -36px #ffedd9;
  }
  .brand-2::after {
    top: 252px;
    left: calc(50% - 600px);
    width: 134px;
    height: 134px;
    box-shadow: 114px -61px 0 -36px #ffedd9;
  }

  /* プラン詳細 */
  .plans {
    padding-inline: 80px;
  }
  .plans__panel {
    max-width: 1760px;
    margin: 0 auto 80px;
    padding: 240px 160px 160px;
  }
  .plans__panel:last-child {
    margin-bottom: 0;
  }
  .plan {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    padding-bottom: 120px;
  }
  .plan:not(:last-child) {
    margin-bottom: 180px;
  }
  .plan__main {
    display: flex;
    min-height: 520px;
  }
  .plan__photo {
    flex: none;
    width: 61.111%;
    margin: -80px 0 0 -80px;
  }
  .plan:nth-child(even) .plan__main {
    flex-direction: row-reverse;
  }
  .plan:nth-child(even) .plan__photo {
    margin: -80px -80px 0 0;
  }
  .plan__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 80px 0 0;
  }
  .plan__pill {
    width: 552px;
    max-width: 94%;
    padding: 4px 0;
    border-radius: 22px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.035em;
    margin-bottom: 32px;
  }
  .plan__pill b {
    letter-spacing: 0.12em;
  }
  .plan__name {
    font-size: 60px;
    line-height: 1;
    letter-spacing: 0.05em;
    margin-bottom: 32px;
  }
  .plan__price {
    width: 491px;
    max-width: 94%;
    text-align: center;
    font-size: 48px;
    line-height: 0.744;
    padding-bottom: 7px;
    background-size: 100% 32px;
    letter-spacing: 0.1em;
    margin-bottom: 43px;
  }
  .plan__price b {
    font-size: 100px;
    letter-spacing: 0.1em;
  }
  .plan__spec {
    width: 491px;
    max-width: 94%;
  }
  .plan__spec-item {
    padding-left: 20px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.1em;
    word-break: keep-all;
    white-space: nowrap;
  }
  .plan__spec-item:not(:last-child) {
    margin-bottom: 10px;
  }
  .plan__spec-br {
    display: inline;
  }
  .plan__spec-item::before {
    top: 11px;
    width: 10px;
    height: 10px;
  }
  .plan__copy {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    width: 1140px;
    max-width: calc(100% - 100px);
    min-height: 480px;
    margin-inline: auto;
    padding: 80px 0;
    box-sizing: border-box;
  }
  .plan:nth-child(even) .plan__copy {
    flex-direction: row-reverse;
  }
  .plan__copy-text {
    flex: 1;
    min-width: 0;
  }
  .plan__copy-img {
    flex: none;
    width: 500px;
  }
  .plan__copy-title {
    font-size: 22px;
    line-height: 2;
    letter-spacing: 0.1em;
    margin-bottom: 40px;
  }
  .plan__copy-p {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .plan__copy-p:not(:last-child) {
    margin-bottom: 32px;
  }
  .point {
    width: 1200px;
    max-width: calc(100% - 100px);
    margin-inline: auto;
  }
  .point__head {
    padding: 25px 0;
  }
  .point__head-label {
    font-size: 24px;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 2px;
  }
  .point__head-title {
    font-size: 40px;
    line-height: 1.4;
    letter-spacing: 0.1em;
  }
  .point__body {
    padding: 60px 50px 60px;
  }
  .point__heading {
    display: flex;
    justify-content: center;
    font-size: 22px;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
  .point__heading span {
    width: 117px;
    padding-bottom: 12px;
  }
  .perf {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: start;
    gap: 20px;
    margin: 40px 0 60px;
  }
  .perf__pill {
    height: 123px;
    gap: 10px;
  }
  .perf__label {
    font-size: 18px;
    letter-spacing: 0.1em;
  }
  .perf__num {
    font-size: 48px;
    gap: 4px;
    letter-spacing: 0;
  }
  .perf__num small {
    font-size: 18px;
  }
  .perf__text {
    font-size: 23.8px;
    line-height: 1.4;
    letter-spacing: 0.1em;
  }
  .perf__note {
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: 0.1em;
    margin-top: 8px;
  }
  .point__plan {
    display: grid;
    grid-template-columns: 580px 1fr;
    grid-template-areas: "img head" "img items";
    grid-template-rows: auto 1fr;
    column-gap: 40px;
    padding-inline: 10px;
  }
  .point__madori {
    display: contents;
  }
  .point__madori .point__heading {
    grid-area: head;
    justify-content: flex-start;
    margin-bottom: 40px;
  }
  .point__madori picture {
    grid-area: img;
  }
  .point__items {
    grid-area: items;
  }
  .point__item:not(:last-child) {
    margin-bottom: 24px;
  }
  .point__item-title {
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
  }
  .point__item-text {
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }

  /* 標準仕様 */
  .spec {
    padding: 80px 20px 141px;
  }
  .spec__lead {
    margin-bottom: 56px;
  }
  .spec__lead-sub {
    font-size: 32px;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
  }
  .spec__lead-main {
    font-size: 50px;
    line-height: 1.48;
    letter-spacing: 0.1em;
    font-weight: 400;
  }
  .spec__heading {
    font-size: 32px;
    line-height: 2.5;
    letter-spacing: 0.1em;
    margin-bottom: 50px;
    font-weight: 400;
  }
  .spec__heading span::after {
    width: 40px;
    height: 2px;
    margin-top: 0;
  }
  .spec__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
    gap: 50px;
    width: 1350px;
    max-width: 100%;
    margin: 0 auto 159px;
  }
  .spec__card {
    border-radius: 24px;
  }
  .spec__head {
    padding: 25px 20px 24px;
    gap: 40px;
  }
  .spec__title {
    min-width: 330px;
    padding: 8px 30px;
    border-radius: 22px;
    font-size: 22px;
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: center;
  }
  .spec__img {
    width: 495px;
  }
  .spec__toggle {
    width: 218px;
    height: 46px;
    font-size: 20px;
    letter-spacing: 0.16em;
  }
  .spec__body-pad {
    padding: 25px 20px 26px;
  }
  .spec__rows {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
  }
  .spec__row {
    gap: 5px;
  }
  .spec__row:not(:last-child) {
    margin-bottom: 20px;
  }
  .spec__label {
    width: 160px;
    min-height: 63px;
    align-self: flex-start;
    font-size: 18px;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
  .spec__items {
    padding-top: 0;
  }
  .spec__item {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .spec__item--dot {
    padding-left: 20px;
  }
  .spec__item--dot::before {
    top: 12px;
    width: 10px;
    height: 10px;
  }
  /* 「・」の行は、丸の点の列から始める（折り返しも同じ位置） */
  .spec__sub {
    margin-left: -17px;
  }
  .price {
    width: 1200px;
    max-width: 100%;
    margin-inline: auto;
    padding: 40px 20px 40px;
    box-sizing: border-box;
  }
  .price__title {
    font-size: 32px;
    line-height: 2.5;
    letter-spacing: 0.1em;
    margin-bottom: 77px;
    font-weight: 400;
  }
  .price__title span::after {
    width: 40px;
    height: 2px;
    margin-top: 0;
  }
  .price__cols {
    display: flex;
    justify-content: center;
    gap: 20px;
  }
  .price__col {
    width: 440px;
    padding: 30px 29px 20px;
    box-sizing: border-box;
  }
  .price__head {
    position: absolute;
    top: -15px;
    left: 29px;
    right: 29px;
    padding: 0;
    border-radius: 20px;
    font-size: 18px;
    line-height: 1.667;
    letter-spacing: 0.1em;
  }
  .price__note {
    position: absolute;
    top: -35px;
    right: 69px;
    font-size: 14px;
    line-height: 1.16;
    letter-spacing: 0;
    font-weight: 400;
  }
  .price__item {
    padding-left: 38px;
    font-size: 16px;
    letter-spacing: 0.1em;
    line-height: 2;
    font-weight: 700;
  }
  .price__item:not(.price__item--ng) {
    padding-left: 29px;
  }
  .price__item:not(:last-child) {
    margin-bottom: 20px;
  }
  .price__col--out .price__item:not(:last-child) {
    margin-bottom: 12px;
  }
  .price__item::before {
    left: -3px;
    width: 22px;
    height: 22px;
  }
  .price__item--ng::before {
    left: 6px;
    width: 12px;
    height: 12px;
  }
  .price__item--ng {
    padding-left: 36px;
    font-weight: 400;
    color: #a7a2a1;
  }
  .price__col--out .price__list {
    margin: 6px 0 0 -16px;
  }

  /* メリット */
  .merit {
    padding: 80px 20px 120px;
  }
  .merit__inner {
    width: 1440px;
    max-width: 100%;
    margin-inline: auto;
  }
  .merit__title {
    width: 1000px;
    max-width: 100%;
    margin: 0 auto -60px;
  }
  .merit__title-text {
    height: 120px;
    border-radius: 60px;
    font-size: 32px;
    letter-spacing: 0.1em;
  }
  .merit__title-text b {
    font-size: 52px;
  }
  .merit__box {
    border-width: 10px;
    padding: 110px 50px 50px;
  }
  .merit__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }
  .merit__card {
    padding: 40px 40px 40px;
  }
  .merit__no {
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0.1em;
    margin-bottom: 20px;
  }
  .merit__heading {
    font-size: 22px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 40px;
  }
  .merit__medals {
    width: 340px;
    height: 271px;
    margin: 0 auto 40px;
  }
  .merit__medal {
    width: 144px;
    height: 144px;
  }
  .merit__medal--01 {
    left: 92px;
    top: 0;
  }
  .merit__medal--02 {
    left: 0;
    top: 127px;
  }
  .merit__medal--03 {
    left: 196px;
    top: 127px;
  }
  .merit__img {
    width: 340px;
    margin-bottom: 40px;
  }
  .merit__text {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.1em;
  }

  /* その他メニュー */
  #standard-house .p-link__page {
    margin-bottom: 100px;
  }
  #standard-house .p-link__page-ttl {
    font-size: 32px;
    line-height: 1.56;
    letter-spacing: 0.05em;
    margin-bottom: 17px;
    font-weight: 400;
  }
  #standard-house .p-link__page-items {
    max-width: 720px;
    gap: 0 40px;
  }
  #standard-house .p-link__page .banner--order {
    border-width: 2px;
  }
  #standard-house .p-link__page .banner__label {
    left: 14.7%;
    top: 38.75%;
    width: 70.6%;
    height: 22%;
    font-size: 16px;
    line-height: 2.188;
    font-weight: 400;
  }
  #standard-house .p-link__page .banner__arrow {
    width: 20px;
    height: 20px;
  }
  #standard-house .p-link__page .banner__arrow::before {
    width: 8px;
  }
  #standard-house .p-link__page .banner__arrow::after {
    width: 5px;
    height: 5px;
  }
  #standard-house .p-link__page .banner--renovation {
    height: 160px;
  }
  #standard-house .p-link__page .banner--renovation .banner__photo {
    top: 15px;
    width: 200px;
  }
  #standard-house .p-link__page .banner__dots {
    left: 167px;
    top: 29px;
    width: 64px;
    height: 4px;
  }
  #standard-house .p-link__page .banner__lead {
    left: 165px;
    top: 35px;
    font-size: 10px;
    letter-spacing: 0.1em;
    font-weight: 400;
  }
  #standard-house .p-link__page .banner__name {
    left: 166px;
    top: 58px;
    font-size: 20px;
    line-height: 1.4;
    letter-spacing: 0.1em;
    font-weight: 400;
  }
  #standard-house .p-link__page .banner__line {
    left: 192px;
    top: 92px;
    width: 16px;
  }
  #standard-house .p-link__page .banner__en-sub {
    left: 221px;
    top: 93px;
    font-size: 6px;
    letter-spacing: 0;
    font-style: normal;
    color: #b7b7b7;
  }
  #standard-house .p-link__page .banner__en {
    left: 85px;
    top: 98px;
    font-size: 40px;
    font-weight: 400;
    letter-spacing: -0.08em;
  }
  .point__item:nth-child(3) .point__item-title {
    line-height: 1.6;
  }
  #plan-215 .point__item:nth-child(2) .point__item-title {
    line-height: 1.6;
  }
}

/* ===== PC 768〜1919px：PC の並びのまま幅に合わせて縮める ===== */
@media (min-width: 768px) and (max-width: 1919px) {
  .brand__catch {
    font-size: min(24px, 1.88vw);
    top: min(21px, 1.64vw);
  }
  .brand__catch span {
    background-size: 100% 0.5em;
  }
  .brand__title {
    gap: min(17px, 1.33vw);
    padding-top: min(12px, 0.94vw);
  }
  .brand__label {
    width: min(315px, 24.6vw);
    font-size: min(42px, 3.29vw);
    margin-bottom: min(8px, 0.63vw);
  }
  .brand__name {
    width: min(288px, 22.5vw);
    font-size: min(90px, 7.03vw);
  }
  .slider__badge {
    top: calc(min(138px, 10.8vw) * -1);
    left: min(calc(50% + 417px), calc(50% + 26vw));
    width: min(207px, 16vw);
    height: min(207px, 16vw);
  }
  .slider__badge-text {
    font-size: min(24px, 1.88vw);
  }
  .plan-list {
    padding: min(120px, 6.25vw) 20px min(120px, 6.25vw);
  }
  .plan-list__groups {
    gap: min(40px, 2.1vw);
    margin-bottom: min(80px, 4.17vw);
  }
  .plan-group__tab {
    height: min(100px, 5.2vw);
    font-size: max(14px, min(30px, 1.56vw));
    border-radius: min(20px, 1.04vw) min(20px, 1.04vw) 0 0;
  }
  .plan-group__body {
    gap: min(102px, 5.3vw);
    padding: min(62px, 3.2vw) min(40px, 2.1vw) min(80px, 4.17vw);
  }
  .plan-card {
    grid-template-columns: 46.25% 1fr;
  }
  .plan-card__pill {
    top: calc(min(22px, 1.15vw) * -1);
    width: 86%;
    max-width: 552px;
    font-size: clamp(10px, 0.833vw, 16px);
    letter-spacing: 0;
    padding: 0;
    border-radius: 22px;
  }
  .plan-card__info {
    padding: min(51px, 2.66vw) min(24px, 1.25vw) 0;
  }
  .plan-card__name {
    font-size: max(14px, min(38px, 1.98vw));
    padding-bottom: min(24px, 1.25vw);
    margin-bottom: min(24px, 1.25vw);
  }
  .plan-card__lead {
    font-size: max(12px, min(14px, 0.73vw));
    margin-bottom: min(20px, 1.04vw);
    letter-spacing: 0.05em;
  }
  .plan-card__lead--long {
    font-size: 12px;
    white-space: normal;
  }
  .plan-card__price {
    gap: min(20px, 1.04vw);
  }
  .plan-card__area {
    font-size: max(12px, min(18px, 0.94vw));
  }
  .plan-card__yen {
    font-size: max(12px, min(18px, 0.94vw));
    background-size: 100% 0.667em;
  }
  .plan-card__yen b {
    font-size: max(16px, min(38px, 1.98vw));
  }
  .plan-card__btn {
    bottom: calc(min(40px, 2.08vw) * -1);
    width: min(80px, 4.17vw);
    height: min(80px, 4.17vw);
    margin-left: calc(min(40px, 2.08vw) * -1);
  }
  .plan-card__btn::after {
    width: min(20px, 1.04vw);
    height: min(20px, 1.04vw);
  }
  .concept__inner {
    height: auto;
    padding: 20px 0;
  }
  .concept__text {
    font-size: min(22px, 1.84vw);
    letter-spacing: 0.1em;
  }
  .concept__mark {
    background-size: 100% 0.55em;
    background-position: 0 0.65em;
  }
  .plan-list__title,
  .brand-2__inner {
    gap: min(80px, 4.17vw);
    padding-top: min(180px, 9.38vw);
  }
  .brand-2__title {
    font-size: min(40px, 4.4vw);
  }
  .merit-link {
    font-size: min(32px, 3.3vw);
    height: min(120px, 12vw);
    /* 文字に対して広がりすぎないよう、1920px の割合（1000px）で縮める（TOP と同じ） */
    width: clamp(480px, 52.08vw, 1000px);
    margin-inline: auto;
  }
  .merit-link__text b {
    font-size: min(52px, 5.4vw);
  }
  .merit-link::after {
    right: min(40px, 3vw);
  }
  .merit-link::before {
    right: calc(min(40px, 3vw) + 13px);
  }
  .plans {
    padding-inline: min(80px, 3vw);
  }
  .plans__panel {
    margin-bottom: min(80px, 4.17vw);
    padding: min(240px, 12.5vw) min(160px, 5.5vw) min(160px, 8.33vw);
  }
  .plan {
    padding-bottom: min(120px, 6.25vw);
  }
  .plan:not(:last-child) {
    margin-bottom: min(180px, 9.4vw);
  }
  .plan__main {
    min-height: min(520px, 27vw);
  }
  .plan__photo {
    margin: calc(min(80px, 4.17vw) * -1) 0 0 calc(min(80px, 4.17vw) * -1);
  }
  .plan:nth-child(even) .plan__photo {
    margin: calc(min(80px, 4.17vw) * -1) calc(min(80px, 4.17vw) * -1) 0 0;
  }
  .plan__info {
    padding: min(80px, 4.17vw) 0 0;
  }
  .plan__pill {
    font-size: clamp(9px, 1.05vw, 16px);
    letter-spacing: 0.05em;
    margin-bottom: min(32px, 1.9vw);
  }
  .plan__name {
    font-size: min(60px, 3.78vw);
    margin-bottom: min(32px, 1.9vw);
  }
  .plan__price {
    width: min(491px, 28vw);
    font-size: min(48px, 2.6vw);
    background-size: 100% 0.667em;
    margin-bottom: min(43px, 2.3vw);
  }
  .plan__price b {
    font-size: min(100px, 5.4vw);
  }
  .plan__spec {
    width: min(491px, 28vw);
  }
  .plan__spec-item {
    font-size: clamp(12px, 0.98vw, 16px);
    padding-left: 20px;
    white-space: normal;
  }
  .plan__spec-item:not(:last-child) {
    margin-bottom: min(10px, 0.52vw);
  }
  .plan__spec-item::before {
    top: 0.55em;
  }
  .plan__copy {
    max-width: calc(100% - min(100px, 5vw));
    min-height: 0;
    padding: min(80px, 4.17vw) 0;
    /* 文字の列を広げ、説明文の最後の行が数文字だけにならないようにする */
    gap: clamp(16px, 1.2vw, 40px);
  }
  .plan__copy-img {
    width: min(500px, 33vw);
  }
  .plan__copy-title {
    font-size: clamp(14px, 1.5vw, 22px);
    letter-spacing: 0.05em;
    margin-bottom: min(40px, 2.1vw);
  }
  .plan__copy-p {
    font-size: clamp(12px, 0.84vw, 16px);
    letter-spacing: 0.05em;
    /* 幅が縮んだとき、最後の行が1〜2文字だけにならないようにする */
    text-wrap: pretty;
  }
  .point {
    max-width: calc(100% - min(100px, 5vw));
  }
  .point__head-label {
    font-size: min(24px, 1.7vw);
  }
  .point__head-title {
    font-size: min(40px, 2.9vw);
  }
  .point__body {
    padding: min(58px, 3vw) min(50px, 3vw) min(60px, 3vw);
  }
  .perf {
    gap: 14px;
  }
  .perf__pill {
    height: min(123px, 8vw);
  }
  .perf__label {
    font-size: min(18px, 1.3vw);
  }
  .perf__num {
    font-size: min(48px, 3.3vw);
  }
  .perf__num small {
    font-size: 0.375em;
  }
  .perf__text {
    font-size: clamp(12px, 1.5vw, 23.8px);
    letter-spacing: 0.05em;
  }
  .perf__note {
    font-size: clamp(10px, 0.79vw, 14px);
    letter-spacing: 0.05em;
  }
  .point__plan {
    grid-template-columns: min(580px, 42%) 1fr;
    column-gap: min(40px, 2.1vw);
    padding-inline: min(10px, 0.5vw);
  }
  .point__item-title {
    font-size: clamp(13px, 1.25vw, 18px);
  }
  .point__item-text {
    font-size: clamp(11px, 1vw, 14px);
  }
  .spec__lead-sub {
    font-size: min(32px, 3.4vw);
  }
  .spec__lead-main {
    font-size: min(50px, 5.2vw);
  }
  .spec__heading {
    font-size: min(32px, 3.2vw);
  }
  .spec__cards {
    gap: min(50px, 3vw);
  }
  .spec__head {
    gap: min(40px, 2vw);
  }
  .spec__title {
    min-width: min(330px, 80%);
    font-size: min(22px, 1.76vw);
    padding-inline: 20px;
  }
  .spec__toggle {
    width: clamp(120px, 11.35vw, 218px);
    height: clamp(32px, 2.4vw, 46px);
    font-size: clamp(13px, 1.04vw, 20px);
  }
  .spec__img {
    width: min(495px, 100%);
  }
  .spec__label {
    width: clamp(76px, 8.6vw, 124px);
    font-size: clamp(10px, 1.24vw, 18px);
  }
  .spec__item {
    font-size: clamp(12px, 1.1vw, 16px);
    letter-spacing: 0.1em;
  }
  .price__title {
    font-size: min(32px, 3.4vw);
    margin-bottom: min(84px, 6vw);
  }
  .price__col {
    width: calc(50% - 10px);
    max-width: 440px;
    padding-inline: min(29px, 2vw);
  }
  .price__head {
    left: min(29px, 2vw);
    right: min(29px, 2vw);
    font-size: clamp(12px, 1.4vw, 18px);
  }
  .price__note {
    top: -34px;
    right: min(38px, 2.5vw);
    font-size: clamp(12px, 0.9vw, 14px);
  }
  .price__item {
    font-size: clamp(12px, 1.1vw, 16px);
    padding-left: 34px;
  }
  .merit__title-text {
    font-size: min(32px, 3.3vw);
    height: min(120px, 12vw);
  }
  .merit__title-text b {
    font-size: min(52px, 5.4vw);
  }
  /* 幅が狭いほど左右の余白を小さくし、カードの文字の列を広く取る */
  .merit__box {
    padding: min(110px, 8vw) clamp(10px, 4vw - 26px, 50px) min(50px, 3vw);
  }
  .merit__list {
    gap: clamp(10px, 2vw, 30px);
  }
  .merit__card {
    padding: 40px clamp(12px, 3.2vw - 20px, 40px) 40px;
  }
  .merit__heading {
    font-size: max(12px, min(22px, 1.3vw));
  }
  .merit__text {
    font-size: clamp(12px, 1.1vw, 16px);
    letter-spacing: 0.05em;
    text-wrap: pretty;
  }
  .merit__medals {
    width: min(340px, 100%);
    height: auto;
    aspect-ratio: 340 / 271;
  }
  .merit__medal {
    width: 42.35%;
    height: auto;
  }
  .merit__medal--01 {
    left: 27.06%;
    top: 0;
  }
  .merit__medal--02 {
    left: 0;
    top: 46.86%;
  }
  .merit__medal--03 {
    left: 57.65%;
    top: 46.86%;
  }
  .merit__img {
    width: min(340px, 100%);
  }
}

/* ===== SP ===== */
@media (max-width: 767px) {
  .brand {
    display: flex;
    justify-content: center;
    padding: 5.797vw 4.831vw 3.865vw;
  }
  .brand__catch {
    font-size: 3.594vw;
    line-height: 1.4;
    letter-spacing: 0.08em;
  }
  .brand__catch span {
    background: linear-gradient(#fbdb13, #fbdb13) 0 2.536vw / 100% 1.797vw no-repeat;
  }
  .brand__title {
    gap: 1.449vw;
    padding-top: 1.208vw;
  }
  .brand__label {
    position: relative;
    top: -0.725vw;
    width: 42.754vw;
    font-size: 4.565vw;
    line-height: 1.45;
  }
  .brand__name {
    width: 31.304vw;
    font-size: 9.783vw;
    line-height: 1.29;
  }
  .brand__name rt {
    position: relative;
    top: -0.966vw;
  }
  .slider {
    height: 55.072vw;
    padding-top: 8.454vw;
    box-sizing: border-box;
  }
  .slider__viewport {
    height: 46.618vw;
  }
  .slider__track {
    transform: translateX(-111.594vw);
    animation: slider-sp 40s linear infinite;
  }
  .slider__list {
    gap: 2.899vw;
    padding-right: 2.899vw;
  }
  .slider__item {
    width: 72.464vw;
  }
  .slider__item--pc {
    display: none;
  }
  .slider__badge {
    top: 3.478vw;
    left: calc(50% + 18.599vw);
    width: 25vw;
    height: 25vw;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .slider__badge::before {
    filter: blur(10.75px);
  }
  .slider__badge-text {
    padding-top: 0.483vw;
    font-size: 2.899vw;
    line-height: 1.5;
    letter-spacing: 0.07em;
  }
  @keyframes slider-sp {
    from { transform: translateX(-111.594vw); }
    to { transform: translateX(-337.681vw); }
  }
  .concept {
    padding: 5.797vw 4.831vw 11.594vw;
  }
  .concept__text {
    font-size: 3.382vw;
    line-height: 2;
    letter-spacing: 0.05em;
  }
  .concept__mark--pc {
    background-image: none;
  }
  .concept__mark {
    background-size: 100% 1.691vw;
    background-position: 0 3.14vw;
  }

  .plan-list {
    padding: 13.527vw 4.831vw;
  }
  .plan-list__title {
    font-weight: 400;
    font-size: 5.797vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 7.729vw;
  }
  .plan-list__title span::after,
  .brand-2__title span::after {
    width: 5.797vw;
    height: 0.29vw;
    margin-top: 2.319vw;
  }
  .plan-list__groups {
    display: flex;
    flex-direction: column;
    gap: 7.729vw;
    margin-bottom: 7.729vw;
  }
  .plan-group__tab {
    padding: 2.899vw 0;
    font-size: 4.348vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    border-radius: 2.415vw 2.415vw 0 0;
  }
  .plan-group__body {
    display: flex;
    flex-direction: column;
    gap: 5.797vw;
    padding: 5.797vw 3.865vw;
  }
  .plan-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 3.865vw;
    border-radius: 2.415vw;
    overflow: hidden;
  }
  .plan-card__img {
    width: 100%;
  }
  .plan-card__info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.899vw;
    width: 100%;
    box-sizing: border-box;
    padding: 4.831vw 3.865vw 2.899vw;
  }
  .plan-card__pill {
    padding: 0.966vw 3.382vw;
    border-radius: 4.831vw;
    font-size: 2.899vw;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .plan-card__name {
    width: 100%;
    font-size: 5.797vw;
    line-height: 1.3;
    letter-spacing: 0.05em;
    padding-bottom: 2.899vw;
    border-bottom: 2px solid #6f6864;
  }
  .plan-card__lead {
    font-size: 3.14vw;
    line-height: 1.62;
    letter-spacing: 0.05em;
  }
  /* SP はデザインで改行位置を決めた2行（中央そろえ） */
  .plan-card__lead--long {
    text-align: center;
  }
  .plan-card__price {
    gap: 2.899vw;
  }
  .plan-card__area {
    position: relative;
    top: -1px;
    font-size: 3.865vw;
    letter-spacing: 0.05em;
    line-height: 1.5;
  }
  .plan-card__yen {
    font-size: 4.783vw;
    line-height: 0.744;
    padding: 0 0.725vw 0.725vw 0.966vw;
    background-size: 100% 2.899vw;
    letter-spacing: 0.1em;
  }
  .plan-card__yen b {
    line-height: 0.744;
    font-size: 10.097vw;
    letter-spacing: 0.1em;
  }
  .plan-card__btn {
    width: 11.594vw;
    height: 11.594vw;
    flex: none;
    border-width: 1.2px;
  }
  .plan-card__btn::after {
    width: 2.899vw;
    height: 2.899vw;
  }
  .merit-link {
    padding: 3.865vw;
    /* 文字が右の丸の下に入らないよう、丸の幅＋すき間をあける */
    padding-right: 12.56vw;
    border-radius: 24.155vw;
    font-size: 4.329vw;
    line-height: 1.625;
    letter-spacing: 0.1em;
  }
  /* SP は帯の高さを行の高さで決めているので、カンプの高さに戻す */
  .merit-link__text,
  .merit-link__text b {
    line-height: 1;
    letter-spacing: 0.1em;
  }
  .merit-link__text b {
    font-size: 7.034vw;
  }
  .merit-link::after {
    right: 5.072vw;
    width: 6.763vw;
    height: 6.763vw;
    margin-top: -1px;
    box-sizing: border-box;
    border-width: 0.7px;
  }
  .merit-link::before {
    right: 7.488vw;
    width: 1.932vw;
    height: 1.932vw;
    margin-top: -1px;
  }

  .brand-2 {
    position: relative;
    overflow: hidden;
    padding: 13.527vw 4.831vw 7.729vw;
  }
  .brand-2__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5.797vw;
  }
  .brand-2 .brand__title {
    padding-top: 1.208vw;
  }
  .brand-2__title {
    font-size: 5.797vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    font-weight: 400;
  }
  .brand-2::before,
  .brand-2::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: #ffedd9;
    filter: blur(5px);
  }
  .brand-2::before {
    top: 7.488vw;
    left: calc(50% + 23.671vw);
    width: 7.246vw;
    height: 7.246vw;
    box-shadow: 19.324vw 8.213vw 0 4.348vw #ffedd9;
  }
  .brand-2::after {
    top: 32.609vw;
    left: calc(50% - 28.261vw);
    width: 7.246vw;
    height: 7.246vw;
    box-shadow: -11.836vw 11.836vw 0 4.348vw #ffedd9;
  }

  .plans {
    padding-bottom: 13.527vw;
  }
  .plans__panel {
    padding: 9.662vw 2.899vw;
  }
  .plans__panel:not(:last-child) {
    margin-bottom: 5.797vw;
  }
  .plan {
    padding-bottom: 7.729vw;
  }
  .plan:not(:last-child) {
    margin-bottom: 9.662vw;
  }
  .plan__info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.415vw;
    padding: 5.797vw 4.831vw 0;
  }
  .plan__pill {
    margin-bottom: 0.725vw;
    padding: 0.966vw 3.382vw;
    font-size: 2.899vw;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .plan__name {
    font-size: 7.246vw;
    line-height: 1.3;
    letter-spacing: 0.05em;
  }
  .plan__price {
    font-size: 7.188vw;
    line-height: 0.76;
    margin-bottom: 0.483vw;
    padding: 0 1.087vw 1.208vw;
    background-size: 100% 4.589vw;
    letter-spacing: 0.1em;
  }
  .plan__price b {
    line-height: 0.76;
    font-size: 14.976vw;
    letter-spacing: 0.1em;
  }
  .plan__spec {
    width: 100%;
    padding-top: 0.966vw;
  }
  .plan__spec-item {
    padding-left: 4.348vw;
    font-size: 3.382vw;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
  .plan__spec-item:not(:last-child) {
    margin-bottom: 1.208vw;
  }
  .plan__spec-item::before {
    top: 1.691vw;
    width: 1.932vw;
    height: 1.932vw;
  }
  .plan__copy {
    display: flex;
    flex-direction: column;
    gap: 3.865vw;
    padding: 7.729vw 4.831vw 0;
  }
  .plan__copy-text {
    display: contents;
  }
  .plan__copy-title {
    font-size: 3.623vw;
    line-height: 1.8;
    letter-spacing: 0.05em;
  }
  .plan__copy-img {
    order: 1;
  }
  .plan__copy-p {
    order: 2;
    font-size: 3.382vw;
    line-height: 1.9;
    letter-spacing: 0.05em;
  }
  .plan__copy-p:not(:last-child) {
    margin-bottom: calc(1.9em - 3.865vw);
  }
  /* 2行目の行末の「、」がはみ出して改行されないよう、この段落だけ右に 3px 広げる */
  #plan-195a .plan__copy-p:last-child {
    margin-right: -0.725vw;
  }
  .point {
    padding: 7.729vw 3.865vw 0;
  }
  .point__head {
    padding: 3.382vw 0;
  }
  .point__head-label {
    font-size: 3.14vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 0.483vw;
  }
  .point__head-title {
    font-size: 5.314vw;
    line-height: 1.4;
    letter-spacing: 0.1em;
  }
  .point__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 6.763vw 3.382vw 7.729vw;
  }
  .point__heading {
    display: flex;
    justify-content: center;
    font-size: 4.251vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
  }
  .point__heading span {
    width: 22.609vw;
    padding-bottom: 2.319vw;
    border-bottom-width: 0.8px;
  }
  .perf {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: start;
    gap: 2.415vw;
    width: 100%;
    max-width: 79.71vw;
    margin: 4.831vw 0 11.594vw;
  }
  .perf__pill {
    height: 18.42vw;
    gap: 1.486vw;
  }
  .perf__label {
    font-size: 2.674vw;
    letter-spacing: 0.1em;
  }
  .perf__num {
    font-size: 7.13vw;
    gap: 0.594vw;
  }
  .perf__num small {
    font-size: 2.674vw;
  }
  .perf__text {
    font-size: 3.565vw;
    line-height: 1.4;
    letter-spacing: 0.1em;
  }
  .perf__note {
    font-size: 2.415vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-top: 1.188vw;
  }
  .point__plan {
    display: flex;
    flex-direction: column;
    gap: 4.831vw;
    width: 100%;
  }
  .point__madori {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4.831vw;
  }
  .point__item {
    margin-bottom: 4.831vw;
  }
  .point__item:last-child {
    margin-bottom: 0;
  }
  .point__item-title {
    font-size: 3.623vw;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 1.449vw;
  }
  .point__item-text {
    font-size: 3.14vw;
    line-height: 1.77;
    letter-spacing: 0.05em;
    /* 「ー」や小さい「ッ」を行頭に置かない */
    line-break: strict;
  }

  .spec {
    padding: 13.527vw 4.831vw;
  }
  .spec__lead {
    margin-bottom: 12.319vw;
  }
  .spec__lead-sub {
    font-size: 3.865vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 1.449vw;
  }
  .spec__lead-main {
    font-size: 5.072vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
  .spec__heading {
    font-size: 4.831vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin: 0.966vw 0 5.797vw;
  }
  .spec__heading span::after {
    width: 7.729vw;
    height: 0.483vw;
    margin-top: 2.415vw;
  }
  .spec__cards {
    display: flex;
    flex-direction: column;
    gap: 5.797vw;
    margin-bottom: 11.594vw;
  }
  .spec__card {
    border-radius: 3.865vw;
  }
  .spec__head {
    gap: 3.865vw;
    padding: 4.831vw 3.865vw;
  }
  .spec__title {
    padding: 1.449vw 5.797vw;
    border-radius: 4.831vw;
    font-size: 3.623vw;
    line-height: 1.6;
    letter-spacing: 0.1em;
  }
  .spec__img {
    width: 74.879vw;
    max-width: 100%;
  }
  .spec__toggle {
    box-sizing: border-box;
    padding: 1.449vw 6.763vw;
    font-size: 3.382vw;
    line-height: 1.6;
    letter-spacing: 0.1em;
  }
  .spec__body-pad {
    padding: 4.831vw 3.865vw 5.797vw;
  }
  .spec__row {
    gap: 2.899vw;
  }
  .spec__row:not(:last-child) {
    margin-bottom: 2.899vw;
  }
  .spec__label {
    width: 22.222vw;
    min-height: 8.937vw;
    padding: 1.691vw 0;
    box-sizing: border-box;
    align-self: flex-start;
    font-size: 3.14vw;
    line-height: 1.385;
    letter-spacing: 0.05em;
  }
  .spec__items {
    padding-top: 0.966vw;
  }
  .spec__item {
    font-size: 3.14vw;
    line-height: 1.7;
    letter-spacing: 0.05em;
  }
  .spec__item--dot {
    padding-left: 3.14vw;
  }
  .spec__item--dot::before {
    top: 1.691vw;
    width: 1.691vw;
    height: 1.691vw;
  }
  /* 「・」の行は、丸の点の列から始める（折り返しも同じ位置） */
  .spec__sub {
    margin-left: -3.14vw;
  }
  .price {
    padding: 7.729vw 3.865vw;
  }
  .price__title {
    font-size: 4.831vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 4.831vw;
  }
  .price__title span::after {
    width: 7.729vw;
    height: 0.483vw;
    margin-top: 2.415vw;
  }
  .price__cols {
    display: flex;
    flex-direction: column;
    gap: 9.179vw;
  }
  .price__col {
    display: flex;
    flex-direction: column;
    padding: 0 2.899vw 4.831vw;
  }
  .price__col--out::after {
    content: "";
    display: none;
  }
  .price__note {
    position: absolute;
    bottom: 100%;
    right: -1px;
    margin-bottom: 0.483vw;
    font-size: 2.657vw;
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  .price__head {
    padding: 0.966vw 0;
    border-radius: 4.831vw;
    font-size: 3.382vw;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 5.797vw;
  }
  .price__item {
    padding-left: 6.522vw;
    font-size: 3.14vw;
    letter-spacing: 0.05em;
  }
  .price__item:not(:last-child) {
    margin-bottom: 2.415vw;
  }
  .price__col--out {
    padding-bottom: 5.556vw;
  }
  .price__col--out .price__item:not(:last-child) {
    margin-bottom: 3.961vw;
  }
  .price__item--ng {
    padding-left: 8.696vw;
  }
  .price__item::before {
    left: 0;
    width: 4.638vw;
    height: 4.638vw;
  }
  .price__item--ng::before {
    left: 1.932vw;
    width: 2.174vw;
    height: 2.174vw;
  }
  .price__col--out .price__head {
    margin-top: 0;
  }

  .merit {
    padding: 13.527vw 4.831vw 9.662vw;
  }
  .merit__title {
    margin-bottom: -7.246vw;
  }
  .merit__title-text {
    padding: 3.865vw;
    border-radius: 24.155vw;
    font-size: 4.329vw;
    line-height: 1.625;
    letter-spacing: 0.1em;
  }
  .merit__title-text b {
    font-size: 7.034vw;
    /* 大きい「3」で行の高さが広がり、ボタンが縦に伸びるのを防ぐ */
    line-height: 1;
  }
  .merit__box {
    margin-inline: -1.932vw;
    padding: 13.527vw 2.899vw 3.865vw;
    border-width: 1.45vw;
  }
  .merit__list {
    display: flex;
    flex-direction: column;
    gap: 3.623vw;
  }
  .merit__card {
    padding: 5.797vw 4.348vw 6.763vw;
  }
  .merit__no {
    font-size: 2.899vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 1.932vw;
  }
  .merit__heading {
    font-size: 4.348vw;
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: 3.865vw;
  }
  .merit__medals {
    width: 73.913vw;
    height: 58.937vw;
    margin: 0 auto 3.865vw;
  }
  .merit__medal {
    width: 31.304vw;
    height: 31.304vw;
  }
  .merit__medal--01 {
    left: 20vw;
    top: 0;
  }
  .merit__medal--02 {
    left: 0;
    top: 27.609vw;
  }
  .merit__medal--03 {
    left: 42.609vw;
    top: 27.609vw;
  }
  .merit__img {
    width: calc(100% - 3.865vw);
    margin: 0 auto 3.865vw;
  }
  .merit__text {
    font-size: 3.382vw;
    line-height: 1.9;
    letter-spacing: 0.05em;
  }

  #standard-house .p-link__page {
    margin-bottom: 29.469vw;
  }
  #standard-house .p-link__page-ttl {
    font-size: 4.831vw;
    line-height: 1.5;
    letter-spacing: 0.1em;
    margin-bottom: 3.865vw;
    padding-top: 3.865vw;
  }
  #standard-house .p-link__page-items {
    max-width: none;
    width: 100%;
    box-sizing: border-box;
    padding-inline: 4.831vw;
    gap: 3.865vw 0;
  }
  #standard-house .p-link__page .banner--order {
    border-width: 0.725vw;
  }
  #standard-house .p-link__page .banner__label {
    left: 14.7%;
    top: 38.75%;
    width: 70.6%;
    height: 22%;
    font-size: 4.251vw;
    line-height: 2.188;
  }
  #standard-house .p-link__page .banner__arrow {
    width: 5.314vw;
    height: 5.314vw;
  }
  #standard-house .p-link__page .banner__arrow::before {
    width: 2.174vw;
  }
  #standard-house .p-link__page .banner__arrow::after {
    width: 1.449vw;
    height: 1.449vw;
  }
  #standard-house .p-link__page .banner--renovation {
    aspect-ratio: 374 / 176;
  }
  #standard-house .p-link__page .banner--renovation .banner__photo {
    top: 3.986vw;
    width: 58.8%;
  }
  #standard-house .p-link__page .banner__dots {
    left: 48.5%;
    top: 7.246vw;
    width: 19%;
    height: 0.966vw;
  }
  #standard-house .p-link__page .banner__lead {
    left: 48.5%;
    top: 9.179vw;
    font-size: 2.754vw;
    letter-spacing: 0.05em;
  }
  #standard-house .p-link__page .banner__name {
    left: 48.8%;
    top: 15.217vw;
    font-size: 5.072vw;
    line-height: 1.4;
  }
  #standard-house .p-link__page .banner__line {
    left: 55.9%;
    top: 24.396vw;
    width: 4.5%;
  }
  #standard-house .p-link__page .banner__en-sub {
    left: 65.3%;
    top: 24.638vw;
    font-size: 1.594vw;
    font-style: normal;
    letter-spacing: 0;
    color: #b7b7b7;
  }
  #standard-house .p-link__page .banner__en {
    left: 25.6%;
    top: 26.087vw;
    font-size: 9.42vw;
  }
  #standard-house .main-title .jp {
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
}


/* ===== PC 768〜1100px：丸ボタンと価格の行が重ならないよう下に余白 ===== */
@media (min-width: 768px) and (max-width: 1100px) {
  .plan-card__info {
    padding-bottom: calc(min(80px, 4.17vw) / 2 + 8px);
  }
}

/* ===== 共通 end-bnr の電話アイコン（SP のデザイン幅に合わせる） ===== */
@media (max-width: 767px) {
  #standard-house #end-contact .p-end-contact-top p.tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 4.348vw;
  }
  #standard-house #end-contact .p-end-contact-top p.tel img.top {
    width: 5.556vw;
    height: 5.556vw;
  }
  #standard-house #end-contact .p-end-contact-top p.tel img.bottom {
    width: 58.213vw;
    height: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .slider__track {
    animation: none;
  }
  .spec__body,
  .spec__body-inner,
  .spec__toggle-icon,
  .merit-link,
  .merit-link::after,
  .merit-link::before,
  .plan-card__btn,
  .plan-card__btn::after,
  #standard-house .p-link__page .banner {
    transition: none;
  }
}

/* 19.5B のプランの説明だけ、1920px のデザインでは左に 29px 寄っている */
@media (min-width: 1920px) {
  #plan-195b .plan__copy {
    translate: -29px 0;
  }
}

/* プラン（茶・緑の帯）の下の白い余白（1920px のデザイン） */
@media (min-width: 1920px) {
  .plans {
    padding-bottom: 120px;
  }
}

/* 標準仕様の4つ目（太陽光）の中身の位置（1920px のデザイン） */
@media (min-width: 1920px) {
  .spec__card:nth-child(4) .spec__rows {
    translate: 5px 0;
  }
}

/* その他メニューの下の余白（このページだけ・1920px のデザイン）。共通パーツの CSS は変えない */
@media (min-width: 1920px) {
  #standard-house .p-link__page {
    margin-bottom: 353px;
  }
}

/* 768〜1919px：縦の余白を幅に合わせて縮める（1920px のデザインの値が上限） */
@media (min-width: 768px) and (max-width: 1919px) {
  .brand {
    padding-bottom: clamp(24px, 3.13vw, 60px);
  }
  .concept {
    padding-bottom: clamp(48px, 5.94vw, 114px);
  }
  .plan-list__title {
    margin-bottom: clamp(24px, 2.92vw, 56px);
  }
  .plan-list__groups {
    margin-bottom: clamp(32px, 4.17vw, 80px);
  }
  .brand-2 {
    padding-bottom: clamp(24px, 3.13vw, 60px);
  }
  .brand-2::before {
    top: min(190px, 9.9vw);
  }
  .brand-2::after {
    top: min(252px, 13.13vw);
  }
  .plans__panel {
    margin-bottom: clamp(32px, 4.17vw, 80px);
  }
  .plan__copy-p:not(:last-child) {
    margin-bottom: clamp(16px, 1.67vw, 32px);
  }
  .perf {
    margin: clamp(20px, 2.08vw, 40px) 0 clamp(30px, 3.13vw, 60px);
  }
  .point__madori .point__heading {
    margin-bottom: clamp(20px, 2.08vw, 40px);
  }
  .spec {
    padding: clamp(40px, 4.17vw, 80px) 20px clamp(56px, 7.34vw, 141px);
  }
  .spec__lead {
    margin-bottom: clamp(28px, 2.92vw, 56px);
  }
  .spec__heading {
    margin-bottom: clamp(24px, 2.6vw, 50px);
  }
  .spec__cards {
    margin-bottom: clamp(56px, 8.28vw, 159px);
  }
  .price {
    padding: clamp(24px, 2.08vw, 40px) 20px;
  }
  .merit {
    padding: clamp(40px, 4.17vw, 80px) 20px clamp(56px, 6.25vw, 120px);
  }
  /* 見出しのボタンの高さの半分だけ枠に重ねる */
  .merit__title {
    margin-bottom: calc(min(120px, 12vw) / -2);
  }
  .merit__card {
    padding-top: clamp(24px, 2.08vw, 40px);
    padding-bottom: clamp(24px, 2.08vw, 40px);
  }
  .merit__heading,
  .merit__medals,
  .merit__img {
    margin-bottom: clamp(20px, 2.08vw, 40px);
  }
  #standard-house .p-link__page {
    margin-bottom: clamp(120px, 18.39vw, 353px);
  }

  /* 文字の大きさ：1920px の値を上限に縮める（下限は読める大きさ） */
  .spec__lead-sub {
    font-size: clamp(18px, 1.67vw, 32px);
  }
  .spec__lead-main {
    font-size: clamp(26px, 2.6vw, 50px);
  }
  .merit-link,
  .merit__title-text {
    height: clamp(64px, 6.25vw, 120px);
    font-size: clamp(20px, 1.67vw, 32px);
  }
  .merit-link__text b,
  .merit__title-text b {
    font-size: clamp(32px, 2.71vw, 52px);
  }
  #standard-house .p-link__page-ttl {
    font-size: clamp(22px, 1.67vw, 32px);
  }
  .plan__pill {
    font-size: clamp(10px, 1.05vw, 16px);
  }
  .perf__num small {
    font-size: max(10px, 0.375em);
  }
}
