@charset "utf-8";

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

html {
	font-size: 100%;
}

body {
	margin: 0;
	background:
		linear-gradient(180deg, #f4f7fb 0%, #edf2f7 100%);
	color: #1f2937;
	font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
	line-height: 1.7;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	border: 0;
}

a {
	color: #1d4f91;
	text-decoration: none;
	transition: 0.2s ease;
}

a:hover {
	opacity: 0.9;
}

/* =========================
   Global layout
========================= */
.site-shell {
	min-height: 100vh;
}

.site-container,
.site-header-inner,
.site-footer-inner {
	width: min(1160px, calc(100% - 32px));
	margin: 0 auto;
}

/* =========================
   Header
========================= */
.site-header {
	padding: 20px 0 18px;
}

.site-header-top {
	margin-bottom: 12px;
}

.site-tagline {
	margin: 0;
	font-size: 12px;
	color: #64748b;
	letter-spacing: 0.05em;
}

.site-header-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 28px;
	background: #ffffff;
	border: 1px solid #dbe5ef;
	border-radius: 24px;
	box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
}

.site-brand {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}

.site-logo img {
	display: block;
	width: 234px;
	max-width: 100%;
	height: auto;
	border-radius: 14px;
}

.site-brand-text {
	min-width: 0;
}

.site-brand-sub {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: bold;
	letter-spacing: 0.14em;
	color: #0f766e;
	text-transform: uppercase;
}

.site-title {
	margin: 0;
	font-size: 34px;
	line-height: 1.2;
	font-weight: 800;
	color: #0f172a;
}

.site-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav li {
	margin: 0;
	padding: 0;
}

.site-nav a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: #f8fbff;
	border: 1px solid #d8e3ef;
	color: #334155;
	font-size: 14px;
	font-weight: 700;
}

.site-nav a:hover {
	background: #eaf3fb;
	border-color: #bfd2e6;
	opacity: 1;
}

/* =========================
   Main layout
========================= */
.site-container {
	margin-top: 8px;
	margin-bottom: 36px;
}

.site-layout {
	display: flex;
	align-items: flex-start;
	gap: 24px;
}

.main-column {
	flex: 1 1 auto;
	min-width: 0;
}

.side-column {
	width: 320px;
	flex: 0 0 320px;
}
.text1 {
    font-size:14pt;
    font-weight:bold;
}
.article-list {
	margin-top: 8px;
}

.article-item {
	display: flex;
	gap: 20px;
	padding: 22px 0;
	border-top: 1px solid #e2e8f0;
}

.article-item:last-child {
	border-bottom: 1px solid #e2e8f0;
}

.article-thumb-link {
	flex: 0 0 180px;
	display: block;
}

.article-thumb {
	display: block;
	width: 180px;
	height: 120px;
	object-fit: cover;
	border-radius: 16px;
	border: 1px solid #dbe5ef;
	box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
	background: #fff;
}

.article-body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.article-meta-line {
	margin-bottom: 10px;
}

.article-category {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border-radius: 999px;
	background: #e8f3fb;
	color: #1d4f91;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.article-item-title {
	margin: 0 0 10px;
	font-size: 24px;
	line-height: 1.45;
	font-weight: 800;
}

.article-item-title a {
	color: #0f172a;
	text-decoration: none;
}

.article-item-title a:hover {
	color: #1d4f91;
}

.article-excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: #475569;
}

@media (max-width: 680px) {
	.article-item {
		flex-direction: column;
		gap: 14px;
		padding: 18px 0;
	}

	.article-thumb-link {
		flex: none;
		width: 100%;
	}

	.article-thumb {
		width: 90%;
		height: auto;
		aspect-ratio: 3 / 2;
		margin: auto;
	}

	.article-item-title {
		font-size: 20px;
	}
}
.article-detail {
	padding-top: 4px;
}

.article-detail-header {
	margin-bottom: 22px;
}

.article-detail-meta {
	margin-bottom: 10px;
}

.article-detail-category {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: #e8f3fb;
	color: #1d4f91;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.article-detail-title {
	margin: 0;
	font-size: 34px;
	line-height: 1.35;
	font-weight: 800;
	letter-spacing: 0.01em;
	color: #0f172a;
}

.article-detail-body {
	font-size: 16px;
	line-height: 2;
	color: #334155;
}

.article-detail-body p {
	margin: 0 0 1.6em;
}

.article-detail-figure {
	float: right;
	width: 360px;
	max-width: 48%;
	margin: 0 0 20px 28px;
}

.article-detail-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 18px;
	border: 1px solid #dbe5ef;
	box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
	background: #fff;
}

