@charset "utf-8";
@import "reset.css";
@import "base.css";

body#refo {
	color: #1e1e1e;
	font-family: "メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3",Hiragino Kaku Gothic Pro,"ＭＳ Ｐゴシック",sans-serif;
	font-size: 15px;
	line-height: 1.65;
}
#refo #header,#refo #bodyArea,
#refo #bodyAreaBg,#refo #mainArea,
#refo #footer .layout {
	width: 964px;
}

#refo a:not(.linkBtn) { text-decoration: underline; }
#refo a:hover {	text-decoration: none; }

.fontS18 {
	font-size: 18px;
}
.attentionText {
	font-size: 12px;
}

.w100 {
	width: 100%;
}

.mt10 {
	margin-top: 10px;
}
/* ENG_WEB_MNT-2796【REFO】2025.06.30 ここから修正 */
.mb10 {
	margin-bottom: 10px;
}
/* ENG_WEB_MNT-2796【REFO】2025.06.30 ここまで修正 */

/* header
================================================== */
#refo #header .logo {
	margin: 28px 0;
}
#refo #header .logo img {
	width: 341px;
	height: 22px;
}

/* footer
================================================== */
#refo #footerBox {
	background: none;
	margin-top: 53px;
}
#refo #footer {
	border-top: 1px solid #00adcd;
	font-size: 12px;
	text-align: left;
	padding: 15px 0 20px;
}
#refo #footer .logo {
	margin-bottom: 10px;
}
.backToTopNavigation {
	width: 964px;
	text-align: right;
	margin: auto;
}

/* mainLayout
================================================== */
/* title - - - - - - - - - - */
.titleBox h1 {
  background: url(/shared/img/bg_h2.gif) left top no-repeat;
  border-top: 1px solid #00adcd;
  border-bottom: 1px solid #e4e1e1;	padding: 23px 0 19px;
  font-weight: bold;
  font-size: 26px;
  line-height: 1.2;
  margin: 0 0 30px;
}
/* form - - - - - - - - - - */
#refo #mainArea .formFlow {
	background: #f4f4f4;
	border-radius: 5px;
	padding: 15px 0 20px;
	margin-bottom: 30px;
}
#refo #mainArea .formFlow p {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 40px;
	background: #fff;
	border-radius: 50px;
	font-weight: bold;
	font-size: 22px;
	margin: 0 40px;
}
#refo #mainArea .formFlow ul {
	display: flex;
}
#refo #mainArea .formBlock {
	margin-bottom: 50px;
}
#mainArea .generalFormTable {
	width: 964px;
}
#mainArea .generalFormTable table {
	table-layout: fixed;
	width: 100%;
	border-top: 1px solid #e3e2e0;
}
#mainArea .generalFormTable table tr {
	border-bottom: 1px solid #e3e2e0;
}
#mainArea .generalFormTable table tr th,
#mainArea .generalFormTable table tr td {
	padding: 20px 25px;
	box-sizing: border-box;
}
#mainArea .generalFormTable table tr th {
	width: 300px;
	background: #e8fbff;
	font-weight: bold;
	font-size: 18px;
	line-height: 1.5;
}
#mainArea .generalFormTable table tr th .mustType1 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}
#mainArea .generalFormTable table tr th .mustType1 .rightIcon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 20px;
	background: #fff;
	border-radius: 5px;
	font-size: 10px;
	line-height: 1;
}
#mainArea .generalFormTable table tr th .mustType1 .ico_must {
	border: 1px solid #f988a5;
	color: #f87093;
}
#mainArea .generalFormTable table tr th .mustType1 .ico_optional {
	border: 1px solid #d5d5d5;
	color: #9f9f9f;
}
#mainArea .generalFormTable table tr td {
	width: calc( 100% - 301px );
	border-left: 1px solid #fff;
}
#mainArea .generalFormTable table tr td ::placeholder {
	color: #d5d5d5;
}
/* columnName */
#mainArea .generalFormTable table tr td .columnName {
	display: flex;
