/* =============================================================
   SWELLが受け持っていた土台（上野の単体テーマ用・2026-10-29）
   値は京都（SWELL）の実ページから計算済みスタイルを採ったもの。
   見た目の本体は style.css（他院と同じ）。ここは「SWELLが無いと欠けるもの」だけを置く。
============================================================= */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: #292a2c;
  background: #fff;
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 599px) {
  body { font-size: 3.6vw; }
}
#body_wrap { position: relative; overflow-x: clip; }
img, video, iframe { max-width: 100%; }
img { height: auto; vertical-align: middle; border: none; }
a { color: #39a0ff; }
figure { margin: 0; }
h1, h2, h3, h4, h5, h6 { line-height: 1.5; margin: 0; }
p { margin: 0; }
button { font-family: inherit; }
.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.u-obf-cover { object-fit: cover; width: 100%; height: 100%; }
.u-mt-40 { margin-top: 40px; }

/* ---------- レイアウト ---------- */
.l-container {
  max-width: 1296px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 48px;
  padding-right: 48px;
}
.l-content { margin-bottom: 6em; }
.l-mainContent { max-width: 900px; margin-left: auto; margin-right: auto; }
@media (max-width: 959px) {
  .l-container { padding-left: 4vw; padding-right: 4vw; }
}

/* ---------- 本文 ---------- */
.post_content { line-height: 1.8; padding: 0 16px; }
.post_content > * { margin-top: 0; margin-bottom: 2em; }
.post_content > :last-child { margin-bottom: 0; }
.post_content h2 {
  font-size: 1.4em; margin: 3.5em 0 1.5em; padding: .6em 0 .6em 1em;
  border-left: 3px solid #F64850; background: #F8F8F8;
}
.post_content h3 {
  font-size: 1.2em; margin: 3em 0 1.2em; padding: 0 0 .5em;
  border-bottom: 1px solid #E8E8E8;
}
.post_content h4 { font-size: 1.05em; margin: 2.5em 0 1em; }
.post_content ul, .post_content ol { padding-left: 1.5em; }
.post_content li { margin-bottom: .4em; }
.post_content table { width: 100%; border-collapse: collapse; }
.post_content th, .post_content td { border: 1px solid #E8E8E8; padding: .6em .8em; text-align: left; }
.post_content th { background: #F8F8F8; }
.post_content blockquote { margin-left: 0; margin-right: 0; padding: 1em 1.5em; background: #F8F8F8; border-left: 3px solid #E8E8E8; }
.post_content .wp-block-image img { height: auto; }
.post_content .wp-block-image figcaption { font-size: .85em; color: #888; text-align: center; margin-top: .5em; }
.post_content .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
@media (max-width: 599px) {
  .post_content { font-size: 4vw; padding: 0; }
}

/* ---------- ページタイトルの帯（本文にヒーローが無いページだけ出る） ---------- */
.l-topTitleArea {
  position: relative; overflow: hidden;
  min-height: 10em; padding: 3em 0;
  display: flex; align-items: center;
  color: #fff; margin-bottom: 0;
}
.l-topTitleArea__img { position: absolute; inset: 0; z-index: 0; }
.l-topTitleArea.c-filterLayer::before {
  content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .45);
}
.l-topTitleArea__body { position: relative; z-index: 2; width: 100%; text-align: center; }
.c-pageTitle { font-size: 1.6em; font-weight: 700; letter-spacing: .04em; color: #fff; margin: 0; }

/* ---------- パンくず（見た目は style.css の OMT-BREADCRUMB-CSS） ---------- */
.p-breadcrumb__list { list-style: none; margin: 0; padding: 0; }

/* ---------- 記事 ---------- */
.p-articleThumb { margin: 2em 0; }
.p-articleThumb img { width: 100%; height: auto; }
.single-post #content { margin-top: 2em; }

/* ---------- 記事一覧（コラムの見た目は style.css の OMT-COLUMN-CSS） ---------- */
.p-postList { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 24px; }
.p-postList__item { width: calc((100% - 48px) / 3); }
.p-postList__link { display: block; color: inherit; text-decoration: none; }
.p-postList__thumb figure { aspect-ratio: 16 / 9; overflow: hidden; background: #F8F8F8; }
.p-postList__title { font-size: 15px; margin: 8px 0; }
.p-postList__cat { display: inline-block; }
@media (max-width: 768px) {
  .p-postList__item { width: 100%; }
}
.c-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 40px; }
.c-pagination a, .c-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 8px; text-decoration: none;
}

/* ---------- 404 ---------- */
.omt-404 { text-align: center; padding: 3em 0; }
