/* === v8b — nav fix, header/footer unify, spacing, hero readability === */

/* ---------- 横スクロール根治 ---------- */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}
.dojima-hero,
.ds-remote-band,
.ds-cta-banner {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

/* ---------- グローバルナビ: テキスト省略禁止 + スマホ対応 ---------- */
.navi-in > ul > li > a,
#navi ul li > a,
.navi-in > ul > li.current-menu-item > a {
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding: 20px 28px !important;
}
.navi-in > .menu-header,
.navi-in > ul.menu-pc {
  flex-wrap: wrap !important;
  overflow: visible !important;
}

/* ---------- ヘッダー: フッターと統一グラデーション + マット質感 ---------- */
#header-container,
#header,
.header-container,
.header-container-in,
.logo-header {
  background: linear-gradient(135deg, #8b0a20 0%, #c8102e 48%, #6a0818 100%) !important;
  border-bottom: none !important;
  position: relative;
}
.header-container-in::after {
  display: none !important;
}
/* ヘッダーのマット質感: SVG幾何学図形 */
#header-container::before,
.header-container::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle 120px at 10% 20%, rgba(255,255,255,0.06) 0%, transparent 60%),
    radial-gradient(circle 80px at 85% 70%, rgba(255,255,255,0.04) 0%, transparent 50%),
    radial-gradient(circle 60px at 50% 10%, rgba(255,255,255,0.05) 0%, transparent 40%),
    radial-gradient(circle 100px at 30% 80%, rgba(255,255,255,0.03) 0%, transparent 50%),
    radial-gradient(circle 40px at 70% 30%, rgba(255,255,255,0.04) 0%, transparent 40%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
#header-container::after,
.header-container::after {
  content: "" !important;
  position: absolute !important;
  top: 15px; right: 40px !important;
  width: 80px; height: 80px !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
#header {
  position: relative !important;
  z-index: 1 !important;
}

/* ロゴを白文字に変更（ヘッダーが赤背景になったため） */
.logo-header a.site-name,
.logo-header .site-name-text-link,
#header a.site-name {
  color: #fff !important;
}
.logo-header .site-name-text,
#header .site-name-text {
  color: #fff !important;
}
.logo-header a.site-name::before,
.logo-header a.site-name::after {
  background: #fff !important;
}

/* ---------- ナビを赤背景上の白文字に ---------- */
:root #navi,
:root .navi,
:root #navi-in,
:root .navi-in,
:root #navi-wrap,
:root .navi-wrap,
body #navi,
body .navi {
  background: linear-gradient(135deg, #7a0918 0%, #a80d26 100%) !important;
  background-color: #a80d26 !important;
  border-top: 1px solid rgba(255,255,255,0.15) !important;
  border-bottom: none !important;
}
#navi > *, .navi > *, #navi-in > *, .navi-in > * {
  background: transparent !important;
}
.navi-in > .menu-header,
.navi-in > ul.menu-pc {
  background: transparent !important;
}
.navi-in > ul > li,
#navi ul li,
.navi ul li {
  background: transparent !important;
}
.navi-in > ul > li > a,
#navi ul li > a,
.navi-in > ul > li.current-menu-item > a,
.navi-in > ul > li.current_page_item > a {
  background: transparent !important;
  color: #fff !important;
}
.navi-in > ul > li > a:hover {
  color: rgba(255,255,255,0.7) !important;
}
.navi-in > ul > li > a::after {
  background: #fff !important;
}
.navi-in > ul > li.current-menu-item > a,
.navi-in > ul > li.current_page_item > a {
  color: #fff !important;
}
/* v5-22-navfix override */
body #navi .navi-in > ul {
  background: transparent !important;
}
body #navi .navi-in > ul > li {
  background: transparent !important;
}
body #navi .navi-in > ul > li > a {
  background: transparent !important;
  color: #fff !important;
}
body #navi .navi-in > ul > li.current-menu-item > a,
body #navi .navi-in > ul > li.current_page_item > a {
  background: rgba(255,255,255,0.12) !important;
  color: #fff !important;
}
body #navi .navi-in > ul > li > a:hover {
  color: rgba(255,255,255,0.7) !important;
}

/* ---------- ヒーロー「掲載直行OK」視認性改善 ---------- */
.dojima-hero__title .red {
  color: #fff !important;
  background: linear-gradient(135deg, #ff4d66, #ff6b81) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  filter: drop-shadow(0 2px 8px rgba(255,77,102,0.5)) !important;
}

/* ---------- セクション間余白圧縮 ---------- */
.ds-intro-band {
  padding: 70px 24px !important;
}
.ds-about-v2 {
  padding: 80px 24px !important;
}
.ds-services-v2 {
  padding: 80px 24px !important;
}
.ds-flow-section {
  padding: 80px 24px !important;
}
.ds-voices-v2 {
  padding: 70px 24px !important;
}
.ds-cta-banner {
  padding: 70px 24px !important;
  margin-bottom: 0 !important;
}

/* ---------- フッター前の空白除去 ---------- */
.ds-cta-banner + *,
.article + footer,
article + footer,
#content + footer,
.content + footer {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
#main,
.main,
article.page,
.article,
.content,
.content-in,
#content,
#content-in {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
#body, .body {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* ---------- フッター: マット質感図形追加 ---------- */
#footer::before,
.footer::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle 100px at 90% 30%, rgba(255,255,255,0.05) 0%, transparent 50%),
    radial-gradient(circle 70px at 15% 60%, rgba(255,255,255,0.04) 0%, transparent 50%),
    radial-gradient(circle 50px at 60% 80%, rgba(255,255,255,0.03) 0%, transparent 40%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
#footer, .footer, .footer-container {
  position: relative !important;
  margin-top: 0 !important;
}
.footer-in {
  position: relative !important;
  z-index: 1 !important;
}
.copyright, .copy-text, #copyright, .footer .copyright, .source-org {
  position: relative !important;
  z-index: 1 !important;
}

/* ---------- スマホ対応追加 ---------- */
@media (max-width: 860px) {
  .navi-in > ul > li > a,
  #navi ul li > a {
    padding: 12px 14px !important;
    font-size: 11px !important;
    letter-spacing: 0.1em !important;
  }
  .logo-header a.site-name,
  .logo-header .site-name-text-link {
    font-size: 32px !important;
    letter-spacing: 0.15em !important;
  }
  .logo-header a.site-name::before,
  .logo-header a.site-name::after {
    width: 20px !important;
    margin: 0 10px !important;
  }
  .ds-intro-band { padding: 50px 16px !important; }
  .ds-about-v2 { padding: 60px 16px !important; }
  .ds-services-v2 { padding: 60px 16px !important; }
  .ds-flow-section { padding: 60px 16px !important; }
  .ds-voices-v2 { padding: 50px 16px !important; }
  .ds-cta-banner { padding: 50px 16px !important; }
}
@media (max-width: 480px) {
  .navi-in > ul > li > a,
  #navi ul li > a {
    padding: 10px 10px !important;
    font-size: 10px !important;
    letter-spacing: 0.06em !important;
  }
  .logo-header a.site-name,
  .logo-header .site-name-text-link {
    font-size: 24px !important;
    letter-spacing: 0.1em !important;
  }
}
