@charset 'utf-8';

* {
	box-sizing: border-box;
}
html {
	display: none;
	font-size: 17px;
	line-height: 1.3rem;
	-webkit-text-size-adjust: 100%;
}
.smaller {
	font-size: 0.8rem !important;
}
ruby {
	white-space: nowrap;
}

rt {
	font-size: 0.7rem;
}

ruby[data-ruby] {
	position: relative;
}

ruby[data-ruby] > rt,
ruby[data-ruby] > rp {
	display: none;
}

ruby[data-ruby]::before {
	content: attr(data-ruby);
	position: absolute;
	left: -2em;
	right: -2em;
	bottom: 100%;
	margin-bottom: -0.4em;
	text-align: center;
	font-size: .6em;
	line-height: 1;
	text-indent: 0;
}
.vertical-rl {
	writing-mode: vertical-rl;
}
.vertical-rl ruby[data-ruby]::before {
	left: auto;
	right: -0.5em;

	top: 0;
	bottom: 0;

	transform: none;

	writing-mode: vertical-rl;
	text-align: center;

	font-size: .6em;
	line-height: 1;
	white-space: nowrap;
}
table.tbl > thead > tr > th:has(> .vertical-rl ruby) {
	padding-right: 0.5rem;
}
/* WebKit系ブラウザ向けのルビ位置補正 */
@supports (background: -webkit-named-image(i)) {
	/* 横書き */
	ruby[data-ruby]::before {
		margin-bottom: -0.1em;
	}

	/* 縦書き */
	.vertical-rl ruby[data-ruby]::before {
		right: -0.8em;
	}
}

.vertical-lr {
	writing-mode: vertical-lr;
}

/* -------------------------------------------------------
   2026-10-19 ルビの設定（全OS・全ブラウザ共通完全固定）
------------------------------------------------------- */
.ruby {
	font-size: 1em !important;
	text-indent: 0;
	position: relative;
	display: inline-block;
	line-height: 1; /* 親文字の行高 */
	white-space: nowrap;
}

/* ルビテキスト（.rt）を絶対配置して高さ・幅計算から除外 */
.ruby > .rt {
	position: absolute;
	font-size: 0.55em;
	line-height: 1;
	white-space: nowrap;
	pointer-events: none;
	margin: 0;
	padding: 0;
}

/* 【横書き】親文字の真上に配置（水平中央揃え） */
.ruby > .rt {
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-bottom: 0em; /* お好みに応じて微調整可能 */
}

/* 【縦書き】親文字の右側に配置（垂直中央揃え） */
.vertical-rl .ruby > .rt {
	bottom: auto;
	top: 50%;
	left: 100%;
	transform: translateY(-50%);
	margin-left: -0.2em; /* お好みに応じて微調整可能 */
	writing-mode: vertical-rl;
}

table.tbl > thead > tr > th:has(> .vertical-rl .ruby) {
	padding-right: 0.5rem;
}
/* WebKitでの rowspan セル内の縦書き幅落ち対策 */
td[rowspan] .vertical-rl,
th[rowspan] .vertical-rl {
	width: -webkit-max-content;
	width: max-content;
}

/* 【縦書き】親文字の右側に配置（垂直中央揃え） */
.vertical-lr .ruby {
	margin-right: 0.45rem;
}
.vertical-lr .ruby > .rt {
	bottom: auto;
	top: 50%;
	left: 100%;
	transform: translateY(-50%);
	margin-left: 0em; /* お好みに応じて微調整可能 */
	writing-mode: vertical-lr;
}

table.tbl > thead > tr > th:has(> .vertical-lr .ruby) {
	padding-right: 0.5rem;
}
/* WebKitでの rowspan セル内の縦書き幅落ち対策 */
td[rowspan] .vertical-lr,
th[rowspan] .vertical-lr {
	width: -webkit-max-content;
	width: max-content;
}

