@charset "UTF-8";
/* =========================================================
   森田プラチナクラブ 下層ページ（top.css のあとに読み込み）
   TOPと同じサイトスキン（左右の固定バー・雲の背景・フッター）を使い、
   中央コンテンツ部分だけを下層用に組んでいます。
   ========================================================= */

/* ---------- 共通 ---------- */
.gnav li.is-current a { color: var(--c-teal-dark); }

/* ---------- 見出しエリア ---------- */
.page-head__wrap {
  /* シンボルマークがメインコンテンツ側へ寄ってきたら、そのぶん見出しを右へずらす */
  --mark-gap: calc((clamp(1080px, 100vw, 1920px) - 420px - var(--cw)) * .7225);
  --mark-w: min(calc(var(--cw) * .26), 200px);
  --ph-pad: max(0px, calc(max(var(--cw) * -.5747, 30px - var(--mark-gap)) + var(--mark-w) + 28px));
  padding: 118px 0 74px var(--ph-pad);
}
.page-head__mark { width: var(--mark-w); top: 70px; }
.page-head__wrap .page-head__en { font-size: min(72px, calc((var(--cw) - var(--ph-pad)) / 9)); }
.page-head__en {
  font-family: var(--ff-en); font-weight: 900; font-size: 72px; line-height: 1; letter-spacing: .05em;
  color: transparent; -webkit-text-stroke: 2px var(--c-yellow);
  word-break: break-word;
}
.page-head__ttl { margin-top: 22px; font-size: 32px; font-weight: 700; line-height: 1.4; letter-spacing: .05em; color: #fff; }
.page-head__cloud { display: none; }

.breadcrumb { margin-top: 30px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; font-size: 13px; line-height: 1.6; color: var(--c-cream); }
.breadcrumb li { display: flex; align-items: center; min-width: 0; }
.breadcrumb li + li::before { content: "\e13a"; font-family: "Phosphor"; margin: 0 8px; font-size: 11px; color: var(--c-yellow); }
.breadcrumb li[aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 30em; }
.breadcrumb a { border-bottom: 1px solid rgba(253, 251, 240, .5); transition: border-color .3s; }
.breadcrumb a:hover { border-color: var(--c-cream); }

/* ---------- 本文エリア ---------- */
.sub-body { padding-bottom: 20px; }
.sub-card {
  background: #fff; border-radius: 30px;
  padding: 64px 62px 72px;
}
.sub-card + .sub-card { margin-top: 30px; }
.sub-card--center { text-align: center; }
.box--sub { padding-bottom: 64px; }
.archive-desc { font-size: 15px; line-height: 1.9; margin-bottom: 8px; }

/* カテゴリラベル */
.cat-label {
  display: inline-block; padding: 4px 10px 3px; border-radius: 30px;
  background: var(--c-teal-dark); color: #fff;
  font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: .05em;
}
.cat-label--project { background: var(--c-yellow); color: var(--c-text); }

/* お知らせ一覧 */
.info__list--sub { margin-top: 0; }
.info__list--sub a { align-items: center; }
.info__head { display: flex; align-items: center; gap: 12px; flex-shrink: 0; width: 170px; }
.info__head time { font-size: 13px; color: var(--c-teal); }
.info__list--sub .info__ttl { font-size: 16px; font-weight: 500; line-height: 1.5; }
.info__list--sub li:first-child a { padding-top: 8px; }

/* 企画一覧 */
.project__list--sub { margin-top: 0; row-gap: 40px; }
.box--sub .sec-ttl + .project__list--sub { margin-top: 41px; }

/* ページ送り */
.pager { margin-top: 48px; }
.pager .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pager .page-numbers {
  display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 6px; border-radius: 22px;
  background: #fff; color: var(--c-teal-dark);
  font-family: var(--ff-en); font-weight: 700; font-size: 15px; line-height: 1;
  transition: background .3s, color .3s;
}
.pager .page-numbers .ph { font-size: 18px; }
.pager a.page-numbers:hover, .pager .page-numbers.current { background: var(--c-teal-dark); color: #fff; }
.pager .page-numbers.dots { background: none; min-width: 20px; }

/* 検索フォーム */
.search-form { display: flex; max-width: 460px; margin: 0 auto; }
.search-form label { flex: 1; }
.search-form input {
  width: 100%; height: 52px; padding: 0 22px;
  border: 2px solid var(--c-line); border-right: 0; border-radius: 26px 0 0 26px; background: #fff;
  font: inherit; font-size: 16px; color: var(--c-text); outline: none;
}
.search-form input:focus { border-color: var(--c-teal); }
.search-form button {
  width: 64px; height: 52px; border-radius: 0 26px 26px 0;
  background: var(--c-teal-dark); color: #fff; display: grid; place-items: center;
  transition: background .3s;
}
.search-form button .ph { font-size: 22px; }
.search-form button:hover { background: var(--c-teal); }
.search-count { margin: 30px 0 18px; font-size: 14px; text-align: center; }

/* 丸ボタン（本文・404など） */
.btn-round {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  min-width: 260px; height: 64px; padding: 0 28px 0 36px; margin-top: 40px;
  border: 0; border-radius: 32px; background: var(--c-teal-dark); color: #fff;
  font: inherit; font-size: 16px; font-weight: 700; letter-spacing: .05em; cursor: pointer;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.btn-round .ph { font-size: 24px; }
.btn-round:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.12); }

/* 404 */
.notfound__num { font-family: var(--ff-en); font-weight: 900; font-size: 120px; line-height: 1; letter-spacing: .05em; color: var(--c-teal); }
.notfound__txt { margin: 24px 0 36px; font-size: 16px; line-height: 2; }

/* ---------- 投稿詳細 ---------- */
.post-head { padding-bottom: 28px; background: radial-gradient(circle, var(--c-teal) 2.6px, transparent 3px) left bottom / 9.1px 6px repeat-x; }
.post-head__meta { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--c-teal); }
.post-head__ttl { margin-top: 14px; font-size: 26px; font-weight: 700; line-height: 1.55; letter-spacing: .04em; }
.post-head__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.post-head__tags .tag { font-size: 12px; line-height: 1; transition: background .3s, color .3s; }
.post-head__tags .tag:hover { background: var(--c-text); color: #fff; }
.post-thumb { margin-top: 36px; border-radius: 12px; overflow: hidden; }
.post-thumb img { width: 100%; }
.post-head + .entry, .post-thumb + .entry { margin-top: 40px; }

.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 30px; }
.post-nav__link {
  display: flex; align-items: center; gap: 14px; padding: 20px 22px;
  border-radius: 16px; background: rgba(255, 255, 255, .92);
  font-size: 14px; font-weight: 500; line-height: 1.5;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.post-nav__link:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.1); }
