/* Good Supply サイト全体のデザイン（Lightning G2 / origin2 用）
   反映先: 外観 > カスタマイズ > 追加CSS。編集はこのファイルで行い、scripts 経由で反映する */
/* Web フォント（Shippori Mincho B1 / Zen Kaku Gothic New）は表示を遅らせないよう base.html の <link> で読み込む */

:root {
  --gs-ground: #FAF7F4; --gs-sand: #F2ECE6; --gs-line: #E9E1DA;
  --gs-ink: #2A1F29; --gs-text: #4A3F49; --gs-muted: #5A4E58; --gs-subtle: #8A7B88;
  --gs-plum: #553951; --gs-plum-soft: #EFE6EE; --gs-coral: #E6706E; --gs-coral-deep: #C85A58; --gs-coral-soft: #FDEEEC; --gs-marker: #F6C9C4;
  --gs-mincho: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --gs-gothic: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}

/* 全体 */
body, .siteContent, .siteHeader, .siteFooter { background: var(--gs-ground); }
body { color: var(--gs-ink); font-family: var(--gs-gothic); -webkit-font-smoothing: antialiased; }
a { color: var(--gs-plum); } a:hover { color: var(--gs-coral-deep); }
.entry-body p, .entry-body li, .entry-body td, .entry-body th { font-size: 16px; line-height: 1.9; color: var(--gs-text); }
h1, h2, h3, .page-header_pageTitle { text-wrap: pretty; }