/* --------------------------------------------------
   Firefox（Gecko）限定：縦書き要素の物理水平中央寄せ
   ※ Chrome / Safari / Edge には一切影響しません
-------------------------------------------------- */
@supports (-moz-appearance: none) {
	/* 1. 外側セルの位置基準を明確化（垂直揃えは維持） */
	table.tbl th:has(.vertical-rl),
	table.tbl td:has(.vertical-rl) {
		position: relative !important;
	}

	/* 2. スペーサー自体を物理水平中央へ配置 */
	.vertical-width-spacer {
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* 3. 縦書き要素自体を物理水平中央へ配置 */
	.vertical-rl {
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		display: block !important;
		width: max-content !important;
	}

	/* 1. 外側セルの位置基準を明確化（垂直揃えは維持） */
	table.tbl th:has(.vertical-lr),
	table.tbl td:has(.vertical-lr) {
		position: relative !important;
	}

	/* 2. スペーサー自体を物理水平中央へ配置 */
	.vertical-width-spacer {
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* 3. 縦書き要素自体を物理水平中央へ配置 */
	.vertical-lr {
		position: relative !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		display: block !important;
		width: max-content !important;
	}

}
/* ---------------------------------------------------- */

td.diagonal {
	background-image: linear-gradient(to left top, transparent calc(50% - 0.4px), #666 50%, #666 calc(50% + 0.4px), transparent calc(50% + 1px)) !important;
}

.font_size_sw {
	float: right;
	font-size: 16px;
	margin-right: 30px;
	padding: 4px;
	width: 260px;
	border-radius: 16px;
	border: 4px #ccc double;
}
.font_size_sw span {
	cursor: pointer;
	display: inline-block;
	line-height: 1em;
	margin: 1px;
	padding: 6px;
	background: linen;
}
.font_size_sw span.sel {
	background: #79c397;
}
.font_size_sw span:hover {
	background: #cedd4d;
}
.font_size_sw span.set_size_s {
	font-size: 13px;
}
.font_size_sw span.set_size_m {
	font-size: 17px;
}
.font_size_sw span.set_size_l {
	font-size: 21px;
}

#Q_dsp {
	color: #33f;
}
.clear {
	clear: both;
}
.border0 {
	border: 0;
}
.description {
	border:1px pink solid;
	background-color:#fee;
	padding:6px;
	margin:10px;
	font-weight:bold;
}
.qcond .description {
	margin: 10px 0;
	border: 2px #666 dashed;
/*	background-color: #ffcabf; */
	background-color: #bfe4ff;
	color: #000;
}
.sample,
.example {
/*	display: inline-block; */
	border: 1px #666 solid;
	padding: 4px;
	margin: 4px 0;
	font-weight:normal;
}
.tbl_ffc {
	border: 1px #666 solid;
	padding: 3px;
	background-color:#ffc;
}
.tbl_fcc {
	border: 1px #666 solid;
	padding: 3px;
	background-color:#fcc;
}
table.tbl {
	padding: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
}
table.tbl > thead > tr > th,
table.tbl > tbody > tr > th,
table.tbl > thead > tr > td,
table.tbl > tbody > tr > td {
	border: 1px #666 solid;
	padding: 3px;
}
table.tbl > thead > tr > th,
table.tbl > tbody > tr > th {
	background-color: #cede4a;
	font-weight: normal;
}

table.tbl > thead:has(> tr:nth-child(2)) tr:first-child th:not([rowspan]) {
	border-bottom: 1px dotted;
}
table.tbl > thead tr:nth-child(2) th {
	border-top: 1px dotted;
}
table.tbl > thead tr:nth-child(2) th[colspan] {
	border-bottom: 1px dotted;
}
table.tbl > thead tr:nth-child(3) th {
	border-top: 1px dotted;
}


table.branch_sa,
table.branch_ma {
	font-size: 1rem;
/*	line-height: 1.3rem; */
	line-height: 1.5rem;
}
table.branch_sa td,
table.branch_ma td {
/*	padding: 2px; */
	vertical-align: top;
}
table.tbl0 {
/*	width: 99%; */
	border-collapse: collapse;
	border: 6px #fff solid;
}
table.tbl0 th {
	padding: 4px;
	border: 6px #fff solid;
	background-color: #bbe3f9;
	font-weight: normal;
	text-align: left;
/*	width: 40%; */
}
table.tbl0 td {
	padding: 4px;
	border: 6px #fff solid;
/*	width: 60%; */
}

.bg_ff0 {
	background-color:#ff0;
}
.bg_ffc {
	background-color:#ffc;
}
.bg_fcc {
	background-color:#fcc;
}
.bg_fff {
	background-color:#fff;
}
.bg_wheat {
	background-color:wheat;
}
tr.even td {
	background-color: #ffc;
}
.direction {
	border: 1px brown dashed;
	margin: 4px 0;
	padding: 6px;
	font-size: 0.8rem;
/*	font-weight: bold; */
	color: brown;
}
.b {
	font-weight: bold !important;
}
.caution {
	color: #006ebc;
	font-size: 0.9rem;
}
.caution .bq {
	color: green;
	border: 1px green dashed;
	margin: 5px 15px;
	padding: 5px;
}
span.code {
/*	display: none; */
	display: inline-block;
	text-align: right;
	width: 1.6rem;
	margin-right: 4px;
}
.privacy_mark {
	font-size: 0.7rem;
	color: #666;
	line-height: 1.1rem;
}
#contents,th,td {
	line-height: 1.6rem;
}
#contents #main .qsec {
	text-align: left;
	font-size: 1.2rem;
	padding: 0.8rem 0.2rem;
	border-radius: 0;
}
.vertical-rl {
	writing-mode: vertical-rl;
	margin-left: auto;
	margin-right: auto;
}
.vertical-lr {
	writing-mode: vertical-lr;
	margin-left: auto;
	margin-right: auto;
}
.tcy {
	text-combine-upright: all;
	-webkit-text-combine: horizontal;
}
.double_r {
	border-right: 3px #000 double !important;
}

