/* 筑波音響 — サイトの骨。**3サイトで共有する。**
 *
 * ここには色を1つも書かない。色とフォントは `_skin.css` が var で与える。
 * 骨と皮を分けたのは、ブランドサイト (apex) を明るい紙、製品サイト (akadem) を
 * パネル由来の暗色にしたいが、**組版まで別物にはしたくない**から。
 * 親子であることは配色ではなく、余白・字送り・罫の引き方で見せる。
 *
 * 【色を直書きしないこと】
 *   ここに 1つでも #hex を書くと、その場所だけ皮が効かなくなる。
 *   apex を明るくしたときに、そこだけ黒いまま残って気付かない。
 *   新しい色が要るときは `_skin.css` にトークンを足すこと。
 *
 * 皮が必ず与えるトークンは _skin.css の冒頭に一覧がある。 */

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 16px/1.75 var(--sans);
}
.wrap { max-width: 820px; margin: 0 auto; padding: 0 24px 96px; }

header.masthead {
  border-bottom: 1px solid var(--rule);
  background: linear-gradient(180deg, var(--bg-raise), var(--bg));
  margin-bottom: 48px;
}
header.masthead .wrap { padding-top: 56px; padding-bottom: 40px; }
.brand {
  font-size: 12px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--ink-dim); margin: 0 0 14px;
}
h1 { font-size: 34px; line-height: 1.2; margin: 0 0 10px; letter-spacing: .02em; }
h1 .model { color: var(--accent); }
.tagline { margin: 0; color: var(--ink-dim); }

h2 {
  font-size: 21px; margin: 56px 0 16px; padding-bottom: 8px;
  border-bottom: 1px solid var(--rule); letter-spacing: .01em;
}
h3 { font-size: 16px; margin: 32px 0 8px; color: var(--accent); }
p, li { margin: 0 0 12px; }
ul, ol { padding-left: 22px; }
a { color: var(--accent); text-decoration-color: var(--accent-soft); }
a:hover { color: var(--accent-hot); }
strong { color: var(--ink-strong); font-weight: 600; }

code, kbd { font-family: var(--mono); font-size: .88em; }
code { background: var(--code-bg); padding: 1px 5px; border-radius: 3px; color: var(--accent); }
pre {
  background: var(--pre-bg); border: 1px solid var(--rule); border-radius: 6px;
  padding: 14px 16px; overflow-x: auto; margin: 0 0 16px;
}
pre code { background: none; padding: 0; color: var(--ink); }

.tablewrap { overflow-x: auto; margin: 0 0 20px; }
table { border-collapse: collapse; width: 100%; font-size: 14px; }
th, td { text-align: left; padding: 7px 12px 7px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
th { color: var(--ink-dim); font-weight: 500; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
table.presets td:nth-child(n+4):nth-child(-n+7) { font-family: var(--mono); text-align: right; padding-right: 14px; white-space: nowrap; }
table.presets td:first-child { font-family: var(--mono); color: var(--ink-dim); }

.note {
  border-left: 3px solid var(--note-edge); background: var(--note-bg);
  padding: 12px 18px; margin: 0 0 20px; border-radius: 0 4px 4px 0;
}
.note.warn { border-left-color: var(--warn-edge); background: var(--warn-bg); }
.note :last-child { margin-bottom: 0; }

footer {
  border-top: 1px solid var(--rule); margin-top: 72px; padding-top: 24px;
  color: var(--ink-dim); font-size: 13px;
}
nav.top { margin: 0 0 4px; font-size: 13px; }
nav.top a { margin-right: 18px; }
/* 言語の切り替え。右端に離して置く — 並びの一部ではなく、ページ全体の属性なので */
nav.top a.lang { float: right; margin-right: 0; }

@media (max-width: 560px) {
  h1 { font-size: 26px; }
  .wrap { padding: 0 18px 64px; }
}
