/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */

/* ボックスモデルとボーダーのリセット */
/* ============================================ */

*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
  min-width: 0;
}

/* ドキュメント */
/* ============================================ */

/**
 * 1. 全てのブラウザで行の高さを修正
 * 2. iOSで画面回転後のフォントサイズの自動調整を防止
 * 3. iOSでリンクの灰色オーバーレイを削除
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* セクション */
/* ============================================ */

/**
 * 全てのブラウザでマージンを削除
 */

body {
  margin: 0;
}

/**
 * IEでmain要素の表示を一貫させる
 */

main {
  display: block;
}

/* 垂直リズム */
/* ============================================ */

p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* 見出し */
/* ============================================ */

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

/* リスト（列挙） */
/* ============================================ */

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* リスト（定義） */
/* ============================================ */

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* グループ化コンテンツ */
/* ============================================ */

/**
 * 1. Firefoxでボックスサイズを修正
 * 2. EdgeとIEでオーバーフローを表示
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. 全てのブラウザでフォントサイズの継承とスケーリングを修正
 * 2. 全てのブラウザで奇数のemフォントサイズを修正
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* テキストレベルのセマンティクス */
/* ============================================ */

/**
 * IE10でアクティブなリンクの灰色背景を削除
 */

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Chrome57-で下部の境界線を削除
 * 2. Chrome、Edge、IE、Opera、Safariで正しいテキスト装飾を追加
 */

abbr[title] {
  text-decoration: underline dotted; /* 2 */
}

/**
 * Chrome、Edge、Safariで正しいフォントの太さを追加
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. 全てのブラウザでフォントサイズの継承とスケーリングを修正
 * 2. 全てのブラウザで奇数のemフォントサイズを修正
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * 全てのブラウザで正しいフォントサイズを追加
 */

small {
  font-size: 80%;
}

/**
 * 全てのブラウザでsubとsup要素が行の高さに影響を与えるのを防止
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* 置換コンテンツ */
/* ============================================ */

/**
 * 垂直方向の配置の問題を防止
 */

svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* フォーム */
/* ============================================ */

/**
 * フォームフィールドをスタイル可能にリセット
 * 1. 特にiOSでフォーム要素をスタイル可能に
 * 2. 親要素からtext-transformを継承
 */

button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none; /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit; /* 2 */
}

/**
 * クリック可能な要素のカーソルを修正
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
}

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
  cursor: default;
}

/**
 * Firefoxのアウトラインを改善し、入力要素とボタンのスタイルを統一
 */

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * パディングを削除
 */

option {
  padding: 0;
}

/**
 * 非表示にリセット
 */

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

/**
 * Chrome、Firefox、Operaで正しい垂直方向の配置を追加
 */

progress {
  vertical-align: baseline;
}

/**
 * IE10+でデフォルトの垂直スクロールバーを削除
 */

textarea {
  overflow: auto;
}

/**
 * Chromeでインクリメント・デクリメントボタンのカーソルスタイルを修正
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Safariでアウトラインスタイルを修正
 */

[type="search"] {
  outline-offset: -2px; /* 1 */
}

/**
 * macOS上のChromeとSafariで内部パディングを削除
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. iOSとSafariでクリック可能な種類のスタイリング不能を修正
 * 2. フォントの継承を修正
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Firefoxの表示を修正
 */
[type="number"] {
  -moz-appearance: textfield;
}

/**
 * クリック可能なラベル
 */

label[for] {
  cursor: pointer;
}

/* インタラクティブ */
/* ============================================ */

/*
 * Edge、IE10+、Firefoxで正しい表示を追加
 */

details {
  display: block;
}

/*
 * 全てのブラウザで正しい表示を追加
 */

summary {
  display: list-item;
}

/*
 * 編集可能なコンテンツのアウトラインを削除
 */

[contenteditable]:focus {
  outline: auto;
}

/* テーブル */
/* ============================================ */

/**
1. ChromeとSafariでテーブルの境界線の色の継承を修正
*/

table {
  border-color: inherit; /* 1 */
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: bold;
}