.post-nav__link small { display: block; margin-bottom: 2px; font-size: 12px; color: var(--c-teal-dark); font-weight: 700; }
.post-nav__link .ph { font-size: 26px; color: var(--c-teal-dark); flex-shrink: 0; }
.post-nav__link span { min-width: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-nav__link--next { grid-column: 2; justify-content: space-between; text-align: right; }

.more-link--sub { margin-top: 44px; color: #fff; }
.more-link--sub .ph { color: var(--c-yellow); }

/* ---------- 本文（ブロックエディタ／クラシック共通） ---------- */
.entry { font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.entry > * + * { margin-top: 1.6em; }
.entry > :first-child { margin-top: 0; }
.entry h2, .entry h3, .entry h4, .entry h5 { line-height: 1.5; font-weight: 700; }
.entry h2 {
  margin-top: 2.6em; padding-bottom: 16px; font-size: 23px; color: var(--c-text); border-bottom: 3px dotted var(--c-teal);
}
.entry h3 { margin-top: 2.2em; padding-left: 14px; border-left: 5px solid var(--c-teal); font-size: 20px; }
.entry h4 { margin-top: 2em; font-size: 17px; color: var(--c-teal-dark); }
.entry a:not([class]) { color: var(--c-teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.entry a:not([class]):hover { text-decoration: none; }
.entry strong { font-weight: 700; }
.entry mark { background: linear-gradient(transparent 55%, var(--c-yellow) 55%); color: inherit; }
.entry ul:not([class]), .entry ul.wp-block-list { list-style: none; padding: 0; }
.entry ul:not([class]) > li, .entry ul.wp-block-list > li { position: relative; padding-left: 1.3em; }
.entry ul:not([class]) > li::before, .entry ul.wp-block-list > li::before { content: ""; position: absolute; left: .2em; top: .8em; width: 8px; height: 8px; border-radius: 50%; background: var(--c-teal); }
.entry ol { padding-left: 1.6em; }
.entry ol > li::marker { color: var(--c-teal-dark); font-family: var(--ff-en); font-weight: 700; }
.entry li + li { margin-top: .3em; }
.entry blockquote, .entry .wp-block-quote {
  margin-left: 0; margin-right: 0; padding: 24px 30px; border: 0; border-left: 5px solid var(--c-yellow);
  border-radius: 0 12px 12px 0; background: var(--c-cream);
}
.entry blockquote cite { display: block; margin-top: .6em; font-size: 13px; font-style: normal; color: #6d8185; }
.entry img { border-radius: 8px; }
.entry figure { margin-left: 0; margin-right: 0; }
.entry figcaption, .entry .wp-element-caption { margin-top: 8px; font-size: 13px; line-height: 1.6; text-align: center; color: #6d8185; }
.entry hr, .entry .wp-block-separator { height: 6px; border: 0; margin: 3em 0; background: radial-gradient(circle, var(--c-teal) 2.6px, transparent 3px) left center / 9.1px 6px repeat-x; opacity: .8; }
.entry table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; }
.entry th, .entry td { padding: 12px 16px; border: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.entry th { background: var(--c-blue); font-weight: 700; }
.entry .wp-block-table { overflow-x: auto; }
.entry .wp-block-table td, .entry .wp-block-table th { border-color: var(--c-line); }
.entry .wp-block-button__link, .entry .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 60px; padding: 14px 40px;
  border-radius: 30px; background: var(--c-pink); color: #fff; font-weight: 700; font-size: 16px; line-height: 1.5; text-decoration: none;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.entry .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.12); }
.entry .is-style-outline .wp-block-button__link { background: #fff; color: var(--c-pink); border: 2px solid currentColor; }
.entry details { border-radius: 12px; background: var(--c-blue); }
.entry details + details { margin-top: 12px; }
.entry summary { position: relative; padding: 18px 56px 18px 58px; font-weight: 700; line-height: 1.6; cursor: pointer; list-style: none; }
.entry summary::-webkit-details-marker { display: none; }
.entry summary::before { content: "Q"; position: absolute; left: 22px; top: 16px; font-family: var(--ff-en); font-weight: 900; font-size: 20px; color: var(--c-teal-dark); }
.entry summary::after { content: "\e136"; font-family: "Phosphor"; position: absolute; right: 22px; top: 50%; margin-top: -10px; font-size: 20px; line-height: 1; color: var(--c-teal-dark); transition: transform .3s; }
.entry details[open] summary::after { transform: rotate(180deg); }
.entry details > :not(summary) { margin: 0; padding: 0 24px 20px 58px; }
.entry .alignwide, .entry .alignfull { margin-left: 0; margin-right: 0; max-width: 100%; }
.entry .aligncenter { margin-left: auto; margin-right: auto; }
.entry .alignleft { float: left; margin: .4em 1.5em 1em 0; }
.entry .alignright { float: right; margin: .4em 0 1em 1.5em; }
.entry::after { content: ""; display: table; clear: both; }
.page-links { font-weight: 700; }
.page-links a, .page-links > span { margin-left: 6px; }

/* フォーム（お問い合わせ・コメントなど） */
.entry input[type="text"], .entry input[type="email"], .entry input[type="tel"], .entry input[type="url"], .entry input[type="number"], .entry input[type="date"], .entry select, .entry textarea,
.comments input[type="text"], .comments input[type="email"], .comments input[type="url"], .comments textarea {
  width: 100%; max-width: 100%; padding: 12px 14px;
  border: 2px solid var(--c-line); border-radius: 8px; background: #fff;
  font: inherit; font-size: 16px; line-height: 1.6; color: var(--c-text);
  transition: border-color .3s;
}
.entry input:focus, .entry select:focus, .entry textarea:focus, .comments input:focus, .comments textarea:focus { outline: none; border-color: var(--c-teal); }
.entry input[type="submit"], .entry button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; min-width: 260px; height: 64px; padding: 0 36px;
  border: 0; border-radius: 32px; background: var(--c-pink); color: #fff;
  font: inherit; font-size: 17px; font-weight: 700; letter-spacing: .05em; cursor: pointer;
  transition: transform .3s var(--ease), box-shadow .3s;
}
.entry input[type="submit"]:hover, .entry button[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.12); }

/* コメント */
.comments { margin-top: 30px; padding-top: 48px; padding-bottom: 56px; }
.comments__ttl, .comments .comment-reply-title { font-size: 20px; font-weight: 700; line-height: 1.5; }
.comments__list { margin: 24px 0 0; padding: 0; list-style: none; }
.comments__list .comment { padding: 20px 0; border-bottom: 1px solid var(--c-line); font-size: 15px; }
.comments__list .children { list-style: none; padding-left: 24px; }
.comments .comment-meta { font-size: 13px; color: #6d8185; }
.comments .avatar { border-radius: 50%; vertical-align: middle; margin-right: 8px; }
.comments .comment-form { margin-top: 20px; font-size: 15px; }
.comments .comment-form p + p { margin-top: 16px; }
.comments .comment-form label { display: block; margin-bottom: 4px; font-weight: 700; }
.comments .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.comments .form-submit .btn-round { margin-top: 12px; }

/* ---------- CTA（下層） ---------- */
.cta--sub { padding: 96px 0 0; }
/* PCは画面下の雲（クリーム色）に重なっても読めるよう、リード文を帯にする */
.cta--sub .cta__lead { display: inline-block; padding: 12px 42px 13px; border-radius: 20px; background: var(--c-yellow); color: var(--c-teal-dark); text-shadow: none; }

/* =========================================================
   SP（768px以下）
   ========================================================= */
@media (max-width: 768px) {
  /* 見出しエリア：SPヘッダーの下に置き、下端を雲でクリームにつなぐ */
  .page-head { position: relative; }
  .page-head__wrap { padding: 116px 24px 34px; }
  .page-head__wrap .page-head__en { font-size: 44px; }
  .page-head__en { font-size: 44px; -webkit-text-stroke-width: 1.5px; }
  .page-head__ttl { margin-top: 14px; font-size: 25px; }
  .breadcrumb { margin-top: 18px; }
  .breadcrumb ol { font-size: 12px; }
  .breadcrumb li[aria-current] { max-width: 14em; }
  .page-head__cloud {
    display: block; position: relative; height: 72px;
    --cw: 94.25px; --cr: 53px; --cap: 35.5px;
    background:
      radial-gradient(circle var(--cr) at 50% var(--cr), var(--c-cream) calc(var(--cr) - .5px), transparent var(--cr)) 0 0 / var(--cw) calc(var(--cr) * 2) repeat-x,
      linear-gradient(var(--c-cream), var(--c-cream)) 0 var(--cap) / 100% 100% no-repeat;
    animation: cloud 6s linear infinite;
  }
  .page-head__cloud { --cw: 94.25px; }

  .sub-body { background: var(--c-cream); padding: 0 15px 10px; }
  .sub-card { border-radius: 14px; padding: 36px 20px 44px; }
  .sub-card + .sub-card { margin-top: 20px; }
  .box--sub { padding: 34px 20px 40px; }
  .box--yellow.box--sub { padding: 34px 24px 40px; }

  .info__list--sub a, .info__list--sub li + li a { gap: 10px; }
  .info__head { width: auto; }
  .info__head time { font-size: 15px; }
  .cat-label { font-size: 12px; }
  .info__list--sub .info__ttl { font-size: 18px; line-height: 1.5; }
  .project__list--sub { row-gap: 36px; }

  .pager { margin-top: 36px; }
  .pager .page-numbers { min-width: 42px; height: 42px; }

  .search-form input { height: 50px; font-size: 16px; padding: 0 18px; }
  .search-form button { width: 58px; height: 50px; }
  .search-count { font-size: 14px; }

  .btn-round { width: 100%; max-width: 320px; min-width: 0; height: 64px; font-size: 17px; }
  .notfound__num { font-size: 84px; }
  .notfound__txt { font-size: 15px; text-align: left; }
  .notfound__txt br { display: none; }

  .post-head__meta { font-size: 14px; }
  .post-head__ttl { font-size: 22px; line-height: 1.55; }
  .post-thumb { margin: 28px -4px 0; border-radius: 10px; }
  .post-head + .entry, .post-thumb + .entry { margin-top: 32px; }

  .post-nav { grid-template-columns: 1fr; gap: 10px; margin-top: 20px; }
  .post-nav__link { padding: 16px 18px; font-size: 15px; background: #fff; }
  .post-nav__link--next { grid-column: auto; }

  .more-link--sub { margin: 38px 0 30px; color: var(--c-text); }
  .more-link--sub .ph { color: var(--c-teal); }

  .entry { font-size: 16px; line-height: 1.95; }
  .entry h2 { font-size: 21px; }
  .entry h3 { font-size: 18px; }
  .entry blockquote, .entry .wp-block-quote { padding: 18px 20px; }
  .entry th, .entry td { padding: 10px 12px; font-size: 14px; }
  .entry .alignleft, .entry .alignright { float: none; margin: 1.6em 0 0; }
  .entry summary { padding: 16px 46px 16px 48px; }
  .entry summary::before { left: 18px; top: 14px; }
  .entry summary::after { right: 16px; }
  .entry details > :not(summary) { padding: 0 18px 18px 48px; }
  .entry input[type="submit"], .entry button[type="submit"] { width: 100%; min-width: 0; }

  .comments { margin-top: 20px; }

  .cta--sub { padding: 40px 0 56px; }
  .cta--sub .cta__lead { display: block; padding: 0; background: none; color: var(--c-teal-txt); }
  .moripura-sub .footer { padding-top: 70px; }
}

/* =========================================================
   記事一覧（固定ページと同じ白いカードに統一）
   ========================================================= */
.sub-card--list { padding: 56px 62px 64px; }
.list-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 40px; }
.list-tabs a {
  display: block; min-width: 120px; padding: 11px 24px 10px; border: 2px solid var(--c-teal-dark); border-radius: 26px;
  font-size: 15px; font-weight: 700; line-height: 1.3; text-align: center; color: var(--c-teal-dark);
  transition: background .3s, color .3s;
}
.list-tabs a:hover, .list-tabs a.is-current { background: var(--c-teal-dark); color: #fff; }
.sub-card--list .archive-desc { margin-bottom: 32px; }
.sub-card--list .info__list--sub { border-top: 1px solid var(--c-line); }
.sub-card--list .info__list--sub li:first-child a { padding-top: 26px; }
.sub-card--list .pager .page-numbers { background: var(--c-blue); }
.sub-card--list .pager a.page-numbers:hover, .sub-card--list .pager .page-numbers.current { background: var(--c-teal-dark); color: #fff; }
.sub-card--list .pager .page-numbers.dots { background: none; }
.sub-card--list .project__list--sub { gap: 40px 16px; }
.sub-card--list .project__thumb { background: var(--c-blue); }
.sub-card--list .search-form + .search-count { margin-top: 26px; }

@media (max-width: 768px) {
  .sub-card--list { padding: 32px 20px 40px; }
  .list-tabs { gap: 8px; margin-bottom: 28px; }
  .list-tabs li { flex: 1; }
  .list-tabs a { min-width: 0; padding: 10px 8px 9px; font-size: 15px; }
  .sub-card--list .info__list--sub li:first-child a { padding-top: 24px; }
  .sub-card--list .project__list--sub { gap: 32px; }
}
.info__list .cat-label { flex-shrink: 0; font-size: 12px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.info__list .info__head { width: auto; min-width: 180px; }
@media (max-width: 768px) {
  .info__list--sub a { align-items: flex-start; }
  .info__list .info__head { min-width: 0; }
  .info__list .cat-label { font-size: 12px; line-height: 1.2; }
}

/* =========================================================
   よくあるご質問（固定ページのカスタムHTMLブロック用）
   <dl class="faq-list"><div class="faq-item"><dt>…</dt><dd>…</dd></div>…</dl>
   ========================================================= */
.entry .faq-list { margin: 0; padding: 0; }
.faq-item { border-radius: 16px; background: var(--c-blue); padding: 26px 30px 28px; }
.faq-item + .faq-item { margin-top: 16px; }
.faq-item dt, .faq-item dd { position: relative; margin: 0; padding-left: 54px; }
.faq-item dt::before, .faq-item dd::before {
  position: absolute; left: 0; top: 0;
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  font-family: var(--ff-en); font-weight: 900; font-size: 18px; line-height: 1; letter-spacing: 0;
}
.faq-item dt { min-height: 38px; padding-top: 5px; font-size: 17px; font-weight: 700; line-height: 1.6; color: var(--c-teal-txt); }
.faq-item dt::before { content: "Q"; background: var(--c-teal-dark); color: #fff; }
.faq-item dd {
  min-height: 38px; margin-top: 18px; padding-top: 22px; font-size: 16px; line-height: 1.9;
  border-top: 2px dotted var(--c-teal);
}
.faq-item dd::before { content: "A"; top: 18px; background: var(--c-yellow); color: var(--c-teal-dark); }

@media (max-width: 768px) {
  .faq-item { border-radius: 12px; padding: 20px 18px 22px; }
  .faq-item + .faq-item { margin-top: 12px; }
  .faq-item dt, .faq-item dd { padding-left: 44px; }
  .faq-item dt::before, .faq-item dd::before { width: 32px; height: 32px; font-size: 16px; }
  .faq-item dt { min-height: 32px; padding-top: 3px; font-size: 17px; }
  .faq-item dd { margin-top: 14px; padding-top: 18px; font-size: 16px; line-height: 1.85; }
  .faq-item dd::before { top: 14px; }
}
