@charset "utf-8";
#rdoNationalityYes:checked + label{
	color:blue;
	font-weight:bold;
}
#rdoNationalityNo:checked + label{
	color:blue;
	font-weight:bold;
}
#pBtnRegistration1{
	display:none;
}
#pBtnRegistration2{
	display:none;
}
#rdoNationalityYes:checked ~ #pBtnRegistration1{
	display:block;
}
#rdoNationalityNo:checked ~ #pBtnRegistration2{
	display:block;
}

.ENContents{
	display:none;
}
.JPContents{
	display:none;
}
#rdoENContents:checked ~ .ENContents{
	display:block;
}
#rdoJPContents:checked ~ .JPContents{
	display:block;
}

.ENContents2{
	display:none;
}
.JPContents2{
	display:none;
}
#rdoENContents:checked ~ .ENContents2{
	display:initial;
}
#rdoJPContents:checked ~ .JPContents2{
	display:initial;
}
/* =========================================
	ベース設定・変数
========================================= */
.door-container {
	/* カラーパレット */
	--fbo-main: #f4b200;
	--fbo-hover: #E6AD00;
	--fbo-light: #FFFBE6;
	--fbo-border: #FFE680;
	--fbo-dark: #856400;
	--fc-main: #609e20;
	--fc-hover: #62893B;
	--fc-light: #F4F7F0;
	--fc-border: #C8DFC1;
	--fc-dark: #4D6B2E;
	--blue-main: #2e77bf;
	--blue-hover: #23476D;
	--blue-light: #F0F5FA;
	--blue-border: #D2E1F0;
	--blue-dark: #152E47;
	--gray-50: #f9fafb;
	--gray-200: #e5e7eb;
	--gray-400: #9ca3af;
	--gray-500: #6b7280;
	--gray-600: #3b3b3b;
	--gray-800: #1f2937;
	--red-50: #fef2f2;
	--red-100: #fee2e2;
	--red-600: #dc2626;
	/* シャドウ */
	--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	--shadow-2xl: 0 6px 30px -6px rgba(0, 0, 0, 0.25);
}
.door-container button {
	cursor: pointer;
	border: none;
	background: none;
	font-family: inherit;
}

/* =========================================
	レイアウト
========================================= */
.door-container .intro {
	text-align: center;
	margin-bottom: 2rem;
}
.door-container .intro-title {
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--blue-dark);
	margin: 0 0 20px 0;
	position: relative;
	padding-bottom: 20px;
}
.door-container .intro-title:after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 5em;
	height: 1px;
	margin-left: -2.5em;
	background: #eee;
}
.door-container .intro-text {
	color: var(--gray-600);
	line-height: 1.5;
}
.door-container .intro-text br {
	display: none;
}

/* =========================================
	カードコンポーネント
========================================= */
.door-container .cards-wrapper {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	justify-content: center;
	align-items: stretch;
}
.door-container .card {
	flex: 1;
	background: #fff;
	border-radius: 1rem;
	box-shadow: var(--shadow-lg);
	transition: all 0.3s ease;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
}
.door-container .card:hover {
	box-shadow: var(--shadow-2xl);
}
.door-container .card-deco {
	height: 0.75rem;
}
.door-container .card-fbo .card-deco {
	background-color: var(--fbo-main);
}
.door-container .card-fc .card-deco {
	background-color: var(--fc-main);
}
.door-container .card-body {
	padding: 1rem 1rem 2rem 1rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}

