/* =========================================================
   Reset + Normalize + FoxCSS Utility/Grid
   ========================================================= */

/* -------------------- Reset/Normalize 基本共通化 -------------------- */

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

/* HTML基本 */
html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

/* body */
body {
  margin: 0;
  line-height: 1;
  font-size: 100%;
  background-color: #fff !important; /* ページ全体を白に固定 */
}

/* 要素リセット */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
}

/* ブロック要素定義（古ブラウザ対策） */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}

/* リスト */
ol, ul {
  list-style: none;
}

/* blockquote/q */
blockquote, q { quotes: none; }
blockquote::before, blockquote::after,
q::before, q::after { content: ''; }

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td, th { padding: 0; }

/* 画像・メディア */
img, video, iframe, embed, object {
  max-width: 100%;
  height: auto;
  border: 0;
}

/* a */
a { background-color: transparent; }
a:hover, a:active { outline: 0; }

/* フォーム */
button, input, select, textarea {
  font: inherit;
  color: inherit;
  margin: 0;
}
input[type="checkbox"],
input[type="radio"] { padding: 0; }
textarea { overflow: auto; }

/* abbr */
abbr[title] { border-bottom: 1px dotted; cursor: help; }

/* 組版 */
code, kbd, pre, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* -------------------- Utility Class -------------------- */

.fx-txt-left   { text-align: left; }
.fx-txt-right  { text-align: right; }
.fx-txt-center { text-align: center; }

.fx-ellip {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fx-left  { float: left; }
.fx-right { float: right; }
.fx-center { margin: auto; }

.fx-clear { clear: both; }

.fx-inline  { display: inline; }
.fx-inlineb { display: inline-block; }

.fx-valign { vertical-align: middle; }

.fx-clearfix::before,
.fx-clearfix::after {
  content: "";
  display: table;
}
.fx-clearfix::after { clear: both; }

/* -------------------- Grid System (FoxCSS) -------------------- */

.fx-row {
  margin: -15px;
  display: flex;
  flex-wrap: wrap;
}
.fx-row + .fx-row { margin-top: 0; }

.fx-row-start-xs   { justify-content:flex-start; }
.fx-row-center-xs  { justify-content:center; }
.fx-row-end-xs     { justify-content:flex-end; }
.fx-row-between-xs { justify-content:space-between; }
.fx-row-around-xs  { justify-content:space-around; }
.fx-row-reverse-xs { flex-direction:row-reverse; }

[class*="fx-col"] {
  margin-top: 15px;
  padding: 0 15px;
  flex-grow: 1;
}

/* 幅指定（サイズ別は元のまま残す）*/
.fx-col-10-xs { flex-basis:10%; max-width:10%; }
.fx-col-20-xs { flex-basis:20%; max-width:20%; }
.fx-col-25-xs { flex-basis:25%; max-width:25%; }
.fx-col-30-xs { flex-basis:30%; max-width:30%; }
.fx-col-33-xs { flex-basis:33.3333%; max-width:33.3333%; }
.fx-col-40-xs { flex-basis:40%; max-width:40%; }
.fx-col-50-xs { flex-basis:50%; max-width:50%; }
.fx-col-60-xs { flex-basis:60%; max-width:60%; }
.fx-col-66-xs { flex-basis:66.6666%; max-width:66.6666%; }
.fx-col-70-xs { flex-basis:70%; max-width:70%; }
.fx-col-75-xs { flex-basis:75%; max-width:75%; }
.fx-col-80-xs { flex-basis:80%; max-width:80%; }
.fx-col-90-xs { flex-basis:90%; max-width:90%; }
.fx-col-100-xs{ flex-basis:100%; max-width:100%; }

/* -------------------- fieldset 修正 -------------------- */
fieldset {
  border: 1px solid #c0c0c0;        /* 枠線 */
  padding: 0.35em 0.625em 0.75em;
  margin: 0 2px;
  background-color: #fff !important; /* 白背景を強制 */
}

legend {
  background-color: #fff !important;  /* legendも白背景 */
  padding: 0 0.25em;                  /* 余白調整 */
}