/*
 * 以下、オリジナルのリセット項目
 * ============================================
 */

:root {
  --font-family-base: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --color-background-base: white;
  --breakpoint-sm: 375;
  --breakpoint-lg: 1024;
  --font-size-base: 16;
  --rem: 0.0625rem;
  --color-gray-dark: #ccc;
}

:where(:root) {
  /* テキストの折り返し設定 */
  overflow-wrap: anywhere; /* 収まらない場合に折り返す */
  word-break: normal; /* 単語の分割はデフォルトに依存 */
  line-break: strict; /* 禁則処理を厳格に適用 */
  hyphens: auto; /* ハイフンで単語を分割 */

  /* フォントサイズの調整 */
  text-size-adjust: 100%; /* フォントサイズをユーザーの設定に合わせる */
  -webkit-text-size-adjust: 100%; /* フォントサイズをユーザーの設定に合わせる */

  /* スクロールバーとレイアウト */
  scrollbar-gutter: stable; /* スクロールバーのスペースを確保 */
  line-height: 1.5; /* 行の高さを設定 */
  overflow-x: clip; /* 横スクロールを禁止 */

  /* タップ時のハイライト無効化 */
  -webkit-tap-highlight-color: transparent;

  /* 基本スタイル */
  background-color: var(--color-background-base);
  font-family: var(--font-family-base);
  color: var(--color-black);

}

/* body要素の基本スタイル */
:where(body) {
  min-block-size: 100svb; /* bodyの高さを画面高さに合わせる */
}

/* インタラクティブ要素のタッチ操作最適化 */
:where(a, area, button, [role="button"], input:not([type="range"]), label, select, summary, textarea) {
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

/*
 * リンクスタイル
 * ============================================
 */
:where(a) {
  color: inherit; /* 親要素の色を継承 */
  text-decoration: none; /* 下線を削除 */
  cursor: pointer; /* カーソルをポインターに */
  opacity: unset; /* 透明度をリセット */
}
/* ホバー可能なデバイスでの電話番号リンクの無効化 */
@media (any-hover: hover) {
  :where(a[href^="tel:"]) {
    pointer-events: none;
  }
}

/*
 * 画像スタイル
 * ============================================
 */
:where(img) {
  max-width: 100%; /* 親要素に収まるように最適化 */
  width: 100%;
  height: auto; /* アスペクト比を維持 */
  vertical-align: bottom; /* 画像下の余白を削除 */
}

/*
 * ダイアログスタイル
 * ============================================
 */
:where(dialog) {
  /* ダイアログのデフォルトスタイルをリセット */
  width: unset;
  max-width: unset;
  height: unset;
  max-height: unset;
  padding: unset;
  color: unset;
  background-color: unset;
  border: unset;
  overflow: unset;
}

/* ダイアログ表示時のスクロール制御 */
:root:has(dialog[open]) {
  overflow: hidden; /* ダイアログが開いている間はスクロールを禁止 */
}

/* ダイアログ背景のスタイル */
::backdrop {
  background-color: unset; /* ダイアログの背景色をリセット */
}

/*
 * フォームスタイル
 * ============================================
 */
:where(input:not([type="checkbox"]):not([type="radio"]), textarea) {
  border: 1px solid var(--color-gray-dark); /* 入力フィールドの境界線 */
}

/* テキストエリアの基本設定 */
textarea {
  field-sizing: content; /* コンテンツに基づくサイズ調整 */
  min-height: 4lh; /* 最小高さを4行分に設定 */
}

/*
 * リキッドレイアウトの設定
 * ============================================
 */
body {
  /* レスポンシブフォントサイズ設定 */
  font-size: calc(var(--font-size-base) / var(--breakpoint-sm) * 100svi);

  /* ブレイクポイントごとのフォントサイズ調整 */
  @media (min-width: 375px) {
    font-size: unset;
  }
  @media (min-width: 769px) and (max-width: 1024px) {
    font-size: calc(var(--font-size-base) / var(--breakpoint-lg) * 100svi);
  }
  @media (min-width: 1025px) {
    font-size: unset;
  }
}