@charset "UTF-8";

/* ============================================================
 * Reset CSS — HTML Living Standard 準拠
 * WordPress コーポレートサイト向け
 * ============================================================
 *
 * 対象サイト構成:
 *   - 共通: ヘッダー / フッター
 *   - トップページ（キービジュアル、アバウトアス、モーダル、ニュース一覧、
 *     コラム一覧、メンバー紹介、イベント告知、コンタクト入り口）
 *   - ニュース一覧（アーカイブ）/ ニュース詳細
 *   - コラム一覧（アーカイブ）/ コラム詳細
 *   - コンタクトフォーム（固定ページ）
 *
 * 方針:
 *   1. すべての要素から余計なマージン・パディングを除去
 *   2. box-sizing: border-box をグローバルに適用
 *   3. フォント関連のリセットは継承ベースで統一
 *   4. HTML Living Standard で廃止・非推奨の要素は対象外
 *   5. WAI-ARIA・アクセシビリティに配慮したリセット
 * ============================================================ */


/* ------------------------------------------------------------
 * 1. Box Model — すべての要素を border-box に統一
 * ------------------------------------------------------------ */

*,
*::before,
*::after {
  box-sizing: border-box;
}


/* ------------------------------------------------------------
 * 2. Document Root
 * ------------------------------------------------------------ */

:where(html) {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  :where(html) {
    scroll-behavior: auto;
  }

  /*
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  */
}


/* ------------------------------------------------------------
 * 3. Body
 * ------------------------------------------------------------ */

:where(body) {
  margin: 0;
  min-height: 100dvh;
  line-height: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}


/* ------------------------------------------------------------
 * 4. Sectioning & Heading — 構造化コンテンツ
 *    header, footer, main, nav, aside, section, article,
 *    hgroup, search, h1–h6, address
 * ------------------------------------------------------------ */

:where(header, footer, main, nav, aside, section, article, hgroup, search) {
  display: block;
}

:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

:where(address) {
  font-style: inherit;
}


/* ------------------------------------------------------------
 * 5. Grouping Content — テキストブロック系
 *    p, blockquote, pre, figure, figcaption, hr,
 *    ol, ul, menu, dl, dt, dd
 * ------------------------------------------------------------ */

:where(p, blockquote, figure, figcaption, dl, dd) {
  margin: 0;
}

:where(pre) {
  margin: 0;
  font-family: ui-monospace, "SFMono-Regular", "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;
  font-size: inherit;
  overflow-x: auto;
}

:where(blockquote) {
  padding: 0;
}

:where(hr) {
  margin: 0;
  border: 0;
  border-top: 1px solid;
  color: inherit;
  height: 0;
}

:where(ol, ul, menu) {
  margin: 0;
  padding: 0;
  list-style: none;
}


/* ------------------------------------------------------------
 * 6. Text-level Semantics — インラインテキスト
 *    a, abbr, b, strong, em, i, small, s, u, code, kbd, samp,
 *    var, sub, sup, mark, time, data, ruby, bdi, bdo, span, br, wbr
 * ------------------------------------------------------------ */

:where(a) {
  color: inherit;
  text-decoration: inherit;
  background-color: transparent;
}

:where(b, strong) {
  font-weight: bolder;
}

:where(small) {
  font-size: 80%;
}

:where(code, kbd, samp) {
  font-family: ui-monospace, "SFMono-Regular", "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;
  font-size: 1em;
}

