/* Account controls share the header; the hero remains a continuous surface. */
.site-header .site-account { position: relative; flex: 0 0 auto; color: #172033; text-align: left; }
.site-header .site-account > summary { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 8px 12px; border: 1px solid #dce5f4; border-radius: 2px; background: #fff; cursor: pointer; list-style: none; white-space: nowrap; }
.site-account > summary::-webkit-details-marker { display: none; }
.site-account > summary > svg:first-child { color: #3159db; }
.site-account__current { display: grid; gap: 3px; }
.site-account__current small { color: #66748a; font-size: 9px; font-weight: 400; line-height: 1.3; }
.site-account__current strong { color: #172033; font: 600 12px/1.4 var(--font-ui, 'Noto Sans JP', sans-serif); }
.site-account[open] > summary { border-color: #3159db; background: #f8faff; }
.site-account[open] > summary > svg:last-child { transform: rotate(180deg); }
.site-account svg { flex: 0 0 auto; }
.site-account__panel { position: absolute; top: calc(100% + 12px); right: 0; width: 350px; max-width: calc(100vw - 24px); max-height: calc(100vh - 120px); max-height: calc(100dvh - 120px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #dce5f4; border-top: 3px solid #3159db; border-radius: 2px; background: #fff; box-shadow: 0 14px 40px rgba(20,33,58,.12); }
.site-account__identity { display: grid; gap: 5px; padding: 22px 22px 18px; border-bottom: 1px solid #e6ecf7; }
.site-account__identity strong { color: #172033; font-size: 15px; line-height: 1.7; overflow-wrap: anywhere; }
.site-account__identity > span { color: #66748a; font-size: 11px; line-height: 1.7; }
.site-account__modes { display: grid; padding: 12px; }
.site-header .site-account__mode { display: flex; align-items: center; gap: 12px; min-height: 74px; padding: 12px; border: 1px solid transparent; border-radius: 2px; background: #fff; color: #526079; text-decoration: none; }
.site-header a.site-account__mode:hover { border-color: #dce5f4; background: #f8faff; }
.site-account__mode > span { display: grid; gap: 5px; }
.site-account__mode strong { font-size: 13px; line-height: 1.5; }
.site-account__mode small { font-size: 10px; line-height: 1.5; font-weight: 400; }
.site-account__mode em { margin-left: auto; font-size: 10px; font-style: normal; white-space: nowrap; }
.site-header .site-account__mode.is-current { border-color: #d4dfff; background: #f1f5ff; color: #2340a4; }
.site-account__notice { margin: 0 22px; padding: 14px 0; border-top: 1px solid #e6ecf7; color: #526079; font-size: 11px; line-height: 1.8; }
.site-account__notice small { display: block; font-size: 10px; }
.site-account__links { display: grid; padding: 8px 22px 18px; }
.site-header .site-account__links a, .site-header .site-account__links button { display: flex; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; min-height: 44px; padding: 9px 0; border: 0; border-radius: 2px; background: #fff; color: #526079; font: 500 12px/1.8 var(--font-ui, 'Noto Sans JP', sans-serif); text-align: left; text-decoration: none; cursor: pointer; }
.site-header .site-account__links a:hover, .site-header .site-account__links button:hover { color: #3159db; }
.site-account :focus-visible { outline: 2px solid #3159db; outline-offset: 3px; }
.site-header--account .site-header__inner--top { gap: 22px; }
.site-header--account .site-actions--top { gap: 14px; flex: 0 0 auto; width: auto; min-width: 0; }
.site-header--account .site-mobile-toggle { flex-shrink: 0; }
@media(max-width:1024px) { .site-header--account .site-header__inner--top { gap: 16px; } .site-header--account .site-actions--top { margin-left: auto; } }
@media(max-width:767px) {
    .site-header--account .site-actions--top { display: flex; gap: 0; margin-left: auto; }
    .site-header--account .site-actions--top > :not(.site-account) { display: none; }
    .site-header--account .site-header__inner--top { gap: 12px; }
    .site-header .site-account > summary { min-height: 44px; padding: 7px 10px; gap: 7px; }
    .site-account > summary > svg:first-child { display: none; }
    .site-account__current small { font-size: 9px; }
    .site-account__current strong { font-size: 11px; }
    .site-account__panel { position: fixed; top: 84px; right: 12px; width: min(350px, calc(100vw - 24px)); max-height: calc(100vh - 104px); max-height: calc(100dvh - 104px); }
}
@media print { .site-account { display: none; } }
