/* Cross-page design and accessibility baseline. Loaded after page styles. */
:root {
  --site-ink: #10243a;
  --site-deep: #176da6;
  --site-line: #d8e5ee;
  --site-sand: #e3eef5;
}

html { scroll-padding-top: 86px; }
body {
  overflow-wrap: anywhere;
  font-weight: 400;
}
.wrap { max-width: 1180px; }
.footer { background: #081a2c; }

/* Keep Japanese copy readable: normal body text with clearly weighted headings. */
main :is(h1, h2, h3, h4, .section-title) { font-weight: 700; }
main :is(.lead, p, li, dd) { font-weight: 400; }
main :is(.btn, button, summary, th, dt) { font-weight: 700; }
main :is(.tag, .eyebrow) { font-weight: 700; }
main .proof-card .lbl { font-weight: 700; }

.g-btn-contact,
.btn-sun,
.btn.primary {
  color: #fff;
  background: linear-gradient(120deg, #145d8e, #176da6);
}

.g-header :focus-visible,
.g-mobile-menu :focus-visible,
main :is(a, button, summary):focus-visible {
  outline: 3px solid var(--site-deep);
  outline-offset: 3px;
}

main :is(.card, .price-panel, .case-map, .hero-card),
main [class$="-card"]:not(:hover),
main [class*="-card "]:not(:hover) {
  box-shadow: none;
}

main :is(.card, [class$="-card"], [class*="-card "]) h3 {
  font-size: 1.2rem;
  font-weight: 700;
}

main :is(.card, [class$="-card"], [class*="-card "]) p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
}

main .news-card h3,
main .video-card h3 {
  font-size: 1rem;
  font-weight: 700;
}

.lead { font-size: 1.12rem; }

.price-badge,
.reco-chip,
#flow .flow-step:nth-child(2) .flow-num {
  color: var(--site-ink);
}

.video-card .news-cat {
  color: var(--site-deep);
  border-color: var(--site-line);
  background: var(--site-sand);
}

.cta {
  color: #fff;
  background: var(--site-ink);
}

.cta .eyebrow,
.cta h2,
.cta h3 { color: #fff; }
.cta p,
.cta small { color: rgba(255, 255, 255, .82); }
.cta .btn.primary,
.cta .btn-sun {
  color: var(--site-ink);
  background: #fff;
}

/* Final CTA: a single, centered consultation action on the navy field. */
.cta .cta-box {
  display: flex;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.cta .cta-box > .btn { margin: 0; }

@media (max-width: 560px) {
  body { font-size: 16px; }
  .wrap,
  .g-wrap {
    padding-right: 18px;
    padding-left: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  [data-reveal],
  [data-anim] {
    opacity: 1 !important;
    transform: none !important;
  }
}