@media print, screen and (min-width: 1124px) {

	h1.enqname {
		position:relative;
	}
	h1.enqname > div.stat_logo {
		position: absolute;
		top: -1.5rem;
		left: 0;
		width: 6rem;
		font-size: 0.6375rem;
		font-weight: normal;
		line-height: 1.2;
	}
	h1.enqname > div.stat_logo > img {
		width: 100%;
		display: block;
		margin-bottom: 0.25rem;
	}

	.sp,
	.sp_block,
	.sp_iblock,
	.sp_tbl,
	.sp_item {
		display: none !important;
	}
	.pc {
		display: inline !important;
	}
	.pc_block {
		display: block !important;
	}
	.pc_iblock {
		display: inline-block !important;
	}
	.pc_tbl {
		display: "" !important;
	}
	.pc_table_cell {
		display: table-cell !important;
	}
	.c_pc,
	.pc_c {
		text-align: center;
	}

	h1 {
		font-size: 1.75rem;
		text-align: center;
		margin: 30px 0;
	}
	ruby[data-ruby]::before {
		left: -2em;
		top: -1.6em;
		right: -2em;
/*		font-size: .55em; */
	}

	#contents #header {
		margin: 40px 0 50px;
	}
	#contents #header #main_title {
		font-size: 1.5rem;
	}
	#contents #header #sub_title {
		display: none;
		font-size: 1.3rem;
	}
	#contents #header #errmsg {
