/*
Theme Name:   solve-wind-child
Theme URI:    https://shop.solve-grp.com/contents/wind/
Description:  Lightning 子テーマ。SOLVEのWind コラムサイト（実サイト準拠デザイン）
Author:       SOLVE
Author URI:   https://shop.solve-grp.com/
Template:     lightning
Version:      2.1.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  solve-wind-child
*/

/* =============================================
   CSS カスタムプロパティ
   ============================================= */
:root {
	--swc-primary:    #474236;
	--swc-dark:       #333333;
	--swc-mid:        #666666;
	--swc-light:      #999999;
	--swc-warm:       #bdb8a4;
	--swc-warm-bg:    #e5e3de;
	--swc-warm-light: #f5f3ef;
	--swc-white:      #ffffff;
	--swc-font-main:  "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	--swc-font-serif: "Shippori Mincho", "游明朝", YuMincho, "HGS明朝E", serif;
	--swc-content-max: 800px;
	--swc-grid-max:   1160px;
	--swc-ease:       cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* =============================================
   ベース
   ============================================= */
body {
	background-color: var(--swc-white);
	color:            var(--swc-dark);
	font-family:      var(--swc-font-main);
	font-size:        16px;
	line-height:      1.7;
	-webkit-font-smoothing: antialiased;
}

a {
	color:           var(--swc-dark);
	text-decoration: none;
	transition:      opacity 0.3s var(--swc-ease);
}
a:hover { opacity: 0.7; text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

/* =============================================
   Lightning ヘッダー上書き
   ============================================= */
#site-header,
.site-header {
	background-color: var(--swc-warm-light) !important;
	border-bottom:    1px solid var(--swc-warm-bg) !important;
	min-height:       64px !important;
}
#site-header a,
.site-header a {
	color: var(--swc-primary) !important;
}
#site-header a:hover,
.site-header a:hover {
	opacity: 0.7 !important;
	color:   var(--swc-primary) !important;
}
.global-nav,
.vk-menu-acc {
	background-color: var(--swc-warm-light) !important;
}
.global-nav .nav > li > a {
	color:          var(--swc-primary) !important;
	letter-spacing: 0.08em;
	font-size:      0.875rem;
}
.vk-mobile-nav {
	background-color: var(--swc-warm-light) !important;
}

/* Lightning page-header（紺色バナー）を非表示 */
.page-header {
	display: none !important;
}

/* ヘッダーロゴをセンタリング（グリッド方式） */
#site-header-container {
	display:               grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	align-items:           center !important;
	position:              static !important;
}
.site-header-logo {
	grid-column: 2 !important;
	position:    static !important;
	margin:      0 !important;
	padding:     14px 0 !important;
	border:      none !important;
	text-align:  center !important;
}
.site-header-logo img {
	height:    32px !important;
	width:     auto !important;
	max-width: none !important;
	display:   block !important;
	margin:    0 auto !important;
}
#global-nav,
.global-nav {
	grid-column: 3 !important;
	margin-left: auto !important;
}

/* =============================================
   Lightning フッター上書き
   ============================================= */
.site-footer {
	background-color: var(--swc-primary) !important;
	color: var(--swc-warm) !important;
	border-top: none !important;
}
.site-footer a {
	color: var(--swc-warm) !important;
}
.site-footer a:hover {
	color: var(--swc-white) !important;
	opacity: 1 !important;
}
.site-footer-copyright {
	color: var(--swc-warm) !important;
	font-size: 0.75rem;
}
.site-body {
	padding: 0 !important;
}

/* =============================================
   Lightning origin3 見出し装飾 グローバルリセット
   ============================================= */
/* h2 : border-top 青線・border-bottom グレー線を全消し */
h2:not(.wp-block-post-title) {
	border-top:    none !important;
	border-bottom: none !important;
}
h2:not(.wp-block-post-title)::after {
	display: none !important;
}
/* h3 : border-bottom + ::after 青短線を全消し */
h3:not(.wp-block-post-title) {
	border-bottom: none !important;
}
h3:not(.wp-block-post-title)::after {
	display: none !important;
	border:  none !important;
}
/* h4 : グレー背景を全消し */
h4:not(.wp-block-post-title) {
	background-color: transparent !important;
}

/* =============================================
   タグピル（共通）
   ============================================= */
.swc-tag {
	display:         inline-block;
	padding:         6px 22px 4px;
	border:          1px solid var(--swc-warm);
	border-radius:   100px;
	color:           var(--swc-warm);
	font-size:       0.8rem;
	letter-spacing:  0.05em;
	line-height:     1.6;
	transition:      background-color 0.3s, color 0.3s;
	text-decoration: none;
}
.swc-tag:hover {
	background-color: var(--swc-warm);
	color:            var(--swc-white);
	opacity:          1;
}

/* =============================================
   ARCHIVE ページ
   ============================================= */

.swc-archive-page {
	background-color: var(--swc-white);
}

/* ヒーローエリア（TOPページ最新1件） */
.swc-hero {
	position: relative;
	width:    100%;
	overflow: hidden;
}
.swc-hero__link {
	display:         block;
	text-decoration: none;
	position:        relative;
	overflow:        hidden;
}
.swc-hero__link:hover { opacity: 1; }
.swc-hero__link:hover .swc-hero__image img {
	transform: scale(1.04);
}
.swc-hero__image {
	width:      100%;
	height:     70vh;
	min-height: 420px;
	max-height: 700px;
	overflow:   hidden;
	background: var(--swc-primary);
}
.swc-hero__image img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	object-position: center top;
	transition: transform 0.7s var(--swc-ease);
	display:    block;
}
.swc-hero__no-image {
	width:           100%;
	height:          100%;
	background:      var(--swc-warm-light);
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--swc-warm);
	font-size:       0.8rem;
	letter-spacing:  0.1em;
}
.swc-hero__body {
	position:   absolute;
	bottom:     0;
	left:       0;
	right:      0;
	padding:    80px 7.5% 52px;
	background: linear-gradient(
		to top,
		rgba(28, 26, 22, 0.88) 0%,
		rgba(28, 26, 22, 0.45) 50%,
		transparent 100%
	);
	color:      var(--swc-white);
}
.swc-hero__category {
	font-size:      0.72rem;
	font-weight:    bold;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color:          var(--swc-warm);
	margin-bottom:  14px;
}
.swc-hero__title {
	font-family:    var(--swc-font-main);
	font-size:      clamp(1.3rem, 2.8vw, 2rem);
	font-weight:    600;
	line-height:    1.5;
	letter-spacing: 0.03em;
	color:          var(--swc-white);
	margin:         0 0 18px;
	max-width:      800px;
	border-top:     none !important;
	border-bottom:  none !important;
	padding:        0 !important;
	position:       static !important;
}
.swc-hero__title::after {
	display: none !important;
}
.swc-hero__date {
	font-size:      0.75rem;
	font-family:    var(--swc-font-serif);
	color:          rgba(255, 255, 255, 0.65);
	letter-spacing: 0.08em;
}

