/* ロゴの青と曲線を生かした、全ページ共通の読みやすさ。 */
:root {
  --c-muted:#526776;
  --c-teal-deep:#227580;
  --c-bg-soft:#f3f8fc;
  --c-line:#d9e5ed;
  --radius:10px;
  --w-container:1200px;
  --header-h:80px;
}
html { scroll-padding-top:100px; scroll-padding-bottom:80px; }
:focus-visible { outline:3px solid #1f5f8b; outline-offset:5px; }
.site-header { background:#fff; backdrop-filter:none; }
.brand svg { height:48px; }
.header-inner { gap:16px; }
.btn { min-height:48px; border-radius:6px; line-height:1.5; padding:12px 24px; }
.btn--primary { background:var(--c-navy); box-shadow:none; }
.btn--primary:hover { background:var(--c-navy-ink); box-shadow:none; }
.btn--sm { min-height:44px; padding:10px 18px; }
.card, .voice { box-shadow:none; border:1px solid var(--c-line); }
.card:hover { transform:none; box-shadow:none; }
.svc-card { height:auto; }
.svc-card:hover { transform:translateY(-2px); box-shadow:0 8px 20px #0f33500a; }
.card-link { min-height:44px; text-decoration:underline; text-underline-offset:5px; }
.eyebrow { color:var(--c-teal-deep); }
.stat-note { opacity:1; font-size:12px; }
.faq summary { padding-right:28px; }
.faq summary .q-mark { color:var(--c-navy); }
/* 表内の読み上げ用ラベルも、横スクロール領域の中に収める。 */
.table-wrap, .price-table-wrap { position:relative; }
.cta-band { background:var(--c-navy-ink); border-top:5px solid var(--c-sky); }
.cta-band .btn--primary { background:#fff; color:var(--c-navy-ink); }
.cta-band .btn--primary:hover { background:var(--c-teal-soft); }
.cta-band-price { margin-top:12px; font-size:18px; font-weight:700; color:#fff; }
.cta-band-note { margin-top:18px; font-size:13px; color:#dceaf0; }
.cta-band :focus-visible, .site-footer :focus-visible { outline-color:var(--c-gold); }
.site-footer { background:#102f42; }
.footer-inner { padding-block:64px 40px; }
.footer-brand svg { width:250px; height:auto; max-width:100%; }
.footer-tagline, .footer-office, .footer-bottom, .footer-bottom a { color:#cedbe1; }
.footer-col .footer-title { color:#8fd3de; }
.footer-col ul { gap:0; }
.footer-col li a { display:inline-flex; align-items:center; min-height:44px; }
.footer-col a:hover, .footer-bottom a:hover { text-decoration:underline; text-underline-offset:5px; }
.footer-bottom a { padding-block:10px; }
.bottom-bar[hidden] { display:none; }
.bottom-bar .bb-line, .btn--line { background:#087c42; }
.bottom-bar { height:calc(60px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); }
.menu-label { font-size:10px; line-height:1; }
.hamburger { width:56px; height:52px; flex-direction:column; gap:14px; }
.hamburger .menu-label { position:static; width:auto; height:auto; background:none; }
.hamburger .menu-label::before, .hamburger .menu-label::after { display:none; }
@media (min-width:1000px) {
  .nav-link { padding-inline:9px; font-size:13px; }
  .brand svg { height:42px; }
  .dropdown { top:100%; }
  .has-dropdown:focus-within .dropdown { transition:none; }
  .footer-inner { grid-template-columns:1.35fr 1fr 1fr 1.15fr; gap:32px; }
}
@media (max-width:999px) {
  :root { --header-h:72px; }
  body { padding-bottom:calc(60px + env(safe-area-inset-bottom)); }
  .brand svg { width:218px; height:auto; }
  .nav-mobile { padding-bottom:calc(32px + env(safe-area-inset-bottom)); }
}
@media (max-width:480px) {
  .header-inner { gap:8px; }
  .brand svg { width:210px; max-width:calc(100vw - 114px); }
  .section { padding-block:64px; }
  .h2 { line-height:1.55; }
  .footer-inner { gap:32px; }
  .footer-bottom { justify-content:flex-start; gap:4px 20px; }
  .footer-bottom > span { width:100%; }
}
