/*
Theme Name: org Theme
*/
@charset "utf-8";
*{ margin: 0; padding: 0 } 

.bx-wrapper {
  position: relative;
  padding: 0;
  *zoom: 1;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  margin-left : auto ; margin-right : auto ;
  margin-bottom: 60px;
}

*, *::before, *::after {
  box-sizing: border-box;
}

.vWrap{
	position: relative;
	margin-top: 6px;
	margin-bottom: 15px;
	padding-bottom: 50%;
	padding-top: 69px;
	overflow: hidden;
}
 
.vWrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.textblockrelated{
	position:relative;
	padding:15px;
	border:1px solid #cccccc;
	background-color:#fff9f9;
	margin:20px 10px 30px;
	line-height: 1.6;
	font-size:13px;
	color:#414141;
}
.textblockrelated .relation{ margin:0 0 20px }
.textblockrelated .sourcetext{
	color:#999;
	font-size:12px;
	text-align:right;
}

.textblock{
	position:relative;
	width:85%;
	padding:15px;
	border:1px solid #cccccc;
	background-color:#fff9f9;
	margin:20px auto 30px;
	line-height: 1.6;
	font-size:13px;
	color:#414141;
}
.textblock .relation{ margin:0 0 20px }
.textblock .sourcetext{
	color:#999;
	font-size:12px;
	text-align:right;
}

.adContainer{ margin: 4px 0 12px }

.arrow{
  position: relative;
  display: inline-block;
  padding: 3px 0 0 16px;
  color: #000;
  vertical-align: middle;
  text-decoration: none;
  font-size: 12px;
  margin: 12px 0 0 6px;
}
.arrow::before,
.arrow::after{
  position: absolute;
  top: 0; bottom: 0; left: 0;
  margin: auto;
  content: "";
  vertical-align: middle;
}

/* 確実に改行するクラス */
.arrow-block { display:block; width:fit-content; }

.type1::before{
  width: 12px; height: 12px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background: #80b0fc;
}
.type1::after{
  left: 5px;
  box-sizing: border-box;
  width: 3px; height: 3px;
  border: 3px solid transparent;
  border-left: 3px solid #fff;
}