/* ヘッダー */
.siteHeader { border-bottom: 1px solid var(--gs-line); box-shadow: none; }
.gMenu > li > a { color: var(--gs-ink); font-weight: 500; }
.gMenu > li > a .gMenu_description { display: none; }
.gMenu > li:before, .gMenu > li.current-menu-item:after, .gMenu > li:hover:after { background: var(--gs-coral) !important; }
/* メニューの高さはヘッダーの状態（通常／スクロール時の固定ヘッダー）で変わるため、余白ではなく li をフレックスにして上下中央に置く */
.gMenu > li.gs-menu-cta { display: flex; align-items: center; justify-content: center; }
.gMenu > li.gs-menu-cta > a { background: var(--gs-coral); color: var(--gs-ink); border-radius: 999px; padding: 10px 22px !important; margin: 0 0 0 12px; font-weight: 700; line-height: 1.4; height: auto !important; min-height: 0 !important; }
.gMenu > li.gs-menu-cta > a .gMenu_name { display: inline; font-size: 14px; }
.gMenu > li.gs-menu-cta > a:hover { background: var(--gs-coral-deep); color: #fff; }
.gMenu > li.gs-menu-cta:after, .gMenu > li.gs-menu-cta:before { display: none !important; }

/* 下層ページの見出し帯 */
.page-header { background: var(--gs-plum); }
.page-header_pageTitle { font-family: var(--gs-mincho); font-weight: 800; color: #fff; letter-spacing: .02em; }
.breadSection { background: var(--gs-ground); border-bottom: 1px solid var(--gs-line); }

/* 共通ボタン */
.gs-btn .wp-block-button__link, .entry-body .gs-btn .wp-block-button__link {
  background: var(--gs-coral) !important; color: var(--gs-ink) !important; border: none; border-radius: 999px;
  padding: 16px 34px; font-size: 17px; font-weight: 700; text-decoration: none; min-height: 56px; display: inline-flex; align-items: center;
}
.gs-btn .wp-block-button__link:hover { background: var(--gs-coral-deep) !important; color: #fff !important; }
.gs-btn-sub .wp-block-button__link { background: transparent !important; color: var(--gs-plum) !important; border: 1.5px solid var(--gs-plum) !important; border-radius: 999px; padding: 14px 26px; font-weight: 700; min-height: 52px; display: inline-flex; align-items: center; }
.entry-body .wp-block-buttons { gap: 16px; margin: 28px 0; }

/* 共通パーツ */
.gs-eyebrow { font-size: 14px !important; font-weight: 700; color: var(--gs-coral-deep) !important; letter-spacing: .12em; margin-bottom: 10px !important; }
.gs-eyebrow--plum { color: var(--gs-plum) !important; letter-spacing: .06em; }
.gs-section-title { font-family: var(--gs-mincho); font-weight: 800; font-size: 38px; line-height: 1.4; color: var(--gs-ink); margin: 0 0 40px; border: none; padding: 0; background: none; }
.gs-section-title:after, .gs-section-title:before { display: none !important; }
.gs-lead { font-size: 18px !important; line-height: 1.95 !important; color: var(--gs-text) !important; }
.gs-center { text-align: center; }
.gs-note { font-size: 14px !important; color: var(--gs-subtle) !important; margin-top: 28px; }
.gs-more a { font-weight: 700; text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.gs-marker { background: linear-gradient(transparent 62%, var(--gs-marker) 62%); }

/* グループブロックは内側に .wp-block-group__inner-container を挟むため、そこをグリッド・フレックスにする */
.gs-grid > .wp-block-group__inner-container { display: grid !important; gap: 20px; }
.gs-grid--2 > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gs-grid--3 > .wp-block-group__inner-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gs-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gs-grid > .wp-block-group__inner-container > * { margin: 0 !important; }
.gs-card > .wp-block-group__inner-container { display: flex; flex-direction: column; height: 100%; }

.gs-card { background: #fff; border: 1px solid var(--gs-line); border-radius: 18px; padding: 34px 32px; }
.gs-card--flat { border: none; border-radius: 14px; padding: 28px 26px; }
.gs-card h3 { font-size: 20px; font-weight: 700; line-height: 1.5; color: var(--gs-ink); margin: 0 0 12px; border: none; padding: 0; background: none; }
.gs-card h3:after { display: none; }
.gs-card p { font-size: 15px; margin-bottom: 12px; }
.gs-card .gs-more { margin-top: auto; }
.gs-card--dark { background: var(--gs-plum); border-color: var(--gs-plum); }
.gs-card--dark h3, .gs-card--dark p, .gs-card--dark a { color: #fff !important; }
.gs-card--dark .gs-eyebrow { color: var(--gs-marker) !important; }
.gs-grid--2 .gs-card h3 { font-family: var(--gs-mincho); font-weight: 800; font-size: 26px; }

/* トップ：全幅の帯 */
.home .siteContent { padding: 0; }
.home .mainSection { margin-bottom: 0; }
.gs-home .gs-band { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 100px max(24px, calc(50vw - 600px)); }
.gs-home .gs-band + .gs-band { margin-top: 0; }
.gs-band--sand { background: var(--gs-sand); }
.gs-band--ink { background: var(--gs-ink); }
.gs-band--ink .gs-section-title, .gs-band--ink h3 { color: #fff; }
.gs-band--ink p { color: #D8CCD6 !important; }
.gs-band--ink .gs-eyebrow { color: var(--gs-marker) !important; }

.gs-hero { padding-top: 88px !important; padding-bottom: 100px !important; }
.gs-hero__cols { gap: 64px; align-items: center; margin: 0; }
/* WPのカラム既定（flex-grow:1）より優先させるため !important */
.gs-hero__cols > .wp-block-column.gs-hero__text { flex: 1.25 1 0 !important; }
.gs-hero__cols > .wp-block-column.gs-hero__visual { flex: 1 1 0 !important; }
/* 日本語の見出しは文節単位で折り返す（.gs-ph で囲む）。PC だけ改行する箇所は .gs-br-pc */
.gs-ph { display: inline-block; }
.gs-br-pc { display: none; }
@media (min-width: 1240px) { .gs-br-pc { display: inline; } }
.gs-hero__title { font-family: var(--gs-mincho); font-weight: 800; font-size: 44px; line-height: 1.35; color: var(--gs-ink); margin: 0 0 24px; border: none; padding: 0; background: none; }
.gs-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 8px 0 0; }
.gs-chips li { margin: 0; padding: 8px 14px; border: 1px solid #D9CCD6; border-radius: 6px; background: #fff; color: var(--gs-plum) !important; font-size: 13px !important; line-height: 1.4 !important; }

.gs-org { background: #fff; border: 1px solid var(--gs-line); border-radius: 20px; padding: 36px 32px 38px; box-shadow: 0 30px 60px -30px rgba(85, 57, 81, .28); display: flex; flex-direction: column; align-items: center; }
.gs-org__caption { font-size: 13px !important; font-weight: 700; color: var(--gs-subtle) !important; letter-spacing: .1em; margin-bottom: 24px !important; text-align: center; }
.gs-org__top { padding: 12px 28px; background: var(--gs-plum); color: #fff; border-radius: 10px; font-weight: 700; }
.gs-org__stem { width: 2px; height: 24px; background: #CDBFCA; }
.gs-org__bar { width: 76%; height: 2px; background: #CDBFCA; }
.gs-org__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: 100%; }
.gs-org__unit { display: flex; flex-direction: column; align-items: center; }
.gs-org__line { width: 2px; height: 22px; background: #CDBFCA; }
.gs-org__box { width: 100%; text-align: center; padding: 12px 4px; border: 1px solid #E3D9DF; border-radius: 10px; font-size: 14px; color: var(--gs-text); }
.gs-org__unit--it .gs-org__line { background: var(--gs-coral); }
.gs-org__unit--it .gs-org__box { border: 2px dashed var(--gs-coral); background: var(--gs-coral-soft); font-weight: 700; color: var(--gs-ink); }
.gs-org__role { width: 100%; margin-top: 26px; padding: 18px 20px; background: var(--gs-coral-soft); border-radius: 12px; }
.gs-org__role-title { font-weight: 700; color: var(--gs-ink) !important; font-size: 14px !important; margin-bottom: 8px !important; }
.gs-org__role ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 14px; margin: 0; padding-left: 1.1em; }
.gs-org__role li { font-size: 14px !important; line-height: 1.7 !important; }

.gs-reason { border-top: 1px solid #5A4A58; padding-top: 24px; }
.gs-reason__num { font-family: var(--gs-mincho); font-size: 44px !important; font-weight: 800; color: var(--gs-coral) !important; line-height: 1 !important; margin-bottom: 14px !important; }
.gs-reasons h3 { font-size: 20px; line-height: 1.5; border: none; padding: 0; background: none; margin-bottom: 12px; }
/* 横並びカードの見出しは2行分の高さをそろえ、本文の開始位置を合わせる */
@media (min-width: 768px) {
  .gs-reasons h3, .gs-grid--3 .gs-card--flat h3 { min-height: 3em; }
  .gs-grid--2 .gs-card h3 { min-height: 1.5em; }
}

.gs-plan { position: relative; }
.gs-plan--featured { border: 2px solid var(--gs-plum); }
.gs-plan__badge { position: absolute; top: -14px; left: 30px; background: var(--gs-plum); color: #fff !important; font-size: 13px !important; font-weight: 700; padding: 4px 14px; border-radius: 999px; line-height: 1.5 !important; }
.gs-plan__for { color: var(--gs-muted) !important; }
.gs-plan__price { font-family: var(--gs-mincho); font-size: 24px !important; font-weight: 800; color: var(--gs-ink) !important; padding-bottom: 16px; border-bottom: 1px solid #EFE8E2; }
.gs-plan__price span { font-size: 14px; color: var(--gs-subtle); font-weight: 600; }
.gs-plan__list { padding-left: 1.1em; margin: 16px 0 0; }
.gs-step__num { font-size: 13px !important; font-weight: 700; color: var(--gs-coral-deep) !important; letter-spacing: .1em; margin-bottom: 8px !important; }

.gs-profile__role { font-family: var(--gs-gothic); font-size: 15px; font-weight: 500; color: var(--gs-subtle); margin-left: 16px; }
.gs-career { margin: 28px 0 20px; border-top: 1px solid var(--gs-line); }
.gs-career > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--gs-line); }
.gs-career dt { font-weight: 700; color: var(--gs-plum); }
.gs-career dd { margin: 0; color: var(--gs-text); line-height: 1.8; }

.gs-qa details { border-top: 1px solid var(--gs-line); padding: 20px 0; }
.gs-qa details:last-child { border-bottom: 1px solid var(--gs-line); }
.gs-qa summary { cursor: pointer; font-size: 18px; font-weight: 700; color: var(--gs-ink); line-height: 1.6; list-style: none; padding-right: 32px; position: relative; }
.gs-qa summary::-webkit-details-marker { display: none; }
.gs-qa summary:after { content: "+"; position: absolute; right: 4px; top: 0; font-size: 22px; color: var(--gs-plum); }
.gs-qa details[open] summary:after { content: "−"; }
.gs-qa p { margin: 12px 0 0; }

.gs-cta { padding-top: 40px !important; }
.gs-cta__box { background: var(--gs-plum); border-radius: 24px; padding: 60px 64px; }
.gs-cta__title { font-family: var(--gs-mincho); font-weight: 800; font-size: 34px; line-height: 1.45; color: #fff; border: none; background: none; padding: 0; margin: 0 0 14px; }
.gs-cta__box p { color: #E4D8E2 !important; }
.gs-cta__box a { color: #fff; }

/* 下層ページ（原稿から生成） */
.gs-page { max-width: 880px; margin: 0 auto; padding: 24px 0 40px; }
.gs-page--service { max-width: none; }
.gs-page > h2, .entry-body .gs-page h2.wp-block-heading { font-family: var(--gs-mincho); font-weight: 800; font-size: 30px; line-height: 1.45; color: var(--gs-ink); margin: 64px 0 20px; padding: 0 0 14px; border: none; border-bottom: 2px solid var(--gs-plum); background: none; }
.gs-page > h2:after { display: none; }
.gs-page > h3 { font-size: 20px; font-weight: 700; color: var(--gs-plum); margin: 36px 0 12px; padding: 0 0 0 14px; border: none; border-left: 4px solid var(--gs-coral); background: none; }
.gs-page > p:first-child { font-size: 18px; line-height: 1.95; }
.gs-page table { background: #fff; border-collapse: collapse; width: 100%; }
.gs-page th { background: var(--gs-sand); color: var(--gs-ink); font-weight: 700; }
.gs-page th, .gs-page td { border: 1px solid var(--gs-line); padding: 12px 14px; vertical-align: top; }
.gs-page ul, .gs-page ol { padding-left: 1.3em; }

/* 無料相談フォーム（CF7） */
.wpcf7 label, .wpcf7 fieldset { display: block; font-weight: 700; color: var(--gs-ink); margin-bottom: 20px; }
.wpcf7 fieldset { border: none; padding: 0; }
.wpcf7 legend { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 .wpcf7-select, .wpcf7 textarea { width: 100%; margin-top: 6px; padding: 12px 14px; border: 1px solid #D9CCD6; border-radius: 10px; background: #fff; font-size: 16px; font-weight: 400; }
.wpcf7 .wpcf7-list-item { display: block; margin: 6px 0; font-weight: 400; }
.gs-form-note { padding: 14px 18px; background: var(--gs-sand); border-left: 4px solid var(--gs-coral); border-radius: 8px; font-size: 14px !important; color: var(--gs-muted) !important; }
.wpcf7 .wpcf7-quiz { width: 120px !important; }
.wpcf7 input[type=submit] { background: var(--gs-coral); color: var(--gs-ink); border: none; border-radius: 999px; padding: 16px 40px; font-size: 17px; font-weight: 700; min-height: 56px; cursor: pointer; }
.wpcf7 input[type=submit]:hover { background: var(--gs-coral-deep); color: #fff; }

/* フッター */
.siteFooter { border-top: 1px solid var(--gs-line); color: var(--gs-muted); }
.siteFooter a { color: var(--gs-muted); }

/* タブレット・スマホ */
@media (max-width: 991px) {
  .gs-grid--3 > .wp-block-group__inner-container, .gs-grid--4 > .wp-block-group__inner-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gs-hero__title { font-size: 38px; }
  .gs-hero__cols { gap: 40px; }
}
@media (max-width: 767px) {
  .gs-home > .gs-band, .gs-band.gs-hero { padding: 60px 20px; }
  .gs-hero { padding-top: 44px !important; padding-bottom: 56px !important; }
  .gs-hero__title { font-size: 30px; line-height: 1.45; }
  .gs-lead { font-size: 16px !important; }
  .gs-section-title { font-size: 26px; line-height: 1.5; margin-bottom: 28px; }
  .gs-grid--2 > .wp-block-group__inner-container, .gs-grid--3 > .wp-block-group__inner-container, .gs-grid--4 > .wp-block-group__inner-container { grid-template-columns: minmax(0, 1fr); }
  .gs-card { padding: 26px 22px; }
  .gs-grid--2 .gs-card h3 { font-size: 22px; }
  .gs-btn, .gs-btn .wp-block-button__link { width: 100%; justify-content: center; }
  .gs-org { padding: 26px 16px; }
  .gs-org__box { font-size: 12px; padding: 10px 2px; }
  .gs-org__role ul { grid-template-columns: minmax(0, 1fr); }
  .gs-career > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .gs-cta__box { padding: 36px 22px; }
  .gs-cta__title { font-size: 24px; }
  .gs-page > h2 { font-size: 24px; }
}

/* 静的サイト化（Cloudflare Workers）で WordPress が出していた分を補う */
.wp-block-columns.is-layout-flex { flex-wrap: nowrap; }
:root :where(.wp-block-button.is-style-outline .wp-block-button__link) { background: transparent none; border: 2px solid currentColor; color: currentColor; padding: .667em 1.33em; }
.gs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.wpcf7 .cf-turnstile { margin: 8px 0 20px; }
.wpcf7-response-output:empty { display: none; }
.wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: 10px; border: 1px solid var(--gs-line); }
.wpcf7-response-output.gs-form-ok { border-color: #7BA87B; background: #F1F8F1; }
.wpcf7-response-output.gs-form-error { border-color: var(--gs-coral); background: var(--gs-coral-soft); }
.wpcf7 input[type=submit]:disabled { opacity: .6; cursor: wait; }
.gs-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 40px 0; }
.gs-post-nav a { display: block; padding: 16px 20px; border: 1px solid var(--gs-line); border-radius: 12px; background: #fff; text-decoration: none; color: var(--gs-ink); }
.gs-post-nav__next { grid-column: 2; text-align: right; }
.gs-post-nav__label { display: block; font-size: 13px; color: var(--gs-subtle); margin-bottom: 4px; }
@media (max-width: 767px) { .gs-post-nav { grid-template-columns: minmax(0, 1fr); } .gs-post-nav__next { grid-column: 1; } }

/* フッターの事業者情報 */
.gs-footer-nap { padding: 24px 15px 0; text-align: center; font-size: 14px; color: var(--gs-muted); }
.gs-footer-nap p { margin: 0 0 6px; }
.gs-footer-nap__name { font-family: var(--gs-mincho); font-weight: 800; font-size: 18px; color: var(--gs-ink); }
.gs-footer-nap__name span { display: block; font-family: var(--gs-gothic); font-weight: 500; font-size: 13px; color: var(--gs-subtle); }

/* 記事末：著者と相談への誘導 */
.gs-post-author { display: flex; gap: 20px; align-items: flex-start; margin: 48px 0 24px; padding: 24px 28px; background: #fff; border: 1px solid var(--gs-line); border-radius: 16px; }
.gs-post-author__label { font-size: 12px; font-weight: 700; color: var(--gs-coral-deep); letter-spacing: .08em; margin: 0 0 4px; }
.gs-post-author__name { font-family: var(--gs-mincho); font-weight: 800; font-size: 20px; color: var(--gs-ink); margin: 0 0 8px; }
.gs-post-author__name span { font-family: var(--gs-gothic); font-weight: 500; font-size: 13px; color: var(--gs-subtle); margin-left: 8px; }
.gs-post-author p { font-size: 15px; line-height: 1.8; color: var(--gs-text); margin: 0 0 6px; }
.gs-post-cta { background: var(--gs-plum); border-radius: 20px; padding: 40px 44px; margin: 0 0 24px; }
.gs-post-cta__title { font-family: var(--gs-mincho); font-weight: 800; font-size: 26px; line-height: 1.5; color: #fff; margin: 0 0 10px; }
.gs-post-cta p { color: #E4D8E2; margin: 0 0 20px; line-height: 1.8; }
.gs-post-cta__actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
.gs-post-cta__btn { display: inline-flex; align-items: center; min-height: 52px; padding: 14px 30px; border-radius: 999px; background: var(--gs-coral); color: var(--gs-ink) !important; font-weight: 700; text-decoration: none; }
.gs-post-cta__btn:hover { background: var(--gs-coral-deep); color: #fff !important; }
.gs-post-cta__service { color: #fff !important; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) {
  .gs-post-author { padding: 20px; }
  .gs-post-cta { padding: 28px 22px; }
  .gs-post-cta__title { font-size: 21px; }
}