/* アイコンと見出し */
.door-container .card-header {
	text-align: center;
}
.door-container .card-icon {
	width: 5rem;
	height: 5rem;
	margin: 0 auto 1rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.25rem;
	transition: transform 0.3s ease;
}
.door-container .card:hover .card-icon {
	transform: scale(1.1);
}
.door-container .card-fbo .card-icon {
	background: var(--fbo-light);
	color: var(--fbo-main);
}
.door-container .card-fc .card-icon {
	background: var(--fc-light);
	color: var(--fc-main);
}
.door-container .card-title-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
}
.door-container .card-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--blue-dark);
	line-height: 1.25;
	letter-spacing: -0.03rem;
}
.door-container .card-big-badge {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.5rem;
	border-radius: 1rem;
}
.door-container .fbo-badge {
	background-color: var(--fbo-border);
	color: var(--fbo-dark);
}
.door-container .fc-badge {
	background-color: var(--fc-border);
	color: var(--fc-dark);
}
.door-container .badge-main {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 2.5rem;
	font-weight: 900;
	line-height: 1;
	margin-bottom: 0.25rem;
	letter-spacing: -0.05em;
}
.door-container .badge-sub {
	font-size: 0.875rem;
	font-weight: 700;
}
.door-container .highlight-note {
	font-size: 0.625rem; /* スマホ用約10px */
	text-align: right;
	margin-top: 0.5rem;
	font-weight: 500;
}
.door-container .card-fbo .highlight-note {
	color: var(--fbo-dark);
}
.door-container .card-fc .highlight-note {
	color: var(--fc-dark);
}
.door-container .fc-shadow {
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

/* 割引率ハイライト */
.door-container .card-highlight {
	border: 2px solid;
	border-radius: 0.75rem;
	padding: 1rem;
	text-align: center;
	margin-bottom: 1.5rem;
	transition: transform 0.3s ease;
}
.door-container .card:hover .card-highlight {
	transform: scale(1.05);
}
.door-container .card-fbo .card-highlight {
	background: var(--fbo-light);
	border-color: var(--fbo-border);
}
.door-container .card-fc .card-highlight {
	background: var(--fc-light);
	border-color: var(--fc-border);
}
.door-container .highlight-label {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.25rem;
}
.door-container .card-fbo .highlight-label {
	color: var(--fbo-dark);
}
.door-container .card-fc .highlight-label {
	color: var(--fc-dark);
}
.door-container .highlight-number {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 0.25rem;
}
.door-container .hl-prefix {
	font-size: 1.125rem;
	font-weight: 700;
}
.door-container .hl-num {
	font-size: 3rem;
	font-weight: 900;
	letter-spacing: 0.025em;
	line-height: 1;
}
.door-container .hl-suffix {
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: 0.05em;
}
.door-container .card-fbo .hl-prefix {
	color: var(--fbo-dark);
}
.door-container .card-fbo .hl-num,
.door-container .card-fbo .hl-suffix {
	color: var(--fbo-main);
	font-family: 'Noto Sans JP', sans-serif;
}
.door-container .card-fc .hl-prefix {
	color: var(--fc-dark);
}
.door-container .card-fc .hl-num,
.door-container .card-fc .hl-suffix {
	color: var(--fc-main);
	font-family: 'Noto Sans JP', sans-serif;
}

/* リスト */
.door-container .card-list {
	color: var(--blue-dark);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.door-container .card-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	font-size: 0.875rem;
}
.door-container .card-list li i {
	margin-top: 0.25rem;
	font-size: 0.875rem;
}
.door-container .card-fbo .card-list li i {
	color: var(--fbo-main);
}
.door-container .card-fc .card-list li i {
	color: var(--fc-main);
}
.door-container .card-list li strong {
	font-weight: 700;
	font-size: 1rem;
}

/* 下部エリア */
.door-container .card-footer {
	margin-top: auto;
	padding-top: 1.5rem;
}
.door-container .alert-box {
	display: block;
	align-items: flex-start;
	gap: 0.75rem;
	background: var(--red-50);
	border: 1px solid var(--red-100);
	color: var(--red-600);
	padding: 0.75rem;
	border-radius: 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	margin-bottom: 2rem;
	letter-spacing: -0.01em;
}
.door-container .alert-box i {
	margin-top: 0.15rem;
}
.door-container .footer-link-wrap {
	text-align: center;
	margin-bottom: 1.25rem;
}
.door-container .text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.9rem;
	color: var(--blue-main);
	transition: color 0.2s;
}
.door-container .text-link:hover {
	color: var(--blue-hover);
	text-decoration: underline;
}
.door-container .external-icon {
	font-size: 0.75rem;
	opacity: 0.7;
	margin-left: 0.2rem;
	top: -2px;
	position: relative;
}
.door-container .btn {
	display: flex;
	width: 100%;
	padding: 1rem;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	border-radius: 40px;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	box-shadow: var(--shadow-sm);
	transition: all 0.3s ease;
	letter-spacing: 0.02em;
}
.door-container .btn:hover {
	box-shadow: var(--shadow-lg);
	text-decoration: none;
}
.door-container .btn-fbo {
	background: var(--fbo-main);
}
.door-container .btn-fbo:hover {
	background: var(--fbo-hover);
}
.door-container .btn-fc {
	background: var(--fc-main);
}
.door-container .btn-fc:hover {
	background: var(--fc-hover);
}
.door-container .btn-outline {
	background: transparent;
	border: 2px solid var(--gray-200);
	color: var(--gray-600);
}
.door-container .btn-outline:hover {
	background: var(--gray-50);
	color: var(--gray-800);
}

/* =========================================
	補足リンク
========================================= */
.door-container .bottom-links {
	padding-top: 2rem;
}
.door-container .bottom-links ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}
.door-container .bottom-links .text-link {
	font-size: 1rem;
}