.article-detail-note {
	margin-top: 26px;
	padding-top: 18px;
	border-top: 1px solid #e2e8f0;
	font-size: 14px;
	line-height: 1.8;
	color: #64748b;
}

.article-detail-note a {
	color: #1d4f91;
	text-decoration: none;
}

.article-detail-note a:hover {
	text-decoration: underline;
}

@media (max-width: 767px) {
	.article-detail-title {
		font-size: 28px;
	}

	.article-detail-figure {
		float: none;
		width: 100%;
		max-width: 100%;
		margin: 0 0 18px;
	}
}
.article-detail-body {
	font-size: 16px;
	line-height: 2;
	color: #334155;
	display: flow-root;
}

.article-detail-body p {
	margin: 0 0 1.6em;
}

.article-detail-figure {
	float: right;
	width: 360px;
	max-width: 48%;
	margin: 0 0 20px 28px;
}

.article-detail-note {
	clear: both;
	margin-top: 26px;
	padding-top: 18px;
	border-top: 1px solid #e2e8f0;
	font-size: 14px;
	line-height: 1.8;
	color: #64748b;
}
.content-card{
  background:#ffffff;
  border:1px solid #d9dee5;
  border-radius:24px;
  padding:28px;
  box-shadow:0 10px 30px rgba(0,0,0,0.05);
}

.content-card-header{
  margin-bottom:22px;
  padding-bottom:14px;
  border-bottom:1px solid #e7ebf0;
}

.content-card-sub{
  margin:0 0 6px 0;
  font-size:12px;
  letter-spacing:0.08em;
  color:#6b7785;
  text-transform:uppercase;
}

.content-card-title{
  margin:0;
  font-size:28px;
  line-height:1.4;
  color:#1e2a36;
}

.profile-block{
  margin-top:6px;
}

.profile-list{
  margin:0;
  padding:0;
}

.profile-row{
  display:flex;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid #edf1f5;
}

.profile-row:first-child{
  padding-top:0;
}

.profile-row:last-child{
  padding-bottom:0;
  border-bottom:none;
}

.profile-row dt{
  width:110px;
  min-width:110px;
  margin:0;
  font-weight:700;
  color:#2a3a48;
}

.profile-row dd{
  margin:0;
  flex:1;
  color:#3d4b57;
  line-height:1.9;
}

.profile-row dd a{
  color:#1d6fd6;
  text-decoration:none;
  font-weight:600;
}

.profile-row dd a:hover{
  text-decoration:underline;
}
.content-card{
  background:#ffffff;
  border:1px solid #d9dee5;
  border-radius:24px;
  padding:28px;
  box-shadow:0 10px 30px rgba(0,0,0,0.05);
}

.content-card-header{
  margin-bottom:24px;
  padding-bottom:16px;
  border-bottom:1px solid #e7ebf0;
}

.content-card-sub{
  margin:0 0 6px 0;
  font-size:12px;
  letter-spacing:0.08em;
  color:#6b7785;
  text-transform:uppercase;
}

.content-card-title{
  margin:0 0 10px 0;
  font-size:28px;
  line-height:1.4;
  color:#1e2a36;
}

.content-card-lead{
  margin:0;
  color:#4a5865;
  line-height:1.8;
}

.contact-form{
  margin:0;
}

.form-global-error{
  margin:0 0 20px 0;
  color:#d93025;
  font-weight:700;
  line-height:1.7;
}

.form-row{
  display:flex;
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid #edf1f5;
}

.form-row:first-of-type{
  padding-top:0;
}

.form-label{
  width:180px;
  min-width:180px;
  font-weight:700;
  color:#2a3a48;
  line-height:1.8;
}

.required{
  color:#d93025;
  font-weight:700;
  font-size:13px;
}

.form-input-wrap{
  flex:1;
}

.field-error{
  margin:0 0 8px 0;
  color:#d93025;
  font-size:13px;
  line-height:1.6;
  font-weight:700;
}

.contact-form input[type="text"],
.contact-form textarea{
  width:100%;
  max-width:100%;
  padding:14px 16px;
  border:1px solid #cfd7e0;
  border-radius:10px;
  background:#fbfcfe;
  color:#243240;
  font-size:16px;
  line-height:1.7;
  box-sizing:border-box;
  transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.contact-form textarea{
  min-height:220px;
  resize:vertical;
}

.contact-form input[type="text"]:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:#7aa7d9;
  box-shadow:0 0 0 4px rgba(74,124,184,0.12);
  background:#ffffff;
}

