@charset "UTF-8";

/* =====================
  fonts
===================== */
@font-face {
  font-family: 'Local Noto Sans JP';
  src: local('Noto Sans JP');
}

/* =====================
  Custom properties
===================== */
:root {
  --lang-ja: 'Local Noto Sans JP', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  --lang-en: 'Lato', sans-serif;
  --normal: 400;
  --bold: 700;
  --black: 900;

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

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

  /* ==== 色 ==== */
  --color-primary: #173f4b;
  --color-accent: #b4bd3d;
  --color-text-primary: #173f4b;
  --color-white: #fff;
  --color-background: #fff;
  --color-list-border: #5a757d;
  --background-image-green: url(/assets/img/common/bg01.webp);
  --background-image-base: url(/assets/img/common/bg02.webp);
  --background-image-white: url(/assets/img/common/bg03.webp);

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

  /* ==== アニメーション 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);
}

/* ==== テキスト選択時の色 ==== */
::selection {
  background: auto;
}

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

/* =====================
  hover
===================== */
@media (any-hover: hover) {
  a {
    transition: opacity 0.3s ease;
    &:hover {
      opacity: 0.8;
    }
  }
}

/* =====================
  common
===================== */
/* [id] {
  scroll-margin-top: var(--header-H);
} */
html {
  font-family: var(--lang-ja);
  font-optical-sizing: auto;
  font-weight: var(--normal);
  font-style: normal;
  font-size: clamp(calc(1 / var(--width) * 100 / var(--min)), calc(1 / var(--width) * 100 * 1vw), calc(1 / var(--width) * 100 / var(--max)));
  line-height: 1.8;
  color: var(--color-text-primary);
  background-color: var(--color-background);
  scroll-behavior: smooth;
  width: 100%;
}
body {
  --margin-around: 32rem;
  --margin-around02: 8rem;
  font-size: 16rem;
  min-width: calc(var(--min) / 100);
  background: var(--background-image-green) repeat;
  background-attachment: fixed;
  padding: var(--margin-around)!important;
}
/* img {
  display: inline-block;
} */

/* PC */
@media print, screen and (min-width: 768px) {
  /* body {
    min-width: 1200px;
  } */
  .sp {
    display: none;
  }
}
@media not all and (min-width: 768px) {
  html {
    font-size: calc(1 / var(--width) * 100 * 1vw);
  }
  body {
    --margin-around: 8rem;
    --margin-around02: 6rem;
    font-size: 15rem;
    min-width: auto;
  }
  .pc {
    display: none;
  }
}

/* =====================
  utility
===================== */
.en {
  font-family: var(--lang-en);
  font-weight: var(--black);
  font-style: normal;
  line-height: 1.3;
}
.fwb {
  font-weight: bold;
}
.tac {
  text-align: center;
}

/* =====================
  list
===================== */
.bracket-number-list {
  > li {
    list-style-type: none;
    counter-increment: cnt;
    display: grid;
    grid-template-columns: auto 1fr;
    &::before {
      content: '（' counter(cnt) '）';
    }
  }
}
.disc-list {
  > li {
    position: relative;
    padding-inline-start: 1em;
    &::before {
      content: '';
      position: absolute;
      left: 0;
      top: calc((1lh - 0.3em) / 2);
      background-color: var(--color-text-primary);
      width: 0.25em;
      height: 0.3em;
      border-radius: 50%;
      z-index: 1;
    }
  }
}