/* =========================================
	モーダル
========================================= */
.door-container .modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 50;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
	padding: 1rem;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.door-container .modal.active {
	display: flex;
	opacity: 1;
}
.door-container .modal-content {
	background: #fff;
	border-radius: 1rem;
	box-shadow: var(--shadow-2xl);
	width: 100%;
	max-width: 28rem;
	position: relative;
	transform: scale(0.95);
	transition: transform 0.3s ease;
	overflow: hidden;
	line-height: 1.5;
}
.door-container .modal-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2rem;
	height: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: var(--gray-400);
	font-size: 1.25rem;
	transition: all 0.2s;
	z-index: 10;
}
.door-container .modal-close:hover {
	color: var(--gray-600);
	background: var(--gray-50);
}
.door-container .modal-header {
	padding: 1.5rem 1rem 1rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	border-bottom: 1px solid;
}
.door-container .modal-header-icon {
	width: 4rem;
	height: 4rem;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.875rem;
	margin-bottom: 0.5rem;
	box-shadow: var(--shadow-sm);
	border: 1px solid;
}
.door-container .modal-header h3 {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--blue-dark);
	text-align: center;
	line-height: 1.25;
	margin: 0;
}
.door-container .modal-fbo .modal-header {
	background: var(--fbo-light);
	border-color: var(--fbo-border);
}
.door-container .modal-fbo .modal-header-icon {
	color: var(--fbo-main);
	border-color: var(--fbo-border);
}
.door-container .modal-fc .modal-header {
	background: var(--fc-light);
	border-color: var(--fc-border);
}
.door-container .modal-fc .modal-header-icon {
	color: var(--fc-main);
	border-color: var(--fc-border);
}
.door-container .modal-body {
	padding: 1rem;
}
.door-container .modal-lead {
	color: var(--blue-dark);
	font-weight: 500;
	text-align: center;
	margin-bottom: 1rem;
}
.door-container .modal-lead strong {
	font-weight: 700;
	border-bottom: 2px solid;
}
.door-container .modal-fbo .modal-lead strong {
	border-color: var(--fbo-border);
}
.door-container .modal-fc .modal-lead strong {
	border-color: var(--fc-border);
}
.door-container .modal-lead .block-pc {
	display: none;
}
.door-container .info-box {
	border-radius: 0.5rem;
	padding: 1rem;
	margin-bottom: 1rem;
	border: 1px solid;
}
.door-container .info-box-blue {
	background: var(--blue-light);
	border-color: var(--blue-border);
}
.door-container .info-box-title {
	font-size: 0.875rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.25rem;
}
.door-container .info-box-blue .info-box-title {
	color: var(--blue-dark);
}
.door-container .info-box-text {
	font-size: 0.875rem;
	line-height: 1.4;
}
.door-container .info-box-blue .info-box-text {
	color: var(--blue-main);
}
.door-container .radio-box {
	background: var(--gray-50);
	border: 1px solid var(--gray-200);
	border-radius: 0.5rem;
	padding: 1rem;
	margin-bottom: 1.5rem;
}
.door-container .radio-box-q {
	font-weight: 700;
	color: var(--blue-dark);
	margin-bottom: 0.25rem;
}
.door-container .radio-box-sub {
	font-size: 0.875rem;
	color: var(--gray-600);
	margin-bottom: 1rem;
}
.door-container .radio-options {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
}
.door-container .radio-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	color: var(--blue-dark);
	font-weight: 700;
}
.door-container .radio-input {
	width: 1.25rem;
	height: 1.25rem;
	accent-color: var(--fbo-main);
}
.door-container .modal-actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-height: 110px;
}
.door-container .action-btn {
	display: none;
	padding: 0.875rem 1rem;
	font-size: 1rem;
}
.door-container .action-btn.show {
	display: flex;
}
.door-container .modal-actions .btn-outline {
	margin-top: auto;
	padding: 0.875rem 1rem;
	font-size: 1rem;
}

/* =========================================
	PC・タブレット用メディアクエリ
========================================= */
@media (min-width: 768px) {
	/* レイアウト */
	.door-container .intro-title {
		font-size: 1.875rem;
		padding-bottom: 35px;
	}
	.door-container .intro-text br {
		display: block;
	}
	/* カードコンポーネント */
	.door-container .cards-wrapper {
		flex-direction: row;
		gap: 2rem;
	}
	.door-container .card-header {
		margin-bottom: 1.5rem;
	}
	.door-container .card-body {
		padding: 2rem;
	}
	.door-container .card-icon {
		margin: 0 auto 1rem;
	}
	
	.door-container .card-title-wrap {
		height: 3.5rem;
	}
	.door-container .card-title {
		font-size: 1.5rem;
	}
	.door-container .hl-num {
		font-size: 3.75rem;
	}
	.door-container .card-list li {
		font-size: 1rem;
	}
	.door-container .badge-main {
		font-size: 3.75rem;
	}
	.door-container .card-big-badge {
		margin-bottom: 1.2rem;
	}
	.door-container .highlight-note {
		font-size: 0.75rem;
	}
	/* モーダル */
	.door-container .modal-body {
		padding: 2rem;
	}
	.door-container .modal-lead .block-pc {
		display: block;
		margin-top: 0.5rem;
	}
	.door-container .text-link {
		font-size: 1rem;
	}
	.door-container .modal.active .modal-content {
		transform: scale(1);
	}
}
/* =========================================
	320px以下の端末
========================================= */
@media (max-width: 320px) {
	.door-container .text-link {
		display: inline;
	}
	.door-container .modal.active .modal-content {
		transform: scale(0.7);
	}
}