.language-switch { position: relative; flex: 0 0 auto; color: inherit; font: inherit; font-size: .85rem; }
.language-switch summary { box-sizing: border-box; display: flex; align-items: center; gap: .45em; min-height: 44px; cursor: pointer; padding: .6rem .7rem; border: 1px solid currentColor; border-radius: .5rem; white-space: nowrap; list-style: none; }
.language-switch summary::-webkit-details-marker { display: none; }
.language-switch__icon { display: block; width: 1.3em; height: 1.3em; flex: 0 0 auto; }
.language-switch summary::after { content: ""; width: .4em; height: .4em; margin-left: .15em; margin-bottom: .2em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.language-switch[open] summary::after { transform: rotate(225deg); margin-bottom: -.2em; }
.language-switch nav { position: absolute; z-index: 100; right: 0; top: calc(100% + .4rem); display: grid; min-width: 180px; padding: .4rem; background: #fff; color: #17163f; border: 1px solid #d4d3e5; border-radius: .5rem; box-shadow: 0 8px 24px #0003; }
.language-switch nav a { display: block; padding: .7rem .8rem; line-height: 1.5; color: inherit; text-decoration: none; border-radius: .25rem; }
.language-switch nav a:hover, .language-switch nav a[aria-current] { background: #eeedf7; }
.language-switch summary:focus-visible, .language-switch a:focus-visible { outline: 3px solid #7867ff; outline-offset: 3px; }
.language-switch--manual { font-size: .65rem; }
.translation-note { margin: .7rem 0 0; font-size: .65rem; }
.site-header { gap: 16px; }
html:not([lang="ja"]) .hero h1 { font-size: clamp(2.6rem, 5.8vw, 5rem); overflow-wrap: anywhere; }
html:not([lang="ja"]) .section h2 { overflow-wrap: anywhere; }
html:not([lang="ja"]) .use-card h3 { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .site-header { flex-wrap: wrap; align-items: center; }
  .site-header .site-nav { order: 3; width: 100%; max-width: 100%; }
  .site-header .language-switch { margin-left: auto; }
  html { scroll-padding-top: 125px; }
}
@media (max-width: 620px) {
  html:not([lang="ja"]) .hero h1 { font-size: clamp(2.3rem, 9vw, 3.5rem); }
  .language-switch { font-size: .78rem; }
}
