[hidden] { display: none !important; }
.footer-nav .is-disabled[href] { pointer-events: none; }
.footer-nav a.is-disabled { color: var(--on-navy-soft); text-decoration: underline dashed; text-underline-offset: 0.25em; }
.footer-fine a { color: var(--on-navy-soft); text-decoration: underline; text-underline-offset: 0.2em; overflow-wrap: anywhere; }
.footer-fine a:hover { color: var(--gold); }
.lang-switch button[aria-current="true"] { color: var(--gold); text-decoration: underline; text-underline-offset: 0.3em; }
body.page-form { position: relative; padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
body.page-form .bl-desk-btn { position: absolute; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
:root { --white: #FFFFFF; }



.bl-desk-btn {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 40;
  width: 48px;
  height: 48px;
  padding: 0;
  background: var(--navy);
  border: 1px solid var(--gold);
  border-radius: 0;
  cursor: pointer;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(11,31,58,0.28);
}
.bl-desk-btn img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  display: block;
  background: #0b1220;
}
.bl-desk-btn:hover { border-color: var(--gold); }
.bl-desk {
  position: fixed;
  right: 16px;
  bottom: 76px;
  z-index: 40;
  width: min(24rem, calc(100vw - 32px));
  max-height: min(28rem, calc(100vh - 120px));
  background: var(--navy);
  color: var(--white);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  box-shadow: 0 8px 32px rgba(11,31,58,0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.bl-desk[hidden] { display: none; }
.bl-desk-head {
  background: var(--navy);
  color: var(--paper);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.bl-desk-head > div {
  min-width: 0;
  flex: 1;
}
.bl-desk-head img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  background: var(--navy);
  flex: 0 0 36px;
}
.bl-desk-kicker {
  margin: 0 0 2px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}
.bl-desk-title {
  margin: 0;
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--gold);
  overflow-wrap: break-word;
}
.bl-desk-note {
  margin: 0;
  padding: 8px 16px;
  font-size: 12px;
  color: var(--ink-soft);
  background: var(--white);
  border-bottom: 1px solid var(--gold);
}
.bl-desk-log {
  flex: 1;
  overflow-y: auto;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--navy);
}
.bl-desk-msg {
  font-size: 16px;
  line-height: 1.45;
}
.bl-desk-msg a { color: var(--gold); }
.bl-desk-msg.you { color: var(--ink-soft); }
.bl-desk-form {
  display: flex;
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--gold);
  background: #101828;
}
.bl-desk-form input {
  flex: 1;
  border: 1px solid var(--gold);
  border-radius: 0;
  padding: 8px 10px;
  font-family: var(--serif);
  font-size: 16px;
  background: #101828;
  color: var(--white);
}
.bl-desk-form button {
  background: transparent;
  color: var(--gold);
  border: 1px solid var(--gold);
  border-radius: 0;
  padding: 8px 12px;
  font-family: var(--sans);
  font-weight: 600;
  cursor: pointer;
}
.bl-desk-kicker,
.bl-desk-note { display: none !important; }
.bl-desk-btn {
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  width: 48px;
  height: 48px;
}
.bl-desk-btn:focus-visible,
.bl-desk-btn:active { border-color: var(--white); }
.bl-desk {
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
}
.bl-desk-form button {
  min-height: 44px;
  min-width: 44px;
}
.bl-desk-form button:focus-visible,
.bl-desk-form button:active { background: var(--gold); color: var(--navy); }
@media (max-width: 639px) {
  .bl-desk-btn {
    width: 44px;
    height: 44px;
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
  }
  .bl-desk-btn img { width: 44px; height: 44px; }
  .bl-desk {
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    width: auto;
    bottom: calc(58px + env(safe-area-inset-bottom, 0px));
    max-height: min(72dvh, calc(100dvh - 72px - env(safe-area-inset-bottom, 0px)));
  }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .bl-desk-btn {
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    width: 48px;
    height: 48px;
  }
  .bl-desk {
    width: min(24rem, calc(100vw - 32px));
    right: max(16px, env(safe-area-inset-right));
    left: auto;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
}
@media (min-width: 1024px) {
  .bl-desk {
    width: min(24rem, calc(100vw - 32px));
    left: auto;
  }
}
body.page-form .bl-desk-btn { position: absolute; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 399.98px) {
  html body .site-header { --header-h: 26px; padding: max(4px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 4px max(10px, env(safe-area-inset-left)); }
  html body .site-header .header-inner { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 8px; }
  html body .site-header .brand { order: 1; flex: 1 1 0; min-width: 0; min-height: 26px; gap: 6px; }
  html body .site-header .brand img, html body .site-header .lockup-slot { flex: 0 0 26px; width: 26px; height: 26px; }
  html body .site-header .brand-name { position: static; width: auto; max-width: none; height: auto; clip: auto; min-width: 0; font-size: 12px; line-height: 1.2; letter-spacing: 0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body .site-header .lang-switch { order: 2; flex: 0 0 auto; flex-wrap: nowrap; gap: 0; margin-left: 0; }
  html body .site-header .lang-switch button { box-sizing: border-box; min-width: 26px; min-height: 26px; padding: 0 3px; font-size: 12px; line-height: 1; }
  html body .site-header .site-nav { order: 3; flex: 1 1 100%; width: 100%; min-width: 0; display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 0 2px;
    overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  html body .site-header .site-nav::-webkit-scrollbar { display: none; width: 0; height: 0; }
  html body .site-header .site-nav ul { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 0 2px; width: 100%; margin: 0; padding: 0; align-items: center; }
  html body .site-header .site-nav li { flex: 0 0 auto; display: flex; align-items: center; }
  html body .site-header .site-nav a { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 26px; min-width: 24px; padding: 0 4px; font-size: 13px; line-height: 1; letter-spacing: 0; white-space: nowrap; }
}
@media (min-width: 400px) and (max-width: 899.98px) {
  html body .site-header { --header-h: 32px; padding: max(6px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 6px max(16px, env(safe-area-inset-left)); }
  html body .site-header .header-inner { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; }
  html body .site-header .brand { order: 1; flex: 1 1 0; min-width: 0; min-height: 32px; gap: 8px; }
  html body .site-header .brand img, html body .site-header .lockup-slot { flex: 0 0 32px; width: 32px; height: 32px; }
  html body .site-header .brand-name { position: static; width: auto; max-width: none; height: auto; clip: auto; min-width: 0; font-size: 13px; line-height: 1.2; letter-spacing: 0.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body .site-header .lang-switch { order: 2; flex: 0 0 auto; flex-wrap: nowrap; gap: 2px; margin-left: 0; }
  html body .site-header .lang-switch button { box-sizing: border-box; min-width: 32px; min-height: 32px; padding: 0 4px; font-size: 13px; line-height: 1; }
  html body .site-header .site-nav { order: 3; flex: 1 1 100%; width: 100%; min-width: 0; display: flex; flex-wrap: nowrap; justify-content: flex-start; margin-left: -5px;
    overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  html body .site-header .site-nav::-webkit-scrollbar { display: none; width: 0; height: 0; }
  html body .site-header .site-nav ul { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 0 10px; width: 100%; margin: 0; padding: 0; align-items: center; }
  html body .site-header .site-nav li { flex: 0 0 auto; display: flex; align-items: center; }
  html body .site-header .site-nav a { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 32px; min-width: 32px; padding: 0 5px; font-size: 14px; line-height: 1; letter-spacing: 0; white-space: nowrap; }
}
@media (min-width: 900px) and (max-width: 1023.98px) {
  html body .site-header { --header-h: 40px; padding: max(10px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 10px max(20px, env(safe-area-inset-left)); }
  html body .site-header .header-inner { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; gap: 0 16px; }
  html body .site-header .brand { order: 1; flex: 0 0 auto; min-width: 0; min-height: 40px; gap: 10px; }
  html body .site-header .brand img, html body .site-header .lockup-slot { flex: 0 0 40px; width: 40px; height: 40px; }
  html body .site-header .brand-name { position: static; width: auto; max-width: none; height: auto; clip: auto; min-width: 0; font-size: 14px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html body .site-header .site-nav { order: 2; flex: 1 1 auto; min-width: 0; display: flex; flex-wrap: nowrap; justify-content: flex-end; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  html body .site-header .site-nav::-webkit-scrollbar { display: none; width: 0; height: 0; }
  html body .site-header .site-nav ul { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 0 4px; margin: 0; padding: 0; align-items: center; }
  html body .site-header .site-nav li { flex: 0 0 auto; display: flex; align-items: center; }
  html body .site-header .site-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 6px; font-size: 15px; line-height: 1; white-space: nowrap; }
  html body .site-header .lang-switch { order: 3; flex: 0 0 auto; flex-wrap: nowrap; gap: 2px; margin-left: 0; }
  html body .site-header .lang-switch button { box-sizing: border-box; min-width: 36px; min-height: 36px; padding: 0 6px; font-size: 13px; line-height: 1; }
}
@media (max-width: 399.98px) {
  html body .site-header { padding-top: max(2px, env(safe-area-inset-top)); padding-bottom: 0; }
  html body .site-header .header-inner { row-gap: 0; }
  html body .site-header .site-nav a { min-height: 44px; }
}
@media (min-width: 400px) and (max-width: 899.98px) {
  html body .site-header { padding-top: max(4px, env(safe-area-inset-top)); padding-bottom: 0; }
  html body .site-header .header-inner { row-gap: 0; }
  html body .site-header .site-nav a { min-height: 44px; }
}
@media (max-width: 899.98px) {
  html body .site-header .lang-switch button { position: relative; }
  html body .site-header .lang-switch button::after { content: ""; position: absolute; left: 0; right: 0; top: -8px; bottom: 0; }
}
@media (min-width: 900px) and (max-width: 1023.98px) {
  html body .site-header { padding-top: max(10px, env(safe-area-inset-top)); padding-bottom: 10px; }
  html body .site-header .site-nav a, html body .site-header .lang-switch button { min-height: 44px; }
}
@media (min-width: 1024px) {
  html body .site-header { box-sizing: border-box; height: 76px; padding-top: 0; padding-bottom: 0; display: flex; align-items: center; }
  html body .site-header .header-inner { width: 100%; min-height: 0; align-items: center; }
  html body .site-header .site-nav a { display: inline-flex; align-items: center; min-height: 44px; }
  html body .site-header .lang-switch button { min-height: 44px; }
  html body .site-header .brand img, html body .site-header .lockup-slot { max-height: 48px; }
}
main :is(p, li, dd, dt, td, blockquote) { overflow-wrap: break-word; }
main a[href^="mailto:"] { overflow-wrap: anywhere; }
