.wrap { width: min(970px, calc(100% - 2 * var(--page-mx))); margin-inline: auto; margin-top: clamp(64px, 8vw, 112px); }
.wrap-narrow { width: min(760px, calc(100% - 2 * var(--page-mx))); margin-inline: auto; }
.sub-hero { --ot-h: clamp(38px, 5.6vw, 86px); position: relative; }
.sub-hero-photo { position: relative; height: 360px; overflow: hidden; background: var(--color-panel); }
.sub-hero-img { width: 100%; height: 100%; object-fit: cover; }
.sub-hero-texture { background: var(--color-panel) var(--hero-texture, none) center / cover no-repeat; }
.sub-hero-head { position: relative; z-index: 2; margin-top: calc(var(--ot-h) * -0.3); padding: 0 var(--page-mx); text-align: center; }
.ot { display: block; width: auto; max-width: 100%; height: var(--ot-h); margin: 0 auto; overflow: visible; fill: none; stroke: var(--color-rule); stroke-width: 1px; stroke-linejoin: round; }
.ot path { vector-effect: non-scaling-stroke; }
.sub-hero-h1 { margin-top: clamp(14px, 1.8vw, 24px); font-size: clamp(0.95rem, 0.85rem + 0.7vw, 1.15rem); font-weight: var(--fw-strong); letter-spacing: 0.3em; line-height: 1.8; }
.sub-hero-lead { margin: 14px auto 0; max-width: 34em; color: var(--color-text-sub); }
.sub-hero--band .sub-hero-head { margin-top: calc(var(--ot-h) * -0.3); }
.lead-sec { margin-top: clamp(40px, 5vw, 64px); }
.lead-strong { max-width: 30em; font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: clamp(1.05rem, 0.95rem + 0.7vw, 1.45rem); line-height: 1.95; letter-spacing: 0.14em; color: var(--color-heading); }
.lead-text { margin-top: 14px; max-width: 40em; }
.lead-sec .note { margin-top: 12px; }
.lead-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 32px; margin-top: 32px; }
.h-block { position: relative; margin-bottom: 26px; padding-bottom: 16px; font-size: clamp(1.1rem, 1rem + 0.7vw, 1.5rem); letter-spacing: 0.14em; }
.h-block::after { content: ""; position: absolute; left: 0; bottom: 0; width: 30px; height: 1px; background: var(--color-rule); }
.h-count { margin-left: 12px; font-family: var(--font-display); font-weight: var(--fw-label); font-size: var(--text-body); color: var(--color-text-sub); }
.h-sub { margin: 28px 0 8px; font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.1rem); letter-spacing: 0.12em; color: var(--color-accent-ink); }
.prose-p { max-width: 44em; }
.prose-p + .prose-p { margin-top: 1em; }
.qa-more { margin-top: 16px; }
.menu-more { margin-top: 22px; }
.cta-lead { max-width: 34em; margin-bottom: 4px; }
.cta-block { text-align: left; }
.worry-list li, .check-list li { position: relative; padding: 14px 0 14px 34px; border-bottom: 1px solid var(--color-line); line-height: 1.95; }
.worry-list li::before, .check-list li::before { content: ""; position: absolute; left: 4px; top: 1.62em; width: 12px; height: 1px; background: var(--color-rule); }
.worry-list { margin-bottom: 22px; border-top: 1px solid var(--color-rule); }
.check-list { border-top: 1px solid var(--color-rule); }
.steps { border-top: 1px solid var(--color-rule); }
.step { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--color-line); }
.step-n { font-family: var(--font-display); font-weight: var(--fw-label); font-size: 1.5rem; line-height: 1.3; letter-spacing: 0.12em; color: var(--color-ink); }
.step-t { font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem); letter-spacing: 0.14em; }
.step-d { margin-top: 4px; }
.grounds { border-top: 1px solid var(--color-rule); }
.ground { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; padding: 28px 0; border-bottom: 1px solid var(--color-line); }
.ground-n { font-family: var(--font-display); font-weight: var(--fw-label); font-size: 2rem; line-height: 1.2; letter-spacing: 0.1em; color: var(--color-ink); }
.ground-t { font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem); letter-spacing: 0.14em; }
.ground-d { margin-top: 6px; }
.room-fig { margin: 30px 0 0; }
.room-img { width: 100%; height: auto; }
.room-fig figcaption { margin-top: 12px; font-size: var(--text-small); color: var(--color-text-sub); }
.price-block .plist { margin-top: 4px; }
.quote { margin-top: 30px; padding-left: 22px; border-left: 1px solid var(--color-rule); font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: clamp(1.05rem, 0.95rem + 0.6vw, 1.35rem); line-height: 1.95; letter-spacing: 0.12em; color: var(--color-heading); }
.oneliner { margin-top: 30px; font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: clamp(1.02rem, 0.95rem + 0.5vw, 1.25rem); line-height: 1.95; letter-spacing: 0.12em; color: var(--color-heading); }
.prose em { font-style: normal; color: var(--color-accent-ink); }
.promise-list li { position: relative; padding: 12px 0 12px 32px; line-height: 1.95; }
.promise-list li::before { content: ""; position: absolute; left: 4px; top: 1.65em; width: 12px; height: 1px; background: var(--color-rule); }
.atmo-block { --k: 9px; padding: clamp(40px, 6vw, 72px) 24px; text-align: center; background-color: var(--color-panel); }
.atmo-quote { font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: clamp(1.25rem, 1.05rem + 1.4vw, 2rem); line-height: 1.85; letter-spacing: 0.16em; color: var(--color-heading); }
.atmo-list { display: inline-grid; gap: 6px; margin: 24px 0 18px; text-align: left; font-family: var(--font-heading); font-weight: var(--fw-body); }
.atmo-list li { position: relative; padding-left: 26px; }
.atmo-list li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 12px; height: 1px; background: var(--color-rule); }
.feat { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(32px, 5vw, 64px); align-items: center; }
.feat.is-rev { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.feat.is-rev .feat-fig { order: -1; }
.feat-head { --k: 9px; display: flex; align-items: center; gap: 28px; margin-bottom: 30px; padding: 20px 30px; background-color: var(--color-surface); }
.feat-n { font-family: var(--font-display); font-weight: var(--fw-label); font-size: clamp(2rem, 1.7rem + 1.2vw, 3.65rem); line-height: 1; letter-spacing: 0.1em; color: var(--color-ink); }
.feat-t { font-size: clamp(0.95rem, 0.9rem + 0.4vw, 1.2rem); letter-spacing: 0.2em; line-height: 1.7; color: var(--color-heading); }
.feat-fig { margin: 0; }
.feat-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.hub-sec { margin-top: clamp(48px, 6vw, 80px); }
.hub-list { display: grid; gap: clamp(40px, 5vw, 64px); }
.hub-link { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 28px clamp(28px, 4vw, 52px); align-items: center; }
.hub-row.is-rev .hub-photo { order: 2; }
.hub-photo { aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-panel); }
.hub-img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out-expo); }
.hub-link:hover .hub-img { transform: scale(1.04); }
.hub-en { font-family: var(--font-display); font-weight: var(--fw-label); font-size: var(--text-body); letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-accent-ink); }
.hub-title { margin-top: 4px; font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.6rem); letter-spacing: 0.16em; }
.hub-desc { margin-top: 12px; }
.hub-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 16px; margin: 16px 0 14px; font-size: var(--text-small); color: var(--color-text-sub); }
.hub-price-num { font-family: var(--font-display); font-weight: var(--fw-label); font-size: calc(var(--text-body) * 1.2); letter-spacing: 0.12em; font-variant-numeric: lining-nums; color: var(--color-ink); }
.topic-t a { display: inline-block; padding: 8px 0; }
.topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px clamp(24px, 3vw, 44px); }
.topic-t { margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--color-rule); font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.1rem); letter-spacing: 0.14em; }
.topic-grid .post-row .post-link { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 14px 0; }
.topic-grid .post-excerpt { display: none; }
.topic-grid .post-meta { display: none; }
.topic-grid .post-title { font-size: var(--text-body); margin-top: 0; }
.sibling-list { display: flex; flex-wrap: wrap; gap: 0 32px; }
.sibling-list .link-line { display: inline-flex; align-items: center; min-height: 44px; }
.mcat-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 36px clamp(32px, 5vw, 72px); align-items: start; }
.mcat.is-rev .mcat-grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.mcat.is-rev .mcat-fig { order: -1; }
.mcat-title { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; padding-bottom: 16px; position: relative; }
.mcat-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 30px; height: 1px; background: var(--color-rule); }
.mcat-en { font-family: var(--font-display); font-weight: var(--fw-display); font-size: clamp(1.6rem, 1.3rem + 1.1vw, 2.45rem); letter-spacing: var(--ls-display); text-transform: uppercase; line-height: 1.3; color: var(--color-heading); }
.mcat-jp { font-family: var(--font-heading); font-weight: var(--fw-body); letter-spacing: 0.2em; color: var(--color-text-sub); }
.mcat-lead { margin-bottom: 10px; color: var(--color-text-sub); }
.mcat-fig { position: sticky; top: 96px; margin: 0; }
.mcat-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.mcat .vpoints { margin-bottom: 8px; }
.journal-group-link { margin: -10px 0 18px; }
.journal-group .post-row .post-link { padding: 22px 0; }
.journal-group .post-row:first-child .post-link { padding-top: 6px; }
.article-head { margin-top: clamp(40px, 5vw, 72px); }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-family: var(--font-display); font-weight: var(--fw-label); font-size: var(--text-body); letter-spacing: var(--ls-label); color: var(--color-text-sub); }
.article-title { margin-top: 14px; font-size: clamp(1.3rem, 1.1rem + 1.2vw, 1.9rem); line-height: 1.7; letter-spacing: 0.1em; }
.article { margin-top: 36px; }
.article-cover { max-width: 520px; margin: 0 0 32px; }
.article-cover-img { width: 100%; height: auto; }
.article-body { font-size: clamp(0.84rem, 0.82rem + 0.2vw, 0.95rem); }
.article-menu { margin-top: 48px; padding: 24px 28px; background: var(--color-panel); }
.article-menu-t { font-size: var(--text-body); letter-spacing: 0.16em; margin-bottom: 4px; }
.article-menu .link-line { display: inline-flex; align-items: center; min-height: 44px; }
.article-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--color-line); }
.related { margin-top: clamp(56px, 7vw, 90px); }
.works-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px clamp(24px, 4vw, 44px); margin-top: 8px; }
.work-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-panel); }
.work-img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out-expo); }
.work-link:hover .work-img { transform: scale(1.04); }
.work-cat { position: absolute; top: 14px; left: 14px; padding: 2px 14px; background: var(--color-surface); font-size: var(--text-small); letter-spacing: 0.16em; color: var(--color-ink); }
.work-body { padding-top: 22px; }
.work-title { font-size: clamp(1.02rem, 0.95rem + 0.5vw, 1.3rem); letter-spacing: 0.14em; line-height: 1.7; }
.work-sum { margin-top: 8px; color: var(--color-text-sub); }
.work-body .more-line { margin-top: 12px; }
.works-sec .note { margin-top: 36px; }
.w-flow { margin: 8px 0 32px; }
.w-step { margin-bottom: 22px; padding-left: 22px; border-left: 1px solid var(--color-rule); }
.w-lb { font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: var(--text-body); letter-spacing: 0.18em; color: var(--color-accent-ink); }
.w-step dd { margin: 4px 0 0; }
.access-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 40px clamp(32px, 5vw, 64px); align-items: start; }
.access-actions { margin-top: 28px; }
.policy .policy-sec { margin-top: 44px; }
.policy .policy-sec:first-child { margin-top: 0; }
.policy .prose ul { margin-top: 8px; }
.notfound .lead-text { margin-top: 28px; }
.notfound-links { margin: 24px 0 8px; display: grid; }
.notfound-links .link-line { display: inline-flex; align-items: center; min-height: 44px; }
.article-note { margin-top: 14px; }
@media (max-width: 999px) {
.sub-hero-photo { height: 300px; }
.feat, .feat.is-rev { grid-template-columns: minmax(0, 1fr); }
.feat.is-rev .feat-fig { order: 0; }
.feat-fig { max-width: 440px; }
.hub-link { grid-template-columns: minmax(0, 1fr); }
.hub-row.is-rev .hub-photo { order: 0; }
.mcat-grid, .mcat.is-rev .mcat-grid { grid-template-columns: minmax(0, 1fr); }
.mcat.is-rev .mcat-fig { order: 0; }
.mcat-fig { position: static; max-width: 460px; }
.topic-grid { grid-template-columns: minmax(0, 1fr); }
.topic-t a { padding: 13px 0; }
.access-grid { grid-template-columns: minmax(0, 1fr); }
.gallery { column-count: 2; }
}
@media (max-width: 767px) {
.sub-hero-photo { height: 200px; }
.sub-hero-head { padding-inline: 20px; }
.wrap { margin-top: 56px; }
.lead-sec { margin-top: 36px; }
.step { grid-template-columns: 48px minmax(0, 1fr); gap: 12px; }
.ground { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
.feat-head { padding: 14px 18px; gap: 18px; }
.works-grid { grid-template-columns: minmax(0, 1fr); }
.article-menu { padding: 18px 18px; }
.lead-actions .btn, .article-cta .btn { width: 100%; }
.worry-list li, .check-list li { padding-left: 30px; }
}
.hero-collage { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; background: var(--color-panel); }
.hero-collage[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.collage-img { width: 100%; height: 100%; object-fit: cover; }
.sub-hero-photo.has-collage::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46%; pointer-events: none; background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.9)); }
.ot { stroke-width: 0.8px; }
@media (max-width: 999px) { .sub-hero-photo { height: 360px; } }
@media (max-width: 767px) {
.sub-hero-photo { height: 160px; }
.sub-hero { --ot-h: 32px; }
.sub-hero-head, .sub-hero--band .sub-hero-head { margin-top: calc(var(--ot-h) * -0.5); }
}
.feat { align-items: start; }
.feat-media { display: grid; gap: 22px; align-content: start; padding-top: 50px; }
.feat-media .feat-img { aspect-ratio: auto; height: auto; }
.feat-head { --k: 7px; gap: 30px; position: relative; background-color: #FEFEFE; }
.feat-head::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle, #D9D9D9 0.55px, transparent 0.7px) 0 0 / 3px 3px; }
.feat-head > * { position: relative; }
.feat-t { min-width: 0; overflow-wrap: anywhere; }
.feat.is-rev .feat-media { order: -1; }
.feat-cap { margin-top: 10px; font-size: var(--text-small); line-height: 1.9; color: var(--color-text-sub); }
.feat-text > .prose, .feat-text > .doc-price, .feat-text > .check-list, .feat-text > .steps, .feat-text > .grounds, .feat-text > .faq-list { margin-top: 0; }
.feat-text > * + * { margin-top: 1.4em; }
.feat-text > .feat-head { margin-top: 0; margin-bottom: 30px; }
.lead-panel { position: relative; display: grid; grid-template-columns: minmax(0, 463fr) minmax(0, 507fr); align-items: end; margin-top: clamp(40px, 5vw, 64px); }
.lp-photo { position: relative; z-index: 2; margin: 0; aspect-ratio: 463 / 361; overflow: hidden; background: var(--color-panel); }
.lp-img { width: 100%; height: 100%; object-fit: cover; }
.lp-text { position: relative; margin-left: -45px; padding: 0 clamp(24px, 4vw, 56px) 44px 90px; }
.lp-text::before { content: ""; position: absolute; z-index: -1; left: -60px; right: -60px; top: 24px; bottom: 0; background: var(--color-panel); }
.lp-text .lead-strong { padding-top: 0; }
.doc-sec .prose > h3:first-child { margin-top: 0; }
.doc-sec > .prose + .prose, .doc-sec > * + * { margin-top: 1.5em; }
.doc-sec > .h-block { margin-top: 0; margin-bottom: 26px; }
.doc-sec .steps, .doc-sec .grounds, .doc-sec .check-list, .doc-sec .faq-list, .doc-sec .gallery, .doc-sec .ba-grid, .doc-sec .route-grid { margin-top: 1.4em; }
.doc-sec > .lead-actions { margin-top: 28px; }
.doc-price .plist { max-width: 600px; }
.doc-price .vpoints { margin-top: 20px; }
.doc-sec .sibling-list { margin-top: 12px; }
.doc-sec .menu-more { margin-top: 18px; }
.work-t { margin: 22px 0 12px; font-size: clamp(1rem, 0.95rem + 0.4vw, 1.2rem); letter-spacing: 0.12em; }
.doc-sec .w-flow { margin: 0 0 18px; }
.prose .quote, .doc-sec > .quote { margin-top: 30px; }
.doc-sec .prose table th, .doc-sec .prose table td { min-width: 9em; }
.doc-sec .prose table thead th:first-child { min-width: 7em; }
.doc-sec .prose h3 { margin-top: 1.8em; }
.salon-collage { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; }
.salon-collage::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 50%; height: 300px; margin-top: -150px; background: color-mix(in srgb, var(--color-accent-ink) 6%, transparent); box-shadow: 0 0 0 100vmax color-mix(in srgb, var(--color-accent-ink) 6%, transparent); clip-path: inset(0 -100vmax); }
.sc-photos { position: relative; padding: 0 0 70px 0; }
.sc-a { width: 82%; aspect-ratio: 4 / 5; overflow: hidden; background: var(--color-panel); }
.sc-b { position: absolute; right: 8%; bottom: 0; width: 40%; aspect-ratio: 1; overflow: hidden; border: 8px solid var(--color-surface); background: var(--color-panel); z-index: 3; }
.sc-img { width: 100%; height: 100%; object-fit: cover; }
.sc-card { position: relative; margin-left: -90px; padding: 46px 52px 44px; background: var(--color-surface); border: 1px solid var(--color-accent-ink); }
.sc-card::after { content: ""; position: absolute; z-index: -1; inset: 5px -5px -5px 5px; border-right: 1px solid var(--color-accent-ink); border-bottom: 1px solid var(--color-accent-ink); background: var(--color-surface); }
.sc-name::after { content: ""; display: block; width: 30px; height: 1px; margin-top: 12px; background: var(--color-accent-ink); }
.sc-name { font-family: var(--font-display); font-weight: var(--fw-display); font-size: clamp(1.4rem, 1.2rem + 0.8vw, 2rem); letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-accent-ink); }
.sc-full { margin-top: 2px; font-size: var(--text-small); letter-spacing: 0.12em; line-height: 1.8; color: var(--color-text-sub); }
.sc-card .info-dl { margin-top: 14px; }
.sc-actions { margin-top: 24px; }
.access-main .access-map { margin-top: 56px; }
.mcat-grid, .mcat.is-rev .mcat-grid { align-items: center; }
.mcat-fig { position: static; }
.menu-box-wrap { margin-top: clamp(80px, 10.4vw, 150px); }
.menu-box-wrap .menu-box { position: relative; margin: 0 auto; padding: 46px clamp(18px, 4vw, 60px) 40px; border: 1px solid var(--color-rule); text-align: center; }
.menu-box-wrap .menu-box-t { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); margin: 0; padding: 0 clamp(16px, 4vw, 60px); background: var(--color-bg); font-family: var(--font-heading); font-weight: var(--fw-heading); font-size: var(--text-body); letter-spacing: 0.16em; white-space: nowrap; }
.menu-box-note { margin-bottom: 20px; color: var(--color-text-sub); }
.menu-box-wrap .menu-box-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px clamp(24px, 4vw, 70px); }
.menu-box-wrap .menu-box-actions .btn { min-width: min(329px, 100%); }
.fv { margin-top: clamp(80px, 10.4vw, 150px); }
.lead-sec + .fv { margin-top: clamp(64px, 9vw, 130px); }
.fv > .feat-head { margin-bottom: 0; }
.fv-body { position: relative; margin-top: 70px; padding-left: 190px; }
.fv-label { position: absolute; z-index: 2; top: 30px; left: 0; width: 206px; margin: 0; text-align: right; }
.fv-label span { display: inline-block; padding-bottom: 6px; border-bottom: 2px solid var(--color-ink); font-family: var(--font-display); font-weight: var(--fw-label); font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.79rem); letter-spacing: 0.2em; line-height: 1.3; text-transform: uppercase; color: var(--color-ink); }
.fv-panel { padding: 70px 60px 60px 90px; background: var(--color-panel-soft); }
.fv-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 50px; }
.fv-card { display: flex; flex-direction: column; padding-bottom: 30px; border-bottom: 1px solid var(--color-rule); }
.fv-q { position: relative; margin: 0; padding: 5px 28px; background: var(--color-surface); text-align: center; font-size: var(--text-body); letter-spacing: 0.15em; line-height: 1.8; }
.fv-q::before, .fv-q::after { position: absolute; top: 50%; transform: translateY(-50%); font-size: 1.5em; font-weight: 300; line-height: 1; }
.fv-q::before { content: "（"; left: 2px; }
.fv-q::after { content: "）"; right: 2px; }
.fv-a { margin-top: 20px; font-size: var(--text-small); letter-spacing: 0.12em; line-height: 2; }
.fv-a p + p, .fv-a .faq-link { margin-top: 10px; }
.lead-en { margin-top: 20px; max-width: 28em; font-family: var(--font-display); font-weight: var(--fw-label); font-size: var(--text-body); letter-spacing: 0.1em; line-height: 2; color: var(--color-text-sub); }
.d-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; }
.d-filters[hidden] { display: none; }
.d-filter { min-height: 44px; padding: 0 24px; border: 1px solid var(--color-rule); background: var(--color-surface); font-size: var(--text-body); letter-spacing: 0.16em; transition: background-color var(--dur-fast), color var(--dur-fast); }
.d-filter:hover { background: var(--color-panel-soft); }
.d-filter[aria-pressed="true"] { background: var(--color-btn); color: var(--color-btn-ink); border-color: var(--color-btn); }
.d-grid { column-count: 3; column-gap: 16px; }
.d-item { break-inside: avoid; margin-bottom: 22px; }
.d-item[hidden] { display: none; }
.d-item figure { margin: 0; }
.d-img { width: 100%; height: auto; }
.d-item figcaption { margin-top: 8px; font-size: var(--text-small); line-height: 1.85; color: var(--color-text-sub); }
.design-note { margin-top: 28px; }
@media (max-width: 999px) {
.fv-body { margin-top: 50px; padding-left: 0; }
.fv-label { position: relative; top: auto; left: auto; width: auto; margin: 0 0 -16px 16px; text-align: left; }
.fv-panel { padding: 50px 40px 40px; }
.fv-cards { gap: 40px 36px; }
.feat-media { padding-top: 0; }
.lead-panel { grid-template-columns: minmax(0, 1fr); }
.lp-photo { width: 86%; }
.lp-text { margin: -20px 0 0 0; padding: 50px 24px 36px; }
.lp-text::before { left: 0; right: 0; top: 0; }
.salon-collage { grid-template-columns: minmax(0, 1fr); }
.sc-photos { max-width: 520px; padding-bottom: 50px; }
.sc-card { margin: -30px 0 0 24px; padding: 34px 28px 32px; }
.feat.is-rev .feat-media { order: 0; }
.feat-media { max-width: 440px; }
.d-grid { column-count: 2; }
}
@media (max-width: 767px) {
.feat-head { gap: 20px; }
.fv-panel { padding: 40px 20px 30px; }
.fv-cards { grid-template-columns: minmax(0, 1fr); gap: 30px; }
.feat-media .feat-img { max-height: 280px; object-position: 50% 50%; }
.sc-card::after { inset: 4px -4px -4px 4px; }
.sc-card { margin: -34px 0 0 14px; padding: 30px 20px 28px; }
.sc-a { width: 88%; }
.sub-hero-photo.has-collage .collage-img:nth-child(3) { display: none; }
.hero-collage[data-n="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.d-grid { column-gap: 10px; }
.d-item { margin-bottom: 16px; }
.d-filter { padding: 0 16px; letter-spacing: 0.1em; }
}
.atmo-block { --k: 7px; }
