/* Header/footer only. No corporate-story body/type resets reach service content. */
.cs-skip {
  position: absolute;
  top: -100px;
  left: 20px;
  padding: 12px;
  background: #fff;
  z-index: 20;
}

.cs-skip:focus {
  top: 10px;
}

.cs-header {
  height: 94px;
  padding: 20px 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  position: relative;
  z-index: 5;
}

.cs-brand {
  display: block;
  width: 265px;
  flex-shrink: 0;
}

.cs-brand img {
  width: 100%;
  height: auto;
}

.cs-nav {
  display: flex;
  align-items: center;
  gap: 37px;
  font-size: 12px;
  font-weight: 500;
}

.cs-nav a {
  padding-block: 12px;
}

.cs-mobile-menu {
  display: none;
}

.cs-home .cs-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.cs-footer {
  padding-block: 34px 20px;
}

.cs-footer-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}

.cs-footer .cs-brand {
  width: 230px;
}

.cs-footer nav {
  display: flex;
  gap: 23px;
  flex-wrap: wrap;
  font-size: 10px;
}

.cs-footer-bottom {
  display: flex;
  gap: 25px;
  justify-content: flex-end;
  font-size: 10px;
  margin-top: 25px;
}

.cs-footer-bottom small {
  margin-right: auto;
  font-size: 10px;
}

.cs-preview-note {
  font-size: 10px;
  color: #65758a;
  margin-top: 23px;
  border-top: 1px solid var(--cs-rule);
  padding-top: 12px;
}

@media(max-width:1100px) {
  .cs-header {
    padding-inline: 28px;
  }
  .cs-brand {
    width: 235px;
  }
  .cs-nav {
    gap: 22px;
  }
  .cs-footer-main {
    align-items: start;
  }
  .cs-footer nav {
    max-width: 360px;
  }
}

@media(max-width:900px) {
  .cs-header {
    height: 78px;
    padding: 18px 20px;
    gap: 12px;
  }
  .cs-brand {
    width: 210px;
  }
  .cs-nav {
    display: none;
  }
  .cs-mobile-menu {
    display: block;
    font-size: 12px;
  }
  .cs-mobile-menu summary {
    display: flex;
    gap: 14px;
    align-items: center;
    list-style: none;
    cursor: pointer;
    min-height: 44px;
  }
  .cs-mobile-menu summary::-webkit-details-marker {
    display: none;
  }
  .cs-mobile-menu summary span {
    font-size: 20px;
  }
  .cs-mobile-menu[open] summary span {
    transform: rotate(45deg);
  }
  .cs-mobile-menu nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 78px;
    background: #fff;
    border-block: 1px solid var(--cs-rule);
    padding: 16px 25px;
    box-shadow: 0 16px 25px #263e580a;
  }
  .cs-mobile-menu nav a {
    display: block;
    padding: 13px 0;
    border-bottom: 1px solid var(--cs-rule);
  }
  .cs-footer {
    padding-block: 27px 20px;
  }
  .cs-footer-main {
    display: block;
  }
  .cs-footer .cs-brand {
    width: 210px;
    margin-bottom: 25px;
  }
  .cs-footer nav {
    gap: 10px 24px;
    font-size: 11px;
  }
  .cs-footer nav a {
    min-height: 36px;
    display: flex;
    align-items: center;
  }
  .cs-footer-bottom {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 16px;
    font-size: 9px;
  }
  .cs-footer-bottom small {
    width: 100%;
    font-size: 9px;
  }
  .cs-preview-note {
    font-size: 9px;
  }
}

.cs-header .cs-brand {
  width: 180px;
}

.cs-footer .cs-brand {
  width: 170px;
}

@media(max-width:900px) {
  .cs-header .cs-brand {
    width: 165px;
  }
  .cs-footer .cs-brand {
    width: 165px;
  }
}

@media print {
  .cs-header,.cs-footer,.cs-contact,.cs-detail-index {
    display: none;
  }
}

.cs-header,.cs-footer { background:#fff; color:#263e58; font-family:"Noto Sans JP",sans-serif; line-height:1.95; --cs-rule:#dce5ed; }
.cs-header a,.cs-footer a { color:inherit; text-decoration:none; }
.cs-footer.cs-wrap { width:min(1280px,calc(100% - 144px)); margin-inline:auto; }
.cs-header a:focus-visible,.cs-header summary:focus-visible,.cs-footer a:focus-visible { outline:2px solid #235e91; outline-offset:5px; }
@media(max-width:900px) { .cs-footer.cs-wrap { width:calc(100% - 40px); } }
