.l-section:first-of-type {
	min-height: 900px;
}

.l-section:first-of-type:lang(ja) {
	min-height: 1000px;
}

@media (min-width: 1200px) {
	.l-container {
		padding-left: clamp(10px, calc((100vw - 1200px) * 0.1 + 10px), 3rem);
		padding-right: clamp(10px, calc((100vw - 1200px) * 0.1 + 10px), 3rem);
		overflow-x: visible;
	}
}


/*---------------------------------------------*/
/*  レイアウト：1200px以上は２カラム           */
/*---------------------------------------------*/
.l-mypage--2col {
	margin-top: 40px;
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}

.l-mypage--2col::after {
	content: '';
	display: block;
	clear: both;
}

@media screen and (min-width: 1200px) {
	.l-mypage__sidebar.c-mypageNav {
		display: block;
	}

	.c-mobileSidebar,
	.c-mobileSidebar__logoutBtn,
	.c-mobileMypage {
		display: none;
	}
}


/*---------------------------------------------*/
/*  左側ローカルメニュー                        */
/*---------------------------------------------*/
.l-mypage__sidebar {
	position: sticky;
	top: 100px;
	flex: 0 0 250px;
	max-height: calc(100vh - 120px);
	min-height: 700px;
	align-self: flex-start;
	width: 250px;
	min-width: 250px;
}

.l-mypage__sidebar:lang(ja) {
	min-height: 800px;
}

.l-mypage__main {
	flex: 1;
	width: 930px;
}

.l-mypage__sidebar nav {
	top: -5px;
	margin-bottom: 34px;
	padding-right: 10px;
}

.l-mypage__sidebar .c-mypageNav__inner nav span.sub-title {
	display: inline-block;
	width: 230px;
	margin: 10px 0 9px;
	padding: 2px 15px;
	font-weight: bold;
	font-size: 14px;
	color: #fff;
	background-color: var(--color-nkblue);
	box-sizing: border-box;
}

.l-mypage__sidebar nav a,
.l-mypage__sidebar nav span.is-current,
.l-mypage__sidebar nav .is-current {
	display: inline-block;
	width: 230px;
	margin: 0 0 9px;
	padding: 8px 15px 6px 32px;
	min-height: 34px;
	font-size: 14px;
	line-height: 1.2;
	text-decoration: none;
	color: var(--color-nkblue);
	background-color: #ddeeF2;
	background-image: url("/hp/common_image/rules/15_sidemenu_14px_56px.svg");
	background-size: 14px 56px;
	background-repeat: no-repeat;
	background-position: 10px 3px;
	box-sizing: border-box;
}

.l-mypage__sidebar nav a.is-current {
	font-weight: bold;
	color: var(--color-nkblue);
	background-color: #f8f8f8;
	background-image: url("/hp/common_image/rules/15_sidemenu_14px_56px.svg");
	background-size: 14px 56px;
	background-repeat: no-repeat;
	background-position: 10px 3px;
	cursor: default;
}

.l-mypage__sidebar nav a:hover {
	color: #fff;
	background-color: var(--color-nkblue);
	background-position: 10px -25px;
}

.l-mypage__sidebar nav .is-current:hover {
	color: var(--color-nkblue);
	background-color: #f8f8f8;
	background-image: url("/hp/common_image/rules/15_sidemenu_14px_56px.svg");
	background-size: 14px 56px;
	background-repeat: no-repeat;
	background-position: 10px 3px;
}

