@charset "UTF-8";
/* ==========================================================================
   base.css
   リセット + 全ページ共通のベース
   bridge.html / bridge_cancel.html の両方で最初に読み込む
   （旧 reset.css + common.css / form.css の重複部分を統合）
   ========================================================================== */


/* --------------------------------------------------------------
   Reset
   -------------------------------------------------------------- */

*,
*::before,
*::after { box-sizing: border-box; }

body,
h1, h2, h3, h4, h5, h6,
p, form, figure, blockquote, dl, dd,
ul[class], ol[class] { margin: 0; }

ul[class],
ol[class] {
  list-style: none;
  padding: 0;
}

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  line-height: 1.5;
}

a:not([class]) { text-decoration-skip-ink: auto; }

/* img に width / height 属性を付与しているため、height:auto で縦横比を維持する。
   height を CSS で固定する箇所では、その都度 width:auto を併記すること。 */
img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}

input,
button,
textarea,
select { font: inherit; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}


/* --------------------------------------------------------------
   Base
   -------------------------------------------------------------- */

body {
  color: #666;
  font-family: Helvetica, "Yu Gothic", "游ゴシック", sans-serif;
  line-height: 180%;
  letter-spacing: .05em;
}

button { color: #666; }

h1, h2, h3, h4, h5, h6 { line-height: 200%; }

/* 視覚的には隠すが、支援技術には読み上げさせる */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}


/* --------------------------------------------------------------
   Container
   -------------------------------------------------------------- */

.container { animation: fadeIn 1s ease 0s 1 normal; }

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.flex-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}


/* --------------------------------------------------------------
   Footer
   -------------------------------------------------------------- */

footer { font-size: 12px; }

.footer-nav {
  display: flex;
  justify-content: center;
  padding: 1.5rem 0;
}
  .footer-nav li { margin-right: 20px; }
  .footer-nav li:last-child { margin-right: 0; }
  .footer-nav a {
    color: #5A97D1;
    transition: opacity .2s;
  }
  .footer-nav a:hover {
    text-decoration: none;
    opacity: .6;
  }

.copyright {
  font-size: 10px;
  text-align: center;
  background-color: #EDEDED;
  padding: 15px 20px;
}
