/*
Theme Name: YGM Media (SWELL child)
Theme URI: https://ygm-clinic.or.jp/media/
Description: YGメディカルクリニック 新橋院のオウンドメディア用SWELL子テーマ。本体との一体化とSEO最大化。設置ディレクトリは自動判定。
Author: YGメディカルクリニック
Template: swell
Version: 2.2.0
Text Domain: ygm-media
*/

:root{
	--ygm-ink:#1a1a1a;
	--ygm-sub:#5f6368;
	--ygm-mute:#9aa0a6;
	--ygm-line:#e5e7eb;
	--ygm-bg:#f7f8fa;
	--ygm-accent:#0f4c81;
	--ygm-accent-dark:#0b3a63;
	--ygm-radius:14px;
}

/* =========================================================
   共通
   ========================================================= */

.ygm-sec{padding:52px 0}
.ygm-sec--tint{background:var(--ygm-bg)}
.ygm-sec__inner{max-width:1180px;margin:0 auto;padding:0 20px}
.ygm-sec__inner--narrow{max-width:820px}
.ygm-sec__title{font-size:22px;font-weight:700;letter-spacing:.02em;margin:0 0 24px;color:var(--ygm-ink)}
.ygm-empty{color:var(--ygm-sub);padding:24px 0}
.ygm-admin-note{background:#fff8e1;border:1px solid #f5d78e;border-radius:10px;padding:16px;font-size:13px;line-height:1.9}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ★SWELLは #content.l-content を display:flex にしている（本文＋サイドバーの2カラム用）。
   自作テンプレートはサイドバーを持たないため、そのままだと中身が flex アイテムとして
   コンテンツ幅まで縮み、右側が丸ごと余白になる。ブロックに戻す。
   投稿ページ（single）はSWELLのレイアウトをそのまま使うので対象外にする。 */
.home #content.l-content,
.archive #content.l-content,
.search #content.l-content,
.error404 #content.l-content {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
}
.ygm-home,
.ygm-archive { width: 100%; }

/* SWELLのコンテナ制約を外す */
.home #content.l-content,
.home .l-container,
.home .l-mainContent__inner,
.archive #content.l-content,
.archive .l-container,
.archive .l-mainContent__inner,
.search #content.l-content,
.search .l-container,
.search .l-mainContent__inner{max-width:none;width:100%;padding:0;margin:0}
.home .l-sidebar,.archive .l-sidebar,.search .l-sidebar{display:none}
.archive .c-pageTitle,.archive .p-archiveHeader,
.search .c-pageTitle,.search .p-archiveHeader{display:none !important}

/* =========================================================
   ヒーロー / 検索
   ========================================================= */