/*		width: 800px; */
	}
	#contents #main .qtype {
		white-space: nowrap;
	}
	.btn {
		-webkit-appearance: none;
		display: inline-block;
		margin: 5px;
		cursor: pointer;
		border: 3px #999 solid;
		border-radius: 0.85rem;
		padding: 4px 20px;
		background-color: #f0f0f0;
		min-width: 120px;
	}
	.btn:hover {
		border: 3px #666 solid;
		background-color: #ffd;
	}
	/* 傍点 */
	.bouten {
		background: top left / 1em .5em repeat-x radial-gradient(circle, black .1em, rgba(0,0,0,0) .15em);
		padding-top: .2em;
	}
	#contents #main .btn:active {
		border: 3px #f33 solid;
	}
	#contents #main .btn_finish {
		border-color: #eb6012 !important;
		background-color: #fff9b0;
		color: #eb6012;
		font-weight: bold;
		margin: 30px 0 0;
	}
	#contents #main .btn_finish:hover,
	#contents #main .btn_finish:active {
		background-color: #fff000;
	}
	#contents #main .btn.btn_chg_stat {
		-webkit-appearance: none;
		display: inline-block;
		margin: 5px;
		cursor: pointer;
		border: 3px #bf9000 solid;
		border-radius: 10px;
		padding: 4px 20px;
		background-color: #ffd966;
		min-width: 120px;
	}
	#contents #main .btn.btn_chg_stat:hover {
		border: 3px gold solid;
		background-color: #ffd;
	}
	#contents #main .btn.btn_chg_stat:active {
		border: 3px gold solid;
		background-color: #ffd;
	}

	#contents #main .progress_bar_area {
		margin: 5px 0 25px 820px;
		width: calc(210px + 4.5rem);
		height: 14px;
	}
	#contents #main .progress_bar {
		float: left;
		width: 200px;
		height: 14px;
	}
	#contents #main .progress_bar_dsp {
		float: right;
		text-align: right;
		color: #006ebc;
		width: 4.5rem;
		height: 14px;
		line-height: 1.1em;
	/*	padding-top: 3px; */
	}

	label {
		display: inline-block;
		padding: 0.25rem 0.6rem;
	}
	input[type=text].otext {
		width: 600px;
	}
	input[type=text].otext2 {
		width: 500px;
	}

	#navi {
		text-align: center;
	}
/*
	table.tbl:not(.no_hilight) > tbody > tr:nth-child(2n-1) {
		background: #dfe1e2;
	}
*/
	#privacy {
		 width: 100px;
		 float: right;
	}

	.th_line1 {
		float: right;
		margin-left: 0em;
		margin-right: 0.2em;
		width: 1rem;
	}
	.th_line2 {
		float: left;
		margin-left: 0.2em;
		margin-right: 0em;
		width: 1em;
	}
	.th_line {
		float: left;
		width: 1em;
	}

	.modal_dialog {
		display: none;
		width: 700px;
		color: #03ae7a;
		font-weight: bold;
		margin:1.5em auto 0;
		padding:10px 20px;
		border: 8px #03ae7a double;
		background-color: #fff9b0;
		z-index:2;
		position:fixed;
	}

	.nowrap_pc {
		white-space: nowrap;
	}
	#tbl_recommend {
		margin-left: 1rem;
		margin-right: 1rem;
	}
	#tbl_recommend .list {
		white-space: nowrap;
		margin-right: 1rem;
	}

}