/* アーカイブヘッダー */
.swc-archive-header {
	background-color: var(--swc-primary);
	color:            var(--swc-white);
	padding:          56px 0 48px;
	text-align:       center;
}
.swc-archive-header__label {
	font-size:      0.72rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--swc-warm);
	margin-bottom:  8px;
}
.swc-archive-header__title {
	font-family:    var(--swc-font-serif);
	font-size:      clamp(1.5rem, 4vw, 2.4rem);
	font-weight:    400;
	letter-spacing: 0.08em;
	color:          var(--swc-white);
	margin:         0;
	line-height:    1.3;
}
.swc-archive-header__description {
	margin-top: 14px;
	font-size:  0.9rem;
	color:      var(--swc-warm);
}

/* カテゴリタブナビ */
.swc-category-nav {
	width:      75%;
	max-width:  700px;
	margin:     0 auto 30px;
	padding-top: 48px;
}
.swc-category-nav__list {
	display:         flex;
	align-items:     center;
	flex-wrap:       wrap;
	justify-content: space-between;
	padding-bottom:  13px;
	list-style:      none;
	margin:          0;
	padding-left:    0;
}
.swc-category-nav__item {
	margin-right: 20px;
	width:        calc((100% - 60px) / 4);
	text-align:   center;
	position:     relative;
}
.swc-category-nav__item:nth-child(4n) { margin-right: 0; }
.swc-category-nav__item::after {
	content:          "";
	position:         absolute;
	width:            1px;
	height:           18px;
	background-color: var(--swc-dark);
	right:            0;
	top:              0;
	bottom:           0;
	margin:           auto;
	transform:        rotate(30deg);
}
.swc-category-nav__item:last-child::after { display: none; }