.ygm-hero{background:linear-gradient(180deg,#fff 0%,var(--ygm-bg) 100%);padding:64px 0 56px;border-bottom:1px solid var(--ygm-line)}
.ygm-hero__inner{max-width:820px;margin:0 auto;padding:0 20px;text-align:center}
.ygm-hero__eyebrow{font-size:12px;letter-spacing:.16em;color:var(--ygm-accent);font-weight:700;margin:0 0 14px}
.ygm-hero__title{font-size:clamp(26px,4.4vw,38px);font-weight:700;line-height:1.45;margin:0 0 16px;color:var(--ygm-ink)}
.ygm-hero__lead{font-size:15px;line-height:2;color:var(--ygm-sub);margin:0 auto 28px;max-width:620px}

.ygm-search{display:flex;gap:8px;max-width:520px;margin:0 auto}
.ygm-search input{flex:1;min-width:0;padding:13px 16px;border:1px solid var(--ygm-line);border-radius:999px;font-size:15px;background:#fff}
.ygm-search input:focus{outline:2px solid var(--ygm-accent);outline-offset:1px}
.ygm-search button{padding:0 22px;border:0;border-radius:999px;background:var(--ygm-accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer}
.ygm-search--sm{margin:20px 0 0}

/* =========================================================
   トピックカード
   ========================================================= */

.ygm-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:16px;list-style:none;margin:0;padding:0}
.ygm-topics__item a{display:block;position:relative;background:#fff;border:1px solid var(--ygm-line);border-radius:var(--ygm-radius);
	padding:22px 20px 20px 20px;text-decoration:none;color:var(--ygm-ink);transition:.2s}
.ygm-topics__item a:hover{border-color:var(--ygm-accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,76,129,.08)}
.ygm-topics__label{display:block;font-size:16px;font-weight:700;margin:14px 0 6px}
.ygm-topics__count{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--ygm-bg);
	color:var(--ygm-sub);font-size:11px;font-weight:600;vertical-align:middle}
.ygm-topics__desc{display:block;font-size:13px;line-height:1.85;color:var(--ygm-sub)}

/* アイコンはCSSで描く（画像アセット不要） */
.ygm-topics__icon{display:block;position:relative;width:38px;height:38px;border-radius:50%;background:rgba(15,76,129,.08)}
.ygm-topics__icon::before,.ygm-topics__icon::after{content:"";position:absolute;background:var(--ygm-accent)}
.ygm-topics__icon--laser::before{left:18px;top:8px;width:2px;height:14px;border-radius:2px}
.ygm-topics__icon--laser::after{left:11px;top:23px;width:16px;height:2px;border-radius:2px}
.ygm-topics__icon--hormone::before{left:12px;top:12px;width:14px;height:14px;border-radius:50%;background:none;border:2px solid var(--ygm-accent)}
.ygm-topics__icon--hormone::after{left:23px;top:9px;width:8px;height:2px;transform:rotate(45deg)}
.ygm-topics__icon--heart::before{left:11px;top:17px;width:16px;height:2px}
.ygm-topics__icon--heart::after{left:17px;top:11px;width:2px;height:14px}
.ygm-topics__icon--hair::before{left:12px;top:22px;width:14px;height:2px;border-radius:2px}
.ygm-topics__icon--hair::after{left:12px;top:11px;width:14px;height:9px;border-radius:8px 8px 0 0;background:none;border:2px solid var(--ygm-accent);border-bottom:0}
.ygm-topics__icon--yen::before{left:12px;top:20px;width:14px;height:2px}
.ygm-topics__icon--yen::after{left:18px;top:12px;width:2px;height:14px}

/* =========================================================
   記事カード
   ========================================================= */

.ygm-cardList{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:22px;list-style:none;margin:0;padding:0}
.ygm-cardList--one{grid-template-columns:1fr;max-width:640px}
.ygm-card__link{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--ygm-line);
	border-radius:var(--ygm-radius);overflow:hidden;text-decoration:none;color:var(--ygm-ink);transition:.2s}
.ygm-card__link:hover{border-color:var(--ygm-accent);box-shadow:0 8px 20px rgba(15,76,129,.08)}
.ygm-card__thumb{display:block;aspect-ratio:16/9;background:var(--ygm-bg);overflow:hidden}
.ygm-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ygm-card__noimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,#eef1f5,#e3e8ee)}
.ygm-card__body{display:flex;flex-direction:column;gap:7px;padding:16px 16px 18px}
.ygm-card__cat{font-size:11px;font-weight:700;color:var(--ygm-accent);letter-spacing:.04em}
.ygm-card__title{font-size:15px;font-weight:700;line-height:1.6}
.ygm-card__excerpt{font-size:13px;line-height:1.85;color:var(--ygm-sub)}
.ygm-card__date{margin-top:auto;font-size:11px;color:var(--ygm-mute)}

@media (max-width:599px){
	.ygm-cardList{grid-template-columns:1fr;gap:14px}
	.ygm-card__link{flex-direction:row}
	.ygm-card__thumb{flex:0 0 118px;aspect-ratio:1/1}
	.ygm-card__excerpt{display:none}
	.ygm-card__body{padding:12px 14px}
	.ygm-topics{grid-template-columns:1fr 1fr;gap:12px}
	.ygm-sec{padding:38px 0}
}

/* =========================================================
   ページネーション
   ========================================================= */

.ygm-pager{display:flex;justify-content:center;margin-top:34px}
.ygm-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;
	margin:0 3px;padding:0 10px;border:1px solid var(--ygm-line);border-radius:8px;background:#fff;
	color:var(--ygm-ink);text-decoration:none;font-size:14px}
