/* ==========================================================
   Ohana v2（2026-10 作り直し）
   決まりごとは ~/ohana-redesign/DESIGN.md。色・形を足すときはDESIGN.mdから
   ========================================================== */
:root {
  --ink: #2b2420;
  --ink-sub: #6f645c;
  --line: #ece3d9;
  --paper: #ffffff;
  --paper-warm: #fbf6ef;
  --brand: #d9603b;
  --brand-dark: #b84a28;
  --brand-pale: #fdeee7;
  --yellow: #f5c34a;
  --logo: #c85a3a;      /* ロゴだけの色（もともとのohanaのテラコッタ）。ボタンのオレンジと分ける */
  --f-round: 'Zen Maru Gothic', 'Noto Sans JP', sans-serif;
  --f-body: 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --wrap: 1120px;

  /* 旧ページの色も新しい色に寄せる（作り直すまでの橋渡し） */
  --terracotta: var(--brand);
  --terracotta-light: #e27c5c;
  --terracotta-pale: var(--brand-pale);
  --orange-cta: var(--brand);
  --dark: var(--ink);
  --text: var(--ink);
  --text-light: var(--ink-sub);
  --border: var(--line);
  --bg-alt: var(--paper-warm);
  --cream: var(--paper-warm);
  --font-heading: var(--f-round);
}

body {
  font-family: var(--f-body);
  color: var(--ink);
  background: var(--paper);
  letter-spacing: .04em;
}
body.oh-menu-open { overflow: hidden; }
.oh-sp { display: none; }
@media (max-width: 640px) { .oh-sp { display: inline; } }

/* ---------- 共通部品 ---------- */
.oh-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.oh-sec { padding: 112px 0; background: var(--paper); }
.oh-sec--warm { background: var(--paper-warm); }
@media (max-width: 768px) { .oh-sec { padding: 72px 0; } .oh-wrap { padding: 0 20px; } }

.oh-h2 {
  font-family: var(--f-round);
  font-weight: 700;
  font-size: 30px;
  line-height: 1.55;
  letter-spacing: .06em;
  text-align: center;
  margin: 0;
  color: var(--ink);
}
.oh-h2--left { text-align: left; }
@media (max-width: 768px) { .oh-h2 { font-size: 23px; } }

.oh-head { text-align: center; margin-bottom: 48px; }
.oh-head .oh-doodle { color: var(--brand); display: block; margin: 0 auto 10px; }
.oh-head__lead { margin: 14px 0 0; color: var(--ink-sub); font-size: 15px; }
.oh-kicker {
  font-family: var(--f-round);
  font-weight: 700;
  font-size: 15px;
  color: var(--brand-dark);
  margin: 0 0 12px;
  display: flex; align-items: center; gap: 10px;
}
.oh-kicker::before { content: ""; width: 22px; height: 2px; background: var(--brand); border-radius: 2px; }

