/* residence専用。既存共通CSSの後に読み込みます。 */
#residence .rd-renewal { color: #333; font-size: 15px; line-height: 1.9; }
#residence .rd-renewal * { box-sizing: border-box; }
#residence .rd-renewal img { display: block; width: 100%; height: auto; }
#residence .rd-intro { width: 94%; max-width: 1080px; margin: 0 auto 90px; text-align: center; }
#residence .rd-intro p { margin: 30px 0 0; line-height: 2.2; }
#residence .rd-policy-heading { margin-bottom: 65px; }
#residence .rd-inner { width: 87%; max-width: 970px; margin: 0 auto; position: relative; }
#residence .rd-policy { margin: 0 0 85px; padding: 0; }
#residence .rd-number { display: block; position: static; text-align: right; color: #dedfe1; font-size: 76px; font-weight: 300; line-height: 1; margin-bottom: 15px; }
#residence .rd-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8%; }
#residence .rd-copy h3 { font-size: 20px; margin: 0 0 25px; line-height: 1.5; font-weight: 700; }
#residence .rd-copy p { margin: 0; line-height: 1.9; }
#residence .rd-copy .break768 { display: inline; }
#residence .rd-achievement { margin-top: 30px; }
#residence .rd-design-photo { margin-top: 32px; }
#residence .rd-visual { padding-top: 52px; min-width: 0; }
#residence .rd-photo-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 3px; list-style: none; margin: 65px 0 0; padding: 0; }
#residence .rd-photo-strip li { margin: 0; padding: 0; }
#residence .rd-photo-strip img { aspect-ratio: 1.16; object-fit: cover; }
#residence .rd-graph-title { font-size: 15px; text-align: center; margin: 0 0 22px; padding-bottom: 12px; border-bottom: 1px solid #b1c0cb; }
#residence .rd-note { font-size: 11px; margin: 5px 0 26px; }
#residence .rd-plans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 16px; }
#residence .rd-plans figure { margin: 0; }
#residence .rd-plans figcaption { color: #3e5e73; font-size: 14px; text-align: center; margin-bottom: 12px; border-bottom: 1px solid #b1c0cb; padding-bottom: 10px; }
#residence .rd-plans img { height: auto; }
#residence .rd-brand-heading { background: #3e5e73; color: white; text-align: center; font-size: 19px; font-weight: 500; padding: 13px; margin: 0 0 65px; letter-spacing: .08em; }
#residence .rd-brand { margin-bottom: 65px; align-items: stretch; }
/* PC: 本文と左列の上下をそろえ、罫線〜写真の間でロゴを中央配置。 */
#residence .rd-brand-visual { display: flex; flex-direction: column; min-width: 0; }
#residence .rd-brand-visual > img { flex: 0 0 auto; }
#residence .rd-brand-visual h3 { border-top: 1px solid #333; margin: 0; padding: 28px 0; min-height: 150px; flex: 1 0 auto; display: flex; align-items: center; justify-content: center; }
#residence .rd-brand-visual img.rd-brand-logo { width: 50%; max-width: 185px; height: auto; max-height: 80px; object-fit: contain; margin: 0; }
#residence .rd-brand-copy p { margin: 0 0 28px; line-height: 1.9; }
#residence .rd-brand-copy > p:last-child { margin-bottom: 0; }
#residence .rd-brand-copy h4 { font-size: 18px; color: #3e5e73; margin: 0 0 8px; font-weight: 700; }
@media screen and (max-width: 767px) {
 #residence .rd-renewal { font-size: 14px; }
 #residence .rd-intro { width: 88%; margin-bottom: 60px; }
 #residence .rd-intro p { text-align: left; line-height: 1.95; margin-top: 26px; }
 #residence .rd-pc-break, #residence .rd-copy .break768 { display: none; }
 #residence .rd-columns { grid-template-columns: minmax(0,1fr); gap: 30px; }
 #residence .rd-inner { width: 88%; }
 #residence .rd-policy-heading { margin-bottom: 40px; }
 #residence .rd-number { font-size: 54px; margin-bottom: 5px; }
 #residence .rd-policy { margin-bottom: 60px; }
 #residence .rd-visual { padding-top: 0; }
 #residence .rd-photo-strip { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 35px; }
 #residence .rd-brand-heading { margin-bottom: 35px; }
 #residence .rd-brand { margin-bottom: 50px; }
 #residence .rd-brand-visual h3 { flex: none; min-height: 160px; padding: 36px 0; }
 #residence .rd-brand-visual img.rd-brand-logo { width: 50%; max-width: 170px; max-height: 75px; }
 #residence .rd-brand-copy p { margin-bottom: 24px; }
}

/* 間取りはSVGの元寸法に対して共通の縮尺を適用。 */
#residence .rd-graph-title, #residence .rd-plans figcaption { font-weight: 700; }
#residence #sec02 .rd-visual { display: flex; flex-direction: column; }
#residence #sec02 img.rd-plan-graph { width: 70%; max-width: 320px; height: auto; margin: 0 auto 30px; }
#residence #sec02 .rd-plans { margin-top: auto; }
#residence .rd-plan-drawing { aspect-ratio: 211.457 / 204.17; display: flex; justify-content: center; align-items: flex-end; }
#residence .rd-plans figure:nth-child(n+3) .rd-plan-drawing { aspect-ratio: 211.457 / 145.197; }
#residence .rd-plan-drawing span { display: block; flex: none; }
#residence .rd-plan-drawing img { width: 100%; height: auto; }
@media screen and (max-width: 767px) {
 #residence #sec02 .rd-plans { margin-top: 0; }
 #residence #sec02 img.rd-plan-graph { width: 80%; max-width: 300px; }
}
