html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,del,dfn,em,img,ins,q,s,small,strike,strong,tt,b,u,i,center,dl,dt,dd,ol,ul,li,table,caption,tbody,tfoot,thead,tr,th,td,footer,header,menu,nav,ruby,section,article,time {    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
footer,header,menu,nav,section {    display: block;
}

ol,
ul {
    list-style: none;
}

li {
    margin-bottom: 10px;
}

.section {
    padding: 25px 0 0 0;
}


html, body {
	height: 100%
	margin: 0;
  padding: 0;
  box-sizing: border-box;
  min-height: 100vh;
  overflow-x: hidden; /* 横スクロール防止 */
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
    line-height: 1;
    background: #fff;
    color: #666;
    font-size: 1.1em;
	font-family: 'Noto Sans', sans-serif;
}

.wrapper {
	flex: 1;
}
a,
a:hover {
    text-decoration: none;
    color: #000;
}

.pair {
    background: #f8f8f8;
}

h1 {
    font-size: 1.7em;
    border-bottom: 1px solid #eee;
    padding-bottom: 25px;
    margin-bottom: 30px;
    font-weight: 600;
    color: #000;
	line-height: 2rem;
}

h2 {
  font-size: 1.5em;
  font-weight: 600;
  color: #444444;
	margin-top: 1em;
	margin-bottom: 1.3em;
  border-bottom: 2px solid #2d75b6;
  padding-bottom: 0.3em;
  text-align: center;
}

h3 {
  font-size: 1.1em;
  font-weight: 700;
  color: #2d75b6;                 /* 目立つ青色 */
  padding-bottom: 0.4em;
  margin-bottom: 0.2em;
  text-align: left:
}

h3 .pub-date {
  font-size: 0.8em;               /* h3より小さく */
  font-weight: normal;
  color: #666666;                 /* 少し薄めの色 */
  vertical-align: middle;         /* h3の文字と縦方向を揃える */
  white-space: nowrap;            /* 改行させない */
  display: inline-block;          /* インラインブロックで横並び */
}
	
a {
    color: #000;
    text-decoration: none;
}

p {
    line-height: 1.8em;
    color: #2b2b2b;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
}

ol {
    margin-left: 2em;
    margin-bottom: 2em;
}

ul {
    margin-left: 1em;
    margin-bottom: 0;
}

ul ul {
    margin-left: 1em;
}

strong {
    font-weight: 600;
    color: #1f1f1f;
}


footer {
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    background-color: #636363;
    color: #fff;
		text-align: center;
	padding: 2em 2em 2em 0;
	font-size: 0.8em;
	box-sizing: boder-box;
}

footer a {
    color: #fff;
}

.profile_img_area {
	text-align: center;
	background-color: f8f8f8;
	overflow: hidden;
}

.profile_img_area img {
	width: 100%;
	display: inline-block;
}
	
.link-style {
	text-decoration: underline; 
	text-decoration-thickness: 0.8px; 
	text-decoration-style: dotted; 
	text-underline-offset: 2px; 
	color: #2d75b6;
}
	
.btn_back a {
    padding: 5px 0 0 8px;
    text-shadow: 1px 0 1px #fff;
    text-align: center;
    background: url(../img/btn_back.png) 0 0 no-repeat;
	background-size: 250px 35px;
    width: 250px;
    height: 55px;
    font-size: 15px;
    text-decoration: none;
    display: block;
    color: #646464;
    font-weight: bold;
		line-height: 160%;
		margin-bottom: 10px;
	}
	
.left {
    float: left;
}
	
	
.clearfix:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}

.clearfix {
    display: inline-block;
}

html[xmlns] .clearfix {
    display: block;
}

* html .clearfix {
		height: 1%;
	}
	
.container {
	margin-left: auto;
	margin-right: auto;
	padding-left: 1em;
	padding-right: 1em;
	box-sizing: border-box;
}

.strategy-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2em;
  overflow-x: auto;
  display: block;
}

.strategy-table th,
.strategy-table td {
  padding: 0.5em 1em;
  border: 1px solid #2d75b6;
  min-width: 120px; /* 必要に応じて調整 */
  word-break: break-word;
  box-sizing: border-box;
}

.strategy-list {
  max-width: 900px;
  margin: 0 auto;
  padding: 1em;
  font-family: 'Noto Sans', sans-serif;
  color: #333;
}

.strategy-item {
  border: 1px solid #2d75b6;
  border-radius: 6px;
  margin-bottom: 1.5em;
  background: #f0f6fc;
  padding: 1em;
}

.strategy-header {
    display: flex;
    flex-wrap: wrap; /* 狭い画面用に縦並び許可 */
	padding-bottom: 0.5em;
    align-items: center; /* 縦方向中央揃え */
    justify-content: flex-start; /* 左寄せを明示 */
    direction: ltr; /* 念のため左から右の書字方向を指定 */
}

.strategy-number {
    font-weight: 700;
    font-size: 1.3em;
    color: #2d75b6;
    width: 80px;
    flex-shrink: 0;
    text-align: left;
    margin-right: 1em; /* タイトルとの間隔 */
}

.strategy-title {
    font-weight: 600;
    font-size: 1.2em;
    color: #000;
    flex-grow: 1;
    min-width: 0;
    text-align: left;
}

.strategy-detail {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}

.detail-block {
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 0.8em 1em;
  flex: 1 1 45%;
  box-sizing: border-box;
}

.detail-block.full-width {
  flex-basis: 100%;
}

