/* Shared language flags and menu layout. */
.flag-es { background: linear-gradient(#aa151b 0 25%, #f1bf00 25% 75%, #aa151b 75%); }
.flag-it { background: linear-gradient(90deg, #009246 0 33.33%, #fff 33.33% 66.66%, #ce2b37 66.66%); }
.flag-pt { background: linear-gradient(90deg, #006600 0 40%, #ff0000 40%); }
.flag-de { background: linear-gradient(#000 0 33.33%, #dd0000 33.33% 66.66%, #ffce00 66.66%); }
.flag-ja { background: radial-gradient(circle at center, #bc002d 0 4px, transparent 4.5px), #fff; }
html[lang="ja"] body { font-family: Arial, "Yu Gothic", "Meiryo", "Noto Sans JP", sans-serif; }
html[lang="ja"] .section-text { text-align: start; line-break: strict; }
.lang-menu-list { max-height: min(360px, 65dvh); overflow-y: auto; overflow-x: hidden; }
@media (max-width: 768px), (max-height: 500px) and (max-width: 1080px) {
  header .lang-menu-list {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 6px !important;
  }
  header .lang-dropdown.open .lang-menu-list { gap: 2px !important; }
  header .lang-menu-list .lang-option {
    box-sizing: border-box;
    height: clamp(24px, 4.6dvh, 38px) !important;
    min-height: 0 !important;
    padding: 2px 10px !important;
    line-height: 1.25 !important;
  }
}
.lang-menu-list .lang-option {
  box-sizing: border-box;
  min-width: 0;
  justify-content: flex-start;
  align-items: center;
  text-align: left;
}

/* Flag menu shared by the discography and individual album pages. */
.site-header .header-tools { position: relative; z-index: 10 !important; }
.site-header .lang-dropdown { position: relative; }
.site-header .lang-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--line, #8a2be2);
  border-radius: 9px;
  background: rgba(10, 10, 14, .9);
  color: #fff;
  font: inherit;
  font-size: .72rem;
  cursor: pointer;
}
.site-header .flag {
  display: inline-block;
  flex: 0 0 22px;
  width: 22px;
  height: 15px;
  border-radius: 2px;
}
.site-header .flag-fr { background: linear-gradient(90deg, #0055a4 0 33.33%, #fff 33.33% 66.66%, #ef4135 66.66%); }
.site-header .flag-gb {
  background:
    linear-gradient(90deg, transparent 42%, #c8102e 42% 58%, transparent 58%),
    linear-gradient(0deg, transparent 38%, #c8102e 38% 62%, transparent 62%),
    linear-gradient(90deg, transparent 34%, #fff 34% 66%, transparent 66%),
    linear-gradient(0deg, transparent 28%, #fff 28% 72%, transparent 72%),
    linear-gradient(35deg, transparent 45%, #fff 45% 55%, transparent 55%),
    linear-gradient(-35deg, transparent 45%, #fff 45% 55%, transparent 55%), #012169;
}
.site-header .lang-menu-list {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 20;
  min-width: 160px;
  max-width: calc(100vw - 24px);
  padding: 6px;
  border: 1px solid var(--line, #8a2be2);
  border-radius: 12px;
  background: #0a0a0e;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .55);
}
.site-header .lang-dropdown.open .lang-menu-list { display: grid; gap: 4px; }
.site-header .lang-option {
  display: flex;
  width: 100%;
  gap: 9px;
  padding: 9px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: .72rem;
  cursor: pointer;
}
.site-header .lang-option.active,
.site-header .lang-option:hover { background: rgba(138, 43, 226, .25); }
.site-header .lang-option:focus-visible,
.site-header .lang-menu-toggle:focus-visible { outline: 2px solid #00ffff; outline-offset: 2px; }
:is(.site-header, .store-header) .discography-button,
:is(.site-header, .store-header) :is(.home-globe-button, .store-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 32px;
  width: 32px;
  height: 36px;
  margin-right: 8px;
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  transition: color .2s ease, background .2s ease;
}
:is(.site-header, .store-header) .discography-button svg,
:is(.site-header, .store-header) :is(.home-globe-button, .store-link) svg { display: block; width: 24px; height: 24px; }
:is(.site-header, .store-header) .discography-button:hover,
:is(.site-header, .store-header) :is(.home-globe-button, .store-link):hover { color: #00ffff; background: rgba(138, 43, 226, .2); }
:is(.site-header, .store-header) .discography-button:focus-visible,
:is(.site-header, .store-header) :is(.home-globe-button, .store-link):focus-visible { outline: 2px solid #00ffff; outline-offset: 2px; }
@media (max-width: 768px) {
  :is(.site-header, .store-header) .discography-button,
  :is(.site-header, .store-header) :is(.home-globe-button, .store-link) { margin-right: 0; }
}
.store-header .discography-button,
.store-header .home-globe-button { margin-right: 0; }
.store-header :is(.home-globe-button, .discography-button) {
  position: relative;
  z-index: 10;
  pointer-events: auto !important;
  border-radius: 50%;
  padding: 0;
  background: transparent;
  line-height: 1;
  transform: none;
  filter: none;
  transition: color .25s ease;
}
.store-header :is(.home-globe-button, .discography-button) svg {
  pointer-events: none !important;
  overflow: visible;
  transition: transform .25s ease, filter .25s ease;
}
.store-header :is(.home-globe-button, .discography-button):hover,
.store-header :is(.home-globe-button, .discography-button):focus-visible {
  color: #fff;
  background: transparent;
}
.store-header :is(.home-globe-button, .discography-button):hover svg,
.store-header :is(.home-globe-button, .discography-button):focus-visible svg {
  transform: translateY(-1px) scale(1.06);
  filter: drop-shadow(0 0 5px rgba(255,255,255,.9))
    drop-shadow(0 0 10px var(--neon, #8a2be2))
    drop-shadow(0 0 16px rgba(0,255,255,.35));
}
.store-header :is(.home-globe-button, .discography-button):active svg {
  transform: scale(.94);
}
@media (max-width: 480px) {
  .store-header .discography-button,
  .store-header .home-globe-button { flex-basis: 26px; width: 26px; }
  .store-header .discography-button svg,
  .store-header .home-globe-button svg { width: 21px; height: 21px; }
}

.site-header .store-link svg { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
