/* Shared English/Japanese and mobile polish. Existing brand layouts are retained. */
:root { scroll-padding-top: 92px; }
*, *::before, *::after { box-sizing: border-box; }
html:lang(ja) { font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; line-break: strict; }
html:lang(ja) :is(h1,h2,h3,p,a,button,label,summary) { font-family: inherit; word-break: normal; overflow-wrap: anywhere; }
html:lang(ja) :is(h1,h2,h3) { letter-spacing: -.025em; line-height: 1.4; text-wrap: pretty; }
html:lang(ja) p { line-height: 1.85; }
:is(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid #b32931; outline-offset: 4px; }
:is(main,section,article,div) { min-width: 0; }
.official-handoff { display: grid; gap: 16px; padding-block: 20px; }
.official-handoff p { font-size: 14px; line-height: 1.7; color: #515b63; margin: 0; max-width: 58ch; }
.official-handoff a { width: fit-content; max-width: 100%; text-align: center; white-space: normal; }
.official-handoff .frp-button { padding: 14px 22px; background: #171c20; color: #fff; text-decoration: none; }
.official-policy-note { margin:24px auto 64px; padding:24px; max-width:1120px; border-top:1px solid #d0d5d8; color:#515b63; font-size:14px; line-height:1.7; }
.official-policy-note a { color:#ad2932; text-underline-offset:4px; }
details[open] > summary { margin-bottom: 12px; }
@media(max-width:760px) {
  :root { scroll-padding-top: 78px; }
  input,select,textarea { font-size: 16px !important; max-width: 100%; }
  :is(.footer-nav,.frp-footer__nav,.checkout-footer nav) { display:flex; flex-wrap:wrap; gap: 10px 20px; }
  :is(.footer-nav,.frp-footer__nav) a { display:inline-flex; align-items:center; min-height:44px; }
  :is(.frp-shell,.shell,.container) { max-width:100%; }
  :is(.frp-lead,.order-lede) { font-size:16px; line-height:1.7; }
  html:lang(ja) :is(h1,h2) { line-height:1.42; }
  html:lang(ja) h1 { font-size:clamp(28px,7.3vw,38px)!important; }
  .official-handoff a { width:100%; min-height:48px; }
  :is(.frp-community-tabs,.frp-tabs) { overflow-x:auto; scrollbar-width:thin; }
  table { display:block; max-width:100%; overflow-x:auto; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
