.detail-page { min-height: calc(100vh - 82px); padding: 110px 9vw 90px; background: var(--paper); }
.detail-page .eyebrow { color: var(--warm); }
.back-home { display: inline-flex; margin: 0 0 42px; color: var(--ink); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.back-home:hover { color: var(--warm); }
.detail-back-bottom { margin: 54px 0 0; }
.detail-page h1 { max-width: 900px; margin: 0 0 28px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(3rem, 6vw, 6.4rem); font-weight: 500; letter-spacing: -.04em; line-height: 1; }
.detail-intro { max-width: 710px; margin: 0; color: #46504c; font-size: 1.1rem; }
.detail-visual { height: min(38vw, 500px); min-height: 290px; margin: 55px 0 0; overflow: hidden; background: #ded8ce; }
.detail-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 8vw; margin-top: 75px; padding-top: 28px; border-top: 1px solid #bdb9b1; }
.detail-copy h2 { margin: 0 0 18px; font-family: "Playfair Display", Georgia, serif; font-size: 2.1rem; font-weight: 500; }
.detail-copy p { max-width: 680px; color: #58605c; }
.detail-list { margin: 30px 0 0; padding: 0; list-style: none; }
.detail-list li { padding: 14px 0; border-bottom: 1px solid #d5cfc5; font-size: .96rem; }
.detail-list strong { display: block; margin-bottom: 5px; font-size: 1rem; }
.detail-list span { display: block; max-width: 670px; color: #58605c; font-size: .91rem; line-height: 1.65; }
.detail-aside { align-self: start; padding: 24px; background: #d7cdbd; }
.detail-aside b { display: block; margin-bottom: 14px; font-size: .72rem; letter-spacing: .13em; }
.detail-aside a { color: var(--ink); font-weight: 700; text-decoration: none; border-bottom: 1px solid var(--ink); }
.mobile-contact { display: none; }
@media (max-width:780px) { .detail-page { padding: 72px 7vw 110px; } .back-home { margin-bottom: 32px; } .detail-visual { height: 260px; min-height: 0; margin-top: 34px; } .detail-layout { grid-template-columns: 1fr; gap: 34px; margin-top: 48px; } .mobile-contact { display: inline-flex; position: fixed; right: 16px; bottom: 16px; z-index: 20; align-items: center; gap: 11px; padding: 13px 17px; background: var(--ink); color: #fff; border-radius: 999px; box-shadow: 0 10px 24px rgba(24, 29, 27, .24); font-size: .82rem; font-weight: 700; text-decoration: none; } }
