/* Theme additions: under pages / CF7 / company images
 *
 * Note: assets/css/style.css resets many elements to line-height: 0.
 * Under pages must re-declare readable line-heights explicitly.
 */

/* -------------------------------------------------------------------------- */
/* Company images (Meta BAN)                                                  */
/* -------------------------------------------------------------------------- */
/* 用意済み画像は原寸表示（高さの強制リサイズはしない） */
.company-img img {
	max-width: 100%;
	width: auto;
	height: auto;
	display: inline-block;
	vertical-align: middle;
}

.company-img--name img,
.company-img--address img {
	vertical-align: top;
}

/* display:inline-block が hide-* を潰さないように明示 */
@media screen and (min-width: 1024px) {
	.company-img img.hide-pc {
		display: none;
	}
}

@media screen and (max-width: 1023px) {
	.company-img img.hide-sp {
		display: none;
	}
}

.company-inline {
	display: inline-block;
	vertical-align: baseline;
	height: 1.15em;
	width: auto;
	margin: 0 0.1em;
}

/* -------------------------------------------------------------------------- */
/* Shared under-page shell (privacy / thanks / default page)                  */
/* -------------------------------------------------------------------------- */
.page-main {
	min-height: 60vh;
	background: #f5f7fb;
	box-sizing: border-box;
}

.page-main *,
.page-main *::before,
.page-main *::after {
	box-sizing: border-box;
}

.page-main h1,
.page-main h2,
.page-main h3,
.page-main p,
.page-main li,
.page-main a,
.page-main dt,
.page-main dd {
	line-height: 1.8;
}

.page-main h1.ttl01 {
	line-height: 1.4;
	margin: 0 0 1.2em;
	padding-bottom: 0;
}

.page-main a {
	color: #013598;
	text-decoration: underline;
}

.page-main a:hover {
	color: #666;
}

/* -------------------------------------------------------------------------- */
/* Privacy policy                                                             */
/* -------------------------------------------------------------------------- */
.page-privacypolicy .policy-eyebrow {
	margin: 0 0 0.6em;
	font-size: 14px;
	letter-spacing: 0.12em;
	line-height: 1.4;
	color: #013598;
	font-weight: 500;
	text-align: center;
}

.page-privacypolicy .policy-box {
	max-width: 900px;
	margin: 0 auto;
	padding: 48px 56px;
	background: #fff;
	box-shadow: 0 4px 24px rgba(1, 53, 152, 0.08);
	border-radius: 4px;
	color: #222;
	font-size: 16px;
	line-height: 1.9;
}

.page-privacypolicy .policy-box p,
.page-privacypolicy .policy-box h2,
.page-privacypolicy .policy-box a {
	line-height: 1.9;
}

.page-privacypolicy .policy-lead {
	margin: 0 0 1.5em;
	padding: 0;
	line-height: 1.9;
}

.page-privacypolicy .policy-item {
	margin: 0;
	padding: 28px 0 0;
	border-top: 1px solid #e5e8ef;
}

.page-privacypolicy .policy-item + .policy-item {
	margin-top: 8px;
}

.page-privacypolicy .policy-item h2 {
	display: block;
	margin: 0 0 14px;
	padding: 0;
	font-size: 20px;
	font-weight: 600;
	color: #013598;
	line-height: 1.5;
}

.page-privacypolicy .policy-item p {
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.9;
	color: #333;
}

.page-privacypolicy .policy-manager {
	border-top: 1px solid #e5e8ef;
	padding-top: 28px;
	margin-top: 8px;
}

.page-privacypolicy .policy-manager p {
	margin: 0;
	text-align: right;
	line-height: 1.8;
}

.page-privacypolicy .policy-back {
	margin-top: 40px;
	text-align: center;
}

.page-privacypolicy .policy-back a {
	display: inline-block;
	padding: 14px 36px;
	background: #013598;
	color: #fff !important;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.4;
	text-decoration: none !important;
	border-radius: 4px;
}

.page-privacypolicy .policy-back a:hover {
	opacity: 0.85;
	color: #fff !important;
}

/* -------------------------------------------------------------------------- */
/* Thanks page                                                                */
/* -------------------------------------------------------------------------- */
.page-thanks .thanks-box {
	max-width: 720px;
	margin: 0 auto;
	padding: 48px 40px;
	background: #fff;
	box-shadow: 0 4px 24px rgba(1, 53, 152, 0.08);
	border-radius: 4px;
}

