@charset "UTF-8";
/* =========================================================================
   のりぷとろぐ — static theme (2026 refresh)
   丸ゴシック見出し × 方眼ノートのヒーロー。
   記事HTMLは WordPress（SWELL）の出力をそのまま保持しているため、
   SWELL 由来の装飾クラスはすべて受け止めたうえで新トーンに合わせている。
   ========================================================================= */

:root {
  /* --- ink / paper ------------------------------------------------ */
  --ink: #272338;
  --ink-2: #5b5470;
  --ink-3: #8b849c;
  --paper: #f1f2f8;
  --card: #ffffff;
  --line: #e7e6ef;
  --line-soft: #f0eff6;

  /* --- brand ------------------------------------------------------ */
  --brand: #e94f45;
  --brand-deep: #c2372f;
  --brand-tint: #fdeeec;
  --brand-line: #f7d4cf;

  --aqua: #14a099;
  --aqua-tint: #e4f5f3;
  --sun: #f5a623;
  --sun-tint: #fff4e0;
  --grape: #7059c6;
  --grape-tint: #eeebfa;
  --sky: #3574c9;
  --sky-tint: #e9f1fb;

  /* --- SWELL 互換トークン（記事本文の装飾が参照する） ------------- */
  --color_main: var(--brand);
  --color_main_dark: var(--brand-deep);
  --color_main_thin: rgba(233, 79, 69, 0.07);
  --color_text: var(--ink);
  --color_link: #2a6fc4;
  --color_bg: #ffffff;
  --color_border: var(--line);

  --color_deep01: #e05149;
  --color_deep02: var(--sky);
  --color_deep03: #4aa564;
  --color_deep04: #ef9a3c;
  --color_pale01: #fdeeec;
  --color_pale02: #eaf2fb;
  --color_pale03: #ecf8ef;
  --color_pale04: #fff5e4;

  --color_mark_yellow: #ffef9e;
  --color_mark_blue: #c3e6ff;
  --color_mark_green: #c6f7cd;
  --color_mark_orange: #ffdfc2;

  --color_icon_point: var(--sun);
  --color_icon_check: #57bf72;
  --color_icon_hatena: var(--sky);
  --color_icon_caution: #eec32c;
  --color_icon_memo: #8d8799;
  --color_icon_batsu: #ef5f5f;
  --color_icon_info: #ec6fa8;
  --color_icon_info_bg: #fdeff6;
  --color_icon_pen: #7d7789;
  --color_icon_pen_bg: #f5f4f8;

  /* --- shape ------------------------------------------------------ */
  --r-lg: 22px;
  --r-md: 14px;
  --r-sm: 9px;
  --shadow-1: 0 1px 2px rgba(39, 35, 56, 0.05), 0 6px 18px -14px rgba(39, 35, 56, 0.4);
  --shadow-2: 0 2px 6px rgba(39, 35, 56, 0.06), 0 18px 34px -20px rgba(39, 35, 56, 0.45);

  --font-display: "Zen Maru Gothic", ui-rounded, "Hiragino Maru Gothic ProN",
    "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;

  --content_width: 760px;
  --shell: 1120px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.02em;
  word-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: var(--color_link); text-decoration: none; }
a:hover { text-decoration: underline; }

:focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 2px;
  border-radius: 4px;
}

time { font-variant-numeric: tabular-nums; letter-spacing: 0.06em; }

/* ------------------------------------------------------------- header */

.l-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid var(--line);
}
.l-header__bar { display: none; }
.l-header__inner {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
}
.l-header__logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.02em;
  line-height: 1;
}
.l-header__logo::before {
  content: "の";
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 11px;
  background: var(--brand);
  color: #fff;
  font-size: 16px;
  transform: rotate(-4deg);
}
.l-header__logo:hover { text-decoration: none; color: var(--brand-deep); }
.l-header__nav {
  display: flex;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
}
.l-header__nav a {
  color: var(--ink-2);
  padding: 6px 13px;
  border-radius: 999px;
}
.l-header__nav a:hover {
  text-decoration: none;
  color: var(--brand-deep);
  background: var(--brand-tint);
}

@media (min-width: 783px) {
  .l-header__bar {
    display: block;
    background: var(--ink);
  }
  .l-header__barInner {
    max-width: var(--shell);
    margin: 0 auto;
    padding: 5px 20px;
  }
  .l-header__tagline {
    margin: 0;
    font-size: 11.5px;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.78);
  }
}

/* --------------------------------------------------------------- main */

.l-main {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 26px 20px 72px;
}
body.single .l-main,
body.page .l-main,
body.notfound .l-main {
  max-width: calc(var(--content_width) + 120px);
}

.l-footer {
  border-top: 1px solid var(--line);
  background: #fff;
  padding: 34px 20px;
  text-align: center;
  font-size: 12px;
  color: var(--ink-3);
}
.l-footer p { margin: 5px auto; max-width: 640px; }
.l-footer .l-footer__note { line-height: 1.8; }

/* ================================================================= home */

.p-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 40px;
  padding: 40px 42px 42px;
  border: 1px solid var(--brand-line);
  border-radius: var(--r-lg);
  background:
    radial-gradient(circle at 1px 1px, rgba(233, 79, 69, 0.14) 1.3px, transparent 1.3px)
      -1px -1px / 21px 21px,
    linear-gradient(178deg, #fff5f3 0%, #ffffff 62%);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 30px;
  align-items: start;
}
@media (min-width: 900px) {
  .p-hero { grid-template-columns: minmax(0, 1fr) 352px; gap: 46px; }
}