.form-submit{
  padding-top:24px;
  text-align:right;
}

.submit-btn{
  appearance:none;
  border:none;
  border-radius:999px;
  background:#1f3b57;
  color:#ffffff;
  font-size:15px;
  font-weight:700;
  padding:14px 28px;
  cursor:pointer;
  transition:opacity 0.2s ease, transform 0.2s ease;
}

.submit-btn:hover{
  opacity:0.92;
}

.submit-btn:active{
  transform:translateY(1px);
}
.content-card{
  background:#ffffff;
  border:1px solid #d9dee5;
  border-radius:24px;
  padding:28px;
  box-shadow:0 10px 30px rgba(0,0,0,0.05);
}

.content-card-header{
  margin-bottom:24px;
  padding-bottom:16px;
  border-bottom:1px solid #e7ebf0;
}

.content-card-sub{
  margin:0 0 6px 0;
  font-size:12px;
  letter-spacing:0.08em;
  color:#6b7785;
  text-transform:uppercase;
}

.content-card-title{
  margin:0 0 10px 0;
  font-size:28px;
  line-height:1.4;
  color:#1e2a36;
}

.content-card-lead{
  margin:0;
  color:#4a5865;
  line-height:1.8;
}

.confirm-form{
  margin:0;
}

.confirm-table{
  border-top:1px solid #edf1f5;
}

.confirm-row{
  display:flex;
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid #edf1f5;
}

.confirm-label{
  width:180px;
  min-width:180px;
  font-weight:700;
  color:#2a3a48;
  line-height:1.8;
}

.confirm-value{
  flex:1;
  color:#3d4b57;
  line-height:1.9;
  word-break:break-word;
}

.confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  padding-top:24px;
}

.back-btn,
.submit-btn{
  appearance:none;
  border:none;
  border-radius:999px;
  font-size:15px;
  font-weight:700;
  padding:14px 24px;
  cursor:pointer;
  transition:opacity 0.2s ease, transform 0.2s ease;
}

.back-btn{
  background:#eef2f6;
  color:#334250;
}

.submit-btn{
  background:#1f3b57;
  color:#ffffff;
}

.back-btn:hover,
.submit-btn:hover{
  opacity:0.92;
}

.back-btn:active,
.submit-btn:active{
  transform:translateY(1px);
}

@media (max-width: 767px){
  .content-card{
    padding:20px;
    border-radius:12px;
  }

  .content-card-title{
    font-size:24px;
  }

  .confirm-row{
    display:block;
    padding:16px 0;
  }

  .confirm-label{
    width:auto;
    min-width:0;
    margin-bottom:8px;
  }

  .confirm-actions{
    flex-direction:column;
  }

  .back-btn,
  .submit-btn{
    width:100%;
  }
}
@media (max-width: 767px){
  .content-card{
    padding:20px;
    border-radius:12px;
  }

  .content-card-title{
    font-size:24px;
  }

  .form-row{
    display:block;
    gap:0;
    padding:16px 0;
  }

  .form-label{
    display:block;
    width:auto;
    min-width:0;
    margin-bottom:8px;
  }

  .form-submit{
    text-align:center;
  }

  .submit-btn{
    width:100%;
    padding:15px 20px;
  }
}
@media (max-width: 767px){
  .content-card{
    padding:20px;
    border-radius:12px;
  }

  .content-card-title{
    font-size:24px;
  }

  .profile-row{
    display:block;
    gap:0;
    padding:16px 0;
  }

  .profile-row dt{
    width:auto;
    min-width:0;
    margin-bottom:8px;
  }
}
@media (max-width: 680px) {
	.article-detail-title {
		font-size: 24px;
		line-height: 1.4;
	}

	.article-detail-body {
		font-size: 15px;
		line-height: 1.9;
	}

	.article-detail-image {
		border-radius: 14px;
	}

	.article-detail-note {
		font-size: 13px;
	}
}

/* =========================
   Hero
========================= */
.hero-panel {
	background: #ffffff;
	border: 1px solid #dbe5ef;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
	margin-bottom: 22px;
}

.hero-image-link {
	display: block;
}

.hero-image {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.hero-copy {
	padding: 28px 30px 30px;
}

.hero-kicker {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: #0f766e;
}

.hero-copy h2 {
	margin: 0 0 14px;
	font-size: 30px;
	line-height: 1.3;
	font-weight: 800;
	color: #0f172a;
}

.hero-copy p:last-child {
	margin: 0;
	font-size: 15px;
	color: #475569;
}

/* =========================
   Content panel
========================= */
.content-panel {
	background: #ffffff;
	border: 1px solid #dbe5ef;
	border-radius: 28px;
	padding: 28px 30px;
	box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.content-panel-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid #e2e8f0;
}

.content-panel-kicker {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: #0f766e;
}

.content-panel-title {
	margin: 0;
	font-size: 28px;
	line-height: 1.3;
	font-weight: 800;
	color: #0f172a;
}

.content-panel-meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: #64748b;
	text-align: right;
}