/* ENG_WEB_MNT-2849【REFO】2025.07.24 ここから修正 */
	align-items: flex-end;
}
#mainArea .generalFormTable table tr td .columnName > div {
	width: 240px;
}
/* ENG_WEB_MNT-2849【REFO】2025.07.24 ここまで修正 */
#mainArea .generalFormTable table tr td .columnName > div + div {
	margin-left: 20px;
}
#mainArea .generalFormTable table tr td .columnName .columnNameInner {
	display: flex;
	justify-content: end;
	align-items: center;
	width: 240px;
	position: relative;
}
#mainArea .generalFormTable table tr td .columnName p {
	display: inline-block;
	margin-right: 10px;
}
#mainArea .generalFormTable table tr td .columnName input {
	width: 200px;
}
#mainArea .generalFormTable table tr td .columnName .errorTextBox {
	margin-left: 40px;
}
/* columnGender */
.columnGender {
	display: flex;
	align-items: center;
}
.columnGender label {
  position: relative;
  padding-left: 40px;
	margin-right: 20px;
  cursor: pointer;
}
.columnGender label::before,
.columnGender label::after {
  content: "";
  display: block; 
  border-radius: 50%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.columnGender label::before {
  background-color: #fff;
  border: 1px solid #d0d0d0;
  width: 25px;
  height: 25px;
  left: 0;
}
.columnGender label::after {
  background-color: #00adcd;
  width: 15px;
  height: 15px;
  left: 6px;
  opacity: 0;
}
/* ENG_WEB_MNT-2971 2025.10.24 ここから追加 */
input[type="radio"]#gender1:focus + label::before,
input[type="radio"]#gender2:focus + label::before {
  box-shadow: 0 0 0 2px #000;
}
/* ENG_WEB_MNT-2971 2025.10.24 ここまで追加 */
.columnGender input:checked + label::after {
  opacity: 1;
}
.columnGender .visually-hidden {
	width: 1px;
	height: 1px;
	border: 0;
	white-space: nowrap;
	padding: 0;
	margin: -1px;
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
}
#mainArea .generalFormTable table tr td .columnName p,
#mainArea .generalFormTable table tr td .columnBirth p,
.columnGender label {
	padding-top: 2px;
}
/* columnBirth */
#mainArea .generalFormTable table tr td .columnBirth {
	display: flex;
	align-items: center;
}
#mainArea .generalFormTable table tr td .columnBirth p {
	display: inline-block;
	margin: 0 10px 0;
}
#mainArea .generalFormTable table tr td .columnBirth #year { width: 110px; }
#mainArea .generalFormTable table tr td .columnBirth #month,
#mainArea .generalFormTable table tr td .columnBirth #day { width: 55px; }
/* columnPref */
#mainArea .generalFormTable table tr td .columnPref p {
	display: inline-block;
	margin-right: 10px;
}
#mainArea .generalFormTable table tr td .columnPref + .columnPref {
	margin-top: 10px;
}
#regionDetails {
	display: none;
}
/* requestBox */
#requestText {
	height: 120px;
	border: 1px solid #e3e2e0;
	border-radius: 5px;
	font-size: 18px;
	line-height: 1.35;
	padding: 10px 15px;
/* ENG_WEB_MNT-2796【REFO】2025.06.30 ここから修正 */
	margin-bottom: 10px;