.blockquote{
	position:relative;
	width:90%;
	padding:20px 15px 10px;
	border:1px solid #cccccc;
	background-color:#fff9f9;
	margin:20px auto 30px;
	color:#414141;
}
.blockquote:before{
	content:"“";
	font-size:50px;
	line-height:1em;
	color:#aaa;
	position:absolute;
	left:0; top:0;
}
.source:before{
	content:"出典 ";
	color:#999;
	font-size:12px;
}
.blockquote .source a{ color:#999; font-size:12px; }
.source{ margin-top:10px; }
.allPost{ margin:20px 0 10px }

.moreInfoLink{
	margin:5px 0 0;
	width:100%;
	text-align:right;
}
.moreInfoLink a{
	padding:0 0 0 15px;
	background:url(images/arrow.png) no-repeat left;  	
	margin:0 10px 0 0;
	font-size:13px;
	font-weight:bold;
	color:#4682B4;
}

.mainCategoryTitle{ margin:15px 0 5px; padding:0 0 0 8px; }
.mainCategoryTitle h2{ font-size:16px; }

.mainPopularList{
	background-color:#fff;
	border:1px solid #f0f0f0;
}
.mainPopularList li img{ width:90%; height:auto; }
.mainPopularList li{
	display:inline-block;
	width:100%;
	margin:0 0 10px;
	padding:10px 0 0;
}
.mainPopularList li+li{ border-top:1px dotted #d0d0d0; }

.widget .wpp-list li a{ display:inline-block; width:14%; margin:0 0 0 10px; }
.widget .wpp-list li img{ width:90%; height:auto; }
.widget .wpp-list li{
	display:inline-block;
	width:100%;
	margin:0 0 10px;
	padding:10px 0 0;
}
.wpp-list li+li{ border-top:1px dotted #d0d0d0; }
.widget .wpp-list li a+a{
	display:inline-block;
	width:76%;
	vertical-align: top;	
	font-size:13px;
	padding:5px 0;
	margin:0 10px 0 0;
	color:#4682B4;
}
.analytics{ text-align:center; }
.analyticsBottom{ text-align:center; margin:20px 0 0 }

iframe{ max-width:100%; }

#appIntroUnder{ width:100%; text-align:center; margin:40px 0 0 }
#appIntroUnder span{ font-weight:bold; padding:0 8px } 

#appIntroTop{ width:100%; text-align:center; margin:0 0 10px } 
#appIntroTop img{ width:95% } 

.downArrow{ position:relative; top:0; left:0; }
.downArrow:before{
  position:absolute; content:''; width:0; height:0; top:8px; left:0;
  border:8px solid transparent; border-top-color:#FF0000;
}
.downArrow:after{
  position:absolute; content:''; top:0; left:4px;
  width:8px; height:8px; background:#FF0000;
}

#appPrDiv{
	border-bottom:1px solid #e0e0e0;
	margin:0 0 15px;
	padding:0 0 15px 12px;
}

#pageTitle h1{ font-size:22px; font-weight:bold; }
#pageTitle{
	border-bottom:solid 2px #505050;
	padding:0 0 5px;
	margin:15px 0 8px;
}
ol.breadcrumbs{
	flex-basis:100%;
	font-size:12px;
	padding:2px 5px 0; /* パディング */
	list-style-type:none; /* リストマーク非表示 */
}
ol.breadcrumbs li.firstBread{
	padding-left:18px; /* 左パディング */
	background:url(images/icon-house.png) no-repeat left; /
}
ol.breadcrumbs li{ padding-left:2px; display:inline; }
ol.breadcrumbs a{
	padding-right:14px;
	background:url(images/arrow.png) no-repeat right; 
	font-size:12px;
	color:#4682B4;
}
ol.breadcrumbs span{ padding-left:2px; font-size:12px; }

#pageIntroText { flex-basis:100%; }

#categryMenu a,#relateCategory a,#topCategory a{ font-size:13px; color:#4682B4; }
#categryMenu h3,#relateCategory h3,#topCategory h3{ margin:10px; font-size:15px; }

#text-2{ display:inline-block; }
html{ height:100%; }

body{
	font-family:'Lucida Grande','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3',Meiryo,メイリオ,sans-serif;
	background-color:#f8f5eb;
	height:100%;
	color:#222222;
	max-height:999999px;
}

/* 目次 */
.toc{
  background:#f8f8f8;
  border:1px solid #ddd;
  padding:15px;
  margin:0 15px;
}
.toc h2{ font-size:20px; margin-bottom:10px; }
.toc ul{ list-style:none; margin:0; padding:0; }
.toc ul li{ margin-bottom:5px; }
.toc ul li a{ text-decoration:none; color:#337ab7; }
.toc ul li a:hover{ text-decoration:underline; }

#popular_sidebar h3{ margin:10px; font-size:15px; }
a:link{ color:#4682B4; text-decoration:none; }
a:visited{ color:#3159d1; }
a:hover{ color:#4169E1; text-decoration:underline; }
a:active{ color:#4169E1; }

.postElemContainer{ padding:0; width:100%; }
.topPostElemContainer{
	margin:0 0 10px;
	padding:10px 10px 0;
	vertical-align: middle;
}
.postDescription{ margin:10px 0 20px; font-size:12px; }
div+.topPostElemContainer{ border-top:1px dotted #d0d0d0; }
.topPostTextContainer a{ color:#4682B4; }

.postTextContainer h2{
	font-size:18px;
	padding:4px 8px;
	border-left:6px solid #80b0fc;
	margin:30px 12px 10px 12px;
	color:#222222;
}
nav.toc h2{
  font-size:16px;
  margin:12px 6px 8px;
  color:#222222;
  border:none;
  padding:0;
}
.postTextContainer h3{
	font-size:16px;
	margin:16px 12px 8px 12px;
	color:#222222;
}
.postTextContainer h4{ font-size:16px; margin:12px 2px 8px; color:#222222; }
.postTextContainer p{ margin:0 0 1.5em; }
.postTextContainer ul{ list-style-position: inside; }

/* 通常の箇条書きはマーカーを本文の外に置き、折り返し位置を揃える。 */
.postTextContainer ul:not(:has(> li > a)){
  list-style-position:outside;
  margin:0 0 1.5em 1.4em;
  padding-left:1.2em;
}
.postTextContainer ul:not(:has(> li > a)) > li{
  text-indent:0;
  margin-bottom:.4em;
  line-height:1.8;
}
@media (max-width:640px){
  .postTextContainer ul:not(:has(> li > a)){
    margin-left:1.1em;
    padding-left:.9em;
  }
}

.postTextFooter{
	border-top:1px dotted #d0d0d0;
	margin:10px 10px 0;
	padding:10px 0;
}
.size-medium{
	border:solid 1px #f0f0f0;
	padding:8px 8px 14px;
	margin:10px 0 20px;
}
.size-full{
	border:solid 1px #f0f0f0;
	padding:8px 8px 14px;
	margin:10px 0 20px;
  max-width:94%;
  height:auto;
}
.aligncenter{ display:block; margin-left:auto; margin-right:auto; }

/* 各トピックブロック */
.topic{ margin-bottom:20px; }
/* トピックの見出し */
.topic-title{ font-size:16px; margin-bottom:10px; position:relative; padding-left:10px; }

/* Learn moreリンク */
.learn-more{ text-align:right; margin:20px 20px 0 0; }
.learn-more a{
  position:relative;
  padding-left:10px;
  color:#4682B4;
  font-weight:bold;
  text-decoration:none;
  border-bottom:1px dashed #4682B4;
  transition: color .3s, border-bottom .3s;
}
.learn-more a:hover{ color:#3159d1; border-bottom:1px solid #3159d1; }

#siteTitle img{ width:83px; }

#headerContainer{
	z-index:10;
	filter: alpha(opacity=92);
	-moz-opacity:0.92;
	opacity:0.92;
	background-image: url(images/headerBar.png);
	background-repeat: repeat-x;
  position: fixed !important;  
  position: absolute;  
  top:0; left:0; width:100%; height:70px; 
  color:#fff;
	padding:0;
	background-color:#ffffff;
	border-bottom:1px solid #f0f0f0;
}

#siteTitleWrapper{ margin:0; padding:0; display:inline-block; }
#topMenuWrapper{ margin:0; padding:0 0 0 5px; display:inline-block; text-align:right; }
#topMenuWrapper img{ height:45px; display:inline-block; vertical-align:bottom; margin-left:5px; margin-bottom:10px; }

#footerContainer{ width:100%; height:60px; padding:4px 0 0; background-color:#e3e3c3; border-top:2px solid #f9f9f9; }
#copyrightWrapper { text-align:center; }
#footerMenuWrapper{
	display:-moz-inline-box;
	display:inline-block;
	margin:0 0 15px;
	font-size:12px;
	width:100%;
	text-align:right;
}
#footerMenuWrapper a{ margin-right:0; margin-left:0; }
#footerMenuWrapper a+a{ margin-right:0; margin-left:20px; }
#desc{ color:#555; font-size:12px; }
#topPostContainer{ margin:0; background-color:#fff; border:1px solid #f0f0f0; }
#postContainer{ margin:20px 0 0; background-color:#fff; border:1px solid #f0f0f0; }
.amazonWrap{ width:100%; text-align:center; margin:20px 0; }

@media screen and (min-width: 769px){
	#appIntroUnder img{ margin:10px 0 0; padding:3px; width:60%; }
	.topPostTextContainer h2{ font-size:16px; }
	body{ -webkit-text-size-adjust:100%; }
	.postTitleContainer{
		margin:10px;
		padding:0 0 10px;
		border-bottom:2px solid #555555;
	}
	.postTitleContainer h1 a{ color:#000; font-size:26px; }
	.postTitleContainer h1{ margin-bottom:10px; }

	#contentContainer{
	  display:flex;
	  column-gap:10px;
	  max-width:1200px;
	  min-height:100%;
    margin:90px auto 0;
	  overflow:hidden; /*floatの解除*/
	  flex-wrap:wrap;
	}

	#content{
	  flex-basis: calc(75% - 5px);
	  min-width:0;
	  line-height:1.6;
	}

	#sidebar{
	  min-width:0;
	  flex-basis: calc(25% - 5px);
	  padding:20px;
	}
	
	#header{ width:980px; margin:0 auto; padding:5px 0 0; }
	#footer{ font-size:11px; text-align:left; padding:10px 0 0; width:980px; margin:0 auto; color:#555; }

	.topPostTextContainer{
		vertical-align: top;
		padding:5px 10px;
		display:inline-block;
  	width:90%;
	}
	#summary{
		width:594px;
		border:3px dotted #ccc;
		margin:30px auto 40px;
		padding:10px;	
	}
	.thumbnail{ width:9%; }
	#postAppPrTitle{
		vertical-align:top; margin:0; display:inline-block;
		width:428px; padding:0 10px; font-size:14px;
	}
	#postAppPrTitle h2{
		vertical-align:top; padding:0; margin:0;
		font-size:16px; border:none; text-align:left;
	}
	.sideImg{ width:300px; border:1px solid #f0f0f0; }
	#categryMenu,#relateCategory,#topCategory{
		margin:20px 0 0; background-color:#fff; border:1px solid #f0f0f0; width:298px;
	}
	#categryMenu li,#relateCategory li,#topCategory li{
		width:260px; display:inline-block; margin:0 0 8px 10px;
		padding:3px 10px 0 15px; background:url(images/arrow.png) no-repeat left; 
	}
	#popular_sidebar{ margin:20px 0 0; background:#fff; border:1px solid #f0f0f0; width:298px; }
	.question{ width:450px; margin:0; }
	.answer{ width:120px; margin:0; padding:0; }
	#postAppLinkContainer{ display:inline-block; width:100px; height:80px; text-align:right; vertical-align:top; margin:0; }
	.postAppLink img{ display:inline-block; width:100px; margin:0 0 5px; }
	#postAppTitle{ vertical-align:top; margin:0; display:inline-block; width:430px; padding:0 10px; }
	#postAppTitle a{ font-size:20px; }
	#postAppIcon{ display:inline-block; }
	#postAppIcon img{ width:80px; }
	.postTextContainer{ line-height:1.5; vertical-align: top; padding:5px 0; display:inline-block; font-size:15px; }
	.postTextContainer p{ margin:0 15px 1.5em; }

	.mainPopularList li a{ display:inline-block; width:9%; margin:0 0 0 10px; vertical-align: middle; }
	.mainPopularList li a+a{
		display:inline-block; width:81%; vertical-align: top;
		font-size:15px; font-weight:bold; padding:5px 0; margin:0 10px 0 0; color:#4682B4;
	}
}

@media screen and (max-width: 768px){
	#appIntroUnder img{ margin:10px 0 0; padding:3px; width:80%; }
	a{ font-weight:bold; }
	.topPostTextContainer h2{ font-size:14px; }
	body{ -webkit-text-size-adjust:none; }
	.postTitleContainer{
		margin:10px; padding:0 0 10px; border-bottom:2px solid #555;
	}
	.postTitleContainer h1 a{ color:#000; font-size:20px; }
	.postTitleContainer h1{ margin-bottom:10px; }

	#contentContainer{ width:100%; margin:90px auto 0; overflow:hidden; min-height:100%; }
	#content{ width:100%; float:left; }
	#sidebar{ padding:20px 0 0; width:100%; clear:both; }

	#header{ width:100%; margin:0 auto; padding:5px 0 0; }
	#footer{ font-size:11px; text-align:left; padding:10px 0 0; width:100%; margin:0 auto; color:#555; }
	.topPostTextContainer{ vertical-align: top; padding:5px 10px; display:inline-block; width:76%; }
	#summary{ width:90%; border:3px dotted #ccc; margin:30px auto 40px; padding:10px; }
	.thumbnail{ width:14%; }
	.pager{ /*display:none;*/ }
	#postAppPrTitle{ vertical-align:top; margin:0; display:inline-block; width:60%; padding:0 10px; }
	#postAppPrTitle h2{ vertical-align:top; padding:0; margin:0; font-size:12px; border:none; text-align:left; }
	#postAppPrTitle p{ font-size:12px; }

	.sideImg{ width:100%; border:1px solid #f0f0f0; }
	#categryMenu,#relateCategory,#topCategory{ margin:20px 0 0; background:#fff; border:1px solid #f0f0f0; width:100%; }
	#categryMenu li,#relateCategory li,#topCategory li{
		width:90%; display:inline-block; margin:0 0 10px 10px;
		padding:3px 10px 0 15px; background:url(images/arrow.png) no-repeat left;
	}
	#popular_sidebar{ margin:20px 0 0; background:#fff; border:1px solid #f0f0f0; width:100%; }
	.question{ width:70%; margin:0; }
	.answer{ width:30%; margin:0; padding:0; }
	#postAppLinkContainer{ display:inline-block; width:15%; text-align:right; vertical-align:top; margin:0; }
	.postAppLink img{ display:inline-block; width:100%; margin:0 0 5px; }
	#postAppTitle{ vertical-align:top; margin:0; display:inline-block; width:60%; padding:0 10px; }
	#postAppTitle a{ font-size:14px; }
	#postAppIcon{ display:inline-block; width:15%; }
	#postAppIcon img{ width:100%; }
	.postTextContainer{ line-height:1.5; vertical-align: top; padding:5px 0; display:inline-block; font-size:14px; }
	.postTextContainer p{ margin:0 15px 1.5em; }
	.size-full{ max-width:94%; height:auto; }
	.size-medium{ max-width:90%; height:auto; }
	textarea{ width:90%; }
	.mainPopularList li a{ display:inline-block; width:14%; margin:0 0 0 10px; vertical-align: middle; }
	.mainPopularList li a+a{
		display:inline-block; width:76%; vertical-align: top;
		font-size:13px; font-weight:bold; padding:5px 0; margin:0 10px 0 0; color:#4682B4;
	}
}

/*ページング*/
.pagination{
  clear:both; position:relative; font-size:11px; line-height:13px; padding:20px 0;
}
.pagination span, .pagination a{
  display:block; float:left; margin:2px 2px 2px 0; padding:6px 9px 5px;
  text-decoration:none; width:auto; color:#fff; background:#777;
  border-radius:3px; -webkit-border-radius:3px; -moz-border-radius:3px;
}
.pagination .pageNum{ background:#fff; } 
.pagination a:hover{ color:#fff; background:#438ACC; }
.pagination .current{ padding:6px 9px 5px; background:#438ACC; color:#fff; }

#questionTable{
  border-left:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; border-collapse:collapse;
}
#questionTable td{
  border-bottom:1px solid #999; border-right:1px dotted #999; padding:5px; height:60px; font-size:13px;
}

/* テーブル全体のスタイル */
table.styled-table{
  width:90%; margin:20px auto;
  border-collapse:collapse; font-family:Arial, sans-serif; font-size:1em; color:#333;
}
table.styled-table thead tr{ background-color:#80b0fc; color:#fff; }
table.styled-table th, table.styled-table td{
  padding:12px 15px; border:1px solid #ddd; text-align:left; white-space:nowrap;
}
table.styled-table tbody tr:nth-child(odd){ background-color:#f9f9f9; }
table.styled-table tbody tr:nth-child(even){ background-color:#fff; }

.table-responsive{ width:90%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-responsive table{ width:100%; max-width:100%; border-collapse:collapse; }

/* 目次（プラグイン） */
#toc_container li, #toc_container ul{ margin:0; padding:0 }
#toc_container.no_bullets li,
#toc_container.no_bullets ul,
#toc_container.no_bullets ul li,
.toc_widget_list.no_bullets,
.toc_widget_list.no_bullets li{
 background:0 0; list-style-type:none; list-style:none
}
#toc_container ul ul{ margin-left:1.5em }
#toc_container{
 background:#f9f9f9; border:1px solid #aaa; padding:10px; margin-bottom:1em; width:auto; margin-left:10px; display:table; font-size:95%
}
#toc_container.toc_light_blue{ background:#edf6ff }
#toc_container.toc_white{ background:#fff }
#toc_container.toc_black{ background:#000 }
#toc_container.toc_transparent{ background:none transparent }
#toc_container p.toc_title{ text-align:center; font-weight:700; margin:0; padding:0 }
#toc_container.toc_black p.toc_title{ color:#aaa }
#toc_container span.toc_toggle{ font-weight:400; font-size:90% }
#toc_container p.toc_title+ul.toc_list{ margin-top:1em }
.toc_wrap_left{ float:left; margin-right:10px }
.toc_wrap_right{ float:right; margin-left:10px }
#toc_container a{ text-decoration:none; text-shadow:none }
#toc_container a:hover{ text-decoration:underline }
.toc_sitemap_posts_letter{ font-size:1.5em; font-style:italic }

/* 質問テキスト */
.question-text{
  margin:0;
  line-height:1.6;
  color:#333;
  display:inline;
  padding-left:5px;
}

/* ボタン */
button{
  background:#80b0fc; color:#fff; border:none; border-radius:4px;
  padding:8px 14px; cursor:pointer; font-size:.9em; transition:background .2s ease;
  margin-top:3px;
}
button:hover{ background:#5a93d6; }

/* 答え部分 */
.answer{
  display:none; margin:12px auto; padding:10px 15px;
  border-left:4px solid #80b0fc; background:#f0f8ff; border-radius:4px;
  max-width:800px; width:90%; box-sizing:border-box;
}
.answer p{ margin:6px 0; line-height:1.6; color:#333; }

/* 文法セクション */
.grammar{ font-weight:bold; margin-top:10px; color:#003d73; }

/* 単語リストや文法リスト */
.vocab-list, .grammar-list{ margin-left:20px; margin-top:8px; margin-bottom:0; }
.vocab-list li, .grammar-list li{ margin-bottom:4px; color:#333; }

/* スマホ対応（答え） */
@media (max-width: 600px){
  .answer{ padding:10px; }
}

/* 学習ルート（OL） */
.postTextContainer ol.study-route{
  list-style:decimal;
  margin:0 0 1.6em 1.6em;
  padding-left:.6em;
}
.postTextContainer ol.study-route li{ margin:0 0 1em; line-height:1.9; }
.postTextContainer ol.study-route li > a{ display:inline-block; font-weight:600; padding:2px 0; text-decoration:none; }
.postTextContainer ol.study-route li > a:hover{ text-decoration:underline; }
.postTextContainer ol.study-route li small{
  display:block; margin-top:.35em; font-size:.92em; color:#666;
}
@media (max-width: 768px){
  .postTextContainer ol.study-route{ margin-left:1.3em; }
  .postTextContainer ol.study-route li{ margin-bottom:.9em; }
}

/* FAQ ブロック */
.postTextContainer .faq-list {
  margin: 20px 16px;   /* 上下・左右に余白 */
  padding: 12px 16px;  /* 内側余白を追加 */
}

.postTextContainer .faq-list dt,
.postTextContainer .faq-list dd {
  margin: 0;
  padding: 0 0 0 2.2em;
  position: relative;
  line-height: 1.9;
}

.postTextContainer .faq-list dt {
  font-weight: 700;
  margin-top: 14px;
}

/* 最初のQだけは余白なし */
.postTextContainer .faq-list dt:first-of-type {
  margin-top: 0;
}

.postTextContainer .faq-list dd {
  margin: 6px 0 14px;
  color: #333;
}

/* 丸アイコン */
.postTextContainer .faq-list dt::before,
.postTextContainer .faq-list dd::before {
  position: absolute;
  left: 0;
  top: 0;
  display: inline-block;
  width: 1.8em;
  height: 1.8em;
  line-height: 1.8em;
  text-align: center;
  font-weight: 700;
  font-size: .9em;
  color: #fff;
  border-radius: 50%;
}

.postTextContainer .faq-list dt::before {
  content: "Q";
  background: #80b0fc; /* 水色 */
}

.postTextContainer .faq-list dd::before {
  content: "A";
  background: #7bbf8e; /* 緑 */
}



/* 「プリント目次」をカード化（h3直後のul） */
.postTextContainer h3 + ul:has(> li > a){
  background:#fff; border:1px solid #eee; border-radius:12px;
  padding:10px 14px; margin:10px 12px 20px; list-style:none;
}
.postTextContainer h3 + ul:has(> li > a) li{ padding:6px 0; break-inside:avoid; }
.postTextContainer h3 + ul:has(> li > a) li a{
  display:inline-flex; align-items:center; gap:.5em; font-weight:600; text-decoration:none;
}
.postTextContainer h3 + ul:has(> li > a) li a::before{ content:"›"; font-weight:700; line-height:1; color:#80b0fc; }
@media (min-width: 769px){
  .postTextContainer h3 + ul:has(> li > a){ columns:2; column-gap:26px; }
}

/* セクション見出しの微調整 */
.postTextContainer h2{
  border-left:6px solid #80b0fc;
  background:linear-gradient(90deg,#f7fbff,transparent 60%);
  padding:6px 8px;
  margin:24px 12px 12px 12px;
}
.postTextContainer h3{ margin:24px 12px 8px 12px; }

/* プリント画像の周りを少しだけ整える */
.postTextContainer a > img.aligncenter{
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  border-radius:8px;
}

/* ======== 学習ルート ナビ（← 戻る / 次へ →）最終版 ======== */
/* 既存の .study-nav / .postTextContainer .study-nav 定義はこのブロックで統一 */
.study-nav,
.postTextContainer .study-nav{
  display:flex !important;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  background:#f7fbff;
  border:1px solid #dbeafe;
  border-radius:14px;
  padding:10px 14px;
  margin:16px 12px 20px 12px;  /* 左右マージンを明示 */
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
/* WPが自動で<p>を挿入しても崩れないように */
.study-nav p{ margin:0 !important; }
.study-nav > *{ flex:1 1 0; }

.study-nav a{
  display:inline-flex; justify-content:center; align-items:center;
  gap:.5em;
  padding:12px 14px;
  border-radius:999px;
  border:1px solid #c7dbff;
  background:#eef4ff;
  color:#1e40af;
  font-weight:700;
  text-decoration:none;
  transition:transform .08s ease, background .15s ease, box-shadow .15s ease;
}
.study-nav a:hover{
  background:#e3ecff;
  box-shadow:0 2px 6px rgba(30,64,175,.12);
  transform:translateY(-1px);
}
.study-nav .back::before{ content:"←"; margin-right:.25em; }
.study-nav .next::after{ content:"→"; margin-left:.25em; }
.study-nav .sep{ display:none !important; } /* 中央の1行は常に非表示 */

/* スマホは縦積み */
@media (max-width: 640px){
  .study-nav,
  .postTextContainer .study-nav{
    flex-direction:column;
    align-items:stretch;
    padding:12px;
    margin:16px 12px 20px 12px;
  }
  .study-nav a{ width:100%; }
}

/* ===== 修正パッチ：学習ルートナビ（左右余白＆謎の1行） ===== */

/* 左右の余白を本文と揃える（15px）＆カード内のパディングを微増 */
.postTextContainer .study-nav{
  margin:16px 15px 20px 15px !important;  /* ← 左右を15pxに統一 */
  padding:12px 16px !important;
  display:flex !important;
  justify-content:space-between;
  align-items:center;
  gap:12px;                 /* ボタンの間隔はここで統一管理 */
  background:#f7fbff;
  border:1px solid #dbeafe;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}

/* もし WP が <p> を差し込んでも段落余白を無効化して横並び維持 */
.postTextContainer .study-nav p{
  margin:0 !important;
  display:contents;         /* <p> を“無いもの”として扱う */
}

/* ボタンの見た目を明示（テーマ側の別ルールに負けないように） */
.postTextContainer .study-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:10px 14px;
  border:1px solid #c7dbff;
  border-radius:999px;
  background:#eef4ff;
  color:#1e40af;
  font-weight:700;
  text-decoration:none;
  transition:transform .08s ease, background .15s ease, box-shadow .15s ease;
}
.postTextContainer .study-nav a:hover{
  background:#e3ecff;
  box-shadow:0 2px 6px rgba(30,64,175,.12);
  transform:translateY(-1px);
}

/* ラベル（← / →） */
.postTextContainer .study-nav .back::before{ content:"←"; }
.postTextContainer .study-nav .next::after{ content:"→"; }

/* モバイルは縦積みでも“余白は gap だけ”にして、謎の1行を作らない */
@media (max-width: 640px){
  .postTextContainer .study-nav{
    flex-direction:column;
    align-items:stretch;
    gap:10px;               /* ボタン間の余白はここだけ */
  }
  .postTextContainer .study-nav a{
    width:100%;
    margin:0 !important;    /* 万一の margin を無効化 */
  }
}

/* ====== 強制オーバーライド：学習ルート導線（左右の余白＆謎の1行を解消） ====== */

/* カード本体：左右15pxで本文と揃える。Flexで横並び、gapで間隔管理 */
#content .study-nav,
.postTextContainer .study-nav{
  margin:16px 15px 22px 15px !important;  /* ← 左右15pxに固定 */
  padding:12px 16px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;                    /* ボタン間の余白はここだけ */
  background:#f7fbff;
  border:1px solid #dbeafe;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
  text-align:initial;                     /* 既存の center 指定を無効化 */
}

/* WP の自動 <p> を無害化（余白ゼロ、空なら消す） */
#content .study-nav > p,
.postTextContainer .study-nav > p{
  margin:0 !important;
}
#content .study-nav > p:empty,
.postTextContainer .study-nav > p:empty{
  display:none !important;
}

/* ボタン：<a>直下・<p><a>のどちらにも効かせる */
#content .study-nav > a,
#content .study-nav > p > a,
.postTextContainer .study-nav > a,
.postTextContainer .study-nav > p > a{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:10px 14px;
  border:1px solid #c7dbff;
  border-radius:999px;
  background:#eef4ff;
  color:#1e40af;
  font-weight:700;
  text-decoration:none !important;
  transition:transform .08s ease, background .15s ease, box-shadow .15s ease;
}
#content .study-nav > a:hover,
#content .study-nav > p > a:hover,
.postTextContainer .study-nav > a:hover,
.postTextContainer .study-nav > p > a:hover{
  background:#e3ecff;
  box-shadow:0 2px 6px rgba(30,64,175,.12);
  transform:translateY(-1px);
}

/* ← → の矢印（クラス付き・テキストに含まれていてもOK） */
#content .study-nav .back::before,
.postTextContainer .study-nav .back::before{ content:"←"; margin-right:.4em; }
#content .study-nav .next::after,
.postTextContainer .study-nav .next::after{ content:"→"; margin-left:.4em; }

/* モバイル：縦積み。間隔は gap だけ（謎の1行は出ない） */
@media (max-width:640px){
  #content .study-nav,
  .postTextContainer .study-nav{
    flex-direction:column;
    align-items:stretch;
  }
  #content .study-nav > a,
  #content .study-nav > p > a,
  .postTextContainer .study-nav > a,
  .postTextContainer .study-nav > p > a{
    width:100%;
  }
}

/* ===== 学習ルート導線：最終オーバーライド（余白＆1本線対策） ===== */

/* 本体：本文と同じ左右 12px。Flex で横並び（スマホは縦） */
#content .study-nav,
.postTextContainer .study-nav{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:16px 12px 22px 12px !important;   /* ← 左右12pxに固定 */
  padding:12px 16px !important;
  background:#f7fbff;
  border:1px solid #dbeafe;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
  text-align:left !important;
}

/* WP が挟む <p> を無効化（余白ゼロ＆空なら非表示） */
#content .study-nav > p,
.postTextContainer .study-nav > p{ margin:0 !important; }
#content .study-nav > p:empty,
.postTextContainer .study-nav > p:empty{ display:none !important; }

/* ボタン（<a>直下／<p><a>どちらにも適用） */
#content .study-nav > a,
#content .study-nav > p > a,
.postTextContainer .study-nav > a,
.postTextContainer .study-nav > p > a{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:10px 14px;
  border:1px solid #c7dbff;
  border-radius:999px;
  background:#eef4ff;
  color:#1e40af;
  font-weight:700;
  text-decoration:none !important;
  transition:transform .08s ease, background .15s ease, box-shadow .15s ease;
}
#content .study-nav > a:hover,
#content .study-nav > p > a:hover,
.postTextContainer .study-nav > a:hover,
.postTextContainer .study-nav > p > a:hover{
  background:#e3ecff;
  box-shadow:0 2px 6px rgba(30,64,175,.12);
  transform:translateY(-1px);
}

/* 矢印（テキストに含めなくても表示される） */
#content .study-nav .back::before,
.postTextContainer .study-nav .back::before{ content:"←"; margin-right:.4em; }
#content .study-nav .next::after,
.postTextContainer .study-nav .next::after{ content:"→"; margin-left:.4em; }

/* スマホ：縦積み＋“1本線”消し（境界だけ透明化） */
@media (max-width:640px){
  #content .study-nav,
  .postTextContainer .study-nav{
    flex-direction:column;
    align-items:stretch;
    gap:10px !important;                  /* 間隔は gap だけに統一 */
  }
  /* 2個目以降のボタンと隣り合う境界線を透明にして“線”を消す */
  #content .study-nav > a + a,
  #content .study-nav > p + p > a,
  .postTextContainer .study-nav > a + a,
  .postTextContainer .study-nav > p + p > a{
    border-top-color: transparent !important;
  }
}
/* ===== 学習ルートナビの最終パッチ（<br>対策＋左右12px） ===== */

/* カード本体：左右12pxに固定 */
.postTextContainer .study-nav,
#content .study-nav{
  margin:16px 12px 22px 12px !important;
  padding:12px 16px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  background:#f7fbff;
  border:1px solid #dbeafe;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}

/* ← ここが本命：WP が差し込んだ改行 <br> を無効化 */
.postTextContainer .study-nav br,
#content .study-nav br{
  display:none !important;
}

/* a を均等幅に（<p><a> パターンでも効く） */
.postTextContainer .study-nav > a,
.postTextContainer .study-nav > p > a,
#content .study-nav > a,
#content .study-nav > p > a{
  flex:1 1 0 !important;
  display:inline-flex !important;
  align-items:center; 
  justify-content:center;
  gap:.5em;
  padding:10px 14px;
  border:1px solid #c7dbff;
  border-radius:999px;
  background:#eef4ff;
  color:#1e40af;
  font-weight:700;
  text-decoration:none !important;
}

/* 矢印は擬似要素で */
.postTextContainer .study-nav .back::before,
#content .study-nav .back::before{ content:"←"; margin-right:.4em; }
.postTextContainer .study-nav .next::after,
#content .study-nav .next::after{ content:"→"; margin-left:.4em; }

/* モバイルは縦積み。間の余白は gap のみ */
@media (max-width:640px){
  .postTextContainer .study-nav,
  #content .study-nav{
    flex-direction:column;
    align-items:stretch;
  }
  .postTextContainer .study-nav > a,
  .postTextContainer .study-nav > p > a,
  #content .study-nav > a,
  #content .study-nav > p > a{
    width:100%;
  }
}
/* 使い方の目安リストの左余白を調整 */
.postTextContainer .post ol,
#content .post ol {
  margin-left: 1.4em !important;   /* 番号ごと全体に余白 */
  padding-left: 1.2em !important;  /* 番号とテキスト間も余裕 */
}

/* li 内テキストの行が折り返したときも揃うように */
.postTextContainer .post ol li,
#content .post ol li {
  text-indent: 0;       /* 番号の下にずれるのを防ぐ */
  margin-bottom: 0.4em; /* 各行に少し間隔 */
}

.print-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.print-list a {
  flex: 0 0 45%; /* 2列 */
  text-align: center;
}
.print-list img {
  width: 100%;
  height: auto;
}

/* ── 関連記事（h2 版・枠なし） ───────────────────────── */
.postTextContainer h2 + ul:has(> li > a){
  background: none;            /* 枠なし：背景解除 */
  border: 0;                   /* 枠なし：ボーダー解除 */
  border-radius: 0;            /* 角丸も解除 */
  box-shadow: none;            /* 影を完全にオフ */
  list-style: none;            /* 黒点を消す */
  padding: 0 12px;             /* 本文に合わせた左右余白 */
  margin: 10px 12px 20px;      /* 位置は h3 版と近似 */
}
.postTextContainer h2 + ul:has(> li > a) li{
  padding: 6px 0;              /* 行間を少しだけ */
  break-inside: avoid;         /* 2段組時の分割防止 */
}
.postTextContainer h2 + ul:has(> li > a) li a{
  display: inline-flex;
  align-items: center;
  gap: .5em;
  font-weight: 600;
  text-decoration: none;
  color: #4682B4;              /* 既存テーマのリンク色に合わせる */
}
.postTextContainer h2 + ul:has(> li > a) li a:hover{
  text-decoration: underline;
}
.postTextContainer h2 + ul:has(> li > a) li a::before{
  content: "›";                /* 矢印マーカー */
  font-weight: 700;
  line-height: 1;
  color: #80b0fc;              /* 既存アクセントカラー */
}

/* PC は2カラムに（任意。単列でよければこのブロックを削除） */
@media (min-width: 769px){
  .postTextContainer h2 + ul:has(> li > a){
    columns: 2;
    column-gap: 26px;
  }
}

/* ===== ロジカル記憶 ブランドヘッダー ===== */
#headerContainer {
	height: 82px;
	min-height: 82px;
	opacity: 1;
	filter: none;
	background: rgba(255, 255, 255, .98);
	border-top: 4px solid #5b5bd6;
	border-bottom: 1px solid #e8e8f2;
	box-shadow: 0 3px 14px rgba(35, 36, 78, .07);
	color: #202038;
}

#header {
	width: min(1200px, calc(100% - 32px));
	height: 78px;
	margin: 0 auto;
	padding: 8px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}

#siteTitleWrapper {
	display: block;
	flex: 0 1 330px;
	min-width: 210px;
}

#siteTitle {
	margin: 0;
	line-height: 1;
}

.siteBrand {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #202038 !important;
	text-decoration: none !important;
}

.siteBrandLogo {
	display: block;
	width: auto !important;
	height: 48px;
	max-width: 210px;
	object-fit: contain;
}

.siteBrandTagline {
	max-width: 130px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: .02em;
	color: #5f6075;
}

#primaryNav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 4px;
	min-width: 0;
}

#primaryNav a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 13px;
	border-radius: 10px;
	color: #34354f;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

#primaryNav a:hover,
#primaryNav a:focus-visible {
	background: #f0f0ff;
	color: #4545bd;
	text-decoration: none;
	outline: none;
}

@media screen and (min-width: 769px) {
	#contentContainer {
		margin-top: 102px;
	}
}

@media screen and (max-width: 768px) {
	#headerContainer {
		height: 112px;
		min-height: 112px;
	}

	#header {
		width: 100%;
		height: 108px;
		padding: 15px 12px 8px;
		flex-wrap: wrap;
		align-content: space-between;
		gap: 5px 12px;
	}

	#siteTitleWrapper {
		flex: 1 1 100%;
		min-width: 0;
	}

	.siteBrand {
		justify-content: center;
		gap: 8px;
	}

	.siteBrandLogo {
		height: 42px;
		max-width: 190px;
	}

	.siteBrandTagline {
		max-width: 120px;
		font-size: 10px;
	}

	#primaryNav {
		width: 100%;
		justify-content: flex-start;
		gap: 4px;
		overflow-x: auto;
		padding-bottom: 1px;
		scrollbar-width: none;
	}

	#primaryNav::-webkit-scrollbar {
		display: none;
	}

	#primaryNav a {
		min-height: 36px;
		padding: 0 12px;
		font-size: 12px;
	}

	#contentContainer {
		margin-top: 126px;
	}
}

