﻿@charset "UTF-8";

/* ----入力フォーム共通---- */

input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  border-radius: 0;
  color: var(--text-color-primary);
}
input[type="submit"],
input[type="button"],
button {
  -webkit-appearance: none;
  border-radius: 0;
  color: inherit;
  font-weight: 500;
}
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="number"],
select,
textarea {
  padding: 4px;
  border: 1px solid var(--form-border-color);
  background-color: #fff;
  max-width: 100%;
  font-size: 1rem;
  color: var(--text-color-primary);
}
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="search"],
input[type="password"],
input[type="url"],
input[type="number"]{
  height: 40px;
}


input[type="radio"] {
  vertical-align: middle;
  margin:0 0 0 5px;
}

input[type="checkbox"] {
  vertical-align: middle;
  margin-right: 5px;
}

label.radio,
label.checkbox,
input[type="radio"],
input[type="radio"] + label,
input[type="checkbox"],
input[type="checkbox"] + label,
label [type="checkbox"] ~ img,
select {
  cursor: pointer;
}

input[type="text"][disabled] {
  background: #dcdcdc;
  cursor: not-allowed;
}

/* ----ボタン---- */

.btn {
  display: inline-block;
  margin: 0;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  padding: 4px 10px;
}

.btn:hover,
.btn:focus {
  text-decoration: none;
}

.btn:active,
.btn.active {
  outline: 0;
  box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.125);
}

.btn.disabled,
.btn[disabled],
.btn.disabled:hover,
.btn[disabled]:hover,
.btn.disabled:active,
.btn[disabled]:active {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  box-shadow: none !important;
}


.hidden-btn {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
}

.input-group {
  display: table;
  width: 100%;
}

.input-group > span {
  display: table-cell;
  width: 100%;
}

.input-group-btn {
  display: table-cell;
  white-space: nowrap;
}

/* ----画面上部メッセージー---- */

.alert {
  padding: 10px 10px 10px 40px;
  margin-bottom: 60px;
  position: relative;
  color: var(--text-color-alert);
  background-color: #F2DEDE;
  background-repeat: no-repeat;
  overflow: hidden;
  background-size: 20px auto;
  background-position: 10px 50%;
  background-image: url(../../img/sys/icon/alert@2x.png);
  font-size: 0.75rem;
  line-height: calc(16 / 12);
  letter-spacing: 0.12em;
  font-weight: 500;
}

.success {
  margin-top: 5px;
  padding: 10px 10px 10px 30px;
  margin-bottom: 5px;
  position: relative;
  border: 1px solid #bce8f1;
  color: #31708f;
  background-color: #d9edf7;
  background-repeat: no-repeat;
  overflow: hidden;
  background-size: 12px auto;
  background-position: 10px 50%;
  background-image: url(../../img/sys/icon/success.png);
}

/* ----入力フォームタイトル---- */

.legend {
  font-size: 1.125rem;
  font-weight: bold;
  line-height: calc(24 / 18);
  letter-spacing: 0.12em;
  margin-bottom: 18px;
}
.fieldset{
  display: flex;
  flex-direction: column;
  gap: 30px 0;
}
.form-label{
  margin-bottom: 5px;
}
.form-control{
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
}
.fieldset .form-flex{
  display: flex!important;
}
.fieldset .form-flex-column{
  display: flex;
  flex-direction: column;
}
/* ----縦型入力フォーム---- */

.fieldset-vertical {
  margin-top: 10px;
  margin-bottom: 10px;
}

.fieldset-vertical .form-group {
  margin: 5px 0 10px 0;
}

.fieldset-vertical .form-label,
.fieldset-vertical .constraint {
  margin: 0 0 5px 0;
}

.fieldset-vertical .form-label {
  margin: 0 5px 0 0;
}

.fieldset-vertical .form-label label {
  font-weight: bold;
}

.fieldset-vertical .form-control {
  clear: both;
}

/* ----入力支援---- */
.control-label{
  font-size: 1rem;
}
.form-error {
  display: block;
  color: var(--text-color-alert);
  margin-top: 4px;
  font-size: 0.75rem;
  line-height: calc(16 / 12);
  letter-spacing: 0.12em;
}
.fieldset .constraint,
.fieldset .form-label{
  display: inline-block;
  vertical-align: middle;
}
.constraint .optional,
.required{
  display: inline-flex;
  width: 27px;
  height: 16px;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  font-weight: 500;
  color: #fff;
  vertical-align: top;
  line-height: calc(14 / 10);
  letter-spacing: 0.12em;
}
.required{
  background-color: #DD000B;
}
.required:after {
  display: inline;
  color: #fff;
  content: "\5fc5\9808";
}
.constraint .optional{
  background-color: #848484;
}
.constraint .optional:after{
  content: "\4efb\610f";
}
.help-block {
  display: block;
  font-size: 0.75rem;
  margin-top: 10px;
  color: var(--form-help-text-color)!important;
}

.count-msg-another {
  display: block;
  font-size: 11px;
  margin-top: 5px;
  color: var(--form-help-text-color)!important;
}