.page-thanks .thanks-box p {
	margin: 0 0 1em;
	line-height: 1.8;
}

.page-thanks .thanks-box p:last-child {
	margin-bottom: 0;
}

.page-thanks .thanks-back-wrap {
	margin-top: 32px;
	text-align: center;
}

.page-thanks .thanks-back {
	display: inline-block;
	padding: 16px 44px;
	background: #013598;
	color: #fff !important;
	font-weight: 600;
	font-size: 18px;
	line-height: 1.4;
	text-decoration: none !important;
	border-radius: 4px;
}

.page-thanks .thanks-back:hover {
	opacity: 0.85;
	color: #fff !important;
}

/* -------------------------------------------------------------------------- */
/* Default page content                                                       */
/* -------------------------------------------------------------------------- */
.page-article .page-content {
	max-width: 900px;
	margin: 0 auto;
	padding: 40px 36px;
	background: #fff;
	box-shadow: 0 4px 24px rgba(1, 53, 152, 0.08);
	line-height: 1.8;
}

.page-article .page-content p {
	line-height: 1.8;
	margin: 0 0 1em;
}

/* -------------------------------------------------------------------------- */
/* Contact Form 7 — keep table/input styles from style.css; only adapt submit */
/* -------------------------------------------------------------------------- */
.bpfc-form .wpcf7,
.bpfc-form .wpcf7-form {
	margin: 0;
}

.bpfc-form .wpcf7-form-control-wrap {
	display: block;
}

/* Do not override .table02 / .input / .w90 — style.css already matches static HTML */

/* Submit: mimic <p class="button06"><a><img src="button02.png"></a></p> */
.bpfc-form .button06 {
	width: 500px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}

.bpfc-form .button06 input.wpcf7-submit,
.bpfc-form .button06 input[type="submit"] {
	display: block;
	width: 100%;
	height: 0;
	padding: 0;
	padding-top: 15.5266%; /* 143 / 921 — button02.png aspect ratio */
	margin: 0;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	background: url("../img/button02.png") center center / 100% 100% no-repeat;
	background-color: transparent;
	box-shadow: none;
	text-indent: -9999px;
	overflow: hidden;
	color: transparent;
	font-size: 0;
	line-height: 0;
	appearance: none;
	-webkit-appearance: none;
}

.bpfc-form .button06 input.wpcf7-submit:hover,
.bpfc-form .button06 input[type="submit"]:hover {
	opacity: 0.9;
}

/* CF7 spinner sits after submit; keep it from breaking layout */
.bpfc-form .button06 .wpcf7-spinner {
	position: absolute;
	right: -40px;
	top: 50%;
	margin-top: -12px;
}

.bpfc-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	margin-bottom: 0;
	color: #c00;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 500;
}

.bpfc-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px;
	border: 2px solid #013598;
	line-height: 1.5;
	text-align: center;
	font-size: 16px;
}

.bpfc-form .wpcf7 form.sent .wpcf7-response-output {
	border-color: #46b450;
}

.bpfc-form .wpcf7 form.invalid .wpcf7-response-output,
.bpfc-form .wpcf7 form.failed .wpcf7-response-output {
	border-color: #c00;
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                 */
/* -------------------------------------------------------------------------- */
@media screen and (max-width: 1023px) {
	.page-privacypolicy .policy-box,
	.page-thanks .thanks-box,
	.page-article .page-content {
		width: 92%;
		padding: 28px 18px;
	}

	.page-privacypolicy .policy-item h2 {
		font-size: 17px;
		margin-bottom: 12px;
	}

	.page-privacypolicy .policy-item p,
	.page-privacypolicy .policy-box {
		font-size: 15px;
	}

	.bpfc-form .button06 {
		width: 90%;
	}

	.bpfc-form .button06 .wpcf7-spinner {
		right: 0;
		top: auto;
		bottom: -28px;
		left: 50%;
		margin-left: -12px;
		margin-top: 0;
	}
}

/* CF7 default stylesheet overrides that distort the static table layout */
.bpfc-form .wpcf7 input.wpcf7-form-control:not([type="submit"]),
.bpfc-form .wpcf7 textarea.wpcf7-form-control {
	width: 90%;
	max-width: 90%;
	box-sizing: border-box;
}

.bpfc-form .wpcf7-form-control-wrap {
	display: inline;
}

/* Honeypot — visually hidden, remains in DOM for bots */
.bpfc-form .bpfc-hp {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