.swc-category-nav__link {
	display:         inline-block;
	position:        relative;
	font-size:       0.95rem;
	color:           var(--swc-dark);
	text-decoration: none;
	letter-spacing:  0.04em;
	padding-bottom:  4px;
}
.swc-category-nav__link::after {
	content:          "";
	position:         absolute;
	bottom:           -12px;
	left:             0;
	width:            100%;
	height:           1px;
	background:       var(--swc-dark);
	transform:        scale(0, 1);
	transform-origin: right top;
	transition:       transform 0.3s var(--swc-ease);
}
.swc-category-nav__item.is-active .swc-category-nav__link::after,
.swc-category-nav__link:hover::after {
	transform:        scale(1, 1);
	transform-origin: left top;
}

/* アーカイブコンテナ */
.swc-archive-container {
	max-width: var(--swc-grid-max);
	width:     85%;
	margin:    0 auto;
	padding:   48px 0 80px;
}

/* 投稿リスト（flex - 実サイト準拠） */
.swc-archive-list {
	display:         flex;
	flex-wrap:       wrap;
	justify-content: space-between;
	list-style:      none;
	margin:          0 0 60px;
	padding:         0;
}
.swc-archive-list::after {
	content: "";
	display: block;
	width:   calc((100% - 140px) / 3);
}

/* カード */
.swc-card {
	width:         calc((100% - 140px) / 3);
	margin-bottom: 50px;
}
.swc-card__link {
	display:         block;
	text-decoration: none;
	color:           inherit;
}
.swc-card__link * { transition: opacity 0.3s var(--swc-ease); }
.swc-card__link:hover * { opacity: 0.75; }
.swc-card__link:hover { opacity: 1; }

.swc-card__thumb {
	margin-bottom: 22px;
	overflow:      hidden;
	aspect-ratio:  4 / 3;
	background:    var(--swc-warm-light);
}
.swc-card__thumb img {
	width:      100%;
	height:     100%;
	object-fit: cover;
}
.swc-card__thumb-no-image {
	width:           100%;
	height:          100%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--swc-warm);
	font-size:       0.8rem;
	letter-spacing:  0.1em;
}

.swc-card__category {
	font-weight:    bold;
	font-size:      0.9rem;
	color:          var(--swc-dark);
	margin-bottom:  12px;
	letter-spacing: 0.03em;
}

.swc-card__title {
	font-size:      0.9rem;
	font-weight:    400;
	line-height:    1.6;
	color:          var(--swc-dark);
	margin:         0 0 12px;
	text-align:     left;
	border-bottom:  none !important;
	padding-bottom: 0 !important;
	position:       static !important;
}
.swc-card__title::after {
	display: none !important;
}

.swc-card__date {
	font-size:   0.7rem;
	font-family: var(--swc-font-serif);
	color:       var(--swc-mid);
	letter-spacing: 0.05em;
}

/* ページネーション */
.swc-archive-pagination {
	text-align: center;
}
.swc-archive-pagination .page-numbers {
	display:         inline-block;
	width:           38px;
	height:          38px;
	line-height:     36px;
	margin:          0 2px;
	border:          1px solid #9d9d9d;
	border-radius:   50%;
	color:           var(--swc-dark);
	font-size:       0.875rem;
	text-align:      center;
	text-decoration: none;
	transition:      all 0.3s var(--swc-ease);
}
.swc-archive-pagination .page-numbers:hover,
.swc-archive-pagination .page-numbers.current {
	background-color: var(--swc-primary);
	border-color:     var(--swc-primary);
	color:            var(--swc-white);
}
.swc-archive-pagination .page-numbers.dots {
	border:      none;
	width:       auto;
	line-height: 38px;
}