.detail-label {
  font-weight: 700;
  color: #2d75b6;
  margin-bottom: 0.3em;
  font-size: 1em;
}

.detail-text {
  font-size: 0.95em;
  line-height: 1.5;
  color: #444;
}

.strategy-section {
  max-width: 900px;
  margin: 0 auto 2em auto;
  padding: 0 1em;
  color: #333;
}

.strategy-section h3 {
  font-size: 1.2em;
  font-weight: 600;
  color: #2d75b6;
  margin-bottom: 0.8em;
  border-bottom: 2px solid #2d75b6;
  padding-bottom: 0.3em;
  text-align: left !important;
}

.pub-date {
	font-size: 0.7em;
	color: #fff;
	white-space: nowrap;
	text-align: left;
	line-height: 1.5em;
	font-weight: bold;
}

/* PDFリンク群 */
.pdf-links {
	display: flex;
	gap: 1em;
	justify-content: center;  /* PDFリンク群も中央揃え */
	flex-wrap: nowrap;
	margin-bottom: 1em;
}

.pdf-link-item {
align-items: flex-start;
background-color: seagreen;
border-radius: 8px;
box-sizing: border-box;
color: #fff;
cursor: pointer;                 /* クリック可能を示す */
display: flex;
flex-direction: column;
flex-wrap: nowrap;
font-size: 1.2em;
font-weight: 700;
gap: 1em;
justify-content: space-between;
min-width: 280px;
min-width: auto;
padding: 0.8em 1.2em;            /* クリックしやすいパディング */
text-align: left;
text-decoration: none;
transition: background-color 0.3s ease, box-shadow 0.2s ease;
user-select: none;               /* テキスト選択を防ぐ（任意） */
width: 97%;
}
	
.pdf-link-item:hover,
.pdf-link-item:focus {
	background-color: #76b57b;
	color: #fff !important;
  outline: none;                   /* 独自スタイルでアウトライン制御 */
}

.pdf-link-item:active {
  background-color: #004080;       /* 押下時の濃い色 */
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); /* 押し込み感 */
}

.pdf-link-item .title {
	flex: 1 1 auto;
	min-width: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.5em;
}

.pdf-link-item .pub-date {
  display: inline-block;
}

.wide {
	display: block;
}
.narrow {
		display: none;
		line-height: 1.5em;
}

.pdf-links-reports {
  display: flex;
  justify-content: space-between;
  gap: 1em;
		flex-wrap: wrap; /* 画面が狭いときに縦積みに切り替え */
		margin-bottom: 3em;
}

.pdf-links-reports .pdf-link-item {
  flex: 1 1 48%;    /* 幅は約半分、縮小・拡大可能 */
  min-width: 280px; /* 最小幅を指定 */
  box-sizing: border-box;
}
	
/* PC用スタイル */
@media (min-width: 1024px) {
	.profile_img_area img {
	width: 1024px;
	}
	.container {
    max-width: 950px;
	}
    .strategy-header {
        flex-wrap: nowrap !important; /* 横並び固定 */
        display: flex !important;
        align-items: center;
    }
    .strategy-number {
        width: 80px !important;
        text-align: left !important;
        margin-right: 1em !important;
    }
    .strategy-title {
        text-align: left !important;
    }
    /* containerのpはinline-blockを解除 */
    .container p {
        display: block;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
  .strategy-section {
    text-align: left; /* 全体左寄せ */
  }
  .pdf-links {
    justify-content: flex-end; /* PDFリンクは右寄せ */
  }
}

	
/* タブレット用スタイル */
@media (max-width: 1023px) {
	  .container {
    max-width: 720px;
  }
 .strategy-header {
    display: flex;
    flex-wrap: nowrap; /* 折り返し禁止 */
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
  }
  .strategy-number {
    width: 80px;
    text-align: left;
    margin-right: 1em;
    flex-shrink: 0;
  }
  .strategy-title {
    flex-grow: 1;
    text-align: left;
    margin: 0;
	}
}

/* スマホ用スタイル */
	@media (max-width: 767px) {
	.section {
			padding: 5px 0 0 0;
		}
	.profile_img_area {
			height: 170px;
		}
	.profile_img_area img {
            width: 800px; /* 画像の幅を2倍に設定 */
            object-fit: scale-down; /* 画像を要素のサイズに合わせてトリミング */
			object-position: center; /* 画像の左側を表示 */
		}
	.btn_back {
			margin-top: 20px;
		}
	h1, h2 {
			    text-align: center;
	}
	.strategy-header {
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }
  .strategy-number,
  .strategy-title {
    width: 100% !important;
    text-align: center !important;
    margin: 0 0 0.5em 0 !important;
    writing-mode: horizontal-tb !important;
    transform: none !important;
}
  .pdf-link-item .info {
		flex-direction: column;
		flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.2em;
    white-space: nowrap;
	}

  .pdf-link-item .pub-date {
    white-space: nowrap;
  }
}

@media (max-width: 600px) {
  .strategy-header {
    flex-direction: column;
		align-items: flex-start;
		    gap: 0.3em;

  }
  .strategy-number {
    width: auto;
    margin-bottom: 0.3em;
  }
  .strategy-detail {
    flex-direction: column;
  }
  .detail-block {
    flex-basis: 100%;
  }
  .pdf-links {
		flex-direction: column;
		align-items: center;
  }
  .pdf-link-item {
		flex-basis: 100%;
		max-width: none;
  }
  .pub-date {
    white-space: nowrap;
    text-align: center;
	}
	
.wide {
	display: none;
}
.narrow {
	display: block;
}
	
}