@media screen and (max-width: 420px) {
	.siteBrandTagline {
		display: none;
	}
}


/* Logical Memory homepage information architecture */
.lm-home{
	background:#f5f7fb;
}
.lm-home #pageIntroText{
	display:none;
}
.lm-home #content{
	flex-basis:100%;
}
.lm-home #sidebar{
	display:none;
}
.lm-home-hero{
	position:relative;
	overflow:hidden;
	padding:72px 64px 68px;
	border-radius:28px;
	background:linear-gradient(135deg,#1f1b4d 0%,#4732a8 58%,#7766e8 100%);
	color:#fff;
	box-shadow:0 24px 55px rgba(48,37,118,.2);
}
.lm-home-hero::after{
	content:"";
	position:absolute;
	right:-80px;
	top:-120px;
	width:390px;
	height:390px;
	border-radius:50%;
	background:radial-gradient(circle,rgba(255,255,255,.24),rgba(255,255,255,0) 68%);
	pointer-events:none;
}
.lm-home-eyebrow,
.lm-home-section-kicker{
	margin:0 0 14px;
	font-size:12px;
	font-weight:700;
	letter-spacing:.16em;
}
.lm-home-eyebrow{
	color:#c9c2ff;
}
.lm-home-hero h1{
	position:relative;
	z-index:1;
	max-width:1000px;
	margin:0;
	font-size:clamp(34px,5vw,62px);
	line-height:1.2;
	letter-spacing:-.035em;
}
.lm-home-lead{
	position:relative;
	z-index:1;
	max-width:690px;
	margin:24px 0 0;
	font-size:17px;
	line-height:1.9;
	color:#eeecff;
}
.lm-home-actions{
	position:relative;
	z-index:1;
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:34px;
}
.lm-home-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:52px;
	padding:0 25px;
	border-radius:999px;
	font-size:15px;
	font-weight:700;
	text-decoration:none;
	transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.lm-home-button:hover{
	transform:translateY(-2px);
	text-decoration:none;
}
.lm-home-button.is-primary,
.lm-home-button.is-primary:visited{
	background:#fff;
	color:#31266f;
	box-shadow:0 10px 24px rgba(19,14,63,.24);
}
.lm-home-button.is-secondary,
.lm-home-button.is-secondary:visited{
	border:1px solid rgba(255,255,255,.45);
	background:rgba(255,255,255,.1);
	color:#fff;
}
.lm-home-section{
	margin-top:64px;
}
.lm-home-section-heading{
	max-width:720px;
	margin:0 0 24px;
}
.lm-home-section-kicker{
	color:#6553d7;
}
.lm-home-section-heading h2{
	margin:0;
	font-size:32px;
	line-height:1.3;
	color:#18152f;
}
.lm-home-section-heading > p:last-child{
	margin:12px 0 0;
	color:#625f70;
	font-size:15px;
	line-height:1.75;
}
.lm-home-hub-grid{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:16px;
}
.lm-home-hub-card,
.lm-home-hub-card:visited{
	position:relative;
	display:flex;
	min-height:260px;
	flex-direction:column;
	padding:26px;
	border:1px solid #e5e2f2;
	border-radius:20px;
	background:#fff;
	color:#242037;
	box-shadow:0 10px 30px rgba(38,31,73,.07);
	text-decoration:none;
	transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.lm-home-hub-card:hover{
	transform:translateY(-4px);
	border-color:#aaa0ea;
	box-shadow:0 18px 38px rgba(38,31,73,.12);
	text-decoration:none;
}
.lm-home-hub-number{
	font-size:12px;
	font-weight:700;
	letter-spacing:.14em;
	color:#8173dc;
}
.lm-home-hub-card h3{
	margin:24px 0 10px;
	font-size:22px;
	color:#18152f;
}
.lm-home-hub-card p{
	margin:0;
	font-size:14px;
	line-height:1.75;
	color:#666273;
}
.lm-home-hub-link{
	margin-top:auto;
	padding-top:26px;
	font-size:13px;
	font-weight:700;
	color:#5140bd;
}
.lm-home-video-note{
	display:grid;
	grid-template-columns:auto 1fr auto;
	gap:18px;
	align-items:center;
	margin-top:16px;
	padding:19px 22px;
	border-radius:16px;
	background:#ebe8ff;
	color:#342b6c;
	text-decoration:none;
}
.lm-home-video-note:visited{
	color:#342b6c;
}
.lm-home-video-note.is-upcoming{
	background:#eceef4;
	color:#656778;
}
.lm-home-status{
	font-size:11px;
	font-weight:700;
	letter-spacing:.1em;
}
.lm-home-subjects{
	scroll-margin-top:92px;
}
.lm-home-subjects .mainCategoryTitle{
	margin:28px 0 9px;
	padding:0;
}
.lm-home-subjects .mainCategoryTitle h2{
	font-size:20px;
	color:#26223c;
}
.lm-home-subjects .mainPopularList{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:0;
	border:1px solid #e8e6ef;
	border-radius:14px;
	overflow:hidden;
}
.lm-home-subjects .mainPopularList li{
	margin:0;
	padding:14px;
	border-bottom:1px solid #efedf4;
	background:#fff;
}
.lm-home-subjects .mainPopularList li+li{
	border-top:0;
}
.lm-home-subjects .moreInfoLink{
	margin-top:10px;
}
.lm-home-latest-title{
	margin-top:64px;
	padding:0;
}
.lm-home-latest-title h2{
	font-size:28px;
	color:#18152f;
}
@media screen and (max-width:980px){
	.lm-home-hub-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}
@media screen and (max-width:768px){
	.lm-home #contentContainer{
		padding:0 14px 40px;
	}
	.lm-home-hero{
		padding:46px 24px 42px;
		border-radius:22px;
	}
	.lm-home-hero h1{
		font-size:38px;
	}
	.lm-home-lead{
		font-size:15px;
		line-height:1.8;
	}
	.lm-home-actions{
		flex-direction:column;
	}
	.lm-home-button{
		width:100%;
	}
	.lm-home-section{
		margin-top:48px;
	}
	.lm-home-section-heading h2{
		font-size:27px;
	}
	.lm-home-hub-grid,
	.lm-home-subjects .mainPopularList{
		grid-template-columns:1fr;
	}
	.lm-home-hub-card{
		min-height:220px;
	}
	.lm-home-video-note{
		grid-template-columns:1fr;
		gap:7px;
	}
}


/* Logical Memory editorial hub pages */
.lm-hub-page{
	background:#f5f7fb;
}
.lm-hub-page #contentContainer{
	width:min(1200px,calc(100% - 32px));
	max-width:none;
	padding:0 0 64px;
}
.lm-hub-page #content{
	width:100%;
	flex-basis:100%;
}
.lm-hub-page #sidebar{
	display:none;
}
.lm-hub{
	color:#242037;
}
.lm-hub-hero{
	padding:52px 56px;
	border:1px solid #e2def4;
	border-radius:26px;
	background:linear-gradient(135deg,#fff 0%,#f2efff 100%);
	box-shadow:0 18px 46px rgba(42,34,92,.08);
}
.lm-hub-eyebrow,
.lm-hub-section-kicker{
	margin:0 0 12px;
	font-size:11px;
	font-weight:800;
	letter-spacing:.15em;
	color:#6656d9;
}
.lm-hub-hero h1{
	margin:0;
	font-size:clamp(34px,4.5vw,54px);
	line-height:1.2;
	letter-spacing:-.03em;
}
.lm-hub-lead{
	max-width:760px;
	margin:20px 0 0;
	font-size:17px;
	line-height:1.9;
	color:#5d596b;
}
.lm-hub-section{
	margin-top:54px;
}
.lm-hub-section-heading{
	margin-bottom:22px;
}
.lm-hub-section-heading h2{
	margin:0;
	font-size:30px;
	color:#1f1b36;
}
.lm-hub-section-heading p:last-child{
	margin:10px 0 0;
	color:#686474;
}
.lm-hub-path-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:16px;
}
.lm-hub-path,
.lm-hub-path:visited{
	display:flex;
	min-height:190px;
	flex-direction:column;
	padding:26px;
	border:1px solid #e4e1ef;
	border-radius:18px;
	background:#fff;
	color:#26223d;
	text-decoration:none;
	box-shadow:0 9px 26px rgba(38,31,73,.06);
	transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.lm-hub-path:hover{
	transform:translateY(-3px);
	border-color:#aaa0ea;
	box-shadow:0 15px 32px rgba(38,31,73,.11);
	text-decoration:none;
}
.lm-hub-path span{
	font-size:12px;
	font-weight:800;
	letter-spacing:.1em;
	color:#8173dc;
}
.lm-hub-path h3{
	margin:18px 0 9px;
	font-size:21px;
}
.lm-hub-path p{
	margin:0;
	font-size:14px;
	line-height:1.75;
	color:#696575;
}
.lm-hub-path strong{
	margin-top:auto;
	padding-top:20px;
	font-size:13px;
	color:#5140bd;
}
.lm-hub-article-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:16px;
}
.lm-hub-article,
.lm-hub-article:visited{
	display:grid;
	grid-template-columns:88px 1fr;
	gap:16px;
	align-items:center;
	min-height:128px;
	padding:18px;
	border:1px solid #e5e3ec;
	border-radius:16px;
	background:#fff;
	color:#2b2740;
	text-decoration:none;
}
.lm-hub-article:hover{
	border-color:#aaa0ea;
	text-decoration:none;
}
.lm-hub-article img{
	width:88px;
	height:88px;
	border-radius:12px;
	object-fit:cover;
}
.lm-hub-article-no-image{
	display:flex;
	width:88px;
	height:88px;
	align-items:center;
	justify-content:center;
	border-radius:12px;
	background:#eeeaff;
	color:#6656d9;
	font-size:12px;
	font-weight:800;
}
.lm-hub-article h3{
	margin:0;
	font-size:15px;
	line-height:1.55;
}
.lm-hub-article small{
	display:block;
	margin-top:8px;
	font-weight:700;
	color:#6656d9;
}
.lm-hub-app-cta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:24px;
	margin-top:54px;
	padding:28px 32px;
	border-radius:20px;
	background:#282052;
	color:#fff;
}
.lm-hub-app-cta h2{
	margin:0;
	font-size:23px;
	color:#fff;
}
.lm-hub-app-cta p{
	margin:8px 0 0;
	color:#d8d2f1;
}
.lm-hub-app-cta a,
.lm-hub-app-cta a:visited{
	flex:0 0 auto;
	padding:13px 20px;
	border-radius:999px;
	background:#fff;
	color:#332870;
	font-weight:800;
	text-decoration:none;
}
@media screen and (max-width:980px){
	.lm-hub-path-grid,
	.lm-hub-article-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}
