@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

html {
  font-size: calc(16 / 1920 * 100vw);
}
@media (min-width: 1921px) {
  html {
    font-size: 100%;
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  html {
    font-size: calc(16 * 500 / 375 * 1px);
  }
}
@media (max-width: 500px) {
  html {
    font-size: calc(16 / 375 * 100vw);
  }
}

body {
  color: #313131;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

h1, h2, h3, h4, h5, h6, p, li, dd, dt, th, td {
  overflow-wrap: break-word;
}

a {
  text-decoration: none;
  transition: 0s;
  color: inherit;
}
@media (hover: hover) {
  a:hover {
    cursor: pointer;
  }
}

picture,
img,
a,
span {
  display: inline-block;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
}

input,
textarea,
select {
  font: inherit;
}

@media (min-width: calc(1024 * 1px)) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
.l-main {
  padding-block-start: calc(0 / 16 * 1rem);
  min-height: 100svh;
}

.l-inner {
  position: relative;
  width: 100%;
  max-width: calc(1120 / 16 * 1rem);
  height: inherit;
  padding-inline: calc(40 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .l-inner {
    max-width: 100%;
    padding-inline: calc(20 / 16 * 1rem);
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .l-inner[class][class] {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.l-inner__narrow {
  max-width: calc(880 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .l-inner__narrow {
    max-width: 100%;
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .l-inner__narrow[class][class] {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.c-more-button {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: flex-start;
  column-gap: calc(14 / 16 * 1rem);
  width: calc(226 / 16 * 1rem);
  max-width: 100%;
}
@media (max-width: 1440px) {
  .c-more-button {
    min-width: max-content;
  }
}
.c-more-button {
  padding-block-start: calc(11 / 16 * 1rem);
  padding-block-end: calc(10 / 16 * 1rem);
  padding-inline-start: calc(26 / 16 * 1rem);
  padding-inline-end: calc(28 / 16 * 1rem);
  background-color: rgb(200, 180, 80);
  color: #ffffff;
  font-size: max(13 / 16 * 1rem, 10 * 1px);
  font-weight: 100;
  line-height: 1.1538461538;
  letter-spacing: 0.48em;
  text-decoration: none;
  transition: background-color 0.35s ease, color 0.35s ease;
}
@media screen and (max-width: 1023px) {
  .c-more-button {
    justify-content: center;
    align-items: center;
    width: calc(273.6 / 16 * 1rem);
    min-height: calc(44 / 16 * 1rem);
  }
}

.c-more-button > * {
  position: relative;
  z-index: 1;
}

.c-more-button::before {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  content: "";
  background-color: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s ease;
}

.c-more-button > span:first-child {
  white-space: nowrap;
}

.c-more-button__arrow {
  display: inline-block;
  flex: 0 0 calc(26 / 16 * 1rem);
  width: calc(26 / 16 * 1rem);
  height: calc(15 / 16 * 1rem);
  background-image: url("../img/top/top-design-fig3.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transition: filter 0.35s ease, transform 0.35s ease;
}

@media (hover: hover) {
  .c-more-button:hover {
    color: #c8b450;
  }
  .c-more-button:hover::before {
    transform: scaleX(1);
  }
  .c-more-button:hover .c-more-button__arrow {
    filter: invert(62%) sepia(47%) saturate(493%) hue-rotate(16deg) brightness(94%) contrast(86%);
    transform: scaleX(1.18);
  }
}
/* ===== c-lower-fv: 下層ページ共通 FV（stage → bg → kicker → catch）=====
   出典: instruction-quality1.md 「下層FVはQUALITY4ページ間だけでなく下層ページ全体の共通型」。
   既存下層ページ(location/plan/design/collaboration)は p-location-fv 等の別名複製が反面教師のため、
   サイトレベル c- 共通コンポーネントとして新規作成（既存ページの改修はスコープ外）。
   写真は natural aspect のまま object-fit:cover で焼く。crop 窓は design 実測の object-position。 */
.c-lower-fv {
  position: relative;
}

.c-lower-fv__stage {
  position: relative;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  width: 100%;
  aspect-ratio: 1920/880;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .c-lower-fv__stage {
    aspect-ratio: 375/600;
  }
}

.c-lower-fv__bg {
  grid-area: 1/1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}
@media screen and (max-width: 1023px) {
  .c-lower-fv__bg {
    object-position: 25% 0; /* SP design: 同写真を w901・x-131 配置（manifest 実測） */
  }
}

p.c-lower-fv__label {
  position: fixed;
  z-index: 20;
  top: calc(102 / 16 * 1rem);
  left: calc(50 / 16 * 1rem);
  margin: 0;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(17 / 16 * 1rem, 12.75 * 1px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.48em;
  color: #ffffff;
  white-space: nowrap;
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  p.c-lower-fv__label {
    top: calc(51 / 16 * 1rem);
    left: calc(23 / 16 * 1rem);
    font-size: max(10 / 16 * 1rem, 10 * 1px);
  }
}

h1.c-lower-fv__catch {
  grid-area: 1/1;
  z-index: 1;
  align-self: start;
  justify-self: center;
  margin-block-start: calc(466 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  line-height: 1.75;
  letter-spacing: 0.5em;
  color: #ffffff;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  h1.c-lower-fv__catch {
    /* vertical-rl では block-start=右になるため、上余白は物理 margin-top で指定する */
    margin-block-start: 0;
    margin-top: calc(97 / 16 * 1rem);
    writing-mode: vertical-rl;
    font-size: max(21 / 16 * 1rem, 14 * 1px);
    line-height: 1.75;
    font-weight: 300; /* SP design は W3 */
    letter-spacing: 0.16em; /* manifest 縦組実測: 総長 403 = 17字×21 + 16×3 */
    text-align: start;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .c-lower-fv__stage {
    height: calc(600 / 16 * 1rem);
    aspect-ratio: auto;
  }
}
/* ===== c-quality-tabs: QUALITY 1-4 共通タブ =====
   --bar: FV 内（写真下端に重なる半透明バー・現在ページのみ金色/装飾bg）
   --footer: 本文下部（下線は全タブ・現在ページのみ金色）
   quality2-4 実装時もこの部品をそのまま使う（instruction-quality1.md「QUALITY共通の共通パーツ」）。 */
.c-quality-tabs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
}

.c-quality-tabs__link {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: calc(18 / 16 * 1rem);
  line-height: 2.22;
  letter-spacing: 0.2em;
  color: #ffffff;
  text-align: center;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs__link {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 300; /* SP design は W3 */
    line-height: 1.29;
    /* 2026-07-06 footer-unify: nowrap 禁忌により撤去。折返しは u-pc/u-sp ラベル分岐＋design authored
       <br>（HTML側）に一本化。実測: 1920/375/768/1024/1440 いずれも折返しズレ無し（禁忌是正 triage）。 */
  }
}

.c-quality-tabs__item.is-current .c-quality-tabs__link {
  color: #f3c91b;
}

@media (hover: hover) {
  .c-quality-tabs__link:hover {
    color: #f3c91b;
  }
  .c-quality-tabs--bar .c-quality-tabs__link:hover {
    background-color: rgba(243, 201, 27, 0.16);
  }
}
/* ---------- --bar（FV 下端・全幅の半透明バー。中の l-inner+c-quality-tabs が 4 列）---------- */
.c-quality-tabs--bar {
  grid-area: 1/1;
  z-index: 1;
  align-self: end;
  width: 100%;
  height: calc(50 / 16 * 1rem);
  background-color: rgba(80, 80, 80, 0.62);
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs--bar {
    height: calc(60 / 16 * 1rem);
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .c-quality-tabs--bar {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.c-quality-tabs--bar > .c-quality-tabs {
  height: 100%;
}

.c-quality-tabs--bar .c-quality-tabs__item {
  height: 100%;
}

.c-quality-tabs--bar .c-quality-tabs__item.is-current {
  background-color: rgba(0, 0, 0, 0);
}

.c-quality-tabs--bar .c-quality-tabs__item.is-current .c-quality-tabs__link {
  color: #f3c91b;
}

.c-quality-tabs--bar .c-quality-tabs__link {
  height: 100%;
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs--bar .c-quality-tabs__link {
    letter-spacing: 0.05em;
  }
}

/* ---------- --footer（本文下部・全タブ下線）---------- */
/* 実測ジオメトリ: 下線 209 幅 × 4・ピッチ 260（gap 51）・中央寄せ（quality1 manifest 引き算） */
.c-quality-tabs--footer {
  display: flex;
  justify-content: center;
  column-gap: calc(51 / 16 * 1rem);
  width: 100%;
  padding-block: 0;
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs--footer {
    display: block;
    padding-inline: 0;
  }
}

.c-quality-tabs--footer .c-quality-tabs__item {
  width: calc(209 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs--footer .c-quality-tabs__item {
    margin-inline: auto;
  }
}

@media screen and (max-width: 1023px) {
  .c-quality-tabs--footer .c-quality-tabs__item + .c-quality-tabs__item {
    margin-block-start: calc(26 / 16 * 1rem);
  }
}

.c-quality-tabs--footer .c-quality-tabs__link {
  padding-block: 0;
  padding-inline-start: calc(16 / 16 * 1rem);
  border-block-end: 1px solid #ffffff;
  /* 実測: 基本 letter-spacing 0em のままだと最長ラベル「心地いい水回りの仕様」の自然幅が
     207px、この列の有効幅（209 − padding-inline-start16 = 193px）を14px超過し、nowrap 除去後は
     「仕」「様」が別行に割れる（禁忌違反の nowrap は不使用）。0em で191px に収まり
     4ラベル全てが1行に収まることを実測確認（PC のみ・SP は padding0+専用font-sizeで別途1行）。 */
  letter-spacing: 0.11em;
}
@media screen and (max-width: 1023px) {
  .c-quality-tabs--footer .c-quality-tabs__link {
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2.222;
    letter-spacing: 0.2em;
    padding-inline-start: 0;
  }
}

.c-quality-tabs--footer .c-quality-tabs__item.is-current .c-quality-tabs__link {
  border-block-end-color: #f3c91b;
}

.p-header {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, 0);
  transition: background-color 0.3s ease, backdrop-filter 0.3s ease;
  backdrop-filter: blur(0);
  -webkit-backdrop-filter: blur(0);
}

.p-header.is-after-fv {
  background-color: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.p-header__inner {
  display: flex;
  align-items: flex-start;
  width: 100%;
  padding-block: calc(9 / 16 * 1rem) calc(6 / 16 * 1rem);
  padding-inline: calc(50 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-header__inner {
    padding-block: calc(3 / 16 * 1rem);
    padding-inline: calc(10 / 16 * 1rem) 0;
  }
}

.p-header__brand {
  display: flex;
  align-items: flex-start;
  flex: 0 0 auto;
  color: #ffffff;
  transition: opacity 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-header__brand {
    align-items: center;
  }
}

.p-header__mark {
  width: calc(72 / 16 * 1rem);
  aspect-ratio: 72/54;
  object-fit: contain;
}
@media screen and (max-width: 1023px) {
  .p-header__mark {
    width: calc(37 / 16 * 1rem);
  }
}

.p-header__wordmark {
  display: block;
  width: calc(287 / 16 * 1rem);
  margin-block-start: calc(11 / 16 * 1rem);
  margin-inline-start: calc(19 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-header__wordmark {
    display: block;
    width: calc(175 / 16 * 1rem);
    margin-block-start: 0;
    margin-inline-start: calc(4 / 16 * 1rem);
  }
}

.p-header__wordmarkEn {
  display: block;
  width: calc(284 / 16 * 1rem);
  aspect-ratio: 284/8;
  object-fit: contain;
  margin-inline: auto;
}

.p-header__wordmarkJa {
  display: block;
  width: calc(287 / 16 * 1rem);
  aspect-ratio: 287/19;
  object-fit: contain;
  margin-block-start: calc(9 / 16 * 1rem);
}

.p-header__wordmarkTextEn,
.p-header__wordmarkTextJa {
  display: none;
}

@media screen and (max-width: 1023px) {
  .p-header__wordmarkEn, .p-header__wordmarkJa {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-header__wordmarkTextEn {
    display: block;
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
    font-size: max(6 / 16 * 1rem, 6 * 1px);
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: 0.19em;
    font-feature-settings: "palt";
    color: #ffffff;
  }
}

@media screen and (max-width: 1023px) {
  .p-header__wordmarkTextJa {
    display: block;
    margin-block-start: calc(3 / 16 * 1rem);
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: 0.097em;
    font-feature-settings: "palt";
    color: #ffffff;
  }
}

.p-header__nav {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-block-start: calc(20 / 16 * 1rem);
  margin-inline-start: auto;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
  line-height: 1.75;
  color: #ffffff;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-header__nav {
    display: none;
  }
}

.p-header__nav a {
  transition: opacity 0.25s ease;
}

.p-header__nav a + a {
  margin-inline-start: calc(20 / 16 * 1rem);
}

.p-header__reservation {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: calc(150 / 16 * 1rem);
  padding-block: calc(3 / 16 * 1rem);
  margin-inline-start: calc(17 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  letter-spacing: 0.2em;
  transition: opacity 0.25s ease;
}

.p-header__reservation::before {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background-image: url("../img/top/header-fig4.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}

.p-header__reservation span {
  transform: translateY(calc(1 / 16 * 1rem));
}

@media (hover: hover) {
  .p-header__brand:hover,
  .p-header__nav a:hover,
  .p-header__reservation:hover {
    opacity: 0.72;
  }
}
.p-drawer__icon {
  position: fixed;
  z-index: 102;
  top: max(calc(87 / 16 * 1rem), 52px);
  right: calc(50 / 16 * 1rem);
  display: block;
  width: calc(140 / 16 * 1rem);
  height: auto;
}
@media (max-width: 1440px) {
  .p-drawer__icon {
    min-width: max-content;
  }
}
.p-drawer__icon {
  color: #ffffff;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 2.6666666667;
  letter-spacing: 0.2em;
  text-align: right;
  text-shadow: 0 0 calc(4 / 16 * 1rem) rgb(0, 0, 0);
  transition: color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-drawer__icon {
    top: calc(12 / 16 * 1rem);
    right: calc(12 / 16 * 1rem);
    width: calc(24 / 16 * 1rem);
    height: calc(19 / 16 * 1rem);
  }
}

.p-drawer__icon::after {
  content: "";
  display: block;
  width: calc(240 / 16 * 1rem);
  margin-block-start: calc(6 / 16 * 1rem);
  margin-inline-start: calc(-50 / 16 * 1rem);
  border-block-start: 1px solid rgb(255, 255, 255);
  box-shadow: 0 0 calc(4 / 16 * 1rem) rgb(0, 0, 0);
  transition: border-color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-drawer__icon::after {
    content: none;
  }
}

.p-drawer__iconText {
  display: block;
  white-space: nowrap;
}

.p-drawer__iconArrow {
  display: inline-block;
  transform: rotate(90deg);
  transform-origin: center;
  transition: transform 0.3s ease;
}

.p-drawer__iconText--close {
  display: none;
}

.p-drawer__icon.js-show .p-drawer__iconText--open {
  display: none;
}

.p-drawer__icon.js-show .p-drawer__iconText--close {
  display: block;
}

.p-drawer__icon.js-show .p-drawer__iconArrow {
  transform: rotate(-90deg);
}

@media screen and (max-width: 1023px) {
  .p-drawer__icon > *, .p-drawer__icon.js-show .p-drawer__iconText--open, .p-drawer__icon.js-show .p-drawer__iconText--close {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-drawer__icon::before {
    content: "";
    position: absolute;
    top: calc(3 / 16 * 1rem);
    left: calc(3 / 16 * 1rem);
    width: calc(18 / 16 * 1rem);
    height: calc(1 / 16 * 1rem);
    background-color: #ffffff;
    box-shadow: 0 calc(6 / 16 * 1rem) 0 0 #ffffff, 0 calc(13 / 16 * 1rem) 0 0 #ffffff;
  }
}

@media screen and (max-width: 1023px) {
  .p-drawer__icon.js-show::before {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    background-image: url("../img/common/header-close-icon-sp.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    box-shadow: none;
  }
}

.p-drawer {
  position: fixed;
  z-index: 101;
  top: max(calc(142 / 16 * 1rem), 88px);
  right: 0;
  width: calc(240 / 16 * 1rem);
  max-width: none;
  min-height: auto;
  overflow-y: auto;
  color: #ffffff;
  background-color: transparent;
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(-12 / 16 * 1rem));
  transition: transform 0.32s ease, opacity 0.32s ease;
}
@media (max-width: 1440px) {
  .p-drawer {
    min-width: max-content;
  }
}
@media screen and (max-width: 1023px) {
  .p-drawer {
    top: calc(40 / 16 * 1rem);
    right: 0;
    width: 100%;
    height: auto;
    min-height: calc(100svh - calc(40 / 16 * 1rem));
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-12 / 16 * 1rem));
    background-color: #333333;
  }
}

.p-drawer.js-show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.p-drawer__body {
  width: calc(240 / 16 * 1rem);
  height: fit-content;
}
@media (max-width: 1440px) {
  .p-drawer__body {
    min-width: max-content;
  }
}
.p-drawer__body {
  margin-block-start: 0;
  margin-inline: auto 0;
  padding: 0;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  text-align: right;
  text-shadow: 0 0 calc(4 / 16 * 1rem) rgb(0, 0, 0);
}
@media screen and (max-width: 1023px) {
  .p-drawer__body {
    width: 100%;
    height: auto;
    margin-inline: 0;
    padding-block: 0 calc(30 / 16 * 1rem);
    padding-inline: 0;
    text-align: right;
  }
}

.p-drawer__close {
  display: none;
}

.p-drawer__list {
  margin-block-start: 0;
  padding-block-start: 0;
  padding-inline-end: calc(50 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-drawer__list {
    padding-block-start: 0;
    padding-inline-end: 0;
  }
}

.p-drawer__list li + li {
  margin-block-start: 0;
}

.p-drawer__list a {
  position: relative;
  display: block;
  width: fit-content;
  margin-inline-start: auto;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 2;
  letter-spacing: 0.2em;
  transition: opacity 0.25s ease, color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-drawer__list a {
    display: block;
    width: auto;
    margin-inline-start: 0;
    padding-inline-end: calc(41 / 16 * 1rem);
    border-block-end: 1px solid #8b8b8b;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 300;
    line-height: 3.4285714286;
    letter-spacing: 0.2em;
    color: #ffffff;
  }
}

.p-drawer__list a::after {
  position: absolute;
  right: 0;
  bottom: calc(2 / 16 * 1rem);
  left: auto;
  width: 100%;
  height: 1px;
  content: "";
  background-color: #f3c91b;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.3s ease;
}
@media screen and (max-width: 1023px) {
  .p-drawer__list a::after {
    content: none;
  }
}

@media (hover: hover) {
  .p-drawer__icon:hover {
    color: #f3c91b;
  }
  .p-drawer__icon:hover::after {
    border-block-start-color: #f3c91b;
  }
  .p-drawer__list a:hover {
    color: #f3c91b;
  }
  .p-drawer__list a:hover::after {
    transform: scaleX(1);
  }
}
.p-drawer__secondary {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-drawer__secondary {
    display: block;
    margin-block-start: calc(39 / 16 * 1rem);
    padding-inline-start: calc(52 / 16 * 1rem);
    text-align: left;
  }
}

.p-drawer__reservation {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-drawer__reservation {
    display: grid;
    place-items: center;
    margin-block-start: calc(36 / 16 * 1rem);
    margin-inline: calc(23 / 16 * 1rem);
    padding-block: calc(16 / 16 * 1rem);
    background-color: #b09303;
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: 0.05em;
    color: #ffffff;
    text-align: center;
    transition: opacity 0.25s ease;
  }
}

@media screen and (max-width: 1023px) {
  .p-drawer__list li {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-drawer__secondary li + li {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-drawer__secondary a {
    display: block;
    line-height: calc(48 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    font-weight: 300;
    letter-spacing: 0;
    color: #ffffff;
    transition: opacity 0.25s ease;
  }
}

/* ===== p-footer: common footer ===== */
.p-footer {
  overflow-x: clip;
  color: #231815;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #ffffff;
}

.p-footer__phoneLead,
.p-footer__notes,
.p-footer__companyHeads p,
.p-footer__companyHeadSp,
.p-footer__license,
.p-footer__address,
.p-footer__siteLinkText,
.p-footer__copyright {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
}

.p-footer img {
  display: block;
}

.p-footer__inner.l-inner {
  max-width: calc(1920 / 16 * 1rem);
  padding-inline: 0;
}

.p-footer__reservationArea {
  position: relative;
  padding-block: calc(120 / 16 * 1rem) 0;
  background-color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationArea {
    padding-inline: calc(20 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationArea {
    padding-block-start: calc(42 / 16 * 1rem);
  }
}

.p-footer__reservationGrid {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationGrid {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(329 / 16 * 1rem);
    max-width: 100%;
    margin-block-start: calc(31 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-footer__reservationGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.p-footer__infoImage {
  width: 100%;
  margin-block-start: 0;
}

.p-footer__reservationCard {
  grid-column: 1/-1;
  border-block: 1px solid rgb(255, 255, 255);
  background-color: #c8b450;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationCard {
    grid-column: 1/-1;
  }
}

.p-footer__requestCard,
.p-footer__consultCard {
  background-color: #b3b3b3;
}

.p-footer__consultCard {
  border-inline-start: 1px solid rgb(255, 255, 255);
}

.p-footer__reservationCard,
.p-footer__requestCard,
.p-footer__consultCard {
  display: block;
  padding-block: calc(40 / 16 * 1rem) calc(29 / 16 * 1rem);
  text-decoration: none;
  text-align: center;
  transition: opacity 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationCard,
  .p-footer__requestCard,
  .p-footer__consultCard {
    padding-block: calc(25 / 16 * 1rem) calc(5 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__requestCard {
    padding-block: calc(14 / 16 * 1rem) calc(0 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__consultCard {
    padding-block: calc(19 / 16 * 1rem) calc(11 / 16 * 1rem);
  }
}

.p-footer a:focus-visible {
  outline: calc(3 / 16 * 1rem) solid #c8b450;
  outline-offset: calc(5 / 16 * 1rem);
}

.p-footer__reservationTitle,
.p-footer__requestTitle,
.p-footer__consultTitle {
  color: #ffffff;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: 0.6em;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationTitle,
  .p-footer__requestTitle,
  .p-footer__consultTitle {
    font-size: max(28 / 16 * 1rem, 14 * 1px);
  }
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationTitle,
  .p-footer__requestTitle,
  .p-footer__consultTitle {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__requestTitle {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__consultTitle {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.75;
    letter-spacing: 0.1em;
  }
}

.p-footer__reservationSub,
.p-footer__requestSub,
.p-footer__consultSub {
  margin-block-start: calc(6 / 16 * 1rem);
  color: #ffffff;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.1875;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-footer__reservationSub,
  .p-footer__requestSub,
  .p-footer__consultSub {
    margin-block-start: calc(4 / 16 * 1rem);
    font-size: max(10 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
    letter-spacing: 0.1em;
  }
}

.p-footer__phoneLead {
  margin-block-start: calc(92 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-footer__phoneLead {
    margin-block-start: calc(61 / 16 * 1rem);
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.1568642857;
    letter-spacing: 0.025em;
  }
}

.p-footer__galleryName {
  margin-block-start: calc(33 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: 0.16em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-footer__galleryName {
    width: calc(310 / 16 * 1rem);
    margin-block-start: calc(15 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
}

.p-footer__galleryName--sp,
.p-footer__companyHeadSp {
  display: none;
}

.p-footer__galleryNameLine {
  display: block;
}

@media screen and (max-width: 1023px) {
  .p-footer__galleryNameLine--title {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__galleryNameLine--gallery {
    font-size: max(22 / 16 * 1rem, 14 * 1px);
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
}

.p-footer__phoneRow {
  display: grid;
  grid-template-columns: calc(75 / 16 * 1rem) auto;
  align-items: center;
  width: fit-content;
  margin-block-start: calc(24 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(10 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__phoneRow {
    grid-template-columns: calc(46 / 16 * 1rem) auto;
    column-gap: calc(8 / 16 * 1rem);
    margin-block-start: calc(13 / 16 * 1rem);
  }
}

.p-footer__phoneIcon {
  width: calc(75 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__phoneIcon {
    width: calc(46 / 16 * 1rem);
  }
}

.p-footer__phoneNumber {
  color: #000000;
  font-size: max(65 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.13em;
}
@media screen and (max-width: 1023px) {
  .p-footer__phoneNumber {
    font-size: max(38.9232 / 16 * 1rem, 14 * 1px);
    line-height: 1.1999989723;
    letter-spacing: -0.001em;
  }
}

.p-footer__hours {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.1875;
  letter-spacing: 0.01em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-footer__hours {
    width: calc(315 / 16 * 1rem);
    margin-block-start: calc(5 / 16 * 1rem);
    margin-inline: auto;
    font-feature-settings: normal;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0px;
  }
}

.p-footer__notes {
  max-width: calc(1100 / 16 * 1rem);
  margin-block-start: calc(94 / 16 * 1rem);
  margin-inline: auto;
  color: #878787;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.6;
}
@media screen and (max-width: 1023px) {
  .p-footer__notes {
    max-width: calc(330 / 16 * 1rem);
    margin-block-start: calc(31 / 16 * 1rem);
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

.p-footer__companyHeads {
  display: grid;
  grid-template-columns: calc(347 / 16 * 1rem) calc(356 / 16 * 1rem) calc(307 / 16 * 1rem);
  max-width: calc(1100 / 16 * 1rem);
  margin-block-start: calc(35 / 16 * 1rem);
  margin-inline: auto;
  padding-block-start: calc(44 / 16 * 1rem);
  border-block-start: 1px solid #000000;
  column-gap: calc(38 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__companyHeads {
    display: none;
  }
}

.p-footer__companyHeads p {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
  line-height: 1.286;
  letter-spacing: 0.1em;
}

.p-footer__companies {
  display: grid;
  grid-template-columns: calc(347 / 16 * 1rem) calc(356 / 16 * 1rem) calc(307 / 16 * 1rem);
  max-width: calc(1100 / 16 * 1rem);
  margin-block-start: calc(18 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(38 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__companies {
    margin-block-start: calc(36 / 16 * 1rem);
  }
}

.p-footer__company {
  display: grid;
  align-content: start;
}
@media screen and (max-width: 1023px) {
  .p-footer__company {
    display: block;
  }
}

.p-footer__license,
.p-footer__address {
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.36;
}

.p-footer__license {
  letter-spacing: 0.01em;
}

.p-footer__logoRow {
  display: grid;
  grid-template-columns: calc(56 / 16 * 1rem) calc(267 / 16 * 1rem);
  align-items: center;
  margin-block-start: calc(16 / 16 * 1rem);
  column-gap: calc(14 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__logoRow {
    grid-template-columns: calc(54 / 16 * 1rem) calc(250 / 16 * 1rem);
    margin-block-start: calc(17 / 16 * 1rem);
    column-gap: calc(12 / 16 * 1rem);
  }
}

.p-footer__wadaMark {
  width: calc(56 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__wadaMark {
    width: calc(54 / 16 * 1rem);
  }
}

.p-footer__wadaLogo {
  width: calc(259 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__wadaLogo {
    width: calc(250 / 16 * 1rem);
  }
}

.p-footer__company--wada .p-footer__address {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(11 / 16 * 1rem, 10 * 1px);
}

.p-footer__ryobiLogo {
  width: calc(356 / 16 * 1rem);
  margin-block-start: calc(28 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__ryobiLogo {
    width: calc(300 / 16 * 1rem);
    margin-block-start: calc(16 / 16 * 1rem);
  }
}

.p-footer__company--ryobi .p-footer__address {
  margin-block-start: calc(16 / 16 * 1rem);
}

.p-footer__company--homes .p-footer__license {
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
}

.p-footer__homesLogo {
  width: calc(230 / 16 * 1rem);
  height: auto;
  justify-self: start;
  margin-block-start: calc(19 / 16 * 1rem);
  margin-inline-start: calc(15 / 16 * 1rem);
  object-fit: contain;
}
@media screen and (max-width: 1023px) {
  .p-footer__homesLogo {
    width: calc(230 / 16 * 1rem);
    margin-block-start: calc(6 / 16 * 1rem);
    margin-inline-start: 0;
  }
}

.p-footer__company--homes .p-footer__address {
  margin-block-start: calc(26 / 16 * 1rem);
}

.p-footer__subLinks {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  margin-block-start: calc(42 / 16 * 1rem);
  column-gap: calc(56 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__subLinks {
    margin-block-start: calc(31 / 16 * 1rem);
    grid-template-columns: 1fr;
    justify-items: center;
    row-gap: calc(28 / 16 * 1rem);
    column-gap: 0;
  }
}

.p-footer__subLinks a {
  color: #231815;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.1875;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-footer__subLinks a {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1;
  }
}

.p-footer__siteLinks {
  margin-block-start: calc(30 / 16 * 1rem);
  padding-block: calc(63 / 16 * 1rem) calc(38 / 16 * 1rem);
  color: #ffffff;
  background-color: #000000;
}
@media screen and (max-width: 1023px) {
  .p-footer__siteLinks {
    margin-block-start: calc(58 / 16 * 1rem);
    min-height: calc(459 / 16 * 1rem);
    padding-block: calc(26.43 / 16 * 1rem) calc(13 / 16 * 1rem);
    box-sizing: border-box;
  }
}

.p-footer__bottomImage {
  width: 100%;
}

.p-footer__siteLinkGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(100%, 1100 / 16 * 1rem);
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(58 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__siteLinkGrid {
    width: calc(335 / 16 * 1rem);
  }
}

.p-footer__siteLink {
  display: grid;
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

@media (hover: hover) {
  .p-footer a:hover {
    opacity: 0.72;
  }
}
.p-footer__rgLogo {
  display: grid;
  grid-template-columns: calc(70 / 16 * 1rem) calc(162 / 16 * 1rem);
  align-items: center;
  padding-block: calc(14 / 16 * 1rem);
  padding-inline-start: calc(36 / 16 * 1rem);
  background-color: #005e3c;
  column-gap: calc(16 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__rgLogo {
    grid-template-columns: calc(70 / 16 * 1rem) calc(162 / 16 * 1rem);
    padding-block: calc(14 / 16 * 1rem);
    padding-inline-start: calc(36 / 16 * 1rem);
    column-gap: calc(16 / 16 * 1rem);
  }
}

.p-footer__rgLogo > img {
  width: calc(70 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__rgLogo > img {
    width: calc(70 / 16 * 1rem);
  }
}

.p-footer__rgLogo span {
  display: grid;
  justify-items: end;
}

.p-footer__rgLogo span img:first-child {
  width: calc(162 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__rgLogo span img:first-child {
    width: calc(162 / 16 * 1rem);
  }
}

.p-footer__rgLogo span img + img {
  width: calc(85 / 16 * 1rem);
  margin-block-start: calc(2 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__rgLogo span img + img {
    width: calc(85 / 16 * 1rem);
  }
}

.p-footer__wadaSiteLogo,
.p-footer__ryobiSiteLogo {
  justify-self: center;
  background-color: #ffffff;
}

.p-footer__wadaSiteLogo {
  width: calc(219 / 16 * 1rem);
  padding-block: calc(14 / 16 * 1rem);
  padding-inline: calc(55 / 16 * 1rem);
  box-sizing: content-box;
}
@media screen and (max-width: 1023px) {
  .p-footer__wadaSiteLogo {
    width: calc(219 / 16 * 1rem);
    padding-block: calc(14 / 16 * 1rem);
    padding-inline: calc(55 / 16 * 1rem);
  }
}

.p-footer__ryobiSiteLogo {
  width: calc(328 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-footer__ryobiSiteLogo {
    width: calc(328 / 16 * 1rem);
  }
}

.p-footer__siteLinkText {
  margin-block-start: calc(20 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.25;
}
@media screen and (max-width: 1023px) {
  .p-footer__siteLinkText {
    margin-block-start: calc(8 / 16 * 1rem);
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
  }
}

.p-footer__copyright {
  margin-block-start: calc(65 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.267;
  letter-spacing: 0.1em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-footer__copyright {
    margin-block-start: calc(37 / 16 * 1rem);
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__reservationGrid > * + * {
    margin-block-start: calc(28 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__companyHeads, .p-footer__companies, .p-footer__siteLinkGrid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__companyHeads > * + *, .p-footer__companies > * + *, .p-footer__siteLinkGrid > * + * {
    margin-block-start: calc(28 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__reservationArea::before {
    content: "CONTACT";
    display: block;
    color: #595757;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    font-weight: 300;
    line-height: 1.01225625;
    letter-spacing: 0.2em;
    text-align: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__requestCard, .p-footer__consultCard, .p-footer__reservationGrid > * + * {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__galleryName--pc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__galleryName--sp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__siteLinkGrid > * + * {
    margin-block-start: calc(10 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__company + .p-footer__company {
    margin-block-start: calc(18 / 16 * 1rem);
    padding-block-start: calc(24 / 16 * 1rem);
    border-block-start: 1px solid #000000;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__companyHeadSp {
    display: block;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 300;
    line-height: 1.1568642857;
    letter-spacing: 0.1em;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__license, .p-footer__address, .p-footer__company--wada .p-footer__address, .p-footer__company--homes .p-footer__license {
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: 0;
    white-space: normal;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__company--wada .p-footer__license {
    letter-spacing: 0.01em;
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__companyHeadSp + .p-footer__license {
    margin-block-start: calc(13 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-footer__company--wada .p-footer__address, .p-footer__company--ryobi .p-footer__address, .p-footer__company--homes .p-footer__address {
    margin-block-start: calc(15 / 16 * 1rem);
  }
}

/* /p-footer: common footer */
/* ===== p-gallery-open: common gallery-open announcement (shared across all pages) =====
   出典: トップ修正指示３ [12]。以前は各ページが p-top-gallery-open / p-collaboration-gallery-open /
   p-design-gallery / p-location-gallery / p-plan-gallery / p-plan-detail-gallery として個別実装しており、
   マークアップ・画像・文字サイズが divergent だった。index.html の <section id="gallery"> を正本ブロックとして
   共通部品化し、下層ページ全部で同一マークアップ・同一CSSを使う。
   img/h2/p の文言・画像は index の正本値のまま（デザイン値は変更していない）。
   2026-07-06 rg-oimatsu2-footer-unify: SP 値は plan.html の .page-plan スコープ実装（Codex 実測・98.1%PASS 実績）から採用。
   ただし projectName/announcement の color:#000000（page-plan 側にあった値）は design 実測で白 #ffffff
   が正と判明（PC/SP とも design-normalized.webp 実測で確認）だったため採用せず、base の白のまま維持。 */
.p-gallery-open {
  padding-block: calc(181 / 16 * 1rem) calc(125 / 16 * 1rem);
  color: #ffffff;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open {
    box-sizing: border-box;
    padding-block: calc(120 / 16 * 1rem) calc(83 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-gallery-open img {
  display: block;
}

.p-gallery-open__inner {
  text-align: center;
}

.p-gallery-open__mark {
  width: calc(150 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open__mark {
    width: calc(109 / 16 * 1rem);
    aspect-ratio: 109/150;
  }
}

/* 消費先ページ（design/location/plan/plan-detail系）が `.p-xxx-main :where(h1,h2,p){margin:0}` という
   詳細度(0,1,0)のリセットを持つため、単一クラス(0,1,0)の下記ルールだと詳細度が同点になりソース順で負ける
   （repair loop 1/3 実測で確認: design.html で margin-block-start が 0px に潰れていた）。
   `.p-gallery-open__inner` を前置し詳細度(0,2,0)にして、消費先リセットの読み込み順に関係なく確実に勝たせる。 */
.p-gallery-open__inner .p-gallery-open__projectName {
  margin-block-start: calc(121 / 16 * 1rem);
  color: #ffffff;
  font-size: max(33 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.27;
  letter-spacing: 0.4em;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open__inner .p-gallery-open__projectName {
    width: max-content;
    margin-block-start: calc(47 / 16 * 1rem);
    margin-inline: auto;
    transform: scaleX(1);
    transform-origin: center top;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2.3333333333;
    letter-spacing: 0.2em;
  }
}

.p-gallery-open__inner .p-gallery-open__subtitle {
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  margin-block-start: calc(50 / 16 * 1rem);
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open__inner .p-gallery-open__subtitle {
    width: calc(181 / 16 * 1rem);
    margin-inline: auto;
    margin-block-start: calc(12 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.9642857143;
  }
}

.p-gallery-open__subtitleOpen {
  display: inline-block;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open__subtitleOpen {
    margin-block-start: calc(3 / 16 * 1rem);
    font-size: max(41 / 16 * 1rem, 14 * 1px);
    line-height: 1.176995122;
    letter-spacing: 0.2em;
  }
}

@media (min-width: 1024px) {
  .p-gallery-open__inner .p-gallery-open__subtitle {
    font-size: max(35.75 / 16 * 1rem, 14 * 1px);
  }
}
/* SP は subtitle を3行表示に戻し、OPEN だけ大きく見せる。 */
@media screen and (max-width: 1023px) {
  .p-gallery-open__subtitleText, .p-gallery-open__subtitleOpen, .p-gallery-open__subtitleLine {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-gallery-open__subtitleLine {
    width: max-content;
    margin-inline: auto;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.9642857143;
  }
}

@media screen and (max-width: 1023px) {
  .p-gallery-open__subtitleLine:nth-child(2) {
    transform: scaleX(1);
    transform-origin: center top;
  }
}

.p-gallery-open__inner .p-gallery-open__announcement {
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  margin-block-start: calc(12 / 16 * 1rem);
  font-size: max(24 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 2.5;
  letter-spacing: 0.4em;
}
@media screen and (max-width: 1023px) {
  .p-gallery-open__inner .p-gallery-open__announcement {
    width: calc(233 / 16 * 1rem);
    margin-block-start: calc(18 / 16 * 1rem);
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.7777777778;
    /* 実測: letter-spacing 0em だと1行目「倉敷マンションギャラリー」の自然幅が234pxとなり
       容器233pxを1px超過→デザイン外の3行目に折れる。0emで232pxに収まり実測で
       設計どおり2行（<br class="u-sp">の位置）に一致（コーディング憲章nowrap禁忌に沿った実測補正）。 */
    letter-spacing: 0.19em;
  }
}

/* /p-gallery-open */
/* ===== p-top: TOP page ===== */
.p-top-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-main {
    display: grid;
    grid-template-areas: "fv" "information" "collaboration-mark" "intro" "collaboration" "bliss" "design" "location" "plan" "gallery";
    grid-template-columns: minmax(0, 1fr);
  }
}

.p-top-main img {
  display: block;
}

.p-top-main .l-inner {
  padding-inline: 0;
}
@media screen and (max-width: 1023px) {
  .p-top-main .l-inner {
    width: 100%;
    max-width: none;
    padding-inline: 0;
  }
}

.p-top-main .p-top-information__inner,
.p-top-main .p-top-collaboration__inner,
.p-top-main .p-top-bliss__inner,
.p-top-main .p-top-design__inner,
.p-top-main .p-top-location__inner,
.p-top-main .p-top-plan__inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}

.p-top-information__sectionLabel,
.p-top-collaboration__sectionLabel,
.p-top-design__sectionLabel,
.p-top-location__sectionLabel,
.p-top-plan__sectionLabel {
  width: auto;
}

.p-top-collaboration__moreButton,
.p-top-design__moreButton,
.p-top-location__moreButton,
.p-top-plan__moreButton {
  column-gap: calc(14 / 16 * 1rem);
}

.p-top-sectionRule {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-top-sectionRule {
    display: block;
    width: calc(40 / 16 * 1rem);
    height: calc(2 / 16 * 1rem);
    margin-inline: auto;
    background-color: #ffffff;
  }
}

/* rule-exception: TOP_OVERLAY_TRANSFORM_001
   Illustrator source contains photo captions, image-overlay logos/captions,
   Design ZEH/CTA text, Location lead/CTA text, Plan floorplan labels, and
   section marks that require exact overlay offsets. Attempts to convert these
   remaining offsets to flow margins/padding failed the section-visual gate.
   Normal section stacking and inter-section spacing remain controlled by flow,
   grid, margin, and padding; the accepted scope is tracked in
   overlay-transform-exception.json. */
/* rule-exception: CSS_OVERLAY_001
   必要性: FVは写真の上にキャンペーン・コピー・数値を重ねるデザインのため、CSS Gridの同一セル配置で重なりを作る。
   影響範囲: .p-top-fv のみ
   暫定/恒久: 恒久
*/
.p-top-fv {
  display: grid;
  background-color: #2d2d2d;
}
@media screen and (max-width: 1023px) {
  .p-top-fv {
    grid-area: fv;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-fv {
    height: calc(650 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-top-fv > .p-top-fv__slider,
.p-top-fv > .p-top-fv__inner {
  grid-area: 1/1;
}

.p-top-fv__inner {
  position: relative;
  display: grid;
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-fv__inner {
    height: 100%;
  }
}

.p-top-fv__inner > * {
  grid-area: 1/1;
}

.p-top-fv__inner::before {
  content: "";
  grid-area: 1/1;
  z-index: 1;
  background: radial-gradient(ellipse 18% 16% at 56% 96%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 42%, rgba(0, 0, 0, 0) 72%);
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  .p-top-fv__inner::before {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
  }
}

.p-top-fv__link {
  display: block;
  grid-area: 1/1;
  z-index: 3;
}

.p-top-fv__slider,
.p-top-fv__slider .swiper-wrapper,
.p-top-fv__slider .swiper-slide {
  z-index: 0;
  width: 100%;
  aspect-ratio: 2/1;
}

/* FV最初のスライドのみSP専用source（美観地区FVSP.webp）でart-direction。
   pictureはCSSレイアウト上ただの入れ物にしたいのでdisplay:contentsで無効化し、
   中のimg（.p-top-fv__img1）がswiper-slideの直接の対象として振る舞うようにする。 */
.p-top-fv__slider .swiper-slide picture {
  display: contents;
}

.p-top-fv__slider .swiper-slide {
  overflow: hidden;
}

.p-top-fv__img1,
.p-top-fv__img2,
.p-top-fv__img3 {
  z-index: 0;
  width: 100%;
  aspect-ratio: 2/1;
  object-fit: cover;
}
@media screen and (max-width: 1023px) {
  .p-top-fv__img1,
  .p-top-fv__img2,
  .p-top-fv__img3 {
    object-fit: cover;
    object-position: center top;
  }
}

.p-top-fv__mainCopy {
  z-index: 2;
  writing-mode: vertical-rl;
  justify-self: center;
  align-self: start;
  margin-block-start: 0;
  margin-inline-start: calc(210 / 16 * 1rem);
  font-size: max(30 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 3;
  letter-spacing: 0.21em;
}
@media screen and (max-width: 1023px) {
  .p-top-fv__mainCopy {
    display: block;
    justify-self: center;
    align-self: start;
    margin: calc(90 / 16 * 1rem) 0 0 0;
    color: #ffffff;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2.5;
    letter-spacing: 0.21em;
    transform: none;
  }
}

.p-top-fv__mainCopy,
.p-top-fv__slideCopy,
.p-top-fv__photoCaption {
  opacity: 0;
  transition: none;
}

.p-top-fv.is-copy-ready .p-top-fv__mainCopy,
.p-top-fv.is-copy-ready .p-top-fv__slideCopy,
.p-top-fv.is-copy-ready .p-top-fv__photoCaption {
  transition: opacity 1.4s ease;
}

.p-top-fv.is-copy-switching .p-top-fv__mainCopy,
.p-top-fv.is-copy-switching .p-top-fv__slideCopy,
.p-top-fv.is-copy-switching .p-top-fv__photoCaption {
  transition-duration: 0.95s;
}

.p-top-fv.is-copy-ready .p-top-fv__mainCopy.is-active,
.p-top-fv.is-copy-ready .p-top-fv__slideCopy.is-active,
.p-top-fv.is-copy-ready .p-top-fv__photoCaption.is-active {
  opacity: 1;
}

.p-top-fv__slideCopy {
  z-index: 2;
  position: relative;
  width: 100%;
  aspect-ratio: 2/1;
  pointer-events: none;
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-top-fv__slideCopy {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slideCopy {
    height: calc(650 / 16 * 1rem);
    aspect-ratio: auto;
  }
}

.p-top-fv__slideCopy picture,
.p-top-fv__slideCopy img {
  display: block;
}

.p-top-fv__slideCopy picture,
.p-top-fv__slide3En,
.p-top-fv__slide3EnText,
.p-top-fv__slide3Ja {
  position: absolute;
}

.p-top-fv__slideCopy picture img {
  width: 100%;
  height: auto;
}

.p-top-fv__slide2Logo {
  top: calc(500 / 16 * 1rem);
  left: 50%;
  width: calc(165 / 16 * 1rem);
  transform: translateX(-50%);
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slide2Logo {
    top: calc(331 / 16 * 1rem);
    width: calc(112 / 16 * 1rem);
  }
}

.p-top-fv__slide2Tagline {
  top: calc(780 / 16 * 1rem);
  left: 50%;
  width: calc(560 / 16 * 1rem);
  transform: translateX(-50%);
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slide2Tagline {
    top: calc(520 / 16 * 1rem);
    width: calc(216 / 16 * 1rem);
  }
}

.p-top-fv__slide2Subcopy {
  top: calc(837 / 16 * 1rem);
  left: 50%;
  width: calc(264 / 16 * 1rem);
  transform: translateX(-50%);
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slide2Subcopy {
    top: calc(601 / 16 * 1rem);
    width: calc(180 / 16 * 1rem);
  }
}

.p-top-fv__slide3En {
  top: calc(504 / 16 * 1rem);
  left: 50%;
  width: calc(881 / 16 * 1rem);
  transform: translateX(-50%);
}

.p-top-fv__slide3EnText {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slide3EnText {
    display: block;
    top: calc(320 / 16 * 1rem);
    left: 0;
    right: 0;
    margin: 0;
    color: #ffffff;
    font-family: "TsukuAOldMinPr6N-L", serif;
    font-size: max(26 / 16 * 1rem, 14 * 1px);
    font-weight: 300;
    line-height: 1.3846153846;
    letter-spacing: 0.1em;
    text-align: center;
    white-space: nowrap;
  }
}

.p-top-fv__slide3Ja {
  top: calc(555 / 16 * 1rem);
  left: 50%;
  width: max-content;
  margin: 0;
  color: #ffffff;
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(15 / 16 * 1rem, 11.25 * 1px);
  font-weight: 300;
  line-height: 2.356;
  letter-spacing: 0.3em;
  text-align: center;
  white-space: nowrap;
  transform: translateX(-50%);
}
@media screen and (max-width: 1023px) {
  .p-top-fv__slide3Ja {
    top: calc(436 / 16 * 1rem);
    left: 0;
    right: 0;
    width: auto;
    font-size: max(15 / 16 * 1rem, 11.25 * 1px);
    line-height: 2.35604;
    letter-spacing: 0.3em;
    transform: scaleX(0.9);
  }
}

.p-top-fv__badges {
  z-index: 2;
  justify-self: start;
  align-self: start;
  display: grid;
  width: calc(280 / 16 * 1rem);
  margin-block-start: calc(243 / 16 * 1rem);
  margin-inline-start: calc(50 / 16 * 1rem);
}

.p-top-fv__badgeProject,
.p-top-fv__parking {
  margin-block-start: calc(38 / 16 * 1rem);
}

.p-top-fv__parking {
  display: grid;
}

.p-top-fv__parking > * {
  grid-area: 1/1;
}

.p-top-fv__parkingRows {
  display: none;
  align-self: center;
  padding-inline: calc(34 / 16 * 1rem) calc(18 / 16 * 1rem);
}

.p-top-fv__parkingRow + .p-top-fv__parkingRow {
  margin-block-start: calc(12 / 16 * 1rem);
}

.p-top-fv__parkingRow {
  display: grid;
  grid-template-columns: calc(62 / 16 * 1rem) auto;
  align-items: center;
  column-gap: calc(9 / 16 * 1rem);
}

.p-top-fv__parkingFeeLabel,
.p-top-fv__parkingRatioLabel {
  width: calc(60 / 16 * 1rem);
  font-weight: 300;
  text-align: center;
}

.p-top-fv__photoCaption {
  z-index: 2;
  justify-self: end;
  align-self: end;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.02em;
  margin-block-end: calc(10 / 16 * 1rem);
}

.p-top-fv__photoCaption--1 {
  margin-inline-end: calc(44 / 16 * 1rem);
}

.p-top-fv__photoCaption--2 {
  margin-inline-end: calc(46 / 16 * 1rem);
}

.p-top-fv__photoCaption--3 {
  margin-inline-end: calc(37 / 16 * 1rem);
}

.p-top-fv__parkingFeeValue,
.p-top-fv__parkingRatioValue {
  display: inline-flex;
  align-items: baseline;
  column-gap: calc(2 / 16 * 1rem);
  font-size: calc(58 / 16 * 1rem);
  font-weight: 300;
  line-height: 1.15;
  color: #ffde00;
  white-space: nowrap;
}

.p-top-fv__num {
  font-size: 1em;
  line-height: 1;
}

.p-top-fv__unit {
  font-size: calc(27 / 16 * 1rem);
  line-height: 1;
}

.p-top-fv__parkingFeeLabel {
  font-size: calc(18 / 16 * 1rem);
  line-height: 1.28;
}

.p-top-fv__parkingRatioLabel {
  font-size: calc(20 / 16 * 1rem);
  line-height: 1.2;
}

/* ===== intro ===== */
.p-top-intro {
  padding-block: calc(15 / 16 * 1rem) calc(192 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-top-intro {
    grid-area: intro;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-intro {
    padding-block: calc(42 / 16 * 1rem) calc(52 / 16 * 1rem);
  }
}

.p-top-main .p-top-intro__inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}

.p-top-intro__divider {
  position: static;
  display: flex;
  align-items: center;
  column-gap: calc(13 / 16 * 1rem);
  width: calc(50 / 16 * 1rem);
  height: calc(8 / 16 * 1rem);
  margin-inline: auto;
}

.p-top-intro__divider.swiper-pagination-bullets {
  bottom: auto;
  left: auto;
  width: calc(50 / 16 * 1rem);
}

.p-top-intro__divider .swiper-pagination-bullet {
  width: calc(8 / 16 * 1rem);
  height: calc(8 / 16 * 1rem);
  margin: 0;
  background: #ababab;
  opacity: 1;
}

.p-top-intro__divider.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0;
}

.p-top-intro__divider .swiper-pagination-bullet-active {
  background: #fbc400;
}

.p-top-intro__heading {
  margin-block-start: calc(158 / 16 * 1rem);
  font-size: max(32 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.29em;
}
@media screen and (max-width: 1023px) {
  .p-top-intro__heading {
    width: calc(263 / 16 * 1rem);
    margin-block-start: 0;
    margin-inline: auto;
    padding-block-start: 0;
    font-size: max(17 / 16 * 1rem, 12.75 * 1px);
    line-height: 1.75;
    letter-spacing: 0.29em;
    font-feature-settings: "palt";
  }
}

.p-top-intro__body {
  margin-block-start: calc(43 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 2.5;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 1023px) {
  .p-top-intro__body {
    width: calc(263 / 16 * 1rem);
    margin-block-start: calc(23 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 2;
    letter-spacing: 0.15em;
    font-feature-settings: "palt";
  }
}

.p-top-intro__body--sp,
.p-top-bliss__body--sp {
  display: none;
}

/* ===== information ===== */
.p-top-information {
  padding-block-end: calc(142 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-information {
    grid-area: information;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-information {
    min-height: calc(1477 / 16 * 1rem);
    padding-block-end: 0;
    overflow: hidden;
    background-color: #1e1e1e;
  }
}

.p-top-information__board {
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: calc(50% - 50vw);
  padding-block: calc(91 / 16 * 1rem) calc(73 / 16 * 1rem);
  padding-inline: calc(50vw - min(50vw, 550 / 16 * 1rem));
  background-color: #1e1e1e;
}
@media screen and (max-width: 1023px) {
  .p-top-information__board {
    margin-inline: 0;
    padding-block: calc(84 / 16 * 1rem) 0;
    padding-inline: calc(22 / 16 * 1rem);
    background-color: transparent;
  }
}

.p-top-information__sectionLabel {
  width: calc(194 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-information__sectionLabel {
    display: block;
    width: calc(120 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-information__heading {
  width: max-content;
  margin-block-start: calc(60 / 16 * 1rem);
  font-size: max(50 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: 0.2em;
  color: #c8b446;
  transform: translateY(calc(-4 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-information__heading {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(26 / 16 * 1rem);
    margin-inline: auto;
    padding-block-start: 0;
    font-size: max(27 / 16 * 1rem, 14 * 1px);
    line-height: 1.5740740741;
    letter-spacing: 0.07em;
    font-feature-settings: "palt";
    text-align: center;
    transform: none;
  }
}

.p-top-information__headingSmall {
  display: inline;
  font-size: max(38 / 16 * 1rem, 14 * 1px);
}
@media screen and (max-width: 1023px) {
  .p-top-information__headingSmall {
    display: block;
    font-size: max(19 / 16 * 1rem, 14 * 1px);
    line-height: 1.5;
    letter-spacing: 0.17em;
  }
}

.p-top-information__notice {
  margin-block-start: calc(20 / 16 * 1rem);
  font-size: 0;
  font-weight: 300;
  letter-spacing: 0;
}
@media screen and (max-width: 1023px) {
  .p-top-information__notice {
    width: calc(320 / 16 * 1rem);
    margin-block-start: calc(14 / 16 * 1rem);
    margin-inline: auto;
    white-space: normal;
    text-align: left;
  }
}

.p-top-information__noticeMain,
.p-top-information__noticeSub {
  display: block;
}
@media screen and (max-width: 1023px) {
  .p-top-information__noticeMain,
  .p-top-information__noticeSub {
    display: block;
    letter-spacing: 0;
  }
}

/* run1「受付場所：」16px / lh41(=41/16=2.5625) / ls0.25em（.ai per-run実測） */
.p-top-information__noticeLabel {
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2.5625;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__noticeLabel {
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 2.5;
    letter-spacing: 0.1em;
  }
}

/* run2「ロイヤルガーデン倉敷マンションギャラリー」20px / lh41(=41/20=2.05) / ls0.25em（.ai per-run実測） */
.p-top-information__noticeFacility {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 2.05;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__noticeFacility {
    display: block;
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
    font-size: max(17 / 16 * 1rem, 12.75 * 1px);
    line-height: 1.7647058824;
    letter-spacing: 0;
    font-feature-settings: "palt";
  }
}

/* run3（サブ注記）14px / lh24.5(=24.5/14=1.75) / ls0.05em（.ai per-run実測） */
.p-top-information__noticeSub {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.75;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__noticeSub {
    margin-block-start: calc(21 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
    letter-spacing: 0;
  }
}

.p-top-information__contentGrid {
  display: grid;
  grid-template-columns: minmax(0, calc(543 / 16 * 1rem)) calc(449 / 16 * 1rem);
  column-gap: calc(108 / 16 * 1rem);
  margin-block-start: calc(72 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-information__contentGrid {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-information__contentGrid {
    display: block;
    margin-block-start: calc(19 / 16 * 1rem);
  }
}

.p-top-information__reservationBadge {
  position: relative;
  overflow: hidden;
  display: block;
  max-width: calc(380 / 16 * 1rem);
  padding-block: calc(14 / 16 * 1rem) calc(12 / 16 * 1rem);
  border-radius: calc(26 / 16 * 1rem);
  background-color: rgb(200, 180, 70);
  color: #ffffff;
  text-decoration: none;
  text-align: center;
  transition: color 0.35s ease;
}
@media screen and (max-width: 1023px) {
  .p-top-information__reservationBadge {
    display: grid;
    place-items: center;
    width: calc(328 / 16 * 1rem);
    min-height: calc(45 / 16 * 1rem);
    margin-inline: auto;
    padding-block: 0;
    border-radius: calc(23 / 16 * 1rem);
  }
}

.p-top-information__reservationBadge::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: "";
  background-color: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s ease;
}

.p-top-information__reservationText,
.p-top-information__phoneLead,
.p-top-information__galleryName,
.p-top-information__hours,
.p-top-information__photoCaption {
  font-weight: 300;
}

.p-top-information__reservationText {
  position: relative;
  z-index: 1;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__reservationText {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.6000012258;
    letter-spacing: 0.2em;
  }
}

@media (hover: hover) {
  .p-top-information__reservationBadge:hover {
    color: #c8b450;
  }
  .p-top-information__reservationBadge:hover::before {
    transform: scaleX(1);
  }
}
.p-top-information__phoneLead {
  margin-block-start: calc(35 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.19;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__phoneLead {
    width: calc(310 / 16 * 1rem);
    margin-block-start: calc(19 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
    letter-spacing: 0.1em;
    text-align: left;
  }
}

.p-top-information__phoneRow {
  display: grid;
  grid-template-columns: calc(60 / 16 * 1rem) auto;
  align-items: center;
  column-gap: calc(8 / 16 * 1rem);
  margin-block-start: calc(27 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-information__phoneRow {
    grid-template-columns: calc(33 / 16 * 1rem) auto;
    justify-content: center;
    column-gap: calc(12 / 16 * 1rem);
    margin-block-start: calc(5 / 16 * 1rem);
  }
}

.p-top-information__phoneIcon {
  width: calc(60 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-information__phoneIcon {
    width: calc(33 / 16 * 1rem);
  }
}

.p-top-information__phoneNumber {
  font-size: max(53 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.13em;
  color: #c8b446;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-top-information__phoneNumber {
    font-size: max(35 / 16 * 1rem, 14 * 1px);
    line-height: 1.2000005701;
    letter-spacing: 0.09em;
  }
}

.p-top-information__galleryName {
  margin-block-start: calc(15 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 1.75;
  letter-spacing: 0.13em;
  white-space: nowrap;
}
@media (max-width: 1440px) {
  .p-top-information__galleryName {
    white-space: normal;
  }
}

.p-top-information__hours {
  margin-block-start: calc(10 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.14;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-top-information__hours {
    width: calc(311 / 16 * 1rem);
    margin-block-start: calc(-1 / 16 * 1rem);
    margin-inline-start: calc(10 / 16 * 1rem);
    margin-inline-end: 0;
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
    letter-spacing: 0em;
    font-feature-settings: "palt";
    text-align: left;
  }
}

.p-top-information__holyday {
	border: 1px solid #fff;
	/* color: #fff; */
	font-family: 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', 'ヒラギノ明朝 Pro', 'Hiragino Mincho Pro', 'HG明朝E', 'ＭＳ Ｐ明朝', 'MS PMincho', 'ＭＳ 明朝', 'MS Mincho', serif;
	font-size: 16px;
	line-height: 2;
	letter-spacing: 0.1em;
	margin: 50px auto 0;
	padding: 25px;
	text-align: center;
	width: 800px;
}

@media screen and (max-width: 1023px) {
	.p-top-information__holyday {
		font-size: 15px;
		margin: 35px 0 0;
		padding: 20px 15px;
		width: auto;
	}
}

.p-top-information__photoStack {
  display: grid;
}

.p-top-information__photoStack > * {
  grid-area: 1/1;
}

.p-top-information__img1 {
  width: calc(449 / 16 * 1rem);
}

.p-top-information__photoCaption {
  align-self: end;
  justify-self: start;
  margin-inline-start: calc(6 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.25;
  letter-spacing: 0.05em;
  transform: translateY(calc(-3 / 16 * 1rem));
}

/* ===== collaboration ===== */
.p-top-collaboration-mark {
  padding-block-end: calc(5 / 16 * 1rem);
  overflow: visible;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration-mark {
    grid-area: collaboration-mark;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration-mark {
    padding-block: calc(75 / 16 * 1rem) calc(11 / 16 * 1rem);
    overflow: visible;
  }
}

.p-top-collaboration-mark__logo,
.p-top-collaboration__sectionLogo {
  width: calc(217 / 16 * 1rem);
  margin-inline: auto;
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__sectionRule {
    order: -2;
    margin-block-start: calc(45 / 16 * 1rem);
    background-color: transparent;
  }
}

.p-top-collaboration-mark__logo {
  visibility: hidden;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration-mark__logo {
    visibility: visible;
    display: block;
    width: calc(109 / 16 * 1rem);
    margin-inline: auto;
    content: url("../img/top/top-information-collaboration-mark.webp");
  }
}

.p-top-collaboration {
  padding-block-start: 0;
  padding-block-end: calc(299 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration {
    grid-area: collaboration;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration {
    padding-block-start: 0;
    padding-block-end: calc(56 / 16 * 1rem);
  }
}

.p-top-collaboration__sectionLogo {
  margin-block-start: 0;
  transform: translateY(calc(-82 / 16 * 1rem));
}

.p-top-collaboration__wadaCard,
.p-top-collaboration__holdingsCard,
.p-top-collaboration__homesCard {
  display: grid;
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: calc(50% - 50vw);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaCard,
  .p-top-collaboration__holdingsCard,
  .p-top-collaboration__homesCard {
    margin-inline: 0;
  }
}

.p-top-collaboration__wadaCard {
  margin-block-start: calc(68 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaCard {
    margin-block-start: calc(27 / 16 * 1rem);
  }
}

.p-top-collaboration__holdingsCard,
.p-top-collaboration__homesCard {
  margin-block-start: calc(73 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__holdingsCard,
  .p-top-collaboration__homesCard {
    margin-block-start: calc(40 / 16 * 1rem);
  }
}

.p-top-collaboration__wadaCard > *,
.p-top-collaboration__holdingsCard > *,
.p-top-collaboration__homesCard > * {
  grid-area: 1/1;
}

.p-top-collaboration__img1,
.p-top-collaboration__img2,
.p-top-collaboration__img3 {
  width: 100%;
  aspect-ratio: 1920/700;
  object-fit: cover;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__img1,
  .p-top-collaboration__img2,
  .p-top-collaboration__img3 {
    justify-self: center;
    width: calc(338 / 16 * 1rem);
    height: calc(123 / 16 * 1rem);
    aspect-ratio: auto;
  }
}

.p-top-collaboration__wadaLogo,
.p-top-collaboration__holdingsLogo,
.p-top-collaboration__homesLogo,
.p-top-collaboration__wadaTitle,
.p-top-collaboration__wadaCaption,
.p-top-collaboration__holdingsTitle,
.p-top-collaboration__holdingsCaption,
.p-top-collaboration__homesTitle,
.p-top-collaboration__homesCaption {
  justify-self: center;
}

.p-top-collaboration__wadaLogo {
  width: calc(129 / 16 * 1rem);
  margin-block-start: calc(243 / 16 * 1rem);
  filter: drop-shadow(calc(3 / 16 * 1rem) calc(3 / 16 * 1rem) calc(4 / 16 * 1rem) rgb(0, 0, 0));
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaLogo {
    width: calc(65 / 16 * 1rem);
    margin-block-start: calc(43 / 16 * 1rem);
  }
}

.p-top-collaboration__holdingsLogo {
  width: calc(91 / 16 * 1rem);
  margin-block-start: calc(220 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__holdingsLogo {
    width: calc(45 / 16 * 1rem);
    margin-block-start: calc(39 / 16 * 1rem);
  }
}

.p-top-collaboration__homesLogo {
  width: calc(289 / 16 * 1rem);
  margin-block-start: calc(280 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__homesLogo {
    width: calc(145 / 16 * 1rem);
    margin-block-start: calc(54 / 16 * 1rem);
  }
}

.p-top-collaboration__wadaTitle,
.p-top-collaboration__holdingsTitle,
.p-top-collaboration__homesTitle {
  align-self: start;
  font-weight: 300;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaTitle,
  .p-top-collaboration__holdingsTitle,
  .p-top-collaboration__homesTitle {
    grid-area: auto;
  }
}

.p-top-collaboration__wadaTitle span,
.p-top-collaboration__holdingsTitle span,
.p-top-collaboration__homesTitle span {
  display: block;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaTitle span,
  .p-top-collaboration__holdingsTitle span,
  .p-top-collaboration__homesTitle span {
    font-feature-settings: "palt";
  }
}

/* wada line1「『ロイヤルガーデン』マンションの」18px / lh42(=42/18=2.33)（.ai per-run実測・現状一致・変更なし） */
.p-top-collaboration__wadaTitle span:first-child {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.33;
}

/* wada line2「和田コーポレーション」40px / lh55(=55/40=1.375)（.ai per-run実測）。
   font-size/line-height/letter-spacingは変更しない（repair loop1）。
   CSSのdisplay:block独立line-height積み上げだとline1/2それぞれのhalf-leading分だけ
   実際のink間隔が.ai leading(=baseline間距離)とズレる（line1 box高41.94のうちhalf-leading11.97、
   line2 box高55のうちhalf-leading7.5→積み上げると実gapは37.47pxになり、design実測のtop-to-top≈42pxより間延びして見える）。
   これをmargin-block-startで補正しink-to-inkが42pxに近づくよう調整。 */
.p-top-collaboration__wadaTitle span:nth-child(2) {
  font-size: max(40 / 16 * 1rem, 14 * 1px);
  line-height: 1.375;
  margin-block-start: calc(5 / 16 * 1rem);
}

/* holdings line1「『グレース』マンションシリーズの」18px / lh54(=54/18=3)（.ai per-run実測・現状一致・変更なし） */
.p-top-collaboration__holdingsTitle span:first-child {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 3;
}

/* holdings line2「両備ホールディングス」24px / lh41(=41/24=1.7083)（.ai per-run実測）。
   line1(18px/lh3=54)のhalf-leading18pxとline2(24px/lh1.7083=41)のhalf-leading8.5pxの差で
   実gapが44.5pxになりdesign実測top-to-top≈54pxよりタイトになる（repair loop1で判明・margin補正） */
.p-top-collaboration__holdingsTitle span:nth-child(2) {
  font-size: max(24 / 16 * 1rem, 14 * 1px);
  line-height: 1.7083;
  margin-block-start: calc(2 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__holdingsTitle span:nth-child(2) {
    font-size: max(15 / 16 * 1rem, 11.25 * 1px);
    line-height: 1.4;
    letter-spacing: 0.1em;
  }
}

/* holdings line3「まちづくりカンパニー」40px / lh41(=41/40=1.025)（.ai per-run実測）。
   同様にline2→line3のhalf-leading差分（gap33px→target41px）をmargin補正 */
.p-top-collaboration__holdingsTitle span:nth-child(3) {
  font-size: max(40 / 16 * 1rem, 14 * 1px);
  line-height: 1.025;
  margin-block-start: calc(1 / 16 * 1rem);
}

/* homes line1「注文住宅・不動産のスペシャリスト」18px / lh42(=42/18=2.33)（.ai per-run実測・現状一致・変更なし） */
.p-top-collaboration__homesTitle span:first-child {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.33;
}

/* homes line2「両備ホームズ」40px / lh82(=82/40=2.05) / ls0.6em（.ai per-run実測。base 0.3emを上書き）。
   line1(18px/lh2.33)のhalf-leading12pxとline2(40px/lh2.05)のhalf-leading21pxの差で
   実gapが51pxになりdesign実測top-to-top≈42pxより間延びして見える（repair loop1・負marginで補正） */
.p-top-collaboration__homesTitle span:nth-child(2) {
  font-size: max(40 / 16 * 1rem, 14 * 1px);
  line-height: 2.05;
  letter-spacing: 0.6em;
  margin-block-start: calc(3 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__homesTitle span:nth-child(2) {
    margin-block-start: calc(10 / 16 * 1rem);
  }
}

/* margin-block-startはline1のCSS line-boxが持つ上側half-leading分だけ実際のink位置を design frame top より
   下げてしまうため、その分を差し引いて補正（repair loop1・実測: wadaは391→box top 3452.5、design frame top
   3443.5、line1 half-leading11.97を足すとink top 3464.47で design比+20.97pxずれていた。同様に
   holdings+27.2px、homes+21.17px。フォントサイズ/行間/字間は不変、margin-block-startのみ調整）。 */
.p-top-collaboration__wadaTitle {
  margin-block-start: calc(369 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaTitle {
    margin-block-start: calc(35 / 16 * 1rem);
  }
}

.p-top-collaboration__holdingsTitle {
  margin-block-start: calc(335 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__holdingsTitle {
    margin-block-start: calc(41 / 16 * 1rem);
  }
}

.p-top-collaboration__homesTitle {
  margin-block-start: calc(335 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__homesTitle {
    margin-block-start: calc(31 / 16 * 1rem);
  }
}

.p-top-collaboration__wadaCaption,
.p-top-collaboration__holdingsCaption,
.p-top-collaboration__homesCaption {
  align-self: end;
  justify-self: end;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
  line-height: 1.75;
  transform: translate(calc(-277 / 16 * 1rem), calc(1 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaCaption,
  .p-top-collaboration__holdingsCaption,
  .p-top-collaboration__homesCaption {
    font-size: max(9 / 16 * 1rem, 9 * 1px);
    line-height: 1.5;
    transform: translate(calc(-18 / 16 * 1rem), calc(-4 / 16 * 1rem));
  }
}

.p-top-collaboration__firstPlus,
.p-top-collaboration__secondPlus {
  width: calc(53 / 16 * 1rem);
  margin-block-start: calc(73 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__firstPlus,
  .p-top-collaboration__secondPlus {
    width: calc(28 / 16 * 1rem);
    margin-block-start: calc(28 / 16 * 1rem);
  }
}

.p-top-collaboration__sectionLabel {
  width: calc(471 / 16 * 1rem);
  margin-block-start: calc(61 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__sectionLabel {
    order: -1;
    width: calc(211 / 16 * 1rem);
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline: auto;
    content: url("../img/top/top-collaboration-project-label.webp");
  }
}

.p-top-collaboration__lead {
  margin-block-start: calc(48 / 16 * 1rem);
  font-size: max(21 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.71;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__lead {
    width: calc(269 / 16 * 1rem);
    margin-block-start: calc(62 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0.01em;
    font-feature-settings: "palt";
    text-align: center;
  }
}

.p-top-collaboration__moreButton {
  margin-block-start: calc(41 / 16 * 1rem);
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__moreButton,
  .p-top-design__moreButton,
  .p-top-location__moreButton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    column-gap: calc(10.3 / 16 * 1rem);
    justify-self: center;
    width: calc(273.6 / 16 * 1rem);
    min-height: calc(44 / 16 * 1rem);
    margin-block-start: calc(16 / 16 * 1rem);
    margin-inline: auto;
    padding: 0;
    background-color: rgba(200, 180, 80, 0.6);
    font-size: 0;
    line-height: 1;
    letter-spacing: 0;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-collaboration__moreButton > span:first-child,
  .p-top-design__moreButton > span:first-child,
  .p-top-location__moreButton > span:first-child {
    width: calc(116.72 / 16 * 1rem);
    height: calc(10.21 / 16 * 1rem);
    overflow: hidden;
    background-image: url("../img/top/top-more-button-text-sp.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    color: transparent;
    transform: none;
  }
  .p-top-collaboration__moreButton .c-more-button__arrow,
  .p-top-design__moreButton .c-more-button__arrow,
  .p-top-location__moreButton .c-more-button__arrow {
    flex: 0 0 calc(19.49 / 16 * 1rem);
    width: calc(19.49 / 16 * 1rem);
    height: calc(11.54 / 16 * 1rem);
    background-image: url("../img/top/top-more-button-arrow-sp.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: none;
  }
}

/* ===== bliss ===== */
.p-top-bliss {
  padding-block: 0 calc(123 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss {
    grid-area: bliss;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-bliss {
    padding-block: 0 calc(27 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-top-bliss__inner {
  max-width: calc(1150 / 16 * 1rem);
}

.p-top-main .p-top-bliss__inner {
  max-width: calc(1150 / 16 * 1rem);
}

.p-top-bliss__eyebrow,
.p-top-bliss__edition,
.p-top-bliss__projectName {
  color: #ffffff;
  font-weight: 300;
}

.p-top-bliss__eyebrow {
  font-size: max(31 / 16 * 1rem, 14 * 1px);
  line-height: 1.3548387097;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__eyebrow {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(43 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.3125;
    letter-spacing: 0.2em;
    font-feature-settings: "palt";
  }
}

.p-top-bliss__eyebrowSmall {
  font-size: max(21 / 16 * 1rem, 14 * 1px);
  line-height: 2;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__eyebrowSmall {
    font-size: inherit;
    line-height: inherit;
  }
}

.p-top-bliss__edition {
  margin-block-start: calc(39 / 16 * 1rem);
  font-size: max(60 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__edition {
    margin-block-start: calc(13 / 16 * 1rem);
    font-size: max(24 / 16 * 1rem, 14 * 1px);
    line-height: 1;
    letter-spacing: 0.4em;
  }
}

.p-top-bliss__logo {
  width: calc(941 / 16 * 1rem);
  margin-block-start: calc(70 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__logo {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(32 / 16 * 1rem);
  }
}

.p-top-bliss__projectName {
  margin-block-start: calc(68 / 16 * 1rem);
  font-size: max(38 / 16 * 1rem, 14 * 1px);
  line-height: 1.1;
  letter-spacing: 0.4em;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__projectName {
    width: calc(207 / 16 * 1rem);
    margin-block-start: calc(33 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2.1111111111;
    letter-spacing: 0.4em;
    font-feature-settings: "palt";
  }
}

.p-top-bliss__body {
  margin-block-start: calc(78 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 2.5;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__body {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(17 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 2;
    letter-spacing: 0.1em;
    font-feature-settings: "palt";
  }
}

.p-top-bliss__bottom {
  display: block;
  margin-block-start: calc(179 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__bottom {
    margin-block-start: calc(49 / 16 * 1rem);
  }
}

.p-top-bliss__bottomFlow {
  position: relative;
}

.p-top-bliss__bottomFlow::before {
  content: "";
  position: absolute;
  top: calc(344 / 16 * 1rem);
  left: calc(25 / 16 * 1rem);
  width: calc(1100 / 16 * 1rem);
  height: calc(144 / 16 * 1rem);
  pointer-events: none;
  background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)), linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)), linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)), linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255));
  background-repeat: no-repeat;
  background-size: 1px 100%;
  background-position: 0 0, 33% 0, 67% 0, 100% 0;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__bottomFlow::before {
    display: none;
  }
}

.p-top-bliss__mark {
  width: calc(150 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__mark {
    width: calc(109 / 16 * 1rem);
  }
}

/* label/value/noteの3行は共有1100px幅・3等分（各366.667px）グリッドを使う（.ai実測: カラム中心x=593.33/960/1326.67）。
   3行別max-widthで個別中央寄せするとカラム中心がズレるため廃止し、共有コンテナ+均等grid-template-columnsに統一。
   design上は列間に実gapが無いためcolumn-gapは0（=repeat(3,1fr)がそのまま366.667pxずつになる）。 */
.p-top-bliss__featureLabels,
.p-top-bliss__featureValues,
.p-top-bliss__featureNotes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-bliss__featureLabels,
  .p-top-bliss__featureValues,
  .p-top-bliss__featureNotes {
    display: none;
  }
}

.p-top-bliss__featureLabels {
  height: calc(29 / 16 * 1rem);
  margin-block-start: calc(144 / 16 * 1rem);
}

.p-top-bliss__featureValues {
  height: calc(70 / 16 * 1rem);
  margin-block-start: calc(6 / 16 * 1rem);
}

.p-top-bliss__featureNotes {
  height: calc(24 / 16 * 1rem);
  margin-block-start: calc(1 / 16 * 1rem);
}

.p-top-bliss__featureLabels p,
.p-top-bliss__featureValues p,
.p-top-bliss__featureNotes p {
  font-weight: 300;
  text-align: center;
}

.p-top-bliss__featureLabels p {
  line-height: max(calc(29 / 16 * 1rem), 1.2em);
  letter-spacing: 0.1em;
}

.p-top-bliss__heightLabel {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
}

.p-top-bliss__schoolLabel,
.p-top-bliss__parkingLabel {
  font-size: max(25 / 16 * 1rem, 14 * 1px);
}

.p-top-bliss__featureValues p {
  white-space: nowrap;
}
@media (max-width: 1440px) {
  .p-top-bliss__featureValues p {
    white-space: normal;
  }
}

.p-top-bliss__southValue span:first-child {
  font-size: max(25 / 16 * 1rem, 14 * 1px);
  line-height: 2.4;
  letter-spacing: 0.3em;
}

.p-top-bliss__southValue span:nth-child(2) {
  font-size: max(40 / 16 * 1rem, 14 * 1px);
  line-height: 1.5;
  letter-spacing: 0.3em;
}

.p-top-bliss__parkingValue span:nth-child(2) {
  font-size: max(25 / 16 * 1rem, 14 * 1px);
  line-height: 2.8;
  letter-spacing: 0.1em;
}

.p-top-bliss__parkingValue span:first-child {
  font-size: max(58 / 16 * 1rem, 14 * 1px);
  line-height: 1.2068965517;
  letter-spacing: 0.1em;
}

.p-top-bliss__schoolValue span:first-child,
.p-top-bliss__schoolValue span:nth-child(3) {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 3.8888888889;
  letter-spacing: 0.1em;
}

.p-top-bliss__schoolValue span:nth-child(2) {
  font-size: max(58 / 16 * 1rem, 14 * 1px);
  line-height: 1.2068965517;
  letter-spacing: 0.1em;
}

.p-top-bliss__featureNotes p {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.2;
  letter-spacing: 0.1em;
}

/* ===== design / location / plan common ===== */
.p-top-design {
  display: grid;
  padding-block: calc(9 / 16 * 1rem) 0;
}
@media screen and (max-width: 1023px) {
  .p-top-design {
    grid-area: design;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-design {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding-block: 0 calc(100 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-top-design > * {
  grid-area: 1/1;
}
@media screen and (max-width: 1023px) {
  .p-top-design > * {
    grid-area: auto;
  }
}

.p-top-design__inner {
  z-index: 1;
}
@media screen and (max-width: 1023px) {
  .p-top-design__inner {
    display: contents;
  }
}

.p-top-location {
  margin-block-start: calc(-15 / 16 * 1rem);
  padding-block: 0 calc(254 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-location {
    grid-area: location;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-location {
    padding-block: 0 calc(64 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-top-plan {
  padding-block: 0 calc(127 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan {
    grid-area: plan;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-plan {
    padding-block: 0;
    overflow: hidden;
  }
}

.p-top-design__zehLead,
.p-top-design__zehTitle,
.p-top-design__zehStatus {
  text-align: center;
  font-weight: 300;
}

.p-top-design__zehLead {
  font-size: max(23 / 16 * 1rem, 14 * 1px);
  line-height: 2.77;
  letter-spacing: 0.2em;
  visibility: hidden;
}
@media screen and (max-width: 1023px) {
  .p-top-design__zehLead {
    order: 1;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.8;
    letter-spacing: 0.08em;
  }
}

.p-top-design__zehTitle {
  margin-block-start: calc(17 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.2em;
  transform: translateY(calc(-36 / 16 * 1rem));
  visibility: hidden;
}
@media screen and (max-width: 1023px) {
  .p-top-design__zehTitle {
    order: 2;
    margin-block-start: calc(8 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.7;
    letter-spacing: 0.08em;
    transform: none;
  }
}

.p-top-design__zehStatus {
  margin-block-start: calc(15 / 16 * 1rem);
  margin-inline-start: calc(220 / 16 * 1rem);
  font-size: max(29 / 16 * 1rem, 14 * 1px);
  line-height: 1.4;
  transform: translate(calc(124 / 16 * 1rem), calc(-50 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-design__zehStatus {
    order: 4;
    width: max-content;
    margin-block-start: calc(18 / 16 * 1rem);
    margin-inline-start: 0;
    margin-inline: auto;
    font-size: max(20 / 16 * 1rem, 14 * 1px);
    line-height: 1.176955;
    letter-spacing: 0.2em;
    transform: none;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-design__zehStatus::after {
    content: "";
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(23 / 16 * 1rem);
    margin-inline-start: 50%;
    border-block-start: 1px solid currentColor;
    transform: translateX(-50%);
  }
}

.p-top-design__visualStack,
.p-top-location__visualStack {
  display: grid;
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: calc(50% - 50vw);
}

.p-top-design__visualStack {
  margin-block-start: calc(146 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-design__visualStack {
    order: 6;
    height: calc(393 / 16 * 1rem);
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline: 0;
    overflow: hidden;
  }
}

.p-top-design__visualStack > *,
.p-top-location__visualStack > * {
  grid-area: 1/1;
}

.p-top-design__img1,
.p-top-location__img1 {
  width: 100%;
  aspect-ratio: 1920/800;
  object-fit: cover;
}

.p-top-design__img2 {
  justify-self: center;
  width: min(1600 / 16 * 1rem, 83vw);
}
@media screen and (max-width: 1023px) {
  .p-top-design__img2 {
    display: block;
    width: calc(532 / 16 * 1rem);
    max-width: none;
    height: calc(399 / 16 * 1rem);
    margin-block-start: calc(-1 / 16 * 1rem);
    margin-inline-start: calc(-79 / 16 * 1rem);
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center;
  }
}

.p-top-main .p-top-design__img2--sp,
.p-top-main .p-top-location__img1--sp {
  display: none;
}

.p-top-design__sectionLabel,
.p-top-location__sectionLabel,
.p-top-plan__sectionLabel {
  margin-block-start: calc(41 / 16 * 1rem);
}

.p-top-design__sectionLabel {
  width: calc(125 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-design__sectionLabel {
    order: 5;
    display: block;
    width: calc(90 / 16 * 1rem);
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline: auto;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-design__sectionRule {
    order: 5;
    margin-block-start: calc(150 / 16 * 1rem);
  }
}

.p-top-location__sectionLabel {
  width: calc(172 / 16 * 1rem);
  margin-block-start: calc(92 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-location__sectionLabel {
    order: 1;
    display: block;
    width: calc(124 / 16 * 1rem);
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-plan__sectionLabel {
  width: calc(201 / 16 * 1rem);
  margin-block-start: calc(65 / 16 * 1rem);
}

.p-top-design__lead,
.p-top-location__lead,
.p-top-plan__lead {
  max-width: calc(414 / 16 * 1rem);
  margin-block-start: calc(33 / 16 * 1rem);
  font-size: max(21 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.66;
  letter-spacing: 0;
}

.p-top-design__moreButton,
.p-top-location__moreButton,
.p-top-plan__moreButton {
  margin-block-start: calc(29 / 16 * 1rem);
}

.p-top-design__moreButton {
  transform: translateY(calc(-8 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-design__moreButton {
    order: 8;
    margin-block-start: calc(10 / 16 * 1rem);
    transform: none;
  }
}

.p-top-design__lead {
  width: max-content;
  max-width: 100%;
  letter-spacing: 0.07em;
  transform: translateY(calc(-5 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-design__lead {
    order: 7;
    width: calc(285 / 16 * 1rem);
    margin-block-start: calc(49 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
    text-align: center;
    transform: none;
  }
}

.p-top-main .p-top-design__zehBadge {
  display: block;
  z-index: 0;
  width: calc(440 / 16 * 1rem);
  margin-block-start: 0;
  margin-inline-start: calc(50vw - 276 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-main .p-top-design__zehBadge {
    order: 3;
    display: block;
    width: calc(317.5 / 16 * 1rem);
    margin-block-start: calc(-58 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-main .p-top-design__zehBadge img {
  display: block;
  width: 100%;
}

/* ===== location ===== */
.p-top-location__introBand {
  width: calc(226 / 16 * 1rem);
  padding-block-start: calc(8 / 16 * 1rem);
  background-color: rgb(200, 180, 80);
}
@media screen and (max-width: 1023px) {
  .p-top-location__introBand {
    display: none;
  }
}

.p-top-location__visualStack {
  margin-block-start: calc(258 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-location__visualStack {
    order: 2;
    position: relative;
    height: calc(358 / 16 * 1rem);
    margin-block-start: calc(34 / 16 * 1rem);
    margin-inline: 0;
    overflow: hidden;
  }
}

.p-top-location__photoGrid,
.p-top-location__captionGrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: calc(40 / 16 * 1rem);
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-location__photoGrid,
  .p-top-location__captionGrid {
    display: contents;
  }
}

.p-top-location__photoGrid {
  margin-block-start: calc(120 / 16 * 1rem);
}

.p-top-location__photoGrid img {
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-top-location__photoGrid img {
    width: calc(260 / 16 * 1rem);
    height: calc(149 / 16 * 1rem);
    margin-inline: auto;
    object-fit: cover;
  }
}

.p-top-location__captionGrid {
  margin-block-start: calc(12 / 16 * 1rem);
}

.p-top-location__captionGrid p {
  color: #ffffff;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.59;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 1023px) {
  .p-top-location__captionGrid p {
    width: calc(260 / 16 * 1rem);
    margin-block-start: calc(5 / 16 * 1rem);
    margin-inline: auto;
    color: #ffffff;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2.0714285714;
    letter-spacing: 0em;
    text-align: left;
  }
}

.p-top-location__num {
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 1023px) {
  .p-top-location__num {
    font-size: inherit;
  }
}

.p-top-location__lead {
  width: max-content;
  max-width: 100%;
  letter-spacing: 0.07em;
  transform: translateY(calc(-11 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-location__lead {
    order: 3;
    width: calc(263 / 16 * 1rem);
    margin-block-start: calc(44 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
    text-align: center;
    transform: none;
  }
}

.p-top-location__moreButton {
  transform: translateY(calc(4 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-location__moreButton {
    order: 12;
    justify-self: center;
    width: calc(274 / 16 * 1rem);
    margin-block-start: calc(50 / 16 * 1rem);
    transform: none;
  }
}

/* ===== plan ===== */
.p-top-main .p-top-plan__inner {
  max-width: calc(1920 / 16 * 1rem);
}

.p-top-plan__cardsStage {
  display: flow-root;
  padding-block: 0 calc(67 / 16 * 1rem);
  background-color: #8a8a8a;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__cardsStage {
    order: 3;
    position: relative;
    height: calc(680 / 16 * 1rem);
    margin-block-start: calc(40 / 16 * 1rem);
    padding-block: calc(38 / 16 * 1rem) 0;
    overflow: hidden;
  }
}

.p-top-plan__cards {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  max-width: calc(1332 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__cards {
    display: flex;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    margin-inline-start: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    transform: none;
    -webkit-overflow-scrolling: touch;
  }
}

.p-top-plan__card {
  flex: 0 0 calc(558 / 16 * 1rem);
  display: grid;
  height: calc(661 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__card {
    flex: 0 0 100%;
    display: block;
    width: 100%;
    height: auto;
    scroll-snap-align: center;
  }
}

/* TOP表示用のplanカードは normalized emit manifest のdisplay枠に合わせる。
   ai-1376/1375: 674.1788-(293.5988+557.7396)=-177.1596px */
.p-top-plan__card + .p-top-plan__card {
  margin-inline-start: calc(-177 / 16 * 1rem);
}

/* B-C間も normalized display枠の純正overlapに合わせる。
   ai-1374: 1049.6082-(674.1788+557.7396)=-182.3102px */
.p-top-plan__card:nth-child(3) {
  margin-inline-start: calc(-182 / 16 * 1rem);
}

.p-top-plan__img1 {
  width: calc(558 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan__img1 {
    content: url("../img/top/top-plan-img1.webp");
    width: calc(307 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-plan__img2 {
  width: calc(558 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan__img2 {
    content: url("../img/top/top-plan-img2.webp");
    width: calc(307 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-plan__img3 {
  width: calc(558 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan__img3 {
    content: url("../img/top/top-plan-img3.webp");
    width: calc(323 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-top-plan__img1,
.p-top-plan__img2,
.p-top-plan__img3,
.p-top-plan__cardHead,
.p-top-plan__layoutA,
.p-top-plan__layoutB,
.p-top-plan__layoutC,
.p-top-plan__areaA,
.p-top-plan__areaB,
.p-top-plan__areaC {
  grid-area: 1/1;
}

.p-top-plan__cardHead {
  display: grid;
  grid-template-columns: auto calc(36 / 16 * 1rem);
  justify-content: center;
  align-items: center;
  align-self: start;
  column-gap: calc(32 / 16 * 1rem);
  margin-block-start: calc(562 / 16 * 1rem);
  transform: translateX(calc(36 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-plan__cardHead {
    justify-content: center;
    column-gap: calc(8 / 16 * 1rem);
    margin-block-start: 0;
    transform: none;
  }
}

.p-top-plan__cardHead img {
  width: calc(36 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan__cardHead img {
    width: calc(24 / 16 * 1rem);
  }
}

.p-top-plan__card:nth-child(3) .p-top-plan__cardHead {
  transform: translateX(calc(62 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-top-plan__card:nth-child(3) .p-top-plan__cardHead {
    transform: none;
  }
}

.p-top-plan__typeA,
.p-top-plan__typeB,
.p-top-plan__typeC {
  display: inline-flex;
  align-items: baseline;
  column-gap: calc(7 / 16 * 1rem);
  font-size: calc(28 / 16 * 1rem);
  font-weight: 100;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__typeA,
  .p-top-plan__typeB,
  .p-top-plan__typeC {
    display: block;
    font-size: calc(34 / 16 * 1rem);
    line-height: 1;
    letter-spacing: 0.12em;
  }
}

.p-top-plan__type {
  font-size: calc(14 / 16 * 1rem);
  letter-spacing: 0.18em;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__type {
    font-size: calc(24 / 16 * 1rem);
    letter-spacing: 0.12em;
  }
}

.p-top-plan__layoutA,
.p-top-plan__layoutB,
.p-top-plan__layoutC {
  margin-block-start: calc(628 / 16 * 1rem);
  font-size: calc(24 / 16 * 1rem);
  font-weight: 100;
  line-height: 1.2;
  letter-spacing: 0.05em;
  align-self: start;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__layoutA,
  .p-top-plan__layoutB,
  .p-top-plan__layoutC {
    margin-block-start: 0;
    font-size: calc(16 / 16 * 1rem);
    line-height: 1.2;
    letter-spacing: 0.095em;
  }
}

.p-top-plan__layoutA {
  transform: translateX(calc(8 / 16 * 1rem));
}

.p-top-plan__layoutB {
  transform: none;
}

.p-top-plan__layoutC {
  transform: translateX(calc(34 / 16 * 1rem));
}
@media (max-width: 1440px) {
  .p-top-plan__layoutC {
    transform: none;
  }
}

.p-top-plan__layoutSub {
  display: inline-block;
}

.p-top-plan__areaA,
.p-top-plan__areaB,
.p-top-plan__areaC {
  margin-block-start: calc(668 / 16 * 1rem);
  font-size: calc(14 / 16 * 1rem);
  font-weight: 100;
  line-height: 1.0714285714;
  letter-spacing: 0.1em;
  align-self: start;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__areaA,
  .p-top-plan__areaB,
  .p-top-plan__areaC {
    margin-block-start: calc(6 / 16 * 1rem);
    font-size: calc(14 / 16 * 1rem);
    line-height: 2.3171214286;
    letter-spacing: 0.05em;
  }
}

.p-top-plan__areaA {
  transform: translateX(calc(10 / 16 * 1rem));
}

.p-top-plan__areaB {
  transform: translateX(calc(7 / 16 * 1rem));
}

.p-top-plan__areaC {
  transform: translateX(calc(37 / 16 * 1rem));
}

.p-top-plan__ctaLink {
  display: grid;
  width: max-content;
  width: calc(420 / 16 * 1rem);
  margin-block-start: calc(66 / 16 * 1rem);
  margin-inline-start: max(410 / 16 * 1rem, (100vw - 1100 / 16 * 1rem) / 2);
  color: #ffffff;
  text-decoration: none;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__ctaLink {
    display: contents;
  }
}

.p-top-plan__ctaLabel {
  width: calc(201 / 16 * 1rem);
  color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__ctaLabel {
    display: none;
  }
}

.p-top-plan__ctaLabel img {
  width: 100%;
}

.p-top-plan__ctaLead {
  margin-block-start: calc(34 / 16 * 1rem);
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  font-weight: 100;
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-top-plan__ctaLead {
    order: 2;
    width: calc(300 / 16 * 1rem);
    margin-block-start: calc(50 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0em;
    text-align: center;
  }
}

.p-top-plan__ctaMore {
  margin-block-start: calc(18 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-top-plan__ctaMore {
    order: 5;
    margin-block-start: calc(40 / 16 * 1rem);
    margin-inline: auto;
  }
}

@media (hover: hover) {
  .p-top-plan__ctaLink:hover .c-more-button {
    color: #c8b450;
  }
  .p-top-plan__ctaLink:hover .c-more-button::before {
    transform: scaleX(1);
  }
  .p-top-plan__ctaLink:hover .c-more-button__arrow {
    filter: invert(62%) sepia(47%) saturate(493%) hue-rotate(16deg) brightness(94%) contrast(86%);
    transform: scaleX(1.18);
  }
}
.p-top-plan__sectionLabel,
.p-top-plan__lead,
.p-top-plan__moreButton {
  display: none;
  margin-inline-start: max(410 / 16 * 1rem, (100vw - 1100 / 16 * 1rem) / 2);
}

.p-top-plan__moreButton {
  margin-block-start: calc(37 / 16 * 1rem);
}

.p-top-information__spCampaigns {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-top-information__spCampaigns {
    display: block;
    margin-block-start: calc(46 / 16 * 1rem);
  }
}

/* SP専用の補助要素（PC非表示・SPのみ表示）。DOM複製ではなく、
   PC設計に存在しない実データ（取得JSON rawText/vector検証済み）を追加した部分。
   detail: AI指示書関連/作業ログ/top-sp/ 02-acquire.md セクション順序・vectorized-text-queue.json 参照
   ※ .p-top-bliss__debutLabel / .p-top-plan__eyebrow は img 要素のため、
   単一クラスだと `.p-top-main img{display:block}`（class+type=詳細度0,1,1）に負けてPCでも表示されてしまう。
   `.p-top-main` を前置して詳細度0,2,0を確保する（PC不変を担保）。
   ※ .p-top-location__visualLabel は修正ループ2026-07-05で撤去（HTML要素ごと削除）。
   理由: top-location-img1 の object-position を右寄せに修正すると、写真自体に
   焼き込まれた「ROYAL GARDEN OIMATSU-CHO NIBANKAN」文字が画角内に入るため、
   別レイヤーのラベル画像を重ねると文字が二重表示になっていた。 */
.p-top-main .p-top-bliss__debutLabel,
.p-top-bliss__spSpecRows,
.p-top-main .p-top-plan__eyebrow {
  display: none;
}

/* gallery-open は共通部品化（_p-gallery-open.scss / .p-gallery-open）。トップ修正指示３[12] */
@media screen and (max-width: 1023px) {
  .p-gallery-open {
    grid-area: gallery;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-fv__slider, .p-top-fv__slider .swiper-wrapper, .p-top-fv__slider .swiper-slide, .p-top-fv__img1, .p-top-fv__img2, .p-top-fv__img3 {
    width: 100%;
    height: calc(650 / 16 * 1rem);
    aspect-ratio: auto;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-fv__img1 {
    width: calc(655 / 16 * 1rem);
    max-width: none;
    height: calc(655 / 16 * 1rem);
    margin-block-start: calc(-5 / 16 * 1rem);
    margin-inline-start: calc(-127 / 16 * 1rem);
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-top-fv__img1 {
    width: 100%;
    height: calc(650 / 16 * 1rem);
    margin-block-start: 0;
    margin-inline-start: 0;
  }
}
@media screen and (max-width: 1023px) {
  .p-top-main .p-top-fv__slide3En {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-fv__badges, .p-top-main .p-top-fv__badgeLogo, .p-top-main .p-top-fv__badgeProject, .p-top-main .p-top-fv__parkingBadge, .p-top-fv__parkingFeeValue, .p-top-fv__parkingFeeLabel, .p-top-fv__parkingRatioValue, .p-top-fv__parkingRatioLabel, .p-top-fv__photoCaption {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__galleryName, .p-top-information__photoStack {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__spCampaignTitle, .p-top-information__spSubsidy, .p-top-information__spParking {
    width: auto;
    margin-inline: 0;
    border: none;
    background: none;
    padding-block: 0;
    color: #ffffff;
    font-weight: 300;
    text-align: center;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.5;
    letter-spacing: 0.15em;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__spSubsidy {
    margin-block-start: calc(37 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__spParking {
    margin-block-start: calc(35 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__campaignImg, .p-top-information__subsidyImg {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-inline: auto;
    margin-block-start: calc(10 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__campaignImg {
    margin-block-start: calc(12 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__parkingBox {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-inline: auto;
    margin-block-start: calc(10 / 16 * 1rem);
    border: calc(2 / 16 * 1rem) solid rgb(255, 255, 255);
    padding-block: calc(16 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__parkingRow {
    display: grid;
    grid-template-columns: calc(80 / 16 * 1rem) 1fr;
    align-items: center;
    column-gap: calc(16 / 16 * 1rem);
    padding-inline: calc(24 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__parkingRow + .p-top-information__parkingRow {
    margin-block-start: calc(14 / 16 * 1rem);
    padding-block-start: calc(14 / 16 * 1rem);
    border-top: 1px solid rgba(255, 255, 255, 0);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-information__parkingLabel, .p-top-information__parkingValue {
    display: block;
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-intro__markSlot {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-intro__body--pc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-intro__body--sp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-collaboration__sectionLogo {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaTitle span:first-child, .p-top-collaboration__holdingsTitle span:first-child, .p-top-collaboration__homesTitle span:first-child {
    font-size: max(13 / 16 * 1rem, 10 * 1px);
    line-height: 1.6153846154;
    letter-spacing: 0.1em;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__wadaTitle span:nth-child(2), .p-top-collaboration__holdingsTitle span:nth-child(3), .p-top-collaboration__homesTitle span:nth-child(2) {
    font-size: max(24 / 16 * 1rem, 14 * 1px);
    line-height: 1.1458333333;
    letter-spacing: 0.1em;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__firstPlus {
    margin-block-start: calc(18 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-collaboration__moreButton, .p-top-design__moreButton, .p-top-location__moreButton {
    align-items: center;
    min-height: calc(44 / 16 * 1rem);
    padding-block: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-bliss__debutLabel {
    display: block;
    width: calc(79 / 16 * 1rem);
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline: auto;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__projectNameLine {
    line-height: calc(38 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__projectNameLine--large {
    font-size: max(26 / 16 * 1rem, 14 * 1px);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__body--pc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__body--sp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__inner::before {
    content: "";
    display: block;
    width: calc(40 / 16 * 1rem);
    height: calc(2 / 16 * 1rem);
    margin-block-start: calc(42 / 16 * 1rem);
    margin-inline: auto;
    background-color: #ffffff;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__spSpecRows {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-inline: auto;
    margin-block-start: calc(73 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specRow {
    padding-bottom: calc(25 / 16 * 1rem);
    padding-block-start: calc(20 / 16 * 1rem);
    border-top: 1px solid rgb(255, 255, 255);
    text-align: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specRow + .p-top-bliss__specRow {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specRow:nth-child(2) {
    margin-block-start: calc(4 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specRow:last-child {
    border-bottom: 1px solid rgb(255, 255, 255);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specTitle {
    font-size: max(22 / 16 * 1rem, 14 * 1px);
    font-weight: 300;
    letter-spacing: 0.05em;
    line-height: 1.6363636364;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specTitleNumber {
    font-size: max(36 / 16 * 1rem, 14 * 1px);
    line-height: 1.6666666667;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specNote {
    margin-block-start: calc(-10 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    font-weight: 300;
    line-height: 2.25;
    letter-spacing: 0.1em;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specValue {
    margin-bottom: calc(-19 / 16 * 1rem);
    margin-block-start: 0;
    font-weight: 300;
    letter-spacing: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specValueLead {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 3.75;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specValueNumber {
    font-size: max(56 / 16 * 1rem, 14 * 1px);
    line-height: 1.0714285714;
    vertical-align: 0em;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specValueMinute {
    font-size: max(25 / 16 * 1rem, 14 * 1px);
    line-height: 2.4;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-bliss__specValueDistance {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 4.2857142857;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-design__img1 {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-design__img2--pc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-design__img2--sp {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    margin-block-start: 0;
    margin-inline-start: 0;
    object-fit: cover;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__inner::before {
    content: "";
    order: 0;
    display: block;
    width: calc(40 / 16 * 1rem);
    height: calc(2 / 16 * 1rem);
    margin-block-start: calc(46 / 16 * 1rem);
    margin-inline: auto;
    background-color: #ffffff;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__img1 {
    width: calc(636 / 16 * 1rem);
    max-width: none;
    height: calc(405 / 16 * 1rem);
    margin-block-start: calc(-3 / 16 * 1rem);
    margin-inline-start: calc(-261 / 16 * 1rem);
    aspect-ratio: auto;
    object-fit: cover;
    object-position: right center;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-location__img1--pc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-location__img1--sp {
    display: block;
    width: 100%;
    max-width: none;
    height: 100%;
    margin-block-start: 0;
    margin-inline-start: 0;
    object-fit: cover;
    object-position: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__img3 {
    order: 4;
    margin-block-start: calc(22 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__stationCaption {
    order: 5;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__img4 {
    order: 6;
    margin-block-start: calc(19 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__schoolCaption {
    order: 7;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__img5 {
    order: 8;
    margin-block-start: calc(14 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__storeCaption {
    order: 9;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__img6 {
    order: 10;
    margin-block-start: calc(24 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-location__bikanCaption {
    order: 11;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__sectionRule {
    order: 0;
    margin-block-start: calc(38 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-main .p-top-plan__eyebrow {
    order: 1;
    display: block;
    width: calc(61 / 16 * 1rem);
    margin-block-start: calc(22 / 16 * 1rem);
    margin-inline: auto;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__navNext {
    position: absolute;
    top: 44%;
    right: calc(26 / 16 * 1rem);
    transform: translate(50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(40 / 16 * 1rem);
    height: calc(40 / 16 * 1rem);
    padding: 0;
    border: none;
    background: none;
    color: #ffffff;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    font-size: max(22 / 16 * 1rem, 14 * 1px);
    line-height: 1;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__navDots {
    order: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: calc(6 / 16 * 1rem);
    margin-block-start: calc(17 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__navDot {
    width: calc(9 / 16 * 1rem);
    height: calc(9 / 16 * 1rem);
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: #ababab;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__navDot.is-current {
    background-color: rgb(200, 180, 80);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__card + .p-top-plan__card, .p-top-plan__card:nth-child(3) {
    margin-inline-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__typeLetter {
    font-size: max(42 / 16 * 1rem, 14 * 1px);
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__layoutA, .p-top-plan__layoutB, .p-top-plan__layoutC, .p-top-plan__areaA, .p-top-plan__areaB, .p-top-plan__areaC {
    text-align: center;
    transform: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__layoutMain {
    font-size: max(24 / 16 * 1rem, 14 * 1px);
    line-height: 1.2;
  }
}

@media screen and (max-width: 1023px) {
  .p-top-plan__areaNum {
    font-size: max(24 / 16 * 1rem, 14 * 1px);
    line-height: 1.3516541667;
  }
}

/* /p-top: TOP page */
/* ===== p-collaboration: lower page ===== */
.p-collaboration-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-collaboration-main img {
  display: block;
}

.p-collaboration-main h1,
.p-collaboration-main h2,
.p-collaboration-main p {
  font-weight: 300;
  overflow-wrap: normal;
}

.p-collaboration-section {
  position: relative;
}

.p-collaboration-section__stage {
  position: relative;
  width: 100%;
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-section__stage {
    display: block;
    width: 100%;
    max-width: calc(375 / 16 * 1rem);
    min-height: 0;
    padding: 0;
  }
}

.p-collaboration__abs {
  position: absolute;
  z-index: 2;
}
@media screen and (max-width: 1023px) {
  .p-collaboration__abs {
    position: absolute;
    width: auto;
    margin: 0;
  }
}

/* rule-exception: COLLABORATION_PC_VALUE_LOCK_001
   Company/message/gallery sections use section-spanning lines, masked photos,
   and text/photo overlays with exact coordinate relationships. FV and intro
   are kept in grid/flex flow; all readable text remains DOM, and photos/logos/
   lines are isolated AI assets from text-value-lock and assets.targets. */
.p-collaboration-hero {
  position: relative;
  overflow: hidden;
  background-color: #2d2d2d;
}

.p-collaboration-hero__stage {
  display: grid;
  min-height: calc(1080 / 16 * 1rem);
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-hero__stage {
    display: grid;
    min-height: calc(600 / 16 * 1rem);
    padding: 0;
  }
}

.p-collaboration-hero__bg {
  grid-area: 1/1;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-hero__bg {
    width: calc(375 / 16 * 1rem);
    height: calc(600 / 16 * 1rem);
    max-width: none;
    object-fit: fill;
    content: url("../img/collaboration/collaboration-hero-bg-sp.webp");
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-collaboration-hero__stage {
    width: 100%;
    max-width: none;
    height: calc(600 / 16 * 1rem);
    min-height: 0;
  }
  .p-collaboration-hero__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.p-collaboration-hero__title {
  grid-area: 1/1;
  z-index: 2;
  align-self: start;
  justify-self: center;
  width: calc(933 / 16 * 1rem);
  margin-block-start: calc(462 / 16 * 1rem);
  font-size: calc(50 / 16 * 1rem);
  line-height: 1.75;
  letter-spacing: 0.2em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-hero__title {
    width: calc(296 / 16 * 1rem);
    margin-block-start: calc(437 / 16 * 1rem);
    font-size: calc(28 / 16 * 1rem);
    line-height: 1.1428571429;
    letter-spacing: 0.18em;
    white-space: nowrap;
  }
}

.p-collaboration-hero__subtitle {
  grid-area: 1/1;
  z-index: 2;
  align-self: start;
  justify-self: center;
  width: calc(531 / 16 * 1rem);
  margin-block-start: calc(542 / 16 * 1rem);
  font-size: calc(14 / 16 * 1rem);
  line-height: 1;
  letter-spacing: 0.4em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-hero__subtitle {
    width: calc(248 / 16 * 1rem);
    margin-block-start: calc(512 / 16 * 1rem);
    font-size: calc(9 / 16 * 1rem);
    line-height: 3.1111111111;
    letter-spacing: 0.38em;
    white-space: nowrap;
  }
}

.p-collaboration-intro__stage {
  min-height: calc(1180 / 16 * 1rem);
  padding-block-start: calc(253 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-intro__stage {
    min-height: calc(800 / 16 * 1rem);
    padding-block-start: calc(72 / 16 * 1rem);
  }
}

.p-collaboration-intro__logo {
  width: calc(217 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-intro__logo {
    width: calc(147 / 16 * 1rem);
  }
}

.p-collaboration-intro__title {
  width: max-content;
  margin-block-start: calc(57 / 16 * 1rem);
  margin-inline: auto;
  font-size: calc(28 / 16 * 1rem);
  line-height: 2;
  letter-spacing: 0.29em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-intro__title {
    width: calc(320 / 16 * 1rem);
    margin-block-start: calc(55 / 16 * 1rem);
    font-size: calc(17.8 / 16 * 1rem);
    line-height: 1.9382022472;
    letter-spacing: 0.04em;
    text-align: center;
    white-space: nowrap;
  }
}

.p-collaboration-intro__lead {
  width: max-content;
  margin-block-start: calc(28 / 16 * 1rem);
  margin-inline: auto;
  font-size: calc(16 / 16 * 1rem);
  line-height: 2.5;
  letter-spacing: 0.15em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-intro__lead {
    width: max-content;
    margin-block-start: calc(41 / 16 * 1rem);
    font-size: calc(14 / 16 * 1rem);
    line-height: 1.9357142857;
    letter-spacing: 0.1em;
    text-align: center;
    white-space: nowrap;
  }
}

.p-collaboration-company {
  overflow: visible;
}

.p-collaboration-company__stage--wada {
  min-height: calc(1560 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__stage--wada {
    min-height: calc(1460 / 16 * 1rem);
  }
}

.p-collaboration-company__stage--ryobi-hd {
  min-height: calc(1580 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__stage--ryobi-hd {
    min-height: calc(1660 / 16 * 1rem);
  }
}

.p-collaboration-company__stage--ryobi-homes {
  min-height: calc(2040 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__stage--ryobi-homes {
    min-height: calc(1480 / 16 * 1rem);
  }
}

.p-collaboration-company__line {
  z-index: 1;
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__line {
    display: block;
    width: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.35);
    opacity: 1;
  }
}

.js-collaboration-line {
  --line-progress: 0;
  clip-path: polygon(0 0, 100% 0, 100% calc(var(--line-progress) * 100%), 0 calc(var(--line-progress) * 100%));
  opacity: 0.65;
  transition: opacity 0.35s ease;
}

.js-collaboration-line.is-collaboration-line-visible {
  opacity: 1;
}

.js-collaboration-reveal {
  opacity: 0;
  translate: 0 calc(18 / 16 * 1rem);
  transition: opacity 0.7s ease, translate 0.7s ease;
}

.js-collaboration-reveal.is-collaboration-visible {
  opacity: 1;
  translate: 0;
}

.p-collaboration-company__line--wada {
  top: calc(188 / 16 * 1rem);
  left: calc(470 / 16 * 1rem);
  width: calc(549 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__line--wada {
    top: calc(162.3214 / 16 * 1rem);
    left: calc(53.854 / 16 * 1rem);
    width: 0;
    max-width: none;
    height: calc(1298.3983 / 16 * 1rem);
  }
}

.p-collaboration-company__line--ryobi-hd {
  top: calc(361 / 16 * 1rem);
  left: calc(1019 / 16 * 1rem);
  width: calc(431 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__line--ryobi-hd {
    top: calc(179.5796 / 16 * 1rem);
    left: calc(53.854 / 16 * 1rem);
    width: 0;
    max-width: none;
    height: calc(1476.2059 / 16 * 1rem);
  }
}

.p-collaboration-company__line--ryobi-homes {
  top: calc(739 / 16 * 1rem);
  left: calc(587 / 16 * 1rem);
  width: calc(864 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__line--ryobi-homes {
    top: calc(162.2439 / 16 * 1rem);
    left: calc(53.854 / 16 * 1rem);
    width: 0;
    max-width: none;
    height: calc(1371.3 / 16 * 1rem);
  }
}

.p-collaboration-company__photo {
  z-index: 2;
  object-fit: cover;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo {
    height: auto;
    object-fit: contain;
  }
}

.p-collaboration-company__photo--wada-main {
  top: calc(96 / 16 * 1rem);
  left: calc(1100 / 16 * 1rem);
  width: calc(480 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--wada-main {
    top: calc(635.5458 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-wada-main-sp.webp");
  }
}

.p-collaboration-company__photo--wada-sub1 {
  top: calc(690 / 16 * 1rem);
  left: calc(510 / 16 * 1rem);
  width: calc(490 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--wada-sub1 {
    top: calc(891.428 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-wada-sub-1-sp.webp");
  }
}

.p-collaboration-company__photo--wada-sub2 {
  top: calc(922 / 16 * 1rem);
  left: calc(1100 / 16 * 1rem);
  width: calc(820 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--wada-sub2 {
    top: calc(1112.3915 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-wada-sub-2-sp.webp");
  }
}

.p-collaboration-company__photo--ryobi-main {
  top: calc(39 / 16 * 1rem);
  left: calc(358 / 16 * 1rem);
  width: calc(510 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--ryobi-main {
    top: calc(712.1468 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-hd-main-sp.webp");
  }
}

.p-collaboration-company__photo--ryobi-sub1 {
  top: calc(852 / 16 * 1rem);
  left: 0;
  width: calc(800 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--ryobi-sub1 {
    top: calc(1096.4155 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-hd-sub-1-sp.webp");
  }
}

.p-collaboration-company__photo--ryobi-sub2 {
  top: calc(950 / 16 * 1rem);
  left: calc(1060 / 16 * 1rem);
  width: calc(500 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--ryobi-sub2 {
    top: calc(1266.8938 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-hd-sub-2-sp.webp");
  }
}

.p-collaboration-company__photo--homes-main {
  top: calc(92 / 16 * 1rem);
  left: calc(410 / 16 * 1rem);
  width: calc(950 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--homes-main {
    top: calc(673.36 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-homes-main-sp.webp");
  }
}

.p-collaboration-company__photo--homes-sub1 {
  top: calc(697 / 16 * 1rem);
  left: calc(350 / 16 * 1rem);
  width: calc(450 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--homes-sub1 {
    top: calc(856.3116 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-homes-sub-1-sp.webp");
  }
}

.p-collaboration-company__photo--homes-sub2 {
  top: calc(1238 / 16 * 1rem);
  left: calc(1050 / 16 * 1rem);
  width: calc(560 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__photo--homes-sub2 {
    top: calc(1201.702 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    width: calc(270 / 16 * 1rem);
    content: url("../img/collaboration/collaboration-ryobi-homes-sub-2-sp.webp");
  }
}

.p-collaboration-company__en {
  font-size: calc(60 / 16 * 1rem);
  line-height: 1;
  color: #ffffff;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__en {
    width: auto;
    font-size: calc(44 / 16 * 1rem);
    line-height: 1.2727272727;
    letter-spacing: 0.1em;
    text-align: left;
  }
}

.p-collaboration-company__en--wada {
  display: flex;
  align-items: flex-end;
  column-gap: calc(36 / 16 * 1rem);
  top: calc(98 / 16 * 1rem);
  left: calc(410 / 16 * 1rem);
  width: calc(546 / 16 * 1rem);
  letter-spacing: 0.22em;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__en--wada {
    display: block;
    top: calc(65.6948 / 16 * 1rem);
    left: calc(23.5791 / 16 * 1rem);
    width: calc(197 / 16 * 1rem);
    letter-spacing: 0.1em;
  }
}

.p-collaboration-company__en-subword {
  display: block;
  margin-block-end: 0;
  font-size: calc(28 / 16 * 1rem);
  line-height: 2;
  letter-spacing: 0.22em;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__en-subword {
    margin: 0;
    font-size: calc(20 / 16 * 1rem);
    line-height: 1.177;
    letter-spacing: 0.22em;
    transform: none;
  }
}

.p-collaboration-company__en--ryobi-hd {
  top: calc(226 / 16 * 1rem);
  left: calc(961 / 16 * 1rem);
  width: calc(419 / 16 * 1rem);
  letter-spacing: 0.29em;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__en--ryobi-hd {
    top: calc(34.6724 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(250 / 16 * 1rem);
    letter-spacing: 0.1em;
  }
}

.p-collaboration-company__en--ryobi-homes {
  top: calc(646 / 16 * 1rem);
  left: calc(907 / 16 * 1rem);
  width: calc(585 / 16 * 1rem);
  letter-spacing: 0.27em;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__en--ryobi-homes {
    top: calc(36.6206 / 16 * 1rem);
    left: calc(29.2856 / 16 * 1rem);
    width: calc(180 / 16 * 1rem);
    line-height: 1.2727272727;
    letter-spacing: 0.1em;
    white-space: normal;
  }
}

.p-collaboration-company__suben {
  font-size: calc(28 / 16 * 1rem);
  line-height: 2;
  letter-spacing: 0.29em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__suben {
    top: calc(99.5117 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(188 / 16 * 1rem);
    font-size: calc(20 / 16 * 1rem);
    line-height: 1.5;
    letter-spacing: 0.1em;
    text-align: left;
  }
}

.p-collaboration-company__suben--ryobi-hd {
  top: calc(300 / 16 * 1rem);
  left: calc(961 / 16 * 1rem);
  width: calc(531 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__suben--ryobi-hd {
    top: calc(99.5117 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(188 / 16 * 1rem);
  }
}

.p-collaboration-company__summary {
  display: grid;
  align-items: start;
}

.p-collaboration-company__summary--wada {
  top: calc(256 / 16 * 1rem);
  left: calc(460 / 16 * 1rem);
  width: calc(476 / 16 * 1rem);
  grid-template-columns: calc(20 / 16 * 1rem) 1fr;
  column-gap: calc(30 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--wada {
    top: calc(230.1682 / 16 * 1rem);
    left: calc(43.854 / 16 * 1rem);
  }
}

.p-collaboration-company__summary--ryobi-hd {
  top: calc(456 / 16 * 1rem);
  left: calc(1010 / 16 * 1rem);
  width: calc(421 / 16 * 1rem);
  grid-template-columns: calc(20 / 16 * 1rem) 1fr;
  column-gap: calc(30 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd {
    top: calc(228.6968 / 16 * 1rem);
    left: calc(43.6315 / 16 * 1rem);
  }
}

.p-collaboration-company__summary--ryobi-homes {
  top: calc(774 / 16 * 1rem);
  left: calc(960 / 16 * 1rem);
  width: calc(510 / 16 * 1rem);
  grid-template-columns: calc(450 / 16 * 1rem) calc(20 / 16 * 1rem);
  column-gap: calc(30 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-homes {
    top: calc(215.8862 / 16 * 1rem);
    left: calc(43.6315 / 16 * 1rem);
  }
}

.p-collaboration-company__dot {
  display: block;
  width: calc(20 / 16 * 1rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #ffffff;
}

.p-collaboration-company__summary--wada .p-collaboration-company__dot {
  margin-block-start: calc(61 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--wada .p-collaboration-company__dot {
    margin-block-start: calc(60.8685 / 16 * 1rem);
  }
}

.p-collaboration-company__summary--ryobi-hd .p-collaboration-company__dot {
  margin-block-start: calc(92 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__dot {
    margin-block-start: calc(99.7735 / 16 * 1rem);
  }
}

.p-collaboration-company__summary--ryobi-homes .p-collaboration-company__dot {
  grid-column: 2;
  margin-block-start: calc(58 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-homes .p-collaboration-company__dot {
    margin-block-start: calc(35.44 / 16 * 1rem);
  }
}

.p-collaboration-company__heading {
  font-size: calc(25 / 16 * 1rem);
  line-height: 2.08;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__heading {
    grid-column: 2;
    grid-row: 1;
    font-size: calc(16 / 16 * 1rem);
    line-height: 1.375;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
}

.p-collaboration-company__headingLead,
.p-collaboration-company__headingName {
  display: block;
}

.p-collaboration-company__headingName {
  font-size: calc(33 / 16 * 1rem);
  line-height: 1.5757575758;
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__headingNameLine {
    display: block;
  }
}

.p-collaboration-company__summary--ryobi-homes .p-collaboration-company__heading {
  grid-column: 1;
  grid-row: 1;
  text-align: right;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-homes .p-collaboration-company__heading {
    grid-column: 2;
    text-align: left;
  }
}

.p-collaboration-company__body {
  width: calc(450 / 16 * 1rem);
  font-size: calc(16 / 16 * 1rem);
  line-height: 2;
  letter-spacing: 0.1em;
  text-align: justify;
  text-wrap: auto;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__body {
    width: calc(270 / 16 * 1rem);
    max-width: calc(270 / 16 * 1rem);
    font-size: calc(16 / 16 * 1rem);
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: left;
    white-space: nowrap;
  }
}

.p-collaboration-company__body--wada {
  top: calc(392 / 16 * 1rem);
  left: calc(510 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__body--wada {
    top: calc(340.6281 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    font-size: calc(12.85 / 16 * 1rem);
    line-height: 2.1789883268;
    letter-spacing: 0.05em;
  }
}

.p-collaboration-company__body--ryobi-hd {
  top: calc(682 / 16 * 1rem);
  left: calc(1060 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__body--ryobi-hd {
    top: calc(377.5303 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    font-size: calc(15 / 16 * 1rem);
    line-height: 2.1333333333;
    letter-spacing: 0;
  }
}

.p-collaboration-company__body--ryobi-homes {
  top: calc(911 / 16 * 1rem);
  left: calc(960 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__body--ryobi-homes {
    top: calc(309.4373 / 16 * 1rem);
    left: calc(82.5 / 16 * 1rem);
    font-size: calc(14.37 / 16 * 1rem);
    line-height: 2.226861517;
  }
}

.p-collaboration-company__caption {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  font-size: calc(14 / 16 * 1rem);
  line-height: 1.75;
  letter-spacing: 0;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption {
    display: block;
    width: auto;
    font-size: calc(12 / 16 * 1rem);
    line-height: 1.75;
  }
}

.p-collaboration-company__caption--wada-main {
  top: calc(795 / 16 * 1rem);
  left: calc(1360 / 16 * 1rem);
  width: calc(210 / 16 * 1rem);
  text-align: right;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--wada-main {
    top: calc(864.8 / 16 * 1rem);
    left: calc(162.5615 / 16 * 1rem);
    width: calc(180 / 16 * 1rem);
  }
}

.p-collaboration-company__caption--wada-sub1 {
  top: calc(1053 / 16 * 1rem);
  left: calc(781 / 16 * 1rem);
  width: calc(210 / 16 * 1rem);
  text-align: right;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--wada-sub1 {
    top: calc(1084.7627 / 16 * 1rem);
    left: calc(163.9204 / 16 * 1rem);
    width: calc(180 / 16 * 1rem);
  }
}

.p-collaboration-company__caption--wada-sub2 {
  top: calc(1388 / 16 * 1rem);
  left: calc(1106 / 16 * 1rem);
  width: calc(257 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--wada-sub2 {
    top: calc(1253.8633 / 16 * 1rem);
    left: calc(91.582 / 16 * 1rem);
    width: calc(220 / 16 * 1rem);
  }
}

.p-collaboration-company__caption--ryobi-main {
  top: calc(717 / 16 * 1rem);
  left: calc(372 / 16 * 1rem);
  width: calc(196 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--ryobi-main {
    top: calc(1066.0986 / 16 * 1rem);
    left: calc(90.3789 / 16 * 1rem);
    width: calc(168 / 16 * 1rem);
  }
}

.p-collaboration-company__caption--ryobi-sub2 {
  top: calc(1225 / 16 * 1rem);
  left: calc(1355 / 16 * 1rem);
  width: calc(196 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--ryobi-sub2 {
    top: calc(1238.1719 / 16 * 1rem);
    left: calc(88.8374 / 16 * 1rem);
    width: calc(168 / 16 * 1rem);
  }
}

.p-collaboration-company__caption--ryobi-sub1 {
  top: calc(1310 / 16 * 1rem);
  left: calc(663 / 16 * 1rem);
  width: calc(126 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__caption--ryobi-sub1 {
    top: calc(1444.9238 / 16 * 1rem);
    left: calc(238.6724 / 16 * 1rem);
    width: calc(108 / 16 * 1rem);
  }
}

.p-collaboration-message__stage {
  min-height: calc(1120 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-message__stage {
    min-height: calc(760 / 16 * 1rem);
  }
}

.p-collaboration-message__dot {
  top: calc(30 / 16 * 1rem);
  left: calc(578 / 16 * 1rem);
  z-index: 3;
  width: calc(20 / 16 * 1rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-message__dot {
    display: none;
  }
}

.p-collaboration-message__text {
  top: calc(29 / 16 * 1rem);
  left: calc(623 / 16 * 1rem);
  z-index: 3;
  width: calc(854 / 16 * 1rem);
  font-size: calc(28 / 16 * 1rem);
  line-height: 2;
  letter-spacing: 0.29em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-message__text {
    top: calc(71.6836 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(305 / 16 * 1rem);
    font-size: calc(19 / 16 * 1rem);
    line-height: 2;
    letter-spacing: 0.05em;
    text-align: left;
    white-space: nowrap;
  }
}

.p-collaboration-message__bg {
  top: calc(294 / 16 * 1rem);
  left: 0;
  z-index: 1;
  width: calc(1920 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-collaboration-message__bg {
    top: calc(199.3432 / 16 * 1rem);
    left: 0;
    width: calc(375 / 16 * 1rem);
    max-width: none;
    margin: 0;
    content: url("../img/collaboration/collaboration-message-bg-sp.webp");
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__en--wada span:first-child {
    display: block;
    line-height: 1.25;
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary, .p-collaboration-company__summary--wada, .p-collaboration-company__summary--ryobi-hd, .p-collaboration-company__summary--ryobi-homes {
    width: calc(309 / 16 * 1rem);
    grid-template-columns: calc(20 / 16 * 1rem) calc(270 / 16 * 1rem);
    column-gap: calc(18.646 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__dot, .p-collaboration-company__summary--wada .p-collaboration-company__dot, .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__dot, .p-collaboration-company__summary--ryobi-homes .p-collaboration-company__dot {
    grid-column: 1;
    grid-row: 1;
    width: calc(20 / 16 * 1rem);
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__headingName {
    margin-block-start: calc(11 / 16 * 1rem);
    font-size: calc(27 / 16 * 1rem);
    line-height: 1.2592592593;
  }
}

.p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingName {
  font-size: calc(33 / 16 * 1rem);
  line-height: 1.4848484848;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingName {
    font-size: calc(20 / 16 * 1rem);
    line-height: 1.8;
    letter-spacing: 0;
  }
}

.p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingNameLine--ryobi-hd {
  font-size: calc(27 / 16 * 1rem);
  line-height: 1.8148148148;
}
@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingNameLine--ryobi-hd {
    font-size: inherit;
    line-height: inherit;
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingNameLine--ryobi-company {
    font-size: calc(27 / 16 * 1rem);
    line-height: 1.3333333333;
  }
}

@media screen and (max-width: 1023px) {
  .p-collaboration-company__summary--ryobi-hd .p-collaboration-company__headingLead {
    font-size: calc(16 / 16 * 1rem);
    line-height: 1.5;
    letter-spacing: 0;
  }
}

.p-design-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-design-main img {
  display: block;
  height: auto;
}

.p-design-main :where(h1, h2, p) {
  margin: 0;
  font-weight: 300;
}

.p-design-main :where(figure) {
  margin: 0;
}

.p-design-section {
  position: relative;
}

.p-design-section__stage {
  position: relative;
  width: 100%;
  max-width: calc(1920 / 16 * 1rem);
  margin-inline: auto;
}

.p-design-section__inner {
  max-width: calc(1920 / 16 * 1rem);
  padding-inline: calc(160 / 16 * 1rem);
}

.p-design-section-title {
  display: block;
  text-align: center;
  color: #ffffff;
}

.p-design-section-title__en {
  display: block;
}

.p-design-section-title__en picture,
.p-design-section-title__en img {
  display: block;
  width: 100%;
  height: auto;
}

.p-design-section-title--left {
  text-align: left;
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--left {
    text-align: left;
  }
}

.p-design-section-title--exterior .p-design-section-title__en {
  width: calc(380 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--exterior .p-design-section-title__en {
    width: calc(203.5747 / 16 * 1rem);
  }
}

.p-design-section-title--life .p-design-section-title__en {
  width: calc(426 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--life .p-design-section-title__en {
    width: calc(273.1719 / 16 * 1rem);
    margin-inline-start: calc(1.9336 / 16 * 1rem);
    margin-inline-end: 0;
  }
}

.p-design-section-title--landscape .p-design-section-title__en {
  width: calc(425 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--landscape .p-design-section-title__en {
    width: calc(227.3252 / 16 * 1rem);
  }
}

.p-design-section-title--grand .p-design-section-title__en {
  width: calc(385 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--grand .p-design-section-title__en {
    width: calc(205.8584 / 16 * 1rem);
  }
}

.p-design-section-title--hall .p-design-section-title__en {
  width: calc(348 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-section-title--hall .p-design-section-title__en {
    width: calc(185.9976 / 16 * 1rem);
  }
}

.p-design-caption {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.1667;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-design-caption {
    font-size: max(10 / 16 * 1rem, 10 * 1px);
    line-height: 1.50361;
  }
}

.p-design-copy {
  width: calc(620 / 16 * 1rem);
  margin-inline-start: calc(250 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-copy {
    width: 100%;
    margin-inline-start: 0;
  }
}

.p-design-copy__lead {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 2;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 1023px) {
  .p-design-copy__lead {
    font-size: max(17 / 16 * 1rem, 12.75 * 1px);
    line-height: 1.2462058824;
  }
}

.p-design-copy__body {
  margin-block-start: calc(18 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2.4375;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1023px) {
  .p-design-copy__body {
    font-size: max(12.5 / 16 * 1rem, 10 * 1px);
    line-height: 2.02988;
    letter-spacing: 0.01em;
  }
}

.p-design-concept {
  padding-block-end: calc(231 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-concept {
    padding-block-end: calc(98.3 / 16 * 1rem);
  }
}

.p-design-concept__hero {
  display: grid;
  max-width: none;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__hero {
    height: calc(600 / 16 * 1rem);
  }
}

.p-design-concept__hero-media {
  grid-area: 1/1;
  z-index: 0;
  display: block;
  width: 100%;
}

.p-design-concept__hero-bg {
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__hero-bg {
    object-fit: cover;
  }
}

.p-design-concept__statement {
  grid-area: 1/1;
  z-index: 1;
  align-self: start;
  justify-self: center;
  margin-block-start: calc(479 / 16 * 1rem);
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  line-height: 1.75;
  letter-spacing: 0.43em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__statement {
    position: absolute;
    top: calc(122.9419 / 16 * 1rem);
    left: 50%;
    margin: 0;
    width: calc(21 / 16 * 1rem);
    font-size: max(20 / 16 * 1rem, 14 * 1px);
    line-height: 1;
    letter-spacing: 0.43em;
    writing-mode: vertical-rl;
    white-space: nowrap;
    transform: translateX(-50%);
  }
}

.p-design-concept__inner {
  display: grid;
  justify-items: center;
  max-width: calc(720 / 16 * 1rem);
  padding-inline: 0;
  padding-block-start: calc(142 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-concept__inner {
    display: block;
    padding-inline: 0;
    padding-block-start: calc(82.7268 / 16 * 1rem);
  }
}

.p-design-concept__title {
  text-align: center;
}

.p-design-concept__title-main {
  display: block;
  width: calc(515 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__title-main {
    width: calc(288.2397 / 16 * 1rem);
  }
}

.p-design-concept__title-main picture,
.p-design-concept__title-main img {
  display: block;
  width: 100%;
  height: auto;
}

.p-design-concept__title-sub {
  display: block;
  margin-block-start: calc(25 / 16 * 1rem);
  width: calc(146 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__title-sub {
    margin-block-start: calc(26.464 / 16 * 1rem);
    width: calc(116.668 / 16 * 1rem);
  }
}

.p-design-concept__title-sub picture,
.p-design-concept__title-sub img {
  display: block;
  width: 100%;
  height: auto;
}

.p-design-concept__body {
  width: max-content;
  margin-block-start: calc(128 / 16 * 1rem);
  margin-inline: auto;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.2222;
  letter-spacing: 0.03em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-design-concept__body {
    width: calc(307.0469 / 16 * 1rem);
    margin-block-start: calc(73.9946 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2.0432571429;
    letter-spacing: 0.04em;
    text-align: center;
    white-space: normal;
  }
}

.p-design-exterior {
  padding-block-start: calc(31 / 16 * 1rem);
  padding-block-end: calc(172 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-exterior {
    padding-block-start: calc(62 / 16 * 1rem);
    padding-block-end: calc(24.323 / 16 * 1rem);
  }
}

.p-design-exterior__figure {
  display: grid;
  width: calc(1600 / 16 * 1rem);
  margin-block-start: calc(125 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-exterior__figure {
    display: block;
    width: 100vw;
    margin-block-start: calc(37.1319 / 16 * 1rem);
    margin-inline: calc(50% - 50vw);
  }
}

.p-design-exterior__image {
  grid-area: 1/1;
  display: block;
  width: 100%;
}

.p-design-exterior__image img {
  width: 100%;
}

.p-design-exterior__caption {
  grid-area: 1/1;
  align-self: end;
  justify-self: end;
  width: max-content;
  color: #ffffff;
  transform: translate(calc(-18 / 16 * 1rem), calc(-16 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-design-exterior__caption {
    margin-block-start: calc(8.4905 / 16 * 1rem);
    margin-inline-start: auto;
    margin-inline-end: calc(21.621 / 16 * 1rem);
    color: #ffffff;
    transform: none;
  }
}

.p-design-life {
  padding-block-end: calc(265 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-life {
    padding-block-end: calc(83.16 / 16 * 1rem);
  }
}

.p-design-life__inner {
  display: grid;
  grid-template-columns: calc(480 / 16 * 1rem) calc(560 / 16 * 1rem);
  column-gap: calc(60 / 16 * 1rem);
  align-items: start;
  max-width: calc(1100 / 16 * 1rem);
  padding-inline: 0;
}
@media screen and (max-width: 1023px) {
  .p-design-life__inner {
    display: block;
  }
}

.p-design-life__content {
  padding-block-start: calc(114 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-life__content {
    padding-block-start: calc(41.0562 / 16 * 1rem);
  }
}

.p-design-life__body {
  margin-block-start: calc(73 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2.4375;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 1023px) {
  .p-design-life__body {
    margin-block-start: calc(35.0589 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.88275;
  }
}

.p-design-life__photos {
  display: grid;
  grid-template-columns: repeat(2, calc(230 / 16 * 1rem));
  column-gap: calc(23 / 16 * 1rem);
  margin-block-start: calc(20 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-life__photos {
    grid-template-columns: repeat(2, calc(158.125 / 16 * 1rem));
    column-gap: calc(13.75 / 16 * 1rem);
    margin-block-start: calc(27.5708 / 16 * 1rem);
  }
}

.p-design-life__photo img {
  width: calc(230 / 16 * 1rem);
}

.p-design-life__caption {
  margin-block-start: calc(8 / 16 * 1rem);
  color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-design-life__caption {
    grid-area: 1/1;
    align-self: end;
    justify-self: start;
    margin-block-start: 0;
    margin-inline-start: calc(5.0117 / 16 * 1rem);
    margin-block-end: calc(2.228 / 16 * 1rem);
    color: #ffffff;
  }
}

.p-design-life__tower img {
  width: calc(560 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-life__tower img {
    width: 100%;
    margin-inline: 0;
  }
}

.p-design-life__tower-caption {
  width: max-content;
  margin-block-start: calc(9 / 16 * 1rem);
  margin-inline-start: calc(7 / 16 * 1rem);
  color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-design-life__tower-caption {
    margin-block-start: calc(7.4295 / 16 * 1rem);
    margin-inline-start: auto;
    margin-inline-end: 0;
    color: #ffffff;
  }
}

.p-design-landscape {
  padding-block-end: calc(307 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-landscape {
    padding-block-start: calc(62 / 16 * 1rem);
    padding-block-end: calc(61.421 / 16 * 1rem);
  }
}

.p-design-landscape__layout {
  display: grid;
  grid-template-columns: calc(1030 / 16 * 1rem) calc(400 / 16 * 1rem);
  column-gap: calc(80 / 16 * 1rem);
  align-items: start;
  margin-block-start: calc(110 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__layout {
    display: block;
    margin-block-start: calc(58.633 / 16 * 1rem);
  }
}

.p-design-landscape__figure {
  display: grid;
  width: calc(1393 / 16 * 1rem);
  margin-block-start: calc(76 / 16 * 1rem);
  margin-inline-start: calc(285 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__figure {
    width: 100vw;
    margin-block-start: 0;
    margin-inline: calc(50% - 50vw);
  }
}

.p-design-landscape__figure img {
  grid-area: 1/1;
  width: 100%;
}

.p-design-landscape__image {
  grid-area: 1/1;
  display: block;
  width: 100%;
}

.p-design-landscape__image img {
  width: 100%;
}

.p-design-landscape__caption {
  grid-area: 1/1;
  align-self: end;
  justify-self: end;
  width: max-content;
  transform: translate(calc(-18 / 16 * 1rem), calc(-53 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__caption {
    align-self: end;
    justify-self: end;
    margin-inline-end: calc(22.612 / 16 * 1rem);
    transform: none;
  }
}

.p-design-landscape__text {
  width: max(400 / 16 * 1rem, 300 * 1px);
  margin-block-start: calc(245 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__text {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(51.4017 / 16 * 1rem);
  }
}

.p-design-landscape__lead {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 2;
  letter-spacing: 0.15em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__lead {
    font-size: max(17 / 16 * 1rem, 12.75 * 1px);
    line-height: 1.8271647059;
    letter-spacing: calc(1.82 / 16 * 1rem);
    white-space: normal;
  }
}

.p-design-landscape__body {
  margin-block-start: calc(24 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2.4375;
  letter-spacing: 0.03em;
}
@media screen and (max-width: 1023px) {
  .p-design-landscape__body {
    margin-block-start: calc(30.3885 / 16 * 1rem);
    font-size: max(13.75 / 16 * 1rem, 10.3125 * 1px);
    line-height: 1.89992;
    letter-spacing: 0;
  }
}

.p-design-grand {
  padding-block-end: calc(322 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-grand {
    padding-block-start: calc(62 / 16 * 1rem);
    padding-block-end: calc(63.455 / 16 * 1rem);
  }
}

.p-design-grand__figure {
  display: grid;
  width: calc(1600 / 16 * 1rem);
  margin-block-start: calc(130 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-grand__figure {
    display: block;
    width: 100vw;
    margin-block-start: calc(53.0355 / 16 * 1rem);
    margin-inline: calc(50% - 50vw);
  }
}

.p-design-grand__figure img {
  grid-area: 1/1;
  width: 100%;
}

.p-design-grand__image {
  grid-area: 1/1;
  display: block;
  width: 100%;
}

.p-design-grand__image img {
  width: 100%;
}

.p-design-grand__caption {
  grid-area: 1/1;
  align-self: end;
  justify-self: end;
  width: max-content;
  transform: translate(calc(-18 / 16 * 1rem), calc(-16 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-design-grand__caption {
    margin-block-start: calc(6.5328 / 16 * 1rem);
    margin-inline-start: auto;
    margin-inline-end: calc(24.0424 / 16 * 1rem);
    color: #ffffff;
    transform: none;
  }
}

.p-design-grand__copy {
  margin-block-start: calc(87 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-grand__copy {
    margin-block-start: calc(31.0533 / 16 * 1rem);
  }
}

.p-design-hall {
  padding-block-end: calc(190 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-hall {
    padding-block-start: calc(62 / 16 * 1rem);
    padding-block-end: calc(87.678 / 16 * 1rem);
  }
}

.p-design-hall__figure {
  display: grid;
  width: calc(1600 / 16 * 1rem);
  margin-block-start: calc(130 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-design-hall__figure {
    display: block;
    width: 100vw;
    margin-block-start: calc(49.0723 / 16 * 1rem);
    margin-inline: calc(50% - 50vw);
  }
}

.p-design-hall__figure img {
  grid-area: 1/1;
  width: 100%;
}

.p-design-hall__image {
  grid-area: 1/1;
  display: block;
  width: 100%;
}

.p-design-hall__image img {
  width: 100%;
}

.p-design-hall__caption {
  grid-area: 1/1;
  align-self: end;
  justify-self: end;
  width: max-content;
  transform: translate(calc(-18 / 16 * 1rem), calc(-16 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-design-hall__caption {
    margin-block-start: calc(5.0263 / 16 * 1rem);
    margin-inline-start: auto;
    margin-inline-end: calc(24.0425 / 16 * 1rem);
    color: #ffffff;
    transform: none;
  }
}

.p-design-hall__copy {
  margin-block-start: calc(75 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-design-hall__copy {
    margin-block-start: calc(33.3926 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-section__inner, .p-design-concept__inner, .p-design-life__inner {
    max-width: 100%;
    padding-inline: calc(22.5 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-concept__hero-media, .p-design-concept__hero-bg {
    height: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-design-life__tower--sp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-design-section-title--life .p-design-section-title__en picture,
  .p-design-section-title--life .p-design-section-title__en img {
    height: calc(42.9248 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-life__photo {
    display: grid;
  }
}

@media screen and (max-width: 1023px) {
  .p-design-life__photo picture, .p-design-life__photo img {
    grid-area: 1/1;
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-design-landscape__stage {
    padding-inline: calc(22.5 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-grand__copy .p-design-copy__lead {
    letter-spacing: calc(1.2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-hall__copy .p-design-copy__lead {
    letter-spacing: calc(1.94 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-grand__copy .p-design-copy__body {
    margin-block-start: calc(25.0967 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-design-hall__copy .p-design-copy__body {
    margin-block-start: calc(31.0413 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-gallery-open__mark {
    width: calc(109 / 16 * 1rem);
    aspect-ratio: 109/150;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-design-landscape__stage {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
/* ===== p-location: lower page (LOCATION) ===== */
.p-location-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  background-color: #2d2d2d;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-main {
    background-image: none;
  }
}

.p-location-main img {
  display: block;
}

.p-location-main :where(h1, h2, h3, p, dt, dd) {
  margin: 0;
  font-weight: 300;
}

.p-location-main figure {
  margin: 0;
}

/* ---------- FV ---------- */
.p-location-fv {
  position: relative;
}

.p-location-fv__stage {
  position: relative;
  display: grid;
  width: 100%;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-location-fv__stage {
    display: block;
    height: calc(600 / 16 * 1rem);
  }
}

.p-location-fv__picture {
  grid-area: 1/1;
  display: block;
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-fv__picture {
    height: 100%;
  }
}

.p-location-fv__bg {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 1023px) {
  .p-location-fv__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
}

.p-location-fv__catch {
  grid-area: 1/1;
  z-index: 1;
  align-self: start;
  justify-self: center;
  margin-block-start: calc(480 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  line-height: 1.75;
  letter-spacing: 0.6em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-location-fv__catch {
    position: absolute;
    top: calc(122.9419 / 16 * 1rem);
    left: 50%;
    margin-block-start: 0;
    font-size: max(21 / 16 * 1rem, 14 * 1px);
    line-height: 1.75;
    letter-spacing: 0.47em;
    writing-mode: vertical-rl;
    text-orientation: upright;
    white-space: nowrap;
    transform: translateX(-50%);
  }
}

/* ---------- dark body wrapper (lead_kurashiki..gallery_cta, section-spanning background) ---------- */
.p-location-body {
  position: relative;
}

.p-location-body__tile {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

/* shared content box: design content width 1100 (x410-1510 @1920), centered */
.p-location-inner {
  max-width: calc(1100 / 16 * 1rem);
  padding-inline: 0;
}
@media screen and (max-width: 1023px) {
  .p-location-inner {
    max-width: 100%;
    padding-inline: calc(20 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-inner {
    width: 100%;
    max-width: 100%;
    padding-inline: calc(20 / 16 * 1rem);
  }
}

/* ---------- lead_kurashiki ---------- */
.p-location-lead {
  position: relative;
  padding-block-start: calc(152 / 16 * 1rem);
  padding-block-end: calc(74 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-lead {
    padding-block-start: calc(72 / 16 * 1rem);
    padding-block-end: calc(8 / 16 * 1rem);
  }
}

.p-location-lead__inner {
  display: grid;
  justify-items: center;
  text-align: center;
}

.p-location-lead__title {
  width: calc(526 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-lead__title {
    width: calc(302 / 16 * 1rem);
  }
}

.p-location-lead__subtitle {
  width: calc(152 / 16 * 1rem);
  max-width: 100%;
  margin-block-start: calc(32 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-lead__subtitle {
    width: calc(112 / 16 * 1rem);
    margin-block-start: calc(22 / 16 * 1rem);
  }
}

.p-location-lead__body {
  margin-block-start: calc(116 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.2222;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-location-lead__body {
    width: calc(335 / 16 * 1rem);
    max-width: calc(100% - calc(40 / 16 * 1rem));
    margin-block-start: calc(48 / 16 * 1rem);
    margin-inline: auto;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 2.6666666667;
    letter-spacing: 0.05em;
  }
}

.p-location-lead__line {
  width: calc(538 / 16 * 1rem);
  max-width: 100%;
  margin-block-start: calc(324 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-lead__line {
    width: calc(264 / 16 * 1rem);
    margin-block-start: calc(100 / 16 * 1rem);
  }
}

/* ---------- bird_eye_access ---------- */
.p-location-access {
  position: relative;
  padding-block-start: calc(53 / 16 * 1rem);
  padding-block-end: calc(110 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-access {
    padding-block-start: calc(36 / 16 * 1rem);
    padding-block-end: calc(32 / 16 * 1rem);
  }
}

.p-location-access__photo {
  position: relative;
  width: calc(1600 / 16 * 1rem);
  max-width: 100%;
  margin-inline: auto;
  container-type: inline-size;
}
@media screen and (max-width: 1023px) {
  .p-location-access__photo {
    width: 100%;
    height: calc(500 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-location-main .p-location-access__photo {
  margin-inline: auto;
}

.p-location-access__photo img {
  width: 100%;
}

.p-location-access__picture,
.p-location-access__image,
.p-location-access__labelImage {
  display: block;
}

.p-location-access__picture {
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-access__picture {
    height: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-access__image {
    height: 100%;
    object-fit: cover;
  }
}

.p-location-access__photo .p-location-access__label {
  position: absolute;
  z-index: 1;
  left: calc(1227 / 1600 * 100%);
  top: calc(191 / 800 * 100%);
  width: calc(229 / 1600 * 100%);
}
@media screen and (max-width: 1023px) {
  .p-location-access__photo .p-location-access__label {
    left: calc(99.8911 / 16 * 1rem);
    top: calc(104.7231 / 16 * 1rem);
    width: calc(175.2183 / 16 * 1rem);
    transform: none;
  }
}

.p-location-access__pin {
  position: absolute;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: calc(5 / 16 * 1rem);
  background-color: rgb(35, 24, 21);
  color: #ffffff;
  font-size: 1cqi;
  line-height: 1;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-location-access__pin {
    display: none;
  }
}

.p-location-access__pinLabel {
  letter-spacing: 0.2em;
  white-space: nowrap;
}

.p-location-access__pin--bikan {
  left: calc(232 / 1600 * 100%);
  top: calc(409 / 800 * 100%);
  width: calc(130 / 1600 * 100%);
}

.p-location-access__pin--station {
  left: calc(523 / 1600 * 100%);
  top: calc(500 / 800 * 100%);
  width: calc(99 / 1600 * 100%);
}

.p-location-access__pin--ario {
  left: calc(678 / 1600 * 100%);
  top: calc(605 / 800 * 100%);
  width: calc(101 / 1600 * 100%);
}

.p-location-access__pin--outlet {
  left: calc(1162 / 1600 * 100%);
  top: calc(637 / 800 * 100%);
  padding-inline: calc(8 / 16 * 1rem);
}

.p-location-access__pin--outlet .p-location-access__pinLabel {
  letter-spacing: 0.03em;
}

.p-location-access__caption {
  max-width: calc(1600 / 16 * 1rem);
  margin-block-start: calc(13 / 16 * 1rem);
  margin-inline: auto;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.1667;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-location-access__caption {
    width: calc(95 / 16 * 1rem);
    max-width: none;
    margin-block-start: calc(6.2059 / 16 * 1rem);
    margin-inline: auto calc(22.5 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.1666666667;
    letter-spacing: 0.08em;
    font-feature-settings: "palt";
    text-align: left;
  }
}

/* ---------- education ---------- */
.p-location-education {
  position: relative;
  padding-block-start: calc(20 / 16 * 1rem);
  padding-block-end: calc(31 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education {
    padding-block-start: calc(13 / 16 * 1rem);
    padding-block-end: calc(84 / 16 * 1rem);
  }
}

.p-location-education__lead {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 2.1818;
  letter-spacing: 0.2em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-location-education__lead {
    width: calc(297.9917 / 16 * 1rem);
    max-width: calc(100% - calc(77 / 16 * 1rem));
    padding-inline: 0;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2;
    letter-spacing: 0.13em;
    font-feature-settings: "palt";
    text-wrap: initial;
    white-space: normal;
  }
}

.p-location-education__inner {
  display: grid;
  grid-template-columns: calc(620 / 16 * 1rem) calc(420 / 16 * 1rem);
  column-gap: calc(60 / 16 * 1rem);
  align-items: start;
  margin-inline: auto;
  margin-block-start: calc(115 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education__inner {
    grid-template-columns: 100%;
  }
}
@media screen and (max-width: 1023px) {
  .p-location-education__inner {
    grid-template-columns: 100%;
    margin-block-start: calc(94 / 16 * 1rem);
  }
}

.p-location-education__photos {
  position: relative;
}
@media screen and (max-width: 1023px) {
  .p-location-education__photos {
    grid-row: 2;
    margin-block-start: calc(50 / 16 * 1rem);
  }
}

.p-location-education__mainPhoto {
  position: relative;
  width: calc(620 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-education__mainPhoto {
    width: calc(331 / 16 * 1rem);
    max-width: none;
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__mainPhoto img {
    width: 100%;
    height: calc(160 / 16 * 1rem);
    object-fit: cover;
  }
}

.p-location-education__caption--main {
  margin-block-start: calc(7 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education__caption--main {
    margin-block-start: calc(5 / 16 * 1rem);
  }
}

.p-location-education__subPhotos {
  display: grid;
  grid-template-columns: repeat(2, calc(300 / 16 * 1rem));
  column-gap: calc(20 / 16 * 1rem);
  margin-block-start: calc(15 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education__subPhotos {
    margin-block-start: calc(14 / 16 * 1rem);
  }
}

.p-location-education__subPhotos figure {
  max-width: 100%;
}

.p-location-education__subCaptions {
  display: grid;
  grid-template-columns: repeat(2, calc(300 / 16 * 1rem));
  column-gap: calc(20 / 16 * 1rem);
  margin-block-start: calc(5 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education__subCaptions {
    margin-block-start: calc(6 / 16 * 1rem);
  }
}

.p-location-education__caption--main,
.p-location-education__subCaptions p {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.2517;
  letter-spacing: 0.05em;
}

.p-location-education__text {
  margin-block-start: calc(133 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-education__text {
    margin-block-start: calc(181 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-education__text {
    grid-row: 1;
    margin-block-start: 0;
    text-align: center;
  }
}

.p-location-education__heading {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.2em;
}

.p-location-education__en {
  margin-block-start: calc(10 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 3;
  letter-spacing: 0.2em;
}

.p-location-education__textLead {
  margin-block-start: calc(33 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.2727;
  letter-spacing: 0.12em;
}

.p-location-education__body {
  margin-block-start: calc(32 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}

/* ---------- shopping (mirrored: text left, photos right) ---------- */
.p-location-shopping {
  position: relative;
}

.p-location-shopping__inner {
  display: grid;
  grid-template-columns: calc(550 / 16 * 1rem) calc(490 / 16 * 1rem);
  column-gap: calc(60 / 16 * 1rem);
  align-items: start;
  margin-inline: auto;
  padding-block-start: calc(142 / 16 * 1rem);
  padding-block-end: calc(72 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__inner {
    grid-template-columns: 100%;
  }
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__inner {
    grid-template-columns: 100%;
    padding-block-start: calc(26 / 16 * 1rem);
    padding-block-end: calc(120 / 16 * 1rem);
  }
}

.p-location-shopping__text {
  margin-block-start: calc(16 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__text {
    margin-block-start: 0;
  }
}

.p-location-shopping__heading {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.2em;
}

.p-location-shopping__en {
  margin-block-start: calc(10 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 3;
  letter-spacing: 0.2em;
}

.p-location-shopping__textLead {
  margin-block-start: calc(37 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.2727;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__textLead {
    margin-block-start: calc(22 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
}

.p-location-shopping__body {
  margin-block-start: calc(29 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__body {
    margin-block-start: calc(16 / 16 * 1rem);
    letter-spacing: 0.02em;
  }
}

.p-location-shopping__photos {
  position: relative;
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__photos {
    /* stacked column gap (rem(48), was grid row-gap) */
    margin-block-start: calc(48 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__photos {
    margin-block-start: calc(23 / 16 * 1rem);
  }
}

.p-location-shopping__mainPhoto {
  position: relative;
  width: calc(490 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__mainPhoto {
    width: calc(331 / 16 * 1rem);
    max-width: none;
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

.p-location-shopping__caption--main {
  margin-block-start: calc(8 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__caption--main {
    margin-block-start: calc(6 / 16 * 1rem);
  }
}

.p-location-shopping__subPhotos {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(4, calc(260 / 16 * 1rem));
  column-gap: calc(20 / 16 * 1rem);
  margin-block-start: calc(20 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__subPhotos {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* true 2-column grid at sp (2x2 photos): row-gap stays valid here */
    row-gap: calc(16 / 16 * 1rem);
    /* stacked column gap (rem(48), was grid row-gap on the parent) folded into this existing margin */
    margin-block-start: calc(68 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__subPhotos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: calc(10 / 16 * 1rem);
    row-gap: calc(16 / 16 * 1rem);
    margin-block-start: calc(23 / 16 * 1rem);
  }
}

.p-location-shopping__subPhotos figure {
  max-width: 100%;
}

.p-location-shopping__subPhotos figcaption {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__subPhotos figcaption {
    display: block;
    margin-block-start: calc(6 / 16 * 1rem);
    font-size: max(10 / 16 * 1rem, 10 * 1px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }
}

.p-location-shopping__subCaptions {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(4, calc(260 / 16 * 1rem));
  column-gap: calc(20 / 16 * 1rem);
  margin-block-start: calc(7 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__subCaptions {
    grid-template-columns: repeat(2, 1fr);
    /* stacked column gap (rem(48), was grid row-gap on the parent) folded into this existing margin */
    margin-block-start: calc(55 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-shopping__subCaptions {
    display: none;
  }
}

.p-location-shopping__caption--main,
.p-location-shopping__subCaptions p {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.2517;
  letter-spacing: 0.05em;
}

/* ---------- bikan_area (same column proportions as shopping) ---------- */
.p-location-bikan {
  position: relative;
}

.p-location-bikan__inner {
  display: grid;
  grid-template-columns: calc(550 / 16 * 1rem) calc(490 / 16 * 1rem);
  column-gap: calc(60 / 16 * 1rem);
  align-items: start;
  margin-inline: auto;
  padding-block-start: calc(116 / 16 * 1rem);
  padding-block-end: calc(110 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__inner {
    grid-template-columns: 100%;
  }
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__inner {
    grid-template-columns: 100%;
    padding-block-start: 0;
    padding-block-end: calc(136.5 / 16 * 1rem);
  }
}

.p-location-bikan__text {
  margin-block-start: calc(84 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__text {
    margin-block-start: 0;
  }
}

.p-location-bikan__heading {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.2em;
}

.p-location-bikan__en {
  margin-block-start: calc(10 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 3;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__en {
    line-height: 1.5;
  }
}

.p-location-bikan__enSp {
  display: none;
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__enPc {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__enSp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__enSp span {
    display: block;
  }
}

.p-location-bikan__textLead {
  margin-block-start: calc(34 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.2727;
  letter-spacing: 0.2em;
}

.p-location-bikan__body {
  margin-block-start: calc(32 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}

.p-location-bikan__photos {
  position: relative;
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__photos {
    margin-block-start: calc(33 / 16 * 1rem);
  }
}

.p-location-bikan__mainPhoto {
  width: calc(490 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__mainPhoto {
    width: calc(331 / 16 * 1rem);
    max-width: none;
    height: calc(136 / 16 * 1rem);
    margin-inline-start: calc(2 / 16 * 1rem);
    overflow: hidden;
  }
}

.p-location-bikan__subPhotos {
  display: grid;
  grid-template-columns: calc(263 / 16 * 1rem) calc(223 / 16 * 1rem);
  column-gap: calc(4 / 16 * 1rem);
  margin-block-start: calc(4 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-bikan__subPhotos {
    grid-template-columns: calc(178 / 16 * 1rem) calc(151 / 16 * 1rem);
    column-gap: calc(2 / 16 * 1rem);
    margin-block-start: calc(2 / 16 * 1rem);
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

.p-location-bikan__subPhotos figure {
  max-width: 100%;
}

/* ---------- area_map ---------- */
.p-location-map {
  position: relative;
  display: grid;
  justify-items: center;
  padding-block-start: calc(152 / 16 * 1rem);
  padding-block-end: calc(86 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-map {
    padding-block-start: calc(19 / 16 * 1rem);
    padding-block-end: calc(20 / 16 * 1rem);
  }
}

.p-location-map__title {
  width: calc(208 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-map__title {
    width: calc(102 / 16 * 1rem);
  }
}

.p-location-map__image {
  width: calc(1200 / 16 * 1rem);
  max-width: 100%;
  margin-block-start: calc(116 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-map__image {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(34 / 16 * 1rem);
  }
}

.p-location-map__note {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-location-map__note {
    display: block;
    width: calc(331 / 16 * 1rem);
    max-width: calc(100vw - calc(44 / 16 * 1rem));
    margin-block-start: calc(10 / 16 * 1rem);
    font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.8333333333;
    letter-spacing: 0;
    font-feature-settings: "palt";
    text-align: left;
    white-space: nowrap;
  }
}

/* ---------- area_information ---------- */
.p-location-info {
  position: relative;
  display: grid;
  justify-items: center;
  padding-block-start: calc(47 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-info {
    display: block;
    padding-block-start: calc(36 / 16 * 1rem);
    text-align: center;
  }
}

.p-location-info__title {
  width: calc(416 / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-location-info__title {
    width: calc(223 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-location-info__subtitle {
  margin-block-start: calc(29 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.4012;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-location-info__subtitle {
    margin-block-start: calc(12 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.4285714286;
    letter-spacing: 0.2em;
  }
}

.p-location-info__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: calc(72 / 16 * 1rem);
  align-items: start;
  margin-inline: auto;
  margin-block-start: calc(75 / 16 * 1rem);
}
@media (min-width: 1024px) and (max-width: 1376px) {
  .p-location-info__grid {
    grid-template-columns: max-content max-content;
    max-width: max-content;
  }
}
@media screen and (max-width: 1023px) {
  .p-location-info__grid {
    grid-template-columns: 100%;
  }
}
@media screen and (max-width: 1023px) {
  .p-location-info__grid {
    display: none;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 100%;
    margin-block-start: calc(135 / 16 * 1rem);
    padding-inline: calc(22 / 16 * 1rem);
    column-gap: 0;
  }
}

.p-location-info__spList {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-location-info__spList {
    display: block;
    width: calc(330 / 16 * 1rem);
    max-width: calc(100vw - calc(45 / 16 * 1rem));
    margin-block-start: calc(120 / 16 * 1rem);
    margin-inline: auto;
    font-size: 0;
    line-height: 0;
    text-align: left;
  }
}

.p-location-info__spCategory {
  margin: 0;
}
@media screen and (max-width: 1023px) {
  .p-location-info__spCategory {
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0;
    font-feature-settings: "palt";
    border-top: calc(0.6923 / 16 * 1rem) solid #ffffff;
    padding-block: calc(14 / 16 * 1rem);
    white-space: nowrap;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__spCategory + .p-location-info__spCategory {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__spCategory:last-child {
    border-bottom: calc(0.6923 / 16 * 1rem) solid #ffffff;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__spCategoryTitle {
    font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
    font-weight: 600;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col + .p-location-info__col {
    /* stacked column gap (rem(32), was grid row-gap) */
    margin-block-start: calc(32 / 16 * 1rem);
  }
}

.p-location-info__category {
  margin-block-start: calc(30 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-info__category {
    margin-block-start: calc(28 / 16 * 1rem);
    text-align: left;
  }
}

.p-location-info__category:first-child {
  margin-block-start: 0;
}
@media screen and (max-width: 1023px) {
  .p-location-info__category:first-child {
    margin-block-start: 0;
  }
}

.p-location-info__categoryTitle {
  font-size: max(15 / 16 * 1rem, 11.25 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  border-bottom: calc(1 / 16 * 1rem) solid #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-location-info__categoryTitle {
    font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 600;
    line-height: 2;
    letter-spacing: 0;
    border-bottom: 0;
  }
}

.p-location-info__list {
  margin: 0;
  margin-block-start: calc(30 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-location-info__list {
    margin-block-start: 0;
  }
}

.p-location-info__row {
  display: flex;
  column-gap: calc(16 / 16 * 1rem);
  font-size: max(15 / 16 * 1rem, 11.25 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-location-info__row {
    display: block;
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0;
  }
}

.p-location-info__row dt,
.p-location-info__row dd {
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-location-info__row dt,
  .p-location-info__row dd {
    display: inline;
    min-width: 0;
    white-space: normal;
  }
}

.p-location-info__row dd {
  margin-inline-start: auto;
  text-align: right;
}
@media screen and (max-width: 1023px) {
  .p-location-info__row dd {
    margin-inline-start: 0;
    text-align: left;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__row dd::before {
    content: "　";
  }
}

.p-location-info__footnote {
  width: calc(730 / 16 * 1rem);
  max-width: calc(1100 / 16 * 1rem);
  justify-self: start;
  margin-inline-start: max(22 / 16 * 1rem, (100vw - 1100 / 16 * 1rem) / 2);
  margin-inline-end: 0;
  margin-block-start: calc(54 / 16 * 1rem);
  padding-block-end: calc(214 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.8333333333;
  letter-spacing: -0.01em;
  text-align: left;
}
@media screen and (max-width: 1023px) {
  .p-location-info__footnote {
    width: 100%;
    max-width: 100%;
    margin-inline-start: 0;
    padding-inline: calc(20 / 16 * 1rem);
  }
}
@media screen and (max-width: 1023px) {
  .p-location-info__footnote {
    width: 100%;
    max-width: 100%;
    margin-inline-start: 0;
    margin-block-start: calc(20.6 / 16 * 1rem);
    padding-inline: calc(22 / 16 * 1rem);
    padding-block-end: 0;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__footnoteMap {
    display: none;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-location-info__footnote {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
/* gallery-open は共通部品化（_p-gallery-open.scss / .p-gallery-open）。トップ修正指示３[12] */
@media screen and (max-width: 1023px) {
  .p-location-access__photo > img:not(.p-location-access__label) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__heading, .p-location-shopping__heading, .p-location-bikan__heading {
    font-size: max(28 / 16 * 1rem, 14 * 1px);
    line-height: 1.177;
    letter-spacing: 0.2em;
    text-align: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__en, .p-location-shopping__en, .p-location-bikan__en {
    margin-block-start: calc(14 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.1770357143;
    letter-spacing: 0.2em;
    text-align: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__en {
    line-height: 1.5;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__textLead, .p-location-shopping__textLead, .p-location-bikan__textLead {
    width: calc(330 / 16 * 1rem);
    max-width: calc(100vw - calc(45 / 16 * 1rem));
    margin-inline: auto;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
    letter-spacing: 0.1em;
    font-feature-settings: "palt";
    text-align: center;
    white-space: nowrap;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__body, .p-location-shopping__body, .p-location-bikan__body {
    width: calc(330 / 16 * 1rem);
    max-width: calc(100vw - calc(45 / 16 * 1rem));
    margin-inline: auto;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
    font-feature-settings: "palt";
    text-align: left;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__textLead {
    margin-block-start: calc(36 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-shopping__textLead {
    margin-block-start: calc(33 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__textLead {
    margin-block-start: calc(34 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__body {
    margin-block-start: calc(24 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-shopping__body {
    margin-block-start: calc(24 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__body {
    margin-block-start: calc(15 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__mainPhoto {
    width: calc(331 / 16 * 1rem);
    max-width: none;
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__subPhotos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: calc(10 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__subCaptions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: calc(10 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-education__caption--main, .p-location-education__subCaptions p, .p-location-shopping__caption--main, .p-location-shopping__subCaptions p {
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.25;
    letter-spacing: 0.05em;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-shopping__mainPhoto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-shopping__subPhotos img {
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-main .p-location-education__mainPhoto {
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-main .p-location-shopping__mainPhoto {
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-main .p-location-bikan__mainPhoto {
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__mainPhoto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-bikan__subPhotos img {
    width: 100%;
    height: calc(135 / 16 * 1rem);
    object-fit: cover;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col {
    display: contents;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:first-child .p-location-info__category:nth-child(1) {
    order: 1;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:first-child .p-location-info__category:nth-child(2) {
    order: 2;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:first-child .p-location-info__category:nth-child(3) {
    order: 4;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:first-child .p-location-info__category:nth-child(4) {
    order: 7;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:nth-child(2) .p-location-info__category:nth-child(1) {
    order: 3;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:nth-child(2) .p-location-info__category:nth-child(2) {
    order: 6;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:nth-child(2) .p-location-info__category:nth-child(3) {
    order: 5;
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:nth-child(2) .p-location-info__category:first-child {
    margin-block-start: calc(28 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(4), .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(5), .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(6), .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(8), .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(9), .p-location-info__col:first-child .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(10), .p-location-info__col:first-child .p-location-info__category:nth-child(3) .p-location-info__row:nth-child(5), .p-location-info__col:nth-child(2) .p-location-info__category:nth-child(2) .p-location-info__row:nth-child(4) {
    display: none;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-location-access__photo {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
  .p-location-access__caption {
    width: calc(500 * 1px);
    margin-inline: auto;
    text-align: right;
  }
}
.p-plan-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-plan-main :where(img) {
  display: block;
}

.p-plan-main :where(h1, h2, h3, p) {
  margin: 0;
  font-weight: 300;
}

.p-plan-main :where(figure) {
  margin: 0;
}

.p-plan-fv__bg {
  height: 100%;
}

.p-plan-fv__bg img {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

h1.p-plan-fv__catch {
  margin-block-start: calc(480 / 16 * 1rem);
  letter-spacing: 0.6em;
}
@media screen and (max-width: 1023px) {
  h1.p-plan-fv__catch {
    justify-self: center;
    margin-block-start: 0;
    margin-top: calc(138 / 16 * 1rem);
    margin-left: 0;
    font-size: max(21 / 16 * 1rem, 14 * 1px);
    line-height: 1;
    letter-spacing: 0.3569em;
  }
}

.p-plan-body {
  position: relative;
}

.p-plan-body__tile {
  display: none;
}

.p-plan-sectionTitle {
  display: block;
  margin-inline: auto;
}

.p-plan-sectionTitle--land {
  width: calc(234 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-sectionTitle--land {
    width: calc(125 / 16 * 1rem);
  }
}

.p-plan-sectionTitle--room {
  width: calc(243 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-sectionTitle--room {
    width: calc(130 / 16 * 1rem);
  }
}

.p-plan-intro,
.p-plan-land,
.p-plan-room,
.p-plan-concept,
.p-gallery-open {
  position: relative;
  z-index: 1;
}

.p-plan-intro {
  overflow: hidden;
  box-sizing: border-box;
  padding-block-start: calc(153 / 16 * 1rem);
  padding-block-end: calc(170 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-plan-intro {
    padding-block-start: calc(62 / 16 * 1rem);
    padding-block-end: calc(50 / 16 * 1rem);
  }
}

.p-plan-intro__inner {
  display: grid;
}

.p-plan-intro__inner::after {
  content: "";
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  justify-self: center;
  width: 100vw;
  height: calc(1 / 16 * 1rem);
  margin-top: calc(667 / 16 * 1rem);
  background-color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-plan-intro__inner::after {
    display: none;
  }
}

.p-plan-intro__title,
.p-plan-intro__subtitle,
.p-plan-intro__lead,
.p-plan-intro__building {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

.p-plan-intro__title {
  z-index: 1;
  width: calc(290 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-plan-intro__title {
    width: calc(183 / 16 * 1rem);
  }
}

.p-plan-intro__subtitle {
  z-index: 1;
  width: calc(143 / 16 * 1rem);
  margin-top: calc(87 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-plan-intro__subtitle {
    width: calc(114 / 16 * 1rem);
    margin-top: calc(56 / 16 * 1rem);
  }
}

.p-plan-intro__lead {
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  margin-top: calc(217 / 16 * 1rem);
  margin-inline: auto;
  padding-inline: calc(410 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.2222222222;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-plan-intro__lead {
    width: 100%;
    margin-top: calc(128 / 16 * 1rem);
    padding-inline: calc(23 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2.2857142857;
    letter-spacing: 0.05em;
  }
}

.p-plan-intro__building {
  z-index: 0;
  width: calc(168 / 16 * 1rem);
  max-width: none;
  margin-top: calc(278 / 16 * 1rem);
  margin-left: calc(410 / 16 * 1rem);
}
@media (min-width: 1024px) {
  .p-plan-intro__building {
    margin-left: min(410 / 16 * 1rem, 50% - calc(320 * 1px));
  }
}
@media screen and (max-width: 1023px) {
  .p-plan-main .p-plan-intro__building {
    display: none;
  }
}

.p-plan-land {
  box-sizing: border-box;
  padding-top: calc(127 / 16 * 1rem);
  padding-bottom: calc(130 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land {
    padding-top: calc(35 / 16 * 1rem);
    padding-bottom: calc(9 / 16 * 1rem);
  }
}

.p-plan-land__card {
  display: grid;
  grid-template-columns: calc(550 / 16 * 1rem) calc(561 / 16 * 1rem);
  column-gap: calc(26 / 16 * 1rem);
  box-sizing: border-box;
  width: calc(1600 / 16 * 1rem);
  margin-top: calc(81 / 16 * 1rem);
  margin-inline: auto;
  padding-top: calc(39 / 16 * 1rem);
  padding-bottom: calc(35 / 16 * 1rem);
  padding-left: calc(250 / 16 * 1rem);
  background-color: rgb(255, 255, 255);
  color: #231815;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__card {
    grid-template-columns: 100%;
    width: 100%;
    margin-top: calc(43 / 16 * 1rem);
    padding: 0;
    background-color: transparent;
    color: #ffffff;
  }
}

.p-plan-land__facility {
  grid-column: 1;
  grid-row: 1;
  width: calc(550 / 16 * 1rem);
  margin-top: calc(64 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facility {
    grid-row: 2;
    width: 100%;
    margin-top: calc(62 / 16 * 1rem);
  }
}

.p-plan-land__facilityLabel {
  width: calc(129 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityLabel {
    width: calc(98 / 16 * 1rem);
    margin-inline: auto;
    content: url("../img/plan/plan-label-facility-sp.webp");
  }
}

.p-plan-land__facilityRows {
  margin-top: calc(78 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityRows {
    margin-top: calc(49 / 16 * 1rem);
  }
}

.p-plan-land__facilityBlock {
  display: grid;
  grid-template-columns: calc(330 / 16 * 1rem) calc(200 / 16 * 1rem);
  column-gap: calc(20 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityBlock {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-plan-land__facilityBlock--pet {
  margin-top: calc(77 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityBlock--pet {
    margin-top: calc(62 / 16 * 1rem);
  }
}

.p-plan-land__facilityText h2 {
  color: #231815;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.65;
  letter-spacing: 0.105em;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityText h2 {
    color: #ffffff;
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
    letter-spacing: 0.1em;
  }
}

.p-plan-land__facilityLeadAccent {
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1.1785714286;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityLeadAccent {
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
  }
}

.p-plan-land__facilityLeadText {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.65;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityLeadText {
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
  }
}

.p-plan-land__facilityBlock--pet .p-plan-land__facilityText h2 {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.5;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityBlock--pet .p-plan-land__facilityText h2 {
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
    letter-spacing: 0.092em;
  }
}

.p-plan-land__facilityText p {
  width: calc(330 / 16 * 1rem);
  margin-top: calc(27 / 16 * 1rem);
  color: #231815;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.055em;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityText p {
    width: calc(330 / 16 * 1rem);
    margin-top: calc(22 / 16 * 1rem);
    color: #ffffff;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

.p-plan-land__facilityBlock--pet .p-plan-land__facilityText p:not(.p-plan-land__note) {
  margin-top: calc(12 / 16 * 1rem);
  letter-spacing: 0.095em;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityBlock--pet .p-plan-land__facilityText p:not(.p-plan-land__note) {
    margin-top: calc(16 / 16 * 1rem);
    letter-spacing: 0.05em;
  }
}

.p-plan-land__facilityText .p-plan-land__note {
  width: calc(274 / 16 * 1rem);
  margin-top: calc(8 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.0110333333;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityText .p-plan-land__note {
    margin-top: calc(26 / 16 * 1rem);
  }
}

.p-plan-land__facilityPhotos {
  grid-column: 2;
  grid-row: 1/span 2;
  display: block;
  width: calc(200 / 16 * 1rem);
  margin-top: calc(10 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityPhotos {
    display: grid;
    grid-template-columns: repeat(2, calc(165 / 16 * 1rem));
    width: calc(330 / 16 * 1rem);
    margin-top: calc(23 / 16 * 1rem);
  }
}

.p-plan-land__facilityPhotos figure,
.p-plan-land__petPhoto {
  display: grid;
  overflow: hidden;
}

.p-plan-land__facilityPhotos figure {
  width: calc(200 / 16 * 1rem);
  aspect-ratio: 200/129;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__facilityPhotos figure {
    width: calc(165 / 16 * 1rem);
    aspect-ratio: 165/110;
  }
}

.p-plan-land__facilityPhotos img,
.p-plan-land__petPhoto img {
  grid-area: 1/1;
  width: 100%;
  max-width: none;
  aspect-ratio: inherit;
  object-fit: cover;
}

.p-plan-land__facilityPhoto--parking img {
  object-position: 50% 62%;
}

.p-plan-land__facilityPhoto--ev img {
  object-position: 48% 58%;
}

.p-plan-land__petPhoto img {
  object-position: 50% 62%;
}

.p-plan-land figcaption {
  position: relative;
  grid-area: 1/1;
  align-self: end;
  justify-self: start;
  top: calc(-5 / 16 * 1rem);
  margin-left: calc(9 / 16 * 1rem);
  color: #ffffff;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1;
  letter-spacing: 0;
}
@media screen and (max-width: 1023px) {
  .p-plan-land figcaption {
    top: calc(-6 / 16 * 1rem);
    margin-left: calc(7 / 16 * 1rem);
  }
}

.p-plan-land__petPhoto {
  grid-column: 2;
  width: calc(200 / 16 * 1rem);
  aspect-ratio: 200/160;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__petPhoto {
    width: calc(330 / 16 * 1rem);
    aspect-ratio: 330/160;
    margin-top: calc(-8 / 16 * 1rem);
  }
}

.p-plan-land__petPhoto figcaption {
  line-height: 1.5757583333;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__petPhoto figcaption {
    margin-left: calc(7 / 16 * 1rem);
  }
}

.p-plan-land__site {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  width: calc(561 / 16 * 1rem);
  aspect-ratio: 561/733;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__site {
    grid-column: 1;
    grid-row: 1;
    box-sizing: border-box;
    width: 100%;
    padding-top: calc(30 / 16 * 1rem);
    padding-bottom: calc(30 / 16 * 1rem);
    padding-left: calc(44 / 16 * 1rem);
    background-color: rgb(255, 255, 255);
  }
}

.p-plan-land__site picture {
  display: block;
  width: 100%;
  aspect-ratio: inherit;
}
@media screen and (max-width: 1023px) {
  .p-plan-land__site picture {
    width: calc(313 / 16 * 1rem);
    aspect-ratio: 313/468;
  }
}

.p-plan-land__site img {
  width: 100%;
  max-width: none;
  aspect-ratio: inherit;
  object-fit: fill;
}

.p-plan-land__compass {
  grid-column: 2;
  grid-row: 1;
  width: calc(37 / 16 * 1rem);
  aspect-ratio: 37/47;
  max-width: none;
  margin-top: calc(652 / 16 * 1rem);
  margin-left: calc(419 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-land__compass {
    grid-column: 1;
    grid-row: 1;
    width: calc(37 / 16 * 1rem);
    aspect-ratio: 37/47;
    margin-top: calc(421 / 16 * 1rem);
    margin-left: calc(278 / 16 * 1rem);
  }
}

.p-plan-room {
  box-sizing: border-box;
  padding-top: calc(165 / 16 * 1rem);
  padding-bottom: calc(139 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-room {
    padding-top: calc(75 / 16 * 1rem);
    padding-bottom: calc(93 / 16 * 1rem);
  }
}

.p-plan-room__lead {
  width: calc(236 / 16 * 1rem);
  margin-top: calc(34 / 16 * 1rem);
  margin-inline: auto;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 1.5555555556;
  letter-spacing: 0.1em;
  text-align: center;
}

.p-plan-room__card {
  display: flex;
  box-sizing: border-box;
  width: calc(1600 / 16 * 1rem);
  margin-top: calc(102 / 16 * 1rem);
  margin-inline: auto;
  padding-left: calc(174 / 16 * 1rem);
  overflow: visible;
  padding-bottom: calc(64 / 16 * 1rem);
  background-color: rgb(255, 255, 255);
  color: #231815;
}
@media screen and (max-width: 1023px) {
  .p-plan-room__card {
    display: grid;
    width: 100%;
    margin-top: calc(23 / 16 * 1rem);
    padding-left: 0;
    padding-bottom: 0;
    background-color: transparent;
  }
}

.p-plan-roomType {
  display: grid;
  /* 列を auto にすると、はみ出す間取り図（width 496 + 負の margin-left）が列幅を広げ、
     justify-self: center がカード中心ではなく広がった列の中心を基準にしてしまう */
  grid-template-columns: minmax(0, 100%);
  align-items: start;
  flex: 0 0 calc(496 / 16 * 1rem);
  width: calc(496 / 16 * 1rem);
  margin-top: calc(-78 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType {
    box-sizing: border-box;
    width: calc(375 / 16 * 1rem);
    margin-top: 0;
    overflow: hidden;
    background-color: rgb(255, 255, 255);
  }
}

.p-plan-roomType + .p-plan-roomType {
  margin-left: calc(-117 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType + .p-plan-roomType {
    margin-top: calc(24 / 16 * 1rem);
    margin-left: 0;
  }
}

.p-plan-roomType--c {
  margin-left: calc(-120 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType--c {
    margin-left: 0;
  }
}

.p-plan-roomType > * {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

img.p-plan-roomType__image {
  width: calc(496 / 16 * 1rem);
  max-width: none;
  aspect-ratio: 496/698;
  object-fit: cover;
}
@media screen and (max-width: 1023px) {
  img.p-plan-roomType__image {
    width: calc(496 / 16 * 1rem);
    aspect-ratio: 496/698;
    margin-top: calc(-102 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-roomType--a img.p-plan-roomType__image {
    margin-left: calc(-67 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-roomType--b img.p-plan-roomType__image {
    margin-left: calc(-66 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-roomType--c img.p-plan-roomType__image {
    margin-left: calc(-79 / 16 * 1rem);
  }
}

.p-plan-roomType__compass {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType__compass {
    display: block;
    width: calc(37 / 16 * 1rem);
    aspect-ratio: 37/47;
    max-width: none;
    margin-top: calc(20 / 16 * 1rem);
    margin-left: calc(314 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-roomType--c .p-plan-roomType__compass {
    margin-left: calc(32 / 16 * 1rem);
  }
}

.p-plan-room__compass {
  width: calc(37 / 16 * 1rem);
  aspect-ratio: 37/47;
  max-width: none;
  margin-top: calc(-103 / 16 * 1rem);
  margin-left: calc(1652 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-main .p-plan-room__compass {
    display: none;
  }
}

.p-plan-roomType__name {
  justify-self: center;
  width: fit-content;
  margin-top: calc(644 / 16 * 1rem);
  color: #231815;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1.7142857143;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType__name {
    margin-top: calc(508 / 16 * 1rem);
  }
}

/* line-height 1 で半行送りを消し、行ボックス上端＝A のアセント上端（＝カンプのテキスト境界）に揃える。
   1.2 のままだと半行送り分だけ文字が下がり margin-top の設計値と合わない */
.p-plan-roomType__name span {
  font-size: max(40 / 16 * 1rem, 14 * 1px);
  line-height: 1;
}

.p-plan-roomType__name small {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  letter-spacing: 0.1em;
}

.p-plan-roomType__layout {
  justify-self: center;
  width: fit-content;
  margin-top: calc(699 / 16 * 1rem);
  color: #231815;
  font-size: max(24 / 16 * 1rem, 14 * 1px);
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType__layout {
    margin-top: calc(563 / 16 * 1rem);
  }
}

.p-plan-roomType__layoutMain {
  font-size: max(24 / 16 * 1rem, 14 * 1px);
  line-height: 1.2;
}

.p-plan-roomType__layoutSub {
  font-size: max(17 / 16 * 1rem, 12.75 * 1px);
  line-height: 1.2;
}

.p-plan-roomType__area {
  justify-self: center;
  width: fit-content;
  margin-top: calc(739 / 16 * 1rem);
  color: #231815;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.0714285714;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType__area {
    margin-top: calc(603 / 16 * 1rem);
  }
}

.p-plan-roomType__areaLabel {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.0714285714;
}

.p-plan-roomType__areaValue {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 0.75;
}

.p-plan-roomType__link {
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  justify-self: center;
  box-sizing: border-box;
  width: calc(193 / 16 * 1rem);
  margin-top: calc(782 / 16 * 1rem);
  padding-block: calc(8 / 16 * 1rem);
  background-color: #c8b450;
  color: #ffffff;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.0714285714;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: background-color 0.35s ease, color 0.35s ease;
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType__link {
    width: 100%;
    margin-top: calc(652 / 16 * 1rem);
    padding-block: calc(16.5 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1;
  }
}

.p-plan-roomType__link::before,
.p-plan-concept__specLink::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  content: "";
  background-color: #ffffff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s ease;
}

.p-plan-roomType__link > *,
.p-plan-concept__specLink > * {
  position: relative;
  z-index: 1;
}

.p-plan-roomType--c .p-plan-roomType__name,
.p-plan-roomType--c .p-plan-roomType__layout,
.p-plan-roomType--c .p-plan-roomType__area,
.p-plan-roomType--c .p-plan-roomType__link {
  transform: translateX(calc(20 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-plan-roomType--c .p-plan-roomType__name,
  .p-plan-roomType--c .p-plan-roomType__layout,
  .p-plan-roomType--c .p-plan-roomType__area,
  .p-plan-roomType--c .p-plan-roomType__link {
    transform: none;
  }
}

.p-plan-concept {
  box-sizing: border-box;
  padding-top: calc(76 / 16 * 1rem);
  padding-bottom: calc(210 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-concept {
    padding-top: calc(18 / 16 * 1rem);
    padding-bottom: calc(62 / 16 * 1rem);
  }
}

.p-plan-concept__lead {
  width: calc(412 / 16 * 1rem);
  margin-inline: auto;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 2.1818181818;
  letter-spacing: 0.2em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-plan-concept__lead {
    display: none;
  }
}

.p-plan-conceptItem {
  display: grid;
  box-sizing: border-box;
}

.p-plan-conceptItem__text {
  width: calc(480 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__text {
    width: calc(330 / 16 * 1rem);
  }
}

.p-plan-conceptItem__text picture {
  display: block;
}

.p-plan-conceptItem__label {
  width: calc(326 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__label {
    width: calc(230 / 16 * 1rem);
    margin-inline: auto;
  }
}

.p-plan-conceptItem__label--balcony {
  width: calc(135 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__label--balcony {
    width: calc(103 / 16 * 1rem);
  }
}

.p-plan-conceptItem__label--storage {
  width: calc(134 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__label--storage {
    width: calc(102 / 16 * 1rem);
  }
}

.p-plan-conceptItem__text h3 {
  margin-top: calc(60 / 16 * 1rem);
  color: #ffffff;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 2;
  letter-spacing: 0.165em;
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__text h3 {
    margin-top: calc(64 / 16 * 1rem);
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 1.5555555556;
    letter-spacing: 0.1em;
  }
}

.p-plan-conceptItem__text p {
  width: calc(480 / 16 * 1rem);
  margin-top: calc(31 / 16 * 1rem);
  color: #ffffff;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.055em;
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__text p {
    width: calc(330 / 16 * 1rem);
    margin-top: calc(17 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

.p-plan-conceptItem__photo {
  display: block;
  overflow: visible;
}

.p-plan-conceptItem__photo img {
  width: 100%;
  max-width: none;
  aspect-ratio: inherit;
  object-fit: cover;
}

.p-plan-conceptItem figcaption {
  color: #ffffff;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 2.2857142857;
  letter-spacing: 0.055em;
}

.p-plan-conceptItem--living {
  grid-template-columns: calc(480 / 16 * 1rem) calc(370 / 16 * 1rem);
  column-gap: calc(164 / 16 * 1rem);
  width: calc(1014 / 16 * 1rem);
  margin-top: calc(163 / 16 * 1rem);
  margin-left: calc(410 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--living {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-top: 0;
    margin-left: calc(23 / 16 * 1rem);
  }
}

.p-plan-conceptItem--living .p-plan-conceptItem__text {
  margin-top: calc(86 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--living .p-plan-conceptItem__text {
    margin-top: 0;
  }
}

.p-plan-conceptItem__photo--living {
  grid-column: 2;
  grid-row: 1;
  width: calc(370 / 16 * 1rem);
  aspect-ratio: 370/555;
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--living {
    width: calc(330 / 16 * 1rem);
    aspect-ratio: 330/440;
    margin-top: calc(30 / 16 * 1rem);
  }
}

.p-plan-conceptItem--balcony {
  grid-template-columns: calc(550 / 16 * 1rem) calc(480 / 16 * 1rem);
  column-gap: calc(68 / 16 * 1rem);
  width: calc(1098 / 16 * 1rem);
  margin-top: calc(135 / 16 * 1rem);
  margin-left: calc(410 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--balcony {
    display: grid;
    width: calc(330 / 16 * 1rem);
    margin-top: calc(90 / 16 * 1rem);
    margin-left: calc(23 / 16 * 1rem);
  }
}

.p-plan-conceptItem--balcony .p-plan-conceptItem__text {
  grid-column: 2;
  grid-row: 1;
  margin-top: calc(12 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--balcony .p-plan-conceptItem__text {
    grid-column: 1;
    grid-row: 1;
    margin-top: 0;
  }
}

.p-plan-conceptItem--balcony .p-plan-conceptItem__text h3 {
  margin-top: calc(59 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--balcony .p-plan-conceptItem__text h3 {
    margin-top: calc(42 / 16 * 1rem);
  }
}

.p-plan-conceptItem--balcony .p-plan-conceptItem__text p {
  margin-top: calc(15 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--balcony .p-plan-conceptItem__text p {
    margin-top: calc(20 / 16 * 1rem);
  }
}

.p-plan-conceptItem__photo--balcony {
  grid-column: 1;
  grid-row: 1;
  width: calc(550 / 16 * 1rem);
  aspect-ratio: 550/367;
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--balcony {
    grid-column: 1;
    grid-row: 2;
    width: calc(330 / 16 * 1rem);
    aspect-ratio: 330/268;
    margin-top: calc(31 / 16 * 1rem);
  }
}

.p-plan-conceptItem__photo--balcony figcaption {
  margin-top: calc(3 / 16 * 1rem);
  margin-left: calc(0 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--balcony figcaption {
    margin-top: calc(7 / 16 * 1rem);
    margin-left: calc(0 / 16 * 1rem);
  }
}

.p-plan-conceptItem--storage {
  grid-template-columns: calc(480 / 16 * 1rem) calc(412 / 16 * 1rem);
  column-gap: calc(143 / 16 * 1rem);
  width: calc(1036 / 16 * 1rem);
  margin-top: calc(150 / 16 * 1rem);
  margin-left: calc(410 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--storage {
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-top: calc(45 / 16 * 1rem);
    margin-left: calc(23 / 16 * 1rem);
  }
}

.p-plan-conceptItem--storage .p-plan-conceptItem__text {
  grid-column: 1;
  grid-row: 1/span 2;
  margin-top: calc(21 / 16 * 1rem);
}
@media (min-width: 1024px) {
  .p-plan-conceptItem--storage .p-plan-conceptItem__text {
    width: max(480 / 16 * 1rem, 320 * 1px);
  }
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--storage .p-plan-conceptItem__text {
    margin-top: 0;
  }
}

.p-plan-conceptItem--storage .p-plan-conceptItem__text h3 {
  letter-spacing: 0.165em;
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--storage .p-plan-conceptItem__text h3 {
    margin-top: calc(45 / 16 * 1rem);
    letter-spacing: 0.05em;
  }
}

@media (min-width: 1024px) {
  .p-plan-conceptItem--storage .p-plan-conceptItem__text p {
    width: max(480 / 16 * 1rem, 320 * 1px);
  }
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem--storage .p-plan-conceptItem__text p {
    margin-top: calc(29 / 16 * 1rem);
  }
}

.p-plan-conceptItem__photo--wic {
  grid-column: 2;
  grid-row: 1;
  width: calc(412.4486 / 16 * 1rem);
  aspect-ratio: 412.4486/618.3737;
  margin-top: calc(-24 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--wic {
    width: calc(330 / 16 * 1rem);
    aspect-ratio: 330/440;
    margin-top: calc(13 / 16 * 1rem);
  }
}

.p-plan-conceptItem__photo--wic figcaption {
  margin-top: calc(3 / 16 * 1rem);
  margin-left: calc(20 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--wic figcaption {
    margin-top: calc(11 / 16 * 1rem);
    margin-left: 0;
  }
}

.p-plan-conceptItem__photo--pantry {
  grid-column: 1;
  grid-row: 2;
  width: calc(413 / 16 * 1rem);
  aspect-ratio: 413/275;
  margin-top: calc(-171 / 16 * 1rem);
  margin-left: calc(137 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--pantry {
    width: calc(330 / 16 * 1rem);
    aspect-ratio: 330/275;
    margin-top: calc(-5 / 16 * 1rem);
    margin-left: 0;
  }
}

.p-plan-conceptItem__photo--pantry figcaption {
  margin-top: calc(3 / 16 * 1rem);
  margin-left: calc(0 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-conceptItem__photo--pantry figcaption {
    margin-top: calc(9 / 16 * 1rem);
    margin-left: 0;
  }
}

.p-plan-concept__specLink {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: calc(800 / 16 * 1rem);
  margin-top: calc(224 / 16 * 1rem);
  margin-inline: auto;
  border: calc(1 / 16 * 1rem) solid #ffffff;
  padding-block: calc(26 / 16 * 1rem);
  color: #ffffff;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 2;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: color 0.35s ease, border-color 0.35s ease;
}
@media screen and (max-width: 1023px) {
  .p-plan-concept__specLink {
    width: calc(330 / 16 * 1rem);
    margin-top: calc(61 / 16 * 1rem);
    border-width: calc(1 / 16 * 1rem);
    padding-block: calc(17 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2.75;
    letter-spacing: 0.1em;
  }
}

@media (hover: hover) {
  .p-plan-roomType__link:hover {
    color: #c8b450;
  }
  .p-plan-roomType__link:hover::before,
  .p-plan-concept__specLink:hover::before {
    transform: scaleX(1);
  }
  .p-plan-concept__specLink:hover {
    border-color: #c8b450;
    color: #c8b450;
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-plan-room__card {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
  .p-plan-land__card {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
  .p-plan-conceptItem {
    margin-inline: auto;
  }
}
.p-plan-detail-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-plan-detail-main img {
  display: block;
  height: auto;
}

.p-plan-detail-main :where(h1, h2, p, th, td) {
  margin: 0;
  font-weight: 300;
}

.p-plan-detail-main figure {
  margin: 0;
}

.p-plan-detail-body {
  position: relative;
  min-height: calc(2210 / 16 * 1rem);
  padding-block-start: calc(122 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-body {
    min-height: 0;
    padding-block-start: calc(83 / 16 * 1rem);
  }
}

.p-plan-detail-body__tile {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
}

.p-plan-detail-room {
  position: relative;
  z-index: 1;
}

.p-plan-detail-room__title {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  line-height: 1;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__title {
    line-height: 1;
  }
}

.p-plan-detail-room__titleImage {
  display: block;
  width: calc(255 / 16 * 1rem);
  height: auto;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__titleImage {
    width: calc(170 / 16 * 1rem);
  }
}

.p-plan-detail-room__panel {
  position: relative;
  display: grid;
  grid-template-columns: calc(594 / 16 * 1rem) calc(534 / 16 * 1rem);
  column-gap: calc(102 / 16 * 1rem);
  align-items: start;
  width: calc(1600 / 16 * 1rem);
  min-height: calc(880 / 16 * 1rem);
  margin-block-start: calc(52 / 16 * 1rem);
  margin-inline: auto;
  padding-block: calc(106 / 16 * 1rem) calc(74 / 16 * 1rem);
  padding-inline: calc(250 / 16 * 1rem) calc(120 / 16 * 1rem);
  background-color: #d4d4d4;
  color: #595959;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__panel {
    display: block;
    width: auto;
    min-height: calc(1690 / 16 * 1rem);
    margin-block-start: calc(45 / 16 * 1rem);
    margin-inline: 0;
    padding: 0;
    overflow: visible;
    background-color: rgba(255, 255, 255, 0.9);
  }
}

.p-plan-detail-room__panel[hidden] {
  display: none;
}

.p-plan-detail-room__content {
  min-width: 0;
}

.p-plan-detail-room__description {
  color: #595649;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 2;
  letter-spacing: 0.105em;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__description {
    color: #595649;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.875;
    letter-spacing: 0.01em;
  }
}

.p-plan-detail-room__description--sp {
  display: none;
}

.p-plan-detail-room__summary {
  display: grid;
  grid-template-columns: calc(367 / 16 * 1rem) calc(169 / 16 * 1rem);
  column-gap: calc(58 / 16 * 1rem);
  align-items: start;
  margin-block-start: calc(84 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__summary {
    position: absolute;
    top: calc(572 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    display: block;
    width: calc(330 / 16 * 1rem);
    margin-block-start: 0;
  }
}

.p-plan-detail-room__type {
  display: inline-flex;
  align-items: baseline;
  column-gap: 0;
  color: #231815;
  font-size: max(38 / 16 * 1rem, 14 * 1px);
  line-height: 1.2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__type {
    font-size: max(40 / 16 * 1rem, 14 * 1px);
    line-height: 1;
    letter-spacing: 0.01em;
  }
}

.p-plan-detail-room__type-letter {
  font-size: max(55 / 16 * 1rem, 14 * 1px);
  line-height: 1;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__type-letter {
    font-size: max(60 / 16 * 1rem, 14 * 1px);
  }
}

.p-plan-detail-room__type-letter + span {
  margin-inline-start: calc(var(--type-gap, 3) / 16 * 1rem);
  font-size: max(25 / 16 * 1rem, 14 * 1px);
  letter-spacing: 0.08em;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__type-letter + span {
    font-size: max(26 / 16 * 1rem, 14 * 1px);
  }
}

.p-plan-detail-room__layout {
  margin-block-start: calc(18 / 16 * 1rem);
  color: #231815;
  font-size: max(32 / 16 * 1rem, 14 * 1px);
  line-height: 1.2;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__layout {
    margin-block-start: calc(9 / 16 * 1rem);
    font-size: max(28 / 16 * 1rem, 14 * 1px);
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }
}

.p-plan-detail-room__layout-sub {
  font-size: max(27 / 16 * 1rem, 14 * 1px);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__layout-sub {
    font-size: max(20 / 16 * 1rem, 14 * 1px);
  }
}

.p-plan-detail-room__areas {
  margin-block-start: calc(33 / 16 * 1rem);
  color: #231815;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__areas {
    margin-block-start: calc(14 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0.01em;
  }
}

.p-plan-detail-room__areaValue {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 1.6;
}

.p-plan-detail-stack {
  color: #ffffff;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-stack {
    width: calc(169 / 16 * 1rem);
    margin-block-start: calc(51 / 16 * 1rem);
    margin-inline-start: calc(65 / 16 * 1rem);
  }
}

.p-plan-detail-stack__table {
  width: calc(169 / 16 * 1rem);
  border-collapse: collapse;
  table-layout: fixed;
  font-size: max(13 / 16 * 1rem, 10 * 1px);
  line-height: 1;
  text-align: center;
}

.p-plan-detail-stack__table th,
.p-plan-detail-stack__table td {
  padding-block: calc(4 / 16 * 1rem);
  border: calc(1 / 16 * 1rem) solid #eeeeee;
  color: #ffffff;
  font-weight: 300;
  vertical-align: middle;
}

.p-plan-detail-stack__table th {
  width: calc(31 / 16 * 1rem);
  color: #9e9e9f;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  text-align: right;
  padding-inline-end: calc(8 / 16 * 1rem);
}

.p-plan-detail-stack__table td {
  width: calc(46 / 16 * 1rem);
  background-color: #9e9e9f;
}

.p-plan-detail-stack__table td.is-current {
  background-color: #ac8800;
}

.p-plan-detail-stack__table td.is-entrance {
  background-color: #b4b4b5;
}

.p-plan-detail-room__legend {
  margin-block-start: calc(86 / 16 * 1rem);
  color: #716f5f;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.6;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__legend {
    position: absolute;
    top: calc(1454 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(310 / 16 * 1rem);
    margin-block-start: 0;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: 0.04em;
    white-space: normal;
  }
}

.p-plan-detail-room__legend .p-plan-detail-room__legend-swatch {
  display: inline-block;
  vertical-align: middle;
  margin-inline-end: calc(4 / 16 * 1rem);
}

/* SP は色見本が行頭から始まり字間の空きを持たない（PC の全角スペース分の字下げは PC 専用） */
.p-plan-detail-room__legend-swatch--tsufu {
  width: calc(28 / 16 * 1rem);
  margin-inline-start: calc(40 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__legend-swatch--tsufu {
    margin-inline-start: 0;
  }
}

.p-plan-detail-room__legend-swatch--saiko {
  width: calc(28 / 16 * 1rem);
  margin-inline-start: calc(11 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__legend-swatch--saiko {
    margin-inline-start: 0;
  }
}

.p-plan-detail-room__legend-swatch--oriage {
  width: calc(29 / 16 * 1rem);
  margin-inline-start: calc(11 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__legend-swatch--oriage {
    margin-inline-start: 0;
  }
}

.p-plan-detail-room__legend-swatch--shuno {
  width: calc(29 / 16 * 1rem);
  margin-inline-start: calc(11 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__legend-swatch--shuno {
    margin-inline-start: 0;
  }
}

.p-plan-detail-room__note {
  margin-block-start: calc(18 / 16 * 1rem);
  color: #716f5f;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.2;
  letter-spacing: 0.04em;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__note {
    position: absolute;
    top: calc(1544 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    margin-block-start: 0;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

.p-plan-detail-room__floorplan {
  justify-self: start;
  width: calc(var(--floorplan-width) / 16 * 1rem);
  max-width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__floorplan {
    position: absolute;
    top: calc(40 / 16 * 1rem);
    left: 50%;
    width: calc(300 / 16 * 1rem);
    height: auto;
    max-width: none;
    margin: 0;
    overflow: visible;
    transform: translateX(-50%);
  }
}

.p-plan-detail-room__floorplan img {
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__floorplan img {
    position: static;
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

@media (min-width: 1024px) {
  .p-plan-detail-room__panel .p-plan-detail-room__floorplan {
    margin-inline-start: calc((var(--floorplan-left, 946) - 946) / 16 * 1rem);
    margin-block-start: calc((var(--floorplan-top, 108) - 106) / 16 * 1rem);
  }
}
.p-plan-detail-room__compass {
  position: absolute;
  top: calc(781 / 16 * 1rem);
  left: calc(1492 / 16 * 1rem);
  width: calc(37 / 16 * 1rem);
}

@media screen and (max-width: 1023px) {
  .p-plan-detail-room__content > .p-plan-detail-room__description {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-detail-room__summary .p-plan-detail-room__description--sp {
    display: block;
    margin-block-start: calc(27 / 16 * 1rem);
  }
}

.p-plan-detail-tabs {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, calc(140 / 16 * 1rem));
  justify-content: center;
  column-gap: calc(10 / 16 * 1rem);
  margin-block-start: calc(62 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-tabs {
    grid-template-columns: repeat(3, minmax(0, calc(100 / 16 * 1rem)));
    column-gap: calc(6 / 16 * 1rem);
    margin-block-start: calc(42 / 16 * 1rem);
  }
}

.p-plan-detail-tabs--sp {
  display: none;
}

.p-plan-detail-tabs__item {
  border: 0;
  display: grid;
  place-items: center;
  min-height: calc(30 / 16 * 1rem);
  background-color: #595959;
  color: #ffffff;
  font-family: inherit;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1;
  letter-spacing: 0.18em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-tabs__item {
    min-height: calc(30 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    letter-spacing: 0.1em;
  }
}

.p-plan-detail-tabs__item.is-current {
  background-color: #c8b450;
}

.p-plan-detail-room__back {
  position: relative;
  z-index: 1;
  display: block;
  width: fit-content;
  margin-block-start: calc(68 / 16 * 1rem);
  margin-inline: auto;
  padding-block-end: calc(13 / 16 * 1rem);
  border-block-end: calc(1 / 16 * 1rem) solid rgb(255, 255, 255);
  color: #ffffff;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 1.2;
  letter-spacing: 0.22em;
  text-decoration: none;
  transition: opacity 0.25s ease, border-color 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__back {
    margin-block-start: calc(42 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  }
}

.p-plan-detail-room__back--sp {
  display: none;
}

@media (hover: hover) {
  .p-plan-detail-tabs__item:hover {
    background-color: #c8b450;
    color: #ffffff;
  }
  .p-plan-detail-room__back:hover {
    opacity: 0.72;
    border-block-end-color: #c8b450;
  }
}
@media screen and (max-width: 1023px) {
  .p-plan-detail-room__panel .p-plan-detail-room__compass {
    top: calc(569 / 16 * 1rem);
    left: calc(308 / 16 * 1rem);
    display: block;
    width: calc(37 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-plan-detail-room > .p-plan-detail-tabs,
  .p-plan-detail-room > .p-plan-detail-room__back {
    display: none;
  }
  .p-plan-detail-room__panel .p-plan-detail-tabs--sp {
    position: absolute;
    top: calc(1372 / 16 * 1rem);
    left: calc(22.5 / 16 * 1rem);
    display: grid;
    grid-template-columns: repeat(3, calc(105 / 16 * 1rem));
    column-gap: calc(7.5 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    margin-block-start: 0;
  }
  .p-plan-detail-room__panel .p-plan-detail-room__back--sp {
    position: absolute;
    top: calc(1612 / 16 * 1rem);
    left: calc(103 / 16 * 1rem);
    display: block;
    margin: 0;
    padding-block-end: calc(10 / 16 * 1rem);
    border-block-end-color: #000000;
    color: #000000;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.1875;
    letter-spacing: 0.1em;
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-plan-detail-room__panel {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
.p-gallery-main {
  overflow-x: clip;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
  color: #ffffff;
}

.p-gallery-hero {
  position: relative;
}

.p-gallery-hero__stage {
  position: relative;
  display: grid;
  grid-template-rows: 100%;
  grid-template-columns: 100%;
  width: 100%;
  aspect-ratio: 1920/880;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-gallery-hero__stage {
    aspect-ratio: 375/600;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-gallery-hero__stage {
    height: calc(600 / 16 * 1rem);
    aspect-ratio: auto;
  }
}
.p-gallery-hero__stage > * {
  grid-area: 1/1;
}

.p-gallery-hero__image {
  display: block;
  position: absolute;
  top: -11%;
  left: 0%;
  width: 100%;
  height: 146%;
  max-width: none;
  object-fit: fill;
  margin-block-start: 0;
}
@media screen and (max-width: 1023px) {
  .p-gallery-hero__image {
    top: 0;
    left: -80%;
    width: 240%;
    height: 100%;
  }
}

.p-gallery-hero__title {
  justify-self: center;
  align-self: start;
  margin-block-start: calc(480 / 16 * 1rem);
  width: max-content;
  max-width: calc(100% - calc(80 / 16 * 1rem));
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.6em;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-gallery-hero__title {
    writing-mode: vertical-rl;
    font-size: max(21 / 16 * 1rem, 14 * 1px);
    line-height: 1.75;
    white-space: normal;
  }
}

.p-gallery-hero__heading {
  width: calc(528 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-gallery-hero__heading {
    width: calc(302 / 16 * 1rem);
  }
}

.p-gallery-hero__heading img {
  display: block;
  width: 100%;
  height: auto;
}

/* ---------- lead ---------- */
.p-gallery-lead {
  padding-block-start: calc(150 / 16 * 1rem);
  padding-block-end: 0;
}
@media screen and (max-width: 1023px) {
  .p-gallery-lead {
    padding-block-start: calc(61 / 16 * 1rem);
  }
}

.p-gallery-lead__subheading {
  width: calc(224 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(22 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-gallery-lead__subheading {
    width: calc(179 / 16 * 1rem);
    margin-block-start: calc(18 / 16 * 1rem);
  }
}

.p-gallery-lead__subheading img {
  display: block;
  width: 100%;
  height: auto;
}

.p-gallery-lead__text {
  text-align: center;
  width: max(450 / 16 * 1rem, 330 * 1px);
  max-width: 100%;
  margin-inline: auto;
  margin-block-start: calc(106 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 300;
  line-height: 2.2222222222;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-gallery-lead__text {
    width: calc(325 / 16 * 1rem);
    margin-block-start: calc(60 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

.p-gallery-lead__closing {
  width: calc(647 / 16 * 1rem);
  max-width: calc(100% - calc(80 / 16 * 1rem));
  margin-inline: auto;
  margin-block-start: calc(192 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-gallery-lead__closing {
    width: calc(181 / 16 * 1rem);
    max-width: calc(100% - calc(40 / 16 * 1rem));
    margin-block-start: calc(86 / 16 * 1rem);
  }
}

.p-gallery-lead__closing picture,
.p-gallery-lead__closing img {
  display: block;
}

.p-gallery-lead__closing img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 1023px) {
  .p-gallery-lead__closing picture.u-pc {
    display: none;
  }
}

.p-gallery-lead__closingText {
  display: block;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
  line-height: 1.9642857143;
  letter-spacing: 0.2em;
  color: #ffffff;
  text-align: center;
  white-space: nowrap;
}

/* ---------- photos (checkerboard 装飾背景 + 13枚の不規則コラージュ) ---------- */
.p-gallery-photos {
  position: relative;
  padding-block-end: calc(187 / 16 * 1rem);
}

.p-gallery-photos__inner {
  padding-block-start: calc(29 / 16 * 1rem);
}

.p-gallery-photos__heading {
  width: calc(256 / 16 * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__heading {
    width: calc(228 / 16 * 1rem);
  }
}

.p-gallery-photos__heading img {
  display: block;
  width: 100%;
  height: auto;
}

.p-gallery-photos__stage {
  position: relative;
  width: calc(1100 / 16 * 1rem);
  max-width: calc(100% - calc(80 / 16 * 1rem));
  aspect-ratio: 1100/1840;
  margin-inline: auto;
  margin-block-start: calc(85 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__stage {
    width: calc(331 / 16 * 1rem);
    max-width: calc(100% - calc(40 / 16 * 1rem));
    aspect-ratio: 331/1332;
    margin-block-start: calc(44 / 16 * 1rem);
  }
}

.p-gallery-photos__item {
  position: absolute;
  z-index: 1;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: none;
  cursor: default;
  font: inherit;
  color: inherit;
  text-align: left;
  transition: opacity 0.25s ease;
}

.p-gallery-photos__item[data-gallery-item] {
  cursor: pointer;
}

.p-gallery-photos__item > picture {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

.p-gallery-photos__item > picture > img,
.p-gallery-photos__item > img {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: fill;
}

.p-gallery-photos__caption {
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: calc(-4 / 16 * 1rem);
  display: none;
  padding-inline-start: calc(11 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 300;
  line-height: 2.2222222222;
  letter-spacing: 0.2em;
  color: #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__caption {
    display: block;
    bottom: calc(6 / 16 * 1rem);
    padding-inline-start: calc(8 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5416666667;
    letter-spacing: 0.05em;
  }
}

.p-gallery-photos__zoom {
  position: absolute;
  z-index: 2;
  right: calc(8 / 16 * 1rem);
  bottom: calc(7 / 16 * 1rem);
  display: none;
  width: calc(13 / 16 * 1rem);
  height: calc(13 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__zoom {
    display: block;
    right: calc(5 / 16 * 1rem);
    bottom: calc(4 / 16 * 1rem);
    width: calc(14 / 16 * 1rem);
    height: calc(14 / 16 * 1rem);
  }
}

.p-gallery-photos__zoom img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-gallery-photos__item--p01 {
  left: 67.2727%;
  top: 0%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p01 {
    left: 0%;
    top: 12.5375%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p01 > picture > img,
  .p-gallery-photos__item--p01 > img {
    left: 0%;
    top: -19%;
    width: 101%;
    height: 151%;
  }
}

.p-gallery-photos__item--p02 {
  left: 0%;
  top: 0%;
  width: 66.3636%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p02 {
    left: 0%;
    top: 0%;
    width: 100%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p02 > picture > img,
  .p-gallery-photos__item--p02 > img {
    left: -2%;
    top: -37%;
    width: 103%;
    height: 139%;
  }
}

.p-gallery-photos__item--p03 {
  left: 0%;
  top: 20.1087%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p03 {
    left: 0.1513%;
    top: 25.0751%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p03 > picture > img,
  .p-gallery-photos__item--p03 > img {
    left: -33%;
    top: -15%;
    width: 174%;
    height: 116%;
  }
}

.p-gallery-photos__item--p04 {
  left: 67.2727%;
  top: 20.1087%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p04 {
    left: 50.6808%;
    top: 12.5375%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p04 > picture > img,
  .p-gallery-photos__item--p04 > img {
    left: -60%;
    top: -21%;
    width: 182%;
    height: 121%;
  }
}

.p-gallery-photos__item--p05 {
  left: 33.6364%;
  top: 20.1087%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p05 {
    left: 50.6808%;
    top: 25.0751%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p05 > picture > img,
  .p-gallery-photos__item--p05 > img {
    left: -74%;
    top: -11%;
    width: 178%;
    height: 118%;
  }
}

.p-gallery-photos__item--p06 {
  left: 33.6364%;
  top: 40.2174%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p06 {
    left: 50.6808%;
    top: 50.1502%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p06 > picture > img,
  .p-gallery-photos__item--p06 > img {
    left: -37%;
    top: -3%;
    width: 159%;
    height: 106%;
  }
}

.p-gallery-photos__item--p07 {
  left: 0%;
  top: 40.2174%;
  width: 32.7273%;
  height: 39.6739%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p07 {
    left: 0.1513%;
    top: 37.6126%;
    width: 49.3192%;
    height: 24.7748%;
  }
  .p-gallery-photos__item--p07 > picture > img,
  .p-gallery-photos__item--p07 > img {
    left: -32%;
    top: -5%;
    width: 158%;
    height: 117%;
  }
}

.p-gallery-photos__item--p08 {
  left: 67.2727%;
  top: 40.2174%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p08 {
    left: 50.6808%;
    top: 37.6126%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p08 > picture > img,
  .p-gallery-photos__item--p08 > img {
    left: -1%;
    top: -35%;
    width: 103%;
    height: 154%;
  }
}

.p-gallery-photos__item--p09 {
  left: 33.6364%;
  top: 60.3261%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p09 {
    left: 0.1513%;
    top: 62.6877%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p09 > picture > img,
  .p-gallery-photos__item--p09 > img {
    left: -66%;
    top: -41%;
    width: 236%;
    height: 157%;
  }
}

.p-gallery-photos__item--p10 {
  left: 67.2727%;
  top: 60.3261%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p10 {
    left: 50.6808%;
    top: 75.2252%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p10 > picture > img,
  .p-gallery-photos__item--p10 > img {
    left: -4%;
    top: -47%;
    width: 126%;
    height: 188%;
  }
}

.p-gallery-photos__item--p11 {
  left: 0%;
  top: 80.4348%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p11 {
    left: 50.6808%;
    top: 62.6877%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p11 > picture > img,
  .p-gallery-photos__item--p11 > img {
    left: -14%;
    top: -1%;
    width: 154%;
    height: 103%;
  }
}

.p-gallery-photos__item--p12 {
  left: 67.2727%;
  top: 80.4348%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p12 {
    left: 0.1513%;
    top: 87.7628%;
    width: 99.8487%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p12 > picture > img,
  .p-gallery-photos__item--p12 > img {
    left: -1%;
    top: -27%;
    width: 101%;
    height: 136%;
  }
}

.p-gallery-photos__item--p13 {
  left: 33.6364%;
  top: 80.4348%;
  width: 32.7273%;
  height: 19.5652%;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__item--p13 {
    left: 0.1513%;
    top: 75.2252%;
    width: 49.3192%;
    height: 12.2372%;
  }
  .p-gallery-photos__item--p13 > picture > img,
  .p-gallery-photos__item--p13 > img {
    left: -8%;
    top: -4%;
    width: 159%;
    height: 106%;
  }
}

.p-gallery-photos__closing {
  margin-block-start: calc(299 / 16 * 1rem);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 2.1818181818;
  letter-spacing: 0.2em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-gallery-photos__closing {
    margin-block-start: calc(57 / 16 * 1rem);
    padding-block-end: calc(114 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 2;
    letter-spacing: 0.05em;
  }
}

/* ---------- lightbox（写真クリックで拡大。9/13枚のみ虫眼鏡アイコン表示だが13枚全てクリック可） ---------- */
.p-gallery-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 200;
  display: grid;
  place-items: center;
}

.p-gallery-lightbox[hidden] {
  display: none;
}

.p-gallery-lightbox__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(0, 0, 0);
}

.p-gallery-lightbox__panel {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  column-gap: calc(24 / 16 * 1rem);
  max-width: calc(100vw - calc(80 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-gallery-lightbox__panel {
    column-gap: calc(8 / 16 * 1rem);
    max-width: calc(100vw - calc(24 / 16 * 1rem));
  }
}

.p-gallery-lightbox__stage {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: calc(1200 / 16 * 1rem);
  max-height: 80vh;
}

.p-gallery-lightbox__image {
  display: block;
  width: auto;
  height: auto;
  max-width: calc(1200 / 16 * 1rem);
  max-height: 80vh;
  object-fit: contain;
}

.p-gallery-lightbox__prev,
.p-gallery-lightbox__next {
  flex: none;
  padding: 0;
  border: 0;
  background: none;
  color: #ffffff;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-size: max(48 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.75;
  cursor: pointer;
  transition: opacity 0.25s ease;
}
@media screen and (max-width: 1023px) {
  .p-gallery-lightbox__prev,
  .p-gallery-lightbox__next {
    font-size: max(28 / 16 * 1rem, 14 * 1px);
  }
}

@media (hover: hover) {
  .p-gallery-photos__item[data-gallery-item]:hover,
  .p-gallery-lightbox__prev:hover,
  .p-gallery-lightbox__next:hover,
  .p-gallery-lightbox__close:hover {
    opacity: 0.72;
  }
}
.p-gallery-lightbox__close {
  position: absolute;
  z-index: 2;
  top: calc(100% + calc(20 / 16 * 1rem));
  left: 50%;
  transform: translateX(-50%);
  padding: 0;
  border: 0;
  background: none;
  color: #ffffff;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  transition: opacity 0.25s ease;
  font-weight: 300;
  letter-spacing: 0.2em;
  cursor: pointer;
}
@media screen and (max-width: 1023px) {
  .p-gallery-lightbox__close {
    top: calc(100% + calc(12 / 16 * 1rem));
    font-size: max(13 / 16 * 1rem, 10 * 1px);
  }
}

.page-gallery .p-gallery-open__subtitle {
  margin-inline: auto;
}
@media screen and (max-width: 1023px) {
  .page-gallery .p-gallery-open__subtitle {
    max-width: calc(100vw - calc(32 / 16 * 1rem));
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    letter-spacing: 0.12em;
  }
}

/* ===== p-quality1: QUALITY 1（暮らしのファシリティ）===== */
.p-quality1-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-quality1-main img {
  display: block;
}

.p-quality1-main :where(h1, h2, h3, p, dt, dd) {
  margin: 0;
  font-weight: 400;
}

.p-quality1-main figure {
  margin: 0;
}

.p-quality1-inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
  padding-inline: 0;
}
@media screen and (max-width: 1023px) {
  .p-quality1-inner {
    max-width: 100%;
    padding-inline: calc(20 / 16 * 1rem);
  }
}

.p-quality1-heading {
  display: flex;
  align-items: baseline;
  column-gap: calc(20 / 16 * 1rem);
  padding-block-end: calc(10 / 16 * 1rem);
  border-block-end: 1px solid currentColor;
}
@media screen and (max-width: 1023px) {
  .p-quality1-heading {
    padding-block-end: calc(7 / 16 * 1rem);
  }
}

.p-quality1-heading__title {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.18;
  letter-spacing: 0.2em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-quality1-heading__title {
    font-size: max(15 / 16 * 1rem, 11.25 * 1px);
  }
}

.p-quality1-heading__en {
  width: calc(179 / 16 * 1rem);
  max-width: 45%;
  margin-inline-start: auto;
  height: auto;
  flex-shrink: 0;
}
@media screen and (max-width: 1023px) {
  .p-quality1-heading__en {
    width: calc(90 / 16 * 1rem);
    max-width: 34%;
  }
}

/* ---------- dark body wrapper（FV 下端〜gallery-open まで連続する checker-tile 背景）---------- */
.p-quality1-body {
  position: relative;
}

.p-quality1-body__tile {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

/* ---------- intro（QUALITY / COMFORT & FUNCTION / リード文 / 暮らしのファシリティ）---------- */
.p-quality1-intro {
  position: relative;
  padding-block-start: calc(150 / 16 * 1rem);
  padding-block-end: calc(111 / 16 * 1rem);
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-quality1-intro {
    padding-block-start: calc(61 / 16 * 1rem);
    padding-block-end: calc(45 / 16 * 1rem);
  }
}

.p-quality1-intro__title {
  width: calc(506 / 16 * 1rem);
  margin-inline: auto;
}

@media screen and (max-width: 1023px) {
  img.p-quality1-intro__title {
    width: calc(289 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  img.p-quality1-intro__subtitle {
    width: calc(239 / 16 * 1rem);
    margin-block-start: calc(22 / 16 * 1rem);
  }
}

.p-quality1-intro__subtitle {
  width: calc(362 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(24 / 16 * 1rem);
}

.p-quality1-intro__lead {
  margin-block-start: calc(108 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  line-height: 2.22;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-quality1-intro__lead {
    margin-block-start: calc(52 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 300;
    line-height: 2.286;
    letter-spacing: 0.05em;
    white-space: normal;
  }
}

.p-quality1-intro__heading {
  margin-block-start: calc(319 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(26 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-intro__heading {
    display: none;
  }
}

.p-quality1-intro__facilities {
  width: calc(137 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(19.18 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-intro__facilities {
    width: calc(122 / 16 * 1rem);
    margin-block-start: calc(106 / 16 * 1rem);
  }
}

.p-quality1-lower > * {
  position: relative;
}

/* AI カンプはプロポーショナルメトリクス（palt）+トラッキング前提で行組みされている。
   ブラウザ既定(palt off)だと全行が太り +1 行折れが多発するため、本文域は palt を標準適用 */
.p-quality1-lower {
  font-feature-settings: "palt";
}

/* design の本文は W3（細字）= Noto 300 に対応（400 へ丸めると全体が濃く見える）。太字は後続の 700 指定が勝つ */
.p-quality1-lower :where(h2, h3, p) {
  font-weight: 300;
}

.p-quality1-lower__tabs .c-quality-tabs__link {
  font-weight: 300;
}

.p-quality1-lower__tabs {
  margin-block-start: calc(317 / 16 * 1rem);
  padding-block-end: calc(156 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-lower__tabs {
    margin-block-start: calc(119 / 16 * 1rem);
    padding-block-end: calc(0 / 16 * 1rem); /* design のタブ→gallery 間隔を維持（自然折返しの累積は契約許容） */
  }
}

/* SP デザインのみに存在するタブ上ラベル（PC design には無い）。.p-quality1-main img より詳細度を上げる */
img.p-quality1-lower__tabsLabel {
  display: none;
}
@media screen and (max-width: 1023px) {
  img.p-quality1-lower__tabsLabel {
    display: block;
    width: calc(132 / 16 * 1rem);
    margin-inline: auto;
  }
}

/* picture ラッパーはレイアウト透過にする（inline の行ボックス混入と flex shrink を防ぐ） */
.p-quality1-lower picture {
  display: block;
}

.p-quality1-zehPanel > picture {
  flex-shrink: 0;
  align-self: flex-start;
}

/* ---------- ZEH ---------- */
.p-quality1-zeh {
  padding-block-start: calc(104 / 16 * 1rem);
  padding-block-end: calc(80 / 16 * 1rem);
  background-color: #eaeae6;
  color: #231815;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zeh {
    padding-block-start: calc(40 / 16 * 1rem);
    padding-block-end: calc(37 / 16 * 1rem);
    background-color: rgb(255, 255, 255); /* SP design の帯は白90%相当（design-ref 実測 #eaeaea）。PC の 80% を流用しない */
  }
}

.p-quality1-zeh .p-quality1-heading {
  color: #000000;
}

.p-quality1-zeh__subtitle {
  margin-block-start: calc(90 / 16 * 1rem);
  margin-inline-start: calc(160 / 16 * 1rem);
  font-size: max(24 / 16 * 1rem, 14 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.583;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zeh__subtitle {
    margin-block-start: calc(45 / 16 * 1rem);
    margin-inline-start: 0;
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif; /* SP design は明朝 W3（PC はゴシック W6 のレーン差） */
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    font-weight: 300;
    line-height: 1.556;
    letter-spacing: 0.1em;
    text-align: left;
  }
}

.p-quality1-zeh__lead {
  width: calc(781 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(13 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zeh__lead {
    width: 100%;
    margin-block-start: calc(16 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
  }
}

.p-quality1-zeh__cards {
  display: flex;
  column-gap: calc(100 / 16 * 1rem);
  margin-block-start: calc(58 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zeh__cards {
    display: block;
    margin-block-start: calc(53 / 16 * 1rem);
  }
}

/* --- ZEH カード（左右 2 枚・幅は隣接境界の引き算 = 500） --- */
.p-quality1-zehCard {
  width: calc(500 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard {
    width: 100%;
  }
}

.p-quality1-zehCard__head {
  display: flex;
  align-items: flex-start;
}

.p-quality1-zehCard__badge {
  position: relative;
  z-index: 1;
  width: fit-content;
  margin-inline-start: calc(-24 / 16 * 1rem);
  padding-block: calc(4 / 16 * 1rem);
  padding-inline: calc(16 / 16 * 1rem);
  border-radius: calc(21 / 16 * 1rem);
  background-color: #000000;
  color: #ffffff;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 600;
  line-height: 2.1875;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__badge {
    margin-inline-start: calc(-10 / 16 * 1rem);
    padding-block: calc(3 / 16 * 1rem);
    padding-inline: calc(13 / 16 * 1rem);
    border-radius: calc(18 / 16 * 1rem);
    font-size: max(13 / 16 * 1rem, 10 * 1px);
    line-height: 2.1875;
  }
}

.p-quality1-zehCard__pill {
  width: calc(267 / 16 * 1rem);
  margin-inline-start: auto;
  margin-block-start: calc(-9 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__pill {
    width: calc(176 / 16 * 1rem);
    margin-block-start: calc(-8 / 16 * 1rem);
  }
}

.p-quality1-zehCard__title {
  margin-block-start: calc(18 / 16 * 1rem);
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.591;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__title {
    width: calc(163 / 16 * 1rem);
    margin-block-start: calc(12 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.441;
  }
}

.p-quality1-zehCard__photo {
  align-self: flex-start;
  position: relative;
  width: calc(216 / 16 * 1rem);
  aspect-ratio: 1/1;
  margin-block-start: calc(35 / 16 * 1rem);
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__photo {
    width: calc(142 / 16 * 1rem);
    margin-block-start: calc(28 / 16 * 1rem);
    margin-inline-start: auto;
  }
}

.p-quality1-zehCard__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality1-zehCard--health .p-quality1-zehCard__photo > img {
  object-position: 50% 50%;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--health .p-quality1-zehCard__photo > img {
    position: absolute;
    top: -54.18%;
    left: -9.23%;
    width: 111.7%;
    height: auto;
    max-width: none;
    object-fit: contain;
  }
}

.p-quality1-zehCard--cost .p-quality1-zehCard__photo > img {
  object-position: 50% 50%;
}

.p-quality1-zehCard__photoNote {
  position: absolute;
  z-index: 1;
  top: calc(192 / 16 * 1rem);
  left: calc(9 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2.333;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__photoNote {
    top: calc(126 / 16 * 1rem);
    left: calc(6 / 16 * 1rem);
    font-size: max(8 / 16 * 1rem, 8 * 1px);
    line-height: 2.333;
  }
}

.p-quality1-zehCard--health .p-quality1-zehCard__photoNote {
  color: #000000;
}

.p-quality1-zehCard--cost .p-quality1-zehCard__photoNote {
  color: #ffffff;
}

.p-quality1-zehCard__body {
  margin-block-start: calc(15 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__body {
    margin-block-start: calc(13 / 16 * 1rem);
    font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif; /* SP design はゴシック（PC は明朝のレーン差） */
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

.p-quality1-zehCard__bar {
  margin-block-start: calc(32 / 16 * 1rem);
  padding-block: calc(13 / 16 * 1rem);
  color: #ffffff;
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.359;
  letter-spacing: 0.05em;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__bar {
    margin-block-start: calc(19 / 16 * 1rem);
    padding-block: calc(8 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.15;
  }
}

.p-quality1-zehCard--health .p-quality1-zehCard__bar {
  background-color: #81b650;
}

.p-quality1-zehCard--cost .p-quality1-zehCard__bar {
  background-color: #4da155;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--cost .p-quality1-zehCard__bar {
    margin-block-start: calc(19 / 16 * 1rem);
  }
}

.p-quality1-zehCard__diagramWrap {
  width: fit-content;
  margin-inline: auto;
  margin-block-start: calc(25 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__diagramWrap {
    margin-block-start: calc(17 / 16 * 1rem);
  }
}

.p-quality1-zehCard--health .p-quality1-zehCard__diagram {
  width: calc(291 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--health .p-quality1-zehCard__diagram {
    width: calc(245 / 16 * 1rem);
  }
}

.p-quality1-zehCard--cost .p-quality1-zehCard__diagram {
  width: calc(356 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--cost .p-quality1-zehCard__diagram {
    width: calc(300 / 16 * 1rem);
  }
}

.p-quality1-zehCard__source {
  margin-block-start: calc(15 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2.269;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehCard__source {
    margin-block-start: calc(10 / 16 * 1rem);
    margin-inline-start: calc(-6 / 16 * 1rem); /* design: 出典はカラム左端基準（diagramWrap 中央寄せの外） */
    font-size: max(11 / 16 * 1rem, 10 * 1px);
    line-height: 1.634;
  }
}

/* --- ZEH-M Oriented パネル --- */
.p-quality1-zehPanel {
  display: flex;
  column-gap: calc(36 / 16 * 1rem);
  margin-block-start: calc(37 / 16 * 1rem);
  padding-block: calc(36 / 16 * 1rem) calc(32 / 16 * 1rem);
  padding-inline: calc(37 / 16 * 1rem) calc(39 / 16 * 1rem);
  background-color: #fafaf9;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel {
    display: block;
    margin-block-start: calc(64 / 16 * 1rem);
    padding: 0;
    background-color: transparent;
  }
}

.p-quality1-zehPanel__badge {
  flex-shrink: 0;
  width: calc(306 / 16 * 1rem);
  margin-block-start: calc(73 / 16 * 1rem);
  align-self: flex-start;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel__badge {
    width: calc(306 / 16 * 1rem);
    margin-block-start: 0;
  }
}

.p-quality1-zehPanel__content {
  flex: 1;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel__content {
    margin-inline-start: calc(2 / 16 * 1rem);
  }
}

.p-quality1-zehPanel__title {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.556;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel__title {
    margin-block-start: calc(27 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: 0.1em;
    color: #000000;
  }
}

.p-quality1-zehPanel__body {
  margin-block-start: calc(22 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel__body {
    margin-block-start: calc(15 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 2;
    color: #000000;
  }
}

.p-quality1-zehPanel__source {
  margin-block-start: calc(1 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2.333;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-zehPanel__source {
    margin-block-start: calc(11 / 16 * 1rem);
    margin-inline-start: calc(3 / 16 * 1rem);
    width: calc(330 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

/* ---------- COMFORT STYLE（快適な暮らしの仕様・ダーク帯） ---------- */
.p-quality1-comfort {
  padding-block-start: calc(257 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort {
    padding-block-start: calc(92 / 16 * 1rem);
  }
}

.p-quality1-comfort .p-quality1-heading__en {
  width: calc(187 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort .p-quality1-heading__en {
    width: calc(105 / 16 * 1rem);
  }
}

.p-quality1-comfort__cols {
  display: flex;
  column-gap: calc(100 / 16 * 1rem);
  align-items: flex-start;
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort__cols {
    display: block;
  }
}

.p-quality1-comfort__col {
  width: calc(500 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort__col {
    width: 100%;
  }
}

.p-quality1-comfort__col--left > :first-child {
  margin-block-start: calc(90 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort__col--left > :first-child {
    margin-block-start: calc(33 / 16 * 1rem);
  }
}

.p-quality1-comfort__col--right > :first-child {
  margin-block-start: calc(82 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort__col--right > :first-child {
    margin-block-start: calc(58 / 16 * 1rem);
  }
}

.p-quality1-facility {
  display: flex;
  justify-content: space-between;
}

.p-quality1-facility__text {
  width: calc(281 / 16 * 1rem);
}

.p-quality1-facility__title {
  width: calc(100% + calc(4 / 16 * 1rem));
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility__title {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.48043125;
  }
}

.p-quality1-facility__body {
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.875;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility__body {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.5;
  }
}

.p-quality1-facility__note {
  margin-block-start: calc(5 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.011;
  letter-spacing: 0.02em;
}

.p-quality1-facility__photos {
  align-self: flex-start;
  flex-shrink: 0;
  margin-inline-start: auto;
}

.p-quality1-facility__photo {
  position: relative;
  width: calc(190 / 16 * 1rem);
  overflow: hidden;
}

.p-quality1-facility__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality1-facility__photoNote {
  position: absolute;
  z-index: 1;
  left: calc(7 / 16 * 1rem);
  bottom: calc(6 / 16 * 1rem);
  color: #ffffff;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1;
}

/* 駐車場+EV（写真 2 枚縦積み・間隔 0） */
.p-quality1-facility--parking .p-quality1-facility__body {
  margin-block-start: calc(12 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__body {
    margin-block-start: calc(13 / 16 * 1rem);
  }
}

.p-quality1-facility--parking .p-quality1-facility__photos {
  margin-block-start: calc(8 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__photos {
    display: flex;
    margin-block-start: calc(13 / 16 * 1rem);
  }
}

.p-quality1-facility--parking .p-quality1-facility__photo {
  aspect-ratio: 190/145;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__photo {
    width: calc(165 / 16 * 1rem);
    aspect-ratio: 165/126;
  }
}

.p-quality1-facility--parking .p-quality1-facility__photo--parking > img {
  object-position: 7% 70%;
}

.p-quality1-facility--parking .p-quality1-facility__photo--parking .p-quality1-facility__photoNote {
  left: calc(7 / 16 * 1rem);
  bottom: calc(6 / 16 * 1rem);
}

.p-quality1-facility--parking .p-quality1-facility__photo--ev > img {
  object-position: 39% 77%;
}

.p-quality1-facility--parking .p-quality1-facility__photo--ev .p-quality1-facility__photoNote {
  bottom: calc(7 / 16 * 1rem);
}

/* ペット */
.p-quality1-facility--pet {
  margin-block-start: calc(125 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet {
    margin-block-start: calc(53 / 16 * 1rem);
  }
}

.p-quality1-facility--pet .p-quality1-facility__body {
  margin-block-start: calc(14 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet .p-quality1-facility__body {
    margin-block-start: calc(11 / 16 * 1rem);
  }
}

.p-quality1-facility--pet .p-quality1-facility__photo {
  margin-block-start: calc(8 / 16 * 1rem);
  aspect-ratio: 190/180;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet .p-quality1-facility__photo {
    width: calc(125 / 16 * 1rem);
    aspect-ratio: 125/118;
    margin-block-start: calc(12 / 16 * 1rem);
  }
}

.p-quality1-facility--pet .p-quality1-facility__photo > img {
  object-position: 77% 33%;
}

.p-quality1-facility--pet .p-quality1-facility__photoNote {
  left: calc(8 / 16 * 1rem);
  bottom: calc(15 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet .p-quality1-facility__photoNote {
    left: calc(5 / 16 * 1rem);
    bottom: calc(3 / 16 * 1rem);
    font-size: max(8 / 16 * 1rem, 8 * 1px);
    line-height: 1.575;
  }
}

/* 宅配ボックス */
.p-quality1-facility--delivery {
  margin-block-start: calc(122 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery {
    margin-block-start: calc(57 / 16 * 1rem);
  }
}

.p-quality1-facility--delivery .p-quality1-facility__body {
  margin-block-start: calc(11 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery .p-quality1-facility__body {
    margin-block-start: calc(16 / 16 * 1rem);
  }
}

.p-quality1-facility--delivery .p-quality1-facility__photo {
  margin-block-start: calc(8 / 16 * 1rem);
  aspect-ratio: 190/180;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery .p-quality1-facility__photo {
    width: calc(125 / 16 * 1rem);
    aspect-ratio: 125/118;
    margin-block-start: calc(42 / 16 * 1rem);
  }
}

.p-quality1-facility--delivery .p-quality1-facility__photo > img {
  object-position: 93% 24%;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery .p-quality1-facility__photo > img {
    position: absolute;
    top: -6.36%;
    left: -63.4%;
    width: 168.4%;
    height: auto;
    max-width: none;
    object-fit: contain;
  }
}

.p-quality1-facility--delivery .p-quality1-facility__photoNote {
  bottom: calc(13 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery .p-quality1-facility__photoNote {
    left: calc(5 / 16 * 1rem);
    bottom: calc(2 / 16 * 1rem);
    font-size: max(8 / 16 * 1rem, 8 * 1px);
    line-height: 1.575;
  }
}

/* 光インターネット（右列先頭） */
.p-quality1-facility--internet .p-quality1-facility__body {
  margin-block-start: calc(8 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__body {
    margin-block-start: calc(14 / 16 * 1rem);
  }
}

.p-quality1-facility--internet .p-quality1-facility__photo {
  margin-block-start: calc(10 / 16 * 1rem);
  aspect-ratio: 1/1;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__photo {
    width: calc(125 / 16 * 1rem);
    aspect-ratio: 125/110;
    margin-block-start: calc(32 / 16 * 1rem);
  }
}

.p-quality1-facility--internet .p-quality1-facility__photo > img {
  object-position: 1% 29%;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__photo > img {
    position: absolute;
    top: -11.67%;
    left: -1.86%;
    width: 192.1%;
    height: auto;
    max-width: none;
    object-fit: contain;
  }
}

.p-quality1-facility--internet .p-quality1-facility__photoNote {
  left: calc(11 / 16 * 1rem);
  bottom: calc(9 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__photoNote {
    left: calc(3 / 16 * 1rem);
    bottom: calc(1 / 16 * 1rem);
  }
}

/* 電気料金（右列末尾・右セルは金縁バッジ） */
.p-quality1-facility--electric {
  margin-block-start: calc(113 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--electric {
    display: block;
    margin-block-start: calc(62 / 16 * 1rem);
  }
}

.p-quality1-facility--electric .p-quality1-facility__body {
  margin-block-start: calc(11 / 16 * 1rem);
  letter-spacing: 0.06em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-facility--electric .p-quality1-facility__body {
    margin-block-start: calc(16 / 16 * 1rem);
  }
}

/* --- FNJ パネル（クリーム） --- */
.p-quality1-fnj {
  display: block;
  margin-block-start: calc(22 / 16 * 1rem);
  padding-block: calc(28 / 16 * 1rem) calc(24 / 16 * 1rem);
  padding-inline: calc(26 / 16 * 1rem) calc(29 / 16 * 1rem);
  background-color: #f2e7d0;
  color: #231815;
}
@media screen and (max-width: 1023px) {
  .p-quality1-fnj {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(22 / 16 * 1rem);
    margin-inline-start: calc(2.5 / 16 * 1rem);
    padding-block: calc(21 / 16 * 1rem) calc(16 / 16 * 1rem);
    padding-inline: calc(12 / 16 * 1rem) calc(13 / 16 * 1rem);
  }
}

.p-quality1-fnj__row {
  display: flex;
}

.p-quality1-fnj__content {
  flex: 1;
  min-width: 0;
}

.p-quality1-fnj__title {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.357;
  letter-spacing: 0.09em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-fnj__title {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.149;
    letter-spacing: 0;
    white-space: nowrap;
  }
}

.p-quality1-fnj__body {
  width: calc(269 / 16 * 1rem);
  margin-block-start: 0;
  font-size: max(13 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-fnj__body {
    width: calc(177 / 16 * 1rem);
    margin-block-start: calc(12 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
  }
}

.p-quality1-fnj__logo {
  flex-shrink: 0;
  width: calc(148 / 16 * 1rem);
  margin-block-start: calc(1 / 16 * 1rem); /* row 内: design のロゴ上端 43 − タイトル 27 − row 上余白 15 */
  align-self: flex-start;
}
@media screen and (max-width: 1023px) {
  .p-quality1-fnj__logo {
    width: calc(103 / 16 * 1rem);
    margin-block-start: calc(25 / 16 * 1rem);
  }
}

.p-quality1-fnj__row {
  margin-block-start: calc(15 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-fnj__row {
    margin-block-start: calc(2 / 16 * 1rem);
  }
}

.p-quality1-comfort__fnjNote {
  margin-block-start: calc(5 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.583;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-comfort__fnjNote {
    margin-block-start: calc(10 / 16 * 1rem);
    font-size: max(10 / 16 * 1rem, 10 * 1px);
    line-height: 1.6;
  }
}

/* --- マルチメディア・コンセント パネル（白枠） --- */
.p-quality1-outlet {
  display: block;
  margin-block-start: calc(19 / 16 * 1rem);
  padding-block: calc(30 / 16 * 1rem) calc(18 / 16 * 1rem);
  padding-inline: calc(38 / 16 * 1rem) calc(37 / 16 * 1rem);
  border: 1px solid #ffffff;
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet {
    margin-block-start: calc(33 / 16 * 1rem);
    padding-block: calc(19 / 16 * 1rem) calc(24 / 16 * 1rem);
    padding-inline: calc(16 / 16 * 1rem) calc(16 / 16 * 1rem);
    position: relative;
  }
}

.p-quality1-outlet__row {
  display: flex;
}

.p-quality1-outlet__content {
  width: calc(311 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet__content {
    width: calc(205 / 16 * 1rem);
  }
}

.p-quality1-outlet__title {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.508;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet__title {
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.279;
  }
}

.p-quality1-outlet__body {
  margin-block-start: 0;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 2;
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet__body {
    margin-block-start: calc(15 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: -0.02em;
  }
}

.p-quality1-outlet__note {
  margin-block-start: calc(8 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.372;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet__note {
    margin-block-start: calc(7 / 16 * 1rem);
    font-size: max(10 / 16 * 1rem, 10 * 1px);
    line-height: 1.086;
  }
}

.p-quality1-outlet__row {
  margin-block-start: calc(15 / 16 * 1rem);
}

.p-quality1-outlet__photo {
  align-self: flex-start;
  position: relative;
  width: calc(95 / 16 * 1rem);
  aspect-ratio: 95/94;
  margin-block-start: calc(-6 / 16 * 1rem); /* design: 写真上端はタイトル行に僅かに掛かる（横は重ならない） */
  margin-inline-start: auto;
  overflow: hidden;
}
@media screen and (max-width: 1023px) {
  .p-quality1-outlet__photo {
    position: absolute;
    z-index: 1;
    top: calc(39 / 16 * 1rem);
    right: calc(-24 / 16 * 1rem);
    width: calc(154 / 16 * 1rem);
    aspect-ratio: 154/103;
    margin: 0;
  }
}

.p-quality1-outlet__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 46% 52%;
}

/* --- 電気料金バッジ（金縁・A1明朝ロックアップ） --- */
.p-quality1-priceBadge {
  align-self: flex-start;
  flex-shrink: 0;
  width: calc(192 / 16 * 1rem);
  aspect-ratio: 192/182;
  margin-block-start: calc(7 / 16 * 1rem);
  border: calc(2 / 16 * 1rem) solid #b39b59;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-weight: 600;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge {
    display: flex;
    align-items: flex-start;
    width: 100%;
    aspect-ratio: 330/116;
    margin-block-start: calc(38 / 16 * 1rem);
  }
}

/* ロックアップは design の重なり組版（行ボックスが交差）のため負マージンで写経 */
.p-quality1-priceBadge :where(p) {
  font-weight: 600;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge :where(p) {
    font-weight: 600;
  }
}

.p-quality1-priceBadge__label {
  margin-block-start: calc(9 / 16 * 1rem);
  margin-inline-start: calc(52 / 16 * 1rem);
  color: #ffffff;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  line-height: 2.445;
  letter-spacing: 0.19em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__label {
    order: 1;
    margin-block-start: calc(23 / 16 * 1rem);
    margin-inline-start: calc(17 / 16 * 1rem);
    font-size: max(18 / 16 * 1rem, 13.5 * 1px);
    line-height: 2.445;
    letter-spacing: 0.19em;
  }
}

.p-quality1-priceBadge__figure {
  margin-block-start: calc(-31 / 16 * 1rem);
  margin-inline-start: calc(27 / 16 * 1rem);
  color: #b39b59;
  font-size: max(57 / 16 * 1rem, 14 * 1px);
  line-height: 1.787;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__figure {
    order: 2;
    margin-block-start: calc(-3 / 16 * 1rem);
    margin-inline-start: calc(6 / 16 * 1rem);
    font-size: max(51 / 16 * 1rem, 14 * 1px);
    line-height: 1.787;
    letter-spacing: 0.05em;
  }
}

.p-quality1-priceBadge__figure > .-tilde {
  font-size: max(36 / 16 * 1rem, 14 * 1px);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__figure > .-tilde {
    font-size: max(33 / 16 * 1rem, 14 * 1px);
  }
}

.p-quality1-priceBadge__percent {
  margin-block-start: calc(-69 / 16 * 1rem);
  margin-inline-start: calc(135 / 16 * 1rem);
  color: #b39b59;
  font-size: max(33 / 16 * 1rem, 14 * 1px);
  line-height: 1.614;
  letter-spacing: 0.19em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__percent {
    order: 3;
    margin-block-start: calc(26 / 16 * 1rem);
    margin-inline-start: calc(-2 / 16 * 1rem);
    font-size: max(30 / 16 * 1rem, 14 * 1px);
    line-height: 1.614;
  }
}

.p-quality1-priceBadge__word {
  margin-block-start: calc(-14 / 16 * 1rem);
  margin-inline-start: calc(54 / 16 * 1rem);
  color: #ffffff;
  font-size: max(33 / 16 * 1rem, 14 * 1px);
  line-height: 1.63;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__word {
    order: 4;
    margin-block-start: calc(27 / 16 * 1rem);
    margin-inline-start: calc(4 / 16 * 1rem);
    font-size: max(30 / 16 * 1rem, 14 * 1px);
    line-height: 1.63;
  }
}

.p-quality1-priceBadge__note {
  margin-block-start: calc(-3 / 16 * 1rem);
  margin-inline-start: calc(37 / 16 * 1rem);
  color: #ffffff;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1.75;
}
@media screen and (max-width: 1023px) {
  .p-quality1-priceBadge__note {
    position: absolute; /* 枠内下段の注記（フレックス行の下に重なる design 組版） */
    z-index: 1;
    left: calc(93 / 16 * 1rem);
    bottom: calc(15 / 16 * 1rem);
    margin: 0;
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.75;
  }
}

/* ---------- SECURITY（セキュリティ対策） ---------- */
.p-quality1-security {
  padding-block-start: calc(205 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-security {
    padding-block-start: calc(150 / 16 * 1rem);
  }
}

.p-quality1-security .p-quality1-heading__en {
  width: calc(109 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-security .p-quality1-heading__en {
    width: calc(80 / 16 * 1rem);
  }
}

.p-quality1-security__row {
  display: flex;
  column-gap: calc(100 / 16 * 1rem);
  align-items: flex-start;
}

.p-quality1-security__row--diagrams > :first-child {
  margin-block-start: calc(102 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-security__row--diagrams > :first-child {
    margin-block-start: calc(38 / 16 * 1rem);
  }
}

.p-quality1-security__row--diagrams > :last-child {
  margin-block-start: calc(86 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-security__row--diagrams > :last-child {
    margin-block-start: calc(63 / 16 * 1rem);
  }
}

.p-quality1-security__row--media {
  margin-block-start: calc(78 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-security__row--media {
    width: calc(330 / 16 * 1rem);
    margin-block-start: calc(43 / 16 * 1rem);
    margin-inline-start: calc(2.5 / 16 * 1rem);
    column-gap: calc(30 / 16 * 1rem);
  }
}

.p-quality1-secItem {
  width: calc(500 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem {
    width: 100%;
  }
}

.p-quality1-secItem__title {
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  font-weight: 600; /* design W6（ヒラギノ 600=W6・Noto は 600 読込） */
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__title {
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.482;
  }
}

.p-quality1-secItem__titleNote {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 400;
  line-height: 1.155;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__titleNote {
    display: block;
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    font-weight: 300;
    line-height: 1.5;
  }
}

.p-quality1-secItem__body {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.875;
  letter-spacing: 0.025em;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__body {
    margin-block-start: calc(12 / 16 * 1rem);
    font-size: max(14 / 16 * 1rem, 10.5 * 1px);
    line-height: 1.5;
  }
}

.p-quality1-secItem--fire .p-quality1-secItem__body {
  margin-block-start: calc(6 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem--fire .p-quality1-secItem__body {
    margin-block-start: calc(9 / 16 * 1rem);
  }
}

.p-quality1-secItem__diagram {
  margin-block-start: calc(30 / 16 * 1rem);
  margin-inline-start: calc(-4 / 16 * 1rem);
  width: calc(506 / 16 * 1rem);
  max-width: none; /* design はカラム 500 から左右各 3px はみ出す実寸配置 */
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__diagram {
    margin-block-start: calc(45 / 16 * 1rem);
    margin-inline-start: calc(-1 / 16 * 1rem);
    width: calc(337 / 16 * 1rem);
  }
}

.p-quality1-secItem--fire .p-quality1-secItem__diagram {
  margin-block-start: calc(57 / 16 * 1rem);
  margin-inline-start: calc(-5 / 16 * 1rem);
  width: calc(507 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem--fire .p-quality1-secItem__diagram {
    margin-block-start: calc(32 / 16 * 1rem);
    margin-inline-start: calc(-1 / 16 * 1rem);
    width: calc(337 / 16 * 1rem);
  }
}

/* row2: テキスト + 図/写真の media 行 */
.p-quality1-secItem--media {
  display: flex;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem--media {
    display: block;
    width: calc(150 / 16 * 1rem);
  }
}

.p-quality1-secItem__text {
  width: calc(280 / 16 * 1rem);
}

.p-quality1-secItem--media .p-quality1-secItem__body {
  margin-block-start: calc(14 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem--media .p-quality1-secItem__body {
    margin-block-start: calc(11 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: 0.01em;
  }
}

.p-quality1-secItem__media {
  align-self: flex-start;
  position: relative;
  flex-shrink: 0;
  width: calc(190 / 16 * 1rem);
  margin-block-start: calc(2 / 16 * 1rem);
  margin-inline-start: calc(25 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__media {
    width: calc(150 / 16 * 1rem);
    margin-block-start: calc(14 / 16 * 1rem);
    margin-inline-start: 0;
  }
}

.p-quality1-secItem__media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  aspect-ratio: 265/185;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__media > img {
    aspect-ratio: 1/1;
    object-position: 49% 65%;
  }
}

.p-quality1-secItem__mediaNote {
  position: absolute;
  z-index: 1;
  top: calc(143 / 16 * 1rem);
  left: calc(125 / 16 * 1rem);
  color: #231815;
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.2;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__mediaNote {
    top: calc(132 / 16 * 1rem);
    left: calc(82 / 16 * 1rem);
    font-size: max(11 / 16 * 1rem, 10 * 1px);
  }
}

.p-quality1-secItem__cameraWrap {
  align-self: flex-start;
  flex-shrink: 0;
  width: calc(153 / 16 * 1rem);
  margin-block-start: calc(7 / 16 * 1rem);
  margin-inline-start: calc(35 / 16 * 1rem);
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__cameraWrap {
    width: calc(136 / 16 * 1rem);
    margin-block-start: calc(34 / 16 * 1rem);
    margin-inline-start: 0;
  }
}

.p-quality1-secItem__cameraNote {
  margin-block-start: calc(5 / 16 * 1rem);
  margin-inline-start: calc(49 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.243;
}
@media screen and (max-width: 1023px) {
  .p-quality1-secItem__cameraNote {
    margin-block-start: calc(5 / 16 * 1rem);
    margin-inline-start: calc(41 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.243;
  }
}

/* =========================================================
   SP（375 カンプ・SP manifest 実測値）— br 無し自然折返し（pappy 明言）
   数値は SP draft-manifest の引き算（glyph→box 半行補正済み）。
   ========================================================= */
@media screen and (max-width: 1023px) {
  .p-quality1-lower :where(p, h3) {
    white-space: normal;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-lower :where(p, h3) br {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zeh .p-quality1-heading__en {
    width: calc(106 / 16 * 1rem);
    height: calc(9 / 16 * 1rem);
    max-width: none;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zeh__subtitle {
    width: calc(330 / 16 * 1rem);
    margin-inline-start: calc(3 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zeh__subtitle br,
  .p-quality1-zehPanel__title br,
  .p-quality1-zehPanel__source br,
  .p-quality1-facility--parking .p-quality1-facility__title br {
    display: initial;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zehCard + .p-quality1-zehCard {
    margin-block-start: calc(61 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--cost .p-quality1-zehCard__photo {
    margin-block-start: calc(27 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--cost .p-quality1-zehCard__body {
    margin-block-start: calc(13 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-zehCard--cost .p-quality1-zehCard__diagramWrap {
    margin-block-start: calc(22 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__text {
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__title {
    width: calc(290 / 16 * 1rem);
    font-size: max(16 / 16 * 1rem, 12 * 1px);
    line-height: 1.48043125;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__photo--ev {
    margin-block-start: 0;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--parking .p-quality1-facility__photoNote {
    left: calc(6 / 16 * 1rem);
    bottom: calc(5 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet .p-quality1-facility__text {
    width: calc(184 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--pet .p-quality1-facility__note {
    margin-block-start: calc(16 / 16 * 1rem);
    font-size: max(12 / 16 * 1rem, 10 * 1px);
    line-height: 1.5;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--delivery .p-quality1-facility__text {
    width: calc(184 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__text {
    width: calc(184 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--internet .p-quality1-facility__title {
    white-space: nowrap;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-facility--electric .p-quality1-facility__text {
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-security__row--diagrams {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-secItem__title .u-sp {
    display: block;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-secItem__title .u-sp br {
    display: inline;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-secItem--media .p-quality1-secItem__text {
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality1-lower__tabs .c-quality-tabs--footer {
    margin-block-start: calc(36 / 16 * 1rem);
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality1-inner {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
/* ===== p-quality2: QUALITY 2（住まいの仕様・設備）===== */
.p-quality2-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-quality2-main img {
  display: block;
}

.p-quality2-main :where(h1, h2, h3, p, dt, dd) {
  margin: 0;
  font-weight: 400;
}

.p-quality2-main figure {
  margin: 0;
}

/* ===== PC/SP 完全2本立て（本サイト限定の特例・pappy明言2026-07-06 14:4X）=====
   .p-quality2-pc = PC専用 DOM（既存実装そのまま・SP では非表示）
   .p-quality2-sp = SP専用 DOM（SP実測データから独立構築・PC では非表示） */
.p-quality2-pc {
  /* 2026-07-06 指揮官指示: AIカンプは palt（プロポーショナルメトリクス）+ トラッキング前提で行組みされている。
     ブラウザ既定（palt off）では全角文字の字送りが太り、幅どおりでも自然折返しが+1行増えるため、
     本文スコープに palt を適用して和文の字送りを設計と揃える（quality1 で 51/51 段落一致を実証済み）。 */
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality2-pc {
    display: none;
  }
}

.p-quality2-sp {
  display: none;
  /* 同上（SP レーンも本文スコープに palt を適用） */
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality2-sp {
    display: block;
  }
}

/* 本文コンテンツ幅（SECURITY/STORAGE/COMFORT/BALCONY/OTHER 共通・design 実測 1100） */
.p-quality2-inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
  padding-inline: 0;
}

.p-quality2-heading {
  display: flex;
  align-items: baseline;
  column-gap: calc(20 / 16 * 1rem);
  padding-block-end: calc(11 / 16 * 1rem);
  border-block-end: 1px solid currentColor;
}

.p-quality2-heading__title {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.18;
  letter-spacing: 0.2em;
  white-space: nowrap;
}

.p-quality2-heading__en {
  height: auto;
  flex-shrink: 0;
  margin-inline-start: auto;
}

.p-quality2-security .p-quality2-heading__en {
  width: calc(109 / 16 * 1rem);
}

.p-quality2-storage .p-quality2-heading__en {
  width: calc(103 / 16 * 1rem);
}

.p-quality2-comfort .p-quality2-heading__en {
  width: calc(188 / 16 * 1rem);
}

.p-quality2-balcony .p-quality2-heading__en {
  width: calc(103 / 16 * 1rem);
}

.p-quality2-other .p-quality2-heading__en {
  width: calc(87 / 16 * 1rem);
}

/* ---------- dark body wrapper（FV 下端〜gallery-open まで連続する checker-tile 背景）---------- */
.p-quality2-body {
  position: relative;
}

.p-quality2-body__tile {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

/* ---------- intro（見出しのみ・quality1 のような title/subtitle/lead 画像は本ページに無い）---------- */
.p-quality2-intro {
  padding-block-start: calc(165 / 16 * 1rem);
  padding-block-end: calc(87 / 16 * 1rem);
  text-align: center;
}

.p-quality2-intro__heading {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  line-height: 1;
  letter-spacing: 0.2em;
}

.p-quality2-intro__label {
  width: calc(144 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(25.04 / 16 * 1rem);
}

/* =========================================================
   以下 SECURITY / STORAGE / COMFORT / BALCONY / OTHER（intro より下の帯）
   数値は全て絶対配置ドラフト（座標の正・pappy 承認 2026-07-06）の引き算。
   ========================================================= */
.p-quality2-lower > * {
  position: relative; /* body__tile より前面に描画 */
}

.p-quality2-lower :where(h2, h3, p) {
  font-weight: 300;
}

/* 2026-07-06 禁忌改訂: :where 全段落への nowrap ブランケット適用を撤廃（SOP §1-4）。
   本文は palt + 実測幅の自然折返しで組む。nowrap は個別クラスで「設計上1行のラベル・見出し」にのみ理由付きで残す。 */
.p-quality2-lower picture {
  display: block;
}

.page-quality2 .c-lower-fv__bg {
  object-position: center 22%;
}

/* ---------- panel（SECURITY〜OTHER を貫く半透明パネル。PC は 1600 幅中央寄せ・SP は全幅） ---------- */
.p-quality2-panel {
  width: calc(1600 / 16 * 1rem);
  margin-inline: auto;
  background-color: #eaeaea;
}

.p-quality2-panel .p-quality2-heading,
.p-quality2-panel :where(h2, h3, p) {
  color: #231815;
}

/* ---------- SECURITY ---------- */
.p-quality2-security {
  padding-block-start: calc(110 / 16 * 1rem);
}

.p-quality2-secRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  margin-block-start: calc(71 / 16 * 1rem);
  align-items: flex-start;
}

.p-quality2-secItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality2-secItem__photo {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.p-quality2-secItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-secItem__photos {
  display: flex;
  align-items: flex-start;
}

.p-quality2-secItem__photos .p-quality2-secItem__photo {
  overflow: hidden;
}

.p-quality2-secItem__note {
  position: absolute;
  z-index: 1;
  color: #231815;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.75;
}

.p-quality2-secItem__title {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality2-secItem__titleNote {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 300;
}

.p-quality2-secItem__body {
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* --- lock（電子ロック玄関ドア） --- */
.p-quality2-secItem--lock .p-quality2-secItem__photo {
  aspect-ratio: 245/185;
}

.p-quality2-secItem--lock .p-quality2-secItem__title {
  margin-block-start: calc(32 / 16 * 1rem);
}

.p-quality2-secItem--lock .p-quality2-secItem__body {
  margin-block-start: calc(25 / 16 * 1rem);
}

/* --- highsec（ハイセキュリティ玄関ドア・写真2枚横並び） --- */
.p-quality2-secItem--highsec .p-quality2-secItem__photo--scope {
  width: calc(123 / 16 * 1rem);
  aspect-ratio: 123/185;
}

.p-quality2-secItem--highsec .p-quality2-secItem__photo--thumbturn {
  width: calc(123 / 16 * 1rem);
  aspect-ratio: 123/185;
}

.p-quality2-secItem--highsec .p-quality2-secItem__title {
  margin-block-start: calc(33 / 16 * 1rem);
}

.p-quality2-secItem--highsec .p-quality2-secItem__body {
  margin-block-start: calc(26 / 16 * 1rem);
}

/* --- cylinder（ロータリーシリンダーキー・写真上に「※参考イラスト」重ね） --- */
.p-quality2-secItem--cylinder .p-quality2-secItem__photo {
  aspect-ratio: 245/159;
}

.p-quality2-secItem--cylinder .p-quality2-secItem__note {
  left: calc(161 / 16 * 1rem);
  top: calc(122 / 16 * 1rem);
}

.p-quality2-secItem--cylinder .p-quality2-secItem__title {
  margin-block-start: calc(44 / 16 * 1rem);
}

.p-quality2-secItem--cylinder .p-quality2-secItem__body {
  margin-block-start: calc(25 / 16 * 1rem);
}

/* --- intercom（テレビモニター付インターホン・写真は列より狭く右寄せ・注記は写真の下） --- */
.p-quality2-secItem--intercom .p-quality2-secItem__photo {
  width: calc(198 / 16 * 1rem);
  margin-inline-start: calc(27 / 16 * 1rem);
  aspect-ratio: 198/147;
}

.p-quality2-secItem--intercom .p-quality2-secItem__note {
  position: static;
  margin-block-start: calc(5 / 16 * 1rem);
}

.p-quality2-secItem--intercom .p-quality2-secItem__title {
  margin-block-start: calc(33 / 16 * 1rem);
}

/* 設計上1行の見出し（manifest ai-90 text.lines=1・幅245ちょうど）。nowrap 無しだと実測でカラム幅を
   僅かに超えて2行に折返り design と不一致になるため必須（2026-07-06 br 撤去で発覚） */
.p-quality2-secItem--intercom .p-quality2-secItem__title {
  white-space: nowrap;
}

/* titleNote（録画機能付）は ai-88 として ai-90 とは別の独立 text node（1つの rawText の改行ではない）ため
   2026-07-06 br 撤去で h3 から分離し独立 <p> 化。margin は draft-manifest 実測の引き算（ai-88.y − (ai-90.y+ai-90.h) = 1667.71-1664.32） */
.p-quality2-secItem--intercom .p-quality2-secItem__titleNote {
  margin-block-start: calc(3 / 16 * 1rem);
}

/* body margin も分離後の titleNote 実体基準に組み替え（ai-89.y − (ai-88.y+ai-88.h) = 1696.74-1685.29） */
.p-quality2-secItem--intercom .p-quality2-secItem__body {
  margin-block-start: calc(12 / 16 * 1rem);
}

@media (min-width: 1024px) and (max-width: 1439px) {
  .p-quality2-secItem--intercom .p-quality2-secItem__title {
    font-size: calc(18 / 16 * 1rem);
    letter-spacing: 0.04em;
  }
}
/* ---------- STORAGE ---------- */
.p-quality2-storage {
  /* gap は security row の最長アイテム（cylinder・本文5行=160）基準の引き算（179 は短い項目基準の誤りだった） */
  padding-block-start: calc(160 / 16 * 1rem);
}

/* 2026-07-06 br 撤去に伴う自然折返し検証で発見: width 未指定のため親 inner 全幅(1100px)に広がり
   design 実測(530・manifest ai-71)より折返しが1行減っていた構造欠陥。width を明示して是正 */
.p-quality2-storage__lead {
  width: calc(530 / 16 * 1rem);
  margin-block-start: calc(61 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-storageRow {
  display: grid;
  grid-template-columns: repeat(4, calc(172 / 16 * 1rem)) calc(358 / 16 * 1rem);
  column-gap: calc(13.5 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(42 / 16 * 1rem);
}

.p-quality2-storageItem__photo {
  overflow: hidden;
}

.p-quality2-storageItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-storageItem__label {
  margin-block-start: calc(3 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.35;
  letter-spacing: 0.05em;
  color: #231815;
  white-space: normal;
}

.p-quality2-storageItem__labelNote {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
}

.p-quality2-storageItem--closet,
.p-quality2-storageItem--wic,
.p-quality2-storageItem--sic,
.p-quality2-storageItem--pantry {
  width: calc(172 / 16 * 1rem);
}

.p-quality2-storageItem--closet .p-quality2-storageItem__photo,
.p-quality2-storageItem--wic .p-quality2-storageItem__photo,
.p-quality2-storageItem--sic .p-quality2-storageItem__photo,
.p-quality2-storageItem--pantry .p-quality2-storageItem__photo {
  aspect-ratio: 172/271;
}

.p-quality2-storageItem--counter {
  width: calc(358 / 16 * 1rem);
}

.p-quality2-storageItem--counter .p-quality2-storageItem__photo {
  aspect-ratio: 358/271;
}

/* ---------- COMFORT STYLE ---------- */
.p-quality2-comfort {
  padding-block-start: calc(162 / 16 * 1rem);
}

.p-quality2-comfortRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  margin-block-start: calc(92 / 16 * 1rem);
  align-items: flex-start;
}

.p-quality2-comfortItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality2-comfortItem__photo {
  overflow: hidden;
  aspect-ratio: 245/184;
}

.p-quality2-comfortItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-comfortItem__title {
  margin-block-start: calc(22 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality2-comfortItem__body {
  margin-block-start: calc(12 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* ---------- BALCONY ---------- */
.p-quality2-balcony {
  padding-block-start: calc(189 / 16 * 1rem);
}

.p-quality2-balconyRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  margin-block-start: calc(119 / 16 * 1rem);
  align-items: flex-start;
}

.p-quality2-balconyItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality2-balconyItem__photo {
  overflow: hidden;
  aspect-ratio: 245/185;
}

.p-quality2-balconyItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-balconyItem__title {
  margin-block-start: calc(26 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality2-balconyItem__body {
  margin-block-start: calc(13 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* ---------- OTHER ---------- */
.p-quality2-other {
  padding-block-start: calc(185 / 16 * 1rem);
  padding-block-end: calc(220 / 16 * 1rem);
}

.p-quality2-otherRow--tech {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(95 / 16 * 1rem);
}

.p-quality2-otherRow--eco {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(114 / 16 * 1rem);
}

.p-quality2-otherItem {
  width: calc(530 / 16 * 1rem);
}

.p-quality2-otherItem__title {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality2-otherItem__body {
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-otherItem__note {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  /* 2026-07-06 br 撤去の折返し検証で発見: acquire styleRun(ai-12)は letterSpacing:0（トラッキング無し）
     だが 0em が誤って適用されていた。0em×95文字分の余分な字送りで折返しが1行増えていたのが真因
     （幅ナッジは対症療法だったため撤去し letter-spacing を design どおり 0 に是正） */
  letter-spacing: 0;
  color: #231815;
}

.p-quality2-otherItem--door .p-quality2-otherItem__body {
  margin-block-start: calc(16 / 16 * 1rem);
}

.p-quality2-otherItem--floor .p-quality2-otherItem__body {
  margin-block-start: calc(16 / 16 * 1rem);
}

.p-quality2-otherItem--floor .p-quality2-otherItem__note {
  margin-block-start: calc(6 / 16 * 1rem);
}

/* --- door showcase（写真＋通常/耐震ドア比較＋ラベル） --- */
.p-quality2-doorShowcase {
  display: flex;
  align-items: flex-start;
  margin-block-start: calc(48 / 16 * 1rem);
}

.p-quality2-doorShowcase__photo {
  flex-shrink: 0;
  width: calc(188 / 16 * 1rem);
  aspect-ratio: 188/284;
  overflow: hidden;
}

.p-quality2-doorShowcase__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-doorShowcase__compare {
  width: calc(303 / 16 * 1rem);
  margin-inline-start: auto;
}

.p-quality2-doorShowcase__images {
  display: flex;
  align-items: center;
}

.p-quality2-doorShowcase__door {
  width: calc(128 / 16 * 1rem);
  max-width: none;
}

.p-quality2-doorShowcase__arrow {
  align-self: center;
  width: calc(20 / 16 * 1rem);
  margin-inline: calc(11 / 16 * 1rem) calc(17 / 16 * 1rem);
  max-width: none;
}

.p-quality2-doorShowcase__labels {
  display: flex;
  column-gap: calc(23 / 16 * 1rem);
  margin-block-start: calc(11 / 16 * 1rem);
}

.p-quality2-doorShowcase__labelCol {
  width: calc(140 / 16 * 1rem);
}

.p-quality2-doorShowcase__label {
  font-size: max(13 / 16 * 1rem, 10 * 1px);
  font-weight: 600;
  line-height: 1.235;
  color: #231815;
}

.p-quality2-doorShowcase__label:last-child,
.p-quality2-doorShowcase__labelCol:last-child .p-quality2-doorShowcase__label {
  color: #b39b59;
}

.p-quality2-doorShowcase__caption {
  margin-block-start: calc(2 / 16 * 1rem);
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #231815;
  white-space: normal;
}

/* --- floor diagram（画像1枚に「通常の構造/フルフラット構造」ラベル・バッジまで焼き込み済み） --- */
.p-quality2-otherItem__floorDiagram {
  margin-block-start: calc(13 / 16 * 1rem);
  margin-inline-start: calc(29 / 16 * 1rem);
  width: calc(495 / 16 * 1rem);
  max-width: none;
}

/* --- eco / rating media 行 --- */
.p-quality2-otherItem--heater .p-quality2-otherItem__media,
.p-quality2-otherItem--rating .p-quality2-otherItem__media {
  display: flex;
  align-items: flex-start;
  margin-block-start: calc(7 / 16 * 1rem);
}

.p-quality2-otherItem--heater .p-quality2-otherItem__media > :last-child,
.p-quality2-otherItem--rating .p-quality2-otherItem__media > :last-child {
  margin-inline-start: auto;
}

.p-quality2-otherItem--heater .p-quality2-otherItem__body {
  width: calc(284 / 16 * 1rem);
}

.p-quality2-otherItem--rating .p-quality2-otherItem__body {
  width: calc(351 / 16 * 1rem);
}

.p-quality2-otherItem__ecoMark {
  margin-block-start: calc(-14 / 16 * 1rem);
  margin-inline-start: calc(146 / 16 * 1rem);
  width: calc(140 / 16 * 1rem);
}

.p-quality2-otherItem__photoCol {
  margin-top: calc(-31 / 16 * 1rem);
  position: relative;
  flex-shrink: 0;
  width: calc(220 / 16 * 1rem);
  aspect-ratio: 220/180;
  overflow: hidden;
}

.p-quality2-otherItem__photoCol > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-otherItem__photoNote {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: calc(5 / 16 * 1rem);
  color: #231815;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.2;
}

.p-quality2-otherItem__ratingMarks {
  margin-block-start: calc(-34.6012 / 16 * 1rem);
  margin-inline-end: calc(5.5672 / 16 * 1rem);
  flex-shrink: 0;
  width: calc(143.5746 / 16 * 1rem);
  aspect-ratio: 287/454;
  max-width: none;
}

/* ---------- 下部タブ ---------- */
.p-quality2-lower__tabs {
  margin-block-start: calc(235 / 16 * 1rem);
  padding-block-end: calc(59 / 16 * 1rem);
}

.p-quality2-lower__tabs .c-quality-tabs__link {
  font-weight: 300;
}

/* =========================================================
   .p-quality2-sp — SP 専用 DOM（本サイト限定の特例・pappy 明言 2026-07-06 14:4X）
   PC の @include mq(sp) 上書きではなく、SP manifest 実測値から独立構築。
   text は SP の text.lines どおり <br> + white-space:nowrap で行固定（自然折返しに任せない）。
   数値は全て run/absolute-draft/sp/draft-manifest.json の引き算。
   ========================================================= */
.p-quality2-sp {
  color: #ffffff;
}

.p-quality2-sp img {
  display: block;
}

.p-quality2-sp :where(h2, h3, p) {
  margin: 0;
  font-weight: 300;
  /* 2026-07-06 禁忌改訂: :where 全段落への nowrap ブランケット適用を撤廃（SOP §1-4）。
     本文は palt + 実測幅の自然折返しで組む。nowrap は個別クラスで「設計上1行」にのみ理由付きで残す。 */
}

.p-quality2-sp * {
  position: relative;
}

/* ---------- intro（見出し「住まいの仕様・設備」+ EQUIPMENT。SP はアウトライン化＝画像1ブロック・差し戻し修正1） ---------- */
.p-quality2-spIntro {
  /* margin-block-start は FV 下端(y=600)からの引き算。crop 天地に実測+2pxの安全余白を含むため
     union bbox(clamped y=658)ではなく crop 上端(y=656)基準（656-600） */
  margin-block-start: calc(56 / 16 * 1rem);
  text-align: center;
}

.p-quality2-spIntro__heading {
  width: calc(219 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality2-spPanel {
  width: 100%;
  /* margin-block-start は intro 画像下端(crop bottom y=723)から panel top(y=760)の引き算（760-723）。
     intro 追加前は FV 下端直後の値(160)だった（差し戻し修正1で intro 挿入に伴い再計算） */
  margin-block-start: calc(37 / 16 * 1rem);
  background-color: #eaeaea;
}

.p-quality2-spPanel :where(h2, h3, p) {
  color: #231815;
}

.p-quality2-spHeading {
  display: flex;
  align-items: baseline;
  column-gap: calc(12 / 16 * 1rem);
  width: calc(330 / 16 * 1rem);
  margin-inline: auto;
  padding-block-end: calc(4 / 16 * 1rem);
  border-block-end: 1px solid currentColor;
}

.p-quality2-spHeading__title {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.625;
  letter-spacing: 0em;
  white-space: nowrap;
}

.p-quality2-spHeading__en {
  height: auto;
  flex-shrink: 0;
  margin-inline-start: auto;
}

.p-quality2-spSecurity .p-quality2-spHeading__en {
  width: calc(68 / 16 * 1rem);
}

.p-quality2-spStorage .p-quality2-spHeading__en {
  width: calc(64 / 16 * 1rem);
}

.p-quality2-spComfort .p-quality2-spHeading__en {
  width: calc(116 / 16 * 1rem);
}

.p-quality2-spBalcony .p-quality2-spHeading__en {
  width: calc(70 / 16 * 1rem);
}

.p-quality2-spOther .p-quality2-spHeading__en {
  width: calc(54 / 16 * 1rem);
}

/* ---------- SECURITY ---------- */
.p-quality2-spSecurity {
  padding-block-start: calc(27 / 16 * 1rem);
}

.p-quality2-spSecRow {
  display: flex;
  flex-wrap: wrap;
  width: calc(330 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(24 / 16 * 1rem);
  row-gap: calc(26 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(47 / 16 * 1rem);
}

.p-quality2-spSecItem {
  width: calc(153 / 16 * 1rem);
}

.p-quality2-spSecItem__photo {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.p-quality2-spSecItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-spSecItem__photos {
  display: flex;
  align-items: flex-start;
}

.p-quality2-spSecItem__note {
  position: absolute;
  z-index: 1;
  color: #231815;
  font-size: max(8 / 16 * 1rem, 8 * 1px);
  line-height: 1.75;
}

.p-quality2-spSecItem__title {
  margin-block-start: calc(21 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.314;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spSecItem__titleNote {
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
}

.p-quality2-spSecItem__body {
  margin-block-start: calc(12 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.01em;
  color: #231815;
}

.p-quality2-spSecItem--lock .p-quality2-spSecItem__photo {
  aspect-ratio: 153/115;
}

.p-quality2-spSecItem--highsec .p-quality2-spSecItem__photo--scope {
  width: calc(77 / 16 * 1rem);
  aspect-ratio: 77/115;
}

.p-quality2-spSecItem--highsec .p-quality2-spSecItem__photo--thumbturn {
  width: calc(77 / 16 * 1rem);
  aspect-ratio: 77/115;
}

/* 設計上1行の見出し（manifest ai-223 text.lines=1）。実測155pxがカラム幅153pxよりわずかに広く、
   nowrap 無しだと2行に折返り design と不一致（隣列 highsec/cylinder が押し下げられる原因になっていた） */
.p-quality2-spSecItem--highsec .p-quality2-spSecItem__title {
  white-space: nowrap;
}

.p-quality2-spSecItem--cylinder .p-quality2-spSecItem__photo {
  aspect-ratio: 153/99;
}

.p-quality2-spSecItem--cylinder .p-quality2-spSecItem__note {
  left: calc(99 / 16 * 1rem);
  top: calc(79 / 16 * 1rem);
}

.p-quality2-spSecItem--cylinder .p-quality2-spSecItem__title {
  margin-block-start: calc(28 / 16 * 1rem);
}

/* 設計上1行の見出し（manifest ai-232 text.lines=1）。同上の理由で nowrap 必須 */
.p-quality2-spSecItem--cylinder .p-quality2-spSecItem__title {
  white-space: nowrap;
}

.p-quality2-spSecItem--intercom .p-quality2-spSecItem__photo {
  width: calc(124 / 16 * 1rem);
  aspect-ratio: 124/92;
}

.p-quality2-spSecItem--intercom .p-quality2-spSecItem__photo {
  margin-inline: auto;
}

.p-quality2-spSecItem--intercom .p-quality2-spSecItem__note {
  position: static;
  width: calc(124 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(4 / 16 * 1rem);
}

.p-quality2-spSecItem--intercom .p-quality2-spSecItem__title {
  margin-block-start: calc(20 / 16 * 1rem);
  line-height: 1.207;
}

/* titleNote（録画機能付）は ai-233 として ai-235 とは別の独立 text node のため
   2026-07-06 br 撤去で h3 から分離し独立 <p> 化。margin は draft-manifest 実測（ai-233.y − (ai-235.y+ai-235.h) = 1348.05-1345.16） */
.p-quality2-spSecItem--intercom .p-quality2-spSecItem__titleNote {
  margin-block-start: calc(3 / 16 * 1rem);
}

/* body margin も分離後の titleNote 実体基準に組み替え（ai-234.y − (ai-233.y+ai-233.h) = 1371.39-1363.49） */
.p-quality2-spSecItem--intercom .p-quality2-spSecItem__body {
  margin-block-start: calc(8 / 16 * 1rem);
}

/* width は manifest 実測(153)ちょうどだと実測折返しが design 5行に対し-1行（palt適用後もこの本文だけ字送りが僅かに詰まる残差）。
   実測で-8px（rem(145)）に収めると自然折返しが design 5行と一致することを確認（wrap-check.cjs 実測） */
.p-quality2-spSecItem--intercom .p-quality2-spSecItem__body {
  width: calc(160 / 16 * 1rem);
}

/* ---------- STORAGE ---------- */
.p-quality2-spStorage {
  padding-block-start: calc(78 / 16 * 1rem);
}

.p-quality2-spStorage__lead {
  margin-block-start: calc(18 / 16 * 1rem);
  padding-inline: calc(20 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 2;
  letter-spacing: 0.01em;
  color: #231815;
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality2-spStorage__lead {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.p-quality2-spStorageRow {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: calc(330 / 16 * 1rem);
  margin-block-start: calc(25 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality2-spStorageRow--second {
  margin-block-start: calc(12 / 16 * 1rem);
}

.p-quality2-spStorageItem__photo {
  overflow: hidden;
}

.p-quality2-spStorageItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 1023px) {
  .p-quality2-spStorageItem__label {
    letter-spacing: 0em;
  }
}
.p-quality2-spStorageItem__label {
  margin-block-start: calc(3 / 16 * 1rem);
  font-size: max(9 / 16 * 1rem, 9 * 1px);
  font-weight: 600; /* SP design 実測 W5 相当（PC は W3/300・レーン差） */
  line-height: 1.35;
  letter-spacing: 0em;
  color: #231815;
  /* 実 Chrome/Hiragino の字送りが design（Illustrator）より僅かに広く、design 上は1行でも
     実装ではカラム幅(105)を超えて隣カラムに衝突する（wic 実測: 必要126 > 105）。
     ここは折返し許容（内容追従）にして衝突を防ぐ（デザイン行数の厳守より安全側を優先）。 */
  white-space: normal;
}

.p-quality2-spStorageItem__labelNote {
  font-size: max(9 / 16 * 1rem, 9 * 1px);
}

.p-quality2-spStorageItem--closet,
.p-quality2-spStorageItem--wic,
.p-quality2-spStorageItem--sic,
.p-quality2-spStorageItem--pantry {
  width: calc(105 / 16 * 1rem);
}

.p-quality2-spStorageItem--closet .p-quality2-spStorageItem__photo,
.p-quality2-spStorageItem--wic .p-quality2-spStorageItem__photo,
.p-quality2-spStorageItem--sic .p-quality2-spStorageItem__photo,
.p-quality2-spStorageItem--pantry .p-quality2-spStorageItem__photo {
  aspect-ratio: 105/165;
}

.p-quality2-spStorageItem--counter {
  width: calc(218 / 16 * 1rem);
}

.p-quality2-spStorageItem--counter .p-quality2-spStorageItem__photo {
  aspect-ratio: 218/165;
}

/* ---------- COMFORT STYLE ---------- */
.p-quality2-spComfort {
  padding-block-start: calc(82 / 16 * 1rem);
}

.p-quality2-spComfortRow {
  display: flex;
  flex-wrap: wrap;
  width: calc(330 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(24 / 16 * 1rem);
  row-gap: calc(30 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(52 / 16 * 1rem);
}

.p-quality2-spComfortItem {
  width: calc(153 / 16 * 1rem);
}

/* 折り上げ天井本文のみ manifest 実測(153)ちょうどだと自然折返しが design 4行に対し+1行残る
   （palt後もこの本文だけ字送りが僅かに緩む）。+4px の最小幅余裕で design 行数に一致させる */
.p-quality2-spComfortItem--ceiling .p-quality2-spComfortItem__body {
  width: calc(157 / 16 * 1rem);
}

.p-quality2-spComfortItem__photo {
  overflow: hidden;
  aspect-ratio: 153/115;
}

.p-quality2-spComfortItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-spComfortItem__title {
  margin-block-start: calc(12 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.314;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spComfortItem__body {
  margin-block-start: calc(10 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* ---------- BALCONY ---------- */
.p-quality2-spBalcony {
  padding-block-start: calc(63 / 16 * 1rem);
}

.p-quality2-spBalconyRow {
  display: flex;
  flex-wrap: wrap;
  width: calc(330 / 16 * 1rem);
  margin-inline: auto;
  column-gap: calc(24 / 16 * 1rem);
  row-gap: calc(30 / 16 * 1rem);
  align-items: flex-start;
  margin-block-start: calc(49 / 16 * 1rem);
}

.p-quality2-spBalconyItem {
  width: calc(153 / 16 * 1rem);
}

.p-quality2-spBalconyItem__photo {
  overflow: hidden;
  aspect-ratio: 153/116;
}

.p-quality2-spBalconyItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-spBalconyItem__title {
  margin-block-start: calc(14 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.314;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spBalconyItem__body {
  margin-block-start: calc(10 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* ---------- OTHER ---------- */
.p-quality2-spOther {
  padding-block-start: calc(73 / 16 * 1rem);
  padding-block-end: calc(56 / 16 * 1rem);
}

.p-quality2-spOtherItem {
  padding-inline: calc(20 / 16 * 1rem);
}

.p-quality2-spOtherItem__title {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.314;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spOtherItem__body {
  margin-block-start: calc(7 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spOtherItem__note {
  margin-block-start: calc(11 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  /* 2026-07-06: acquire styleRun(ai-27)は letterSpacing:0（PC ai-12 と同じ根拠）。0 に是正 */
  letter-spacing: 0;
  color: #231815;
}

.p-quality2-spOtherItem--door {
  margin-block-start: calc(42 / 16 * 1rem);
}

/* 2026-07-06 br 撤去に伴う自然折返し検証で発見: body に width 未指定のため flex 既定サイズ(182px)に広がり
   design 実測(153・manifest ai-109)より折返しが1行減っていた構造欠陥。width を明示して是正 */
.p-quality2-spOtherItem--door .p-quality2-spOtherItem__body {
  width: calc(153 / 16 * 1rem);
  flex-shrink: 0;
}

.p-quality2-spOtherItem--floor {
  margin-block-start: calc(70 / 16 * 1rem);
}

/* 同上: floor body も width 未指定でコンテナ全幅(335px)に広がっていた（design 実測 330・ai-29）。
   330 ちょうどだと実測折返しが design 3行に対し+1行残る残差があり、実測で+14px（rem(344)）で
   design 3行と一致することを確認（wrap-check.cjs 実測） */
.p-quality2-spOtherItem--floor .p-quality2-spOtherItem__body {
  width: calc(344 / 16 * 1rem);
}

@media screen and (max-width: 1023px) {
  .p-quality2-spOtherItem--heater {
    left: calc(0 / 16 * 1rem);
  }
}
.p-quality2-spOtherItem--heater {
  margin-block-start: calc(50 / 16 * 1rem);
}

.p-quality2-spOtherItem--rating {
  margin-block-start: calc(54 / 16 * 1rem);
}

.p-quality2-spDoorIntro {
  display: flex;
  align-items: flex-start;
}

.p-quality2-spDoorIntro > :last-child {
  margin-inline-start: auto;
}

.p-quality2-spDoorIntro__photo {
  flex-shrink: 0;
  width: calc(153 / 16 * 1rem);
  aspect-ratio: 153/221;
  overflow: hidden;
}

.p-quality2-spDoorIntro__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality2-spDoorShowcase {
  display: flex;
  align-items: center;
  margin-block-start: calc(13 / 16 * 1rem);
}

.p-quality2-spDoorShowcase > :last-child {
  margin-inline-start: auto;
}

.p-quality2-spDoorShowcase__col {
  width: calc(138 / 16 * 1rem);
}

.p-quality2-spDoorShowcase__col:first-child {
  margin-inline-start: calc(21 / 16 * 1rem); /* design: door1 x44（content 起点 23 + 21） */
}

.p-quality2-spDoorShowcase__door {
  width: calc(127 / 16 * 1rem); /* SP design 実測（バースト装飾込みクラスタ） */
  max-width: none;
}

.p-quality2-spDoorShowcase__col:last-child .p-quality2-spDoorShowcase__door {
  width: calc(127 / 16 * 1rem);
}

.p-quality2-spDoorShowcase__arrow {
  align-self: center;
  width: calc(18 / 16 * 1rem);
  max-width: none;
}

.p-quality2-spDoorShowcase__label {
  margin-block-start: calc(10 / 16 * 1rem);
  font-size: max(13 / 16 * 1rem, 10 * 1px);
  font-weight: 600;
  line-height: 1.235;
  color: #231815;
}

.p-quality2-spDoorShowcase__label--quake {
  color: #b39b59;
}

.p-quality2-spDoorShowcase__caption {
  margin-block-start: calc(2 / 16 * 1rem);
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality2-spOtherItem__floorDiagram {
  display: block;
  margin-block-start: calc(20 / 16 * 1rem);
  margin-inline: auto;
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

/* heater/rating: タイトル直下は「本文（＋mark）列」と「写真/マーク列」の横並び行（design: SP でも PC と同じく左右並び） */
.p-quality2-spOtherItem--heater .p-quality2-spOtherItem__media,
.p-quality2-spOtherItem--rating .p-quality2-spOtherItem__media {
  display: flex;
  align-items: flex-start;
  margin-block-start: calc(6 / 16 * 1rem);
}

.p-quality2-spOtherItem--heater .p-quality2-spOtherItem__photoCol {
  margin-inline-start: calc(17 / 16 * 1rem); /* design: 210 − (17 + 177) */
}

.p-quality2-spOtherItem--rating .p-quality2-spOtherItem__ratingMarks {
  margin-inline-start: calc(26 / 16 * 1rem); /* design 絶対 x243 */
  margin-block-start: calc(-12 / 16 * 1rem); /* 一体クロップはラベル分 12 上から始まる */
}

/* 2026-07-06 br 撤去に伴う自然折返し検証で発見: flex:1 が残余幅(159px)まで縮み、
   design 実測(176.5・manifest ai-103)より狭くなって折返しが1行増えていた構造欠陥。width 明示で是正 */
.p-quality2-spOtherItem__textCol {
  width: calc(177 / 16 * 1rem);
  flex-shrink: 0;
}

/* eco: SP design 実測 — ロゴ 129.1 @ x38(+21.3)・写真は frame 137×112.1 @209.7 に raw 175.5×117 @179.8 を cover */
.p-quality2-spOtherItem__ecoMark {
  margin-block-start: calc(17 / 16 * 1rem);
  margin-inline-start: calc(21 / 16 * 1rem);
  width: calc(129 / 16 * 1rem);
}

.p-quality2-spOtherItem__photoCol {
  flex-shrink: 0;
  width: calc(137 / 16 * 1rem);
  margin-block-start: calc(24 / 16 * 1rem);
}

.p-quality2-spOtherItem__photoNote {
  position: absolute;
  z-index: 1;
  left: 0;
  bottom: calc(4 / 16 * 1rem);
  color: #231815;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1.2;
}

.p-quality2-spOtherItem--rating .p-quality2-spOtherItem__media {
  margin-block-start: calc(17 / 16 * 1rem);
}

/* 2026-07-06 br 撤去に伴う自然折返し検証で発見: body に width 未指定のため flex 既定サイズ(233px)に広がり
   design 実測(200・manifest ai-193)より折返しが1行減っていた構造欠陥。width を明示して是正 */
.p-quality2-spOtherItem--rating .p-quality2-spOtherItem__body {
  width: calc(200 / 16 * 1rem);
  flex-shrink: 0;
}

.p-quality2-spOtherItem__ratingMarks {
  flex-shrink: 0;
  width: calc(110 / 16 * 1rem); /* 一体クロップ（ラベル+〈取得済/予定〉込み 110×174） */
  max-width: none;
}

/* ---------- 下部タブ ---------- */
.p-quality2-spTabs {
  margin-block-start: calc(131 / 16 * 1rem); /* 白パネル下端 → RG QUALITY kicker 上端（SP design 実測 5344-5213） */
  padding-block-end: calc(57 / 16 * 1rem);
  padding-inline: calc(20 / 16 * 1rem);
}

.p-quality2-spTabs__label {
  display: block;
  width: calc(132 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality2-spTabs nav.c-quality-tabs--footer {
  /* design は kicker 下端→リンク文字 ink 上端 45.4。link の line-box(41.6) 半レディング約12を
     控除しないと文字が design より 12px 下がる（design-census 実測で検出） */
  margin-block-start: calc(34 / 16 * 1rem);
}

/* q2 SP hero: design は同写真を w883（h1324）・x-321・y-2 で配置。cover は高さ駆動なので
   height で拡大率、object-position 長さ値で横シフトを design 実測どおりに再現する */
@media screen and (max-width: 1023px) {
  .page-quality2 .c-lower-fv__bg {
    position: absolute;
    top: calc(-2 / 16 * 1rem);
    left: 0;
    width: 100%;
    height: calc(1324 / 16 * 1rem);
    object-position: calc(-321 / 16 * 1rem) 0;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .page-quality2 .c-lower-fv__bg {
    position: static;
    width: 100%;
    height: 100%;
    object-position: center 22%;
  }
}
/* eco/rating 帯は他の spOtherItem より狭いインセット（SP design x16.7） */
.p-quality2-spOtherItem--heater,
.p-quality2-spOtherItem--rating {
  padding-inline: calc(17 / 16 * 1rem);
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality2-spOtherItem {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
/* ===== p-quality3: QUALITY 3（心地いい水回りの仕様）===== */
.p-quality3-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-quality3-main img {
  display: block;
}

.p-quality3-main :where(h1, h2, h3, p, dt, dd) {
  margin: 0;
  font-weight: 400;
}

.p-quality3-main figure {
  margin: 0;
}

/* ===== PC/SP 完全2本立て（本サイト限定の特例・pappy明言2026-07-06）=====
   .p-quality3-pc = PC専用 DOM（PC manifest 実測から構築・SP では非表示）
   .p-quality3-sp = SP専用 DOM（SP実測データから独立構築・PC では非表示） */
.p-quality3-pc {
  /* AIカンプは palt（プロポーショナルメトリクス）+ トラッキング前提で行組みされている。
     本文スコープに palt を適用して和文の字送りを設計と揃える（quality1/2 実証パターン踏襲）。 */
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality3-pc {
    display: none;
  }
}

.p-quality3-sp {
  display: none;
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality3-sp {
    display: block;
  }
}

.p-quality3-body {
  position: relative;
}

/* ---------- intro（見出し + 室名サブ見出し画像）---------- */
.p-quality3-intro {
  padding-block-start: calc(165 / 16 * 1rem);
  padding-block-end: calc(88 / 16 * 1rem);
  text-align: center;
}

.p-quality3-intro__heading {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.2em;
  color: #ffffff;
}

.p-quality3-intro__subimage {
  width: calc(707 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(25.04 / 16 * 1rem);
}

/* =========================================================
   以下 KITCHEN / BATH ROOM / POWDER ROOM / REST ROOM（intro より下の白90%パネル帯）
   数値は全て絶対配置ドラフト（座標の正・pappy 承認 2026-07-06）の引き算。
   行数は draft-manifest 由来の acquire JSON `text.lines` 実数を必ず使用する
   （2026-07-06 root-cause: body の実行数を確認せず仮の行数で高さ計算し、
   セクション毎に約32〜64px の余剰マージンが蓄積する事故があったため、全面再計算済み）。
   ========================================================= */
.p-quality3-panel {
  width: calc(1600 / 16 * 1rem);
  margin-inline: auto;
  /* design-ref 実測（x200, y1250〜4800 の複数点で完全フラット #EAEAEA・タイル模様ゼロ）。
     rgba(255,255,255,1) 半透明にすると下層タイルが10%透けて見える事故になるため不透明色で確定
    （2026-07-06 pappy 再指摘・root-cause: quality1/2 の rgba(1) 慣習コピーで quality3 自身の
     実測を怠っていた）。 */
  background-color: #eaeaea;
  padding-block-end: calc(172 / 16 * 1rem);
}

.p-quality3-panel .p-quality3-heading,
.p-quality3-panel :where(h2, h3, p) {
  color: #231815;
}

/* 本文コンテンツ幅（KITCHEN/BATH/POWDER/TOILET 共通・design 実測 1100・quality2 の p-quality2-inner と同幅） */
.p-quality3-inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality3-inner > * {
  position: relative; /* body__tile より前面に描画 */
}

.p-quality3-inner :where(h2, h3, p) {
  font-weight: 300;
}

/* ---------- セクション見出し行（JP(明朝) + EN label 画像 + divider・quality1/2 定石踏襲）---------- */
.p-quality3-heading {
  display: flex;
  align-items: baseline;
  column-gap: calc(20 / 16 * 1rem);
  padding-block-end: calc(11 / 16 * 1rem);
  border-block-end: 1px solid #000000;
}

.p-quality3-heading__title {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  line-height: 1.18;
  letter-spacing: 0.2em;
}

.p-quality3-heading__en {
  height: auto;
  flex-shrink: 0;
  margin-inline-start: auto;
}

.p-quality3-kitchen .p-quality3-heading__en {
  width: calc(193 / 16 * 1rem);
}

.p-quality3-bath .p-quality3-heading__en {
  width: calc(129 / 16 * 1rem);
}

.p-quality3-powder .p-quality3-heading__en {
  width: calc(167 / 16 * 1rem);
}

.p-quality3-toilet .p-quality3-heading__en {
  width: calc(129 / 16 * 1rem);
}

/* ---------- KITCHEN ---------- */
.p-quality3-kitchen {
  padding-block-start: calc(110 / 16 * 1rem); /* panel top → JP見出し top の引き算（quality2 と同型の垂直リズム） */
}

.p-quality3-kitchenRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  margin-block-start: calc(82 / 16 * 1rem);
  align-items: flex-start;
}

/* row1 最深部（col2 body= text.lines 4）→ row2 photo top の引き算（real lines 修正済み） */
.p-quality3-kitchenRow--second {
  margin-block-start: calc(51 / 16 * 1rem);
}

.p-quality3-kitchenItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality3-kitchenItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 245/184;
  overflow: hidden;
}

.p-quality3-kitchenItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-kitchenItem__photo--glass-cooktop > img {
  position: absolute;
  top: calc(-2.0272 / 16 * 1rem);
  left: calc(-18.7943 / 16 * 1rem);
  width: calc(287.7865 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--clean-panel > img {
  position: absolute;
  top: calc(-1.6476 / 16 * 1rem);
  left: calc(-28.7995 / 16 * 1rem);
  width: calc(286.7467 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--slide-storage > img {
  position: absolute;
  top: calc(-20.4244 / 16 * 1rem);
  left: calc(-57.5749 / 16 * 1rem);
  width: calc(311.0637 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--dishwasher > img {
  position: absolute;
  top: calc(-15.9135 / 16 * 1rem);
  left: calc(-55.7516 / 16 * 1rem);
  width: calc(309.9707 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--touchless-faucet > img {
  position: absolute;
  top: calc(-14.9273 / 16 * 1rem);
  left: calc(-71.1688 / 16 * 1rem);
  width: calc(325.2386 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--utility-sink > img {
  position: absolute;
  top: calc(-6.2072 / 16 * 1rem);
  left: calc(-29.2124 / 16 * 1rem);
  width: calc(292.387 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--flat-counter > img {
  position: absolute;
  top: calc(-1.6997 / 16 * 1rem);
  left: calc(-25.0012 / 16 * 1rem);
  width: calc(288.2916 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__photo--soft-close > img {
  position: absolute;
  top: calc(-28.4448 / 16 * 1rem);
  left: calc(-52.408 / 16 * 1rem);
  width: calc(332.536 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-kitchenItem__note {
  position: absolute;
  z-index: 1;
  right: calc(10 / 16 * 1rem);
  bottom: calc(6 / 16 * 1rem);
  color: #231815;
  font-size: max(11 / 16 * 1rem, 10 * 1px);
  line-height: 1.75;
}

.p-quality3-kitchenItem__title {
  margin-block-start: calc(23 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality3-kitchenItem__body {
  margin-block-start: calc(6 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-kitchenRow--second .p-quality3-kitchenItem__body {
  margin-block-start: calc(12 / 16 * 1rem);
}

/* ---------- BATH ROOM ---------- */
/* kitchen row2 最深部（col1/2/3/4 body 全て text.lines=4）→ バスルーム見出し top の引き算（real lines 修正済み） */
.p-quality3-bath {
  padding-block-start: calc(210 / 16 * 1rem);
}

.p-quality3-bathRow,
.p-quality3-bathMediaRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  align-items: flex-start;
}

.p-quality3-bathRow {
  margin-block-start: calc(93 / 16 * 1rem);
}

/* row1 最深部（col2 body= text.lines 6）→ media row photo top の引き算（real lines 修正済み） */
.p-quality3-bathMediaRow {
  margin-block-start: calc(71 / 16 * 1rem);
}

.p-quality3-bathItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality3-bathItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 245/184;
  overflow: hidden;
}

.p-quality3-bathItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-bathItem__photo--slide-bar > img {
  position: absolute;
  top: calc(-153.8816 / 16 * 1rem);
  left: calc(-3.3545 / 16 * 1rem);
  width: calc(258.6626 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__photo--shower-head > img {
  position: absolute;
  top: calc(-17.1072 / 16 * 1rem);
  left: calc(-5.1585 / 16 * 1rem);
  width: calc(261.8154 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__photo--thermo-faucet > img {
  position: absolute;
  top: calc(-19.9877 / 16 * 1rem);
  left: calc(-61.103 / 16 * 1rem);
  width: calc(334.0323 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__photo--remote > img {
  position: absolute;
  top: calc(-35.5928 / 16 * 1rem);
  left: calc(-42.5819 / 16 * 1rem);
  width: calc(341.121 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__photo--dryer > img {
  position: absolute;
  top: calc(-1.0374 / 16 * 1rem);
  left: calc(-12.7185 / 16 * 1rem);
  width: calc(285.265 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__photo--floor > img {
  position: absolute;
  top: calc(-43.3953 / 16 * 1rem);
  left: calc(-44.4907 / 16 * 1rem);
  width: calc(349.1436 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-bathItem__title {
  margin-block-start: calc(17 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality3-bathItem__body {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* root-cause 2026-07-06: 浴室暖房乾燥機（ガス温水式）は acquire styleRun 実測で letterSpacing 比率が
   0.05em（他タイトルは 0.1em）と design 自身が個別に字間を詰めている。標準 0.1em のままだと
   text range が 245px 幅を約12px 超過し 2 行に折返って以降のセクションが約30px 分ずれる事故になっていた
   （font-audit 的には fs/lh/weight 一致でも letter-spacing 不一致は見逃されるため band 目視で発見）。 */
.p-quality3-bathMediaRow > .p-quality3-bathItem:first-child .p-quality3-bathItem__title {
  letter-spacing: 0.05em;
}

.p-quality3-bathDiagram {
  width: calc(531 / 16 * 1rem);
  /* design は dryer/floor 写真列と diagram の先頭 top が揃っておらず、diagram 側が 18px 下から始まる
     （abs 実測: baked-0 top 2144 − dryer photo top 2126 = 18）。flex align-items:flex-start の
     既定位置のままでは早期に表示される root-cause だったため個別 margin で列ごとに補正する（SOP §2）。 */
  margin-block-start: calc(18 / 16 * 1rem);
}

.p-quality3-bathDiagram__image {
  width: calc(521 / 16 * 1rem);
  margin-inline-start: calc(4 / 16 * 1rem); /* bake-regions タイト実測の左オフセット（gen-quality3-abs.cjs 修正値を踏襲） */
  max-width: none;
}

.p-quality3-bathDiagram__title {
  margin-block-start: calc(32 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality3-bathDiagram__body {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  color: #231815;
}

/* ---------- POWDER ROOM ---------- */
/* bath media row 最深部（col3=diagram body 3行）→ 洗面室見出し top の引き算（real lines 修正済み） */
.p-quality3-powder {
  padding-block-start: calc(214 / 16 * 1rem);
}

.p-quality3-powderRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  margin-block-start: calc(88 / 16 * 1rem);
  align-items: flex-start;
}

/* row1 最深部（col1〜4 body 全て text.lines=4）→ row2 photo top の引き算（real lines 修正済み） */
.p-quality3-powderRow--second {
  margin-block-start: calc(46 / 16 * 1rem);
}

.p-quality3-powderItem {
  width: calc(245 / 16 * 1rem);
}

.p-quality3-powderItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 245/184;
  overflow: hidden;
}

.p-quality3-powderItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-powderItem__photo--mirror-storage > img {
  position: absolute;
  top: calc(-71.9587 / 16 * 1rem);
  left: calc(-15.0019 / 16 * 1rem);
  width: calc(261.3426 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--vanity-storage > img {
  position: absolute;
  top: calc(-181.7557 / 16 * 1rem);
  left: calc(-1.5759 / 16 * 1rem);
  width: calc(247.9906 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--scale-storage > img {
  position: absolute;
  top: calc(-1.3833 / 16 * 1rem);
  left: calc(-13.0266 / 16 * 1rem);
  width: calc(278.745 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--hand-shower > img {
  position: absolute;
  top: calc(-20.4823 / 16 * 1rem);
  left: calc(-47.8604 / 16 * 1rem);
  width: calc(327.7501 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--linen > img {
  position: absolute;
  top: calc(-85.1509 / 16 * 1rem);
  left: calc(-26.7191 / 16 * 1rem);
  width: calc(276.8179 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--child-mirror > img {
  position: absolute;
  top: calc(-21.4726 / 16 * 1rem);
  left: calc(-67.7691 / 16 * 1rem);
  width: calc(321.9443 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--bowl > img {
  position: absolute;
  top: calc(-3.5753 / 16 * 1rem);
  left: calc(-19.6577 / 16 * 1rem);
  width: calc(284.7102 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__photo--one-touch-faucet > img {
  position: absolute;
  top: calc(-144.3178 / 16 * 1rem);
  left: calc(-31.5098 / 16 * 1rem);
  width: calc(306.1963 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-powderItem__note {
  position: absolute;
  z-index: 1;
  right: calc(10 / 16 * 1rem);
  bottom: calc(6 / 16 * 1rem);
  width: calc(61 / 16 * 1rem);
  color: #231815;
  font-size: max(12 / 16 * 1rem, 10 * 1px); /* font-audit 検出: acquire 実測(ai-44)は12px（誤って11pxを使用していた） */
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.025em;
  text-align: right;
}

@media (min-width: 1024px) and (max-width: 1439px) {
  .p-quality3-kitchenItem--note,
  .p-quality3-powderItem--note {
    position: relative;
  }
  .p-quality3-kitchenItem__note,
  .p-quality3-powderItem__note {
    bottom: calc(100% - calc(184 / 16 * 1rem) + calc(6 / 16 * 1rem));
  }
  .p-quality3-powderItem__note {
    width: auto;
  }
}
.p-quality3-powderItem__title {
  margin-block-start: calc(19 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  /* row1（収納付三面鏡/化粧台収納/ヘルスメーター収納/ハンドシャワー）は acquire styleRun 実測で
     letterSpacing 比率 0em（row2 は標準 0em）。design が row 単位で字間を変えている実測差
     （2026-07-06 typography audit）。 */
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-powderItem__body {
  margin-block-start: calc(6 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-powderRow--second .p-quality3-powderItem__title {
  margin-block-start: calc(16 / 16 * 1rem);
  letter-spacing: 0.1em; /* row2 は標準比率に戻る（実測確認済み） */
}

.p-quality3-powderRow--second .p-quality3-powderItem__body {
  margin-block-start: calc(8 / 16 * 1rem);
}

/* ---------- REST ROOM（トイレスペース）---------- */
/* powder row2 最深部（col1〜4 body 全て text.lines=4/5系）→ トイレスペース見出し top の引き算（real lines 修正済み） */
.p-quality3-toilet {
  padding-block-start: calc(198 / 16 * 1rem);
}

/* --- hero（タンクレストイレ写真+壁リモコンinset / タンクレストイレ文 / 節水グラフ / 超節水トイレ文）--- */
.p-quality3-toiletHero {
  display: flex;
  align-items: flex-start;
  margin-block-start: calc(108 / 16 * 1rem);
}

.p-quality3-toiletHero__photo {
  position: relative;
  flex-shrink: 0;
  width: calc(206 / 16 * 1rem);
  aspect-ratio: 206/225;
  overflow: visible;
}

.p-quality3-toiletHero__photo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 壁リモコン参考写真は本体写真の右下に重なるinset（あしらい・z-index明示） */
.p-quality3-toiletHero__remoteInset {
  position: absolute;
  left: calc(142 / 16 * 1rem);
  top: calc(148 / 16 * 1rem);
  width: calc(146 / 16 * 1rem);
  height: calc(98 / 16 * 1rem);
  overflow: hidden;
}

.p-quality3-toiletHero__remoteInset > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-quality3-toiletHero__remoteLabel {
  position: absolute;
  top: calc(15 / 16 * 1rem);
  left: calc(67 / 16 * 1rem);
  display: block;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-toiletHero__remoteNote {
  position: absolute;
  top: calc(75 / 16 * 1rem);
  left: calc(64 / 16 * 1rem);
  display: block;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  color: #231815;
}

@media (min-width: 1024px) and (max-width: 1439px) {
  .p-quality3-toiletHero__remoteLabel {
    font-size: calc(12 / 16 * 1rem);
  }
  .p-quality3-toiletHero__remoteNote {
    font-size: calc(10 / 16 * 1rem);
  }
}
.p-quality3-toiletHero__intro {
  width: calc(246 / 16 * 1rem);
  flex-shrink: 0;
  margin-inline-start: calc(84 / 16 * 1rem);
  margin-block-start: calc(18 / 16 * 1rem);
}

.p-quality3-toiletHero__title,
.p-quality3-toiletHero__savingsTitle {
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

/* body は text.lines=6（86文字・width245.8で自然折返し・palt実測で design 行数と一致） */
.p-quality3-toiletHero__body {
  margin-block-start: calc(6 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-toiletHero__graph {
  width: calc(278 / 16 * 1rem);
  flex-shrink: 0;
  height: auto;
  margin-inline-start: calc(44 / 16 * 1rem);
  margin-block-start: calc(19 / 16 * 1rem);
  max-width: none;
}

.p-quality3-toiletHero__savings {
  width: calc(250 / 16 * 1rem);
  flex-shrink: 0;
  margin-inline-start: calc(2 / 16 * 1rem);
  margin-block-start: calc(87 / 16 * 1rem);
}

.p-quality3-toiletHero__savingsBody {
  margin-block-start: calc(1 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-toiletHero__disclaimer {
  margin-block-start: calc(6 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0;
  color: #231815;
}

/* --- row（4カラム・カード群。オート開閉〜手洗い付きキャビネットまで）--- */
.p-quality3-toiletRow {
  display: flex;
  column-gap: calc(40 / 16 * 1rem);
  align-items: flex-start;
  /* hero 最深部（remoteInset は position:absolute で対象外・intro/savings/graph の実 in-flow 最深部）
     → row1 photo top の引き算（real lines 修正済み・2026-07-06） */
  margin-block-start: calc(86 / 16 * 1rem);
}

/* row1 最深部（col2=lidClose body 4行）→ row2 photo top の引き算（real lines 修正済み） */
.p-quality3-toiletRow--second {
  margin-block-start: calc(76 / 16 * 1rem);
}

.p-quality3-toiletItem {
  position: relative;
  width: calc(245 / 16 * 1rem);
}

.p-quality3-toiletItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 245/184;
  overflow: hidden;
}

.p-quality3-toiletItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-toiletItem__photo--auto-open > img {
  position: absolute;
  top: calc(-38.7698 / 16 * 1rem);
  left: calc(-57.0046 / 16 * 1rem);
  width: calc(339.8663 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--premist > img {
  position: absolute;
  top: calc(-11.202 / 16 * 1rem);
  left: calc(-38.3809 / 16 * 1rem);
  width: calc(298.0475 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--tornado > img {
  position: absolute;
  top: calc(-26.6262 / 16 * 1rem);
  left: calc(-68.1697 / 16 * 1rem);
  width: calc(353.0942 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--rimless > img {
  position: absolute;
  top: calc(-3.0235 / 16 * 1rem);
  left: calc(-1.7792 / 16 * 1rem);
  width: calc(299.6966 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--lift-clean > img {
  position: absolute;
  top: calc(-20.9448 / 16 * 1rem);
  left: calc(-50.7644 / 16 * 1rem);
  width: calc(300.1241 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--wall-storage > img {
  position: absolute;
  top: calc(-60.7199 / 16 * 1rem);
  left: calc(-11.2677 / 16 * 1rem);
  width: calc(264.3554 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__photo--handwash-cabinet > img {
  position: absolute;
  top: calc(-87.8481 / 16 * 1rem);
  left: calc(-6.0543 / 16 * 1rem);
  width: calc(260.4904 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-toiletItem__note {
  position: absolute;
  z-index: 1;
  right: calc(10 / 16 * 1rem);
  top: calc(1 / 16 * 1rem);
  width: calc(61 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px); /* font-audit 検出: acquire 実測(ai-19/21/22/23/25/26)は12px（誤って12pxを使用していた） */
  font-weight: 300;
  line-height: 1.35;
  letter-spacing: 0.025em;
  text-align: right;
  color: #231815;
}

.p-quality3-toiletItem__title {
  margin-block-start: calc(13 / 16 * 1rem);
  font-size: max(18 / 16 * 1rem, 13.5 * 1px);
  font-weight: 600;
  line-height: 1.646;
  letter-spacing: 0.1em;
  color: #231815;
}

.p-quality3-toiletItem__body {
  margin-block-start: calc(4 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 2;
  letter-spacing: 0.05em;
  color: #231815;
}

/* 便ふた閉止後洗浄カード: 写真がやや低く、直下に「便座から立つと」バナー画像が入る */
.p-quality3-toiletItem--lidClose .p-quality3-toiletItem__photo {
  aspect-ratio: 245/145;
}

.p-quality3-toiletItem--lidClose .p-quality3-toiletItem__banner {
  display: block;
  width: 100%;
  margin-block-start: calc(3 / 16 * 1rem);
  max-width: none;
}

.p-quality3-toiletItem--lidClose .p-quality3-toiletItem__title {
  margin-block-start: calc(29 / 16 * 1rem);
}

/* row2（フチなし形状〜手洗い付きキャビネット）は写真高さが標準カードと概ね同一 */
.p-quality3-toiletRow--second .p-quality3-toiletItem__title {
  margin-block-start: calc(14 / 16 * 1rem);
}

.p-quality3-toiletRow--second .p-quality3-toiletItem__body {
  margin-block-start: calc(4 / 16 * 1rem);
}

/* ---------- 下部タブ ---------- */
.p-quality3-lower__tabs {
  /* root-cause 2026-07-06: 転記ミスで 236 を使用していた（正しい値は取得班が landmark probe で
     確定済みの abs CSS 実測値 14rem=222px）。abs 側コメント「白パネル下端(y6100)→
     タブ文字上端(y6322)」をそのまま採用。 */
  margin-block-start: calc(222 / 16 * 1rem);
  padding-block-end: calc(38 / 16 * 1rem);
}

.p-quality3-lower__tabs .c-quality-tabs__link {
  font-weight: 300;
}

/* =========================================================
   .p-quality3-sp — SP 専用 DOM（本サイト限定の特例・pappy 明言 2026-07-06）
   PC の @include mq(sp) 上書きではなく、SP manifest 実測値から独立構築。
   数値は全て run/absolute-draft/sp/draft-manifest.json（および quality3-abs.css sp レーン）の引き算。
   行数は acquire JSON text.lines 実数（PC と同じ 2026-07-06 root-cause 修正を適用済み）。
   ========================================================= */
.p-quality3-sp {
  color: #ffffff;
}

.p-quality3-sp img {
  display: block;
}

.p-quality3-sp :where(h2, h3, p) {
  margin: 0;
  font-weight: 300;
}

.p-quality3-sp * {
  position: relative;
}

/* ---------- intro（見出し「心地いい水回りの仕様」・SP はアウトライン化=画像1ブロック）---------- */
.p-quality3-spIntro {
  margin-block-start: calc(58 / 16 * 1rem);
  text-align: center;
}

.p-quality3-spIntro__heading {
  width: calc(246 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality3-spIntro__subimage {
  width: calc(167 / 16 * 1rem);
  margin-inline: auto;
  margin-block-start: calc(29 / 16 * 1rem);
}

.p-quality3-spPanel {
  width: 100%;
  margin-block-start: calc(60 / 16 * 1rem);
  /* design-ref-sp 実測（x10, y900〜6000 の複数点で完全フラット #EAEAEA）。PC と同一値・不透明。 */
  background-color: #eaeaea;
  padding-block-end: calc(64 / 16 * 1rem);
}

.p-quality3-spPanel :where(h2, h3, p) {
  color: #231815;
}

/* ---------- 見出し行（JP(明朝) + EN label + divider） ---------- */
.p-quality3-spHeading {
  display: flex;
  align-items: baseline;
  column-gap: calc(12 / 16 * 1rem);
  width: calc(330 / 16 * 1rem); /* divider は design 実測 330（全幅ではない） */
  margin-inline: auto;
  padding-block-end: calc(4 / 16 * 1rem);
  border-block-end: 1px solid #000000;
}

.p-quality3-spHeading__title {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.625;
  letter-spacing: 0.1em;
}

.p-quality3-spHeading__en {
  height: auto;
  flex-shrink: 0;
  margin-inline-start: auto;
}

.p-quality3-spKitchen .p-quality3-spHeading__en {
  width: calc(118 / 16 * 1rem);
}

.p-quality3-spBath .p-quality3-spHeading__en {
  width: calc(80 / 16 * 1rem);
}

.p-quality3-spPowder .p-quality3-spHeading__en {
  width: calc(104 / 16 * 1rem);
}

.p-quality3-spToilet .p-quality3-spHeading__en {
  width: calc(80 / 16 * 1rem);
}

.p-quality3-spKitchenRow,
.p-quality3-spBathRow,
.p-quality3-spPowderRow,
.p-quality3-spToiletRow {
  display: flex;
  align-items: flex-start;
  padding-inline: calc(23 / 16 * 1rem);
}

.p-quality3-spKitchenRow > :last-child,
.p-quality3-spBathRow > :last-child,
.p-quality3-spPowderRow > :last-child,
.p-quality3-spToiletRow > :last-child {
  margin-inline-start: auto;
}

/* ---------- SYSTEM KITCHEN ---------- */
.p-quality3-spKitchen {
  padding-block-start: calc(33 / 16 * 1rem);
}

.p-quality3-spKitchenRow {
  margin-block-start: calc(44 / 16 * 1rem);
}

/* row1〜4 各段最深部（body 全て text.lines=4）→ 次段 photo top の引き算（real lines 修正済み・38.15/37.34/38.33 の平均で統一） */
.p-quality3-spKitchenRow + .p-quality3-spKitchenRow {
  margin-block-start: calc(38 / 16 * 1rem);
}

.p-quality3-spKitchenItem {
  width: calc(153 / 16 * 1rem);
}

.p-quality3-spKitchenItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 153/115;
  overflow: hidden;
}

.p-quality3-spKitchenItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-spKitchenItem__photo--glass-cooktop > img {
  position: absolute;
  top: calc(-1.266 / 16 * 1rem);
  left: calc(-11.7369 / 16 * 1rem);
  width: calc(179.7197 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--clean-panel > img {
  position: absolute;
  top: calc(-1.0289 / 16 * 1rem);
  left: calc(-17.985 / 16 * 1rem);
  width: calc(179.0703 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--slide-storage > img {
  position: absolute;
  top: calc(-12.7549 / 16 * 1rem);
  left: calc(-35.9549 / 16 * 1rem);
  width: calc(194.2561 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--dishwasher > img {
  position: absolute;
  top: calc(-9.9378 / 16 * 1rem);
  left: calc(-34.8163 / 16 * 1rem);
  width: calc(193.5736 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--touchless-faucet > img {
  position: absolute;
  top: calc(-9.3219 / 16 * 1rem);
  left: calc(-44.4442 / 16 * 1rem);
  width: calc(203.1082 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--utility-sink > img {
  position: absolute;
  top: calc(-3.8763 / 16 * 1rem);
  left: calc(-18.2429 / 16 * 1rem);
  width: calc(182.5927 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--flat-counter > img {
  position: absolute;
  top: calc(-1.0614 / 16 * 1rem);
  left: calc(-15.613 / 16 * 1rem);
  width: calc(180.0352 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__photo--soft-close > img {
  position: absolute;
  top: calc(-17.7634 / 16 * 1rem);
  left: calc(-32.7283 / 16 * 1rem);
  width: calc(207.6653 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spKitchenItem__note {
  position: absolute;
  z-index: 1;
  right: calc(5 / 16 * 1rem);
  top: calc(99 / 16 * 1rem); /* 写真(h115)の右下。bottom 指定だとカード全体の右下（本文の下）に落ちる */
  color: #231815;
  font-size: max(10 / 16 * 1rem, 10 * 1px); /* font-audit 検出: acquire 実測は10px（誤って8pxを使用していた） */
  font-weight: 300;
  line-height: 1.75;
}

.p-quality3-spKitchenItem__title {
  margin-block-start: calc(13 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

/* root-cause 2026-07-06: 「ガラスコートトップコンロ」は text range 実測で 0.05em だと 153px 幅を
   超過し2行に折返る（design text.lines=1 と不一致）。letter-spacing:0（design styleRun 実測でも
   このカードのみ字間が詰まっている）で1行に収まることを確認。 */
.p-quality3-spKitchenRow:first-of-type .p-quality3-spKitchenItem:first-child .p-quality3-spKitchenItem__title {
  letter-spacing: 0;
}

.p-quality3-spKitchenItem__body {
  margin-block-start: calc(7 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

/* ---------- BATH ROOM ---------- */
/* kitchen row4 最深部 → バスルーム見出し top の引き算（real lines 修正済み） */
.p-quality3-spBath {
  padding-block-start: calc(85 / 16 * 1rem);
}

.p-quality3-spBathRow {
  margin-block-start: calc(48 / 16 * 1rem);
}

/* row1 最深部（body text.lines=4）→ row2 photo top（real lines 修正済み） */
.p-quality3-spBathRow:nth-of-type(2) {
  margin-block-start: calc(46 / 16 * 1rem);
}

/* row2 最深部（body text.lines=5）→ row3 photo top（real lines 修正済み） */
.p-quality3-spBathRow:nth-of-type(3) {
  margin-block-start: calc(39 / 16 * 1rem);
}

.p-quality3-spBathItem {
  width: calc(153 / 16 * 1rem);
}

.p-quality3-spBathItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 153/115;
  overflow: hidden;
}

.p-quality3-spBathItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-spBathItem__photo--slide-bar > img {
  position: absolute;
  top: calc(-96.0975 / 16 * 1rem);
  left: calc(-2.0948 / 16 * 1rem);
  width: calc(161.5321 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__photo--shower-head > img {
  position: absolute;
  top: calc(-10.6833 / 16 * 1rem);
  left: calc(-3.2214 / 16 * 1rem);
  width: calc(163.5011 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__photo--thermo-faucet > img {
  position: absolute;
  top: calc(-12.4821 / 16 * 1rem);
  left: calc(-38.1582 / 16 * 1rem);
  width: calc(208.5998 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__photo--remote > img {
  position: absolute;
  top: calc(-22.2273 / 16 * 1rem);
  left: calc(-26.592 / 16 * 1rem);
  width: calc(213.0266 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__photo--dryer > img {
  position: absolute;
  top: calc(-0.6479 / 16 * 1rem);
  left: calc(-7.9426 / 16 * 1rem);
  width: calc(178.1451 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__photo--floor > img {
  position: absolute;
  top: calc(-27.1 / 16 * 1rem);
  left: calc(-27.784 / 16 * 1rem);
  width: calc(218.0366 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spBathItem__title {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-spBathItem__body {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

.p-quality3-spBathRow:first-of-type .p-quality3-spBathItem:first-child .p-quality3-spBathItem__title {
  width: calc(170 / 16 * 1rem);
  letter-spacing: 0;
}

/* 2026-07-06 root-cause 是正（SOP §1-4 禁忌是正・pappy裁定）: 「浴室暖房乾燥機（ガス温水式）」は
   acquire styleRun 実測で width190.21px（letterSpacing 0.05em=基底 .p-quality3-spBathItem__title と
   同値）と、カード幅153pxを design 自身が超える自由伸長ラベル。letter-spacing -0.04em まで詰めても
   172.6px が下限でカード幅に収まらないことを実測済みのため、旧実装は nowrap で1行固定していたが
   （実害: 隣の「滑りにくい床」カードへ文字がはみ出し重なって見えていた）、pappy裁定「palt で収まら
   なければ自然改行で良い」に従い nowrap 例外を撤去し自然折返し（2行）に委ねる。行が増えても
   .p-quality3-spBathRow は flex align-items:flex-start のみで固定 height が無く、後続
   .p-quality3-spBathDiagram の margin-block-start はブロックフロー基準（直前要素の実際の下端からの
   相対値）のため自然に送られる（固定pxオフセットで衝突する構造ではない＝固定height 0件を確認済み）。
   letter-spacing は基底クラスの 0.05em（design 実測どおり）のままで良く追加指定は不要。 */
/* row3 最深部（body text.lines=5）→ 図解 baked image top（real lines 修正済み） */
.p-quality3-spBathDiagram {
  margin-block-start: calc(23 / 16 * 1rem);
  padding-inline: calc(23 / 16 * 1rem);
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality3-spBathDiagram {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.p-quality3-spBathDiagram__image {
  width: calc(330 / 16 * 1rem);
  margin-inline-start: calc(4 / 16 * 1rem); /* bake-regions タイト実測の左オフセット（PC と同一手法） */
  max-width: none;
}

.p-quality3-spBathDiagram__title {
  margin-block-start: calc(15 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-spBathDiagram__body {
  margin-block-start: calc(9 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  color: #231815;
}

/* ---------- POWDER ROOM ---------- */
/* bath 図解（body text.lines=4）最深部 → 洗面室見出し top（real lines 修正済み・元値 100.5 は偶然一致） */
.p-quality3-spPowder {
  padding-block-start: calc(101 / 16 * 1rem);
}

.p-quality3-spPowderRow {
  margin-block-start: calc(48 / 16 * 1rem);
}

/* row1 最深部（body text.lines=4）→ row2 photo top（real lines 修正済み） */
.p-quality3-spPowderRow:nth-of-type(2) {
  margin-block-start: calc(47 / 16 * 1rem);
}

/* row2 最深部（body text.lines=5系）→ row3 photo top（real lines 修正済み） */
.p-quality3-spPowderRow:nth-of-type(3) {
  margin-block-start: calc(61 / 16 * 1rem);
}

/* row3 最深部 → row4 photo top（real lines 修正済み） */
.p-quality3-spPowderRow:nth-of-type(4) {
  margin-block-start: calc(47 / 16 * 1rem);
}

.p-quality3-spPowderItem {
  width: calc(153 / 16 * 1rem);
}

.p-quality3-spPowderItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 153/115;
  overflow: hidden;
}

.p-quality3-spPowderItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-spPowderItem__photo--mirror-storage > img {
  position: absolute;
  top: calc(-44.9374 / 16 * 1rem);
  left: calc(-9.3685 / 16 * 1rem);
  width: calc(163.2058 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--vanity-storage > img {
  position: absolute;
  top: calc(-113.5045 / 16 * 1rem);
  left: calc(-0.9841 / 16 * 1rem);
  width: calc(154.8676 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--scale-storage > img {
  position: absolute;
  top: calc(-0.8638 / 16 * 1rem);
  left: calc(-8.135 / 16 * 1rem);
  width: calc(174.0734 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--hand-shower > img {
  position: absolute;
  top: calc(-12.791 / 16 * 1rem);
  left: calc(-29.8883 / 16 * 1rem);
  width: calc(204.6766 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--linen > img {
  position: absolute;
  top: calc(-53.1758 / 16 * 1rem);
  left: calc(-16.6858 / 16 * 1rem);
  width: calc(172.87 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--child-mirror > img {
  position: absolute;
  top: calc(-13.4093 / 16 * 1rem);
  left: calc(-42.3211 / 16 * 1rem);
  width: calc(201.051 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--bowl > img {
  position: absolute;
  top: calc(-2.2327 / 16 * 1rem);
  left: calc(-12.276 / 16 * 1rem);
  width: calc(177.7986 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__photo--one-touch-faucet > img {
  position: absolute;
  top: calc(-90.125 / 16 * 1rem);
  left: calc(-19.6775 / 16 * 1rem);
  width: calc(191.2165 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spPowderItem__note {
  position: absolute;
  z-index: 1;
  right: calc(5 / 16 * 1rem);
  top: calc(99 / 16 * 1rem); /* 写真(h115)の右下。bottom 指定だとカード全体の右下（本文の下）に落ちる */
  color: #231815;
  font-size: max(10 / 16 * 1rem, 10 * 1px); /* font-audit 検出: acquire 実測は10px（誤って8pxを使用していた） */
  font-weight: 300;
  line-height: 1.75;
}

.p-quality3-spPowderItem__title {
  margin-block-start: calc(11 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-spPowderItem__body {
  margin-block-start: calc(7 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

/* ---------- REST ROOM（トイレスペース） ---------- */
/* powder row4 最深部 → トイレスペース見出し top（real lines 修正済み） */
.p-quality3-spToilet {
  padding-block-start: calc(83 / 16 * 1rem);
}

.p-quality3-spToiletIntro {
  position: relative;
  padding-left: calc(15 / 16 * 1rem);
  padding-right: calc(23 / 16 * 1rem);
  margin-block-start: calc(18 / 16 * 1rem);
}

.p-quality3-spToiletIntro__media {
  display: flex;
  column-gap: calc(12 / 16 * 1rem);
  align-items: flex-start;
}

/* root-cause 2026-07-07: design は intro 左端が 15px、photo top は title から約25px下、
   remote display top は title から約117px下。親 padding と flex gap の合成値がずれていたため、
   写真・本文・リモコンを同じ design 座標系へ戻す。 */
.p-quality3-spToiletIntro__photo {
  flex-shrink: 0;
  width: calc(144 / 16 * 1rem);
  aspect-ratio: 144/158;
  margin-block-start: calc(25 / 16 * 1rem);
  overflow: hidden;
}

.p-quality3-spToiletIntro__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-spToiletIntro__title {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

/* body は text.lines=6（PC ai-35 と同一文言・real lines 修正済み） */
.p-quality3-spToiletIntro__body {
  margin-block-start: calc(12 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

.p-quality3-spToiletIntro__remoteInset {
  position: absolute;
  left: calc(235 / 16 * 1rem);
  top: calc(151 / 16 * 1rem);
  width: calc(108 / 16 * 1rem);
  height: calc(34 / 16 * 1rem); /* design 実測: リモコン写真は 108x34 の帯クロップ */
  overflow: hidden;
}

.p-quality3-spToiletIntro__remoteInset > img {
  display: block;
  width: 100%;
  height: 100%;
}

.p-quality3-spToiletIntro__remoteLabel {
  position: absolute;
  left: calc(175 / 16 * 1rem);
  top: calc(154 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 600;
  line-height: 1.22;
  color: #231815;
}

.p-quality3-spToiletIntro__remoteNote {
  position: absolute;
  left: calc(174 / 16 * 1rem);
  top: calc(169 / 16 * 1rem);
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: 0.025em;
  color: #231815;
}

/* media row 最深部（inset は absolute のため対象外・photo/introText の in-flow 最深部）→ 節水グラフ top（real lines 修正済み） */
.p-quality3-spToiletSavings {
  position: relative;
  margin-block-start: calc(35 / 16 * 1rem);
  padding-inline: calc(23 / 16 * 1rem);
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality3-spToiletSavings {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

.p-quality3-spToiletSavings__graph {
  width: calc(224 / 16 * 1rem);
  flex-shrink: 0;
  height: auto;
  max-width: none;
}

/* design はテキスト塊をグラフ bbox に重なる位置（x225・グラフ上端+88）に置くため flow では組めない */
.p-quality3-spToiletSavings__text {
  position: absolute;
  left: calc(225 / 16 * 1rem);
  top: calc(88 / 16 * 1rem);
  width: calc(128 / 16 * 1rem);
}

.p-quality3-spToiletSavings__title {
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-spToiletSavings__body {
  margin-block-start: calc(5 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

/* savings 最深部（graph下端）→ 免責注記 top（real lines 修正済み） */
.p-quality3-spToiletIntro__disclaimer {
  margin-block-start: calc(15 / 16 * 1rem);
  padding-inline: calc(23 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  color: #231815;
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality3-spToiletIntro__disclaimer {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}

/* --- row（2カラム・カード群。オート開閉〜手洗い付きキャビネットまで）--- */
/* 免責注記下端 → row1 photo top（real lines 修正済み） */
.p-quality3-spToiletRow {
  margin-block-start: calc(52 / 16 * 1rem);
}

/* row1 最深部（col2=lidClose body text.lines=4）→ row2 photo top（real lines 修正済み） */
.p-quality3-spToiletRow--2 {
  margin-block-start: calc(54 / 16 * 1rem);
}

/* row2 最深部（body text.lines=5系）→ row3 photo top（real lines 修正済み） */
.p-quality3-spToiletRow--3 {
  margin-block-start: calc(51 / 16 * 1rem);
}

/* row3 最深部 → row4 photo top（real lines 修正済み） */
.p-quality3-spToiletRow--4 {
  margin-block-start: calc(45 / 16 * 1rem);
}

.p-quality3-spToiletItem {
  position: relative;
  width: calc(153 / 16 * 1rem);
}

.p-quality3-spToiletItem__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 153/115;
  overflow: hidden;
}

.p-quality3-spToiletItem__photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-quality3-spToiletItem__photo--auto-open > img {
  position: absolute;
  top: calc(-24.2113 / 16 * 1rem);
  left: calc(-35.5988 / 16 * 1rem);
  width: calc(212.243 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--premist > img {
  position: absolute;
  top: calc(-6.9956 / 16 * 1rem);
  left: calc(-23.9685 / 16 * 1rem);
  width: calc(186.1276 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--tornado > img {
  position: absolute;
  top: calc(-16.6278 / 16 * 1rem);
  left: calc(-42.5713 / 16 * 1rem);
  width: calc(220.5038 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--rimless > img {
  position: absolute;
  top: calc(-1.8881 / 16 * 1rem);
  left: calc(-1.1111 / 16 * 1rem);
  width: calc(187.1575 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--lift-clean > img {
  position: absolute;
  top: calc(-13.0798 / 16 * 1rem);
  left: calc(-31.7018 / 16 * 1rem);
  width: calc(187.4245 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--wall-storage > img {
  position: absolute;
  top: calc(-37.919 / 16 * 1rem);
  left: calc(-7.0366 / 16 * 1rem);
  width: calc(165.0873 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__photo--handwash-cabinet > img {
  position: absolute;
  top: calc(-54.8603 / 16 * 1rem);
  left: calc(-3.7809 / 16 * 1rem);
  width: calc(162.6736 / 16 * 1rem);
  height: auto;
  max-width: none;
}

.p-quality3-spToiletItem__note {
  position: absolute;
  z-index: 1;
  right: calc(6 / 16 * 1rem);
  top: calc(1 / 16 * 1rem);
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.35;
  color: #231815;
}

/* row2/3 の note は写真右下・row2 は白（design 実測）。row1 オート開閉のみ右上黒のまま */
.p-quality3-spToiletRow--2 .p-quality3-spToiletItem__note,
.p-quality3-spToiletRow--3 .p-quality3-spToiletItem__note {
  top: calc(100 / 16 * 1rem);
}

.p-quality3-spToiletRow--2 .p-quality3-spToiletItem__note {
  color: #ffffff;
}

.p-quality3-spToiletItem__title {
  margin-block-start: calc(17 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.322;
  letter-spacing: 0.05em;
  color: #231815;
}

.p-quality3-spToiletItem__body {
  margin-block-start: calc(5 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.025em;
  color: #231815;
}

/* root-cause 2026-07-06: 「トルネード洗浄」本文は width/letter-spacing とも同型カード（プレミスト等）と
   同一値だが「」括弧を含む文字列の自然改行位置の違いで text.lines=4 に対し3行しか折返らない
   （browser/Illustrator の kinsoku 処理差）。text range 実測で 0.03em にすると4行に復帰することを確認。 */
.p-quality3-spToiletRow--2 .p-quality3-spToiletItem:last-child .p-quality3-spToiletItem__body {
  letter-spacing: 0.03em;
}

/* 便ふた閉止後洗浄カード: 写真がやや低く、直下に「便座から立つと」バナー画像が入る */
.p-quality3-spToiletItem--lidClose .p-quality3-spToiletItem__photo {
  aspect-ratio: 153/91;
}

.p-quality3-spToiletItem--lidClose .p-quality3-spToiletItem__banner {
  display: block;
  width: 100%;
  margin-block-start: calc(2 / 16 * 1rem);
  max-width: none;
}

.p-quality3-spToiletItem--lidClose .p-quality3-spToiletItem__bannerNote {
  margin-block-start: calc(3 / 16 * 1rem);
  margin-inline-start: calc(7 / 16 * 1rem);
  font-size: max(7 / 16 * 1rem, 7 * 1px);
  line-height: 1.25;
}

.p-quality3-spToiletItem--lidClose .p-quality3-spToiletItem__title {
  margin-block-start: calc(17 / 16 * 1rem);
}

/* row3（フチなし形状/お掃除リフト）row4（トイレ吊戸収納/手洗い付きキャビネット）は個別余白 */
.p-quality3-spToiletRow--3 .p-quality3-spToiletItem__title,
.p-quality3-spToiletRow--4 .p-quality3-spToiletItem__title {
  margin-block-start: calc(13 / 16 * 1rem);
}

/* ---------- 下部タブ ---------- */
.p-quality3-spTabs {
  margin-block-start: calc(98 / 16 * 1rem); /* 白パネル下端 → RG QUALITY kicker上端（landmark probe 確定値） */
  padding-block-end: calc(0 / 16 * 1rem);
  text-align: center;
}

.p-quality3-spTabs__label {
  display: block;
  width: calc(132 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality3-spTabs nav.c-quality-tabs--footer {
  /* design は kicker 下端→リンク文字 ink 上端 45.4。link の line-box(41.6) 半レディング約12を
     控除しないと文字が design より 12px 下がる（design-census 実測で検出） */
  margin-block-start: calc(34 / 16 * 1rem);
}

@media screen and (max-width: 1023px) {
  .page-quality3 .c-lower-fv__bg {
    object-position: 50% 0;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality3-spKitchenRow,
  .p-quality3-spBathRow,
  .p-quality3-spPowderRow,
  .p-quality3-spToiletRow,
  .p-quality3-spToiletIntro {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
.p-quality4-main {
  padding-block-start: 0;
  overflow-x: clip;
  color: #ffffff;
  background-color: #303030;
  background-image: url("../img/top/bg-texture.webp");
  background-repeat: repeat;
  background-size: calc(480 / 16 * 1rem) calc(480 / 16 * 1rem);
}

.p-quality4-main img {
  display: block;
  max-width: 100%;
  height: auto;
}

.p-quality4-main :where(h1, h2, h3, h4, p) {
  margin: 0;
  font-weight: 400;
}

.p-quality4-main figure {
  margin: 0;
}

.page-quality4 .c-lower-fv__bg {
  filter: brightness(1);
  object-position: center 32%;
}
@media screen and (max-width: 1023px) {
  .page-quality4 .c-lower-fv__bg {
    object-position: center top;
  }
}

.page-quality4 .c-lower-fv__stage > picture {
  grid-area: 1/1;
  width: 100%;
  height: 100%;
}

.page-quality4 .c-lower-fv__stage > picture > .c-lower-fv__bg {
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 1023px) {
  .page-quality4 h1.c-lower-fv__catch {
    margin-top: calc(121 / 16 * 1rem);
  }
}

.p-quality4-pc {
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality4-pc {
    display: none;
  }
}

.p-quality4-sp {
  display: none;
  font-feature-settings: "palt";
}
@media screen and (max-width: 1023px) {
  .p-quality4-sp {
    display: block;
  }
}

.p-quality4-intro {
  padding-block-start: calc(164 / 16 * 1rem);
  padding-block-end: calc(90 / 16 * 1rem);
  text-align: center;
}

.p-quality4-intro__heading {
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(28 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.2em;
  color: #ffffff;
}

.p-quality4-intro__sub {
  margin-block-start: calc(24 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.35em;
  color: #ffffff;
}

.p-quality4-panel {
  width: calc(1600 / 16 * 1rem);
  margin-inline: auto;
  padding-block: calc(109 / 16 * 1rem) calc(152 / 16 * 1rem);
  background-color: #eaeaea;
}

.p-quality4-inner {
  max-width: calc(1100 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality4-section {
  color: #231815;
}

.p-quality4-section + .p-quality4-section {
  margin-block-start: calc(262 / 16 * 1rem);
}

.p-quality4-section__title {
  position: relative;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(22 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: 0.2em;
  color: #231815;
  padding-block-end: calc(12 / 16 * 1rem);
  border-block-end: 1px solid #231815;
}

.p-quality4-section__title::after {
  content: "RG QUALITY";
  position: absolute;
  top: calc(7 / 16 * 1rem);
  right: 0;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.22em;
  color: #231815;
}

.p-quality4-section--structure .p-quality4-section__title::after {
  content: "STRUCTURE";
}

.p-quality4-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: calc(60 / 16 * 1rem);
  margin-block-start: calc(145 / 16 * 1rem);
}

.p-quality4-card {
  position: relative;
  display: grid;
  grid-template-columns: calc(220 / 16 * 1rem) minmax(0, 1fr);
  column-gap: calc(38 / 16 * 1rem);
  align-items: start;
  min-width: 0;
}

.p-quality4-pc .p-quality4-card::before,
.p-quality4-pc .p-quality4-card::after {
  content: "";
  position: absolute;
  left: 0;
  display: none;
  width: 100%;
  height: 1px;
  background-color: #231815;
}

.p-quality4-card:nth-child(n+3) {
  margin-block-start: calc(95 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--boundary-wall,
.p-quality4-pc .p-quality4-card--low-e-glass {
  margin-block-start: calc(109 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--floor-ceiling,
.p-quality4-pc .p-quality4-card--condensation-sash {
  margin-block-start: calc(104 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--void-slab,
.p-quality4-pc .p-quality4-card--insulation {
  margin-block-start: calc(104 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--ventilation,
.p-quality4-pc .p-quality4-card--formaldehyde {
  margin-block-start: calc(104 / 16 * 1rem);
}

.p-quality4-section--structure .p-quality4-grid {
  margin-block-start: calc(79 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--cover-thickness,
.p-quality4-pc .p-quality4-card--cover-table {
  margin-block-start: calc(113 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--hoop-rebar,
.p-quality4-pc .p-quality4-card--double-rebar {
  margin-block-start: calc(123 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--hoop-rebar,
.p-quality4-pc .p-quality4-card--double-rebar {
  min-height: 0;
}

.p-quality4-pc .p-quality4-card--hoop-rebar .p-quality4-card__body,
.p-quality4-pc .p-quality4-card--double-rebar .p-quality4-card__body {
  grid-column: 1/-1;
  width: calc(520 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--double-rebar .p-quality4-card__body {
  margin-block-start: 0;
}

.p-quality4-pc .p-quality4-card--hoop-rebar .p-quality4-figure,
.p-quality4-pc .p-quality4-card--double-rebar .p-quality4-figure {
  grid-column: 1/-1;
  grid-row: auto;
  margin-block-start: calc(24 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--hoop-rebar .p-quality4-figure > img {
  width: calc(322 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(102 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--double-rebar .p-quality4-figure > img {
  width: calc(331 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(102 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--double-rebar .p-quality4-figure {
  margin-block-start: calc(9 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--hoop-rebar .p-quality4-card__note {
  width: calc(520 / 16 * 1rem);
  margin-block-start: calc(30 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--boundary-wall::before,
.p-quality4-pc .p-quality4-card--low-e-glass::before {
  top: calc(-56 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--floor-ceiling::before,
.p-quality4-pc .p-quality4-card--condensation-sash::before {
  top: calc(-66 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--void-slab::before,
.p-quality4-pc .p-quality4-card--insulation::before {
  top: calc(-61 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--ventilation::before,
.p-quality4-pc .p-quality4-card--formaldehyde::before {
  top: calc(-66 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--ventilation::after,
.p-quality4-pc .p-quality4-card--formaldehyde::after {
  bottom: calc(-28 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--cover-thickness::before,
.p-quality4-pc .p-quality4-card--cover-table::before {
  top: calc(-60 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--hoop-rebar::before,
.p-quality4-pc .p-quality4-card--double-rebar::before {
  top: calc(-70 / 16 * 1rem);
  display: block;
}

.p-quality4-pc .p-quality4-card--exterior-wall .p-quality4-figure {
  margin-block-start: calc(-13 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--exterior-wall .p-quality4-figure > img {
  width: calc(249 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--indoor-sound .p-quality4-figure {
  margin-block-start: calc(-13 / 16 * 1rem);
  transform: translateX(calc(-4 / 16 * 1rem));
}

.p-quality4-pc .p-quality4-card--indoor-sound .p-quality4-figure > img {
  width: calc(256 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--boundary-wall .p-quality4-figure,
.p-quality4-pc .p-quality4-card--low-e-glass .p-quality4-figure {
  margin-block-start: calc(-25 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--boundary-wall .p-quality4-figure > img {
  width: calc(219 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(37 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--low-e-glass .p-quality4-figure > img {
  width: calc(236 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(26 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--floor-ceiling .p-quality4-figure {
  margin-block-start: calc(-56 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--floor-ceiling .p-quality4-figure > img {
  width: calc(283 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(-21 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--condensation-sash .p-quality4-figure {
  margin-block-start: calc(-43 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--condensation-sash .p-quality4-figure > img {
  width: calc(284 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(4 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--void-slab {
  grid-template-columns: calc(180 / 16 * 1rem) calc(304 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figure {
  margin-block-start: calc(-26 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figure > img {
  width: calc(304 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figureSplit {
  justify-content: flex-start;
  width: calc(311 / 16 * 1rem);
  margin-block-start: calc(-39 / 16 * 1rem);
  transform: translateX(calc(-8 / 16 * 1rem));
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figureSplit > img {
  max-width: none;
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figureSplit > img:first-child {
  width: calc(135 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--void-slab .p-quality4-figureSplit > img:nth-child(2) {
  width: calc(152 / 16 * 1rem);
  max-width: none;
}

.p-quality4-pc .p-quality4-card--insulation .p-quality4-figure {
  margin-block-start: calc(-43 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--insulation .p-quality4-figure > img {
  width: calc(309 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(-49 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--insulation .p-quality4-card__body {
  width: calc(187 / 16 * 1rem);
  margin-block-start: calc(4 / 16 * 1rem);
}

.p-quality4-photoPair {
  float: right;
  width: calc(281 / 16 * 1rem);
  margin-top: calc(-238 / 16 * 1rem);
  transform: translate(calc(23 / 16 * 1rem), calc(-23 / 16 * 1rem));
}

.p-quality4-photoPair > img {
  display: block;
  width: calc(281 / 16 * 1rem);
  max-width: none;
}

.p-quality4-pc .p-quality4-card--ventilation .p-quality4-card__note {
  width: calc(260 / 16 * 1rem);
  margin-block-start: calc(8 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--ventilation .p-quality4-figure--wide {
  clear: both;
  margin-block-start: calc(94 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--ventilation .p-quality4-figure--wide > img {
  width: calc(517 / 16 * 1rem);
  max-width: none;
  transform: translateX(calc(3 / 16 * 1rem));
}

.p-quality4-pc .p-quality4-card--ventilation {
  display: block;
}

.p-quality4-pc .p-quality4-card--ventilation .p-quality4-card__body {
  width: calc(220 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--formaldehyde {
  display: block;
}

.p-quality4-pc .p-quality4-card--formaldehyde .p-quality4-card__subhead {
  margin-block-start: calc(8 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--formaldehyde .p-quality4-figure--wide {
  margin-block-start: calc(10 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--ground-survey,
.p-quality4-pc .p-quality4-card--pile,
.p-quality4-pc .p-quality4-card--cover-thickness,
.p-quality4-pc .p-quality4-card--cover-table {
  display: block;
}

.p-quality4-pc .p-quality4-card--ground-survey .p-quality4-figure {
  margin-block-start: calc(22 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--ground-survey .p-quality4-figure > img {
  width: calc(300 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(107 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--pile .p-quality4-figure {
  display: flex;
  align-items: flex-start;
  column-gap: calc(16 / 16 * 1rem);
  width: calc(423 / 16 * 1rem);
  margin-block-start: calc(36 / 16 * 1rem);
  margin-inline: calc(49 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--pile .p-quality4-figure > img {
  flex-shrink: 0;
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--pile .p-quality4-figure > img:first-child {
  position: relative;
  top: calc(8 / 16 * 1rem);
  width: calc(133 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc .p-quality4-card--pile .p-quality4-figure > img:nth-child(2) {
  width: calc(274 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--pile .p-quality4-card__note {
  margin-block-start: calc(10 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--cover-thickness .p-quality4-figure--wide {
  margin-block-start: calc(32 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--cover-thickness .p-quality4-figure--wide > img {
  width: calc(474 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(19 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--cover-table .p-quality4-figure--wide {
  margin-block-start: calc(18 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--cover-table .p-quality4-figure--wide > img {
  width: calc(520 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--cover-table .p-quality4-card__note {
  display: none;
}

.p-quality4-concretePair {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: calc(542 / 16 * 1rem) calc(413 / 16 * 1rem);
  column-gap: calc(63 / 16 * 1rem);
  margin-block-start: calc(65 / 16 * 1rem);
  padding: calc(44 / 16 * 1rem) calc(36 / 16 * 1rem) calc(39 / 16 * 1rem);
  border: 1px solid #231815;
}

.p-quality4-concretePair .p-quality4-card {
  display: block;
  min-width: 0;
}

.p-quality4-concretePair .p-quality4-card__body {
  width: auto;
  margin-block-start: calc(10 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--concrete-durability .p-quality4-card__body {
  width: calc(528 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--concrete-strength .p-quality4-card__body {
  width: calc(413 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.5;
}

.p-quality4-pc .p-quality4-card--concrete-durability .p-quality4-figure--wide {
  margin-block-start: calc(22 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--concrete-durability .p-quality4-figure--wide > img {
  width: calc(507 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--concrete-strength .p-quality4-figure--wide {
  display: flex;
  align-items: flex-start;
  width: calc(423 / 16 * 1rem);
  margin-block-start: calc(50 / 16 * 1rem);
  margin-inline: calc(49 / 16 * 1rem) 0;
}

.p-quality4-pc .p-quality4-card--concrete-strength .p-quality4-figure--wide > img {
  position: relative;
  top: calc(8 / 16 * 1rem);
  flex-shrink: 0;
  width: calc(381 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--concrete-strength .p-quality4-figure--wide > img {
  width: calc(381 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
}

.p-quality4-pc .p-quality4-card--concrete-strength .p-quality4-figure--wide {
  margin-block-start: calc(50 / 16 * 1rem);
}

.p-quality4-pc .p-quality4-card--concrete-durability .p-quality4-card__note {
  width: calc(470 / 16 * 1rem);
  margin-block-start: calc(13 / 16 * 1rem);
  margin-inline-start: calc(18 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1.54014;
  letter-spacing: 0.01em;
}

.p-quality4-pc img[src$="quality4-fig-exterior-wall-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-indoor-sound-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-boundary-wall-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-low-e-glass-pc.webp"] {
  position: relative;
  top: calc(-2 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-floor-ceiling-pc.webp"] {
  position: relative;
  top: calc(2 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-condensation-sash-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-void-slab-rebar-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-void-slab-before-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-void-slab-after-pc.webp"] {
  position: relative;
  top: calc(0 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-insulation-pc.webp"] {
  position: relative;
  top: calc(8 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-ventilation-diagram-pc.webp"] {
  position: relative;
  top: calc(-30 / 16 * 1rem);
}

.p-quality4-pc img[src$="quality4-fig-formaldehyde-table-pc.webp"] {
  position: relative;
  top: calc(7 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-ground-survey-pc.webp"] {
  position: relative;
  top: calc(8 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-pile-foundation-pc.webp"] {
  position: relative;
  top: calc(8 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-cover-thickness-pc.webp"] {
  position: relative;
  top: calc(9 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-cover-table-pc.webp"] {
  position: relative;
  top: calc(8 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-hoop-rebar-pc.webp"] {
  position: relative;
  top: calc(17 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-double-rebar-pc.webp"] {
  position: relative;
  top: calc(-3 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-concrete-durability-pc.webp"] {
  position: relative;
  top: calc(12 / 16 * 1rem);
  left: calc(18 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-fig-concrete-strength-pc.webp"] {
  position: relative;
  top: calc(3 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-pc img[src$="quality4-photo-pair-label-pc.webp"] {
  position: relative;
  top: calc(-31 / 16 * 1rem);
  transform: scaleY(1);
  transform-origin: top left;
}

.p-quality4-card__title {
  grid-column: 1/-1;
  padding-block-end: 0;
  border-block-end: 0;
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(20 / 16 * 1rem, 14 * 1px);
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.2em;
  color: #231815;
}

.p-quality4-card--concrete-strength .p-quality4-card__title {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
}

.p-quality4-card__body {
  grid-column: 1;
  margin-block-start: calc(15 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0;
  color: #231815;
}

.p-quality4-card__subhead {
  grid-column: 1/-1;
  margin-block-start: calc(18 / 16 * 1rem);
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #231815;
}

.p-quality4-figure {
  grid-column: 2;
  grid-row: 2/span 4;
  margin-block-start: calc(-20 / 16 * 1rem);
}

.p-quality4-figure > img {
  margin-inline: auto;
}

.p-quality4-figure--wide {
  grid-column: 1/-1;
  grid-row: auto;
  margin-block-start: calc(18 / 16 * 1rem);
}

.p-quality4-figureSplit {
  grid-column: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  column-gap: calc(22 / 16 * 1rem);
  margin-block-start: calc(14 / 16 * 1rem);
}

.p-quality4-card__note {
  grid-column: 1/-1;
  margin-block-start: calc(8 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  font-weight: 300;
  line-height: 1.35;
  letter-spacing: 0;
  color: #231815;
}

.p-quality4-lower__tabs {
  padding-block: calc(159 / 16 * 1rem) calc(49 / 16 * 1rem);
}

.p-quality4-spPanel {
  width: 100%;
  margin-inline: 0;
  padding: calc(29 / 16 * 1rem) calc(23 / 16 * 1rem) calc(70 / 16 * 1rem);
  background-color: #eaeaea;
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality4-spPanel {
    padding-inline: 0;
  }
}

@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality4-spPanel > .p-quality4-section {
    max-width: calc(500 * 1px);
    margin-inline: auto;
  }
}
@media (min-width: 501px) and (max-width: 1023px) {
  .p-quality4-spPanel > .p-quality4-section {
    box-sizing: border-box;
    padding-inline: calc(23 / 16 * 1rem);
  }
}

.p-quality4-spIntro {
  display: none;
}
@media screen and (max-width: 1023px) {
  .p-quality4-spIntro {
    display: block;
    padding-block: calc(50 / 16 * 1rem) calc(45 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .p-quality4-spIntro__heading {
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(23 / 16 * 1rem, 14 * 1px);
    font-weight: 300;
    line-height: 1.45;
    letter-spacing: 0.16em;
    color: #ffffff;
    text-align: center;
  }
}

@media screen and (max-width: 1023px) {
  .p-quality4-spIntro__sub {
    margin-block-start: calc(18 / 16 * 1rem);
    font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    font-size: max(15 / 16 * 1rem, 11.25 * 1px);
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: 0.35em;
    color: #ffffff;
    text-align: center;
  }
}

.p-quality4-sp .p-quality4-section + .p-quality4-section {
  margin-block-start: calc(80 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-section__title {
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.18;
  letter-spacing: 0.2em;
  padding-block-end: calc(6 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-section__title::after {
  top: calc(7 / 16 * 1rem);
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  letter-spacing: 0.16em;
}

.p-quality4-sp .p-quality4-grid {
  display: block;
  margin-block-start: calc(42 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-section--structure .p-quality4-grid {
  margin-block-start: calc(49 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card:not(:first-child) {
  margin-block-start: calc(49 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--boundary-wall {
  margin-block-start: calc(92 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--indoor-sound {
  margin-block-start: calc(62 / 16 * 1rem);
  transform: translateY(calc(-23 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--condensation-sash {
  margin-block-start: calc(97 / 16 * 1rem);
  transform: translateY(calc(-33 / 16 * 1rem));
}
@media screen and (max-width: 1023px) {
  .p-quality4-sp .p-quality4-grid .p-quality4-card--condensation-sash {
    margin-block-start: calc(88 / 16 * 1rem);
  }
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--low-e-glass {
  margin-block-start: calc(106 / 16 * 1rem);
  transform: translateY(calc(-66 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--floor-ceiling {
  margin-block-start: calc(68 / 16 * 1rem);
  transform: translateY(calc(-67 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--void-slab {
  transform: translateY(calc(-59 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--insulation {
  margin-block-start: calc(37 / 16 * 1rem);
  transform: translateY(calc(-52 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--ventilation {
  margin-block-start: calc(71 / 16 * 1rem);
  transform: translateY(calc(-52 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--formaldehyde {
  margin-block-start: calc(77 / 16 * 1rem);
  transform: translateY(calc(-52 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--pile {
  margin-block-start: calc(46 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--cover-thickness {
  margin-block-start: calc(72 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--cover-table {
  margin-block-start: calc(79 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--hoop-rebar {
  margin-block-start: calc(40 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--double-rebar {
  margin-block-start: calc(54 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--concrete-durability {
  margin-block-start: calc(74 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-grid .p-quality4-card--concrete-strength {
  box-sizing: border-box;
  width: calc(330 / 16 * 1rem);
  margin-block-start: calc(67 / 16 * 1rem);
  margin-inline: auto;
  padding: calc(28 / 16 * 1rem) calc(18 / 16 * 1rem) calc(22 / 16 * 1rem);
  border: 1px solid #231815;
}

.p-quality4-sp .p-quality4-card {
  display: block;
}

.p-quality4-sp .p-quality4-card__title {
  padding-block-end: 0;
  font-size: max(16 / 16 * 1rem, 12 * 1px);
  line-height: 1.18;
}

.p-quality4-sp .p-quality4-card__body {
  margin-block-start: calc(17 / 16 * 1rem);
  font-family: "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.4;
  letter-spacing: 0;
}

.p-quality4-sp .p-quality4-card__subhead {
  margin-block-start: calc(16 / 16 * 1rem);
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
}

.p-quality4-sp .p-quality4-figure {
  margin-block-start: calc(32 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-figureSplit {
  column-gap: calc(16 / 16 * 1rem);
  margin-block-start: calc(16 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-figure,
.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-figure,
.p-quality4-sp .p-quality4-card--low-e-glass .p-quality4-figure {
  overflow: visible;
}

.p-quality4-sp .p-quality4-card--exterior-wall .p-quality4-figure > img {
  width: calc(249 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(4 / 16 * 1rem), calc(4 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-figure > img {
  width: calc(219 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(25 / 16 * 1rem), calc(-10 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-figure > img {
  width: calc(256 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(20 / 16 * 1rem), 0) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--condensation-sash .p-quality4-figure > img {
  width: calc(284 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(6 / 16 * 1rem), calc(-5 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-card--low-e-glass .p-quality4-figure > img {
  width: calc(236 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(-19 / 16 * 1rem), calc(-11 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--insulation .p-quality4-figure > img {
  transform: translate(calc(-3 / 16 * 1rem), calc(2 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-card__note {
  margin-block-start: calc(7 / 16 * 1rem);
  font-size: max(10 / 16 * 1rem, 10 * 1px);
  line-height: 1.3;
}

.p-quality4-sp .p-quality4-card--cover-table .p-quality4-card__note {
  display: none;
}

.p-quality4-sp .p-quality4-card--boundary-wall,
.p-quality4-sp .p-quality4-grid .p-quality4-card--indoor-sound {
  display: grid;
  grid-template-columns: 1fr;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-card__title,
.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-card__title {
  grid-column: 1;
  grid-row: 1;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-card__body,
.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-card__body {
  grid-column: 1;
  grid-row: 2;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-card__note,
.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-card__note {
  grid-column: 1;
  grid-row: 3;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-figure,
.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-figure {
  grid-column: 1;
  grid-row: 4;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-card__note {
  margin-block-start: calc(4 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.09em;
}

.p-quality4-sp .p-quality4-card--boundary-wall .p-quality4-figure {
  margin-block-start: calc(46 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-card__note {
  margin-block-start: 0;
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 2;
  letter-spacing: 0.09em;
}

.p-quality4-sp .p-quality4-card--indoor-sound .p-quality4-figure {
  margin-block-start: calc(38 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--void-slab .p-quality4-figure {
  margin-block-start: calc(21 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--condensation-sash .p-quality4-card__note {
  margin-block-start: calc(17 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.p-quality4-sp .p-quality4-card--formaldehyde .p-quality4-figure > img {
  width: calc(330 / 16 * 1rem);
  max-width: none;
  margin-inline: 0;
  transform: translateX(calc(-1 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-card--ventilation .p-quality4-figure {
  margin-block-start: calc(20 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--ventilation .p-quality4-card__note {
  margin-block-start: calc(13 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--formaldehyde .p-quality4-card__subhead {
  margin-block-start: calc(30 / 16 * 1rem);
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  line-height: 1.4285714286;
  letter-spacing: 0.01em;
}

.p-quality4-sp .p-quality4-card--formaldehyde .p-quality4-card__subhead + .p-quality4-card__body {
  margin-block-start: calc(5 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.p-quality4-sp .p-quality4-card--formaldehyde .p-quality4-figure {
  margin-block-start: calc(21 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--floor-ceiling .p-quality4-figure {
  margin-block-start: calc(22 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--void-slab .p-quality4-figureSplit > img:first-child {
  transform: translate(calc(-6 / 16 * 1rem), calc(-1 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--void-slab .p-quality4-figureSplit {
  margin-block-start: calc(21 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--double-rebar .p-quality4-figure {
  margin-block-start: calc(26 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--ground-survey .p-quality4-figure > img {
  width: calc(300 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(-1 / 16 * 1rem), calc(-6 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--cover-thickness .p-quality4-figure > img {
  width: calc(330 / 16 * 1rem);
  max-width: none;
  transform: translate(calc(-2 / 16 * 1rem), calc(-6 / 16 * 1rem)) scale(1);
  transform-origin: top left;
}

.p-quality4-sp .p-quality4-card--double-rebar .p-quality4-figure > img {
  width: calc(331 / 16 * 1rem);
  max-width: none;
  margin-inline: calc(9 / 16 * 1rem) 0;
}

.p-quality4-sp .p-quality4-card--hoop-rebar .p-quality4-card__note {
  margin-block-start: calc(11 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.1666666667;
  letter-spacing: 0.01em;
}

.p-quality4-sp .p-quality4-card--hoop-rebar .p-quality4-figure {
  margin-block-start: calc(21 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--hoop-rebar .p-quality4-figure > img {
  transform: translate(calc(-12 / 16 * 1rem), calc(16 / 16 * 1rem));
}

.p-quality4-sp .p-quality4-card--concrete-durability .p-quality4-figure {
  margin-block-start: calc(15 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--concrete-strength .p-quality4-card__title {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(14 / 16 * 1rem, 10.5 * 1px);
  font-weight: 600;
  line-height: 1.2433571429;
  letter-spacing: 0.1em;
}

.p-quality4-sp .p-quality4-card--concrete-strength .p-quality4-card__body {
  margin-block-start: calc(3 / 16 * 1rem);
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: max(12 / 16 * 1rem, 10 * 1px);
  line-height: 1.5;
  letter-spacing: 0;
}

.p-quality4-sp .p-quality4-card--concrete-strength .p-quality4-figure {
  margin-block-start: calc(9 / 16 * 1rem);
}

.p-quality4-sp .p-quality4-card--concrete-strength .p-quality4-figure > img {
  transform: none;
}

.p-quality4-sp img[src$="quality4-fig-exterior-wall-sp.webp"] {
  width: calc(249 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-boundary-wall-sp.webp"] {
  width: calc(219 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-indoor-sound-sp.webp"] {
  width: calc(256 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-condensation-sash-sp.webp"] {
  width: calc(284 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-low-e-glass-sp.webp"] {
  width: calc(236 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-floor-ceiling-sp.webp"] {
  width: calc(283 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-void-slab-rebar-sp.webp"] {
  width: calc(304 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-void-slab-before-sp.webp"] {
  width: calc(135 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-void-slab-after-sp.webp"] {
  width: calc(152 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-insulation-sp.webp"] {
  width: calc(309 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-ventilation-diagram-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-formaldehyde-table-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-ground-survey-sp.webp"] {
  width: calc(300 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-pile-foundation-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-cover-thickness-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-cover-table-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-hoop-rebar-sp.webp"] {
  width: calc(322 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-double-rebar-sp.webp"] {
  width: calc(331 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-concrete-durability-sp.webp"] {
  width: calc(330 / 16 * 1rem);
  max-width: none;
}

.p-quality4-sp img[src$="quality4-fig-concrete-strength-sp.webp"] {
  width: calc(293 / 16 * 1rem);
  max-width: none;
}

.p-quality4-spTabs {
  padding-block: calc(56 / 16 * 1rem) calc(116 / 16 * 1rem);
}

.p-quality4-spTabs__label {
  display: block;
  width: calc(132 / 16 * 1rem);
  margin-inline: auto;
}

.p-quality4-spTabs nav.c-quality-tabs--footer {
  margin-block-start: calc(34 / 16 * 1rem);
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__reservationArea {
    padding-block-end: calc(111 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__reservationGrid {
    margin-block-start: calc(26 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__reservationCard {
    padding-block: calc(20 / 16 * 1rem) calc(18 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__requestCard, .page-quality4 .p-footer__consultCard {
    padding-block: calc(20 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__phoneLead {
    margin-block-start: calc(60 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__phoneRow {
    transform: translateY(calc(-6 / 16 * 1rem));
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__siteLinks {
    padding-block-start: calc(29 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__siteLinkGrid {
    transform: translateY(calc(-12 / 16 * 1rem));
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__copyright {
    width: calc(256 / 16 * 1rem);
    margin-block-start: calc(38 / 16 * 1rem);
    margin-inline: auto;
    line-height: 1.55;
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__company--wada .p-footer__logoRow {
    grid-template-columns: calc(56 / 16 * 1rem) calc(267 / 16 * 1rem);
    column-gap: calc(10 / 16 * 1rem);
    transform: translateY(calc(-25 / 16 * 1rem));
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__wadaMark {
    width: calc(56 / 16 * 1rem);
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__wadaLogo {
    width: calc(267 / 16 * 1rem);
    transform: translateY(calc(7 / 16 * 1rem));
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__homesLogo {
    transform: translateY(calc(21 / 16 * 1rem));
  }
}

@media screen and (max-width: 1023px) {
  .page-quality4 .p-footer__ryobiLogo {
    transform: translateY(calc(10 / 16 * 1rem));
  }
}

@media (min-width: 1024px) {
  .u-sp {
    display: none;
  }
}
@media screen and (max-width: 1023px) {
  .u-pc {
    display: none;
  }
}

.u-font {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
}
.u-font__jp {
  font-family: "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
}
.u-font__en {
  font-family: "Roboto", sans-serif;
}

.u-text__center {
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .u-text__center--sp {
    text-align: center;
  }
}
@media (min-width: 1024px) {
  .u-text__center--pc {
    text-align: center;
  }
}

.u-text__left {
  text-align: left;
}
@media screen and (max-width: 1023px) {
  .u-text__left--sp {
    text-align: left;
  }
}
@media (min-width: 1024px) {
  .u-text__left--pc {
    text-align: left;
  }
}

.u-text__right {
  text-align: right;
}
@media screen and (max-width: 1023px) {
  .u-text__right--sp {
    text-align: right;
  }
}
@media (min-width: 1024px) {
  .u-text__right--pc {
    text-align: right;
  }
}

.u-text__nowrap {
  white-space: nowrap;
}
@media screen and (max-width: 1023px) {
  .u-text__nowrap--sp {
    white-space: nowrap;
  }
}
@media (min-width: 1024px) {
  .u-text__nowrap--pc {
    white-space: nowrap;
  }
}

.u-pointer__none {
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  .u-pointer__none--sp {
    pointer-events: none;
  }
}
@media (min-width: 1024px) {
  .u-pointer__none--pc {
    pointer-events: none;
  }
}

.u-animation__fadeIn {
  translate: 0 20px;
  opacity: 0;
}
.u-animation__fadeIn.js-show {
  translate: 0;
  opacity: 1;
  transition: translate 0.8s ease, opacity 0.8s ease;
}

/*# sourceMappingURL=style.css.map */