/* もっと見るボタン */
.swc-more-btn {
	text-align: center;
	margin-top: 20px;
}
.swc-more-btn a {
	display:         inline-block;
	padding:         18px 80px;
	border:          1px solid var(--swc-dark);
	font-size:       0.875rem;
	letter-spacing:  0.2em;
	color:           var(--swc-dark);
	text-decoration: none;
	transition:      all 0.3s var(--swc-ease);
	position:        relative;
}
.swc-more-btn a:hover {
	background: var(--swc-dark);
	color:      var(--swc-white);
	opacity:    1;
}

.swc-archive-no-posts {
	text-align: center;
	padding:    80px 20px;
	color:      var(--swc-light);
}

/* =============================================
   SINGLE 投稿ページ
   ============================================= */

/* パンくずリスト */
.swc-breadcrumb {
	background:    var(--swc-warm-light);
	border-bottom: 1px solid var(--swc-warm-bg);
	padding:       10px 0;
}
.swc-breadcrumb__list {
	max-width:   var(--swc-grid-max);
	width:       85%;
	margin:      0 auto;
	padding:     0;
	list-style:  none;
	display:     flex;
	align-items: center;
	gap:         0;
	flex-wrap:   wrap;
}
.swc-breadcrumb__item {
	display:     flex;
	align-items: center;
	font-size:   0.8rem;
	color:       var(--swc-light);
}
.swc-breadcrumb__item + .swc-breadcrumb__item::before {
	content:      "›";
	margin:       0 8px;
	color:        var(--swc-warm);
	font-size:    1rem;
	line-height:  1;
}
.swc-breadcrumb__link {
	color:           var(--swc-light);
	text-decoration: none;
	transition:      color 0.2s;
	letter-spacing:  0.04em;
}
.swc-breadcrumb__link:hover {
	color:   var(--swc-primary);
	opacity: 1;
}
/* 最後のアイテム（現在地）はリンクなしの場合もスタイル統一 */
.swc-breadcrumb__item:last-child .swc-breadcrumb__link {
	color: var(--swc-mid);
}

/* MV */
.swc-mv {
	width:     100%;
	overflow:  hidden;
	background: var(--swc-primary);
	margin-bottom: 0;
}
.swc-mv__pc { display: block; }
.swc-mv__pc img {
	width:      100%;
	height:     60vh;
	min-height: 380px;
	max-height: 600px;
	object-fit: cover;
	object-position: center;
}
.swc-mv__sp { display: none; }
.swc-mv__sp img {
	width:      100%;
	height:     56vw;
	max-height: 380px;
	object-fit: cover;
}
.swc-mv__placeholder {
	width:           100%;
	height:          40vh;
	min-height:      260px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--swc-warm);
	font-size:       0.8rem;
	letter-spacing:  0.1em;
	background:      var(--swc-warm-light);
}
@media (max-width: 767px) {
	.swc-mv__pc { display: none; }
	.swc-mv__sp { display: block; }
}