.pager-box {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0 20px;
}

.pager-label {
	font-size: 14px;
	font-weight: 700;
	color: #475569;
}

.empty-box {
	padding: 40px 20px;
	border-radius: 22px;
	border: 1px dashed #cbd5e1;
	background: #f8fbff;
	text-align: center;
}

.empty-box-title {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 800;
	color: #0f172a;
}

.empty-box-text {
	margin: 0;
	font-size: 14px;
	color: #64748b;
}

/* =========================
   Sidebar
========================= */
.side-card {
	background: #ffffff;
	border: 1px solid #dbe5ef;
	border-radius: 24px;
	padding: 22px 20px;
	box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
	margin-bottom: 18px;
}

.side-card-title {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #0f172a;
}

.search-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

.search-form input[type="text"] {
	width: 100%;
	height: 46px;
	padding: 0 14px;
	border: 1px solid #cbd5e1;
	border-radius: 14px;
	background: #fff;
	font-size: 14px;
	color: #334155;
	outline: none;
}

.search-form input[type="text"]:focus {
	border-color: #1d4f91;
	box-shadow: 0 0 0 4px rgba(29, 79, 145, 0.10);
}

.search-form input[type="submit"] {
	height: 46px;
	border: 0;
	border-radius: 14px;
	background: linear-gradient(135deg, #0f4c81 0%, #0f766e 100%);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

.side-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.side-menu li {
	margin: 0 0 10px;
}

.side-menu li:last-child {
	margin-bottom: 0;
}

.side-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 16px;
	background: #f8fbff;
	border: 1px solid #dbe5ef;
	color: #0f172a;
	font-size: 14px;
	font-weight: 700;
}

.side-menu a::after {
	content: "›";
	font-size: 18px;
	color: #0f766e;
	flex-shrink: 0;
}

.side-menu a:hover {
	background: #eef6fd;
	border-color: #c6d9ea;
	transform: translateX(2px);
	opacity: 1;
}

.count-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 8px;
	margin-left: auto;
	border-radius: 999px;
	background: #e4f3f1;
	color: #0f766e;
	font-size: 12px;
	font-weight: 800;
}

.side-note p {
	margin: 0;
	font-size: 14px;
	color: #475569;
}

/* =========================
   Footer
========================= */
.site-footer {
	padding-bottom: 28px;
}

.site-footer-inner {
	background: #0f172a;
	border-radius: 24px;
	padding: 28px;
	text-align: center;
	box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
}

.site-footer-title {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 800;
	color: #ffffff;
}

.site-footer-text {
	margin: 0 0 10px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.72);
}

.site-footer-copy {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.82);
}

.site-footer-copy a {
	color: #67e8f9;
}

/* =========================
   Responsive
========================= */
@media (max-width: 980px) {
	.site-header-main {
		flex-direction: column;
		align-items: flex-start;
	}

	.site-layout {
		flex-direction: column;
	}

	.side-column,
	.main-column {
		width: 100%;
		max-width: 100%;
		flex: none;
	}

	.site-title {
		font-size: 30px;
	}
}

@media (max-width: 680px) {
	.site-container,
	.site-header-inner,
	.site-footer-inner {
		width: 100%;
	}

	.site-header-inner,
	.site-container,
	.site-footer {
		width: calc(100% - 18px);
		margin: auto;
	}

	.site-header-main {
		padding: 18px;
		border-radius: 18px;
	}

	.site-brand {
		flex-direction: column;
		align-items: flex-start;
	}

	.site-logo img {
		width: 200px;
	}

	.site-title {
		font-size: 24px;
	}
	.article-detail-figure {
	float: none;
	width: 95%;
	max-width: 95%;
	margin: 0 auto;

}
/*
	.site-nav ul {
		flex-direction: column;
		width: 100%;
	}

	.site-nav li,
	.site-nav a {
		width: 100%;
	}
*/
	.hero-copy,
	.content-panel,
	.side-card {
		padding: 20px 18px;
	}

	.hero-copy h2,
	.content-panel-title {
		font-size: 24px;
	}

	.content-panel-header {
		flex-direction: column;
	}

	.content-panel-meta {
		text-align: left;
	}
}