.ml-language{position:relative;flex:0 0 auto;font:500 13px/1.4 system-ui,sans-serif;letter-spacing:0;z-index:120;color:inherit}
.ml-language summary{display:flex;gap:8px;align-items:center;justify-content:center;padding:10px 12px;min-height:42px;box-sizing:border-box;border:1px solid currentColor;border-radius:3px;cursor:pointer;list-style:none;white-space:nowrap}
.ml-language summary::-webkit-details-marker{display:none}
.ml-language nav{position:absolute;right:0;top:calc(100% + 8px);display:grid!important;gap:0!important;min-width:160px;padding:6px;background:#faf8f4;color:#222b28;border:1px solid #d8d5cd;border-radius:4px;box-shadow:0 8px 28px #0002}
.ml-language:not([open]) nav{display:none!important}
.ml-language nav a{display:block!important;color:#222b28!important;text-decoration:none;padding:12px 14px;font:500 14px/1.4 system-ui,sans-serif;white-space:nowrap;opacity:1!important}
.ml-language nav a:hover,.ml-language nav a:focus-visible{background:#e8e8de}
.ml-language nav a[aria-current]{background:#e5e9de;font-weight:700}
.ml-language :focus-visible{outline:3px solid #a99055;outline-offset:3px}
@media(max-width:420px){.ml-language summary{font-size:12px;padding:8px;min-height:40px}.ml-language{max-width:110px}}

/* ===== 2026-10 design v4: language switch as quiet text, not a framed box ===== */
.ml-language{font-family:"Cormorant Garamond","Times New Roman",serif;font-size:15px;letter-spacing:.12em}
.ml-language summary{gap:6px;min-height:44px;padding:0 6px;border:0;border-radius:0}
.ml-language summary span{display:inline-block;font-size:.8em;text-decoration:none;opacity:.75;transition:transform .2s}
.ml-language[open] summary span{transform:rotate(180deg)}
.hd:not(.on) .ml-language summary{text-shadow:0 1px 10px rgba(0,0,0,.45)}
.ml-language nav{top:calc(100% + 4px);min-width:184px;padding:6px 0;background:#efeeea;color:#1c232b;border:0;border-radius:14px;box-shadow:0 1px 2px rgba(17,25,32,.06),0 20px 40px -18px rgba(17,25,32,.5)}
.ml-language nav a{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid rgba(28,35,43,.08);font:500 14px/1.4 "Noto Sans JP","Hiragino Sans",system-ui,sans-serif;letter-spacing:.04em}
.ml-language nav a:first-child{border-top:0}
.ml-language nav a:hover,.ml-language nav a:focus-visible{background:rgba(28,35,43,.04)}
.ml-language nav a[aria-current]{background:transparent;font-weight:600}
.ml-language nav a[aria-current]::after{content:"";flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#8f6b48}
.ml-language :focus-visible{outline:3px solid currentColor;outline-offset:4px}
.ml-language nav a:focus-visible{outline-color:#7a5a3b;outline-offset:-3px}
@media(max-width:420px){.ml-language{max-width:none;font-size:14px}.ml-language summary{padding:0 4px;min-height:44px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.ml-language summary span{transition:none}}

/* English hero: keep the complete sea-distance phrase within short viewports. */
html[lang="en"] .hero-title{font-size:clamp(24px,4.4vh,44px);letter-spacing:.1em}
@media(max-height:500px) and (min-width:560px){html[lang="en"] .hero-title{font-size:clamp(18px,2.4vw,22px);max-width:calc(50% - 187px);text-wrap:balance}}
