:root {
  --dpc-bg-start: #0b57b5;
  --dpc-bg-end: #063a88;
  --dpc-active-bg: #1490ff;
  --dpc-text: #ffffff;
  --dpc-border: rgba(255,255,255,0.22);
  --dpc-logo-width: 64px;
  --dpc-navy: #0b3478;
  --dpc-navy-soft: #496892;
  --dpc-wrap: min(100%, 1360px);
}

body.dpc-header-enabled #header-container,
body.dpc-header-enabled #header,
body.dpc-header-enabled #navi,
body.dpc-header-enabled #navi-in,
body.dpc-header-enabled .navi,
body.dpc-header-enabled .mobile-menu-buttons,
body.dpc-header-enabled .logo-header,
body.dpc-header-enabled .tagline,
body.dpc-header-enabled .header {
  display: none !important;
}

body.dpc-header-enabled .content,
body.dpc-header-enabled #content,
body.dpc-header-enabled .container,
body.dpc-header-enabled .main,
body.dpc-header-enabled .wrap {
  margin-top: 0;
}

.dpc-header,
.dpc-header *,
.dpc-header *::before,
.dpc-header *::after {
  box-sizing: border-box;
}

.dpc-header {
  position: relative;
  z-index: 9999;
  background: #fff;
  border-bottom: 1px solid #d7e4f6;
  box-shadow: 0 10px 30px rgba(10, 45, 95, 0.05);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

.dpc-header a {
  text-decoration: none;
}

.dpc-header,
.dpc-header__utility,
.dpc-header__brand,
.dpc-header__nav {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
}

.dpc-header {
  margin-bottom: 10px;
}

html {
  scroll-padding-top: 12px;
}


.dpc-header__wrap {
  width: var(--dpc-wrap);
  max-width: calc(100% - 24px);
  margin: 0 auto;
}

.dpc-header__utility {
  min-height: 30px;
  background: linear-gradient(90deg, #fbfdff 0%, #f4f8fd 100%);
  border-bottom: 1px solid #dce7f5;
}

.dpc-header__utility .dpc-header__wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 5px 0;
}

.dpc-header__utility-left,
.dpc-header__utility-right {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.dpc-header__tagline,
.dpc-header__utility-name,
.dpc-header__utility-link {
  font-size: 12px;
  line-height: 1.2;
  color: var(--dpc-navy-soft);
  letter-spacing: 0.08em;
}

.dpc-header__utility-name,
.dpc-header__utility-link {
  padding-left: 14px;
  border-left: 1px solid #c5d7ee;
}

.dpc-header__utility-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  color: var(--dpc-navy);
}

.dpc-header__icon {
  font-size: 13px;
  line-height: 1;
}

.dpc-header__brand {
  background: #fff;
}

.dpc-header__brand-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 72px;
  padding: 8px 0;
}

.dpc-header__brand-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.dpc-header__logo {
  width: var(--dpc-logo-width);
  max-width: 100%;
  height: auto;
  display: block;
  flex: 0 0 auto;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
}

.dpc-header__brand-text {
  min-width: 0;
}