@media screen and (max-width: 1123px) {

	h1.enqname {
		position:relative;
		text-align: left;
		padding-left: 7rem;
		height: 6rem;
	}
	h1.enqname > div.stat_logo {
		position: absolute;
		top: 0;
		left: 0;
		width: 6rem;
		font-size: 0.6375rem;
		font-weight: normal;
		line-height: 1.2;
		margin-right: 1rem;
	}
	h1.enqname > div.stat_logo > img {
		width: 100%;
		display: block;
		margin-bottom: 0.25rem;
	}

	input[type=text],
	input[type=password],
	input[type=number],
	input[type=email],
	input[type=tel],
	select,
	textarea {
		font-size: 1.15rem;
	}
	.sp {
		display: inline !important;
	}
	.sp_iblock {
		display: inline-block !important;
	}
	.sp_block {
		display: block !important;
	}
	.sp_tbl {
		display: "" !important;
	}
	.sp_item {
		display: inline-block !important;
		border-radius: 4px;
		margin-right: 2px;
		padding: 2px 4px;
		font-size: 0.85rem;
		line-height: 1.3rem;
		background-color: #f0f0f0;
		text-align: center;
/*		border: 1px #999 solid; */
	}
	.pc,
	.pc_block,
	.pc_iblock,
	.pc_tbl,
	.pc_table_cell {
		display: none;
	}

	.form {
		max-width: 99vw;
	}

	.font_size_sw {
		display: none;
	}
	/* 傍点 */
	.bouten {
		background: top left / 1em .5em repeat-x radial-gradient(circle, black .1em, rgba(0,0,0,0) .15em);
		padding-top: .3em;
	}
	#question-Q22 .qtitle .qnum,
	#question-Q22 .qtitle .qstr,
	#question-Q23-1 .qtitle .qnum,
	#question-Q23-1 .qtitle .qstr {
		line-height: 1.6rem !important;
	}


	table.tbl {
		max-width: calc(100% - 2px);
	}

	table.tbl_sp {
		width: 98%;
		border: 0 !important;
	}
	table.tbl_sp > thead {
		display: none;
	}
	table.tbl_sp > tbody > tr > th,
	table.tbl_sp > tbody > tr > td {
		display: block;
		border: 0 !important;
		padding-top: 0;
		padding-bottom: 0;
	}
/*
	table.tbl:not(.tbl_sp):not(.no_hilight) > tbody > tr:nth-child(2n-1) {
		background: #dfe1e2;
	}
*/
	h1 {
		font-size: 1.4rem;
		text-align: center;
		margin: 30px 4px 10px;
	}
	h2,
	h3 {
		margin-left: 4px;
		margin-right: 4px;
	}

	#contents {
		margin: 2px;
	}
	#contents #header {
		margin: 10px 0;
	}
	#contents #header #main_title {
	}
	#contents #header #sub_title {
		display: none;
		font-size: 1.1rem;
	}
	#contents #header #guide {
		font-size: 0.7rem;
	}
	#contents #errmsg ul {
		padding-left: 20px;
	}

	#contents #main {
		margin: 20px 0 0;
	}

	.btn {
		-webkit-appearance: none;
		font-size: 1rem;
		display: inline-block;
		margin: 3px;
		cursor: pointer;
		border: 3px #999 solid;
		border-radius: 0.85rem;
		padding: 4px 10px;
		background-color: #f0f0f0;
	}
	#contents #main .btn_finish {
		border-color: #eb6012 !important;
		background-color: #fff9b0;
		color: #eb6012;
		font-weight: bold;
	}
	#contents #main .btn_finish:hover,
	#contents #main .btn_finish:active {
		background-color: #fff000;
	}
	#contents #main .progress_bar_area {
		margin: 5px 0 15px;
		margin-left: calc(100% - 160px - 4.5rem);
		width: calc(160px + 4.5rem);
		height: 14px;
	}
	#contents #main .progress_bar {
		float: left;
		width: 150px;
		height: 14px;
	}
	#contents #main .progress_bar_dsp {
		float: right;
		text-align: right;
		color: cornflowerblue;
		width: 4.5rem;
		height: 14px;
		line-height: 1.1em;
	/*	padding-top: 3px; */
	}

	select {
		max-width: calc(100% - 5px);
	}
	input[type=text].otext,
	textarea.otext,
	textarea.otext2 {
		width: calc(100% - 2em);
	}
	input[type=text].otext2 {
		margin-left: 1em;
		width: calc(100% - 3em);
	}
	.btn {
		color: #000;
	}
	label {
		display: inline-block;
		padding: 2px;
	}
	table.tbl > thead > tr > th {
		min-width: 1.7rem;
		font-size: 0.9rem;
		line-height: 1em;
	}
	table.tbl > tbody > tr > td:last-child {
		margin-bottom: 10px;
	}
	#privacy {
		 display: block;
		 width: 100px;
	}

	.th_lines_w2 {
		min-width: 2.2em !important;
	}
	.th_line1 {
		float: right;
		font-size: 0.9rem;
		width: 1em;
		line-height: 1em;
	}
	.th_line2 {
		margin: 0em;
		float: left;
		font-size: 0.9rem;
		width: 1em;
		line-height: 1em;
	}
	.th_line {
		margin: 0em;
		float: left;
		font-size: 0.85rem;
		width: 1em;
		line-height: 1em;
	}

	#contents #main table.tbl tbody tr td {
		background: transparent;
	}

	/* .tbl_spを後付けしたときのcss */
	.tbl:not(.tbl_sp) .sp,
	.tbl_sp td.arrow_right {
		display: none;
	}

	.tbl_sp td > label {
		display: flex;
		align-items: flex-start;
		text-align: left;
		width: 100% !important;
	}
	.tbl_sp tbody tr td:first-child {
		background: #dfe1e2 !important;;
	}
	.tbl_sp td > label > input[type="radio"],
	.tbl_sp td > label > input[type="checkbox"] {
		flex-shrink: 0;
	}
	.tbl_sp td > label > span.sp {
		flex: 1;
		min-width: 0;
		margin-top: 0.3em;
		text-indent: 0;
		padding-left: 1.5em;
	}
	.tbl_sp td > label > span.sp > span.code {
		width: 2.2em;
		margin-right: 0.4em;
		text-align: right;
		display: inline-block;
		margin-left: -1.5em;
	}
	input[type=text].otext {
		margin-left: 2em;
		width: calc(100vw - 5em);
	}

}
#footer {
	display: none;
}
#contents #main .question {
	margin-bottom: 2rem;
}
#contents #main .qsec2 {
	text-align: left;
	font-size: 1rem;
}