@media screen and (max-width:768px){
	.lm-hub-page #contentContainer{
		width:calc(100% - 28px);
		padding-bottom:42px;
	}
	.lm-hub-hero{
		padding:38px 24px;
		border-radius:22px;
	}
	.lm-hub-lead{
		font-size:15px;
	}
	.lm-hub-section{
		margin-top:42px;
	}
	.lm-hub-section-heading h2{
		font-size:26px;
	}
	.lm-hub-path-grid,
	.lm-hub-article-grid{
		grid-template-columns:1fr;
	}
	.lm-hub-app-cta{
		align-items:flex-start;
		flex-direction:column;
		padding:25px 22px;
	}
	.lm-hub-app-cta a{
		width:100%;
		text-align:center;
	}
}


/* ===== Logical Memory app-aligned visual system (2026-09) ===== */
:root{
	--lm-ink:#102c4d;
	--lm-muted:#607188;
	--lm-canvas:#f8f7f1;
	--lm-card:#ffffff;
	--lm-line:#dce9f1;
	--lm-blue:#2d8fe7;
	--lm-blue-soft:#eaf6ff;
	--lm-yellow:#f6bd4f;
	--lm-yellow-soft:#fff7df;
	--lm-coral:#f47a5e;
	--lm-coral-soft:#fff0ec;
	--lm-teal:#18a6b5;
	--lm-teal-soft:#e8f8f8;
	--lm-shadow:0 8px 24px rgba(16,44,77,.07);
}

