/* buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 14px;
  border-radius:12px;
  text-decoration:none;
  font-weight:700;
  border:1px solid rgba(0,0,0,.12);
}
.btn--primary{ background:#fff; color:#111 !important; border-color:#111; }
.btn--ghost{ background:#fff; color:#111 !important; }
.btn--lg{ padding:14px 18px; border-radius:14px; }

/* cards */
.card{
  border:1px solid var(--border);
  border-radius: var(--radius);
  background:#fff;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  overflow:hidden;
}

/* pill/badge */
.badges{ list-style:none; margin:0; padding:0; display:flex; gap:10px; flex-wrap:wrap; }
.badges li{
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.05);
  font-weight: 700;
  font-size: 13px;
}

/* form（お問い合わせや検索にも使える） */
.form{
  display:grid;
  gap: 12px;
}
.input, .textarea, .select{
  width:100%;
  border:1px solid rgba(0,0,0,.14);
  border-radius: 12px;
  padding: 12px 12px;
  font-size: 16px; /* iOSの拡大防止 */
}
.textarea{ min-height: 140px; resize: vertical; }
.field-help{ color: var(--muted2); font-size: 13px; margin-top: 6px; }
.field-error{ color: #b42318; font-size: 13px; margin-top: 6px; }


/* ===== Footer ===== */
.site-footer { margin-top: 48px; background: #0f172a; color: #e5e7eb; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { opacity: 0.9; }

.footer-cta { background: #111827; border-bottom: 1px solid rgba(255,255,255,0.08); }
.footer-cta__inner { padding: 20px 0; display: grid; gap: 12px; }
.footer-cta__lead { font-weight: 700; font-size: 1.05rem; margin: 0; }
.footer-cta__sub { margin: 6px 0 0; opacity: 0.9; }
.footer-cta__actions { display: flex; gap: 10px; flex-wrap: wrap; }

.footer-main { padding: 28px 0; }
.footer-grid { display: grid; gap: 20px; }
.footer-title { font-weight: 700; margin: 0 0 10px; }

.footer-brand__logo .custom-logo { height: 40px; width: auto; }
.footer-brand__desc { margin: 10px 0 0; opacity: 0.9; line-height: 1.7; }
.footer-contact { margin-top: 14px; }
.footer-contact__item { margin: 10px 0 0; }
.footer-contact__label { display: inline-block; width: 3.5em; opacity: 0.85; text-align: center;}

.footer-nav-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-note { margin: 14px 0 0; opacity: 0.85; }

.footer-badges { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.footer-badge { display: inline-flex; align-items: center; justify-content: center; padding: 10px 12px; border: 1px solid rgba(255,255,255,0.14); border-radius: 12px; }
.footer-badge--img img { display: block; height: 34px; width: auto; object-fit: contain; }

.footer-actions { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.footer-top { display: inline-block; margin-top: 16px; opacity: 0.9; text-decoration: underline; }

.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding: 14px 0; }
.footer-bottom__inner { display: flex; gap: 10px; flex-direction: column; align-items: flex-start; }
.footer-legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 12px; opacity: 0.9; }

.site-footer img.custom-logo{
  /* ここで“デカすぎ”を止める */
  max-width: 220px;
  max-height: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* スマホはさらに控えめ */
@media (max-width: 768px){
  .site-footer img.custom-logo{
    max-width: 160px;
    max-height: 110px;
  }
}

@media (min-width: 900px) {
  .footer-cta__inner { grid-template-columns: 1fr auto; align-items: center; }
  .footer-grid { grid-template-columns: 1.2fr 0.9fr 0.9fr; }
  .footer-bottom__inner { flex-direction: row; justify-content: space-between; align-items: center; }
}

/* Privacy Policy：カード内余白 */
.policy .card__inner,
.policy__inner{
  padding: 22px 20px;
}

@media (min-width: 900px){
  .policy .card__inner,
  .policy__inner{
    padding: 28px 28px;
  }
}

/* 見出し・段落の行間も整える（任意） */
.policy__inner p{
  margin: 0 0 14px;
  line-height: 1.9;
}
.policy__inner h2{
  margin: 22px 0 10px;
}
.policy__inner h3{
  margin: 18px 0 8px;
}

/* ===== Footer：スマホは中身をすべてセンター寄せ ===== */
@media (max-width: 768px){

  /* 文字全般を中央へ */
  .site-footer,
  .footer-cta__inner,
  .footer-main,
  .footer-bottom{
    text-align: center;
  }

  /* CTAのボタンを中央へ（flexなので明示） */
  .footer-cta__actions{
    justify-content: center;
  }

  /* ロゴも中央へ */
  .footer-brand__logo{
    display: flex;
    justify-content: center;
  }

  /* グリッド内の各カラムを中央に寄せる */
  .footer-grid{
    justify-items: center;
  }

  /* ナビ（ul）は中身が左寄りになりやすいので中央化 */
  .footer-nav-list{
    justify-items: center;
  }

  /* 会社情報（ラベル幅固定があるのでスマホは解除して中央化） */
  .footer-contact__label{
    width: auto;
    display: block;
    margin: 0 0 4px;
    opacity: 0.85;
  }
  .footer-contact__item{
    margin: 12px 0 0;
  }

  /* バッジ・ボタン類（flex）を中央へ */
  .footer-badges,
  .footer-actions{
    justify-content: center;
  }

  /* 最下部：コピーとリンクを中央へ（元は flex-start） */
  .footer-bottom__inner{
    align-items: center;
  }
  .footer-legal{
    justify-content: center;
    flex-wrap: wrap;
  }
}