/* ENG_WEB_MNT-2796【REFO】2025.06.30 ここまで修正 */
	box-sizing: border-box;
	resize: none;
}
#remaining {
	font-size: 12px;
	text-align: right;
}
#remaining.warning {
		color: #f87093;
}
/* input */
#mainArea .generalFormTable table tr td input {
	height: 40px;
	border: 1px solid #e3e2e0;
	border-radius: 5px;
	font-size: 18px;
	padding: 0 15px;
	box-sizing: border-box;
}
/* select */
#mainArea .generalFormTable table tr td .columnPref select {
	width: 200px;
	height: 40px;
  background-image: url("/shared/img/common/icon/ico_select.svg");
  background-repeat: no-repeat;
  background-size: contain;
	background-position: right;
	background-color: #fff;
	border: 1px solid #e3e2e0;
	border-radius: 5px;
	font-size: 18px;
	padding: 0 15px;
	appearance: none;
	cursor: pointer;
}
#mainArea .generalFormTable table tr td .columnPref select option {
	color: #1e1e1e;
}
#mainArea .generalFormTable table tr td .columnPref select:invalid,
#mainArea .generalFormTable table tr td .columnPref select option:first-child {
	color: #d5d5d5;
}
#mainArea .generalFormTable table tr td .columnPref.mun select {
	width: 260px;
}
/* checkbox */
.privateBox {
	text-align: center;
	margin-bottom: 20px;
}
.checkText {
	display: inline-block;
}
#mainArea input[type="checkbox"] {
  width: 25px;
  height: 25px;
  background: #fff;
  border: 1px solid #9f9f9f;
	border-radius: 5px;
  box-shadow: 0 0 0 0 transparent;
	vertical-align: -6px;
  appearance: none;
  position: relative;
	cursor: pointer;
}
#mainArea input[type="checkbox"]:checked:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url("/shared/img/common/icon/ico_check.svg");
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}
/* btn */
.linkBtn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 470px;
	height: 80px;
	background-size: 20px;
	background-repeat: no-repeat;
	background-position: 30px;
	border-radius: 10px;
	font-weight: bold;
	font-size: 24px;
	line-height: 1;
	padding-left: 10px;
	margin: auto;
	box-sizing: border-box;
}
.linkBtn:hover {
	text-decoration: none;
}
.linkBtn.bg-orange {
	background-image: url(/shared/img/common/icon/ico_arw_r_white.svg);
	background-color: #ff6704;
	border: none;
	color: #fff;
	cursor: pointer;
}
.linkBtn.bg-orange:hover {
	background-color: rgb(255, 103, 4, .75);
}
.linkBtn.bg-gray {
	background-color: #9f9f9f;
	color: #fff;
}
.linkBtn.line-gray {
	background-image: url(/shared/img/common/icon/ico_arw_r_blue.svg);
	border: 1px solid #d0d0d0;
	color: #1e1e1e;
}
.linkBtn.line-gray:hover {
	border: 1px solid #00adcd;
}
.linkBtn.line-gray.back {
	width: 100px;
	height: 40px;
	background-image: url(/shared/img/common/icon/ico_arw_l_blue.svg);
	background-size: 14px;
	background-position: 10px;
	font-size: 15px;
}
.linkBtn.line-gray.backTop {
	height: 60px;
	font-size: 20px;
}
.linkBtn.line-gray.contactWeb {
	width: 270px;
	height: 40px;
	background-size: 14px;
	background-position: 10px;
	font-size: 15px;
	font-weight: normal;
	padding-left: 15px;
}
/* error */
#refo #mainArea .errorBg {
	background-color: #fef3f6;
}
#refo #mainArea p + .errorTextBox {
	margin-top: 5px;
}
#refo #mainArea .errorTextBox {
	display: flex;
	align-items: center;
	margin-bottom: 10px;
}
#refo #mainArea .errorTextBox .errorIcon {
/* ENG_WEB_MNT-2849【REFO】2025.07.24 ここから修正 */
	padding: 0 2px 2px 0;
}
#refo #mainArea .errorTextBox .errorIcon img {
	width: 16px;
}
#refo #mainArea .errorTextBox .errorText {
	color: #df0a40;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
/* ENG_WEB_MNT-2849【REFO】2025.07.24 ここまで修正 */
	margin: 0;
}

/* 確認
================================================== */
#mainArea .lead {
	margin-bottom: 40px;
}
#mainArea .pageConfirm .generalFormTable table tr th {
	font-size: 15px;
}
#mainArea .pageConfirm .generalFormTable table tr th,
#mainArea .pageConfirm .generalFormTable table tr td {
	padding: 10px 25px;
}
#mainArea .formBtnBox_020 {
	position: relative;
}
#mainArea .formBtnBox_020 .linkBtn.line-gray {
	position: absolute;
	top: 0;
	left: 0;
}

/* 完了
================================================== */
#mainArea .massageBox {
	font-weight: bold;
	text-align: center;
	margin-bottom: 60px;
}
#mainArea .massageBox .lead {
	font-size: 32px;
	padding-top: 30px;
	margin-bottom: 20px;
}
#mainArea .massageBox .changeMarginBottom0 {
	font-size: 22px;
	margin-bottom: 10px;
}
#mainArea .massageBox .attention {
	font-weight: normal;
}
#mainArea .txtBox h2 {
  background: url(/shared/img/bg_h4.gif) no-repeat 0 0.15em;
  font-weight: bold;
	font-size: 22px;
  line-height: 1.25;
	padding: 0 0 15px 20px;
}
#mainArea .txtBox .flowBox {
	display: flex;
}
#mainArea .contact {
	display: flex;
}
#mainArea .contact dl {
	display: inline-block;
	text-align: left;
	margin: 70px auto;
}
#mainArea .contact dl dt {
	font-weight: bold;
	font-size: 22px;
	margin-bottom: 10px;
}
#mainArea .contact dl dd {
	line-height: 1.5;
}
#mainArea .contact dl dd p span {
	color: #0084a0;
	font-weight: bold;
	font-size: 32px;
}
#mainArea .contact dl dd a {
	margin: 20px 0 0;
}