@charset "utf-8";

/*==========================================================================
# reset - ブラウザの差異や不要なスタイルを無くすためのスタイル
========================================================================== */
@charset "utf-8";

/* ==========================================================================
レイヤーの優先順を宣言 
========================================================================== */
@layer reset, normalize, base;

/* ==========================================================================
base をレイヤー化
========================================================================== */
@layer base {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
}


/* ==========================================================================
reset をレイヤー化
========================================================================== */
@layer reset {


  html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td, small, button, time, figure {
    border: 0;
    font: inherit;
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
  }

  html {
    line-height: 1;
  }

  ol, ul {
    list-style: none;
  }

  li, dd {
    list-style-type: none;
  }

  header, footer, nav, section, article, aside, figure, figcaption {
    display: block;
  }

  img {
    border: none;
    vertical-align: bottom;
  }

  a {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
  }


  /* ==== この中では reset レイヤーを無効化 ==== */
  @supports (all: revert-layer) {
    .no-reset, .no-reset * {
      all: revert-layer; /* resetレイヤー“だけ”を打ち消す */
    }
  }
}



/* ==========================================================================
・normalize をレイヤー化（normalize を .no-reset 配下にのみ適用）
========================================================================== */
@layer normalize {

  :where(.no-reset) { line-height: 1.7; } /* html の代替（局所） */
  :where(.no-reset a) { background-color: transparent; }

  :where(.no-reset h1) { font-size: 2em; margin: 0.67em 0; }

  :where(.no-reset hr) { box-sizing: content-box; height: 0; overflow: visible; }

  :where(.no-reset pre) { font-family: monospace, monospace; font-size: 1em; }

  :where(.no-reset abbr[title]) {
    border-bottom: none;
    text-decoration: underline dotted;
  }

  :where(.no-reset b), :where(.no-reset strong) { font-weight: bolder; }

  :where(.no-reset code),
  :where(.no-reset kbd),
  :where(.no-reset samp) {
    font-family: monospace, monospace;
    font-size: 1em;
  }

  :where(.no-reset small) { font-size: 80%; }

  :where(.no-reset sub),
  :where(.no-reset sup) {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  :where(.no-reset sub) { bottom: -0.25em; }
  :where(.no-reset sup) { top: -0.5em; }

  :where(.no-reset img) {
    border-style: none;
    max-width: 100%;
    height: auto;
  }

  :where(.no-reset button),
  :where(.no-reset input),
  :where(.no-reset optgroup),
  :where(.no-reset select),
  :where(.no-reset textarea) {
    font: inherit;
    line-height: 1.15;
    margin: 0;
  }

  :where(.no-reset button), :where(.no-reset input) { overflow: visible; }
  :where(.no-reset button), :where(.no-reset select) { text-transform: none; }

  :where(.no-reset button),
  :where(.no-reset [type="button"]),
  :where(.no-reset [type="reset"]),
  :where(.no-reset [type="submit"]) { -webkit-appearance: button; }

  :where(.no-reset button::-moz-focus-inner),
  :where(.no-reset [type="button"]::-moz-focus-inner),
  :where(.no-reset [type="reset"]::-moz-focus-inner),
  :where(.no-reset [type="submit"]::-moz-focus-inner) {
    border-style: none;
    padding: 0;
  }

  :where(.no-reset button:-moz-focusring),
  :where(.no-reset [type="button"]:-moz-focusring),
  :where(.no-reset [type="reset"]:-moz-focusring),
  :where(.no-reset [type="submit"]:-moz-focusring) {
    outline: 1px dotted ButtonText;
  }

  :where(.no-reset fieldset) { padding: 0.35em 0.75em 0.625em; }

  :where(.no-reset legend) {
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal;
  }

  :where(.no-reset progress) { vertical-align: baseline; }
  :where(.no-reset textarea) { overflow: auto; }

  :where(.no-reset [type="checkbox"]),
  :where(.no-reset [type="radio"]) {
    box-sizing: border-box;
    padding: 0;
  }

  :where(.no-reset [type="number"]::-webkit-inner-spin-button),
  :where(.no-reset [type="number"]::-webkit-outer-spin-button) { height: auto; }

  :where(.no-reset [type="search"]) {
    -webkit-appearance: textfield;
    outline-offset: -2px;
  }
  :where(.no-reset [type="search"]::-webkit-search-decoration) { -webkit-appearance: none; }

  :where(.no-reset ::-webkit-file-upload-button) {
    -webkit-appearance: button;
    font: inherit;
  }

  :where(.no-reset details) { display: block; }
  :where(.no-reset summary) { display: list-item; }

  :where(.no-reset template) { display: none; }
  :where(.no-reset [hidden]) { display: none; }
}