.count-msg {
  display: block;
  font-size: 0.75rem;
  margin-top: 10px;
  color: var(--text-color-alert);
}

/* ----入力フォームボタン---- */

.action-buttons {
  width: auto;
  display: block;
  margin-top: 40px;
}

.action .btn {
  width: 100%;
  margin-top: 20px;
  padding: 10px 0;
  border-bottom-width: 2px;
}

/* ----EFO---- */

.efo-icon {
  border: none;
  vertical-align: middle;
}

input[type="text"].efo-error,
input[type="tel"].efo-error,
input[type="email"].efo-error,
input[type="search"].efo-error,
input[type="password"].efo-error,
input[type="url"].efo-error,
input[type="number"].efo-error,
select.efo-error,
textarea.efo-error {
  background-color: #f2dede;
}

input[type="text"].efo-valid,
input[type="tel"].efo-valid,
input[type="email"].efo-valid,
input[type="search"].efo-valid,
input[type="password"].efo-valid,
input[type="url"].efo-valid,
input[type="number"].efo-valid,
select.efo-valid,
textarea.efo-valid {
  background-color: #e9f2d7;
}

input[name="addr2"].efo-caution {
  background-color: #fbf5c0;
}

input[name="s_addr2"].efo-caution {
  background-color: #fbf5c0;
}

input[name="d_addr2"].efo-caution {
  background-color: #fbf5c0;
}
label{
  display: flex;
  align-items: center;
}
input[type="radio"] + label,
input[type="checkbox"] + label{
  display: inline-block;
  vertical-align: middle;
}
input[type="radio"] + label[for]:hover,
input[type="checkbox"] + label[for]:hover{
  cursor: pointer;
}
.form-control input[type="checkbox"]{
  position: relative;
}
select {
  max-width: 100%;
  border-radius: 0px;
  min-height: 40px;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background: #fff;
  position: relative;
  background-image: url('../../img/usr/common/arrow-black-down.png');
  background-repeat: no-repeat;
  background-size: 8.5px 5.5px;
  background-position: center right 9px;
  padding: 4px 25px 4px 8px;
  border: 1px solid var(--form-border-color);
  background-color: #fff;
  font-size: 1rem;
}
input[type="checkbox"]+label{
	padding-left: 0;
}
input[type="checkbox"]+label:before,
input[type="checkbox"]+label:after{
	content:'';
	display: none;
}
input[type="checkbox"]{
  -webkit-appearance: none;
  appearance: none;
	width: 16px;
  max-width: 16px;
	height: 16px;
	border: 1px solid var(--form-border-color);
  background-color: #fff;
	cursor: pointer;
	border-radius: 0;
	position: relative;
	margin-right: 10px;
  flex-shrink: 0;
}
input[type="checkbox"]:checked{
	background-image:url('../../img/usr/common/checkbox.png');
	background-size: 16px 16px;
	background-repeat: no-repeat;
	background-position: center;
	border: none;
}
label input[type="checkbox"] {
  position: relative;
  top: 1px;
}
input[type="radio"] {
  position: relative;
  white-space: nowrap;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  flex-shrink: 0;
}
input[type="radio"]:checked + label::after {
	opacity: 1;
}
input[type="radio"] + label{
	margin-right: 20px;
}
input[type="radio"] + label {
	position: relative;
	cursor: pointer;
	padding-left: 30px;
}
input[type="radio"] + label::before,
input[type="radio"] + label::after {
	content: "";
	display: block; 
	border-radius: 50%;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}
input[type="radio"] + label::before {
	background-color: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 50%;
	width: 15px;
	height: 15px;
	left: 5px;
}
input[type="radio"][disabled] + label::before {
  background-color: #dddddd;
}
input[type="radio"]:checked + label::before {
	background-color: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 50%;
	width: 15px;
	height: 15px;
	left: 5px;
}
input[type="radio"] + label::after {
  background-color: var(--theme-color-primary);
  border-radius: 50%;
  opacity: 0;
  width: 9px;
  height: 9px;
  left: 8px;
}

label input[type="radio"] {
  position: absolute;
  white-space: nowrap;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
}
label input[type="radio"]:checked + *::after {
	opacity: 1;
}
label input[type="radio"] + * {
	position: relative;
	cursor: pointer;
	padding-left: 30px;
}
label input[type="radio"] + *::before,
label input[type="radio"] + *::after {
	content: "";
	display: block; 
	border-radius: 50%;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}
label input[type="radio"] + *::before {
	background-color: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 50%;
	width: 16px;
	height: 16px;
	left: 5px;
}
label input[type="radio"][disabled] + *::before {
	background-color: var(--theme-color-primary);
}
label input[type="radio"]:checked + *::before {
	background-color: #fff;
	border: 1px solid var(--form-border-color);
	border-radius: 50%;
	width: 16px;
	height: 16px;
	left: 5px;
}
label input[type="radio"] + *::after {
  background-color: var(--form-border-color);
  border-radius: 50%;
  opacity: 0;
  width: 9px;
  height: 9px;
  left: 8px;
}
label + input[type="file"]{
  display: none;
}
label.file-wrapper{
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}