@charset "UTF-8";

/* contact hub page */
.contact-hub {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding-bottom: 56px;
}

.contact-hub__lead {
	padding: 16px 0;
	border-bottom: 1px solid #c8c8c8;
}

.contact-hub__lead-link {
	font-size: 24px;
	font-weight: bold;
	color: #2c4d7a;
	text-decoration: underline;
}

.contact-hub__select {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.contact-hub__select-lead-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.contact-hub__select-lead-item {
	position: relative;
	padding-left: 16px;
	font-size: 14px;
}

.contact-hub__select-lead-item::before {
	content: "※";
	position: absolute;
	left: 0;
	top: 0;
}

.contact-hub__select-block {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.contact-hub__select-title {
	font-size: clamp(20px, 2vw, 24px);
	font-weight: bold;
}

.contact-hub__select-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.contact-hub__select-item {
	display: block;
    border: solid #111 2px;
    border-radius: 8px;
    color: #fff;
    font-size: clamp(13px, 1.5vw, 16px);
    font-weight: bold;
    line-height: 1.2;
    padding: 16px 56px 16px 16px;
    background: url(../images/new2025/arrow_white.png) no-repeat calc(100% - 16px) 50%, #000;
    background-size: 1.3em;
    transition: opacity 0.3s ease;
}

.contact-hub__select-item:hover {
	color: #fff;
	opacity: 0.6;
}

.contact-hub__select-item:visited {
	color: #fff;
}

/* contact form page */
.contact-form {
	padding-bottom: 56px;
}

.contact-form form {
	display: flex;
	flex-direction: column;
	max-width: 768px;
	margin: auto;
}

.contact-form form dl {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 24px 0;
	border-bottom: 1px solid #c8c8c8;

	@media screen and (max-width: 768px) {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
}

.contact-form form dl dt {
	width: 240px;
	font-size: 16px;
	font-weight: bold;
}

.contact-form form dl dd {
	width: calc(100% - 256px);
	font-size: 16px;

	@media screen and (max-width: 768px) {
		width: 100%;
	}
}

.contact-form form dl dd p {
	width: 100%;
	font-size: 16px;

	@media screen and (max-width: 768px) {
		width: 100%;
	}
}

.contact-form form dl dd input,
.contact-form form dl dd select,
.contact-form form dl dd textarea,
.contact-form form dl dd input p,
.contact-form form dl dd select p,
.contact-form form dl dd textarea p {
	padding: 8px;
	border: 1px solid #c8c8c8;
	border-radius: 4px;
	font-size: 16px;
}

.contact-form form dl dd input,
.contact-form form dl dd input p {
	width: 100%;
	height: 40px;
}

.contact-form form dl dd select,
.contact-form form dl dd select p {
	width: auto;
	height: 40px;
}

.contact-form form dl dd input[type="radio"],
.contact-form form dl dd input[type="radio"] p {
	width: 16px;
}

.contact-form form dl dd .wpcf7-list-item {
	display: block;
}

.contact-form form dl dd label {
	display: flex;
	align-items: center;
	gap: 8px;
}

.contact-form form dl dd textarea,
.contact-form form dl dd textarea p {
	width: 100%;
	min-width: 200px;
	max-width: 512px;
	min-height: 200px;
}

.contact-form form .required {
	margin-left: 8px;
	color: #7dabcf;
	font-size: 14px;
}

.contact-form form .contact-form__privacy-policy {
	display: flex;
	flex-direction: column;
	gap: 8px;
    margin: 16px 0;
    padding: 24px;
    background-color: #f0f7ff;
    border-radius: 8px;
}

.contact-form form .contact-form__privacy-policy-text {
    text-align: center;
}

.contact-form form .contact-form__privacy-policy-text a {
    color: #2c4d7a;
    text-decoration: underline;
}

.contact-form form .contact-form__privacy-policy-text a:hover {
    text-decoration: none;
}

.contact-form form .contact-form__privacy-policy-agreement {
    display: flex;
    justify-content: center;
    margin-top: 15px;
}

.contact-form form .contact-form__privacy-policy-agreement label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    padding: 10px 20px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.contact-form form .contact-form__privacy-policy-agreement input[type="checkbox"] {
    margin-right: 10px;
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.contact-form form .wpcf7-list-item {
    margin: 0;
}

.contact-form form .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: #ff0000;
	font-size: 14px;
}

.contact-form form .contact-form__submit-btn {
	display: flex;
	justify-content: center;
	margin-top: 16px;
}

.contact-form form .contact-form__submit-btn p {
	display: flex;
	justify-content: center;
	gap: 16px;
	width: 100%;
}

.contact-form form .contact-form__submit-btn br {
	display: none;
}

.contact-form form .contact-form__submit-btn input[type="button"],
.contact-form form .contact-form__submit-btn input[type="submit"] {
    display: block;
	width: 100%;
	max-width: 200px;
	border: none;
    border-radius: 8px;
    color: #fff;
    font-size: clamp(14px, 1.5vw, 20px);
    font-weight: bold;
    padding: 16px 24px;
    background: #2c4d7a;
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.contact-form form .contact-form__submit-btn input[type="button"]:hover,
.contact-form form .contact-form__submit-btn input[type="submit"]:hover {
    opacity: 0.6;
}

.contact-form form .contact-form__submit-btn .wpcf7-spinner {
	display: none;
}