@charset "utf-8";
.cr-footer { padding: 45px 0 20px; background: #eaf3fa; color: #103c66; }
.cr-footer a { color: inherit; text-decoration-line: none; }
.cr-footer a:hover { text-decoration-line: underline; text-underline-offset: 5px; }
.cr-footer-top { display: flex; flex-direction: column; gap: 26px; }
.cr-footer-brand { display: inline-block; width: min(300px, 100%); overflow: hidden; padding: 8px 10px; border: 1px solid #d0e0ed; border-radius: 10px; background: #fff; }
.cr-footer-brand-inner { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.cr-footer-logo-image { display: block; width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.cr-footer-brand-name { position: relative; display: inline-flex; align-items: baseline; gap: 3px; color: #111; font-family: var(--df-font-sans); font-size: 12px; font-weight: 700; letter-spacing: -.04em; }
.cr-footer-brand-name strong { font-family: Georgia, "Times New Roman", serif; font-size: 28px; line-height: 1; letter-spacing: -.045em; }
.cr-footer-brand-name small { font-size: 9px; font-weight: 700; letter-spacing: 0; }
.cr-footer .cr-footer-brand:hover, .cr-footer .cr-footer-brand:focus-visible { text-decoration-line: none; }
.cr-footer-brand-name::after { position: absolute; right: 0; bottom: -5px; left: 0; height: 2px; background: currentColor; content: ""; opacity: 0; transition: opacity .2s ease; }
.cr-footer-brand:hover .cr-footer-brand-name::after, .cr-footer-brand:focus-visible .cr-footer-brand-name::after { opacity: 1; }
.cr-footer-top p { margin: 15px 0 0; color: #375e80; font-size: 13px; }
.cr-footer-permit { overflow-wrap: anywhere; }
.cr-footer-nav { display: flex; width: min(420px, 100%); flex-wrap: wrap; gap: 20px; }
.cr-footer-nav > div { display: flex; flex: 0 0 calc(50% - 10px); flex-direction: column; gap: 10px; min-width: 0; }
.cr-footer-nav a { font-size: 13px; }
.cr-footer-bottom { margin-top: 33px; padding-top: 17px; border-top: 1px solid #c6d9e9; text-align: center; }
.cr-footer-copyright { font-size: 11px; }
@media (min-width: 900px) { .cr-footer-top { flex-direction: row; justify-content: space-between; } .cr-footer-nav { flex: 0 1 420px; margin-top: 67px; } }

/* A案の濃紺フッター */
.cr-footer {
  padding: clamp(55px,7vw,100px) 0 28px;
  background: var(--cr-navy);
  color: #fff;
}
.cr-footer-brand {
  width: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.cr-footer-brand-inner { gap: 10px; }
.cr-footer-brand-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  color: #fff;
  font-family: var(--df-font-en);
  letter-spacing: .12em;
}
.cr-footer-brand-name small { font-size: 10px; letter-spacing: .38em; }
.cr-footer-brand-name strong { font-family: var(--df-font-en); font-size: 26px; letter-spacing: .12em; }
.cr-footer-brand-name::after { display: none; }
.cr-footer-top p { color: rgba(255,255,255,.72); line-height: 1.8; }
.cr-footer-nav a {
  position: relative;
  display: inline-block;
  width: fit-content;
  color: rgba(255,255,255,.9);
  font-size: 14px;
  text-decoration-line: none;
}
.cr-footer-nav a::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
  content: "";
}
.cr-footer-nav a:hover,
.cr-footer-nav a:focus-visible { text-decoration-line: none; }
.cr-footer-nav a:hover::after,
.cr-footer-nav a:focus-visible::after { transform: scaleX(1); }
.cr-footer-bottom { border-color: rgba(255,255,255,.2); }
.cr-footer-copyright { color: rgba(255,255,255,.65); }
@media (prefers-reduced-motion: reduce) {
  .cr-footer-nav a::after { transition-duration: .01ms; }
}