.ygm-pager .page-numbers.current{background:var(--ygm-accent);border-color:var(--ygm-accent);color:#fff;font-weight:700}
.ygm-pager .page-numbers:hover:not(.current){border-color:var(--ygm-accent);color:var(--ygm-accent)}

/* =========================================================
   アーカイブ見出し
   ========================================================= */

.ygm-archiveHead{background:var(--ygm-bg);padding:44px 0 40px;border-bottom:1px solid var(--ygm-line)}
.ygm-archiveHead__label{font-size:11px;letter-spacing:.18em;color:var(--ygm-accent);font-weight:700;margin:0 0 10px}
.ygm-archiveHead__title{font-size:clamp(22px,3.4vw,30px);font-weight:700;margin:0;color:var(--ygm-ink)}
.ygm-archiveHead__desc{margin:14px 0 0;font-size:14px;line-height:1.95;color:var(--ygm-sub);max-width:720px}

/* =========================================================
   FAQ（TOP）
   ========================================================= */

.ygm-faq{display:flex;flex-direction:column;gap:10px}
.ygm-faq__item{background:#fff;border:1px solid var(--ygm-line);border-radius:12px;overflow:hidden}
.ygm-faq__item summary{cursor:pointer;padding:17px 44px 17px 18px;font-size:15px;font-weight:700;position:relative;list-style:none}
.ygm-faq__item summary::-webkit-details-marker{display:none}
.ygm-faq__item summary::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;
	border-right:2px solid var(--ygm-accent);border-bottom:2px solid var(--ygm-accent);
	transform:translateY(-70%) rotate(45deg);transition:.2s}
.ygm-faq__item[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.ygm-faq__a{padding:0 18px 18px;font-size:14px;line-height:1.95;color:var(--ygm-sub)}

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

.single .l-mainContent__inner{max-width:820px}
.single .post_content{max-width:760px;font-size:16px;line-height:2}

/* 親テーマの著者ボックス・関連記事・縦シェアは出さない */
.single .p-authorBox,
.single .l-articleBottom,
.single .p-postListArea,
.single .c-shareBtns--vertical{display:none !important}

.single .post_content h2{font-size:21px;font-weight:700;line-height:1.55;margin:52px 0 20px;padding:0 0 12px;
	border-bottom:2px solid var(--ygm-accent);color:var(--ygm-ink)}
.single .post_content h3{font-size:18px;font-weight:700;line-height:1.6;margin:38px 0 14px;padding-left:12px;
	border-left:4px solid var(--ygm-accent);color:var(--ygm-ink)}
.single .post_content h4{font-size:16px;font-weight:700;margin:28px 0 10px;color:var(--ygm-ink)}
.single .post_content p{margin:0 0 1.6em}
.single .post_content blockquote{margin:28px 0;padding:18px 20px;background:var(--ygm-bg);
	border-left:3px solid var(--ygm-line);border-radius:0 8px 8px 0;font-size:15px}
.single .post_content img{height:auto;border-radius:10px}
.single .post_content table{width:100%;border-collapse:collapse;font-size:14px}
.single .post_content th,.single .post_content td{border:1px solid var(--ygm-line);padding:10px 12px}
.single .post_content th{background:var(--ygm-bg);font-weight:700;text-align:left}
.single .post_content .wp-block-table{overflow-x:auto}

/* 本文リンク（アフィボタンには適用しない） */
.single .post_content a:not(.ygm-affLink):not([class*="btn"]):not(.wp-block-button__link){
	color:var(--ygm-accent-dark);text-decoration:underline;text-underline-offset:3px}

/* =========================================================
   結論ブロック
   ========================================================= */

.post_content .ygm-summary{margin:0 0 34px;padding:20px 22px;background:#f2f6fa;border:1px solid #d5e2ef;border-radius:12px}
.post_content .ygm-summary__title{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--ygm-accent)}
.post_content .ygm-summary__list{margin:0 !important;padding:0 !important;list-style:none !important}
.post_content .ygm-summary__list li{position:relative;margin:0 0 8px;padding-left:20px;font-size:15px;line-height:1.9;list-style:none !important}
.post_content .ygm-summary__list li::marker{content:"" !important}
.post_content .ygm-summary__list li::before{content:"";position:absolute;left:3px;top:11px;width:7px;height:7px;
	border-radius:50%;background:var(--ygm-accent);display:block}
.post_content .ygm-summary__list li:last-child{margin-bottom:0}

/* =========================================================
   目次
   ── ① リセット → ② より高い詳細度で再定義、の2段構え。
      SWELLが .post_content の ol/li に番号を振るため、
      これをやらないと「1. ①見出し」のように番号が二重に出る。
   ========================================================= */

/* ① リセット（先に書く） */
.post_content .ygm-toc ol,
.post_content .ygm-toc ul{
	list-style:none !important;margin:0 !important;padding:0 !important;counter-reset:none !important}
.post_content .ygm-toc li{
	list-style:none !important;counter-increment:none !important;margin:0 !important;padding:0 !important}
.post_content .ygm-toc li::marker{content:"" !important}
.post_content .ygm-toc li::before{content:none;display:none}

/* ② 自前定義（後に書く。詳細度 (0,3,1) > リセット (0,2,2) なので勝つ） */
.post_content .ygm-toc{position:relative;margin:0 0 42px;padding:22px 24px;background:#fff;
	border:1px solid var(--ygm-line);border-radius:12px}
.post_content .ygm-toc__title{margin:0 0 14px;font-size:14px;font-weight:700;letter-spacing:.08em;color:var(--ygm-accent)}
.post_content .ygm-toc__body{overflow:hidden}

.post_content .ygm-toc .ygm-toc__list{counter-reset:ygm-h2 !important}
.post_content .ygm-toc .ygm-toc__item--h2{counter-increment:ygm-h2 !important;counter-reset:ygm-h3 !important;
	position:relative !important;padding:8px 0 8px 40px !important}
.post_content .ygm-toc .ygm-toc__sub{margin:2px 0 6px !important}
.post_content .ygm-toc .ygm-toc__item--h3{counter-increment:ygm-h3 !important;
	position:relative !important;padding:6px 0 6px 46px !important}

.post_content .ygm-toc .ygm-toc__item--h2::before{
	content:counter(ygm-h2);display:block;position:absolute;left:0;top:8px;
	width:26px;text-align:right;font-size:13px;font-weight:700;color:var(--ygm-accent);
	font-variant-numeric:tabular-nums}
.post_content .ygm-toc .ygm-toc__item--h3::before{
	content:counter(ygm-h2) "-" counter(ygm-h3);display:block;position:absolute;left:0;top:6px;
	width:36px;text-align:right;font-size:11px;font-weight:600;color:var(--ygm-mute);
	font-variant-numeric:tabular-nums}

.post_content .ygm-toc a{color:var(--ygm-ink);text-decoration:none;font-size:15px;line-height:1.7}
.post_content .ygm-toc .ygm-toc__item--h3 a{font-size:14px;color:var(--ygm-sub)}
.post_content .ygm-toc a:hover{color:var(--ygm-accent);text-decoration:underline}

/* 折りたたみ */
.post_content .ygm-toc.is-collapsible .ygm-toc__body{max-height:280px;
	-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
.post_content .ygm-toc.is-collapsible.is-open .ygm-toc__body{max-height:none;-webkit-mask-image:none;mask-image:none}
.post_content .ygm-toc__more{display:block;width:100%;margin-top:10px;padding:9px;border:1px solid var(--ygm-line);
	border-radius:999px;background:#fff;color:var(--ygm-accent);font-size:13px;font-weight:700;cursor:pointer}

/* =========================================================
   出典 / 監修 / 免責 / ピラー / 関連
   ========================================================= */

.post_content .ygm-sources{margin:52px 0 0;padding:22px 24px;background:var(--ygm-bg);border-radius:12px}
.post_content .ygm-sources__title{margin:0 0 14px !important;padding:0 !important;border:0 !important;
	font-size:15px !important;font-weight:700;color:var(--ygm-ink)}
.post_content .ygm-sources__list{margin:0 !important;padding:0 0 0 1.3em !important;list-style:decimal !important}
.post_content .ygm-sources__list li{margin:0 0 8px !important;font-size:13px;line-height:1.85;list-style:decimal !important}
.post_content .ygm-sources__list li::marker{content:counter(list-item) ". " !important;color:var(--ygm-mute)}
.post_content .ygm-sources a{color:var(--ygm-accent-dark)}
.post_content .ygm-sources__pub{display:block;color:var(--ygm-mute);font-size:12px}

.post_content .ygm-credit{display:flex;align-items:center;gap:14px;margin:28px 0 0;padding:16px 18px;
	border:1px solid var(--ygm-line);border-radius:12px;background:#fff}
.post_content .ygm-credit__img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 56px}
.post_content .ygm-credit__label{margin:0 0 2px;font-size:11px;letter-spacing:.1em;color:var(--ygm-mute)}
.post_content .ygm-credit__name{margin:0;font-size:15px;font-weight:700;color:var(--ygm-ink)}
.post_content .ygm-credit__name span{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:var(--ygm-sub)}
.post_content .ygm-credit__link{font-size:12px;color:var(--ygm-accent-dark)}

.post_content .ygm-disclaimer{margin:22px 0 0;padding:14px 16px;background:var(--ygm-bg);border-radius:10px;
	font-size:12px;line-height:1.9;color:var(--ygm-sub)}

.post_content .ygm-pillar{margin:34px 0 0;padding:18px 20px;border:1px solid #d5e2ef;border-radius:12px;background:#f2f6fa}
.post_content .ygm-pillar__label{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ygm-accent)}
.post_content .ygm-pillar__link{font-size:15px;font-weight:700;color:var(--ygm-accent-dark);text-decoration:none}
.post_content .ygm-pillar__link:hover{text-decoration:underline}

.post_content .ygm-related{margin:52px 0 0}
.post_content .ygm-related__title{margin:0 0 18px !important;padding:0 !important;border:0 !important;font-size:17px !important}
.post_content .ygm-related__list{display:grid;grid-template-columns:1fr 1fr;gap:14px;
	list-style:none !important;margin:0 !important;padding:0 !important}
.post_content .ygm-related__list li{list-style:none !important;margin:0 !important;padding:0 !important}
.post_content .ygm-related__list li::marker{content:"" !important}
.post_content .ygm-related__item a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ygm-ink)}
.post_content .ygm-related__thumb{flex:0 0 88px}
.post_content .ygm-related__thumb img{width:88px;height:66px;object-fit:cover;border-radius:8px;display:block}
.post_content .ygm-related__text{font-size:13px;font-weight:700;line-height:1.6}
@media (max-width:599px){.post_content .ygm-related__list{grid-template-columns:1fr}}

.post_content .ygm-cta{margin:44px 0 0;padding:26px 22px;border-radius:14px;background:var(--ygm-bg);text-align:center}
.post_content .ygm-cta__lead{margin:0 0 14px;font-weight:700}
.post_content .ygm-cta__btn{display:inline-block;padding:14px 32px;border-radius:999px;background:var(--ygm-accent);
	color:#fff !important;font-weight:700;text-decoration:none !important}
.post_content .ygm-cta__tel{display:block;margin-top:12px;font-size:14px}

/* アフィリエイトボタン */
.post_content .ygm-aff,.post_content a.ygm-affLink{display:block;max-width:420px;margin:24px auto;padding:16px 24px;
	border-radius:999px;background:linear-gradient(180deg,#1f6fb2,#0f4c81);color:#fff !important;
	text-align:center;font-weight:700;text-decoration:none !important;cursor:pointer;
	box-shadow:0 4px 12px rgba(15,76,129,.28)}
.post_content .ygm-aff__note{display:block;text-align:center;font-size:11px;color:var(--ygm-mute);margin-top:-14px}

/* =========================================================
   404
   ========================================================= */

.error404 .ygm-sec__inner{text-align:center}
