@charset "utf-8";

/*
  共通
*/
:root {
  --header-height: 0;
  --window-half-width: 50vw;
  --margin-top: 0;
  --margin-bottom: 0;
  --leading-trim: ((1em - 1lh) / 2);
  --color-blue: 130, 220, 210;
  --color-navy: 46, 47, 54;
}
@supports not (top: 1lh) {
  :root {
    --leading-trim: 0px;
  }
}
html {
  /* scroll-behavior: smooth; */
  scroll-padding-top: var(--header-height);
}
body {
  -webkit-text-size-adjust: 100%;
  margin: auto;
  padding-top: var(--header-height);
  color: #000;
  font-size: 16px;
  font-family: sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0;
  line-height: 1;
}
abbr, address, article, aside, audio, b, blockquote, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section, small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}
h1, h2, h3, h4, h5, h6, th { font-weight: normal; margin: 0; }
em { font-style: normal; }
sub { vertical-align: sub; bottom: 0; }
sup { vertical-align: super; top: 0; }
img { width: 100%; max-width: 100%; height: auto; vertical-align: bottom; backface-visibility: hidden; }
svg { width: 100%; max-width: 100%; height: auto; vertical-align: bottom; fill: currentColor; }
table { border-collapse: collapse; border-spacing: 0; }
td, th { padding: 0; }
li { list-style: none; }
button, [type="button"], [type="reset"], [type="submit"] { padding: 0; border: none; border-radius: 0; background: none; outline: none; -webkit-appearance: initial; appearance: none; cursor: pointer; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; touch-action: manipulation; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
.sp-bl, .sp-il, .tablet-bl { display: none !important; }
.tablet .tablet-bl { display: block !important; }
.opa { transition: 0.3s ease-in-out; }
.w100 { width: 100% !important; }
.none { display: none !important }
.visuallyhidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.tc { text-align: center; }
.tl { text-align: left; }
.tr { text-align: right; }
.tj { text-align: justify; }
.cf:before,.cf:after { content: ""; display: table; }
.cf:after { clear: both; }
.cf { zoom: 1; }
.fl { float: left; }
.fr { float: right; }
.outer {
  position: relative;
  max-width: 1920px;
  margin-inline: auto;
}
.inner {
  position: relative;
  width: 95%;
  max-width: 1290px;
  margin-inline: auto;
}

/* フォント */
.wf-notosansjp-n5-active body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}
.wf-notosansjp-n7-active body .bold,
.wf-notosansjp-n7-active body b {
  font-weight: 700;
}
.wf-notosansjp-n4-active body .regular {
  font-weight: 400;
}
.wf-robotocondensed-n3-active body .roboto {
  font-family: "Roboto Condensed", sans-serif;
  font-weight: 300;
  line-height: 1cap;
}

/* カラー */
.white { color: #fff; }
.blue { color: rgba(var(--color-blue), 1); }
.navy { color: rgba(var(--color-navy), 1); }

/* トラッキング */
.ls0 { letter-spacing: 0; }
.ls50 { letter-spacing: .05em; }
.ls100 { letter-spacing: .1em; }
.ls150 { letter-spacing: .15em; }
.ls200 { letter-spacing: .2em; }

.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}
.grid {
  display: grid;
}
.flex.column { flex-direction: column; }
.flex.nowrap { flex-wrap: nowrap; }
.flex.reverse { flex-direction: row-reverse; }
.flex.jc-s { justify-content: flex-start; }
.flex.jc-e { justify-content: flex-end; }
.flex.ai-e { align-items: flex-end; }
.flex.ai-st { align-items: stretch; }
.grid.jc-s { justify-content: start; }
.grid.jc-e { justify-content: end; }
.grid.ai-s { align-items: start; }
.grid.ai-e { align-items: end; }
.grid.ai-st { align-items: stretch; }
.jc-c { justify-content: center; }
.ai-c { align-items: center; }

.fit-right { margin-right: calc(50% - var(--window-half-width)); }
.fit-left { margin-left: calc(50% - var(--window-half-width)); }

@media (any-hover: hover) {
  .opa:hover { opacity: 0.7 !important; }
}

@media screen and (max-width: 480px) {
  .pc { display: none !important; }
  .sp-bl { display: block !important; }
  .sp-il { display: inline !important; }
  .inner { width: calc(320 / 380 * 100%); max-width: 560px; }
}



/*
  ヘッダー
*/



/*
  メイン
*/



/*
  フッター
*/
.footer {
  position: relative;
  z-index: 1;
}
.footer__content {
  padding-block: 85px 65px;
  grid-template: "logo . heading heading heading" auto
  "logo . . . ." 30px
  "logo . desc . copyright" 1fr
  / calc(119 / 1290 * 100%) calc(62 / 1290 * 100%) minmax(0, 1fr) calc(62 / 1290 * 100%) auto;
  align-content: start;
  align-items: start;
}
.footer__content__logo {
  grid-area: logo;
}
.footer__content__heading {
  grid-area: heading;
  grid-template-columns: calc(30 / 18 * 1em) minmax(0, 1fr);
  align-items: center;
  font-size: clamp(12px, calc(18 / 1200 * 100vw), 18px);
  line-height: 1.5;
  margin-block: calc(var(--leading-trim));
  gap: 0 calc(23 / 18 * 1em);
  color: #064274;
}
.footer__content__heading::before {
  content: "";
  grid-column: 1 / 2;
  display: block;
  width: 100%;
  height: 1px;
  background: currentColor;
}
.footer__content__desc {
  grid-area: desc;
  font-size: clamp(11px, calc(16 / 1200 * 100vw), 16px);
  line-height: 1.75;
  margin-block: calc(var(--leading-trim));
  gap: 0 2em;
}
.footer__content__desc__copy {
  flex: 0 1 auto;
}
.footer__content__desc__copy--address {
  flex: 1 0 100%;
}
.footer__content__copyright {
  grid-area: copyright;
  align-self: end;
  font-size: clamp(10px, calc(11 / 1200 * 100vw), 11px);
}
@media screen and (max-width: 480px) {
  .footer__content {
    padding-block: 25px 20px;
    grid-template: "heading logo" auto
    ". logo" 20px
    "desc desc" auto
    ". ." 30px
    "copyright copyright" auto
    / minmax(0, 1fr) calc(89 / 320 * 100%);
  }
  .footer__content__heading {
    grid-template-columns: calc(15 / 14 * 1em) minmax(0, 1fr);
    align-items: start;
    font-size: 14px;
    line-height: 1.571428571;
    gap: 0 calc(12 / 14 * 1em);
    align-self: end;
  }
  .footer__content__heading::before {
    margin-top: calc((1.571428571 / 2) * 1em);
  }
  .footer__content__desc {
    font-size: 13px;
    line-height: 1.538461538;
    gap: 0;
  }
  .footer__content__desc__copy {
    flex: 1 0 100%;
  }
  .footer__content__copyright {
    font-size: 11px;
    justify-self: center;
  }
}