#contents #main .qtitle {
	margin: 4px 0;
	padding: 8px;
	border: 0;
	background: #fff9b0;
}
.qtitle_flex {
	display: flex;
	flex-direction: row;
	margin: 4px 0;
	padding: 8px;
	border: 0;
	background: #fff9b0;
	overflow: hidden;
}
.qtitle_flex .qnum_flex {
	flex: 0 1 auto;
	white-space: nowrap;
	margin-right: 1rem;
}
.qtitle_flex .qstr_flex {
	flex: 1 1 auto;
}
label > span.code,
label > span.sp > span.code {
	font-weight: bold;
	display: inline-block;
	margin-right: 1rem;
}

table.tbl td.arrow_right {
	border-left-style: dotted;
}

table.tbl td:has(+ td.arrow_right) {
	border-right-style: dotted;
}

table.tbl:has(th.arrow_down) thead tr:not(:last-child) > th:not([rowspan]) {
	border-bottom-style: dotted;
}

table.tbl:has(th.arrow_down) thead tr:not(:first-child) > th:not([rowspan]) {
	border-top-style: dotted;
}
#contents #main #question-Q20-1 .qtitle,
#contents #main #question-Q20-2 .qtitle {
	background: transparent;
}

img.btn_radio,
img.btn_checkbox {
	margin-right: 0;
}
.asterisk {
	font-size: 0.7rem;
}
.qcond > span {
	display: inline-block;
	background: #dfe1e2;
	border-radius: 0.3rem;
	color: #000;
	padding: 0 0.5rem;
	margin-right: 0.5rem;
}
.indent_alpha {
	text-indent: -2em;
	margin-left: 2em;
}
#contents #main.no_progress {
	margin-top: 3.5rem;
}
#error-box {
	background-color: #fff9b0;
	margin: 20px auto 20px;
	border: 6px #eb6012 double;
	padding: 10px;
	color: #eb6012;
	text-align: left;
	font-weight: bold;
}
#error-box ul li {
	margin-left: 0.7rem;
}
input[type=text][readonly] {
	color: blue;
	border-color: transparent;
	background: transparent;
}