/* 記事ヘッダー */
.swc-article-header {
	max-width:    var(--swc-content-max);
	width:        85%;
	margin:       0 auto;
	padding:      48px 0 40px;
	text-align:   center;
	border-bottom: 1px solid var(--swc-warm-bg);
}
.swc-article-header__date {
	font-size:      0.8rem;
	font-family:    var(--swc-font-serif);
	color:          var(--swc-mid);
	letter-spacing: 0.1em;
	margin-bottom:  20px;
}
.swc-article-header__tags {
	display:         flex;
	flex-wrap:       wrap;
	gap:             8px;
	justify-content: center;
	margin-bottom:   24px;
}
.swc-article-header__title {
	font-family:    var(--swc-font-main);
	font-size:      clamp(1.4rem, 3.5vw, 1.875rem);
	font-weight:    600;
	line-height:    1.5;
	letter-spacing: 0.03em;
	color:          var(--swc-dark);
	margin:         0 0 28px;
}
.swc-article-header__author {
	text-align: center;
	margin-top: 28px;
}
.swc-article-header__author-label {
	font-size:      0.7rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color:          var(--swc-warm);
	margin-bottom:  8px;
}
.swc-article-header__author-meta {
	display:        flex;
	flex-wrap:      wrap;
	justify-content: center;
	gap:            6px 24px;
}
.swc-article-header__author-row {
	margin:      0;
	font-size:   0.85rem;
	color:       var(--swc-mid);
	line-height: 1.6 !important;
}
.swc-article-header__author-role {
	color:        var(--swc-light);
	margin-right: 4px;
}
.swc-article-header__author-name {
	color:       var(--swc-mid);
	font-weight: 500;
}
/* 本文内の topic_author を非表示 */
.swc-article-body .topic_author,
.entry-body .topic_author {
	display: none;
}

/* 記事本文 */
.swc-article-body {
	max-width:      var(--swc-content-max);
	width:          85%;
	margin:         0 auto;
	padding:        60px 0 80px;
	font-size:      1.125rem !important;
	line-height:    2.0 !important;
	letter-spacing: 0.04em !important;
	border-bottom:  1px solid #ccc;
}
.swc-article-body p,
.swc-article-body li {
	line-height:    2.0 !important;
	letter-spacing: 0.04em !important;
}
/* 空のpタグ（wpautop自動挿入）の余白を完全に消す */
.swc-article-body p:empty,
.entry-body p:empty {
	display: none;
}
.swc-article-body p:not(:empty):has(> br:only-child),
.entry-body p:not(:empty):has(> br:only-child) {
	display: none;
}
.swc-article-body p {
	margin: 0 0 1.5em;
}
.swc-article-body h2,
.entry-body h2 {
	font-family:    var(--swc-font-main);
	font-size:      1.6rem;
	font-weight:    bold;
	color:          var(--swc-dark);
	margin:         2.5em 0 1em;
	text-align:     center;
	border-top:     none !important;
	border-bottom:  none !important;
	padding:        0 !important;
}
.swc-article-body h2::after,
.entry-body h2::after {
	display: none !important;
}
.swc-article-body h3,
.entry-body h3 {
	font-family:    var(--swc-font-main);
	font-size:      1.3rem;
	font-weight:    bold;
	color:          var(--swc-dark);
	margin:         2.5em 0 1em;
	text-align:     left;
	line-height:    1.5;
	border-bottom:  none !important;
	padding-bottom: 0 !important;
	position:       static !important;
}
/* Lightning origin3 の h3::after 青下線を無効化 */
.swc-article-body h3::after,
.entry-body h3::after {
	display: none !important;
}
.swc-article-body h4,
.entry-body h4 {
	font-family:    var(--swc-font-main);
	font-size:      1.2rem;
	font-weight:    bold;
	color:          var(--swc-dark);
	margin:         2.5em 0 1em;
	padding:        0 !important;
	line-height:    1.5;
	background:     transparent !important;
}

/* 参照ボックス（topic_refer） */
.swc-article-body .topic_refer,
.entry-body .topic_refer {
	background:    var(--swc-warm-light);
	border-left:   3px solid var(--swc-warm);
	padding:       1.2em 1.5em;
	margin:        2em 0 2em 1.8em;
	border-radius: 0 4px 4px 0;
}
.swc-article-body .topic_refer h4,
.entry-body .topic_refer h4 {
	font-size:      0.95rem;
	font-weight:    700;
	color:          var(--swc-mid);
	margin:         0 0 0.6em !important;
	padding:        0 !important;
	letter-spacing: 0.04em;
	background:     transparent !important;
}
.swc-article-body .topic_refer ul,
.entry-body .topic_refer ul {
	margin:     0;
	padding:    0;
	list-style: none;
}
.swc-article-body .topic_refer ul:last-child,
.entry-body .topic_refer ul:last-child {
	margin-bottom: 0;
}
.swc-article-body .topic_refer li,
.entry-body .topic_refer li {
	margin-bottom: 0.3em;
	font-size:     0.9rem;
	line-height:   1.7 !important;
}
.swc-article-body .topic_refer li:last-child,
.entry-body .topic_refer li:last-child {
	margin-bottom: 0;
}
.swc-article-body .topic_refer li::before,
.entry-body .topic_refer li::before {
	content: "・";
	color:   var(--swc-warm);
}
.swc-article-body .topic_refer a,
.entry-body .topic_refer a {
	color:               var(--swc-primary);
	text-decoration:     underline;
	text-underline-offset: 2px;
}
.swc-article-body .topic_refer a:hover,
.entry-body .topic_refer a:hover { opacity: 0.7; }
/* topic_refer内の空pタグ（wpautop由来）を完全除去 */
.swc-article-body .topic_refer p,
.entry-body .topic_refer p {
	display:     none;
	margin:      0;
	line-height: 0;
}

