@charset "UTF-8";
/* ==========================================================
   yohaku TOP
   PC: 1440px デザイン基準 / SP: 767px 以下
   ========================================================== */

:root {
  --c-text: #555;
  --c-text-body: #666;
  --c-text-sub: #777;
  --c-text-mute: #a8a8a8;
  --c-brown: #7a6b62;
  --c-brown-line: #8e5f45;
  --c-dark: #3a2f29;
  --c-green: #5d7a66;
  --c-green-light: #7c9883;
  --c-coral: #e9775d;
  --c-cream: #faf7f2;
  --c-pink-bg: rgba(251, 214, 201, 0.3);   /* 波形SVGと同じ色（#FBD6C9 / 30%） */
  --c-pink-card: #fee4db;
  --c-pink-work: #fff8f4;
  --c-footer: #edeae8;
  --c-footer-bottom: #f5f4f3;
  --c-footer-text: #222323;

  --ff-base: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic", sans-serif;
  --ff-en: "Quicksand", var(--ff-base);
  --ff-avenir: "Avenir Next", "Quicksand", var(--ff-base);

  --radius-leaf: 84px 10px 84px 10px;     /* 左上・右上・右下・左下 */
  --radius-leaf-s: 40px 10px 40px 10px;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: var(--c-text-body);
  font-family: var(--ff-base);
  font-weight: 400;
  letter-spacing: 0.05em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1, h2, h3, h4, p, ul, ol { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input { font: inherit; letter-spacing: inherit; }

.sp-only { display: none; }

/* ---------- layout ---------- */
.container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ---------- section heading ---------- */
.sec-head { text-align: center; }
.sec-head__en {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--c-green);
  font-family: var(--ff-en);
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.sec-head__en--light { color: var(--c-green-light); }
.sec-head__title {
  padding-top: 14px;
  color: var(--c-text);
  font-size: 32px;
  font-weight: 700;
  line-height: 48px;
  letter-spacing: 0.1em;
}
.about .sec-head__title { font-size: 38px; }
.sec-head__title-s { font-size: 28px; }
.sec-head__lead {
  margin-top: 16px;
  color: var(--c-text-body);
  font-size: 16px;
  line-height: 2.2;
}
.sec-head__lead--sub { color: var(--c-text-sub); line-height: 1.95; }
.sec-head--left { text-align: left; }
.sec-head--left .sec-head__en { justify-content: flex-start; }

/* ---------- parts ---------- */
.arrow-circle {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 15px;
  line-height: 1;
}
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--c-dark);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.95;
}
.pill-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 64px;
  border: 1px solid var(--c-brown-line);
  border-radius: 999px;
  background: #fff;
  color: var(--c-brown);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.95;
  letter-spacing: 0.08em;
}
.pill-link--arrow { gap: 42px; min-height: 77px; }
.pill-link--arrow .arrow-circle { color: var(--c-dark); }

.tag {
  display: inline-block;
  padding: 0 12px;
  border: 1px solid var(--c-green);
  border-radius: 999px;
  background: #fff;
  color: var(--c-green);
  font-size: 12px;
  line-height: 23.4px;
  white-space: nowrap;
}
.tag--member { border-color: var(--c-coral); background: var(--c-coral); color: #fff; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.post-date { color: var(--c-text-mute); font-size: 13px; line-height: 25.35px; }

.deco { position: absolute; z-index: 2; pointer-events: none; }

/* ==========================================================
   Header
   ========================================================== */
.header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 100px;
  padding: 0 56px;
}
.header__logo img { width: 160px; height: 40px; }
.header__toggle { display: none; }

.gnav { display: flex; align-items: center; gap: 48px; }
.gnav__list { display: flex; gap: 40px; }
.gnav__list a { display: flex; flex-direction: column; align-items: center; }
.gnav__main { color: var(--c-text-body); font-size: 15px; font-weight: 500; line-height: 22.5px; }
.gnav__sub { color: var(--c-text-mute); font-size: 11px; line-height: 16.5px; }
.gnav__btns { display: flex; gap: 12px; }
.btn-login,
.btn-register {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 26px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.btn-login { border: 1px solid var(--c-cream); background: var(--c-green-light); color: var(--c-cream); }
.btn-register { background: var(--c-cream); color: var(--c-green-light); }

/* ==========================================================
   Hero
   ========================================================== */
.hero { padding-top: 100px; overflow: hidden; }
.hero__inner {
  position: relative;
  max-width: 1440px;
  height: 730px;
  margin: 0 auto;
}
.hero__body {
  position: relative;
  z-index: 3;
  padding: 60px 0 0 139px;
}
.hero__title {
  color: var(--c-brown);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.12em;
}
.hero__text {
  margin-top: 18px;
  color: var(--c-text-body);
  font-size: 18px;
  line-height: 36.8px;
}
.hero__title + .hero__text { margin-top: 16px; }
.hero__tagline {
  margin-top: 14px;
  color: var(--c-green-light);
  font-size: 24px;
  font-weight: 700;
  line-height: 55.2px;
  letter-spacing: 9px;
}
.hero__illust {
  position: absolute;
  top: 168px;
  right: 0;
  z-index: 1;
  width: 66.875%;
}
.hero__illust img { width: 100%; }

.hero__deco { position: absolute; z-index: 2; overflow: hidden; pointer-events: none; }
.hero__deco img { position: absolute; top: 0; max-width: none; height: 100%; }
.hero__deco--blue { top: 34px; left: 61.1%; width: 188px; height: 213px; }
.hero__deco--blue img { left: -17.02%; width: 117.02%; }
.hero__deco--peach { top: 50px; right: 6.67%; width: 137px; height: 151px; }
.hero__deco--peach img { left: -37.96%; width: 137.96%; }

/* ==========================================================
   About
   ========================================================== */
.about {
  position: relative;
  padding: 45px 0 40px;
  background: #fff;
}
.about .sec-head__lead { margin-top: 34px; line-height: 35.2px; }

.about__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 64px;
}
.about__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 48px 40px 40px;
}
.about__num {
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--c-text-sub);
  font-family: var(--ff-en);
  font-size: 42px;
  font-weight: 600;
  line-height: 56px;
}
.about__img { width: 139px; height: 93px; }
.about__img img { width: 100%; height: 100%; object-fit: cover; }
.about__title {
  color: var(--c-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
}
.about__sub { color: var(--c-green); font-size: 16px; font-weight: 700; line-height: 26px; }
.about__text { width: 100%; max-width: 280px; font-size: 16px; line-height: 32px; }

.about__support {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 64px;
  padding: 28px 40px;
  border-radius: 20px;
  background: var(--c-cream);
}
.about__support-text { color: var(--c-dark); font-size: 18px; font-weight: 700; line-height: 31.2px; }
.about__howto { margin-top: 64px; text-align: center; }

.deco--about-cream { right: 57px; bottom: 62px; width: 99px; }

/* ==========================================================
   Worries
   ========================================================== */
.worries {
  position: relative;
  overflow: hidden;
  padding: 120px 0;
  background: linear-gradient(to bottom, transparent 195px, var(--c-pink-bg) 195px), #fff;
}
/* 波形：SVG を上下反転し、波の部分だけを切り出して表示。以降の塗りは背景グラデーションで継ぎ目なくつなぐ */
.sec-wave {
  position: absolute;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 200px;
  overflow: hidden;
  pointer-events: none;
}
.sec-wave img {
  width: 100%;
  max-width: none;
  height: 1220px;
  margin-top: 40px;
  transform: scaleY(-1);
}
.sec-wave--worries { top: -5px; }   /* 波の上端 = セクション上端 + 35px */
.deco--worries-blue { top: 0; left: 126px; width: 188px; height: 213px; object-fit: cover; object-position: right; }

.worries__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.worries__list > li { display: flex; }
.worry-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  min-height: 210px;
  padding: 40px 36px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.worry-card--accent { border-color: var(--c-pink-card); background: var(--c-pink-card); }
.worry-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.worry-card__title {
  max-width: 218px;
  color: var(--c-text);
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.08em;
}
.worry-card__arrow {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: 1px solid var(--c-brown);
  border-radius: 50%;
  color: var(--c-brown);
  font-size: 14px;
  line-height: 1;
}
.worry-card__text { color: var(--c-text-sub); font-size: 15px; line-height: 28.5px; }

.search {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
  margin-top: 64px;
  padding: 32px 48px;
  border-radius: 40px;
  background: #fff;
}
.search__label {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--c-text);
  font-size: 20px;
  font-weight: 700;
  line-height: 39px;
  white-space: nowrap;
}
.search__input {
  width: 100%;
  height: 52px;
  padding: 0 4px;
  border: 0;
  border-bottom: 1px solid var(--c-brown);
  border-radius: 0;
  background: transparent;
  color: var(--c-text);
  font-size: 16px;
  letter-spacing: 0;
  outline-offset: 4px;
  -webkit-appearance: none;
  appearance: none;
}
.search__input::placeholder { color: var(--c-text-mute); }
.search__btn {
  height: 56px;
  padding: 0 48px;
  border: 0;
  border-radius: 999px;
  background: var(--c-green);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.worries__note {
  padding-top: 20px;
  color: var(--c-text-sub);
  font-size: 14px;
  line-height: 27.3px;
  text-align: center;
}

/* ==========================================================
   Theme
   ========================================================== */
.theme {
  position: relative;
  z-index: 1;
  padding: 120px 0 68px;
  background: #fff;
}
.theme__tabs-wrap { margin-top: 56px; }
.theme__tabs {
  display: flex;
  gap: 36px;
  border-bottom: 1px solid rgba(93, 122, 102, 0.46);
}
.theme__tabs a {
  position: relative;
  display: block;
  padding: 0 2px 16px;
  color: var(--c-text-sub);
  font-size: 16px;
  line-height: 31.2px;
  white-space: nowrap;
}
.theme__tabs a.is-active { color: var(--c-green); font-weight: 500; }
.theme__tabs a.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 2px;
  background: var(--c-green);
}

.theme__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 56px;
  margin-top: 56px;
}
.theme__label {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--c-green-light);
  font-size: 20px;
  font-weight: 700;
  line-height: 39px;
}
.theme__label::after { content: ""; flex: 1; height: 1px; background: var(--c-text-mute); }
.theme__posts { padding-top: 12px; }
.post-row {
  display: block;
  padding: 28px 0;
  border-bottom: 1px solid var(--c-text-mute);
}
.post-row__title,
.work-card__title,
.column-card__title {
  display: block;
  padding-top: 10px;
  color: var(--c-text);
  font-size: 19px;
  font-weight: 700;
  line-height: 32.3px;
}

.work-card {
  display: block;
  margin-top: 28px;
  overflow: hidden;
  border-radius: var(--radius-leaf);
  background: var(--c-pink-work);
}
.work-card__img { display: block; height: 220px; }
.work-card__img img { width: 100%; height: 100%; object-fit: cover; }
.work-card__body { display: block; padding: 32px 36px; }
.work-card__text { display: block; padding: 10px 0 12px; color: var(--c-text-sub); font-size: 15px; line-height: 29.25px; }
.work-card .post-date { display: block; padding-top: 3px; }

.theme__more { margin-top: 64px; text-align: center; }

/* ==========================================================
   Column
   ========================================================== */