.dpc-header__company-ja {
  margin: 0;
  color: var(--dpc-navy);
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.dpc-header__company-ja-main {
  font-family: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 800;
}

.dpc-header__company-ja-brand {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-weight: 800;
}

.dpc-header__company-en {
  margin-top: 4px;
  color: #375b92;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.28em;
}

.dpc-header__nav {
  position: relative;
  z-index: 30;
  overflow: visible;
  background: linear-gradient(90deg, var(--dpc-bg-start) 0%, var(--dpc-bg-end) 100%);
}

.dpc-header__menu {
  list-style: none;
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: max-content;
  min-width: 0;
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  overflow: visible;
  scrollbar-width: none;
}

.dpc-header__menu-item {
  position: relative;
  flex: 0 0 auto;
  min-width: 0;
  border-left: 1px solid var(--dpc-border);
}

.dpc-header__menu-item:last-child {
  border-right: 1px solid var(--dpc-border);
}

.dpc-header__menu-item.is-current .dpc-header__menu-link,
.dpc-header__menu-link:hover,
.dpc-header__menu-link:focus-visible {
  background: linear-gradient(180deg, var(--dpc-active-bg) 0%, #0f74d9 100%);
}

.dpc-header__menu-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 5px 13px 6px;
  color: var(--dpc-text);
  text-align: center;
  transition: background .18s ease;
}

.dpc-header__menu-ja {
  display: block;
  color: var(--dpc-text);
  font-size: 14px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.dpc-header__menu-en {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,0.96);
  font-size: 8.5px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

.dpc-header__chev {
  font-size: 11px;
  vertical-align: middle;
  margin-left: 3px;
}

.dpc-header__submenu {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% + 1px);
  min-width: 210px;
  padding: 6px 0;
  margin: 0;
  list-style: none;
  background: #fff;
  border: 1px solid #d7e4f6;
  box-shadow: 0 14px 32px rgba(9, 47, 107, 0.16);
  z-index: 100000;
}

.dpc-header__submenu .dpc-header__submenu {
  left: calc(100% - 4px);
  top: -7px;
  transform: none;
}

.dpc-header__submenu-item {
  position: relative;
}

.dpc-header__submenu-item:hover > .dpc-header__submenu,
.dpc-header__submenu-item:focus-within > .dpc-header__submenu {
  display: block;
}


.dpc-header__menu-item:hover > .dpc-header__submenu,
.dpc-header__menu-item:focus-within > .dpc-header__submenu {
  display: block;
}

.dpc-header__submenu-link {
  display: block;
  padding: 10px 14px;
}

.dpc-header__submenu-ja {
  display: block;
  color: var(--dpc-navy);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
}

.dpc-header__submenu-en {
  display: block;
  margin-top: 3px;
  color: #6a84aa;
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: 0.12em;
}

.dpc-header__submenu-link:hover,
.dpc-header__submenu-link:focus-visible {
  background: #f2f7fe;
}

@media (max-width: 980px) {
  .dpc-header__brand-wrap {
    min-height: 72px;
  }
  .dpc-header__company-ja {
    font-size: clamp(20px, 3vw, 28px);
  }
  .dpc-header__menu-item {
    min-width: 0;
  }
  .dpc-header__menu-link {
    min-height: 44px;
    padding: 5px 10px 6px;
  }
  .dpc-header__menu-ja {
    font-size: 13px;
  }
}

@media (max-width: 782px) {
  .dpc-header {
    margin-bottom: 8px;
  }
  html {
    scroll-padding-top: 8px;
  }

  .dpc-header__wrap {
    max-width: calc(100% - 16px);
  }

  /* スマホ: ナビの外枠そのものを横スクロール領域にする */
  .dpc-header__nav {
    overflow: hidden;
  }

  .dpc-header__nav > .dpc-header__wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    scrollbar-width: thin;
  }

  .dpc-header__nav > .dpc-header__wrap::-webkit-scrollbar {
    height: 5px;
  }

  .dpc-header__nav > .dpc-header__wrap::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.35);
    border-radius: 999px;
  }

  .dpc-header__utility .dpc-header__wrap,
  .dpc-header__brand-wrap {
    gap: 8px;
  }
  .dpc-header__company-ja {
    font-size: 18px;
  }
  .dpc-header__company-en {
    font-size: 10px;
    letter-spacing: 0.18em;
  }

  .dpc-header__menu {
    display: inline-flex;
    justify-content: flex-start;
    width: max-content;
    min-width: max-content;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: visible !important;
  }

  .dpc-header__menu-item {
    min-width: 92px;
    flex: 0 0 auto;
  }

  .dpc-header__menu-link {
    min-height: 46px;
  }
  .dpc-header__menu-ja {
    font-size: 14px;
  }
  .dpc-header__menu-en {
    font-size: 9px;
    letter-spacing: 0.05em;
  }

  /* スマホ: 横スワイプを維持しつつ、タップで子メニューを展開 */
  .dpc-header__menu-item {
    touch-action: pan-x pan-y;
  }

  .dpc-header__menu-item:hover > .dpc-header__submenu,
  .dpc-header__menu-item:focus-within > .dpc-header__submenu,
  .dpc-header__submenu-item:hover > .dpc-header__submenu,
  .dpc-header__submenu-item:focus-within > .dpc-header__submenu {
    display: none;
  }

  .dpc-header__menu-item.is-open > .dpc-header__submenu,
  .dpc-header__submenu-item.is-open > .dpc-header__submenu {
    display: block !important;
  }

  .dpc-header__submenu,
  .dpc-header__submenu .dpc-header__submenu {
    position: static;
    left: auto;
    top: auto;
    transform: none;
    min-width: 190px;
    width: max-content;
    max-width: 260px;
    margin: 0;
    box-shadow: 0 8px 20px rgba(9, 47, 107, 0.16);
    z-index: auto;
  }

  .dpc-header__submenu-link {
    padding: 9px 12px;
    white-space: nowrap;
  }
}

.dpc-header__menu-empty {
  min-height: 50px;
  display: flex;
  align-items: center;
  padding: 0 18px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

/* v1.0.4: 文字数に応じた可変幅 + 標準ナビメニューフィルター対応 */
@media (min-width: 783px) {
  .dpc-header__nav,
  .dpc-header__nav > .dpc-header__wrap,
  .dpc-header__menu {
    overflow: visible !important;
  }

  .dpc-header__menu-item {
    width: auto !important;
  }

  .dpc-header__menu-link {
    width: auto;
  }
}

/* v1.0.7: タッチ操作で開いたサブメニュー */
@media (hover: none) and (pointer: coarse) {
  .dpc-header__menu-item.is-open > .dpc-header__submenu,
  .dpc-header__submenu-item.is-open > .dpc-header__submenu {
    display: block !important;
  }
}


/* v1.0.10 --------------------------------------------------------------
 * DVTV-061 popup overlap fix.
 * The popup is position:fixed, so normal-flow margin below the header cannot
 * move it. Offset the fixed overlay by the actually visible header bottom.
 */
:root {
  --dpc-popup-top: 0px;
}

body.dpc-header-enabled .dvtv-db-sc-popup,
body.dpc-header-enabled .dvtv-db-modal {
  top: var(--dpc-popup-top) !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: auto !important;
}

body.dpc-header-enabled .dvtv-db-sc-popup .dvtv-db-sc-popup-box,
body.dpc-header-enabled .dvtv-db-modal .dvtv-db-modal-box {
  max-height: calc(100dvh - var(--dpc-popup-top) - 16px) !important;
}

/* 100dvh unsupported browsers */
@supports not (height: 100dvh) {
  body.dpc-header-enabled .dvtv-db-sc-popup .dvtv-db-sc-popup-box,
  body.dpc-header-enabled .dvtv-db-modal .dvtv-db-modal-box {
    max-height: calc(100vh - var(--dpc-popup-top) - 16px) !important;
  }
}