.p-hero__eyebrow {
  display: inline-block;
  padding: 3px 13px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.9;
}
.p-hero__title {
  font-family: var(--font-display);
  font-size: clamp(30px, 5.4vw, 44px);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: 0.01em;
  margin: 16px 0 0;
  color: var(--ink);
}
.p-hero__title .u-brand { color: var(--brand); }
.p-hero__lead {
  margin: 14px 0 0;
  font-size: 15px;
  line-height: 2;
  color: var(--ink-2);
  max-width: 34em;
}
.p-hero__by {
  margin: 18px 0 0;
  font-size: 12.5px;
  color: var(--ink-3);
}

.p-hero__guide {
  padding: 18px 18px 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-1);
}
.p-hero__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: hstep;
}
.p-hero__stepsTitle {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding: 0 4px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.p-hero__stepsTitle::before {
  content: "";
  width: 18px;
  height: 3px;
  border-radius: 2px;
  background: var(--brand);
}
.p-hero__step + .p-hero__step { margin-top: 4px; }
.p-hero__step a {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 11px;
  color: inherit;
  transition: background 0.15s ease;
}
.p-hero__step a:hover { background: var(--brand-tint); text-decoration: none; }
.p-hero__stepNo {
  counter-increment: hstep;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand-deep);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
}
.p-hero__stepNo::after { content: counter(hstep); }
.p-hero__stepLabel {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink);
}
.p-hero__stepTitle {
  display: block;
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--ink-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.p-hero__step + .p-hero__step .p-hero__stepNo { position: relative; }
.p-hero__step + .p-hero__step .p-hero__stepNo::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 50%;
  width: 1px;
  height: 10px;
  background: var(--brand-line);
}

/* --- 一覧ヘッダ + フィルタ ---------------------------------------- */

