/* Shared by LP and console. Edit here; distributed copies are generated. */
.site-header { background: #0069c3; color: #fff; }
.site-header .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; width: 100%; }
.site-header .tagin-brand a { color: inherit; text-decoration: none; }
.site-header .tagin-brand a:focus-visible { outline: 3px solid #ffbf47; outline-offset: 5px; }
.site-header .tagin-brand:hover { text-decoration: none; }
.site-header--lp .header-inner { max-width: 1360px; margin: auto; padding: 17px 36px; }
.site-header--lp .mobile-nav { flex-basis: 100%; }
@media (max-width: 1100px) { .site-header--lp .header-inner { padding-inline: 26px; gap: 20px; } }
@media (max-width: 950px) { .site-header--lp .header-inner { flex-wrap: wrap; padding: 14px 20px; gap: 14px; } }
@media (max-width: 359px) { .site-header--lp .header-inner { padding-inline: 16px; gap: 10px; } }
/* 共通のブランド表示。Tag-inは指定の公式SVG、社名は英字で添える。 */
.tagin-brand { display: inline-flex; align-items: center; gap: 14px; flex-shrink: 0; color: #fff; }
.tagin-brand-logo { display: block; width: 144px; height: auto; }
.tagin-brand-by { display: inline-flex; align-items: center; gap: 6px; padding-left: 14px; border-left: 1px solid #ffffff80; font-size: 10px; line-height: 1.8; white-space: nowrap; }
.tagin-brand-company { display: inline-flex; align-items: baseline; gap: 3px; }
.tagin-brand-company img { display: block; height: auto; flex-shrink: 0; }
/* 「Tag-in | by Mysurance」は画面幅によらず一緒に表示する。 */
@media (max-width: 1100px) {
  .tagin-brand { gap: 10px; }
  .tagin-brand-logo { width: 100px; }
  .tagin-brand-by { gap: 5px; padding-left: 10px; font-size: 9px; }
  .tagin-brand-company img:first-child { width: 23px; }
  .tagin-brand-company img:last-child { width: 80px; }
}

/* ---- 共通フッター: web/lp の会社情報・リンク・説明の2段構成 ---- */
.site-footer {
  background: #fff;
  border-top: .5px solid #d3d3d3;
  margin-top: 40px;
  padding: 45px 32px 22px;
  color: #555;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.8;
  text-align: left;
}
.site-footer .ft-inner { width: 100%; max-width: 1120px; margin: 0 auto; }
.site-footer .ft-top { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.site-footer .ft-company { flex-shrink: 0; }
.site-footer .ft-company p { margin: 14px 0 0; font-size: 11px; line-height: 1.8; }
.site-footer .ft-logo { display: inline-flex; align-items: baseline; gap: 3px; line-height: 0; }
.site-footer .ft-logo .mark { width: 36px; height: auto; }
.site-footer .ft-logo .type { width: 128px; height: auto; }
.site-footer .ft-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px 23px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
}
.site-footer .ft-links a { display: inline-block; padding: 4px 0; color: #333; text-decoration: none; }
.site-footer .ft-links a:hover { color: #0069c3; text-decoration: underline; text-underline-offset: 4px; }
.site-footer a:focus-visible { outline: 2px solid #0069c3; outline-offset: 4px; }
.site-footer .ft-legal { display: flex; align-items: center; gap: 18px; margin-top: 28px; padding: 13px 16px; border: 1px solid #b9d5ea; border-radius: 8px; background: #f3f8fc; }
.site-footer .ft-legal a { color: #0069c3; font-size: 12px; font-weight: 700; text-decoration: none; }
.site-footer .ft-legal a span { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-left: 5px; border: 1px solid currentColor; border-radius: 50%; font-size: 16px; line-height: 1; vertical-align: -2px; }
.site-footer .ft-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #dce4ec;
}
.site-footer .ft-bottom p, .site-footer .ft-copy { margin: 0; font-size: 10px; line-height: 1.8; }
.site-footer .ft-copy { flex-shrink: 0; }
@media (max-width: 767px) {
  .site-footer { padding: 32px 20px 24px; }
  .site-footer .ft-top, .site-footer .ft-bottom { display: block; }
  .site-footer .ft-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; margin-top: 25px; }
  .site-footer .ft-legal { display: block; margin-top: 25px; padding: 13px 14px; }
  .site-footer .ft-bottom { margin-top: 25px; padding-top: 17px; }
  .site-footer .ft-copy { display: block; margin-top: 10px; }
}


.site-footer--lp { margin-top: 0; }
@media print { .site-footer { display: none; } }