/* Site chrome */
#headerContainer{
	border-top:4px solid transparent;
	border-bottom:1px solid #e6ebef;
	background:linear-gradient(90deg,var(--lm-blue) 0 33%,var(--lm-yellow) 33% 66%,var(--lm-coral) 66% 100%) top / 100% 4px no-repeat, rgba(255,255,255,.98);
	box-shadow:0 3px 14px rgba(16,44,77,.06);
}
.siteBrand,
.siteBrand:visited{
	color:var(--lm-ink) !important;
}
.siteBrandTagline{
	color:var(--lm-muted);
}
#primaryNav a{
	color:var(--lm-ink);
}
#primaryNav a:hover,
#primaryNav a:focus-visible{
	background:var(--lm-blue-soft);
	color:#176fbf;
}
#primaryNav a:focus-visible{
	outline:2px solid var(--lm-blue);
	outline-offset:1px;
}
#primaryNav a:active{
	background:var(--lm-blue-soft);
	color:#176fbf;
}

/* Shared homepage canvas */
.lm-home,
.lm-hub-page{
	background:var(--lm-canvas);
}
.lm-home{
	color:var(--lm-ink);
}

/* Homepage hero: same white card and three-colour rail as the app */
.lm-home-hero{
	position:relative;
	overflow:hidden;
	padding:64px;
	border:1px solid var(--lm-line);
	border-radius:18px;
	background:var(--lm-card);
	color:var(--lm-ink);
	box-shadow:var(--lm-shadow);
}
.lm-home-hero::before,
.lm-hub-hero::before{
	position:absolute;
	top:0;
	right:0;
	left:0;
	height:3px;
	background:linear-gradient(90deg,var(--lm-blue) 0 33%,var(--lm-yellow) 33% 66%,var(--lm-coral) 66% 100%);
	content:"";
}
.lm-home-hero::after{
	top:auto;
	right:34px;
	bottom:28px;
	width:180px;
	height:92px;
	border-radius:18px;
	background:
		radial-gradient(circle at 18% 50%,var(--lm-blue) 0 10px,transparent 11px),
		radial-gradient(circle at 50% 50%,var(--lm-yellow) 0 10px,transparent 11px),
		radial-gradient(circle at 82% 50%,var(--lm-coral) 0 10px,transparent 11px),
		linear-gradient(90deg,transparent 22%,#bdd7e5 22% 45%,transparent 45% 55%,#bdd7e5 55% 78%,transparent 78%);
	opacity:.85;
}
.lm-home-eyebrow{
	color:var(--lm-blue);
}
.lm-home-hero h1,
.lm-home-section-heading h2,
.lm-home-latest-title h2{
	color:var(--lm-ink);
}
.lm-home-lead{
	max-width:720px;
	color:var(--lm-muted);
}
.lm-home-button.is-primary,
.lm-home-button.is-primary:visited{
	background:var(--lm-blue);
	color:#fff;
	box-shadow:0 8px 18px rgba(45,143,231,.22);
}
.lm-home-button.is-secondary,
.lm-home-button.is-secondary:visited{
	border:1px solid #efd89f;
	background:var(--lm-yellow-soft);
	color:var(--lm-ink);
}
.lm-home-section-kicker{
	color:var(--lm-blue);
}
.lm-home-section-heading > p:last-child{
	color:var(--lm-muted);
}

/* Four primary routes */
.lm-home-hub-card,
.lm-home-hub-card:visited{
	overflow:hidden;
	min-height:250px;
	border-color:var(--lm-line);
	border-radius:16px;
	color:var(--lm-ink);
	box-shadow:var(--lm-shadow);
}
.lm-home-hub-card::before{
	position:absolute;
	top:0;
	right:0;
	left:0;
	height:3px;
	background:var(--lm-blue);
	content:"";
}
.lm-home-hub-card:nth-child(2)::before{ background:var(--lm-yellow); }
.lm-home-hub-card:nth-child(3)::before{ background:var(--lm-coral); }
.lm-home-hub-card:nth-child(4)::before{ background:var(--lm-teal); }
.lm-home-hub-card:hover{
	border-color:#b9d8ea;
	box-shadow:0 14px 30px rgba(16,44,77,.11);
}
.lm-home-hub-number{
	display:inline-flex;
	width:42px;
	height:30px;
	align-items:center;
	justify-content:center;
	border-radius:999px;
	background:var(--lm-blue-soft);
	color:var(--lm-blue);
}
.lm-home-hub-card:nth-child(2) .lm-home-hub-number{
	background:var(--lm-yellow-soft);
	color:#a86b00;
}
.lm-home-hub-card:nth-child(3) .lm-home-hub-number{
	background:var(--lm-coral-soft);
	color:#c95240;
}
.lm-home-hub-card:nth-child(4) .lm-home-hub-number{
	background:var(--lm-teal-soft);
	color:#087f8c;
}
.lm-home-hub-card h3{
	margin-top:20px;
	color:var(--lm-ink);
}
.lm-home-hub-card p{
	color:var(--lm-muted);
}
.lm-home-hub-link{
	color:var(--lm-blue);
}
.lm-home-hub-card:nth-child(2) .lm-home-hub-link{ color:#9a6500; }
.lm-home-hub-card:nth-child(3) .lm-home-hub-link{ color:#c95240; }
.lm-home-hub-card:nth-child(4) .lm-home-hub-link{ color:#087f8c; }
.lm-home-video-note,
.lm-home-video-note.is-upcoming{
	border:1px solid #f0dfae;
	background:var(--lm-yellow-soft);
	color:var(--lm-ink);
}
.lm-home-subjects .mainCategoryTitle h2{
	color:var(--lm-ink);
}
.lm-home-subjects .mainPopularList{
	border-color:var(--lm-line);
}
.lm-home-subjects .mainPopularList li{
	background:var(--lm-card);
}

/* Editorial hubs */
.lm-hub{
	color:var(--lm-ink);
}
.lm-hub-hero{
	position:relative;
	overflow:hidden;
	padding:52px 56px;
	border:1px solid var(--lm-line);
	border-radius:18px;
	background:var(--lm-card);
	box-shadow:var(--lm-shadow);
}
.lm-hub-hero::after{
	position:absolute;
	right:44px;
	bottom:34px;
	width:124px;
	height:16px;
	border-radius:999px;
	background:linear-gradient(90deg,var(--lm-blue) 0 30%,transparent 30% 35%,var(--lm-yellow) 35% 65%,transparent 65% 70%,var(--lm-coral) 70%);
	content:"";
	opacity:.9;
}
.lm-hub-eyebrow,
.lm-hub-section-kicker{
	color:var(--lm-blue);
}
.lm-hub-hero h1,
.lm-hub-section-heading h2{
	color:var(--lm-ink);
}
.lm-hub-lead,
.lm-hub-section-heading p:last-child{
	color:var(--lm-muted);
}
.lm-hub-path,
.lm-hub-path:visited{
	position:relative;
	overflow:hidden;
	min-height:190px;
	border-color:var(--lm-line);
	border-radius:16px;
	color:var(--lm-ink);
	box-shadow:var(--lm-shadow);
}
.lm-hub-path::before{
	position:absolute;
	top:0;
	right:0;
	left:0;
	height:3px;
	background:var(--lm-blue);
	content:"";
}
.lm-hub-path:nth-child(4n+2)::before{ background:var(--lm-yellow); }
.lm-hub-path:nth-child(4n+3)::before{ background:var(--lm-coral); }
.lm-hub-path:nth-child(4n+4)::before{ background:var(--lm-teal); }
.lm-hub-path:hover{
	border-color:#b9d8ea;
	box-shadow:0 14px 30px rgba(16,44,77,.11);
}
.lm-hub-path > span{
	display:inline-flex;
	width:max-content;
	min-height:28px;
	align-items:center;
	padding:0 10px;
	border-radius:999px;
	background:var(--lm-blue-soft);
	color:var(--lm-blue);
}
.lm-hub-path:nth-child(4n+2) > span{
	background:var(--lm-yellow-soft);
	color:#9a6500;
}
.lm-hub-path:nth-child(4n+3) > span{
	background:var(--lm-coral-soft);
	color:#c95240;
}
.lm-hub-path:nth-child(4n+4) > span{
	background:var(--lm-teal-soft);
	color:#087f8c;
}
.lm-hub-path h3{
	color:var(--lm-ink);
}
.lm-hub-path p{
	color:var(--lm-muted);
}
.lm-hub-path strong{
	color:var(--lm-blue);
}
.lm-hub-path:nth-child(4n+2) strong{ color:#9a6500; }
.lm-hub-path:nth-child(4n+3) strong{ color:#c95240; }
.lm-hub-path:nth-child(4n+4) strong{ color:#087f8c; }

.lm-hub-article,
.lm-hub-article:visited{
	border-color:var(--lm-line);
	border-radius:15px;
	color:var(--lm-ink);
	box-shadow:0 5px 18px rgba(16,44,77,.05);
}
.lm-hub-article:hover{
	border-color:#b9d8ea;
	box-shadow:0 10px 24px rgba(16,44,77,.09);
}
.lm-hub-article img,
.lm-hub-article-no-image{
	border-radius:12px;
}
.lm-hub-article-no-image{
	background:var(--lm-blue-soft);
	color:var(--lm-blue);
}
.lm-hub-article h3{
	color:var(--lm-ink);
}
.lm-hub-article small{
	color:var(--lm-blue);
}
.lm-hub-app-cta{
	position:relative;
	overflow:hidden;
	border:1px solid var(--lm-line);
	border-radius:18px;
	background:var(--lm-card);
	color:var(--lm-ink);
	box-shadow:var(--lm-shadow);
}
.lm-hub-app-cta::before{
	position:absolute;
	top:0;
	right:0;
	left:0;
	height:3px;
	background:linear-gradient(90deg,var(--lm-blue) 0 33%,var(--lm-yellow) 33% 66%,var(--lm-coral) 66% 100%);
	content:"";
}
.lm-hub-app-cta h2{
	color:var(--lm-ink);
}
.lm-hub-app-cta p{
	color:var(--lm-muted);
}
.lm-hub-app-cta a,
.lm-hub-app-cta a:visited{
	background:var(--lm-blue);
	color:#fff;
	box-shadow:0 7px 16px rgba(0,0,0,.14);
}

@media screen and (max-width:768px){
	.lm-home-hero{
		padding:44px 24px 42px;
		border-radius:16px;
	}
	.lm-home-hero::after{
		display:none;
	}
	.lm-home-hub-card{
		min-height:210px;
		border-radius:15px;
	}
	.lm-hub-hero{
		padding:38px 24px;
		border-radius:16px;
	}
	.lm-hub-hero::after{
		right:24px;
		bottom:22px;
		width:86px;
		opacity:.55;
	}
	.lm-hub-path{
		border-radius:15px;
	}
}

/* Refreshed evergreen article hero images */
.articleHero {
	margin: 18px 10px 24px;
	border-radius: 14px;
	overflow: hidden;
	background: #f4f8fc;
	box-shadow: 0 8px 24px rgba(31, 78, 121, 0.12);
}
.articleHero img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 40 / 21;
	object-fit: cover;
}
@media screen and (max-width: 768px) {
	.articleHero {
		margin: 14px 0 20px;
		border-radius: 10px;
	}
}


/* Article sharing: quiet, article-end-only C-style layout. */
.articleShare {
	margin: 30px 0 4px;
	padding: 0;
	text-align: center;
}
.articleShareHeading {
	display: grid;
	grid-template-columns: minmax(20px, 1fr) auto minmax(20px, 1fr);
	gap: 14px;
	align-items: center;
	margin-bottom: 16px;
	color: var(--lm-blue, #2d8fe7);
}
.articleShareHeading span {
	height: 1px;
	background: #b9d8ea;
}
.articleShareHeading p {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
}
.articleShareActions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}
.articleSharePrimary,
.articleShareNetwork {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	border: 1px solid #d8e5ee;
	border-radius: 999px;
	background: #fff;
	color: var(--lm-ink, #102c4d);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.articleSharePrimary {
	gap: 8px;
	padding: 0 18px;
	border-color: #cfe4f2;
	background: var(--lm-blue-soft, #eaf6ff);
	color: #176fbf;
}
.articleSharePrimary svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}
.articleShareNetwork {
	width: 42px;
	padding: 0;
}
.articleShareX {
	font-size: 20px;
	font-weight: 500;
	letter-spacing: -.04em;
}
.articleShareLine {
	color: #06a94f;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: -.04em;
}
.articleSharePrimary:hover,
.articleSharePrimary:focus-visible,
.articleShareNetwork:hover,
.articleShareNetwork:focus-visible {
	border-color: var(--lm-blue, #2d8fe7);
	background: #f5fbff;
	color: #176fbf;
	box-shadow: 0 5px 13px rgba(16, 44, 77, .10);
	text-decoration: none;
	transform: translateY(-1px);
	outline: none;
}
.articleShareLine:hover,
.articleShareLine:focus-visible {
	color: #078d45;
}
.articleShareStatus {
	min-height: 1.4em;
	margin: 10px 0 0;
	color: #607188;
	font-size: 12px;
}
.articleShareScreenReader {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}
@media screen and (max-width: 420px) {
	.articleShare {
		margin-top: 26px;
	}
	.articleShareHeading {
		gap: 10px;
	}
	.articleSharePrimary {
		padding: 0 15px;
	}
}

/* Category archives: compact editorial index */
.lm-category-page{
	background:var(--lm-card);
	color:var(--lm-ink);
}
.lm-category-page #contentContainer{
	width:min(960px,calc(100% - 32px));
	max-width:none;
	padding:0 0 72px;
}
.lm-category-page #content{
	width:100%;
	max-width:none;
	flex:1 1 100%;
	float:none;
}
.lm-category-breadcrumbs{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:7px;
	margin:0 0 14px;
	color:var(--lm-muted);
	font-size:13px;
}
.lm-category-breadcrumbs a{ color:#426c8c; text-decoration:none; }
.lm-category-breadcrumbs a:hover{ text-decoration:underline; }
.lm-category-hero{
	position:relative;
	overflow:hidden;
	margin:0 0 34px;
	padding:38px 40px;
	border:1px solid var(--lm-line);
	border-radius:18px;
	background:var(--lm-card);
	box-shadow:var(--lm-shadow);
}
.lm-category-hero::before{
	position:absolute;
	top:0;
	right:0;
	left:0;
	height:3px;
	background:linear-gradient(90deg,var(--lm-blue) 0 33%,var(--lm-yellow) 33% 66%,var(--lm-coral) 66% 100%);
	content:"";
}
.lm-category-eyebrow{ color:var(--lm-blue); font-size:13px; font-weight:700; }
.lm-category-hero h1{ margin:12px 0 14px; color:var(--lm-ink); font-size:clamp(28px,4vw,38px); line-height:1.35; }
.lm-category-description,
.lm-category-description p{ margin:0; color:var(--lm-muted); font-size:15px; line-height:1.8; }
.lm-category-group{ margin:0 0 36px; }
.lm-category-group-heading{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:16px;
	margin:0 0 12px;
}
.lm-category-group-heading h2,
.lm-category-articles-title{ margin:0 0 12px; color:var(--lm-ink); font-size:20px; line-height:1.45; }
.lm-category-group-heading h2{ margin:0; }
.lm-category-group-heading a{ flex:none; color:#247dc2; font-size:13px; font-weight:700; text-decoration:none; }
.lm-category-group-heading a:hover{ text-decoration:underline; }
.lm-category-row{
	display:flex;
	align-items:center;
	gap:16px;
	color:var(--lm-ink);
	text-decoration:none;
}
.lm-category-list{ border-top:1px solid var(--lm-line); background:var(--lm-card); }
.lm-category-row{
	min-height:88px;
	padding:12px 4px;
	border-bottom:1px solid var(--lm-line);
}
.lm-category-row:hover{ background:rgba(45,143,231,.045); }
.lm-category-row-title{ flex:1; min-width:0; font-size:15px; font-weight:700; line-height:1.55; }
.lm-category-thumb{
	display:grid;
	place-items:center;
	flex:none;
	width:72px;
	height:60px;
	overflow:hidden;
	border-radius:8px;
	background:var(--lm-blue-soft);
	color:#247dc2;
	font-size:12px;
}
.lm-category-thumb img{ display:block; width:100%; height:100%; object-fit:cover; }
.lm-category-arrow{ flex:none; padding:0 4px; color:var(--lm-blue); font-size:24px; line-height:1; }
.lm-category-pagination{ margin:24px 0 0; }
.lm-category-pagination ul{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.lm-category-pagination li{ margin:0; padding:0; }
.lm-category-pagination a,
.lm-category-pagination .current{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:40px;
	min-height:40px;
	padding:0 10px;
	border:1px solid var(--lm-line);
	border-radius:8px;
	background:var(--lm-card);
	color:var(--lm-ink);
	text-decoration:none;
}
.lm-category-pagination .current{ border-color:var(--lm-blue); background:var(--lm-blue-soft); }
@media screen and (max-width:768px){
	.lm-category-page #contentContainer{ width:calc(100% - 28px); padding-bottom:46px; }
	.lm-category-hero{ padding:30px 24px; margin-bottom:26px; border-radius:16px; }
	.lm-category-group{ margin-bottom:30px; }
	.lm-category-row{ min-height:72px; gap:12px; padding:10px 2px; }
	.lm-category-row-title{ font-size:14px; }
	.lm-category-thumb{ width:56px; height:52px; }
}
@media screen and (max-width:420px){
	.lm-category-group-heading{ align-items:flex-start; flex-direction:column; gap:4px; }
}