.l-mypage__sidebar nav a:not(.is-current) {
	background-image:
		linear-gradient(to bottom, transparent 0 31px, #ddeeF2 31px 100%),
		url("/hp/common_image/rules/15_sidemenu_14px_56px.svg");
	background-repeat: no-repeat, no-repeat;
	background-size: auto auto, 14px 56px;
	background-position: 0 0, 10px 3px;
}

.l-mypage__sidebar nav a:not(.is-current):hover {
	background-image:
		linear-gradient(to bottom, transparent 0 31px, var(--color-nkblue) 31px 100%),
		url("/hp/common_image/rules/15_sidemenu_14px_56px.svg");
	background-repeat: no-repeat, no-repeat;
	background-size: auto auto, 14px 56px;
	background-position: 0 0, 10px -25px;
}

.l-mypage__sidebar nav span.sub-title {
	width: 240px;
	padding: 0;
	letter-spacing: -0.03em;
}

.c-mypage__logoutWrap {
	display: block;
	cursor: pointer;
}

/* ログアウトリンク用：既存のナビaタグ装飾を打ち消し */
.c-mypageNav .c-mypageNav__inner span.sub-title .c-mypage__logout {
	all: unset;
	display: block;
	width: 100%;
	height: 100%;
	text-indent: -4px;
	color: inherit;
	background-color: inherit;
	font-weight: bold;
	font-size: 14px;
	text-decoration: none;
}

.c-mypageNav .c-mypageNav__inner span.c-mypage__logoutWrap:hover {
	color: var(--color-nkblue);
	background-color: #ddeeF2;
}


/*---------------------------------------------*/
/*  1200px未満：既存2カラム解除                 */
/*---------------------------------------------*/
@media screen and (max-width: 1199px) {
	.l-mypage--2col {
		display: flex;
		flex-direction: column;
	}

	.l-mypage__sidebar.c-mypageNav,
	.c-mobileSidebar,
	.c-mobileSidebar__logoutBtn {
		display: none;
	}

	.l-mypage__main {
		order: 1;
		width: 100%;
	}
}


/*   pub_kaishi.aspx   */
dl.c-rules-dllist dt + dd {
	margin-left: 6px;
}


/*   tech_rules_g.aspx   */
.p-mypage-techrulesg .c-rules-dllist__w518 {
	margin-left: 4px;
}


/*   dl_soft.aspx   */
.p-mypage-dlsoft .c-table--th-blue th:first-child {
	width: 90px;
}

.p-mypage-dlsoft .c-table--th-blue th {
	min-width: 100px;
}

@media screen and (max-width: 448px) {
	.p-mypage-dlsoft .l-section .c-table--th-blue th {
		padding-right: 3px;
		padding-left: 3px;
		font-size: 0.8em;
		min-width: 90px;
		width: 90px;
	}
}


/*   circulars.aspx   */
.p-mypage-circulars table thead th:nth-child(2) {
	border-right: none;
}

@media screen and (min-width: 768px) {
	.p-mypage-circulars table thead th:first-child {
		width: 170px;
	}
}


/* PDFリスト調整 */
.c-list--none.c-list--spaced li > a.c-icon--pdf-before {
	white-space: normal !important;
	word-break: break-word;
}

/* ネストされたリストの行間を詰め、左にインデント */
.c-list--none.c-list--spaced li > ul {
	padding-left: 36px;
	margin-top: 4px;
}

.c-list--none.c-list--spaced li > ul li {
	margin: 0;
	padding: 0;
}

.c-list--none.c-list--spaced li > ul li a {
	text-decoration: none;
}

.c-list__filesize {
	font-size: 0.95em;
	margin-left: 5px;
	white-space: nowrap;
}


/*   seminar.aspx   */
.p-seminar {
	margin-bottom: 20px;
	border-bottom: 1px dotted #ccc;
}

.c-textImage__image img {
	max-width: 420px;
}


/* =========================================================
   マイページ スマホ用カード型UI：初期状態
   ========================================================= */

.c-mobileMypage {
	display: none;
}


/* =========================================================
   1200px未満：マイページUIを上部・下部に分割表示
   ========================================================= */

@media screen and (max-width: 1199px) {
	.c-mobileMypage {
		display: block;
		background: #fff;
	}

	.c-mobileMypage--top {
		order: 2;
		margin: 32px 0 0;
		padding: 0 0 8px;
	}

	.c-mobileMypage--bottom {
		order: 3;
		margin: 0;
		padding: 8px 0 24px;
	}

	.c-mobileMypage__inner {
		padding: 0 16px;
	}

	.c-mobileMypage__title {
		margin: 0 0 14px;
		color: #0071bc;
		font-size: 22px;
		font-weight: 700;
		line-height: 1.4;
		text-align: center;
	}

	.c-mobileMypage__lead {
		margin: 0 0 24px;
		color: #333;
		font-size: 14px;
		line-height: 1.8;
		text-align: center;
	}

	.c-mobileMypage__primaryLinks {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		margin: 0;
	}

	.c-mobileMypage__card {
		display: flex;
		min-height: 82px;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		gap: 8px;
		border-radius: 6px;
		background: #0071bc;
		color: #fff;
		font-size: 15px;
		font-weight: 700;
		line-height: 1.4;
		text-align: center;
		text-decoration: none;
		box-shadow: 0 3px 8px rgba(0, 0, 0, .14);
	}

	.c-mobileMypage__card:link,
	.c-mobileMypage__card:visited,
	.c-mobileMypage__card:hover,
	.c-mobileMypage__card:active {
		color: #fff;
		text-decoration: none;
	}

	.c-mobileMypage__cardIcon {
		position: relative;
		display: inline-block;
		width: 24px;
		height: 24px;
	}

	/* 書類アイコン */
	.c-mobileMypage__cardIcon--document::before {
		content: "";
		position: absolute;
		top: 2px;
		left: 5px;
		width: 13px;
		height: 17px;
		border: 2px solid #fff;
		border-radius: 1px;
	}

	.c-mobileMypage__cardIcon--document::after {
		content: "";
		position: absolute;
		top: 8px;
		left: 9px;
		width: 8px;
		height: 2px;
		background: #fff;
		box-shadow: 0 5px 0 #fff;
	}

	/* 動画アイコン */
	.c-mobileMypage__cardIcon--movie::before {
		content: "";
		position: absolute;
		top: 5px;
		left: 2px;
		width: 14px;
		height: 13px;
		border: 2px solid #fff;
		border-radius: 2px;
	}

	.c-mobileMypage__cardIcon--movie::after {
		content: "";
		position: absolute;
		top: 8px;
		right: 1px;
		width: 0;
		height: 0;
		border-top: 5px solid transparent;
		border-bottom: 5px solid transparent;
		border-left: 7px solid #fff;
	}

	.c-mobileMypage__other {
		margin: 0;
		padding-top: 18px;
		border-top: 1px solid #d8e0e8;
	}

	.c-mobileMypage__otherTitle {
		margin: 0 0 8px;
		color: #333;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.5;
	}

	.c-mobileMypage__details {
		border: 1px solid #d8e0e8;
		background: #f7f9fb;
	}

	.c-mobileMypage__summary {
		display: flex;
		min-height: 44px;
		align-items: center;
		justify-content: space-between;
		padding: 0 14px;
		color: #111;
		font-size: 14px;
		font-weight: 700;
		line-height: 1.5;
		cursor: pointer;
		list-style: none;
	}

	.c-mobileMypage__summary::-webkit-details-marker {
		display: none;
	}

	.c-mobileMypage__summaryIcon::before {
		content: "+";
		color: #0071bc;
		font-size: 24px;
		font-weight: 400;
		line-height: 1;
	}

	.c-mobileMypage__details[open] .c-mobileMypage__summaryIcon::before {
		content: "−";
	}

	.c-mobileMypage__nav {
		display: grid;
		gap: 0;
		padding: 8px 14px 14px;
		background: #fff;
	}

	.c-mobileMypage__sectionTitle {
		display: block;
		margin: 14px 0 6px;
		color: #0071bc;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.5;
	}

	.c-mobileMypage__nav a {
		display: block;
		padding: 9px 0;
		border-bottom: 1px solid #edf1f5;
		color: #333;
		font-size: 14px;
		line-height: 1.6;
		text-decoration: none;
	}

	.c-mobileMypage__nav a:link,
	.c-mobileMypage__nav a:visited {
		color: #333;
	}

	.c-mobileMypage__nav a:hover,
	.c-mobileMypage__nav a:active {
		color: #0071bc;
		text-decoration: underline;
	}

	.c-mobileMypage__logout {
		margin: 28px 0 0;
		text-align: center;
	}

	.c-mobileMypage__logoutBtn {
		display: inline-flex;
		min-width: 120px;
		min-height: 44px;
		align-items: center;
		justify-content: center;
		padding: 0 18px;
		border: 1px solid #ff6b6b;
		border-radius: 4px;
		background: #fff;
		color: #e53935;
		font-size: 14px;
		font-weight: 700;
		line-height: 1.5;
		text-decoration: none;
	}

	.c-mobileMypage__logoutBtn::before {
		content: "↪";
		margin-right: 6px;
	}

	.c-mobileMypage__logoutBtn:link,
	.c-mobileMypage__logoutBtn:visited {
		color: #e53935;
		text-decoration: none;
	}

	.c-mobileMypage__notice {
		margin-top: 28px;
		padding: 18px 16px;
		border-left: 4px solid #0071bc;
		border-radius: 6px;
		background: #eaf5fc;
		color: #333;
		font-size: 13px;
		line-height: 1.8;
	}

	.c-mobileMypage__notice p {
		margin: 0 0 12px;
	}

	.c-mobileMypage__notice p:last-child {
		margin-bottom: 0;
	}

	.c-mobileMypage__noticeTitle {
		display: flex;
		align-items: flex-start;
		gap: 8px;
		color: #005bac;
		font-weight: 700;
		line-height: 1.7;
	}

	.c-mobileMypage__noticeIcon {
		position: relative;
		flex: 0 0 auto;
		width: 14px;
		height: 14px;
		margin-top: 4px;
		border-radius: 50%;
		background: #0071bc;
	}

	.c-mobileMypage__noticeIcon::before {
		content: "i";
		position: absolute;
		top: 50%;
		left: 50%;
		color: #fff;
		font-size: 10px;
		font-weight: 700;
		line-height: 1;
		transform: translate(-50%, -50%);
	}

	.c-mobileMypage__noticeLink {
		color: #005bac;
		font-weight: 700;
		text-decoration: none;
	}

	.c-mobileMypage__noticeLink:link,
	.c-mobileMypage__noticeLink:visited {
		color: #005bac;
	}

	.c-mobileMypage__noticeLink:hover,
	.c-mobileMypage__noticeLink:active {
		text-decoration: underline;
	}

	.c-mobileMypage__card:focus-visible,
	.c-mobileMypage__summary:focus-visible,
	.c-mobileMypage__nav a:focus-visible,
	.c-mobileMypage__logoutBtn:focus-visible,
	.c-mobileMypage__noticeLink:focus-visible {
		outline: 3px solid #ffbf47;
		outline-offset: 2px;
	}
}


/* =========================================================
   599px以下：スマホ狭幅調整
   ========================================================= */

@media screen and (max-width: 599px) {
	.c-mobileMypage__primaryLinks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.c-mobileMypage__card {
		min-height: 78px;
		font-size: 14px;
	}
}


/* =========================================================
   information.aspx のPC表示では案内カードのみ表示
   ※ PC判定は既存2カラム仕様に合わせて1200px以上
   ========================================================= */

@media screen and (min-width: 1200px) {
	.p-mypage-information .c-mobileMypage--bottom {
		display: block;
		flex: 1 1 auto;
		width: 100%;
		margin: 0;
		padding: 0 0 0 32px;
		background: #fff;
	}

	.p-mypage-information .c-mobileMypage--bottom .c-mobileMypage__inner {
		max-width: 760px;
		padding: 0;
	}

	.p-mypage-information .c-mobileMypage--top,
	.p-mypage-information .c-mobileMypage__other,
	.p-mypage-information .c-mobileMypage__logout {
		display: none;
	}

	.p-mypage-information .c-mobileMypage__notice {
		display: block;
		margin-top: 0;
		padding: 24px 24px;
		border-left: 4px solid #0071bc;
		border-radius: 6px;
		background: #eaf5fc;
		color: #333;
		font-size: 14px;
		line-height: 1.9;
	}

	.p-mypage-information .c-mobileMypage__notice p {
		margin: 0 0 14px;
	}

	.p-mypage-information .c-mobileMypage__notice p:last-child {
		margin-bottom: 0;
	}

	.p-mypage-information .c-mobileMypage__noticeTitle {
		display: flex;
		align-items: flex-start;
		gap: 8px;
		margin: 0 0 16px;
		color: #005bac;
		font-size: 16px;
		font-weight: 700;
		line-height: 1.7;
	}

	.p-mypage-information .c-mobileMypage__noticeIcon {
		position: relative;
		flex: 0 0 auto;
		width: 16px;
		height: 16px;
		margin-top: 5px;
		border-radius: 50%;
		background: #0071bc;
	}

	.p-mypage-information .c-mobileMypage__noticeIcon::before {
		content: "i";
		position: absolute;
		top: 50%;
		left: 50%;
		color: #fff;
		font-size: 11px;
		font-weight: 700;
		line-height: 1;
		transform: translate(-50%, -50%);
	}

	.p-mypage-information .c-mobileMypage__noticeLink {
		color: #005bac;
		font-weight: 700;
		text-decoration: none;
	}

	.p-mypage-information .c-mobileMypage__noticeLink:link,
	.p-mypage-information .c-mobileMypage__noticeLink:visited {
		color: #005bac;
	}

	.p-mypage-information .c-mobileMypage__noticeLink:hover,
	.p-mypage-information .c-mobileMypage__noticeLink:active {
		text-decoration: underline;
	}

	.p-mypage-information .c-mobileMypage__noticeLink:focus-visible {
		outline: 3px solid #ffbf47;
		outline-offset: 2px;
	}
}

/* =========================================================
   1200px未満：PCサイドメニュー用の最低高さを解除
   ========================================================= */

@media screen and (max-width: 1199px) {
	.l-section:first-of-type,
	.l-section:first-of-type:lang(ja) {
		min-height: auto;
	}

	.c-mobileMypage--top .c-mobileMypage__title {
		margin-top: 0;
	}
}
/* =========================================================
   information.aspx：既存本文の重複表示を非表示
   案内カードは mypage.inc 側の c-mobileMypage__notice を使用
   ========================================================= */

.p-mypage-information .l-mypage__main {
	display: none;
}