.swc-article-body img,
.entry-body img {
	max-width: 100%;
	height:    auto;
	margin:    2.5em auto;
	display:   block;
	text-align: center;
}
.swc-article-body figure,
.entry-body figure { margin: 2.5em 0; text-align: center; }
.swc-article-body figcaption,
.entry-body figcaption {
	font-size:  0.8rem;
	color:      var(--swc-light);
	text-align: center;
	margin-top: 0.5em;
}
.swc-article-body ul,
.swc-article-body ol,
.entry-body ul,
.entry-body ol {
	margin:       0 0 1.8em 1.5em;
	padding-left: 1em;
}
.swc-article-body li,
.entry-body li { margin-bottom: 0.5em; }
.swc-article-body blockquote,
.entry-body blockquote {
	border-left: 3px solid var(--swc-warm);
	margin:      2em 0;
	padding:     1em 1.5em;
	background:  var(--swc-warm-light);
	color:       var(--swc-mid);
}
.swc-article-body table,
.entry-body table {
	width:           100%;
	border-collapse: collapse;
	margin:          2em 0;
	font-size:       0.9rem;
}
.swc-article-body th,
.swc-article-body td,
.entry-body th,
.entry-body td {
	border:   1px solid var(--swc-warm-bg);
	padding:  10px 14px;
}
.swc-article-body th,
.entry-body th {
	background:  var(--swc-warm-light);
	font-weight: 600;
}

