/* デフォルトHTML要素のスタイル */

html { font-size: 16px; }

body {
	font-family: var(--font-base);
	font-size: var(--fs-base);
	color: var(--c-fg);
	background: var(--c-bg);
	line-height: var(--lh-base);
}

/* リンク */
a {
	color: var(--c-primary);
	transition: color var(--dur-fast) var(--ease);
}
a:hover { color: var(--c-primary-dark); }

/* 見出し */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	color: var(--c-fg);
	line-height: var(--lh-snug);
}
h1 { font-size: var(--fs-3xl); }
h2 { font-size: var(--fs-2xl); }
h3 { font-size: var(--fs-xl); }
h4 { font-size: var(--fs-lg); }

@media (max-width: 640px) {
	h1 { font-size: var(--fs-2xl); }
	h2 { font-size: var(--fs-xl); }
	h3 { font-size: var(--fs-lg); }
}

/* 段落・本文 */
p { margin-block-end: 1em; }
p:last-child { margin-block-end: 0; }

/* 強調 */
strong { font-weight: var(--fw-bold); }

/* 区切り */
hr {
	border: 0;
	border-top: 1px solid var(--c-border);
	margin: var(--sp-6) 0;
}

/* ブロック内のリスト */
.entry-content ul,
.entry-content ol {
	margin: 0 0 1em 1.5em;
	padding-left: var(--sp-2);
}
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li { margin-block-end: .25em; }

/* テーブル */
.entry-content table {
	width: 100%;
	margin: var(--sp-5) 0;
	border: 1px solid var(--c-border);
}
.entry-content th, .entry-content td {
	padding: var(--sp-3);
	border: 1px solid var(--c-border);
	text-align: left;
}
.entry-content th {
	background: var(--c-bg-section);
	font-weight: var(--fw-bold);
}

/* 画像（コンテンツ） */
.entry-content img { border-radius: var(--r-md); }

/* 引用 */
blockquote {
	margin: var(--sp-5) 0;
	padding: var(--sp-3) var(--sp-5);
	border-left: 4px solid var(--c-primary-light);
	background: var(--c-primary-soft);
	color: var(--c-fg-muted);
}

/* コード */
code, pre {
	font-family: ui-monospace, SFMono-Regular, "JetBrains Mono", monospace;
	background: var(--c-bg-section);
	border-radius: var(--r-sm);
}
code { padding: 1px 6px; font-size: .9em; }
pre { padding: var(--sp-3); overflow-x: auto; margin: var(--sp-5) 0; }
pre code { background: transparent; padding: 0; }

/* 選択 */
::selection {
	background: var(--c-accent);
	color: var(--c-fg);
}

/* スクリーンリーダー専用 */
.screen-reader-text,
.sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap;
	border: 0;
}

/* スキップリンク（キーボードフォーカス時のみ表示） */
.meetup-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	padding: 0;
	background: var(--c-fg);
	color: #fff;
	font-weight: var(--fw-medium);
	border-radius: var(--r-md);
	box-shadow: var(--shadow-md);
	transition: none;
}
.meetup-skip-link:focus {
	left: var(--sp-3);
	top: var(--sp-3);
	padding: var(--sp-3) var(--sp-4);
	color: #fff;
	outline: 2px solid var(--c-accent);
	outline-offset: 2px;
}

/* WP コア整列 */
.alignwide  { max-width: var(--container-wide); margin-left: auto; margin-right: auto; }
.alignfull  { width: 100%; max-width: 100%; }
.aligncenter { margin-left: auto; margin-right: auto; }
.alignleft  { float: left; margin-right: var(--sp-4); }
.alignright { float: right; margin-left: var(--sp-4); }
