@charset "UTF-8";

/* =====================
  Custom properties
===================== */
@font-face {
  font-family: 'Local Noto Sans JP';
  src: local('Noto Sans JP');
}
:root {
  /* ==== フォント ==== */
  --Gothic: 'Local Noto Sans JP', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  --sans-serif: 'Krona One', sans-serif;
  --normal: 400;
  --bold: 700;

  /* ==== サイズ ==== */
  --max: 100 * 1600px;
  --min: 100 * 768px;
  --full: 100 * 1920px;
  --width: 1440;

  @media screen and (max-height: 1000px) {
    --max: 100 * 1440px;
  }
  @media not all and (min-width: 768px) {
    --width: 390;
  }

  /* ==== 色 ==== */
  --color-primary: #00447c;
  --color-primary-pale: rgb(0 68 124 / 0.85);
  --color-cyan: #026fc9;
  --color-white: #fff;
  --color-text-primary: #2a2e31;
  --color-link: #003d99;
  --background-color: #fff;
  --background-color-gray: #ebf0f2;
  --background-color-paleBlue: #d3e7f9;
  --border-gray: #afb7bd;
  --list-border-gray: #dbdbdb;

  /* ==== 装飾 ==== */
  --border: solid 1rem;

  /* ==== アニメーション easing関数 ==== */
  --easeOutQuart: cubic-bezier(0.25, 1, 0.5, 1);
  --easeOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
  --easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
  --easeInCirc: cubic-bezier(0.55, 0, 1, 0.45);
  --easeInOutBack: cubic-bezier(0.68, -0.6, 0.32, 1.6);

  /* ==== hover ==== */
  --hover-opacity-default: 0.7;
  --hover-opacity-strong: 0.8;

  /* ==== motion ==== */
  --motion-default: 0.4s;
}

/* ==== テキスト選択時の色 ==== */
::selection {
  background: var(--color-primary);
  color: #fff;
}

/* ==== フォームのplaceholder 文字色 ==== */
::placeholder {
  color: #b7b7b7;
}

/* =====================
  hover
===================== */
/* @media (any-hover: hover) {
  .hover-op {
    will-change: opacity;
    transition: opacity 250ms ease 0s;
    &:hover {
      opacity: 0.6;
    }
  }
} */
/* button {
  -webkit-appearance: none;
  appearance: none;
  &:focus,
  &:active {
    background-color: inherit;
    outline: none;
    box-shadow: none;
  }
} */

/* =====================
  common
===================== */
html {
  font-family: var(--Gothic);
  font-weight: var(--normal);
  line-height: 1.8;
  color: var(--color-text-primary);
  background-color: var(--background-color);
  scroll-behavior: smooth;
  width: 100%;
}

/* PC */
@media print, screen and (min-width: 768px) {
  /* body {
    min-width: 1300px;
  } */
  .sp {
    display: none;
  }
}
@media not all and (min-width: 768px) {
  .pc {
    display: none !important;
  }
}

.en {
  font-family: var(--sans-serif);
  line-height: 1.3;
}

a {
  transition: opacity var(--motion-default);
}

/* svg */
.svg-defs {
  width: 0;
  height: 0;
  display: none;
}

.text-link {
  padding-inline: 0.2em;
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 4rem;
  transition: opacity var(--motion-default);
  &:hover {
    opacity: var(--hover-opacity-default);
  }
}

/* list */
.list-bullet {
  list-style: none;
  padding-left: 0.5em;
  > li {
    position: relative;
    padding-left: 1em;
    &::before {
      --size: 0.3em;
      content: '';
      position: absolute;
      left: 0;
      top: calc((1lh - var(--size)) / 2);
      width: var(--size);
      height: var(--size);
      background-color: var(--color-text-primary);
      border-radius: 50%;
    }
  }
}
.list-num-paren {
  > li {
    counter-increment: number;
    list-style-type: none;
    position: relative;
    padding-left: 1.5em;
    &::before {
      content: '(' counter(number) ') ';
      position: absolute;
      top: 0;
      left: 0;
    }
  }
}

/* =====================
  utility
===================== */
.fwb {
  font-weight: var(--bold);
  letter-spacing: 0.03em;
}
.tac {
  text-align: center;
}
.tar {
  text-align: right;
}

/* margin */
.mt00[class] {
  margin-top: 0;
}
.mt40[class] {
  margin-top: 40rem;
}
.mb00[class] {
  margin-bottom: 0;
}