:where(sub, sup) {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

:where(sub) {
  bottom: -0.25em;
}

:where(sup) {
  top: -0.5em;
}

:where(abbr[title]) {
  text-decoration: underline dotted;
  cursor: help;
  border-bottom: none;
}

:where(mark) {
  background: transparent;
  color: inherit;
}


/* ------------------------------------------------------------
 * 7. Embedded Content — メディア系
 *    img, picture, video, audio, canvas, svg, iframe,
 *    object, embed, source
 * ------------------------------------------------------------ */

:where(img, picture, video, canvas, svg) {
  display: block;
  max-width: 100%;
}

:where(img, video) {
  height: auto;
}

:where(img) {
  border-style: none;
}

:where(svg) {
  overflow: visible;
}

:where(svg:not([fill])) {
  fill: currentColor;
}

:where(iframe) {
  border: 0;
}


/* ------------------------------------------------------------
 * 8. Tabular Data — テーブル
 *    table, caption, thead, tbody, tfoot, tr, th, td, colgroup, col
 * ------------------------------------------------------------ */

:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
  text-indent: 0;
}

:where(caption) {
  text-align: left;
}

:where(th) {
  font-weight: inherit;
  text-align: inherit;
}

:where(td, th) {
  padding: 0;
}


/* ------------------------------------------------------------
 * 9. Forms — フォーム要素（コンタクトフォーム対応）
 *    form, fieldset, legend, label, input, textarea, select,
 *    button, output, progress, meter, datalist, option, optgroup
 * ------------------------------------------------------------ */

:where(form) {
  margin: 0;
}

:where(fieldset) {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

:where(legend) {
  padding: 0;
  white-space: normal;
}

:where(label) {
  display: inline-block;
}

:where(button, input, select, textarea, optgroup) {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

:where(button, input) {
  overflow: visible;
}

:where(button, [type="button"], [type="reset"], [type="submit"]) {
  -webkit-appearance: button;
  appearance: button;
  cursor: pointer;
  background: transparent;
  border: 0;
}

:where(button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner) {
  border-style: none;
  padding: 0;
}

:where(select) {
  text-transform: none;
}

:where(textarea) {
  overflow: auto;
  resize: vertical;
}

:where([type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button) {
  height: auto;
}

:where([type="search"]) {
  -webkit-appearance: textfield;
  appearance: textfield;
  outline-offset: -2px;
}

:where([type="search"]::-webkit-search-decoration) {
  -webkit-appearance: none;
}

:where(::-webkit-file-upload-button) {
  -webkit-appearance: button;
  font: inherit;
}

:where(output) {
  display: inline-block;
}

:where(progress) {
  vertical-align: baseline;
}


/* ------------------------------------------------------------
 * 10. Interactive Elements — インタラクティブ要素
 *     details, summary, dialog
 * ------------------------------------------------------------ */

:where(details) {
  display: block;
}

:where(summary) {
  display: list-item;
  cursor: pointer;
}

:where(dialog) {
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  max-width: unset;
  max-height: unset;
}

:where(dialog::backdrop) {
  background: rgba(0, 0, 0, 0.5);
}


/* ------------------------------------------------------------
 * 11. Accessibility — フォーカス・非表示要素
 * ------------------------------------------------------------ */

:where([hidden]) {
  display: none !important;
}

:where(:focus-visible) {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

:where(:focus:not(:focus-visible)) {
  outline: none;
}


/* ------------------------------------------------------------
 * 12. WordPress 固有のリセット
 *     WP が出力するクラス・要素への対応
 * ------------------------------------------------------------ */

/* WordPress 画像キャプション */
:where(.wp-caption) {
  max-width: 100%;
}

/* WordPress 配置クラス */
:where(.alignnone,
.aligncenter,
.alignleft,
.alignright,
.alignwide,
.alignfull) {
  margin-left: 0;
  margin-right: 0;
}

:where(.aligncenter) {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* WordPress ギャラリー */
:where(.gallery) {
  margin: 0;
  padding: 0;
}

/* WordPress 管理バー表示時の調整 */
:where(html.wp-toolbar) {
  scroll-padding-top: 32px;
}

/* WordPress スクリーンリーダー用テキスト */
:where(.screen-reader-text) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

:where(.screen-reader-text:focus) {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
  background: #fff;
  color: #000;
  z-index: 100000;
}
