@charset "UTF-8";

/* =====================
  Custom properties
===================== */
:root {
  /* ==== フォント ==== */
  --Mincho: YakuHanMP, 'Zen Old Mincho', 'Yu Mincho', serif;
  --Gothic: 'Local Noto Sans JP', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
  --serif: 'EB Garamond', serif;
  --normal: 400;
  --bold: 700;

  /* ==== サイズ ==== */
  --max: 100 * 1600px;
  --min: 100 * 960px;
  --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: #0057e5;
  --color-text-primary: #0f2d5d;
  --color-link: #0076b1;
  --color-white: #fff;
  --color-background: #fff;
  --color-background-lightGray: #f0faff;
  --color-background-gray: #f4f4f4;
  --color-list-border: #d8e2e6;
  --color-list-border02: #c4cacd;

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

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

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

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

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

/* =====================
  common
===================== */
html {
  font-family: var(--Gothic);
  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 {
  font-size: 16rem;
  min-width: calc(var(--min) / 100);
  &.is-fixed {
    overflow: hidden;
    height: 100%;
  }
}

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

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

.icon--square {
  aspect-ratio: 1 / 1;
}

/* =====================
  utility
===================== */
.mincho {
  font-family: var(--Mincho);
  font-weight: var(--bold);
  font-style: normal;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.serif {
  font-family: var(--serif);
  font-optical-sizing: auto;
  font-weight: var(--normal);
  font-style: normal;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.serif--bold {
  font-family: var(--serif);
  font-optical-sizing: auto;
  font-weight: var(--bold);
  font-style: normal;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.fwb {
  font-weight: bold;
}
.tac {
  text-align: center;
}