.column {
  position: relative;
  overflow: hidden;
  padding: 68px 0 120px;
  background: linear-gradient(to bottom, transparent 273px, var(--c-pink-bg) 273px), #fff;
}
.sec-wave--column { top: 73px; }   /* 波の上端 = セクション上端 + 113px */
.deco--column-cream { top: 27px; right: 80px; width: 99px; }

.column__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }

.column__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 56px;
}
.column-card { display: flex; flex-direction: column; }
.column-card__img {
  position: relative;
  display: block;
  height: 240px;
  overflow: hidden;
  border-radius: var(--radius-leaf);
}
.column-card__img img { width: 100%; height: 100%; object-fit: cover; }
.column-card__img--zoom img {
  position: absolute;
  top: -37.71%;
  left: -19.06%;
  width: 138.01%;
  max-width: none;
  height: 144.37%;
}
.column-card .post-meta { padding-top: 24px; }
.column-card .post-date { display: block; padding-top: 10px; }

.diagnosis-wrap { position: relative; z-index: 1; margin-top: 120px; padding: 0 40px; }
.diagnosis {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: 1134px;
  height: 397px;
  margin: 0 auto;
  padding: 0 116px 0 98px;
  overflow: hidden;
  border-radius: var(--radius-leaf);
  background: url("../img/diagnosis-bg.jpg") center / cover no-repeat;
}
.diagnosis::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(159, 138, 138, 0.5);
}
.diagnosis__title {
  position: relative;
  margin-top: -40px;
  color: #fff;
  font-size: 32px;
  font-weight: 700;
  line-height: 48px;
  letter-spacing: 0.1em;
}
.diagnosis__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 64px;
  padding: 0 56px;
  border-radius: 999px;
  background: #fff;
  color: var(--c-coral);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

/* ==========================================================
   Footer
   ========================================================== */
.footer { position: relative; z-index: 1; color: var(--c-footer-text); }
.footer__main { background: var(--c-footer); }
.footer__inner {
  display: flex;
  align-items: flex-start;
  gap: 75px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 68px 57.6px;
}
.footer__brand { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 160px; flex-shrink: 0; }
.footer__brand img { width: 160px; height: auto; }
.footer__brand p,
.footer__links li {
  font-size: 14px;
  font-weight: 700;
  line-height: 21px;
  letter-spacing: 0.04em;
}
.footer__links { display: flex; padding-left: 24px; }
.footer__links ul { display: flex; flex-direction: column; gap: 22.4px; }
.footer__links ul:first-child { width: 238.8px; }
.footer__sns {
  align-self: stretch;
  min-width: 220px;
  margin-left: auto;
  padding-left: 58px;
  border-left: 1px solid #8f8f8f;
}
.footer__sns-title { font-family: var(--ff-avenir); font-size: 15px; font-weight: 500; line-height: 22.5px; text-align: center; }
.footer__sns-list { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; }
.footer__sns-list a { display: grid; place-items: center; height: 27px; }

.footer__bottom { background: var(--c-footer-bottom); }
.footer__bottom-inner {
  display: flex;
  align-items: center;
  gap: 36px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px 57.6px;
}
.footer__copy { color: #3d4246; font-family: var(--ff-avenir); font-size: 15px; font-weight: 500; line-height: 22.5px; }
.footer__policy { font-size: 12px; line-height: 18px; }

/* ==========================================================
   すぐ閉じる
   ========================================================== */
.quick-exit {
  position: fixed;
  right: 32px;
  bottom: 32px;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  height: 52px;
  padding: 0 26px;
  border-radius: 999px;
  background: var(--c-text);
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2);
  color: #fff;
  font-size: 15px;
  line-height: 29.25px;
}

/* ==========================================================
   Tablet (〜1180px)
   ========================================================== */
@media (max-width: 1180px) {
  .header { padding: 0 32px; }
  .gnav { gap: 28px; }
  .gnav__list { gap: 24px; }
  .hero__body { padding-left: 64px; }
  .footer__inner { gap: 40px; padding: 56px 40px; }
  .footer__bottom-inner { padding: 16px 40px; }
}

/* ==========================================================
   Tablet (〜1024px)：ハンバーガーメニュー / ヒーロー縦積み
   ========================================================== */
@media (max-width: 1024px) {
  .header { height: 72px; padding: 0 24px; }
  .header__logo img { width: 128px; height: 32px; }

  .header__toggle {
    position: relative;
    z-index: 2;
    display: block;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--c-cream);
    cursor: pointer;
  }
  .header__toggle span {
    position: absolute;
    left: 13px;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--c-brown);
  }
  .header__toggle span:nth-child(1) { top: 15px; }
  .header__toggle span:nth-child(2) { top: 21px; }
  .header__toggle span:nth-child(3) { top: 27px; }
  .header__toggle[aria-expanded="true"] span:nth-child(1) { top: 21px; transform: rotate(45deg); }
  .header__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .header__toggle[aria-expanded="true"] span:nth-child(3) { top: 21px; transform: rotate(-45deg); }

  .gnav {
    position: fixed;
    inset: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    padding: 96px 24px 40px;
    overflow-y: auto;
    background: var(--c-cream);
  }
  .gnav.is-open { display: flex; }
  .gnav__list { flex-direction: column; gap: 0; }
  .gnav__list a {
    flex-direction: row;
    align-items: baseline;
    gap: 12px;
    padding: 18px 4px;
    border-bottom: 1px solid rgba(122, 107, 98, 0.25);
  }
  .gnav__main { font-size: 18px; color: var(--c-text); }
  .gnav__sub { font-size: 12px; }
  .gnav__btns { flex-direction: column; }
  .btn-login, .btn-register { height: 52px; }
  .btn-register { border: 1px solid var(--c-green-light); }

  .hero { padding-top: 72px; }
  .hero__inner { height: auto; }
  .hero__body { padding: 40px 48px 0; }
  .hero__illust { position: relative; top: auto; width: 100%; margin-top: 8px; }
  .hero__deco--blue { left: auto; right: 22%; top: 24px; }

  .worries__list { grid-template-columns: repeat(2, 1fr); }
  .search { grid-template-columns: 1fr auto; gap: 20px 24px; padding: 28px 32px; }
  .search__label { grid-column: 1 / -1; }

  .footer__inner { flex-wrap: wrap; }
  .footer__sns { margin-left: 0; }
}

/* ==========================================================
   SP (〜767px)
   ========================================================== */
