/*
 * 共通UI用の最小リセット。style.cssより先に読み込む。
 * :where()で詳細度を抑え、コンポーネントの指定を優先する。
 * 既存サイト全体へ作用するhtml・body・全要素へのグローバルリセットは行わない。
 */
:where(.request-page, .site-header, .site-footer),
:where(.request-page, .site-header, .site-footer) *,
:where(.request-page, .site-header, .site-footer) *::before,
:where(.request-page, .site-header, .site-footer) *::after {
  box-sizing: border-box;
}

:where(.request-page, .site-header, .site-footer)
:where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ul, ol, form) {
  margin: 0;
}

:where(.site-header, .site-footer)
:where(nav ul, nav ol) {
  padding: 0;
  list-style: none;
}

:where(.request-page) :where(fieldset) {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

:where(.request-page) :where(legend) {
  max-inline-size: 100%;
  padding: 0;
}

:where(.request-page, .site-header, .site-footer)
:where(input, select, textarea, button) {
  margin: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: none;
}

/* テキスト入力のブラウザ固有の内側装飾だけを解除する。 */
:where(.request-page) :where(input[type="text"], input[type="email"], input[type="tel"], textarea) {
  -webkit-appearance: none;
  appearance: none;
}

:where(.request-page) :where(textarea) {
  vertical-align: top;
  resize: vertical;
}

:where(.request-page, .site-header, .site-footer)
:where(button) {
  -webkit-appearance: none;
  appearance: none;
}

:where(.request-page, .site-header, .site-footer)
:where(img, svg) {
  vertical-align: middle;
}

/* selectの矢印、radio/checkbox、フォーカス、検証表示は一括解除しない。 */
