/* Morph — Japanese layer. Loaded after /site.css on /ja/ pages only. */
:root {
  --serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;
}
body { line-height: 1.9; font-feature-settings: "palt" 0; }
body, p, li, dd, dt, summary, h1, h2, h3 { word-break: auto-phrase; line-break: strict; overflow-wrap: anywhere; }

/* Kanji carry their own density: no tracking, bold serif, looser leading. */
h1, h2, h3, .brand, .lens .sub, .btn-store small, .btn-soon small, .btn-store b { letter-spacing: 0; }
h1, h2, h3 { font-weight: 700; }
h1 { font-size: clamp(2.375rem, 6.6vw, 3.75rem); line-height: 1.3; }
h2 { font-size: clamp(1.75rem, 4.2vw, 3rem); line-height: 1.4; }
h3 { line-height: 1.5; }
.lens h3, .steps h3 { font-size: 1.375rem; }
.also dt { font-weight: 700; font-size: 1.25rem; line-height: 1.5; }
.prism-close { font-weight: 700; font-size: 1.375rem; line-height: 1.6; }
.final h2 { font-size: clamp(2rem, 5.4vw, 3.75rem); line-height: 1.4; }
.doc h1 { font-size: clamp(2.125rem, 5.4vw, 3.5rem); }
.doc h2 { line-height: 1.5; }
.doc h3 { letter-spacing: 0; }
.faq summary { line-height: 1.7; }
.lede { line-height: 1.9; }
.btn { font-weight: 500; line-height: 1.2; }
.contact-card a.mail { font-family: "DM Serif Display", var(--serif); }
.steps li::before { font-family: Georgia, serif; }

/* ---------- Guide + breadcrumb ---------- */
.crumbs { font-size: 0.9375rem; color: var(--dim); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs li + li::before { content: "›"; margin-right: 6px; opacity: 0.6; }
.crumbs a { color: var(--dim); text-decoration: none; }
.crumbs a:hover { color: var(--bright); }
.guide .wrap { max-width: 760px; }
.guide h1 { margin-top: 18px; }
.guide h1 .tide { display: block; font-size: 0.62em; margin-top: 10px; line-height: 1.5; }
.guide .lede { margin-top: 24px; }
.guide h2 { font-size: clamp(1.5rem, 3.2vw, 2rem); line-height: 1.5; }
.guide p { max-width: 40em; }
.guide .figure-row { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: center; margin: 40px 0 8px; }
.guide .figure-row .shot { max-width: 220px; }
@media (max-width: 640px) { .guide .figure-row { grid-template-columns: 1fr; } .guide .figure-row .shot { justify-self: center; } }
.kinds { list-style: none; margin: 24px 0 0; padding: 0; }
.doc .kinds { padding: 0; }
.kinds li { padding: 18px 0; border-top: 1px solid var(--hair); }
.doc .kinds li + li { margin-top: 0; }
.kinds li:last-child { border-bottom: 1px solid var(--hair); }
.kinds b { display: block; color: var(--bright); font: 700 1.25rem/1.5 var(--serif); margin-bottom: 4px; }
.kinds b small { font: 500 0.8125rem/1 var(--sans); color: var(--tide); margin-left: 10px; }
.saying { margin: 28px 0 8px; padding: 22px 26px; border-radius: 18px; background: var(--surface); border: 1px solid var(--hair); text-align: center; }
.saying p { max-width: none; }
.saying .big { font: 700 clamp(1.625rem, 4.4vw, 2.25rem)/1.4 var(--serif); color: var(--bright); }
.saying .ruby { margin-top: 6px; color: var(--dim); font-size: 0.9375rem; }
.guide .cta-block { margin-top: 56px; padding: 32px; border-radius: 22px; background: linear-gradient(135deg, rgba(97, 73, 255, 0.24), rgba(30, 30, 38, 0.9)); border: 1px solid rgba(138, 120, 255, 0.3); }
.guide .cta-block h2 { margin-top: 0; }
.guide .cta-block .ctas { margin-top: 24px; }
.notice { margin-top: 20px; padding: 14px 18px; border-radius: 14px; background: rgba(255, 193, 7, 0.08); border: 1px solid rgba(255, 193, 7, 0.28); color: var(--text); font-size: 0.975rem; }
.guide-link { margin-top: 28px; }
@media (max-width: 420px) { .guide .cta-block { padding: 24px 20px; } }
.fine span { white-space: nowrap; }