@media (max-width: 767px) {
  .pc-only { display: none; }
  .sp-only { display: inline; }

  .container { padding: 0 20px; }

  .sec-head__en { font-size: 14px; line-height: 14px; gap: 8px; }
  .sec-head__en img { width: 15px; height: 15px; }
  .sec-head__title { padding-top: 10px; font-size: 22px; line-height: 1.6; letter-spacing: 0.06em; }
  .about .sec-head__title { font-size: 30px; }
  .sec-head__title-s { font-size: 22px; }
  .sec-head__lead { font-size: 14px; line-height: 2; text-align: left; }
  .about .sec-head__lead { margin-top: 20px; line-height: 2; }

  .arrow-circle { width: 34px; height: 34px; font-size: 13px; }
  .pill-link { min-height: 52px; padding: 0 40px; font-size: 15px; }
  .pill-link--arrow { gap: 16px; min-height: 60px; padding: 0 12px 0 28px; }

  /* header */
  .header { height: 64px; padding: 0 16px 0 20px; }
  .header__logo img { width: 112px; height: 28px; }
  .gnav { padding-top: 88px; }

  /* hero */
  .hero { padding-top: 64px; }
  .hero__body { padding: 32px 20px 0; }
  .hero__title { font-size: 30px; line-height: 1.6; letter-spacing: 0.1em; }
  .hero__text { margin-top: 14px; font-size: 15px; line-height: 2; }
  .hero__title + .hero__text { margin-top: 18px; }
  .hero__tagline { margin-top: 12px; font-size: 18px; line-height: 2; letter-spacing: 0.3em; }
  .hero__illust { width: 112%; margin: 8px -6% -40px; }
  .hero__deco--blue { top: 16px; right: 4%; width: 94px; height: 107px; }
  .hero__deco--peach { top: auto; bottom: 20px; right: 6%; width: 56px; height: 62px; }

  /* about */
  .about { padding: 56px 0 72px; }
  .about__list { grid-template-columns: 1fr; gap: 40px; margin-top: 56px; }
  .about__item {
    display: grid;
    grid-template-columns: 112px 1fr;
    grid-template-areas:
      "img title"
      "img sub"
      "text text";
    column-gap: 20px;
    row-gap: 4px;
    align-items: center;
    padding: 0;
  }
  .about__num {
    top: -30px;
    left: 0;
    transform: none;
    font-size: 30px;
    line-height: 40px;
  }
  .about__img { grid-area: img; width: 112px; height: 75px; }
  .about__title { grid-area: title; align-self: end; font-size: 20px; line-height: 1.6; letter-spacing: 0.2em; text-indent: 0; }
  .about__sub { grid-area: sub; align-self: start; font-size: 14px; line-height: 1.6; }
  .about__text { grid-area: text; max-width: none; margin-top: 12px; font-size: 14px; line-height: 2; }

  .about__support { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 48px; padding: 24px 20px; }
  .about__support-text { font-size: 15px; line-height: 1.8; }
  .about__support .arrow-link { align-self: flex-end; font-size: 14px; }
  .about__howto { margin-top: 32px; }
  .about__howto .pill-link { width: 100%; justify-content: space-between; font-size: 13px; letter-spacing: 0.02em; }
  .deco--about-cream { right: 16px; bottom: 16px; width: 60px; }

  /* worries */
  .worries { padding: 88px 0 72px; background: linear-gradient(to bottom, transparent 184px, var(--c-pink-bg) 184px), #fff; }
  .sec-wave img { height: 600px; }
  .sec-wave--worries { top: -16px; }
  .deco--worries-blue { left: -24px; width: 96px; height: 109px; }
  .worries__list { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
  .worry-card { min-height: 0; gap: 6px; padding: 20px 20px 20px 24px; border-radius: 28px 8px 28px 8px; }
  .worry-card__head { align-items: center; }
  .worry-card__title { max-width: none; font-size: 17px; line-height: 1.6; letter-spacing: 0.05em; }
  .worry-card__arrow { width: 30px; height: 30px; font-size: 12px; }
  .worry-card__text { padding-right: 40px; font-size: 13px; line-height: 1.8; }

  .search { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; padding: 24px 20px; border-radius: 24px; }
  .search__label { font-size: 16px; line-height: 1.6; }
  .search__label img { width: 20px; height: 20px; }
  .search__input { height: 48px; font-size: 16px; }
  .search__btn { width: 100%; height: 52px; }
  .worries__note { font-size: 12px; line-height: 1.9; text-align: left; }

  /* theme */
  .theme { padding: 72px 0 56px; }
  .theme__tabs-wrap {
    margin: 32px -20px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .theme__tabs-wrap::-webkit-scrollbar { display: none; }
  .theme__tabs { width: max-content; min-width: 100%; gap: 24px; padding: 0 20px; }
  .theme__tabs a { padding-bottom: 12px; font-size: 14px; }
  .theme__grid { grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
  .theme__label { font-size: 17px; line-height: 1.8; }
  .theme__posts { padding-top: 4px; }
  .post-row { padding: 20px 0; }
  .post-row__title, .work-card__title, .column-card__title { padding-top: 8px; font-size: 16px; line-height: 1.7; }
  .work-card { margin-top: 16px; border-radius: 56px 8px 56px 8px; }
  .work-card__img { height: 180px; }
  .work-card__body { padding: 24px 24px 28px; }
  .work-card__text { font-size: 14px; line-height: 1.9; }
  .theme__more { margin-top: 40px; }

  /* column */
  .column { padding: 56px 0 72px; background: linear-gradient(to bottom, transparent 280px, var(--c-pink-bg) 280px), #fff; }
  .sec-wave--column { top: 80px; }
  .deco--column-cream { top: 20px; right: 20px; width: 60px; }
  .column__head { align-items: flex-end; }
  .column__head .arrow-link { font-size: 13px; gap: 10px; }
  .column__list { grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
  .column-card__img { height: auto; aspect-ratio: 335 / 220; border-radius: 56px 8px 56px 8px; }
  .column-card .post-meta { padding-top: 16px; }

  .diagnosis-wrap { margin-top: 56px; padding: 0 20px; }
  .diagnosis {
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    height: 240px;
    padding: 0 20px;
    border-radius: 56px 8px 56px 8px;
  }
  .diagnosis__title { margin-top: 0; font-size: 24px; line-height: 1.6; }
  .diagnosis__btn { height: 52px; padding: 0 40px; font-size: 15px; }

  /* footer */
  .footer__inner { flex-direction: column; align-items: center; gap: 32px; padding: 48px 20px 40px; }
  .footer__brand img { width: 136px; height: auto; }
  .footer__links { flex-direction: column; gap: 16px; width: 100%; padding: 24px 0 0; border-top: 1px solid rgba(143, 143, 143, 0.5); }
  .footer__links ul { gap: 16px; }
  .footer__links ul:first-child { width: auto; }
  .footer__links li { font-size: 13px; }
  .footer__links li:not(:has(a)) { font-weight: 400; font-size: 12px; }
  .footer__sns { width: 100%; min-width: 0; padding: 24px 0 0; border-left: 0; border-top: 1px solid rgba(143, 143, 143, 0.5); }
  .footer__sns-list { justify-content: center; gap: 32px; padding-top: 16px; }
  .footer__bottom-inner { flex-direction: column-reverse; gap: 8px; padding: 16px 20px 96px; }
  .footer__copy { font-size: 12px; }

  /* quick exit */
  .quick-exit { right: 16px; bottom: 16px; height: 44px; padding: 0 20px; font-size: 13px; }
}


/* ##########################################################
   下層ページ共通
   ########################################################## */

/* ---------- page head ---------- */
.page-head {
  position: relative;
  padding: 180px 0 64px;
  background: #fff;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 0;
  color: var(--c-text-sub);
  font-size: 13px;
  line-height: 1.9;
}
.breadcrumb li + li::before {
  content: "／";
  margin: 0 10px;
  color: var(--c-text-mute);
}
.breadcrumb a { color: var(--c-text-sub); text-decoration: underline; text-decoration-color: rgba(119, 119, 119, 0.4); text-underline-offset: 3px; }
.page-head__en { justify-content: flex-start; margin-top: 48px; }
.page-head__title {
  padding-top: 14px;
  color: var(--c-text);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
.page-head__lead {
  margin-top: 20px;
  color: var(--c-text-body);
  font-size: 16px;
  line-height: 2.2;
}
/* ドット素材は隣の円が写り込むため、右寄せでトリミングして使用 */
.deco--head-blue,
.deco--head-peach { object-fit: cover; object-position: right center; }
.deco--head-blue { top: 112px; right: 22%; width: 150px; height: 170px; }
.deco--head-peach { top: 236px; right: 9%; width: 100px; height: 110px; }

/* ---------- page body（波形＋ピンク背景） ---------- */
.page-body {
  position: relative;
  overflow: hidden;
  padding: 150px 0 140px;
  background: linear-gradient(to bottom, transparent 160px, var(--c-pink-bg) 160px), #fff;
}
.sec-wave--page { top: -40px; }   /* 波の上端 = セクション上端 */
.deco--page-cream { top: 40px; left: 7%; width: 99px; }

/* ---------- parts ---------- */
.tag--soft { border-color: var(--c-green-light); color: var(--c-green); }

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 64px;
  padding: 0 48px;
  border-radius: 999px;
  background: var(--c-green);
  color: #fff;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.bookmark {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--c-brown);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.bookmark.is-active { border-color: var(--c-brown-line); background: var(--c-pink-work); }

/* ==========================================================
   参画者
   ========================================================== */
.partner-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.partner-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 56px 32px 40px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
  text-align: center;
}
.partner-card__photo {
  position: relative;
  display: grid;
  place-items: center;
  width: 180px;
  height: 180px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: #f2f0f0;
  color: var(--c-text-mute);
  font-size: 14px;
  letter-spacing: 0.3em;
}
.partner-card__photo::before {
  content: "";
  position: absolute;
  inset: -12px;
  border: 1px solid var(--c-brown);
  border-radius: 50%;
}
.partner-card__photo--logo { width: 200px; border-radius: 40px 10px 40px 10px; }
.partner-card__photo--logo::before { border-radius: 48px 14px 48px 14px; }

.partner-card__role {
  margin-top: 28px;
  color: var(--c-green);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.2em;
}
.partner-card__name {
  margin-top: 4px;
  color: var(--c-text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.12em;
}
.partner-card__name--company { font-size: 19px; letter-spacing: 0.04em; }
.partner-card__org { margin-top: 2px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.partner-card__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 20px; }
.partner-card__style {
  width: 100%;
  margin-top: 20px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--c-cream);
  color: var(--c-dark);
  font-size: 13px;
  line-height: 1.8;
}
.partner-card__style span {
  display: block;
  color: var(--c-brown);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.partner-card__text {
  margin-top: 16px;
  color: var(--c-text-body);
  font-size: 14px;
  line-height: 2;
  text-align: left;
}
.partner-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin-top: auto;
  padding: 0 24px;
  border: 1px solid var(--c-brown-line);
  border-radius: 999px;
  background: #fff;
  color: var(--c-brown);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.partner-card__text + .partner-card__btn { margin-top: 24px; }

/* ---------- 専門家の方へ ---------- */
.recruit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  margin-top: 96px;
  padding: 64px 72px;
  border-radius: var(--radius-leaf);
  background: #fff;
}
.recruit__body { flex: 1; min-width: 0; }
.recruit__en { justify-content: flex-start; }
.recruit__title {
  padding-top: 14px;
  color: var(--c-text);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.recruit__text { margin-top: 16px; color: var(--c-text-body); font-size: 16px; line-height: 2; }
.recruit__notes { margin-top: 20px; padding-top: 20px; border-top: 1px dashed var(--c-text-mute); }
.recruit__notes li {
  position: relative;
  padding-left: 1.2em;
  color: var(--c-text-sub);
  font-size: 14px;
  line-height: 2;
}
.recruit__notes li::before {
  content: "";
  position: absolute;
  top: 0.85em;
  left: 0.2em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-green-light);
}
.recruit__action { flex-shrink: 0; }

/* ---------- 下層ページ：Tablet ---------- */
@media (max-width: 1024px) {
  .page-head { padding-top: 136px; }
  .partner-list { grid-template-columns: repeat(2, 1fr); }
  .recruit { flex-direction: column; align-items: flex-start; gap: 32px; padding: 56px 48px; }
}

/* ---------- 下層ページ：SP ---------- */
@media (max-width: 767px) {
  .page-head { padding: 104px 0 40px; }
  .breadcrumb { padding-right: 96px; font-size: 12px; }
  .page-head__en { margin-top: 32px; }
  .page-head__title { padding-top: 8px; font-size: 26px; letter-spacing: 0.08em; }
  .page-head__lead { margin-top: 14px; font-size: 14px; line-height: 2; }
  .deco--head-blue { top: 72px; right: 20px; width: 60px; height: 68px; }
  .deco--head-peach { top: 122px; right: 76px; width: 38px; height: 42px; }

  .page-body { padding: 96px 0 80px; }
  .deco--page-cream { top: 24px; left: auto; right: 20px; width: 60px; }

  .btn-primary { width: 100%; min-height: 56px; padding: 0 24px; font-size: 16px; }
  .bookmark { top: 16px; right: 16px; width: 36px; height: 36px; }

  .partner-list { grid-template-columns: 1fr; gap: 20px; }
  .partner-card { padding: 44px 20px 28px; border-radius: 28px 8px 28px 8px; }
  .partner-card__photo { width: 140px; height: 140px; }
  .partner-card__photo::before { inset: -10px; }
  .partner-card__photo--logo { width: 180px; }
  .partner-card__role { margin-top: 22px; }
  .partner-card__name { font-size: 20px; }
  .partner-card__name--company { font-size: 17px; }
  .partner-card__org { font-size: 13px; }
  .partner-card__tags { margin-top: 14px; }
  .partner-card__style { margin-top: 16px; }
  .partner-card__text { margin-top: 12px; font-size: 13px; line-height: 1.9; }
  .partner-card__text + .partner-card__btn { margin-top: 20px; }
  .partner-card__btn { min-height: 48px; font-size: 14px; }

  .recruit { gap: 24px; margin-top: 56px; padding: 40px 20px 32px; border-radius: 56px 8px 56px 8px; }
  .recruit__title { padding-top: 8px; font-size: 22px; }
  .recruit__text { margin-top: 10px; font-size: 14px; line-height: 1.9; }
  .recruit__notes { margin-top: 16px; padding-top: 16px; }
  .recruit__notes li { font-size: 12px; line-height: 1.9; }
  .recruit__action { width: 100%; }
}


/* ==========================================================
   お問い合わせ / フォーム共通
   ========================================================== */
.form-card {
  max-width: 800px;
  margin: 0 auto;
  padding: 72px 96px 80px;
  border-radius: var(--radius-leaf);
  background: #fff;
}
.form-field + .form-field { margin-top: 32px; }
.form-field__label {
  display: block;
  margin-bottom: 10px;
  color: var(--c-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.form-field__input {
  display: block;
  width: 100%;
  min-height: 56px;
  padding: 14px 20px;
  border: 1px solid rgba(122, 107, 98, 0.45);
  border-radius: 14px;
  background: var(--c-cream);
  color: var(--c-text);
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.04em;
  -webkit-appearance: none;
  appearance: none;
}
.form-field__input:focus { outline: none; border-color: var(--c-green); background: #fff; box-shadow: 0 0 0 3px rgba(93, 122, 102, 0.15); }
.form-field__textarea { min-height: 220px; resize: vertical; }

.form-check {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 40px;
  cursor: pointer;
}
.form-check__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.form-check__box {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border: 1px solid var(--c-brown);
  border-radius: 6px;
  background: #fff;
}
.form-check__input:checked + .form-check__box { border-color: var(--c-green); background: var(--c-green); }
.form-check__input:checked + .form-check__box::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 8px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.form-check__input:focus-visible + .form-check__box { box-shadow: 0 0 0 3px rgba(93, 122, 102, 0.25); }
.form-check__text { color: var(--c-text); font-size: 15px; line-height: 1.8; }
.form-check__text a { color: var(--c-green); text-decoration: underline; text-underline-offset: 3px; }

.form-card__submit { margin-top: 32px; text-align: center; }
.form-card__submit .btn-primary { min-width: 280px; border: 0; font-family: inherit; cursor: pointer; }

@media (max-width: 1024px) {
  .form-card { padding: 64px 56px 72px; }
}
@media (max-width: 767px) {
  .form-card { padding: 40px 20px 44px; border-radius: 56px 8px 56px 8px; }
  .form-field + .form-field { margin-top: 24px; }
  .form-field__label { margin-bottom: 8px; font-size: 15px; }
  .form-field__input { min-height: 52px; padding: 12px 16px; border-radius: 12px; }
  .form-field__textarea { min-height: 180px; }
  .form-check { justify-content: flex-start; margin-top: 28px; }
  .form-check__text { font-size: 14px; }
  .form-card__submit { margin-top: 28px; }
  .form-card__submit .btn-primary { min-width: 0; }
}


/* ##########################################################
   下層ページ：共通パーツ（追加分）
   ########################################################## */

/* ---------- ヘッダー：現在地・会員表示 ---------- */
.gnav__list a.is-current .gnav__main { color: var(--c-green); font-weight: 700; }
.gnav__list a.is-current { position: relative; }
.gnav__list a.is-current::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  border-radius: 50%;
  background: var(--c-green-light);
}
.btn-mypage {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 46px;
  padding: 0 26px;
  border-radius: 999px;
  background: var(--c-green-light);
  color: var(--c-cream);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* ---------- 白いパネル ---------- */
.panel {
  position: relative;
  padding: 56px 64px;
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.panel--narrow { max-width: 860px; margin-left: auto; margin-right: auto; }
.panel + .panel,
.panel + .block,
.block + .panel,
.block + .block,
.message + .block { margin-top: 56px; }
.panel__title {
  color: var(--c-text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.panel__lead { margin-top: 8px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.block__title {
  margin-bottom: 20px;
  color: var(--c-text);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.divider { height: 0; margin: 40px 0; border: 0; border-top: 1px dashed var(--c-text-mute); }

/* ---------- ボタン ---------- */
.btn-primary { border: 0; font-family: inherit; cursor: pointer; }
.btn-primary--full { width: 100%; }
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 40px;
  border: 1px solid var(--c-brown-line);
  border-radius: 999px;
  background: #fff;
  color: var(--c-brown);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
  cursor: pointer;
}
.btn-outline--s { min-height: 44px; padding: 0 24px; font-size: 14px; }
.btn-soft {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 24px;
  border: 1px solid var(--c-pink-card);
  border-radius: 999px;
  background: var(--c-pink-card);
  color: var(--c-brown-line);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
  cursor: pointer;
}
.btn-soft.is-selected { border-color: var(--c-green); background: var(--c-green); color: #fff; }
.text-link {
  color: var(--c-green);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

/* ---------- ピル型の選択ボタン ---------- */
.pill-group { display: flex; flex-wrap: wrap; gap: 12px; }
.pill-choice {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 1px solid rgba(122, 107, 98, 0.4);
  border-radius: 999px;
  background: #fff;
  color: var(--c-text);
  font-family: inherit;
  font-size: 16px;
  letter-spacing: 0.06em;
  white-space: nowrap;
  cursor: pointer;
}
.pill-choice.is-active { border-color: var(--c-green); background: var(--c-green); color: #fff; font-weight: 500; }
.pill-choice--s { min-height: 44px; padding: 0 20px; font-size: 15px; }
.pill-choice--dashed { border-style: dashed; background: transparent; }
.pill-choice--dashed.is-active { border-style: solid; }

/* ---------- 選択肢（ラジオ／チェック） ---------- */
.choice-list { display: grid; gap: 12px; }
.choice {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 24px;
  border: 1px solid rgba(122, 107, 98, 0.3);
  border-radius: 16px;
  background: var(--c-cream);
  color: var(--c-text);
  font-size: 16px;
  line-height: 1.7;
  cursor: pointer;
}
.choice__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice__mark {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border: 1.5px solid var(--c-brown);
  border-radius: 50%;
  background: #fff;
}
.choice__input:checked ~ .choice__mark { border-color: var(--c-green); background: var(--c-green); }
.choice__input:checked ~ .choice__mark::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: #fff;
}
.choice:has(.choice__input:checked) { border-color: var(--c-green); background: #fff; box-shadow: 0 0 0 1px var(--c-green); font-weight: 700; }

.check-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  cursor: pointer;
}
.check-item__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.check-item__box {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-top: 3px;
  border: 1px solid var(--c-brown);
  border-radius: 6px;
  background: #fff;
}
.check-item__input:checked + .check-item__box { border-color: var(--c-green); background: var(--c-green); }
.check-item__input:checked + .check-item__box::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 8px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.check-item__body { display: block; }
.check-item__title { display: block; color: var(--c-text); font-size: 16px; font-weight: 700; line-height: 1.8; }
.check-item__desc { display: block; margin-top: 2px; color: var(--c-text-sub); font-size: 14px; line-height: 1.8; }
.check-item__text { color: var(--c-text); font-size: 15px; line-height: 1.8; }
.check-item__text a { color: var(--c-green); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 補足リスト ---------- */
.dot-list li {
  position: relative;
  padding-left: 1.2em;
  color: var(--c-text-sub);
  font-size: 14px;
  line-height: 1.9;
}
.dot-list li + li { margin-top: 4px; }
.dot-list li::before {
  content: "";
  position: absolute;
  top: 0.8em;
  left: 0.2em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-green-light);
}

/* ---------- 人物アイコン（頭文字） ---------- */
.avatar {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--c-pink-card);
  color: var(--c-brown-line);
  font-size: 18px;
  font-weight: 700;
}
.avatar--concierge { background: #e7eee9; color: var(--c-green); }

/* ==========================================================
   ワーク
   ========================================================== */
.page-head__meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 40px;
  color: var(--c-green);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.page-head__meta .tag { font-weight: 400; letter-spacing: 0.05em; }
.page-head__meta + .page-head__title { padding-top: 10px; }

.work-q { max-width: 860px; margin: 0 auto; padding: 56px 72px 64px; }
.progress { display: flex; align-items: center; gap: 16px; }
.progress__num { flex-shrink: 0; color: var(--c-green); font-family: var(--ff-en); font-size: 18px; font-weight: 700; letter-spacing: 0.08em; }
.progress__bar { position: relative; flex: 1; height: 8px; overflow: hidden; border-radius: 99px; background: var(--c-pink-card); }
.progress__bar span { position: absolute; top: 0; left: 0; height: 100%; border-radius: 99px; background: var(--c-green-light); }
.work-q__type { margin-top: 36px; color: var(--c-brown); font-size: 13px; font-weight: 700; letter-spacing: 0.2em; }
.work-q__title { margin-top: 6px; color: var(--c-text); font-size: 26px; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; }
.work-q .choice-list { margin-top: 32px; }
.work-q__nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 48px; }
.work-q__nav .btn-primary { min-width: 200px; }

/* ==========================================================
   相談する
   ========================================================== */
.safety {
  padding: 28px 36px;
  border-radius: 20px;
  background: #fff;
  box-shadow: inset 4px 0 0 var(--c-coral);
}
.safety__lead { color: var(--c-text); font-size: 16px; line-height: 1.9; }
.safety__lead strong { color: var(--c-coral); }
.safety__text { margin-top: 4px; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.safety__note { margin-top: 8px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }

.step { margin-top: 80px; }
.step__head { display: flex; align-items: baseline; gap: 16px; }
.step__num {
  flex-shrink: 0;
  color: var(--c-green);
  font-family: var(--ff-en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.14em;
}
.step__title { color: var(--c-text); font-size: 28px; font-weight: 700; line-height: 1.5; letter-spacing: 0.08em; }
.step__body { margin-top: 24px; }
.step__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 20px; }
.step__sub-label { margin-right: 4px; color: var(--c-text-sub); font-size: 14px; }
.hint {
  margin-top: 20px;
  padding: 18px 24px;
  border-radius: 16px;
  background: #fff;
  color: var(--c-text);
  font-size: 15px;
  line-height: 1.9;
}
.hint strong { color: var(--c-green); }
.step__note { margin-top: 16px; color: var(--c-text-sub); font-size: 13px; line-height: 1.9; }
.step__note a { color: var(--c-green); text-decoration: underline; text-underline-offset: 3px; }

.select-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.select-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 32px 28px 28px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.select-card.is-selected { border-color: var(--c-green); box-shadow: 0 0 0 2px var(--c-green); }
.select-card__head { display: flex; align-items: center; gap: 14px; padding-right: 44px; }
.select-card__role { display: block; color: var(--c-green); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; }
.select-card__name { display: block; color: var(--c-text); font-size: 19px; font-weight: 700; line-height: 1.5; letter-spacing: 0.06em; }
.select-card__org { margin-top: 14px; color: var(--c-text-sub); font-size: 14px; line-height: 1.8; }
.select-card .partner-card__tags { justify-content: flex-start; margin-top: 12px; }
.select-card .partner-card__style { margin-top: 14px; text-align: left; }
.select-card__text { margin-top: 14px; color: var(--c-text-body); font-size: 14px; line-height: 1.9; }
.select-card__actions { display: flex; flex-direction: column; gap: 10px; margin-top: auto; padding-top: 24px; }
.select-card__actions > * { width: 100%; }

.confirm-form { padding: 48px 56px; }
.confirm-list { display: grid; grid-template-columns: 200px 1fr; gap: 20px 32px; align-items: start; }
.confirm-list dt { padding-top: 2px; color: var(--c-text); font-size: 16px; font-weight: 700; line-height: 1.8; }
.confirm-list dd { margin: 0; color: var(--c-text); font-size: 16px; line-height: 1.8; }
.confirm-list dd small { display: inline; color: var(--c-text-sub); font-size: 14px; }
.confirm-list dd .text-link { margin-left: 12px; font-size: 14px; }
.confirm-form__submit { margin-top: 40px; }

/* ==========================================================
   弁護士への共有の同意
   ========================================================== */
.consent { max-width: 920px; margin: 0 auto; }
.message {
  padding: 40px 48px;
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.message__head { display: flex; align-items: center; gap: 14px; }
.message__title { color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; }
.message__text { margin-top: 16px; color: var(--c-text); font-size: 16px; line-height: 2; }
.message__meta { margin-top: 12px; color: var(--c-text-sub); font-size: 13px; line-height: 1.8; }

.lawyer {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  padding: 40px 48px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.lawyer .partner-card__photo { flex-shrink: 0; width: 140px; height: 140px; margin: 12px 12px 0; }
.lawyer__body { flex: 1; min-width: 0; }
.lawyer .partner-card__role { margin-top: 0; }
.lawyer .partner-card__name { margin-top: 0; }
.lawyer .partner-card__tags { justify-content: flex-start; margin-top: 12px; }
.lawyer .partner-card__style { width: auto; margin-top: 14px; }
.lawyer__text { margin-top: 12px; color: var(--c-text-body); font-size: 14px; line-height: 1.9; }
.lawyer .btn-outline { margin-top: 20px; }

.share-list { display: grid; gap: 22px; margin-top: 28px; }
.share-list__sub { display: grid; gap: 12px; margin-top: 14px; padding: 16px 20px; border-radius: 14px; background: var(--c-cream); }
.share-list__sub .check-item__text { font-size: 14px; }
.consent .form-field { margin-top: 28px; }
.consent__submit { margin-top: 36px; }
.consent__note { margin-top: 14px; color: var(--c-text-sub); font-size: 13px; line-height: 1.9; }

/* ==========================================================
   会員登録・ログイン
   ========================================================== */
.auth { max-width: 620px; margin: 0 auto; padding: 56px 72px 64px; }
.auth__tabs { display: grid; grid-template-columns: 1fr 1fr; padding: 6px; border-radius: 999px; background: var(--c-cream); }
.auth__tab {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 999px;
  color: var(--c-text-sub);
  font-size: 16px;
  letter-spacing: 0.1em;
}
.auth__tab.is-active { background: #fff; box-shadow: 0 2px 8px rgba(58, 47, 41, 0.08); color: var(--c-green); font-weight: 700; }
.btn-google {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  margin-top: 32px;
  border: 1px solid rgba(122, 107, 98, 0.45);
  border-radius: 999px;
  background: #fff;
  color: var(--c-text);
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
}
.auth__agree { margin-top: 14px; color: var(--c-text-sub); font-size: 13px; line-height: 1.9; }
.auth__agree a { color: var(--c-green); text-decoration: underline; text-underline-offset: 3px; }
.auth__or {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 36px 0 28px;
  color: var(--c-text-sub);
  font-size: 13px;
  white-space: nowrap;
}
.auth__or::before,
.auth__or::after { content: ""; flex: 1; height: 1px; background: rgba(122, 107, 98, 0.25); }
.form-field__help { display: block; margin: -4px 0 10px; color: var(--c-text-sub); font-size: 13px; line-height: 1.8; }
.auth .dot-list { margin-top: 28px; padding: 20px 24px; border-radius: 14px; background: var(--c-cream); }
.auth__checks { display: grid; gap: 14px; margin-top: 28px; }
.auth__submit { margin-top: 32px; }

/* ==========================================================
   プライバシーポリシー／利用規約
   ========================================================== */
.legal { max-width: 960px; margin: 0 auto; padding: 72px 96px 80px; }
.legal__intro { color: var(--c-text); font-size: 16px; line-height: 2.1; }
.legal__date { margin-top: 12px; color: var(--c-text-sub); font-size: 14px; }
.legal__section { margin-top: 48px; }
.legal__section + .legal__section { padding-top: 40px; border-top: 1px dashed rgba(122, 107, 98, 0.3); }
.legal__title { display: flex; align-items: baseline; gap: 14px; color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; }
.legal__title span { flex-shrink: 0; color: var(--c-green); font-size: 15px; letter-spacing: 0.1em; }
.legal__text { margin-top: 14px; color: var(--c-text-body); font-size: 15px; line-height: 2.1; }
.legal__dummy { color: var(--c-text-sub); }
.legal__items { margin-top: 14px; counter-reset: legal; }
.legal__items > li {
  position: relative;
  padding-left: 2em;
  color: var(--c-text-body);
  font-size: 15px;
  line-height: 2.1;
  counter-increment: legal;
}
.legal__items > li + li { margin-top: 8px; }
.legal__items > li::before {
  content: counter(legal) ".";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--c-green);
  font-family: var(--ff-en);
  font-weight: 700;
}
.legal__sub { margin-top: 6px; }
.legal__sub li { position: relative; padding-left: 2.6em; font-size: 14px; line-height: 2; }
.legal__sub li .legal__no { position: absolute; top: 0; left: 0; color: var(--c-text-sub); }
.legal__end { margin-top: 56px; color: var(--c-text-sub); font-size: 14px; text-align: right; }

/* ==========================================================
   404
   ========================================================== */
.notfound { max-width: 860px; margin: 0 auto; padding: 72px 64px 80px; text-align: center; }
.notfound__num {
  color: var(--c-pink-card);
  font-family: var(--ff-en);
  font-size: 160px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}
.notfound__text { margin-top: 24px; color: var(--c-text-body); font-size: 16px; line-height: 2; }
.notfound .btn-primary { margin-top: 40px; min-width: 280px; }

/* ==========================================================
   検索結果
   ========================================================== */
.results-search .search { margin-top: 0; }
.results-filter { margin-top: 24px; }
.results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; margin-top: 64px; }
.results__label { display: flex; align-items: center; gap: 14px; color: var(--c-green-light); font-size: 20px; font-weight: 700; line-height: 1.8; }
.results__label span { color: var(--c-text-sub); font-family: var(--ff-en); font-size: 16px; }
.results__label::after { content: ""; flex: 1; height: 1px; background: var(--c-text-mute); }
.results__list { display: grid; gap: 20px; margin-top: 20px; }
.result-card {
  display: block;
  padding: 32px 36px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.result-card__title { display: block; margin-top: 12px; color: var(--c-text); font-size: 19px; font-weight: 700; line-height: 1.7; }
.result-card__text { display: block; margin-top: 8px; color: var(--c-text-sub); font-size: 15px; line-height: 1.9; }
.result-card .post-date { display: block; margin-top: 10px; }

/* ---------- 追加分：Tablet ---------- */
@media (max-width: 1024px) {
  .gnav__list a.is-current::after { display: none; }
  .gnav__list a.is-current { background: transparent; }
  .btn-mypage { height: 52px; }
  .select-list { grid-template-columns: 1fr 1fr; }
  .results { grid-template-columns: 1fr; gap: 56px; }
  .legal { padding: 64px 56px; }
}

/* ---------- 追加分：SP ---------- */
@media (max-width: 767px) {
  .panel { padding: 36px 20px; border-radius: 28px 8px 28px 8px; }
  .panel + .panel, .panel + .block, .block + .panel, .block + .block, .message + .block { margin-top: 40px; }
  .panel__title, .block__title { font-size: 19px; }
  .block__title { margin-bottom: 14px; }
  .divider { margin: 32px 0; }
  .btn-outline { min-height: 52px; padding: 0 24px; font-size: 15px; }

  .pill-group { gap: 8px; }
  .pill-choice { min-height: 44px; padding: 0 18px; font-size: 14px; }
  .pill-choice--s { min-height: 40px; padding: 0 16px; font-size: 13px; }
  .choice { gap: 12px; padding: 14px 16px; font-size: 15px; border-radius: 14px; }
  .choice__mark { width: 22px; height: 22px; }
  .check-item__title { font-size: 15px; }
  .check-item__desc { font-size: 13px; }

  /* ワーク */
  .page-head__meta { margin-top: 28px; font-size: 13px; }
  .work-q { padding: 36px 20px 40px; }
  .work-q__title { font-size: 20px; }
  .work-q .choice-list { margin-top: 24px; }
  .work-q__nav { flex-direction: column-reverse; gap: 12px; margin-top: 36px; }
  .work-q__nav > * { width: 100%; }

  /* 相談する */
  .safety { padding: 20px 20px 20px 24px; border-radius: 16px; }
  .safety__lead { font-size: 15px; }
  .safety__text { font-size: 14px; }
  .safety__note { font-size: 13px; }
  .step { margin-top: 56px; }
  .step__head { flex-direction: column; gap: 2px; }
  .step__num { font-size: 13px; }
  .step__title { font-size: 22px; }
  .step__body { margin-top: 18px; }
  .step__sub-label { width: 100%; }
  .hint { padding: 16px 18px; font-size: 14px; }
  .select-list { grid-template-columns: 1fr; gap: 16px; }
  .select-card { padding: 24px 20px 20px; border-radius: 28px 8px 28px 8px; }
  .confirm-form { padding: 32px 20px; }
  .confirm-list { grid-template-columns: 1fr; gap: 4px; }
  .confirm-list dt { font-size: 14px; color: var(--c-green); }
  .confirm-list dd { font-size: 15px; }
  .confirm-list dd + dt { margin-top: 16px; }
  .confirm-list dd .text-link { display: inline-block; margin: 6px 0 0; }
  .confirm-form__submit .btn-primary { width: 100%; }

  /* 同意 */
  .message { padding: 28px 20px; border-radius: 28px 8px 28px 8px; }
  .message__title { font-size: 17px; }
  .message__text { font-size: 15px; }
  .lawyer { flex-direction: column; align-items: center; gap: 24px; padding: 32px 20px; border-radius: 28px 8px 28px 8px; }
  .lawyer .partner-card__photo { width: 120px; height: 120px; margin: 10px auto 0; }
  .lawyer__body { width: 100%; }
  .lawyer .btn-outline { width: 100%; }
  .share-list { gap: 18px; margin-top: 22px; }
  .share-list__sub { padding: 14px 16px; }
  .consent__submit .btn-primary { width: 100%; }

  /* 会員登録 */
  .auth { padding: 32px 20px 40px; }
  .auth__tab { min-height: 44px; font-size: 15px; }
  .btn-google { margin-top: 24px; min-height: 52px; font-size: 15px; }
  .auth__or { margin: 28px 0 22px; }
  .auth .dot-list { padding: 16px 18px; }
  .auth .dot-list li { font-size: 13px; }

  /* 規約 */
  .legal { padding: 40px 20px 48px; }
  .legal__intro { font-size: 14px; line-height: 2; }
  .legal__date { font-size: 13px; }
  .legal__section { margin-top: 36px; }
  .legal__section + .legal__section { padding-top: 32px; }
  .legal__title { flex-direction: column; gap: 0; font-size: 17px; }
  .legal__title span { font-size: 13px; }
  .legal__text, .legal__items > li { font-size: 14px; line-height: 2; }
  .legal__items > li { padding-left: 1.6em; }
  .legal__sub li { padding-left: 2.4em; font-size: 13px; }
  .legal__end { margin-top: 40px; font-size: 13px; }

  /* 404 */
  .notfound { padding: 48px 20px 56px; }
  .notfound__num { font-size: 96px; }
  .notfound__text { font-size: 14px; }
  .notfound .btn-primary { min-width: 0; width: 100%; }

  /* 検索結果 */
  .results-filter { margin: 20px -20px 0; padding: 0 20px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .results-filter::-webkit-scrollbar { display: none; }
  .results-filter .pill-choice { flex-shrink: 0; }
  .results { margin-top: 48px; gap: 48px; }
  .results__label { font-size: 17px; }
  .result-card { padding: 24px 20px; border-radius: 28px 8px 28px 8px; }
  .result-card__title { font-size: 16px; }
  .result-card__text { font-size: 13px; }
}


/* ##########################################################
   悩み別ページ／マイページ
   ########################################################## */
.btn-primary--s { min-height: 44px; padding: 0 24px; font-size: 14px; }
.tag--expert { border-color: #8a7aa0; color: #6e5a80; }
.panel__title--icon { display: flex; align-items: center; gap: 10px; }
.panel__title--icon img { flex-shrink: 0; }

.sec-block + .sec-block { margin-top: 80px; }
.sec-block__title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
  color: var(--c-text);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.sec-block__title::after { content: ""; flex: 1; height: 1px; background: var(--c-text-mute); }

/* ---------- 悩み別：まず読んでほしい記事 ---------- */
.feature {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  overflow: hidden;
  border-radius: var(--radius-leaf);
  background: #fff;
}
.feature__img { position: relative; min-height: 340px; }
.feature__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.feature__body { display: flex; flex-direction: column; justify-content: center; padding: 48px 56px; }
.feature__title { display: block; margin-top: 16px; color: var(--c-text); font-size: 24px; font-weight: 700; line-height: 1.6; letter-spacing: 0.04em; }
.feature__text { display: block; margin-top: 14px; color: var(--c-text-sub); font-size: 15px; line-height: 2; }
.feature .post-date { display: block; margin-top: 16px; }

/* ---------- 悩み別：おすすめの行動 ---------- */
.action-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.action-card {
  display: flex;
  align-items: center;
  gap: 28px;
  height: 100%;
  padding: 36px 40px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.action-card__img { flex-shrink: 0; width: 120px; height: 80px; }
.action-card__img img { width: 100%; height: 100%; object-fit: cover; }
.action-card__body { flex: 1; min-width: 0; }
.action-card__type { display: block; color: var(--c-green); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; }
.action-card__title { display: block; margin-top: 4px; color: var(--c-text); font-size: 19px; font-weight: 700; line-height: 1.6; }
.action-card__text { display: block; margin-top: 8px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.action-card .worry-card__arrow { align-self: center; }

/* ---------- 悩み別：もっと詳しく ---------- */
.more-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.more-list .result-card { height: 100%; }

/* ---------- 悩み別：相談への案内 ---------- */
.cta {
  position: relative;
  margin-top: 96px;
  padding: 64px 40px;
  overflow: hidden;
  border-radius: var(--radius-leaf);
  background: #fff;
  text-align: center;
}
.cta__title { color: var(--c-text); font-size: 28px; font-weight: 700; line-height: 1.6; letter-spacing: 0.1em; }
.cta .btn-primary { margin-top: 32px; min-width: 320px; }
.cta__link { display: inline-block; margin-top: 20px; font-size: 15px; }
.cta__deco { position: absolute; pointer-events: none; }
.cta__deco--l { left: 6%; bottom: 28px; width: 80px; }
.cta__deco--r { right: 7%; top: 28px; width: 64px; }

/* ---------- マイページ ---------- */
.notice-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 28px 36px;
  border-radius: 20px;
  background: #fff;
  box-shadow: inset 4px 0 0 var(--c-green);
}
.notice-bar__head { display: flex; align-items: center; gap: 16px; }
.notice-bar__title { color: var(--c-text); font-size: 18px; font-weight: 700; line-height: 1.7; }
.notice-bar__title::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 10px 2px 0;
  border-radius: 50%;
  background: var(--c-coral);
  vertical-align: middle;
}
.notice-bar__text { margin-top: 2px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }

.my-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; margin-top: 48px; }
.my-grid .panel { display: flex; flex-direction: column; padding: 44px 48px; }
.my-grid .panel + .panel { margin-top: 0; }
.my-grid .panel--wide { grid-column: 1 / -1; }
.my-box { margin-top: 20px; padding: 20px 24px; border-radius: 16px; background: var(--c-cream); }
.my-box__meta { color: var(--c-text-sub); font-size: 13px; line-height: 1.9; }
.my-box__text { margin-top: 6px; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.my-box__text strong { color: var(--c-green); }
.my-box .btn-soft { margin-top: 16px; }
.my-count { margin-top: 14px; color: var(--c-text-sub); font-size: 14px; }
.my-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: auto; padding-top: 24px; }
.my-items { margin-top: 20px; }
.my-items li { padding: 16px 0; border-bottom: 1px dashed rgba(122, 107, 98, 0.35); }
.my-items li:first-child { padding-top: 0; }
.my-items__label { display: block; color: var(--c-green); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; }
.my-items__title { display: block; margin-top: 2px; color: var(--c-text); font-size: 16px; font-weight: 700; line-height: 1.7; }
.my-items__meta { display: block; margin-top: 2px; color: var(--c-text-sub); font-size: 13px; }
.my-settings { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 32px; margin-top: 24px; }
.my-settings .form-field + .form-field { margin-top: 0; }
.my-settings__check { margin-top: 24px; }
.my-settings__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 32px; }
.my-settings__actions .text-link { margin-left: auto; color: var(--c-text-sub); font-size: 14px; font-weight: 400; }

@media (max-width: 1024px) {
  .feature { grid-template-columns: 1fr; }
  .feature__img { min-height: 260px; }
  .action-list { grid-template-columns: 1fr; gap: 20px; }
  .more-list { grid-template-columns: 1fr 1fr; }
  .my-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .sec-block + .sec-block { margin-top: 56px; }
  .sec-block__title { margin-bottom: 18px; font-size: 19px; }
  .feature { border-radius: 56px 8px 56px 8px; }
  .feature__img { min-height: 200px; }
  .feature__body { padding: 28px 20px 32px; }
  .feature__title { margin-top: 12px; font-size: 18px; }
  .feature__text { font-size: 14px; }
  .action-card { gap: 16px; padding: 22px 18px; border-radius: 28px 8px 28px 8px; }
  .action-card__img { width: 72px; height: 48px; }
  .action-card .worry-card__arrow { display: none; }
  .action-card__title { font-size: 16px; }
  .action-card__text { font-size: 13px; }
  .more-list { grid-template-columns: 1fr; gap: 16px; }
  .cta { margin-top: 64px; padding: 48px 20px; border-radius: 56px 8px 56px 8px; }
  .cta__title { font-size: 20px; }
  .cta .btn-primary { min-width: 0; width: 100%; }
  .cta__link { font-size: 13px; }
  .cta__deco--l { left: 12px; bottom: 12px; width: 44px; }
  .cta__deco--r { right: 12px; top: 12px; width: 36px; }

  .notice-bar { flex-direction: column; align-items: stretch; gap: 16px; padding: 22px 20px 22px 24px; border-radius: 16px; }
  .notice-bar__title { font-size: 16px; }
  .notice-bar__text { font-size: 13px; }
  .notice-bar .btn-primary { width: 100%; }
  .my-grid { gap: 20px; margin-top: 32px; }
  .my-grid .panel { padding: 32px 20px; }
  .my-box { padding: 16px 18px; }
  .my-box__text { font-size: 14px; }
  .my-box .btn-soft { width: 100%; }
  .my-actions > * { flex: 1; }
  .my-settings { grid-template-columns: 1fr; gap: 20px; }
  .my-settings__actions > * { flex: 1; }
  .my-settings__actions .text-link { flex-basis: 100%; margin: 8px 0 0; text-align: center; }
}


/* ==========================================================
   コラム一覧
   ========================================================== */
.list-count {
  margin-top: 48px;
  color: var(--c-text-sub);
  font-size: 15px;
}
.list-count span { margin-right: 2px; color: var(--c-green); font-family: var(--ff-en); font-size: 22px; font-weight: 700; }
.column-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 20px; }
.column-grid .result-card { height: 100%; }

@media (max-width: 767px) {
  .list-count { margin-top: 32px; font-size: 14px; }
  .list-count span { font-size: 19px; }
  .column-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 14px; }
}


/* マイページ：最新ワイヤーフレーム反映分 */
.my-box__text strong { color: var(--c-brown-line); }
.my-box .btn-primary { margin-top: 16px; }
.my-items__inline { display: block; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.my-items__inline strong { font-weight: 700; }
.my-items__inline small { margin-left: 6px; color: var(--c-text-sub); font-size: 13px; }
a.my-items__title { text-decoration: underline; text-decoration-color: rgba(85, 85, 85, 0.35); text-underline-offset: 5px; }
@media (max-width: 767px) {
  .my-box .btn-primary { width: 100%; }
  .my-items__inline { font-size: 14px; }
  .my-settings__actions > * { flex: 1 1 calc(50% - 6px); }
  .my-settings__actions > :last-child { flex-basis: 100%; }
}


/* 飾りの区切り線（ドット） */
.dot-divider {
  width: 600px;
  max-width: 100%;
  height: 12px;
  margin-top: 32px;
  background-image: radial-gradient(circle, var(--c-green-light) 0 4px, transparent 4.5px);
  background-position: left center;
  background-repeat: space no-repeat;
  background-size: 18px 12px;
  opacity: 0.55;
}
@media (max-width: 767px) {
  .dot-divider { height: 10px; margin-top: 24px; background-image: radial-gradient(circle, var(--c-green-light) 0 3px, transparent 3.5px); background-size: 14px 10px; }
}


/* ##########################################################
   保存（ブックマーク）関連
   ########################################################## */
.count-badge {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--c-coral);
  color: #fff;
  font-family: var(--ff-en);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}
.btn-saved {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 20px;
  border: 1px solid var(--c-green-light);
  border-radius: 999px;
  background: #fff;
  color: var(--c-green);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.btn-mypage img { flex-shrink: 0; }

/* マイページのメニュー（開いた状態を表示） */
.my-menu { position: relative; }
.my-menu__chevron { margin-left: 2px; }
.my-menu__list {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 60;
  width: 240px;
  padding: 10px 0;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(58, 47, 41, 0.14);
}
.my-menu__list a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  color: var(--c-text);
  font-size: 15px;
  line-height: 1.6;
}
.my-menu__list a.is-current { background: var(--c-pink-work); color: var(--c-green); font-weight: 700; }
.my-menu__list a .count-badge { margin-left: auto; }
.my-menu__logout { margin-top: 6px; border-top: 1px solid rgba(122, 107, 98, 0.18); }
.my-menu__logout a { padding-top: 16px; color: var(--c-text-sub); font-size: 14px; }

/* 保存ボタン（カード右上） */
.save-btn {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(122, 107, 98, 0.35);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.save-btn:hover,
.save-btn.is-hover { border-color: var(--c-green); }
.save-btn.is-saved { border-color: var(--c-green); background: var(--c-green); }

.save-card { position: relative; }
.save-card .result-card { height: 100%; padding-right: 88px; }
.save-card .save-btn { position: absolute; top: 24px; right: 24px; }

.list-bar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.list-bar .list-count { margin-top: 48px; }
.list-bar__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--c-green);
  color: var(--c-green);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.list-bar--top { align-items: center; }
.list-meta { color: var(--c-text-sub); font-size: 14px; white-space: nowrap; }
.list-meta span { color: var(--c-green); font-family: var(--ff-en); font-size: 20px; font-weight: 700; }
.saved-page .column-grid { margin-top: 28px; }
.kind-label { color: var(--c-text-sub); font-size: 12px; letter-spacing: 0.1em; }
.saved-at { margin-left: 16px; }
.saved-at::before { content: "・"; margin-right: 6px; color: var(--c-text-mute); }

/* 記事詳細用の保存ボタン */
.save-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid var(--c-green-light);
  border-radius: 999px;
  background: #fff;
  color: var(--c-green);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.save-pill.is-saved { border-color: var(--c-green); background: var(--c-green); color: #fff; }

/* お知らせ（トースト） */
.toast {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 56px;
  padding: 0 28px;
  border-radius: 999px;
  background: var(--c-text);
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
  color: #fff;
  font-size: 15px;
  letter-spacing: 0.06em;
}
.toast a { color: #f7d9cf; text-decoration: underline; text-underline-offset: 4px; }

/* 丸アイコン */
.icon-circle {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto;
  border-radius: 50%;
  background: #e7eee9;
}

/* 0件のとき */
.empty-state {
  padding: 64px 32px 72px;
  border: 1px dashed rgba(122, 107, 98, 0.35);
  border-radius: var(--radius-leaf-s);
  background: #fff;
  text-align: center;
}
.empty-state__title { margin-top: 24px; color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.08em; }
.empty-state__text { margin-top: 10px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.empty-state .btn-primary { margin-top: 32px; min-width: 220px; }

/* 非会員：モーダル */
.modal-demo {
  display: grid;
  place-items: center;
  padding: 80px 24px;
  border-radius: 24px;
  background: rgba(58, 47, 41, 0.42);
}
.modal {
  width: 100%;
  max-width: 480px;
  padding: 48px 40px 36px;
  border-radius: var(--radius-leaf-s);
  background: #fff;
  text-align: center;
}
.modal__title { margin-top: 22px; color: var(--c-text); font-size: 21px; font-weight: 700; line-height: 1.6; letter-spacing: 0.08em; }
.modal__text { margin-top: 12px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.modal .btn-primary { margin-top: 28px; }
.modal__login { display: flex; width: 100%; margin-top: 12px; }
.modal__close {
  margin-top: 16px;
  padding: 4px 8px;
  border: 0;
  background: none;
  color: var(--c-text-sub);
  font-family: inherit;
  font-size: 14px;
  cursor: pointer;
}

/* パーツ一覧 */
.parts { margin-top: 120px; padding-top: 80px; border-top: 1px dashed rgba(122, 107, 98, 0.35); }
.parts__title { color: var(--c-text); font-size: 32px; font-weight: 700; line-height: 1.5; letter-spacing: 0.12em; }
.parts__lead { margin-top: 12px; color: var(--c-text-sub); font-size: 15px; line-height: 1.9; }
.parts__block { margin-top: 56px; }
.parts__sub { margin-bottom: 24px; color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; }
.parts__row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 32px 48px; }
.parts__item { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0; }
.parts__item figcaption { color: var(--c-text-sub); font-size: 13px; }

@media (max-width: 1024px) {
  .btn-saved { justify-content: center; height: 52px; }
  .my-menu__list { position: static; width: 100%; margin-top: 12px; box-shadow: none; border: 1px solid rgba(122, 107, 98, 0.2); }
  .btn-mypage--menu { width: 100%; }
}

@media (max-width: 767px) {
  .save-card .result-card { padding-right: 72px; }
  .save-card .save-btn { top: 18px; right: 16px; width: 40px; height: 40px; }
  .list-bar { flex-wrap: wrap; }
  .list-bar .list-count { margin-top: 32px; }
  .list-bar__link { font-size: 13px; }
  .list-bar--top { flex-direction: column; align-items: flex-start; }
  .list-meta { font-size: 13px; }
  .saved-at { display: inline-block; margin-left: 10px; }

  .parts { margin-top: 72px; padding-top: 56px; }
  .parts__title { font-size: 24px; }
  .parts__lead { font-size: 13px; }
  .parts__block { margin-top: 40px; }
  .parts__sub { margin-bottom: 18px; font-size: 16px; }
  .parts__row { gap: 24px 32px; }
  .toast { flex-wrap: wrap; justify-content: center; gap: 4px 12px; padding: 12px 24px; border-radius: 24px; font-size: 14px; }
  .empty-state { padding: 48px 20px 52px; border-radius: 28px 8px 28px 8px; }
  .empty-state__title { font-size: 17px; }
  .empty-state__text { font-size: 13px; }
  .empty-state .btn-primary { width: 100%; min-width: 0; }
  .modal-demo { padding: 40px 16px; border-radius: 20px; }
  .modal { padding: 36px 20px 28px; border-radius: 28px 8px 28px 8px; }
  .modal__title { font-size: 18px; }
  .modal__text { font-size: 13px; }
}


/* ==========================================================
   yohakuについて
   ========================================================== */
.about-sec {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 48px;
  padding: 72px 80px;
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.about-sec + .about-sec { margin-top: 40px; }
.about-sec--short { align-items: center; }
.about-sec__label {
  display: flex;
  align-items: center;
  gap: 8px;
  align-self: start;
  color: var(--c-green);
  font-family: var(--ff-en);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.14em;
}
.about-sec__body { max-width: 680px; }
.about-h {
  color: var(--c-brown);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.1em;
}
.about-h:not(:first-child) { margin-top: 64px; }
.about-quote { margin-top: 28px; color: var(--c-text); font-size: 18px; line-height: 2.2; letter-spacing: 0.08em; }
.about-text { margin-top: 24px; }
.about-text p { color: var(--c-text-body); font-size: 16px; line-height: 2.2; }
.about-text p + p { margin-top: 24px; }
.about-tagline { margin-top: 48px; color: var(--c-green-light); font-size: 24px; font-weight: 700; line-height: 2; letter-spacing: 9px; }
.about-sign { margin-top: 16px; color: var(--c-text-sub); font-size: 14px; text-align: right; }
.about-text-single { color: var(--c-text-body); font-size: 16px; line-height: 2; }
.about-sec .btn-outline { margin-top: 24px; }

.org-table > div { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 22px 0; border-bottom: 1px dashed rgba(122, 107, 98, 0.35); }
.org-table > div:first-child { padding-top: 0; }
.org-table dt { color: var(--c-text); font-size: 15px; font-weight: 700; line-height: 1.9; }
.org-table dd { margin: 0; color: var(--c-text-body); font-size: 15px; line-height: 1.9; }
.check-mark { display: inline-block; margin-left: 6px; padding: 0 8px; border-radius: 4px; background: var(--c-pink-card); color: var(--c-coral); font-size: 12px; line-height: 1.8; }
.check-mark--inline { margin-left: 2px; color: var(--c-text-body); font-size: inherit; }
.org-list { counter-reset: org; }
.org-list li { position: relative; padding-left: 1.8em; counter-increment: org; }
.org-list li + li { margin-top: 6px; }
.org-list li::before { content: counter(org) "."; position: absolute; left: 0; color: var(--c-green); font-family: var(--ff-en); font-weight: 700; }

/* ==========================================================
   コラム詳細
   ========================================================== */
.article { position: relative; padding: 180px 0 96px; background: #fff; }
.article__inner { max-width: 840px; margin: 0 auto; padding: 0 40px; }
.article__head { margin-top: 48px; }
.article__title { margin-top: 20px; color: var(--c-text); font-size: 34px; font-weight: 700; line-height: 1.6; letter-spacing: 0.08em; }
.article__meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }
.article__meta .save-pill { font-family: inherit; cursor: pointer; }
.article__eyecatch { margin-top: 48px; overflow: hidden; border-radius: var(--radius-leaf); aspect-ratio: 760 / 420; }
.article__eyecatch img { width: 100%; height: 100%; object-fit: cover; }
.author { display: flex; align-items: center; gap: 18px; margin-top: 32px; padding: 22px 28px; border-radius: 20px; background: var(--c-cream); }
.author__logo { display: grid; place-items: center; flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; background: #fff; color: var(--c-text-mute); font-size: 11px; letter-spacing: 0.2em; }
.author__role { display: block; color: var(--c-green); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; }
.author__name { display: block; color: var(--c-text); font-size: 17px; font-weight: 700; line-height: 1.6; }
.author__org { display: block; color: var(--c-text-sub); font-size: 13px; }
.article__body { margin-top: 48px; }
.article__body p { color: var(--c-text-body); font-size: 16px; line-height: 2.2; }
.article__body p + p { margin-top: 28px; }

.article__h2 { display: flex; align-items: baseline; gap: 10px; color: var(--c-text); font-size: 22px; font-weight: 700; letter-spacing: 0.08em; }
.article__h2 span { color: var(--c-green); font-family: var(--ff-en); font-size: 16px; }
.comments { margin-top: 72px; padding-top: 56px; border-top: 1px dashed rgba(122, 107, 98, 0.35); }
.comments__list { display: grid; gap: 14px; margin-top: 20px; }
.comment { padding: 20px 24px; border-radius: 16px; background: var(--c-cream); }
.comment__name { color: var(--c-green); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; }
.comment__text { margin-top: 4px; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.comments__form { margin-top: 32px; }
.comments__submit { margin-top: 20px; text-align: center; }
.comments__submit .btn-primary { min-width: 200px; }

.article-after { padding-top: 140px; }
.article-after .article__inner { padding: 0 40px; }
.cta--article { margin-top: 0; }
.article-after .sec-block { margin-top: 72px; }
.article-after .action-list { grid-template-columns: 1fr 1fr; gap: 20px; }
.article-after .action-card { flex-direction: column; align-items: flex-start; gap: 16px; padding: 28px; }

@media (max-width: 1024px) {
  .about-sec { grid-template-columns: 1fr; gap: 20px; padding: 56px 48px; }
  .article { padding-top: 136px; }
}

@media (max-width: 767px) {
  .about-sec { padding: 40px 20px; border-radius: 28px 8px 28px 8px; }
  .about-sec + .about-sec { margin-top: 24px; }
  .about-sec__label { font-size: 14px; }
  .about-h { font-size: 21px; letter-spacing: 0.06em; }
  .about-h:not(:first-child) { margin-top: 48px; }
  .about-h br, .about-quote br { display: none; }
  .about-quote { margin-top: 20px; font-size: 15px; line-height: 2; }
  .about-text { margin-top: 18px; }
  .about-text p { font-size: 14px; line-height: 2; }
  .about-text p + p { margin-top: 18px; }
  .about-tagline { margin-top: 36px; font-size: 18px; letter-spacing: 0.3em; }
  .about-sign { font-size: 12px; }
  .about-text-single { font-size: 14px; }
  .about-sec .btn-outline { width: 100%; }
  .org-table > div { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; }
  .org-table dt { font-size: 13px; color: var(--c-green); }
  .org-table dd { font-size: 14px; }

  .article { padding: 104px 0 64px; }
  .article__inner, .article-after .article__inner { padding: 0 20px; }
  .article__head { margin-top: 32px; }
  .article__title { margin-top: 14px; font-size: 22px; }
  .article__meta { margin-top: 18px; }
  .article__meta .save-pill { min-height: 40px; padding: 0 16px; font-size: 13px; }
  .article__eyecatch { margin-top: 32px; border-radius: 56px 8px 56px 8px; }
  .author { margin-top: 24px; padding: 16px 18px; }
  .author__logo { width: 52px; height: 52px; }
  .author__name { font-size: 15px; }
  .article__body { margin-top: 32px; }
  .article__body p { font-size: 15px; line-height: 2.1; }
  .article__body p + p { margin-top: 22px; }
  .comments { margin-top: 56px; padding-top: 40px; }
  .article__h2 { font-size: 19px; }
  .comment { padding: 16px 18px; }
  .comment__text { font-size: 14px; }
  .comments__submit .btn-primary { width: 100%; }
  .article-after { padding-top: 96px; }
  .article-after .sec-block { margin-top: 56px; }
  .article-after .action-list { grid-template-columns: 1fr; }
  .article-after .action-card { flex-direction: row; padding: 22px 18px; }
}


/* ==========================================================
   日記
   ========================================================== */
.diary-form { max-width: 920px; margin: 0 auto; padding: 56px 64px 64px; }
.diary-form__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 32px; }
.autosave { display: flex; align-items: center; gap: 8px; color: var(--c-text-sub); font-size: 13px; }
.autosave::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-green-light); }
.autosave span { font-family: var(--ff-en); }
.diary-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.diary-form__row .form-field + .form-field { margin-top: 0; }
.diary-form .form-field { margin-top: 32px; }
.diary-form__row .form-field { margin-top: 0; }
.diary-form__feelings { margin-bottom: 14px; }
.diary-form__feel-text { min-height: 110px; resize: vertical; }
.file-drop {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  border: 1px dashed rgba(122, 107, 98, 0.45);
  border-radius: 14px;
  background: var(--c-cream);
  cursor: pointer;
}
.file-drop__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.file-drop__text { color: var(--c-text-sub); font-size: 14px; }
.file-drop__text::before { content: "＋"; margin-right: 8px; color: var(--c-green); font-weight: 700; }
.diary-note { margin-top: 36px; padding: 20px 24px; border-radius: 16px; background: var(--c-pink-work); box-shadow: inset 4px 0 0 var(--c-coral); }
.diary-note__title { color: var(--c-text); font-size: 15px; font-weight: 700; line-height: 1.8; }
.diary-note__text { margin-top: 6px; color: var(--c-text-sub); font-size: 14px; line-height: 1.9; }
.diary-form__submit { display: flex; align-items: center; gap: 20px; margin-top: 32px; }
.diary-form__submit .btn-primary { min-width: 200px; }
.diary-form__remain { color: var(--c-text-sub); font-size: 14px; }
.diary-form__remain strong { margin-left: 4px; color: var(--c-green); font-family: var(--ff-en); font-weight: 700; }

.diary-list { max-width: 920px; margin: 96px auto 0; }
.diary-list__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.diary-list__head .article__h2 { font-size: 26px; }
.entry { padding: 32px 40px; border: 1px solid var(--c-brown); border-radius: var(--radius-leaf-s); background: #fff; }
.entry + .entry { margin-top: 20px; }
.entry__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding-bottom: 16px; border-bottom: 1px dashed rgba(122, 107, 98, 0.35); }
.entry__date { color: var(--c-text); font-size: 15px; font-weight: 700; }
.entry__status { display: flex; align-items: center; gap: 10px; color: var(--c-text-sub); font-size: 12px; }
.entry__badge { padding: 0 10px; border-radius: 999px; background: #e7eee9; color: var(--c-green); font-size: 12px; font-weight: 700; line-height: 22px; }
.entry__body > div { display: grid; grid-template-columns: 88px 1fr; gap: 16px; padding: 14px 0; }
.entry__body > div + div { border-top: 1px dotted rgba(122, 107, 98, 0.25); }
.entry__body dt { color: var(--c-green); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; line-height: 1.9; }
.entry__body dd { margin: 0; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.entry__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.entry__addendum { margin-top: 8px; padding: 14px 20px; border-radius: 12px; background: var(--c-cream); box-shadow: inset 3px 0 0 var(--c-green-light); }
.entry__addendum-meta { color: var(--c-text-sub); font-size: 12px; }
.entry__addendum p + p { margin-top: 4px; color: var(--c-text); font-size: 15px; line-height: 1.9; }
.entry > .btn-outline { margin-top: 16px; }

@media (max-width: 767px) {
  .diary-form { padding: 32px 20px 40px; }
  .diary-form__head { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 24px; }
  .diary-form__row { grid-template-columns: 1fr 1fr; gap: 12px; }
  .diary-form .form-field { margin-top: 24px; }
  .diary-form__row .form-field { margin-top: 0; }
  .diary-note { padding: 16px 18px; }
  .file-drop { padding: 12px 16px; }
  .file-drop__text { font-size: 13px; letter-spacing: 0.02em; text-align: center; }
  .diary-note__title { font-size: 14px; }
  .diary-note__text { font-size: 13px; }
  .diary-form__submit { flex-direction: column; align-items: stretch; gap: 10px; text-align: center; }
  .diary-form__submit .btn-primary { min-width: 0; width: 100%; }
  .diary-list { margin-top: 64px; }
  .diary-list__head { flex-wrap: wrap; }
  .diary-list__head .article__h2 { font-size: 20px; }
  .entry { padding: 24px 20px; border-radius: 28px 8px 28px 8px; }
  .entry__head { flex-direction: column; align-items: flex-start; }
  .entry__date { font-size: 14px; }
  .entry__body > div { grid-template-columns: 1fr; gap: 4px; }
  .entry__body dd { font-size: 14px; }
  .entry__addendum { padding: 12px 16px; }
  .entry__addendum p + p { font-size: 14px; }
  .entry > .btn-outline { width: 100%; }
}
.entry__file { color: var(--c-text-body); text-decoration: underline; text-underline-offset: 3px; }


/* ##########################################################
   修正対応（2026-10-22）
   ########################################################## */

/* ---------- アコーディオン共通（details / summary） ---------- */
.accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
}
.accordion__summary::-webkit-details-marker { display: none; }
.accordion__icon {
  position: relative;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border: 1px solid var(--c-green-light);
  border-radius: 50%;
  background: #fff;
}
.accordion__icon::before,
.accordion__icon::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 1.6px;
  border-radius: 2px;
  background: var(--c-green);
}
.accordion__icon::after { transform: rotate(90deg); }
.accordion[open] > .accordion__summary .accordion__icon { background: var(--c-green); border-color: var(--c-green); }
.accordion[open] > .accordion__summary .accordion__icon::before { background: #fff; }
.accordion[open] > .accordion__summary .accordion__icon::after { display: none; }

/* ---------- 相談する：安全の案内 ---------- */
.safety { padding: 0; }
.safety .accordion__summary { padding: 22px 28px 22px 36px; }
.safety .safety__lead { font-size: 16px; }
.safety .accordion__body { padding: 0 36px 26px; }
.safety .accordion__body .safety__text:first-child { margin-top: 0; }

/* ---------- 参画者：葉っぱ付きタグ ---------- */
.tag--leaf { display: inline-flex; align-items: center; gap: 4px; }
.tag--leaf img { flex-shrink: 0; width: 12px; height: 12px; }

/* ---------- コラム詳細：読了時間 ---------- */
.read-time {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  color: var(--c-text-sub);
  font-size: 14px;
  line-height: 1.8;
}
.read-time img { flex-shrink: 0; }
.read-time strong { margin: 0 2px; color: var(--c-green); font-weight: 700; }

/* ---------- ワーク：一時保存 ---------- */
.work-q__nav-right { display: flex; align-items: center; gap: 12px; }
.work-q__nav-right .btn-primary { min-width: 200px; }

/* ---------- 日記：これまでの記録 ---------- */
.entry.accordion { padding: 0; }
.entry.accordion > .entry__head { flex-wrap: nowrap; padding: 24px 32px; border-bottom: 0; }
.entry.accordion[open] > .entry__head { border-bottom: 1px dashed rgba(122, 107, 98, 0.35); }
.entry__head-text { display: flex; flex: 1; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.entry.accordion > .accordion__body { padding: 8px 32px 28px; }

/* ---------- マイページ：未着手おすすめワーク ---------- */
.panel__count { margin-left: 4px; color: var(--c-green); font-family: var(--ff-en); font-size: 16px; }
.rec-list { display: grid; gap: 12px; margin-top: 20px; }
.rec-item { border-radius: 16px; background: var(--c-cream); }
.rec-item > .accordion__summary { padding: 18px 24px; }
.rec-item__head { display: block; }
.rec-item__type { display: block; color: var(--c-green); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; }
.rec-item__title { display: block; margin-top: 2px; color: var(--c-text); font-size: 16px; font-weight: 700; line-height: 1.7; }
.rec-item > .accordion__body { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 24px 20px; }
.rec-item__text { color: var(--c-text-body); font-size: 14px; line-height: 1.9; }
.rec-item .btn-primary { flex-shrink: 0; }

@media (max-width: 767px) {
  .safety .accordion__summary { padding: 18px 16px 18px 22px; }
  .safety .safety__lead { font-size: 15px; }
  .safety .accordion__body { padding: 0 20px 20px 22px; }
  .read-time { align-items: flex-start; font-size: 13px; }
  .work-q__nav-right { flex-direction: column-reverse; align-items: stretch; width: 100%; }
  .work-q__nav-right .btn-primary { min-width: 0; }
  .entry.accordion > .entry__head { padding: 20px 18px; }
  .entry.accordion > .accordion__body { padding: 4px 18px 22px; }
  .rec-item > .accordion__summary { padding: 16px 16px 16px 18px; }
  .rec-item__title { font-size: 15px; }
  .rec-item > .accordion__body { flex-direction: column; align-items: stretch; gap: 14px; padding: 0 18px 18px; }
}
.entry__date { display: block; }
@media (max-width: 767px) {
  .entry.accordion > .entry__head { flex-direction: row; align-items: center; }
  .entry__head-text { flex-direction: column; align-items: flex-start; }
}

/* 下層ページ h2 の葉っぱアイコン */
.h2-leaf { display: inline-block; flex-shrink: 0; width: 0.75em; min-width: 14px; max-width: 20px; height: auto; margin: -0.15em 0.45em 0 0; vertical-align: middle; }
.panel__title--icon .h2-leaf,
.legal__title .h2-leaf,
.sec-block__title .h2-leaf,
.results__label .h2-leaf,
.article__h2 .h2-leaf { margin: 0; align-self: center; }
.article__h2 { align-items: center; }
.about-h .h2-leaf { margin-top: -0.25em; }


/* ==========================================================
   ワーク一覧
   ========================================================== */
.keyword-pop { margin-top: 24px; }
.tag--new { border-color: var(--c-coral); background: var(--c-pink-card); color: var(--c-coral); font-family: var(--ff-en); font-weight: 700; letter-spacing: 0.1em; }
.work-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 20px; }
.work-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 36px 40px;
  border: 1px solid var(--c-brown);
  border-radius: var(--radius-leaf-s);
  background: #fff;
}
.work-item__title { display: flex; align-items: center; gap: 0; margin-top: 16px; color: var(--c-text); font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: 0.06em; }
.work-item__text { margin-top: 10px; color: var(--c-text-sub); font-size: 15px; line-height: 1.9; }
.work-item__time { display: flex; align-items: center; gap: 6px; margin-top: 14px; color: var(--c-text-sub); font-size: 14px; }
.work-item .btn-primary { margin-top: auto; }
.work-item__time + .btn-primary { margin-top: 20px; }

@media (max-width: 767px) {
  .keyword-pop { margin-top: 16px; }
  .work-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 14px; }
  .work-item { padding: 26px 20px; border-radius: 28px 8px 28px 8px; }
  .work-item__title { margin-top: 12px; font-size: 17px; }
  .work-item__text { font-size: 14px; }
  .work-item .btn-primary { width: 100%; }
}
.work-item__title { align-items: flex-start; } .work-item__title .h2-leaf { margin-top: 0.45em; }