.oh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--f-round); font-weight: 700; font-size: 16px; letter-spacing: .08em;
  text-decoration: none; line-height: 1;
  padding: 18px 34px; border-radius: 999px;
  transition: background-color .2s, color .2s, transform .2s;
}
.oh-btn--main { background: var(--brand); color: #fff; }
.oh-btn--main:hover { background: var(--brand-dark); color: #fff; transform: translateY(-1px); }
.oh-btn--line { background: #fff; color: var(--brand-dark); border: 2px solid var(--brand); border-radius: 6px; padding: 16px 28px; }
.oh-btn--line:hover { background: var(--brand-pale); color: var(--brand-dark); }
.oh-btn--sm { padding: 12px 22px; font-size: 14px; }

.oh-link {
  font-family: var(--f-round); font-weight: 700; font-size: 15px;
  color: var(--brand-dark); text-decoration: none;
  border-bottom: 1.5px solid currentColor; padding-bottom: 2px;
}
.oh-link:hover { color: var(--brand); }
.oh-link span { display: inline-block; transition: transform .2s; }
.oh-link:hover span { transform: translateX(3px); }

/* ---------- ヘッダー ---------- */
.oh-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  transition: background-color .3s, border-color .3s;
}
.oh-header__inner { max-width: 1280px; margin: 0 auto; padding: 0 28px; height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.oh-logo { display: inline-flex; flex-direction: column; text-decoration: none; color: var(--brand); line-height: 1; }
.oh-logo__name { font-family: var(--f-round); font-weight: 700; font-size: 28px; letter-spacing: .02em; }
.oh-logo__sub { font-size: 11px; color: var(--ink-sub); margin-top: 6px; letter-spacing: .12em; }
.oh-nav { display: flex; align-items: center; gap: 32px; }
.oh-nav__list { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.oh-nav__list a { color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 500; }
.oh-nav__list a:hover { color: var(--brand-dark); }
.oh-menu-btn { display: none; }

/* トップだけ：写真の上に透明で重ねる */
.home .oh-header--over { position: fixed; left: 0; right: 0; background: transparent; border-color: transparent; }
.home .oh-header--over .oh-logo,
.home .oh-header--over .oh-nav__list a { color: #fff; }
.home .oh-header--over .oh-logo__sub { color: rgba(255,255,255,.85); }
.home .oh-header--over.is-solid { background: rgba(255,255,255,.97); border-color: var(--line); }
.home .oh-header--over.is-solid .oh-logo { color: var(--brand); }
.home .oh-header--over.is-solid .oh-logo__sub { color: var(--ink-sub); }
.home .oh-header--over.is-solid .oh-nav__list a { color: var(--ink); }

@media (max-width: 960px) {
  .oh-nav { display: none; }
  .oh-header__inner { height: 64px; padding: 0 20px; }
  .oh-logo__name { font-size: 24px; }
  .oh-menu-btn {
    display: flex; flex-direction: column; justify-content: center; gap: 7px;
    width: 44px; height: 44px; padding: 0 10px; background: none; border: 0; cursor: pointer;
  }
  .oh-menu-btn span { display: block; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s; }
  .home .oh-header--over:not(.is-solid) .oh-menu-btn span { background: #fff; }
  .oh-menu-btn[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .oh-menu-btn[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
}
.oh-menu { position: fixed; inset: 64px 0 0; z-index: 99; background: #fff; overflow-y: auto; padding: 16px 20px 40px; }
.oh-menu[hidden] { display: none; }
.oh-menu ul { list-style: none; margin: 0 0 28px; padding: 0; }
.oh-menu li a { display: block; padding: 16px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-family: var(--f-round); font-weight: 700; font-size: 17px; }
.oh-menu .oh-btn { width: 100%; }

/* ---------- ファーストビュー ---------- */
.oh-hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; }
.oh-hero__photo {
  position: absolute; inset: 0;
  background: url('/wp-content/uploads/2026/04/cute-kitty-sitting-by-windowlooking-up_compressed.webp') 62% 30% / cover no-repeat;
}
.oh-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,22,16,.55) 0%, rgba(30,22,16,.18) 38%, rgba(30,22,16,0) 60%), linear-gradient(to bottom, rgba(30,22,16,.28), rgba(30,22,16,0) 22%); }
.oh-hero__inner {
  position: relative; width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 28px 120px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 40px;
}
.oh-hero__place { font-family: var(--f-round); font-weight: 700; font-size: 15px; margin: 0 0 16px; letter-spacing: .14em; }
.oh-hero__title { font-family: var(--f-round); font-weight: 700; font-size: clamp(32px, 4.2vw, 54px); line-height: 1.45; letter-spacing: .06em; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.oh-support-card {
  flex: 0 0 340px; background: #fff; color: var(--ink); border-radius: 10px; padding: 28px 28px 24px;
  box-shadow: 0 8px 24px rgba(43,36,32,.12);
  display: flex; flex-direction: column; align-items: flex-start; gap: 18px;
}
.oh-support-card__lead { margin: 0; font-family: var(--f-round); font-weight: 700; font-size: 17px; line-height: 1.7; }
.oh-support-card .oh-btn--main { width: 100%; }
.oh-hero__news {
  position: absolute; left: 0; bottom: 0; z-index: 2;
  display: flex; align-items: center; gap: 16px;
  max-width: min(760px, 100%); padding: 18px 28px; background: #fff; color: var(--ink); text-decoration: none; font-size: 14px;
  border-top-right-radius: 10px;
}
.oh-hero__news time { font-family: var(--f-round); font-weight: 700; color: var(--ink-sub); }
.oh-hero__news-tag, .oh-posts__tag { flex: none; font-size: 12px; font-weight: 700; color: var(--brand-dark); background: var(--brand-pale); padding: 3px 10px; border-radius: 4px; }
.oh-hero__news-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oh-hero__news:hover .oh-hero__news-title { color: var(--brand-dark); }

@media (max-width: 860px) {
  .oh-hero { min-height: 0; display: block; color: var(--ink); }
  .oh-hero__photo { position: relative; height: 78svh; min-height: 460px; background-position: 70% 0%; }
  .oh-hero__inner { position: static; display: block; padding: 0; }
  .oh-hero__copy { position: absolute; left: 20px; right: 20px; top: calc(78svh - 210px); color: #fff; }
  .oh-hero__title { font-size: 29px; }
  .oh-support-card { margin: 0; border-radius: 0; box-shadow: none; padding: 28px 20px 8px; }
  .oh-hero__news { position: static; max-width: none; margin: 16px 20px 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; }
}
@media (max-width: 860px) and (max-height: 600px) { .oh-hero__copy { top: 300px; } }

/* ---------- Ohanaのいま ---------- */
.oh-now { display: grid; grid-template-columns: 1.05fr 1fr; gap: 72px; align-items: center; }
.oh-now__photo { margin: 0; }
.oh-now__photo img, .oh-use__photo img, .oh-record__photo img { width: 100%; height: auto; display: block; border-radius: 6px; }
.oh-now__text p { margin: 22px 0 0; line-height: 2; }
.oh-now__text strong { font-weight: 700; background: linear-gradient(transparent 62%, var(--brand-pale) 62%); }
@media (max-width: 860px) { .oh-now { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- 支援の方法 ---------- */
.oh-ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.oh-way img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }
.oh-way h3 { font-family: var(--f-round); font-weight: 700; font-size: 20px; margin: 22px 0 10px; }
.oh-way p { margin: 0 0 18px; font-size: 15px; line-height: 1.9; color: var(--ink-sub); }
@media (max-width: 860px) { .oh-ways { grid-template-columns: 1fr; gap: 44px; } }

/* ---------- 使いみち ---------- */
.oh-use { display: grid; grid-template-columns: 1.2fr 1fr; gap: 72px; align-items: center; }
.oh-use__list { list-style: none; margin: 32px 0 0; padding: 0; border-top: 1px solid var(--line); }
.oh-use__list li { display: flex; align-items: baseline; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.oh-use__list b { flex: 0 0 150px; font-family: var(--f-round); font-weight: 700; font-size: 34px; color: var(--brand); letter-spacing: .02em; }
.oh-use__list b small { font-size: 16px; margin-left: 2px; }
.oh-use__list span { font-weight: 500; }
.oh-use__note { margin: 20px 0 32px; font-size: 14px; color: var(--ink-sub); }
.oh-use__photo { margin: 0; max-width: 440px; justify-self: end; }
@media (max-width: 860px) {
  .oh-use { grid-template-columns: 1fr; gap: 40px; }
  .oh-use__photo { justify-self: stretch; max-width: none; order: -1; }
  .oh-use__photo img { aspect-ratio: 4 / 3; object-fit: cover; }
  .oh-use__list b { flex-basis: 118px; font-size: 28px; }
}

/* ---------- 数字 ---------- */
.oh-record { display: grid; grid-template-columns: 420px 1fr; gap: 80px; align-items: center; }
.oh-record__row { display: flex; align-items: center; gap: 56px; margin: 36px 0 32px; }
.oh-record__photo { margin: 0; max-width: 420px; }
.oh-record__photo figcaption { margin-top: 14px; font-size: 13px; color: var(--ink-sub); line-height: 1.8; }
.oh-stamp {
  display: inline-flex; flex-direction: column; align-items: center;
  margin: 0; padding: 18px 32px 16px; flex: none;
  border: 3px solid var(--brand); border-radius: 10px; background: #fff;
  color: var(--brand-dark); transform: rotate(-3deg);
}
.oh-stamp__label { font-family: var(--f-round); font-weight: 700; font-size: 14px; }
.oh-stamp__num { font-family: var(--f-round); font-weight: 700; font-size: 64px; line-height: 1.1; color: var(--brand); }
.oh-stamp__num small { font-size: 22px; margin-left: 4px; }
.oh-stamp__date { font-size: 12px; border-top: 1.5px dashed var(--brand); padding-top: 6px; margin-top: 4px; }
.oh-record__nums { display: flex; flex-direction: column; gap: 18px; margin: 0; }
.oh-record__nums dt { font-size: 13px; color: var(--ink-sub); }
.oh-record__nums dd { margin: 4px 0 0; font-family: var(--f-round); font-weight: 700; font-size: 36px; color: var(--ink); }
.oh-record__nums dd small { font-size: 15px; margin-left: 3px; }
@media (max-width: 860px) {
  .oh-record { grid-template-columns: 1fr; gap: 40px; }
  .oh-record__row { gap: 32px; }
  .oh-record__photo { max-width: none; }
  .oh-record__photo img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 40%; }
}

/* ---------- 家族になった猫たち ---------- */
.oh-adopted { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.oh-adopted li { position: relative; }
.oh-adopted img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; display: block; }
.oh-iwai {
  position: absolute; top: -8px; right: -6px;
  width: 34px; height: 34px; display: grid; place-items: center;
  background: var(--yellow); color: var(--ink); border-radius: 4px;
  font-family: var(--f-round); font-weight: 700; font-size: 15px; transform: rotate(-8deg);
}
@media (max-width: 768px) { .oh-adopted { grid-template-columns: repeat(2, 1fr); gap: 14px; } .oh-adopted li:nth-child(n+7) { display: none; } }

/* ---------- 家族を待っている猫 ---------- */
.oh-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.oh-cats a { color: var(--ink); text-decoration: none; }
.oh-cats img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; display: block; }
.oh-cats__name { font-family: var(--f-round); font-weight: 700; font-size: 18px; color: var(--brand-dark); margin: 14px 0 2px; }
.oh-cats__meta { margin: 0; font-size: 13px; color: var(--ink-sub); }
@media (max-width: 768px) { .oh-cats { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* ---------- お知らせ・コラム ---------- */
.oh-posts { max-width: 880px; }
.oh-posts ul { list-style: none; margin: 28px 0 24px; padding: 0; border-top: 1px solid var(--line); }
.oh-posts li a { display: flex; align-items: center; gap: 18px; padding: 22px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.oh-posts li a:hover .oh-posts__title { color: var(--brand-dark); }
.oh-posts time { font-family: var(--f-round); font-weight: 700; color: var(--ink-sub); font-size: 14px; flex: none; }
.oh-posts__more { display: flex; gap: 28px; flex-wrap: wrap; margin: 0; }
@media (max-width: 640px) { .oh-posts li a { flex-wrap: wrap; gap: 8px 12px; } .oh-posts__title { flex-basis: 100%; } }

/* ---------- 最後のお願い ---------- */
.oh-closing { background: var(--brand-pale); padding: 96px 0; text-align: center; }
.oh-closing .oh-doodle { color: var(--brand); margin-bottom: 10px; }
.oh-closing p { margin: 18px 0 32px; line-height: 1.9; }
.oh-closing__btns { display: flex; justify-content: center; align-items: center; gap: 16px; flex-wrap: wrap; }
@media (max-width: 640px) { .oh-closing { padding: 72px 0; } .oh-closing__btns .oh-btn { width: 100%; } }

/* ---------- フッター ---------- */
.oh-footer { background: var(--ink); color: rgba(255,255,255,.86); font-size: 14px; }
.oh-footer a { color: #fff; text-decoration: none; }
.oh-footer a:hover { color: var(--yellow); }
.oh-footer__inner { max-width: var(--wrap); margin: 0 auto; padding: 72px 24px 48px; display: grid; grid-template-columns: 1.4fr 1.2fr 1fr 1.1fr; gap: 40px; }
.oh-logo--footer { color: #fff; }
.oh-logo--footer .oh-logo__sub { color: rgba(255,255,255,.7); }
.oh-footer__lead { line-height: 1.9; margin: 20px 0; font-size: 13px; }
.oh-footer__ig { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; border-bottom: 1px solid rgba(255,255,255,.4); padding-bottom: 2px; }
.oh-footer__title { font-family: var(--f-round); font-weight: 700; font-size: 15px; color: #fff; margin: 0 0 16px; }
.oh-footer__bank dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; }
.oh-footer__bank dt { color: rgba(255,255,255,.6); }
.oh-footer__bank dd { margin: 0; }
.oh-footer__note { font-size: 12px; color: rgba(255,255,255,.65); margin: 14px 0 0; line-height: 1.8; }
.oh-footer__links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.oh-footer__contact p { margin: 0 0 8px; }
.oh-footer__contact span { display: block; font-size: 12px; color: rgba(255,255,255,.6); }
.oh-footer__bottom { max-width: var(--wrap); margin: 0 auto; padding: 22px 24px 32px; border-top: 1px solid rgba(255,255,255,.15); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12px; color: rgba(255,255,255,.6); }
.oh-footer__bottom nav { display: flex; gap: 20px; }
.oh-footer__bottom a { color: rgba(255,255,255,.75); }
@media (max-width: 960px) { .oh-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .oh-footer__inner { grid-template-columns: 1fr; padding-top: 56px; } .oh-footer { padding-bottom: 72px; } }

/* ---------- スマホの固定ボタン ---------- */
.oh-sticky { display: none; }
@media (max-width: 860px) {
  .oh-sticky {
    position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 90;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 10px 10px 18px; background: #fff; border-radius: 999px;
    box-shadow: 0 6px 20px rgba(43,36,32,.18); text-decoration: none; color: var(--ink); font-size: 13px;
    transform: translateY(140%); transition: transform .3s;
  }
  .oh-sticky b { background: var(--brand); color: #fff; font-family: var(--f-round); padding: 12px 18px; border-radius: 999px; font-size: 14px; }
  .oh-sticky.is-on { transform: none; }
}

/* ---------- 下層ページの見出し ---------- */
.oh-pagehead { background: var(--paper-warm); padding: 72px 0 64px; }
.oh-pagehead__inner { display: flex; align-items: center; justify-content: space-between; gap: 56px; }
.oh-pagehead .oh-doodle { color: var(--brand); display: block; margin-bottom: 8px; }
.oh-pagehead__title { font-family: var(--f-round); font-weight: 700; font-size: 38px; letter-spacing: .06em; margin: 0; line-height: 1.4; }
.oh-pagehead__lead { margin: 18px 0 0; line-height: 2; color: var(--ink-sub); }
.oh-pagehead__photo { margin: 0; flex: 0 0 440px; }
.oh-pagehead__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }
@media (max-width: 860px) {
  .oh-pagehead { padding: 40px 0 48px; }
  .oh-pagehead__inner { flex-direction: column-reverse; align-items: stretch; gap: 28px; }
  .oh-pagehead__photo { flex: none; }
  .oh-pagehead__title { font-size: 28px; }
}

/* ---------- 支援ページ ---------- */
.oh-cost { display: grid; grid-template-columns: 1fr 1.15fr; gap: 72px; align-items: start; }
.oh-cost__text p:not(.oh-kicker) { margin: 22px 0 0; line-height: 2; }
.oh-cost__list { margin: 0; border-top: 1px solid var(--line); }
.oh-cost__list > div { display: grid; grid-template-columns: 9em 1fr; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.oh-cost__list dt { font-family: var(--f-round); font-weight: 700; padding-top: 6px; }
.oh-cost__list dd { margin: 0; }
.oh-cost__list b { display: block; font-family: var(--f-round); font-weight: 700; font-size: 26px; color: var(--brand); }
.oh-cost__list b small { font-size: 14px; margin-left: 2px; }
.oh-cost__list span { display: block; font-size: 14px; color: var(--ink-sub); margin-top: 4px; }
@media (max-width: 860px) {
  .oh-cost { grid-template-columns: 1fr; gap: 36px; }
  .oh-cost__list > div { grid-template-columns: 1fr; gap: 4px; }
  .oh-cost__list b { font-size: 23px; }
}

.oh-how { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; }
.oh-how__side { display: grid; gap: 24px; }
.oh-how__card { background: #fff; border-radius: 10px; padding: 32px; }
.oh-how__card h3 { font-family: var(--f-round); font-weight: 700; font-size: 20px; margin: 0 0 16px; padding-left: 14px; border-left: 4px solid var(--brand); line-height: 1.4; }
.oh-how__card p { margin: 0 0 14px; line-height: 1.9; font-size: 15px; }
.oh-how__id b { font-family: var(--f-round); font-size: 22px; color: var(--brand-dark); }
.oh-bank { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.oh-bank__label { font-weight: 700; font-size: 14px; color: var(--brand-dark); margin: 0 0 10px !important; }
.oh-bank dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 18px; margin: 0; }
.oh-bank dt { font-size: 13px; color: var(--ink-sub); padding-top: 3px; }
.oh-bank dd { margin: 0; font-family: var(--f-round); font-weight: 700; font-size: 18px; letter-spacing: .06em; }
.oh-after { margin-top: 32px; padding: 28px 32px; border: 2px dashed var(--brand); border-radius: 10px; background: #fff; }
.oh-after__title { font-family: var(--f-round); font-weight: 700; font-size: 17px; color: var(--brand-dark); margin: 0 0 8px; }
.oh-after p { margin: 0; line-height: 1.9; }
.oh-after__links { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 16px !important; }
@media (max-width: 860px) {
  .oh-how { grid-template-columns: 1fr; }
  .oh-how__card { padding: 26px 22px; }
  .oh-bank { grid-template-columns: 1fr; gap: 22px; }
  .oh-after { padding: 24px 22px; }
}

.oh-other { display: grid; grid-template-columns: 1fr 1.1fr; gap: 72px; align-items: center; }
.oh-other__photo { margin: 0; }
.oh-other__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }
.oh-other p:not(.oh-kicker):not(.oh-after__links) { margin: 22px 0 0; line-height: 2; }
@media (max-width: 860px) { .oh-other { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- Ohanaについて ---------- */
.oh-greet { display: grid; grid-template-columns: 1.2fr 1fr; gap: 72px; align-items: start; }
.oh-greet__text p:not(.oh-kicker) { margin: 22px 0 0; line-height: 2.05; }
.oh-greet__sig { text-align: right; font-family: var(--f-round); font-weight: 700; }
.oh-spec { margin: 0; background: var(--paper-warm); border-radius: 10px; padding: 12px 32px; }
.oh-spec > div { display: grid; grid-template-columns: 6em 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.oh-spec > div:last-child { border-bottom: 0; }
.oh-spec dt { font-size: 13px; color: var(--ink-sub); padding-top: 2px; }
.oh-spec dd { margin: 0; font-weight: 500; line-height: 1.8; }
.oh-spec small { display: block; font-size: 12px; color: var(--ink-sub); }
.oh-acts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.oh-acts img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; }
.oh-acts h3 { font-family: var(--f-round); font-weight: 700; font-size: 21px; margin: 22px 0 10px; }
.oh-acts p { margin: 0; line-height: 1.95; font-size: 15px; color: var(--ink-sub); }
.oh-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 40px; }
.oh-flow li { border-top: 2px solid var(--brand); padding-top: 18px; }
.oh-flow__no { font-family: var(--f-round); font-weight: 700; font-size: 40px; line-height: 1; color: var(--brand); }
.oh-flow h3 { font-family: var(--f-round); font-weight: 700; font-size: 19px; margin: 12px 0 8px; }
.oh-flow p { margin: 0; font-size: 15px; line-height: 1.9; color: var(--ink-sub); }
@media (max-width: 860px) {
  .oh-greet { grid-template-columns: 1fr; gap: 40px; }
  .oh-spec { padding: 6px 22px; }
  .oh-acts { grid-template-columns: 1fr; gap: 44px; }
  .oh-flow { grid-template-columns: 1fr 1fr; gap: 36px 20px; }
}
@media (max-width: 520px) { .oh-flow { grid-template-columns: 1fr; } }

/* ---------- 保護猫たち ---------- */
.oh-cats__img { position: relative; display: block; }
.oh-cats__status { position: absolute; left: 10px; top: 10px; background: #fff; color: var(--brand-dark); font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 4px; }
.oh-cats__intro { margin: 8px 0 0; font-size: 14px; line-height: 1.8; color: var(--ink-sub); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.oh-none { max-width: 640px; margin: 0 auto; text-align: center; padding: 40px 32px; border: 2px dashed var(--line); border-radius: 10px; }
.oh-none__title { font-family: var(--f-round); font-weight: 700; font-size: 19px; margin: 0 0 12px; }
.oh-none p { line-height: 1.9; margin: 0 0 24px; }
@media (min-width: 769px) { .oh-adopted--all { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 768px) { .oh-adopted--all li:nth-child(n+7) { display: block; } }
.oh-adopt { display: grid; grid-template-columns: 1fr 1.1fr; gap: 72px; align-items: start; }
.oh-adopt__steps { list-style: none; counter-reset: s; margin: 0 0 28px; padding: 0; border-top: 1px solid var(--line); }
.oh-adopt__steps li { counter-increment: s; display: grid; grid-template-columns: 2.2em 7em 1fr; gap: 8px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink-sub); }
.oh-adopt__steps li::before { content: counter(s); font-family: var(--f-round); font-weight: 700; font-size: 22px; color: var(--brand); }
.oh-adopt__steps b { font-family: var(--f-round); color: var(--ink); }
@media (max-width: 860px) {
  .oh-adopt { grid-template-columns: 1fr; gap: 28px; }
  /* スマホは番号を左に置いて、見出しと本文を縦に積む（本文が細い列に入って縦書きになるのを防ぐ） */
  .oh-adopt__steps li { display: block; position: relative; padding-left: 2.4em; line-height: 1.8; }
  .oh-adopt__steps li::before { position: absolute; left: 0; top: 14px; }
  .oh-adopt__steps b { display: block; margin-bottom: 2px; }
}

/* ---------- 猫の個別ページ（旧マークアップを新デザインに寄せる） ---------- */
.cat-single-main-image, .cat-single-main-image img { border-radius: 6px !important; box-shadow: none !important; }
.cat-single-name { font-family: var(--f-round) !important; font-weight: 700 !important; color: var(--ink) !important; }
.cat-status-badge { border-radius: 4px !important; background: var(--brand-pale) !important; color: var(--brand-dark) !important; font-weight: 700; }
.cat-single-specs { border-radius: 6px !important; }
.cat-tag { border-radius: 4px !important; background: var(--paper-warm) !important; color: var(--ink) !important; border: 1px solid var(--line); }
.cat-single-desc h2, .cat-single-health h3 { font-family: var(--f-round) !important; font-weight: 700 !important; color: var(--brand-dark) !important; border-color: var(--line) !important; }
.cat-single-health { border-radius: 6px !important; background: var(--paper-warm) !important; border-color: var(--line) !important; }
.cat-single-apply { border-radius: 10px !important; background: var(--paper-warm) !important; }
.cat-single-apply--done p { position: relative; display: inline-flex; align-items: center; gap: 12px; font-family: var(--f-round); font-weight: 700; font-size: 17px; margin: 0; }
.cat-single-apply--done .oh-iwai { position: static; }
.cat-single-back .btn { border: 0 !important; padding: 0 !important; font-family: var(--f-round); font-weight: 700; font-size: 15px !important; color: var(--brand-dark) !important; background: none !important; border-bottom: 1.5px solid currentColor !important; border-radius: 0 !important; }

/* ==========================================================
   旧ページの共通部品を新デザインに寄せる
   （page-hero / section-label / section-title / btn / カード類）
   個別に作り直したページは oh-* を使うので、ここは影響しない
   ========================================================== */
.page-hero { padding: 72px 0 64px !important; background: var(--paper-warm) !important; text-align: left !important; }
.page-hero .container { max-width: var(--wrap); padding: 0 24px; }
.page-hero h1, .page-hero-title { font-family: var(--f-round) !important; font-weight: 700 !important; font-size: 38px !important; color: var(--ink) !important; letter-spacing: .06em; margin: 0 !important; line-height: 1.4; }
.page-hero h1::before { content: ""; display: block; width: 58px; height: 44px; margin-bottom: 8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58 44' fill='none' stroke='%23d9603b' stroke-width='2' stroke-linecap='round'%3E%3Cellipse cx='29' cy='30' rx='8' ry='6.5'/%3E%3Ccircle cx='18' cy='20' r='3.4'/%3E%3Ccircle cx='25' cy='14' r='3.4'/%3E%3Ccircle cx='33' cy='14' r='3.4'/%3E%3Ccircle cx='40' cy='20' r='3.4'/%3E%3C/svg%3E") no-repeat left center / contain; }
.page-hero-sub, .page-hero-text { color: var(--ink-sub) !important; margin: 16px 0 0 !important; font-size: 15px !important; }
.section-label, .page-hero-label { display: none !important; }
.section { padding: 96px 0 !important; }
.section-alt { background: var(--paper-warm) !important; }
.section-title { font-family: var(--f-round) !important; font-weight: 700 !important; color: var(--ink) !important; letter-spacing: .06em; }
.section-title::after, .section-title::before { display: none !important; }
@media (max-width: 860px) {
  .page-hero { padding: 40px 0 44px !important; }
  .page-hero h1, .page-hero-title { font-size: 28px !important; }
  .section { padding: 64px 0 !important; }
}

.btn { font-family: var(--f-round) !important; font-weight: 700 !important; letter-spacing: .08em; box-shadow: none !important; }
.btn-primary, .btn-orange { background: var(--brand) !important; color: #fff !important; border-color: var(--brand) !important; border-radius: 999px !important; }
.btn-primary:hover, .btn-orange:hover { background: var(--brand-dark) !important; border-color: var(--brand-dark) !important; }
.btn-outline, .btn-outline-terracotta { background: #fff !important; color: var(--brand-dark) !important; border: 2px solid var(--brand) !important; border-radius: 6px !important; }
.btn-outline:hover, .btn-outline-terracotta:hover { background: var(--brand-pale) !important; }

/* カード・箱は角丸を小さく、影をなくす */
.member-card, .faq-item, .info-box, .volunteer-banner, .contact-info-card, .form-closed-notice, .news-item, .column-card, .donation-card, .cost-card, .pillar-card, .news-single, .column-single-body {
  border-radius: 10px !important; box-shadow: none !important;
}
.member-card__role, .news-badge { border-radius: 4px !important; }
.member-card__name, .faq-question, .info-box__title, .volunteer-banner h3, .contact-info-heading, .form-closed-notice__title { font-family: var(--f-round) !important; font-weight: 700 !important; }
.form-closed-notice__icon, .volunteer-banner__icon, .contact-info-icon { display: none !important; }

/* ---------- メンバー ---------- */
.oh-members { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.oh-member { border-top: 2px solid var(--brand); padding-top: 24px; }
.oh-member__role { display: inline-block; margin: 0; font-size: 13px; font-weight: 700; color: var(--brand-dark); background: var(--brand-pale); padding: 3px 12px; border-radius: 4px; }
.oh-member__name { font-family: var(--f-round); font-weight: 700; font-size: 26px; margin: 14px 0 6px; }
.oh-member p:not(.oh-member__role) { line-height: 2; margin: 14px 0 0; }
@media (max-width: 860px) { .oh-members { grid-template-columns: 1fr; gap: 48px; } }

/* ---------- ボランティア・里親・問い合わせ ---------- */
.oh-flow--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .oh-flow--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .oh-flow--4 { grid-template-columns: 1fr; } }
.oh-cond__note { margin: 20px 0 0; font-size: 14px; color: var(--ink-sub); line-height: 1.9; }
.oh-check { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.oh-check li { position: relative; padding: 18px 0 18px 36px; border-bottom: 1px solid var(--line); font-weight: 500; }
.oh-check li::before { content: ""; position: absolute; left: 4px; top: 22px; width: 14px; height: 8px; border-left: 2.5px solid var(--brand); border-bottom: 2.5px solid var(--brand); transform: rotate(-45deg); }
.oh-none__btns { display: flex; justify-content: center; align-items: center; gap: 24px; flex-wrap: wrap; margin: 0 !important; }
.oh-contact { display: grid; grid-template-columns: 1.2fr 1fr; gap: 72px; align-items: start; }
.oh-contact__notice p:not(.oh-kicker):not(.oh-after__links) { margin: 20px 0 0; line-height: 2; }
.oh-spec a { color: var(--brand-dark); font-weight: 700; }
@media (max-width: 860px) { .oh-contact { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- 2026-10-14 修正 ---------- */
/* ファーストビューの見出し：旧CSSの h1 の色指定に負けていたので白に戻す */
.oh-hero__title { color: #fff; font-weight: 700; text-shadow: 0 1px 12px rgba(30,22,16,.22); }
/* 支援カードを猫の顔からずらす（見出しより少し下に） */
@media (min-width: 861px) { .oh-support-card { margin-bottom: -64px; } }
/* よくある質問のカテゴリーを横4列に */
.faq-jump { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 12px !important; max-width: 880px; margin-left: auto !important; margin-right: auto !important; }
.faq-jump .btn { width: 100%; padding-left: 8px !important; padding-right: 8px !important; font-size: 14px !important; white-space: nowrap; }
@media (max-width: 640px) { .faq-jump { grid-template-columns: 1fr 1fr; } }
/* ロゴは全ページテラコッタ（--logo）。トップの写真の上でも同じ色。メニューは濃い色 */
.oh-logo, .home .oh-header--over .oh-logo, .home .oh-header--over.is-solid .oh-logo { color: var(--logo); }
.home .oh-header--over .oh-logo__sub { color: var(--ink-sub); }
.home .oh-header--over .oh-nav__list a { color: var(--ink); }
.home .oh-header--over:not(.is-solid) .oh-menu-btn span { background: var(--ink); }
.oh-logo--footer { color: #fff !important; }
/* 「鳥取市の保護猫活動」を大きく */
.oh-hero__place { display: inline-flex; align-items: center; gap: 8px; font-size: 21px; letter-spacing: .1em; margin-bottom: 18px; text-shadow: 0 1px 10px rgba(30,22,16,.25); }
@media (max-width: 860px) { .oh-hero__place { font-size: 17px; margin-bottom: 12px; } }

/* ---------- スマホのはみ出し対策（はみ出すとページ全体が縮んで表示される） ---------- */
.oh-wrap > *, .oh-wrap > * > * { min-width: 0; }
.oh-spec dd, .oh-footer a, .oh-after__links a { overflow-wrap: anywhere; }
@media (max-width: 860px) { .oh-h2 br { display: none; } .oh-h2 { overflow-wrap: anywhere; } }

/* ---------- スマホ：ファーストビュー直下（支援カード・お知らせ）を整理 ---------- */
@media (max-width: 860px) {
  .oh-support-card { align-items: stretch; text-align: center; gap: 0; padding: 32px 20px 0; }
  .oh-support-card__lead { font-size: 16px; margin-bottom: 20px; }
  .oh-support-card .oh-link { align-self: center; margin-top: 18px; font-size: 14px; border-bottom-width: 1px; }
  .oh-hero__news {
    display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 6px 10px; align-items: center;
    margin: 32px 20px 0; padding: 16px 18px; border: 0; border-radius: 10px; background: var(--paper-warm);
  }
  .oh-hero__news time { grid-column: 2; grid-row: 1; font-size: 13px; }
  .oh-hero__news-tag { grid-column: 1; grid-row: 1; background: #fff; }
  .oh-hero__news-title { grid-column: 1 / -1; grid-row: 2; white-space: normal; font-size: 14px; line-height: 1.7; }
}

/* ---------- コラム一覧 ---------- */
.oh-columns { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
.oh-columns a { color: var(--ink); text-decoration: none; display: block; }
.oh-columns__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; display: block; }
.oh-columns time { display: block; margin: 16px 0 6px; font-family: var(--f-round); font-weight: 700; font-size: 13px; color: var(--ink-sub); }
.oh-columns__title { font-family: var(--f-round); font-weight: 700; font-size: 18px; line-height: 1.6; margin: 0; }
.oh-columns a:hover .oh-columns__title { color: var(--brand-dark); }
.oh-columns p { margin: 8px 0 0; font-size: 14px; line-height: 1.8; color: var(--ink-sub); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 860px) { .oh-columns { grid-template-columns: 1fr; gap: 36px; } }

/* ---------- 応援してくれているお店 ---------- */
.oh-sponsors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.oh-sponsors a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 24px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); text-decoration: none; background: #fff; }
.oh-sponsors a:hover { border-color: var(--brand); }
.oh-sponsors__logo { width: 64px; height: 64px; border-radius: 6px; background: var(--paper-warm); display: grid; place-items: center; font-family: var(--f-round); font-weight: 700; font-size: 24px; color: var(--brand); overflow: hidden; margin-bottom: 8px; }
.oh-sponsors__logo img { width: 100%; height: 100%; object-fit: contain; }
.oh-sponsors__kind { font-size: 12px; color: var(--brand-dark); font-weight: 700; }
.oh-sponsors__name { font-family: var(--f-round); font-weight: 700; font-size: 18px; }
.oh-sponsors__note { font-size: 14px; color: var(--ink-sub); line-height: 1.8; }
@media (max-width: 860px) { .oh-sponsors { grid-template-columns: 1fr; } }
.oh-adopt .oh-check li { font-size: 15px; }
.oh-adopt + .oh-after { margin-top: 48px; }

/* 協賛店：フッターの一覧・記事内の紹介箱 */
.oh-footer__sponsors { max-width: var(--wrap); margin: 0 auto; padding: 24px 24px; border-top: 1px solid rgba(255,255,255,.15); font-size: 13px; }
.oh-footer__sponsors p { margin: 0 0 10px; font-family: var(--f-round); font-weight: 700; }
.oh-footer__sponsors ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.oh-sponsor-box { margin: 40px 0; padding: 24px 26px; background: var(--paper-warm); border-radius: 10px; }
.oh-sponsor-box__title { font-family: var(--f-round); font-weight: 700; font-size: 17px; margin: 0 0 12px; }
.oh-sponsor-box ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.oh-sponsor-box a { display: block; padding: 14px 16px; background: #fff; border-radius: 6px; color: var(--ink); text-decoration: none; }
.oh-sponsor-box b { font-family: var(--f-round); color: var(--brand-dark); margin-right: 8px; }
.oh-sponsor-box span { font-size: 12px; color: var(--ink-sub); }
.oh-sponsor-box small { display: block; font-size: 13px; color: var(--ink-sub); margin-top: 4px; }
.oh-sponsor-box__note { margin: 12px 0 0; font-size: 12px; color: var(--ink-sub); }

/* ---------- 記事（コラム・お知らせ） ---------- */
.oh-article__head { background: var(--paper-warm); padding: 48px 0 0; }
.oh-article__wrap { max-width: 760px; margin: 0 auto; padding: 0 24px; }
.oh-crumb { font-size: 13px; color: var(--ink-sub); display: flex; gap: 8px; flex-wrap: wrap; }
.oh-crumb a { color: var(--ink-sub); }
.oh-article__title { font-family: var(--f-round); font-weight: 700; font-size: 32px; line-height: 1.55; letter-spacing: .04em; margin: 16px 0 14px; color: var(--ink); }
.oh-article__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; font-size: 13px; color: var(--ink-sub); }
.oh-article__by { margin: 18px 0 0; padding: 12px 16px; background: #fff; border-left: 3px solid var(--brand); border-radius: 4px; font-size: 13px; line-height: 1.8; }
.oh-article__eyecatch { max-width: 900px; margin: 32px auto 0; padding: 0 24px; transform: translateY(32px); }
.oh-article__eyecatch img { width: 100%; height: auto; border-radius: 10px; display: block; }
.oh-article__head:not(:has(.oh-article__eyecatch)) { padding-bottom: 40px; }
.oh-article:has(.oh-article__eyecatch) .oh-prose { padding-top: 72px; }
.oh-prose { padding-top: 40px; padding-bottom: 24px; font-size: 16.5px; line-height: 2.05; }
.oh-prose > * + * { margin-top: 1.4em; }
.oh-prose h2 { font-family: var(--f-round); font-weight: 700; font-size: 24px; line-height: 1.6; margin: 2.6em 0 .8em; padding: 0 0 12px; border-bottom: 2px solid var(--brand); }
.oh-prose h3 { font-family: var(--f-round); font-weight: 700; font-size: 19px; margin: 2em 0 .6em; padding-left: 12px; border-left: 4px solid var(--brand); }
.oh-prose a { color: var(--brand-dark); }
.oh-prose ul, .oh-prose ol { padding-left: 1.4em; }
.oh-prose li + li { margin-top: .4em; }
.oh-prose img { max-width: 100%; height: auto; border-radius: 6px; }
.oh-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.oh-prose th, .oh-prose td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
.oh-prose th { background: var(--paper-warm); font-weight: 700; white-space: nowrap; }
.oh-prose blockquote { margin: 1.6em 0; padding: 16px 20px; background: var(--paper-warm); border-radius: 6px; }
.oh-article__support { margin: 40px 0 0; padding: 28px; background: var(--brand-pale); border-radius: 10px; }
.oh-article__support-title { font-family: var(--f-round); font-weight: 700; font-size: 18px; margin: 0 0 8px; }
.oh-article__support p { margin: 0; line-height: 1.9; }
.oh-article__support .oh-after__links { align-items: center; }
.oh-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 32px 0 0; font-size: 13px; color: var(--ink-sub); }
.oh-share a { font-family: var(--f-round); font-weight: 700; color: var(--ink); text-decoration: none; border: 1px solid var(--line); border-radius: 6px; padding: 6px 14px; }
.oh-share a:hover { border-color: var(--brand); color: var(--brand-dark); }
.oh-article__back { margin: 32px 0 88px; }
.oh-columns--related { margin-top: 32px; }
@media (max-width: 860px) {
  .oh-article__head { padding-top: 32px; }
  .oh-article__title { font-size: 24px; }
  .oh-prose { font-size: 16px; }
  .oh-prose h2 { font-size: 21px; }
  .oh-article__wrap { padding: 0 20px; }
  .oh-article__eyecatch { padding: 0 20px; }
}
.oh-record__nums--row { flex-direction: row !important; flex-wrap: wrap; gap: 24px 56px !important; margin: 28px 0 8px !important; }

/* ---------- 鳥取県の保護猫ガイド ---------- */
.oh-guide-enter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.oh-guide-enter__box { border: 1px solid var(--line); border-top: 4px solid var(--brand); border-radius: 10px; padding: 26px 24px; background: #fff; }
.oh-guide-enter__box h3 { font-family: var(--f-round); font-weight: 700; font-size: 20px; margin: 0 0 6px; }
.oh-guide-enter__box > p { margin: 0 0 16px; font-size: 14px; color: var(--ink-sub); line-height: 1.8; }
.oh-guide-enter__box ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.oh-guide-enter__box li { border-bottom: 1px solid var(--line); }
.oh-guide-enter__box li a { display: block; padding: 13px 2px; color: var(--ink); text-decoration: none; font-weight: 500; font-size: 15px; }
.oh-guide-enter__box li a:hover { color: var(--brand-dark); }
.oh-guide-enter__box li.is-soon { padding: 13px 2px; color: var(--ink-sub); font-size: 15px; display: flex; justify-content: space-between; gap: 8px; }
.oh-guide-enter__box li.is-soon small { flex: none; font-size: 11px; background: var(--paper-warm); padding: 2px 8px; border-radius: 4px; }
.oh-guide-note { margin: 14px 0 28px; color: var(--ink-sub); }
.oh-guide-area { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.oh-guide-area__box, .oh-guide-pref { background: #fff; border-radius: 10px; padding: 24px; }
.oh-guide-area__name { font-family: var(--f-round); font-weight: 700; font-size: 22px; color: var(--brand-dark); margin: 0 0 4px; }
.oh-guide-area__towns { font-size: 13px; color: var(--ink-sub); line-height: 1.7; margin: 0 0 14px; }
.oh-guide-area__box dl { display: grid; grid-template-columns: 4em 1fr; gap: 6px 10px; margin: 0; font-size: 14px; }
.oh-guide-area__box dt { color: var(--ink-sub); }
.oh-guide-area__box dd { margin: 0; }
.oh-guide-area__box dd a, .oh-guide-pref a[href^="tel"] { font-family: var(--f-round); font-weight: 700; font-size: 18px; color: var(--brand-dark); }
.oh-guide-pref { margin-top: 20px; }
.oh-guide-pref p { margin: 0 0 10px; line-height: 1.9; }
.oh-guide-src { margin: 20px 0 0; font-size: 12px; color: var(--ink-sub); line-height: 1.8; }
.oh-guide-src a { color: var(--ink-sub); }
@media (max-width: 960px) { .oh-guide-enter, .oh-guide-area { grid-template-columns: 1fr; } }

/* ---------- 案内ページの本文の部品 ---------- */
.oh-prose .oh-box { padding: 20px 22px; border-radius: 10px; background: var(--paper-warm); }
.oh-prose .oh-box--point { background: var(--brand-pale); }
.oh-prose .oh-box > :first-child { margin-top: 0; }
.oh-prose .oh-box > :last-child { margin-bottom: 0; }
.oh-prose .oh-box-title { font-family: var(--f-round); font-weight: 700; margin: 0 0 6px !important; }
.oh-prose .oh-tel { font-family: var(--f-round); font-weight: 700; font-size: 1.15em; color: var(--brand-dark); text-decoration: none; }
.oh-prose .oh-src { font-size: 13px; color: var(--ink-sub); line-height: 1.8; }
.oh-prose .oh-src a { color: var(--ink-sub); }
.oh-prose .oh-ohana { border-left: 4px solid var(--yellow); padding: 4px 0 4px 16px; }
.oh-prose .oh-faq dt { font-family: var(--f-round); font-weight: 700; margin-top: 1.2em; }
.oh-prose .oh-faq dt::before { content: "Q. "; color: var(--brand); }
.oh-prose .oh-faq dd { margin: .4em 0 0; }
.oh-prose .oh-faq dd::before { content: "A. "; font-weight: 700; color: var(--ink-sub); }
.oh-prose .oh-toc { padding: 18px 22px; border: 1px solid var(--line); border-radius: 10px; }
.oh-prose .oh-toc p { margin: 0 0 6px; font-weight: 700; font-family: var(--f-round); }
.oh-prose .oh-toc ol { margin: 0; }
.oh-prose ul { list-style: disc; }
.oh-prose ol { list-style: decimal; }
.oh-prose ul li::marker { color: var(--brand); }
.oh-prose ol li::marker { color: var(--brand-dark); font-weight: 700; }

/* ---------- よくある質問 ---------- */
.oh-faqpage { max-width: 880px; }
.oh-faq-nav { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 48px; }
.oh-faq-nav a { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 48px; padding: 8px; border: 2px solid var(--brand); border-radius: 6px; color: var(--brand-dark); font-family: var(--f-round); font-weight: 700; font-size: 14px; text-decoration: none; line-height: 1.4; }
.oh-faq-nav a:hover { background: var(--brand-pale); }
.oh-faq-cat { margin-bottom: 48px; scroll-margin-top: 96px; }
.oh-faq-cat__title { font-family: var(--f-round); font-weight: 700; font-size: 22px; margin: 0 0 12px; padding-left: 14px; border-left: 4px solid var(--brand); }
.oh-qa { border-bottom: 1px solid var(--line); }
.oh-qa summary { list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 12px; padding: 18px 36px 18px 2px; position: relative; font-weight: 700; line-height: 1.7; }
.oh-qa summary::-webkit-details-marker { display: none; }
.oh-qa summary::after { content: "+"; position: absolute; right: 8px; top: 14px; font-size: 22px; color: var(--brand); font-weight: 400; }
.oh-qa[open] summary::after { content: "−"; }
.oh-qa__q { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--brand); color: #fff; display: grid; place-items: center; font-family: var(--f-round); font-size: 13px; margin-top: 1px; }
.oh-qa__a { padding: 0 2px 20px 38px; line-height: 1.95; color: var(--ink); }
.oh-qa__a a { color: var(--brand-dark); }
.oh-faq-more { margin-top: 24px; }
@media (max-width: 860px) { .oh-faq-nav { grid-template-columns: 1fr 1fr; } .oh-faq-nav a:last-child { grid-column: 1 / -1; } }
@media (min-width: 861px) { .oh-faq-nav a { white-space: nowrap; font-size: 13px; padding: 8px 4px; } }

/* コラム（2026-10-15 ~/ohana-redesign/COLUMN.md） */
.oh-prose sup { font-size: .7em; color: var(--ink-sub); margin-left: 1px; }
.oh-prose .oh-cite { font-size: 13px; color: var(--ink-sub); line-height: 1.8; }
.oh-prose .oh-cite a { color: var(--ink-sub); }
.oh-prose .oh-toc ol ol { margin: 4px 0 6px; padding-left: 1.4em; list-style: none; font-size: .94em; }
.oh-prose .oh-toc ol ol li::before { content: "・"; color: var(--ink-sub); margin-left: -1em; }
.oh-prose .oh-toc a { text-decoration: none; }
.oh-prose .oh-cta { text-align: center; margin: 1.6em 0 .4em; }
.oh-prose .oh-cta .oh-btn { color: #fff; text-decoration: none; }
.oh-prose .oh-pr { font-size: 13px; color: var(--ink-sub); border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px; }
.oh-prose .article-related { margin-top: 2.6em; padding: 20px 22px; border: 2px solid var(--brand-pale); border-radius: 12px; background: #fff; }
.oh-prose .article-related__title { font-family: var(--f-round); font-weight: 700; color: var(--brand-dark); margin: 0 0 8px; }
.oh-prose .article-related__list { margin: 0; }
.oh-prose .article-related__service { margin: 12px 0 0; padding-top: 10px; border-top: 1px dashed var(--line); font-size: 14px; color: var(--ink-sub); }
.oh-article__cat { color: var(--brand-dark); }

/* 記事の頭：アイキャッチ（あたたかい白）と背景が同化しないよう白地に。画像は本文の幅まで小さく（2026-10-15） */
.oh-article__head { background: #fff; }
.oh-article__by { background: var(--paper-warm); }
.oh-article__eyecatch { max-width: 760px; margin: 28px auto 0; transform: none; }
.oh-article__eyecatch img { border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 24px rgba(43, 36, 32, .07); }
.oh-article:has(.oh-article__eyecatch) .oh-prose { padding-top: 44px; }
@media (max-width: 760px) {
  .oh-article__eyecatch { margin-top: 22px; }
  .oh-article__eyecatch img { border-radius: 8px; box-shadow: 0 4px 14px rgba(43, 36, 32, .06); }
  .oh-article:has(.oh-article__eyecatch) .oh-prose { padding-top: 32px; }
}
@media (max-width: 760px) { .oh-prose .oh-cta .oh-btn { display: flex; width: 100%; justify-content: center; font-size: 15px; padding-left: 16px; padding-right: 16px; } }
/* コラムへのリンクの箱（ガイド・一覧・保護猫たち） */
.oh-relcols { margin: 32px 0 0; padding: 20px 22px; border: 2px solid var(--brand-pale); border-radius: 12px; background: #fff; }
.oh-relcols__title { font-family: var(--f-round); font-weight: 700; color: var(--brand-dark); margin: 0 0 8px; }
.oh-relcols ul { margin: 0; padding-left: 1.3em; list-style: disc; }
.oh-relcols li + li { margin-top: 6px; }
.oh-relcols li::marker { color: var(--brand); }
.oh-relcols a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brand-pale); text-underline-offset: 3px; }
.oh-relcols--center { max-width: 640px; margin-left: auto; margin-right: auto; }
.oh-columns + .oh-relcols, .oh-relcols + .oh-columns { margin-top: 32px; }
/* コラムのカード：アイキャッチ（16:9）を切らずに見せる（2026-10-15） */
.oh-columns__img img { aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--line); border-radius: 8px; }
.oh-columns--top { margin-top: 28px; }
.oh-columns--top .oh-columns__title { font-size: 16.5px; }
.oh-head__lead--left { text-align: left; margin: 12px 0 0; color: var(--ink-sub); }
.oh-posts__more--top { margin-top: 28px; }
/* ファーストビュー下のお知らせ帯：長いコラムのタイトルで寄付カードの下まで伸びないように（2026-10-15） */
@media (min-width: 861px) {
  .oh-hero__news { max-width: min(620px, calc(100% - 440px)); }
  .oh-hero__news-title { min-width: 0; }
}
/* ログイン中は管理バーの分だけファーストビューが下にずれて、お知らせ帯が画面の外に出る → その分だけ高さを引く */
@media (min-width: 861px) {
  .admin-bar .oh-hero { min-height: calc(100svh - 32px); }
}
@media (min-width: 861px) and (max-width: 782px) {
  .admin-bar .oh-hero { min-height: calc(100svh - 46px); }
}

/* ---------- ガイドのハブ：悩みから探す動線（2026-10-19） ---------- */
.oh-sec--tight { padding: 80px 0; }
@media (max-width: 768px) { .oh-sec--tight { padding: 56px 0; } }
.oh-gjump { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 8px; }
.oh-gjump a { display: inline-block; padding: 10px 18px; border: 2px solid var(--brand); border-radius: 6px; background: #fff; color: var(--brand-dark); font-weight: 700; font-size: 14px; text-decoration: none; letter-spacing: .04em; }
.oh-gjump a:hover { background: var(--brand-pale); }
.oh-gjump .oh-gjump__tel { border-color: var(--line); color: var(--ink); font-weight: 500; }
.oh-ggroup { display: grid; grid-template-columns: 280px 1fr; gap: 16px 56px; padding: 36px 0; border-top: 0; scroll-margin-top: 80px; }
.oh-ggroup:first-of-type { margin-top: 8px; padding-top: 24px; }
.oh-ggroup__head h3 { font-family: var(--f-round); font-weight: 700; font-size: 22px; line-height: 1.5; margin: 0; }
.oh-ggroup__head p { margin: 12px 0 0; font-size: 14px; line-height: 1.9; color: var(--ink-sub); }
.oh-glist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.oh-glist li { border-bottom: 1px solid var(--line); }
.oh-glist a, .oh-glist__soon { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "q go" "a go"; gap: 4px 16px; align-items: center; padding: 20px 4px; color: var(--ink); text-decoration: none; }
.oh-glist__q { grid-area: q; font-weight: 700; font-size: 17px; line-height: 1.6; }
.oh-glist__a { grid-area: a; font-size: 13.5px; color: var(--ink-sub); line-height: 1.7; }
.oh-glist__go { grid-area: go; font-size: 20px; color: var(--brand); transition: transform .2s; }
.oh-glist a:hover .oh-glist__q { color: var(--brand-dark); }
.oh-glist a:hover .oh-glist__go { transform: translateX(4px); }
.oh-glist__soon { color: var(--ink-sub); }
.oh-glist__soon .oh-glist__q { font-weight: 500; }
.oh-glist__soon small { grid-area: go; font-size: 11px; background: var(--paper-warm); padding: 2px 8px; border-radius: 4px; }
@media (max-width: 860px) {
  .oh-ggroup { grid-template-columns: 1fr; gap: 8px; padding: 36px 0; }
  .oh-glist__q { font-size: 16px; }
}
.oh-guide-area__go { margin: 16px 0 0; font-size: 13.5px; color: var(--ink-sub); line-height: 1.8; }
.oh-guide-area__go .oh-link { font-size: 14px; }
.oh-guide-area__soon { display: inline-block; background: var(--paper-warm); padding: 3px 10px; border-radius: 4px; font-size: 12px; }
.oh-gall { list-style: none; margin: 24px 0 0; padding: 0; border-top: 1px solid var(--line); }
.oh-gall li { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.oh-gall a { color: var(--ink); font-weight: 500; text-decoration: none; line-height: 1.7; }
.oh-gall a:hover { color: var(--brand-dark); }
.oh-gall time { flex: none; font-size: 12.5px; color: var(--ink-sub); }
@media (max-width: 640px) { .oh-gall li { flex-direction: column; gap: 2px; } }

/* ガイドの子ページ：ほかの悩みから探す／地域の窓口 */
.oh-gnext { margin: 40px 0 0; padding: 28px; background: var(--paper-warm); border-radius: 10px; }
.oh-gnext__title { font-family: var(--f-round); font-weight: 700; font-size: 18px; margin: 0 0 6px; }
.oh-gnext__lead { margin: 0 0 14px; font-size: 14px; color: var(--ink-sub); line-height: 1.8; }
.oh-gnext ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.oh-gnext li { border-bottom: 1px solid var(--line); }
.oh-gnext li a { display: flex; justify-content: space-between; gap: 12px; padding: 13px 2px; color: var(--ink); text-decoration: none; font-weight: 500; line-height: 1.7; }
.oh-gnext li a span { color: var(--brand); flex: none; }
.oh-gnext li a:hover { color: var(--brand-dark); }
.oh-gnext--tel { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--brand); }
.oh-gtel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; }
.oh-gtel a { display: block; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; text-decoration: none; color: var(--ink); background: var(--paper-warm); }
.oh-gtel b { display: block; font-size: 12.5px; font-weight: 500; color: var(--ink-sub); }
.oh-gtel span { font-family: var(--f-round); font-weight: 700; font-size: 18px; color: var(--brand-dark); }
@media (max-width: 640px) { .oh-gtel { grid-template-columns: 1fr; } .oh-gnext { padding: 22px 18px; } }

/* ガイド：番号つきの手順（丸い番号と縦線） */
.oh-prose ol.oh-steps { list-style: none; margin: 20px 0; padding: 0; counter-reset: ohstep; }
.oh-prose ol.oh-steps > li { counter-increment: ohstep; position: relative; margin: 0; padding: 0 0 22px 52px; border-left: 0; }
.oh-prose ol.oh-steps > li::before { content: counter(ohstep); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--brand); color: #fff; font-family: var(--f-round); font-weight: 700; font-size: 16px; line-height: 34px; text-align: center; }
.oh-prose ol.oh-steps > li::after { content: ""; position: absolute; left: 16px; top: 40px; bottom: 6px; width: 2px; background: var(--line); }
.oh-prose ol.oh-steps > li:last-child { padding-bottom: 0; }
.oh-prose ol.oh-steps > li:last-child::after { display: none; }
.oh-prose ol.oh-steps > li > strong:first-child { display: block; margin-bottom: 4px; font-family: var(--f-round); font-size: 17px; color: var(--ink); }

/* ガイド：箇条書きを見やすく（1項目ずつ区切り線、丸いマーク） */
.oh-prose ul { list-style: none; padding: 0; margin: 18px 0; border-top: 1px solid var(--line); }
.oh-prose ul > li { position: relative; margin: 0; padding: 12px 6px 12px 26px; border-bottom: 1px solid var(--line); line-height: 1.85; }
.oh-prose ul > li + li { margin-top: 0; }
.oh-prose ul > li::before { content: ""; position: absolute; left: 6px; top: 1.15em; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
.oh-prose .oh-box ul, .oh-prose .oh-ohana ul, .oh-prose .oh-toc ul { border-top: 0; margin: 10px 0 0; }
.oh-prose .oh-box ul > li { border-bottom: 0; padding: 6px 0 6px 24px; }
.oh-prose .oh-box ul > li::before { left: 4px; top: 1.05em; }
.oh-prose ul ul { margin: 6px 0 0; }