.p-index__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 18px;
}
.c-sectionTitle {
  display: flex;
  align-items: baseline;
  gap: 9px;
  margin: 0;
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.c-sectionTitle__count {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
  letter-spacing: 0.08em;
}

.c-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.c-filter__btn {
  appearance: none;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-2);
  font: inherit;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.6;
  padding: 5px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.c-filter__btn:hover { border-color: var(--brand-line); color: var(--brand-deep); }
.c-filter__btn[aria-pressed="true"] {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.c-filter__n { font-size: 10.5px; opacity: 0.6; letter-spacing: 0.04em; }
.p-index__empty {
  margin: 20px 0 0;
  font-size: 14px;
  color: var(--ink-3);
}

/* --- 記事カード（高さ揃え） ---------------------------------------- */

.p-postList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
  gap: 22px 20px;
}
.p-postList__item { display: flex; }
.p-postList__item[hidden] { display: none; }

.p-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
  color: inherit;
  box-shadow: var(--shadow-1);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.p-card:hover {
  text-decoration: none;
  transform: translateY(-3px);
  border-color: var(--brand-line);
  box-shadow: var(--shadow-2);
}
.p-card__thumb {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #f3f2f8, #e9e8f2);
  overflow: hidden;
}
.p-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.p-card:hover .p-card__thumb img { transform: scale(1.035); }
.p-card__noimg {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 14px;
  color: var(--ink-3);
}
.p-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  padding: 13px 16px 16px;
}
.p-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;   /* 折り返すとカードの高さがずれるので1行に固定 */
  gap: 6px;
  font-size: 11px;
  color: var(--ink-3);
  height: 20px;
  overflow: hidden;
}
.p-card__meta .c-cat { flex: none; max-width: 62%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.p-card__meta time { flex: none; }
.p-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15.5px;
  line-height: 1.62;
  margin: 8px 0 0;
  color: var(--ink);
  height: calc(1.62em * 3);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-card:hover .p-card__title { color: var(--brand-deep); }
.p-card__excerpt {
  margin: 8px 0 0;
  font-size: 12.5px;
  line-height: 1.75;
  color: var(--ink-3);
  height: calc(1.75em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* --- バッジ -------------------------------------------------------- */

.c-cat {
  display: inline-block;
  background: var(--ink);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 1px 9px;
  border-radius: 999px;
  line-height: 1.8;
}
.c-cat[data-cat="仮想通貨"] { background: var(--brand); }
.c-cat[data-cat="ビットコイン"] { background: var(--sun); }
.c-cat[data-cat="NFT"] { background: var(--aqua); }
.c-cat[data-cat="LLAC"] { background: var(--grape); }
.c-cat[data-cat="ブログ"] { background: var(--sky); }
.c-cat[data-cat="キャンペーン"] { background: #d94f8c; }
.c-cat[data-cat="イベント"] { background: #4aa564; }

.c-tag {
  display: inline-block;
  font-size: 11.5px;
  color: var(--ink-2);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 1px 13px;
  margin: 0 6px 7px 0;
}

/* ============================================================== article */

.p-article {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 34px 44px 44px;
  box-shadow: var(--shadow-1);
}
.c-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: var(--ink-3);
  margin-bottom: 16px;
}
.c-breadcrumb a { color: var(--ink-3); }
.c-breadcrumb a:hover { color: var(--brand-deep); }
.c-breadcrumb__sep { color: #c9c5d4; }
.c-breadcrumb__current {
  max-width: 22em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.p-article__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11.5px;
  color: var(--ink-3);
}
.p-article__title {
  font-family: var(--font-display);
  font-size: clamp(23px, 3.4vw, 30px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.01em;
  margin: 14px 0 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.p-article__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 74px;
  height: 3px;
  border-radius: 2px;
  background: var(--brand);
}
.p-article__thumb { margin: 0 0 30px; }
.p-article__thumb img {
  width: 100%;
  max-height: 400px;
  object-fit: cover;
  border-radius: var(--r-md);
}
.p-article__tags { margin-top: 44px; }
.p-article__back { margin-top: 26px; font-size: 13.5px; }

/* --- 前後記事ナビ --------------------------------------------------- */

.p-postNav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px dashed var(--line);
}
.p-postNav__item {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  min-height: 84px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  color: inherit;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.p-postNav__item:hover {
  text-decoration: none;
  border-color: var(--brand-line);
  box-shadow: var(--shadow-1);
}
.p-postNav__item.-next { grid-template-columns: minmax(0, 1fr) 62px; text-align: right; }
.p-postNav__item.-next .p-postNav__thumb { order: 2; }
.p-postNav__thumb {
  width: 62px;
  height: 62px;
  border-radius: 10px;
  object-fit: cover;
  background: var(--line-soft);
}
.p-postNav__label {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--brand);
  margin-bottom: 3px;
}
.p-postNav__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink);
}

/* ---------------------------------------------------------------- TOC */

.p-toc {
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 20px 24px 18px;
  margin: 0 0 38px;
  background: #fbfbfe;
}
.p-toc__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 10px;
}
.p-toc__title::before {
  content: "";
  width: 16px;
  height: 3px;
  border-radius: 2px;
  background: var(--brand);
}
.p-toc__list, .p-toc__sub { margin: 0; padding-left: 1.5em; }
.p-toc__item { margin: 7px 0; font-size: 13.5px; line-height: 1.7; }
.p-toc__item::marker { color: var(--ink-3); font-size: 0.9em; }
.p-toc__item > a { color: var(--ink); text-decoration: none; }
.p-toc__item > a:hover { color: var(--brand-deep); text-decoration: underline; }
.p-toc__item.-sub { font-size: 12.5px; }
.p-toc__item.-sub > a { color: var(--ink-2); }
.p-toc__sub { margin: 5px 0; }

/* ==================================================== post content base */

.post_content { font-size: 16px; }
.post_content > *:first-child { margin-top: 0; }
.post_content p { margin: 0 0 1.8em; }
.post_content a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.post_content a:hover { color: var(--brand-deep); }

.post_content h2 {
  position: relative;
  font-family: var(--font-display);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.55;
  margin: 3em 0 1.3em;
  padding: 0.75em 0.9em 0.75em 1.1em;
  background: var(--brand-tint);
  color: var(--ink);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.post_content h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: var(--brand);
}
.post_content h3 {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.55;
  margin: 2.6em 0 1em;
  padding: 0 0 0.5em 0;
  border-bottom: 2px solid var(--line);
}
.post_content h3::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 3px;
  background: var(--brand);
  margin-right: 0.55em;
  vertical-align: 0.08em;
}
.post_content h4 {
  font-family: var(--font-display);
  font-size: 17px;
  margin: 2.2em 0 0.9em;
  padding-left: 0.6em;
  border-left: 3px solid var(--ink-3);
}
.post_content ul, .post_content ol { margin: 0 0 1.8em; padding-left: 1.6em; }
.post_content li { margin-bottom: 0.45em; }
.post_content li::marker { color: var(--brand); }
.post_content blockquote:not(.twitter-tweet) {
  margin: 2em 0;
  padding: 1.3em 1.5em;
  background: #f8f8fc;
  border-left: 4px solid var(--line);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  color: var(--ink-2);
}
.post_content hr { border: 0; border-top: 1px dashed var(--line); margin: 3em 0; }

/* ----------------------------------------------------- inline decoration */

.swl-marker {
  background: linear-gradient(transparent 60%, var(--color_mark_yellow) 60%);
  padding-bottom: 0.1em;
}
.swl-marker.mark_yellow { background: linear-gradient(transparent 60%, var(--color_mark_yellow) 60%); }
.swl-marker.mark_blue   { background: linear-gradient(transparent 60%, var(--color_mark_blue) 60%); }
.swl-marker.mark_green  { background: linear-gradient(transparent 60%, var(--color_mark_green) 60%); }
.swl-marker.mark_orange { background: linear-gradient(transparent 60%, var(--color_mark_orange) 60%); }

.has-swl-main-color { color: var(--brand); }
.has-swl-deep-01-color { color: var(--color_deep01); }
.has-black-color { color: #000; }
.has-swl-main-background-color { background-color: var(--brand); }
.has-swl-main-thin-background-color { background-color: var(--color_main_thin); }
.has-swl-deep-02-background-color { background-color: var(--color_deep02); }
.has-swl-pale-01-background-color { background-color: var(--color_pale01); }
.swl-bg-color { padding: 0 0.25em; border-radius: 4px; }

.swl-fz.u-fz-xs { font-size: 0.75em; }
.swl-fz.u-fz-s  { font-size: 0.875em; }
.swl-fz.u-fz-l  { font-size: 1.125em; }
.swl-fz.u-fz-xl { font-size: 1.3em; }
.has-small-font-size { font-size: 0.875em; }

.u-mb-0  { margin-bottom: 0 !important; }
.u-mb-10 { margin-bottom: 10px !important; }
.u-mb-20 { margin-bottom: 20px !important; }
.u-mb-30 { margin-bottom: 30px !important; }
.u-bg-main { background-color: var(--brand); }

.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.has-text-align-left { text-align: left; }
.aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.alignleft { text-align: left; }
.alignright { text-align: right; }

/* ------------------------------------------------------------- 吹き出し */

.swell-block-balloon { margin: 2.6em 0; }
.c-balloon {
  display: flex;
  align-items: flex-start;
  position: relative;
}
.c-balloon.-bln-right { flex-direction: row-reverse; }

.c-balloon__icon {
  flex: none;
  width: 64px;
  text-align: center;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ink-3);
}
.c-balloon__iconImg {
  width: 64px !important;
  height: 64px !important;
  object-fit: cover;
  background: #fff;
}
.c-balloon__icon.-circle .c-balloon__iconImg {
  border-radius: 50%;
  border: 2px solid var(--line);
}

.c-balloon__body {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 22px;
  padding: 1.05em 1.35em;
  border-radius: 16px;
  border: 2px solid var(--line);
  background: #fff;
}
.-bln-right .c-balloon__body { margin-left: 0; margin-right: 22px; }
.c-balloon__body.-border-none { border: none; background: #f5f5fa; }
.c-balloon__text > p { margin: 0 0 0.8em; }
.c-balloon__text > p:last-of-type { margin-bottom: 0; }

/* 吹き出しカラー（data-col） */
.c-balloon[data-col="red"]    .c-balloon__body { background: var(--color_pale01); border-color: var(--brand-line); }
.c-balloon[data-col="blue"]   .c-balloon__body { background: var(--color_pale02); border-color: #c8dcf5; }
.c-balloon[data-col="green"]  .c-balloon__body { background: var(--color_pale03); border-color: #c6e6cf; }
.c-balloon[data-col="yellow"] .c-balloon__body { background: var(--color_pale04); border-color: #f5e0b6; }
.c-balloon[data-col="gray"]   .c-balloon__body { background: #f4f4f8; border-color: #e5e4ec; }

/* しっぽ */
.c-balloon__shapes { display: block; }
.c-balloon__before, .c-balloon__after {
  position: absolute;
  top: 22px;
  width: 0;
  height: 0;
  border: 10px solid transparent;
}
.-speaking .c-balloon__before {
  left: -20px;
  border-right-color: var(--line);
}
.-speaking .c-balloon__after {
  left: -17px;
  border-right-color: #fff;
}
.-bln-right .-speaking .c-balloon__before { left: auto; right: -20px; border-right-color: transparent; border-left-color: var(--line); }
.-bln-right .-speaking .c-balloon__after  { left: auto; right: -17px; border-right-color: transparent; border-left-color: #fff; }

.c-balloon[data-col="red"]    .-speaking .c-balloon__after { border-right-color: var(--color_pale01); border-left-color: transparent; }
.c-balloon[data-col="blue"]   .-speaking .c-balloon__after { border-right-color: var(--color_pale02); border-left-color: transparent; }
.c-balloon[data-col="green"]  .-speaking .c-balloon__after { border-right-color: var(--color_pale03); border-left-color: transparent; }
.c-balloon[data-col="yellow"] .-speaking .c-balloon__after { border-right-color: var(--color_pale04); border-left-color: transparent; }
.c-balloon[data-col="gray"]   .-speaking .c-balloon__after { border-right-color: #f4f4f8; border-left-color: transparent; }
.c-balloon[data-col="red"]    .-speaking .c-balloon__before { border-right-color: var(--brand-line); }
.c-balloon[data-col="blue"]   .-speaking .c-balloon__before { border-right-color: #c8dcf5; }
.c-balloon[data-col="green"]  .-speaking .c-balloon__before { border-right-color: #c6e6cf; }
.c-balloon[data-col="yellow"] .-speaking .c-balloon__before { border-right-color: #f5e0b6; }

.-border-none .c-balloon__before { display: none; }

.-bln-right .c-balloon[data-col] .-speaking .c-balloon__after,
.-bln-right .-speaking .c-balloon__after { border-right-color: transparent; }
.-bln-right .c-balloon__after { border-left-color: #f5f5fa; }

/* -think（考えごと）は丸を2つ並べる */
.-think .c-balloon__before, .-think .c-balloon__after {
  border: none;
  border-radius: 50%;
  background: #f5f5fa;
}
.-think .c-balloon__before { left: -16px; top: 18px; width: 12px; height: 12px; }
.-think .c-balloon__after  { left: -26px; top: 30px; width: 7px; height: 7px; }

/* --------------------------------------------------- 大アイコン付き段落 */

.post_content [class*="is-style-big_icon_"] {
  position: relative;
  margin-top: 2.8em;
  margin-bottom: 2.2em;
  padding: 1.6em 1.5em 1.4em;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
}
.post_content [class*="is-style-big_icon_"]::before {
  content: "";
  position: absolute;
  top: -0.85em;
  left: 1em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.8em;
  height: 1.8em;
  border-radius: 50%;
  color: #fff;
  font-size: 1.1em;
  font-weight: 700;
  line-height: 1;
  background: var(--ink-3);
  box-shadow: 0 0 0 4px #fff;
}
.post_content .is-style-big_icon_point::before   { content: "!"; background: var(--color_icon_point); }
.post_content .is-style-big_icon_check::before   { content: "✓"; background: var(--color_icon_check); }
.post_content .is-style-big_icon_hatena::before  { content: "?"; background: var(--color_icon_hatena); }
.post_content .is-style-big_icon_caution::before { content: "!"; background: var(--color_icon_caution); }
.post_content .is-style-big_icon_memo::before    { content: "✎"; background: var(--color_icon_memo); }
.post_content .is-style-big_icon_batsu::before   { content: "×"; background: var(--color_icon_batsu); }
.post_content .is-style-big_icon_good::before    { content: "◎"; background: var(--color_icon_check); }
.post_content .is-style-big_icon_bad::before     { content: "×"; background: var(--color_icon_batsu); }

.post_content .is-style-big_icon_point   { border-color: #f7dcb4; background: #fffaf1; }
.post_content .is-style-big_icon_check   { border-color: #c6e6cf; background: #f6fdf8; }
.post_content .is-style-big_icon_hatena  { border-color: #c8dcf5; background: #f5f9fe; }
.post_content .is-style-big_icon_caution { border-color: #f0e3a8; background: #fffdf1; }
.post_content .is-style-big_icon_memo    { border-color: var(--line); background: #fafaFD; }

/* ------------------------------------------------- 小アイコン付き段落 */

.post_content [class*="is-style-icon_"] {
  position: relative;
  padding: 1.15em 1.3em 1.15em 3.1em;
  margin: 2em 0;
  border-radius: var(--r-sm);
  background: #f5f5fa;
}
.post_content [class*="is-style-icon_"]::before {
  position: absolute;
  left: 1.1em;
  top: 1.1em;
  font-size: 1.1em;
  line-height: 1.4;
  font-weight: 700;
}
.post_content .is-style-icon_info { background: var(--color_icon_info_bg); }
.post_content .is-style-icon_info::before { content: "i"; color: var(--color_icon_info); font-style: italic; }
.post_content .is-style-icon_pen { background: var(--color_icon_pen_bg); }
.post_content .is-style-icon_pen::before { content: "✎"; color: var(--color_icon_pen); }
.post_content .is-style-icon_good { background: #edfbef; }
.post_content .is-style-icon_good::before { content: "◎"; color: #3cbb59; }
.post_content .is-style-icon_bad { background: #eaf4fd; }
.post_content .is-style-icon_bad::before { content: "×"; color: #4b73eb; }
.post_content .is-style-icon_announce { background: #fff3ee; }
.post_content .is-style-icon_announce::before { content: "!"; color: #f5943c; }
.post_content .is-style-icon_book { background: #f7f6f0; }
.post_content .is-style-icon_book::before { content: "▣"; color: #7c7767; }

/* ------------------------------------------------------------ リスト装飾 */

.post_content ol.is-style-num_circle,
.post_content ul.is-style-num_circle {
  list-style: none;
  padding-left: 0;
  counter-reset: swlnum;
}
.post_content .is-style-num_circle > li {
  position: relative;
  padding-left: 2.3em;
  margin-bottom: 0.6em;
}
.post_content .is-style-num_circle > li::before {
  counter-increment: swlnum;
  content: counter(swlnum);
  position: absolute;
  left: 0;
  top: 0.35em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.55em;
  height: 1.55em;
  font-size: 0.85em;
  font-weight: 700;
  color: #fff;
  background: var(--brand);
  border-radius: 50%;
  line-height: 1;
}
.post_content .-list-under-dashed > li {
  border-bottom: 1px dashed var(--line);
  padding-bottom: 0.5em;
}
.post_content .-list-under-dashed > li:last-child { border-bottom: none; }
.post_content .wp-block-list.has-background { padding: 1.3em 1.5em; border-radius: var(--r-sm); }
.post_content .is-style-check_list { list-style: none; padding-left: 0; }
.post_content .is-style-check_list > li { position: relative; padding-left: 1.7em; }
.post_content .is-style-check_list > li::before {
  content: "✓"; position: absolute; left: 0; color: var(--brand); font-weight: 700;
}

/* --------------------------------------------------------------- ボタン */

.swell-block-button { margin: 2.4em 0; text-align: center; }
.swell-block-button__link {
  position: relative;
  display: inline-block;
  max-width: 100%;
  min-width: 280px;
  padding: 0.95em 2.2em;
  border-radius: 999px;
  background: var(--brand);
  color: #fff !important;
  font-family: var(--font-display);
  font-weight: 700;
  text-decoration: none !important;
  line-height: 1.5;
  box-shadow: 0 6px 16px -6px rgba(233, 79, 69, 0.7);
  overflow: hidden;
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}
.swell-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -8px rgba(233, 79, 69, 0.75); }
.swell-block-button.red_   .swell-block-button__link { background: var(--color_deep01); box-shadow: 0 6px 16px -6px rgba(224, 81, 73, 0.7); }
.swell-block-button.blue_  .swell-block-button__link { background: var(--color_deep02); box-shadow: 0 6px 16px -6px rgba(53, 116, 201, 0.7); }
.swell-block-button.green_ .swell-block-button__link { background: var(--color_deep03); box-shadow: 0 6px 16px -6px rgba(74, 165, 100, 0.7); }
.swell-block-button.yellow_ .swell-block-button__link { background: var(--color_deep04); box-shadow: 0 6px 16px -6px rgba(239, 154, 60, 0.7); }
.swell-block-button.-size-s .swell-block-button__link {
  min-width: 0; padding: 0.55em 1.5em; font-size: 0.9em;
}

/* きらっと光るボタン */
.swell-block-button.is-style-btn_shiny .swell-block-button__link::after {
  content: "";
  position: absolute;
  top: -60%;
  left: -80%;
  width: 40%;
  height: 220%;
  background: rgba(255, 255, 255, 0.32);
  transform: rotate(25deg);
  animation: swl-shine 3.2s ease-in-out infinite;
}
@keyframes swl-shine {
  0%, 65% { left: -80%; }
  100% { left: 130%; }
}
@media (prefers-reduced-motion: reduce) {
  .swell-block-button.is-style-btn_shiny .swell-block-button__link::after { animation: none; opacity: 0; }
}

/* 線だけボタン */
.swell-block-button.is-style-btn_line .swell-block-button__link {
  background: transparent;
  color: var(--brand) !important;
  border: 2px solid currentColor;
  box-shadow: none;
}
.swell-block-button.is-style-btn_line.red_ .swell-block-button__link { color: var(--color_deep01) !important; }
.swell-block-button.is-style-btn_line.blue_ .swell-block-button__link { color: var(--color_deep02) !important; }
.swell-block-button.is-style-btn_line.green_ .swell-block-button__link { color: var(--color_deep03) !important; }

/* --------------------------------------------------------------- STEP */

.swell-block-step { counter-reset: swlstep; margin: 2.6em 0; }
.swell-block-step__item {
  position: relative;
  padding: 0 0 2em 2.5em;
  border-left: 2px dashed var(--brand-line);
}
.swell-block-step__item:last-child { border-left-color: transparent; padding-bottom: 0; }
.swell-block-step__number {
  counter-increment: swlstep;
  position: absolute;
  left: -1.35em;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 2.7em;
  height: 2.7em;
  border-radius: 50%;
  color: #fff;
  background: var(--brand);
  font-family: var(--font-display);
  font-size: 0.85em;
  line-height: 1;
  box-shadow: 0 0 0 4px #fff;
}
.swell-block-step__number .__label { font-size: 0.62em; letter-spacing: 0.03em; }
.swell-block-step__number::after {
  content: counter(swlstep);
  font-size: 1.15em;
  font-weight: 700;
  margin-top: 1px;
}
.swell-block-step__title {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.55;
  margin-bottom: 0.85em;
  padding: 0.15em 0 0.5em;
  border-bottom: 1px dashed var(--line);
}
.swell-block-step__body > *:last-child { margin-bottom: 0; }
.swell-block-step[data-num-style="square"] .swell-block-step__number { border-radius: 9px; }

/* --------------------------------------------------------- アコーディオン */

.swell-block-accordion { margin: 2.4em 0; }
.swell-block-accordion__item {
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  margin-bottom: 0.8em;
  background: #fff;
  overflow: hidden;
}
.swell-block-accordion__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  padding: 0.95em 1.2em;
  cursor: pointer;
  font-family: var(--font-display);
  font-weight: 700;
  list-style: none;
  background: #f9f9fd;
}
.swell-block-accordion__title::-webkit-details-marker { display: none; }
.swell-block-accordion__body { padding: 1.3em 1.3em 0.5em; border-top: 1px dashed var(--line); }
.swell-block-accordion__icon { flex: none; color: var(--brand); font-size: 0.8em; }
.icon-caret-down::before { content: "▼"; font-style: normal; }
.icon-caret-up::before { content: "▲"; font-style: normal; }
.swell-block-accordion__item:not([open]) .__icon--opened { display: none; }
.swell-block-accordion__item[open] .__icon--closed { display: none; }

/* ------------------------------------------------------------ キャプション枠 */

.swell-block-capbox.cap_box {
  margin: 2.6em 0;
  border: 1px solid var(--color_deep01);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
}
.cap_box_ttl {
  display: flex;
  align-items: center;
  gap: 0.45em;
  padding: 0.65em 1.1em;
  background: var(--color_deep01);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95em;
  line-height: 1.5;
}
.cap_box_ttl svg { fill: currentColor; flex: none; }
.cap_box_content { padding: 1.4em 1.4em 0.4em; }
.cap_box_content > *:last-child { margin-bottom: 1em; }
.cap_box[data-colset="col1"] { border-color: var(--color_deep01); }
.cap_box[data-colset="col1"] .cap_box_ttl { background: var(--color_deep01); }
.cap_box[data-colset="col2"] { border-color: var(--color_deep02); }
.cap_box[data-colset="col2"] .cap_box_ttl { background: var(--color_deep02); }
.cap_box[data-colset="col3"] { border-color: var(--color_deep03); }
.cap_box[data-colset="col3"] .cap_box_ttl { background: var(--color_deep03); }
.cap_box[data-colset="col4"] { border-color: var(--color_deep04); }
.cap_box[data-colset="col4"] .cap_box_ttl { background: var(--color_deep04); }

/* =========================================================== ブログカード
   記事内の内部／外部リンクカード。
   高さを固定し、タイトルと説明文は行数クランプで打ち切ることで
   カードの縦幅を常に揃える。
   ------------------------------------------------------------------- */

.swell-block-postLink { margin: 2.4em 0; }

.p-blogCard {
  display: block;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
  box-shadow: var(--shadow-1);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.p-blogCard:hover {
  border-color: var(--brand-line);
  box-shadow: var(--shadow-2);
  transform: translateY(-2px);
}
.p-blogCard__inner {
  display: grid;
  grid-template-columns: 178px minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  grid-template-areas:
    "thumb caption"
    "thumb body";
  column-gap: 18px;
  height: 142px;                 /* ← 高さを固定して不揃いを解消 */
}
.p-blogCard__caption {
  grid-area: caption;
  align-self: start;
  justify-self: start;
  max-width: 100%;
  margin-top: 14px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--brand-tint);
  color: var(--brand-deep);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.9;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-blogCard__thumb {
  grid-area: thumb;
  position: relative;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(135deg, #f3f2f8, #e9e8f2);
}
/* .post_content figure の余白を打ち消す（サムネイルは枠いっぱいに） */
.p-blogCard__thumb .c-postThumb__figure { height: 100%; margin: 0; }
.p-blogCard__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  display: block;
}
.p-blogCard__thumbPh {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--ink-3);
}
.p-blogCard__body {
  grid-area: body;
  min-width: 0;
  padding: 4px 18px 14px 0;
  overflow: hidden;
}
.p-blogCard__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink) !important;
  text-decoration: none !important;
  word-break: break-word;
  height: calc(1.6em * 2);
}
.p-blogCard:hover .p-blogCard__title { color: var(--brand-deep) !important; }
.p-blogCard__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.75;
  margin-top: 6px;
  height: calc(1.75em * 2);
}
/* 画像のないカード（素URLのリンクなど）も同じ高さに揃える */
.p-blogCard.-noimg .p-blogCard__inner {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "caption"
    "body";
  height: 108px;
  column-gap: 0;
  padding-left: 18px;
}
.p-blogCard.-noimg .p-blogCard__body { padding-right: 18px; }
.p-blogCard.-noimg .p-blogCard__title { -webkit-line-clamp: 2; }

.c-postThumb__figure { display: block; margin: 0; }
.c-postThumb__img { width: 100%; }
.u-obf-cover { object-fit: cover; }

/* --------------------------------------------------------------- タブ */

.swell-block-tab { margin: 2.4em 0; }
.c-tabList { display: flex; list-style: none; margin: 0; padding: 0; gap: 5px; }
.c-tabList__item { flex: 0 1 auto; }
.c-tabList__button {
  appearance: none;
  border: 1px solid var(--line);
  border-bottom: none;
  background: #f4f4f9;
  color: var(--ink-3);
  padding: 0.6em 1.4em;
  border-radius: 10px 10px 0 0;
  font: inherit;
  font-size: 0.9em;
  font-weight: 700;
  cursor: pointer;
}
.c-tabList__button[aria-selected="true"] {
  background: #fff;
  color: var(--brand-deep);
}
.c-tabBody {
  border: 1px solid var(--line);
  border-radius: 0 10px 10px 10px;
  padding: 1.4em 1.4em 0.4em;
  background: #fff;
}
.c-tabBody__item[aria-hidden="true"] { display: none; }

/* ------------------------------------------------------------ リンクリスト */

.swell-block-linkList { list-style: none; margin: 2em 0; padding: 0; }
.swell-block-linkList__item { border-bottom: 1px dashed var(--line); }
.swell-block-linkList__link {
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.75em 0.2em;
  color: var(--ink);
  text-decoration: none !important;
}
.swell-block-linkList__link:hover { color: var(--brand-deep); }
.swell-block-linkList__icon { flex: none; fill: var(--brand); }

/* --------------------------------------------------------------- 画像 */

.post_content figure { margin: 2.2em 0; }
.wp-block-image { text-align: center; }
.wp-block-image img { border-radius: var(--r-sm); }
.wp-block-image.alignleft { text-align: left; }
.wp-block-image.alignright { text-align: right; }
.wp-element-caption, .wp-block-image figcaption {
  font-size: 0.8em;
  color: var(--ink-3);
  text-align: center;
  margin-top: 0.6em;
}
.wp-block-gallery.is-layout-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.wp-block-gallery.is-layout-flex > figure {
  flex: 1 1 calc(50% - 12px);
  margin: 0;
  min-width: 200px;
}
.wp-block-gallery.is-cropped > figure img { width: 100%; }

.wp-block-embed { margin: 2em 0; }
.wp-block-embed__wrapper { word-break: break-all; }
.wp-block-embed iframe { max-width: 100%; }

/* --------------------------------------------------------------- テーブル */

.wp-block-table { margin: 2.2em 0; overflow-x: auto; }
.wp-block-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.9em;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.wp-block-table th, .wp-block-table td {
  position: relative;
  z-index: 0; /* stacking context so .swl-cell-bg sits behind the cell text */
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  padding: 0.8em 0.9em;
  vertical-align: middle;
}
.wp-block-table tr > *:last-child { border-right: none; }
.wp-block-table tr:last-child > * { border-bottom: none; }
.wp-block-table thead th { background: #f6f6fb; font-weight: 700; color: var(--ink); }
.wp-block-table th[data-has-cell-bg="1"],
.wp-block-table td[data-has-cell-bg="1"] { background: transparent; }
.wp-block-table.is-all-centered th, .wp-block-table.is-all-centered td { text-align: center; }
.wp-block-table .has-fixed-layout { table-layout: fixed; }
.swl-cell-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
}
.c-scrollHint {
  font-size: 0.75em;
  color: var(--ink-3);
  text-align: right;
  margin-bottom: 0.3em;
}
.icon-more_arrow::before { content: "→"; font-style: normal; }
@media (min-width: 768px) { .c-scrollHint.sp_ { display: none; } }

/* ---------------------------------------------------------- 埋め込み補正 */

.twitter-tweet {
  margin: 2em auto !important;
  max-width: 550px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.1em 1.3em;
  background: #fff;
  font-size: 0.9em;
}
.twitter-tweet-rendered { border: none; padding: 0; }

/* ------------------------------------------------------- お問い合わせ */

.wpforms-container { margin: 2em 0; }
.wpforms-field { margin-bottom: 1.4em; }
.wpforms-field-label { display: block; font-weight: 700; margin-bottom: 0.4em; font-size: 0.95em; }
.wpforms-required-label { color: var(--brand); }
.wpforms-field-row { display: flex; gap: 12px; flex-wrap: wrap; }
.wpforms-field-row-block { flex: 1 1 200px; }
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container textarea {
  width: 100%;
  padding: 0.65em 0.85em;
  border: 1px solid #d9d7e2;
  border-radius: var(--r-sm);
  font: inherit;
  background: #fff;
}
.wpforms-container textarea { min-height: 160px; }
.wpforms-field-sublabel { font-size: 0.75em; color: var(--ink-3); }
.wpforms-submit {
  padding: 0.8em 2.4em;
  border: none;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.wpforms-error-noscript { display: none; }
.c-formNotice {
  margin: 1.5em 0;
  padding: 1.1em 1.3em;
  border: 1px solid #f5e0b6;
  background: var(--color_pale04);
  border-radius: var(--r-sm);
  font-size: 0.9em;
}

/* ------------------------------------------------------------ レスポンシブ */

@media (max-width: 900px) {
  .p-hero { padding: 30px 24px 30px; }
}

@media (max-width: 782px) {
  body { font-size: 15px; }
  .l-main { padding: 18px 14px 56px; }

  .l-header__inner { padding: 10px 14px; gap: 8px; }
  .l-header__logo { font-size: 18px; gap: 7px; flex: none; }
  .l-header__logo::before { width: 28px; height: 28px; border-radius: 9px; font-size: 14px; }
  .l-header__nav { gap: 2px; font-size: 12px; }
  .l-header__nav a { padding: 5px 9px; white-space: nowrap; }

  .p-hero { margin-bottom: 30px; border-radius: 18px; }
  .p-hero__lead { font-size: 14px; }

  .p-article { padding: 22px 18px 32px; border-radius: 16px; }
  .p-article__title { padding-bottom: 16px; margin-bottom: 18px; }
  .post_content h2 { font-size: 18.5px; }
  .post_content h3 { font-size: 17px; }
  .post_content h4 { font-size: 16px; }

  .p-postList { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px 12px; }
  .p-card__body { padding: 11px 12px 13px; }
  .p-card__title { font-size: 14px; }
  .p-card__excerpt { display: none; }

  .p-postNav__item.-next { text-align: left; grid-template-columns: 54px minmax(0, 1fr); }
  .p-postNav__item.-next .p-postNav__thumb { order: 0; }
  .p-postNav__item { grid-template-columns: 54px minmax(0, 1fr); min-height: 76px; }
  .p-postNav__thumb { width: 54px; height: 54px; }

  .c-balloon__icon, .c-balloon__iconImg { width: 52px !important; }
  .c-balloon__iconImg { height: 52px !important; }
  .c-balloon__body { margin-left: 16px; padding: 0.9em 1em; }
  .-bln-right .c-balloon__body { margin-right: 16px; }
  .swell-block-button__link { min-width: 0; width: 100%; padding: 0.9em 1em; }
  .wp-block-gallery.is-layout-flex > figure { flex-basis: 100%; }

  .p-blogCard__inner {
    grid-template-columns: 108px minmax(0, 1fr);
    column-gap: 13px;
    height: 112px;
  }
  .p-blogCard__caption { margin-top: 10px; font-size: 10px; }
  .p-blogCard__body { padding: 2px 13px 10px 0; }
  .p-blogCard__title { font-size: 13.5px; line-height: 1.55; height: calc(1.55em * 2); }
  .p-blogCard__excerpt { display: none; }
  .p-blogCard.-noimg .p-blogCard__inner { height: 92px; padding-left: 13px; }
  .p-blogCard.-noimg .p-blogCard__body { padding-right: 13px; }
}

@media (max-width: 430px) {
  /* 1カラムでは横並びの薄型カードにして、高さを完全に揃える */
  .p-postList { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .p-card { flex-direction: row; height: 112px; }
  .p-card__thumb { width: 124px; flex: none; aspect-ratio: auto; height: 100%; }
  .p-card__body { padding: 10px 13px; }
  .p-card__meta { min-height: 18px; }
  .p-card__title { -webkit-line-clamp: 3; height: calc(1.55em * 3); line-height: 1.55; margin-top: 5px; }
}