/* SNSシェア */
.swc-share {
	max-width: var(--swc-content-max);
	width:     85%;
	margin:    0 auto;
	padding:   40px 0 0;
}
.swc-share__label {
	font-size:      0.72rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color:          var(--swc-light);
	text-align:     center;
	margin-bottom:  16px;
}
.swc-share__buttons {
	display:         flex;
	gap:             12px;
	justify-content: center;
	flex-wrap:       wrap;
}
.swc-share__btn {
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	padding:         10px 28px;
	font-size:       0.8rem;
	letter-spacing:  0.08em;
	color:           var(--swc-white);
	background:      var(--swc-primary);
	border:          1px solid var(--swc-primary);
	text-decoration: none;
	transition:      all 0.3s var(--swc-ease);
	line-height:     1;
}
.swc-share__btn svg {
	width:    15px;
	height:   15px;
	fill:     currentColor;
	flex-shrink: 0;
}
.swc-share__btn:hover { opacity: 0.75; color: var(--swc-white); }
.swc-share__btn--facebook:hover { background: #1877f2; border-color: #1877f2; opacity: 1; }
.swc-share__btn--twitter:hover  { background: #000; border-color: #000; opacity: 0.8; }
.swc-share__btn--hatena:hover   { background: #00a4de; border-color: #00a4de; opacity: 1; }

/* タグクラウド（KEYWORDS） */
.swc-tag-cloud {
	max-width:    var(--swc-content-max);
	width:        85%;
	margin:       0 auto 60px;
	padding:      32px 0 28px;
	border-bottom: 1px solid #ccc;
}
.swc-tag-cloud__label {
	font-size:      0.72rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color:          var(--swc-light);
	margin-bottom:  18px;
	text-align:     center;
}
.swc-tag-cloud__list {
	display:         flex;
	flex-wrap:       wrap;
	gap:             8px;
	justify-content: center;
}
.swc-tag-cloud__list a {
	display:         inline-block;
	padding:         6px 22px 4px;
	border:          1px solid var(--swc-warm);
	border-radius:   100px;
	color:           var(--swc-warm);
	font-size:       0.8rem;
	letter-spacing:  0.05em;
	text-decoration: none;
	transition:      all 0.3s var(--swc-ease);
}
.swc-tag-cloud__list a:hover {
	background: var(--swc-warm);
	color:      var(--swc-white);
	opacity:    1;
}

/* 関連記事 */
.swc-related {
	background: var(--swc-warm-bg);
	padding:    72px 0 56px;
}
.swc-related__inner {
	max-width: var(--swc-grid-max);
	width:     85%;
	margin:    0 auto;
}
.swc-related__header {
	text-align:    center;
	margin-bottom: 48px;
}
.swc-related__label {
	font-size:      0.72rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--swc-light);
	margin-bottom:  8px;
}
.swc-related__title {
	font-family:    var(--swc-font-serif);
	font-size:      1.2rem;
	font-weight:    400;
	letter-spacing: 0.08em;
	color:          var(--swc-dark);
	margin:         0;
}
.swc-related__grid {
	display:               grid;
	grid-template-columns: repeat(3, 1fr);
	gap:                   28px;
}
@media (max-width: 1023px) {
	.swc-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
	.swc-related__grid { grid-template-columns: 1fr; }
}

.swc-related-card {
	background: var(--swc-white);
	overflow:   hidden;
}
.swc-related-card__link {
	display:         block;
	text-decoration: none;
	color:           inherit;
}
.swc-related-card__link * { transition: opacity 0.3s var(--swc-ease); }
.swc-related-card__link:hover * { opacity: 0.75; }
.swc-related-card__link:hover { opacity: 1; }
.swc-related-card__thumb {
	aspect-ratio:     4 / 3;
	overflow:         hidden;
	background-color: var(--swc-warm-light);
}
.swc-related-card__thumb img {
	width: 100%; height: 100%; object-fit: cover;
}
.swc-related-card__body { padding: 16px 18px 20px; }
.swc-related-card__category {
	font-size:     0.8rem;
	font-weight:   bold;
	color:         var(--swc-dark);
	margin-bottom: 6px;
}
.swc-related-card__title {
	font-size:   0.85rem;
	font-weight: 400;
	line-height: 1.55;
	color:       var(--swc-dark);
	margin:      0 0 8px;
	display:     -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow:    hidden;
}
.swc-related-card__date {
	font-size:   0.7rem;
	font-family: var(--swc-font-serif);
	color:       var(--swc-mid);
}
.swc-related-no-posts {
	text-align: center;
	color:      var(--swc-light);
	font-size:  0.85rem;
	padding:    20px 0;
}

/* =============================================
   コンセプトバナー（一覧ページ下部）
   ============================================= */

/* タグインデックス */
.swc-tag-index {
	background:    var(--swc-white);
	border-top:    1px solid var(--swc-warm-bg);
	padding:       48px 20px;
}
.swc-tag-index__inner {
	max-width: var(--swc-grid-max);
	width:     85%;
	margin:    0 auto;
	text-align: center;
}
.swc-tag-index__label {
	font-size:      0.72rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--swc-light);
	margin-bottom:  20px;
}
.swc-tag-index__list {
	display:         flex;
	flex-wrap:       wrap;
	gap:             10px;
	justify-content: center;
}
.swc-tag-index__item {
	font-size: 0.82rem !important;
}

@media (max-width: 767px) {
	.swc-tag-index { padding: 40px 20px; }
	.swc-tag-index__inner { width: 88%; }
}
.swc-concept {
	background: var(--swc-warm-bg);
	padding:    80px 20px;
	text-align: center;
}
.swc-concept__inner {
	max-width: 640px;
	margin:    0 auto;
}
.swc-concept__logo {
	margin-bottom: 40px;
}
.swc-concept__logo img {
	max-width:  220px;
	width:      100%;
	height:     auto;
	margin:     0 auto;
	display:    block;
}
.swc-concept__text {
	color:          var(--swc-primary);
	font-size:      0.9rem;
	line-height:    2.1;
	letter-spacing: 0.06em;
	text-align:     left;
	margin:         0;
}

/* ECリンク */
.swc-ec-link {
	background:    var(--swc-white);
	padding:       28px 20px;
	text-align:    center;
	border-top:    1px solid var(--swc-warm-bg);
	border-bottom: 1px solid var(--swc-warm-bg);
}
.swc-ec-link__anchor {
	display:         inline-flex;
	align-items:     center;
	gap:             10px;
	color:           var(--swc-light);
	font-size:       0.75rem;
	letter-spacing:  0.15em;
	text-transform:  uppercase;
	text-decoration: none;
	transition:      color 0.3s var(--swc-ease);
}
.swc-ec-link__anchor:hover {
	color:   var(--swc-primary);
	opacity: 1;
}
.swc-ec-link__arrow {
	display:    inline-block;
	transition: transform 0.3s var(--swc-ease);
	font-size:  0.85rem;
}
.swc-ec-link__anchor:hover .swc-ec-link__arrow {
	transform: translateX(5px);
}

@media (max-width: 767px) {
	.swc-concept { padding: 56px 20px; }
	.swc-concept__text { font-size: 0.85rem; line-height: 2.0; }
	.swc-concept__logo img { max-width: 170px; }
	.swc-concept__logo { margin-bottom: 32px; }
}

/* フッターSNSフォローリンク */
.swc-footer-sns {
	text-align:    center;
	padding:       28px 20px;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
.swc-footer-sns__label {
	font-size:      0.68rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--swc-warm);
	margin-bottom:  14px;
}
.swc-footer-sns__links {
	display:         flex;
	gap:             24px;
	justify-content: center;
	align-items:     center;
	flex-wrap:       wrap;
}
.swc-footer-sns__link {
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	color:           var(--swc-warm) !important;
	font-size:       0.8rem;
	letter-spacing:  0.08em;
	text-decoration: none;
	padding:         4px 0;
	transition:      color 0.3s;
}
.swc-footer-sns__link:hover {
	color:   var(--swc-white) !important;
	opacity: 1 !important;
}
.swc-footer-sns__link svg {
	width:    18px;
	height:   18px;
	fill:     currentColor;
	flex-shrink: 0;
}

/* =============================================
   レスポンシブ
   ============================================= */
@media (max-width: 1023px) {
	.swc-card {
		width:         calc((100% - 60px) / 2);
		margin-bottom: 44px;
	}
	.swc-archive-list::after {
		width: calc((100% - 60px) / 2);
	}
}

@media (max-width: 767px) {
	.swc-card {
		width:         100%;
		margin-bottom: 40px;
	}
	.swc-archive-list::after { display: none; }
	.swc-archive-container { width: 88%; padding: 40px 0 60px; }
	.swc-category-nav { width: 88%; padding-top: 36px; }
	.swc-category-nav__item { width: calc((100% - 40px) / 4); }
	.swc-article-header { width: 88%; padding: 36px 0 28px; }
	.swc-article-body { width: 88%; padding: 40px 0 60px; }
	.swc-article-body h3,
	.entry-body h3 { font-size: 1.1rem; }
	.swc-share { width: 88%; padding: 32px 0 0; }
	.swc-tag-cloud { width: 88%; }
	.swc-related { padding: 52px 0 44px; }
	.swc-archive-header { padding: 44px 20px 36px; }
	.swc-hero__image { height: 58vw; min-height: 260px; max-height: 420px; }
	.swc-hero__body { padding: 48px 6% 36px; }
	.swc-hero__title { font-size: clamp(1.05rem, 4.5vw, 1.35rem); }
}

/* =============================================
   印刷
   ============================================= */
@media print {
	.swc-share,
	.swc-related,
	.swc-footer-sns,
	#site-header { display: none !important; }
}
