@charset "utf-8";

/* ==========================================================
   1. ベース・リセット・要素設定
============================================================= */
html, body {
	margin: 0 !important;
	padding: 0 !important;
}

/* マージン相殺（中の要素の余白が上に突き抜ける現象）を防ぐ設定 */
body {
	display: flow-root;
}

h1, h2, h3, h4, h5, h6 {
	margin:0;
	max-height: 100%;
	font-weight: normal;
	-moz-font-feature-settings: "palt";
	-webkit-font-feature-settings: "palt";
	font-feature-settings: "palt";
	line-height: 1.2;
	color: #222;
}

p, figure {
	max-height: 100%;
	margin: 0 0 1em;
}
/* 「.header-logo」の部分は、実際のロゴを囲っているクラス名に変更してください */
#logo img {
	vertical-align: baseline !important; /* または top, bottom で微調整 */
}

ul, ol {
	max-height: 100%;
	list-style: none;

   margin: 0 ; 

}

dt {
	max-height: 100%;
	font-weight: bold;
}

dd { max-height: 100%; }

hr {
	display: block;
	height: 1px;
	margin: 1em 0;
	padding: 0;
	border: 0;
	border-top: 1px solid #ccc;
}

blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
pre { font-family: monospace, serif; white-space: pre-wrap; word-wrap: break-word; }
img { vertical-align: middle; }
address, cite, em, dfn, i, var { font-style: normal; }
em, strong, b { font-weight: bold; }
code, samp, kbd { font-family: monospace, sans-serif; }
abbr { border: 0; font-variant: normal; }
abbr[title], dfn[title] { cursor: help; border-bottom: 1px dotted; }
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom; }
del { text-decoration: line-through; }
mark { background-color: #ff0; color: #333; font-style: italic; font-weight: bold; }
br { *letter-spacing: 0; }

table { border-collapse: collapse; border-spacing: 0; }
th, td { font-weight: normal; text-align: left; }
th { font-weight: bold; }
caption { font-weight: normal; text-align: left; }

/* フォーム系ベース */
input, textarea, select {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
}
input, button { line-height: normal; vertical-align: middle; }
input[type=text], input[type=password], textarea {
	width: 380px;
	padding: 5px;
	background: #fff;
	border: 1px solid #ddd;
	box-shadow: inset 3px 3px 0 0 rgba(0,0,0,0.03);
}
input[type=text]:focus, input[type=password]:focus, textarea:focus { border: 1px solid #209dd9; }
input[type=button], input[type=submit], input[type=checkbox], label { cursor: pointer; }
input[type=submit]:disabled, input[type=button]:disabled, input[type=checkbox]:disabled { cursor: default; }
input[type=submit] { padding: 5px 8px; }

.box__ttl input[type=button] { margin-right: 5px; height: 26px; line-height: 26px; }

textarea { overflow: auto; vertical-align: top; }
select { padding: 2px; line-height: normal; background: #fff; }
legend { color: #333; }

/* ==========================================================
   2. 汎用ユーティリティクラス
============================================================= */
.m0 { margin: 0 !important; } .m5 { margin: 5px !important; } .m10 { margin: 10px !important; } .m15 { margin: 15px !important; } .m20 { margin: 20px !important; } .m25 { margin: 25px !important; } .m30 { margin: 30px !important; } .m35 { margin: 35px !important; } .m40 { margin: 40px !important; } .m44 { margin: 44px !important; }
.mt0 { margin-top: 0 !important; } .mt5 { margin-top: 5px !important; } .mt10 { margin-top: 10px !important; } .mt15 { margin-top: 15px !important; } .mt20 { margin-top: 20px !important; } .mt25 { margin-top: 25px !important; } .mt30 { margin-top: 30px !important; } .mt35 { margin-top: 35px !important; } .mt40 { margin-top: 40px !important; } .mt45 { margin-top: 45px !important; } .mt50 { margin-top: 50px !important; }
.mb0 { margin-bottom: 0 !important; } .mb5 { margin-bottom: 5px !important; } .mb10 { margin-bottom: 10px !important; } .mb15 { margin-bottom: 15px !important; } .mb20 { margin-bottom: 20px !important; } .mb25 { margin-bottom: 25px !important; } .mb30 { margin-bottom: 30px !important; } .mb35 { margin-bottom: 35px !important; } .mb40 { margin-bottom: 40px !important; } .mb45 { margin-bottom: 45px !important; } .mb50 { margin-bottom: 50px !important; }
.ml0 { margin-left: 0 !important; } .ml5 { margin-left: 5px !important; } .ml10 { margin-left: 10px !important; } .ml15 { margin-left: 15px !important; } .ml20 { margin-left: 20px !important; } .ml25 { margin-left: 25px !important; } .ml30 { margin-left: 30px !important; } .ml35 { margin-left: 35px !important; } .ml40 { margin-left: 40px !important; } .ml45 { margin-left: 45px !important; } .ml50 { margin-left: 50px !important; }
.mr0 { margin-right: 0 !important; } .mr5 { margin-right: 5px !important; } .mr10 { margin-right: 10px !important; } .mr15 { margin-right: 15px !important; } .mr20 { margin-right: 20px !important; } .mr25 { margin-right: 25px !important; } .mr30 { margin-right: 30px !important; } .mr35 { margin-right: 35px !important; } .mr40 { margin-right: 40px !important; } .mr45 { margin-right: 45px !important; } .mr50 { margin-right: 50px !important; }

.p0 { padding: 0 !important; } .p5 { padding: 5px !important; } .p10 { padding: 10px !important; } .p15 { padding: 15px !important; } .p20 { padding: 20px !important; } .p25 { padding: 25px !important; } .p30 { padding: 30px !important; } .p35 { padding: 35px !important; } .p40 { padding: 40px !important; } .p45 { padding: 45px !important; } .p50 { padding: 50px !important; }
.pt0 { padding-top: 0 !important; } .pt5 { padding-top: 5px !important; } .pt10 { padding-top: 10px !important; } .pt15 { padding-top: 15px !important; } .pt20 { padding-top: 20px !important; } .pt25 { padding-top: 25px !important; } .pt30 { padding-top: 30px !important; } .pt35 { padding-top: 35px !important; } .pt40 { padding-top: 40px !important; } .pt45 { padding-top: 45px !important; } .pt50 { padding-top: 50px !important; }
.pb0 { padding-bottom: 0 !important; } .pb5 { padding-bottom: 5px !important; } .pb10 { padding-bottom: 10px !important; } .pb15 { padding-bottom: 15px !important; } .pb20 { padding-bottom: 20px !important; } .pb25 { padding-bottom: 25px !important; } .pb30 { padding-bottom: 30px !important; } .pb35 { padding-bottom: 35px !important; } .pb40 { padding-bottom: 40px !important; } .pb45 { padding-bottom: 45px !important; } .pb50 { padding-bottom: 50px !important; }
.pl0 { padding-left: 0 !important; } .pl5 { padding-left: 5px !important; } .pl10 { padding-left: 10px !important; } .pl15 { padding-left: 15px !important; } .pl20 { padding-left: 20px !important; } .pl25 { padding-left: 25px !important; } .pl30 { padding-left: 30px !important; } .pl35 { padding-left: 35px !important; } .pl40 { padding-left: 40px !important; } .pl45 { padding-left: 45px !important; } .pl50 { padding-left: 50px !important; }
.pr0 { padding-right: 0 !important; } .pr5 { padding-right: 5px !important; } .pr10 { padding-right: 10px !important; } .pr15 { padding-right: 15px !important; } .pr20 { padding-right: 20px !important; } .pr25 { padding-right: 25px !important; } .pr30 { padding-right: 30px !important; } .pr35 { padding-right: 35px !important; } .pr40 { padding-right: 40px !important; } .pr45 { padding-right: 45px !important; } .pr50 { padding-right: 50px !important; }

.w5per { width: 5% !important; } .w10per { width: 10% !important; } .w15per { width: 15% !important; } .w20per { width: 20% !important; } .w25per { width: 25% !important; } .w30per { width: 30% !important; } .w35per { width: 35% !important; } .w40per { width: 40% !important; } .w45per { width: 45% !important; } .w50per { width: 50% !important; } .w55per { width: 55% !important; } .w60per { width: 60% !important; } .w65per { width: 65% !important; } .w70per { width: 70% !important; } .w75per { width: 75% !important; } .w80per { width: 80% !important; } .w85per { width: 85% !important; } .w90per { width: 90% !important; } .w95per { width: 95% !important; } .w100per { width: 100% !important; }

.fl { float: left !important; }
.fr { float: right !important; }
.tal { text-align: left !important; }
.tar { text-align: right !important; }
.tac { text-align: center !important; }
.breakAll { word-break: break-all !important; }

.dispN { display: none !important; }
.dispI { display: inline !important; }
.dispIB { display: inline-block !important; }
.dispB { display: block !important; }
.dispF { display: flex !important; }

.fontNormal { font-weight: normal !important; }
.fontBold { font-weight: bold !important; }
.font10 { font-size: 10px !important; }
.font12 { font-size: 12px !important; }
.font14 { font-size: 14px !important; }

.colorBlack { color: #000; }
.red, .red_txt { color: #f00; }
#txt_explain { color: #000000; }

.clear, .cf { clear: both; }
.clearfix:before, .clearfix:after, .cf:before, .cf:after { content: " "; display: table; }
.clearfix:after, .cf:after { clear: both; }
.clearfix, .cf { zoom: 1; }

.button_box { clear: both; padding: 8px; text-align: center; }
.left_txt { text-align: left; }

/* 必須マーク */
.required-mark {
	color: #d9534f !important;
	font-weight: bold;
}

/* ==========================================================
   3. メインコンテンツ・テーブル (PC/共通)
============================================================= */
#main { padding: 0px; }

.section { margin-bottom: 40px; }
.section:last-child { margin-bottom: 0; }
.section__ttl {
	padding: 10px;
	margin-bottom: 20px;
	font-weight: bold;
	color: #ffffff;
	background: #000000;
	font-size: 14px;
}
.section__body { padding: 0 30px; }

.block { margin-bottom: 15px; }
.block:last-child { margin-bottom: 0; }
.block__ttl {
	margin-bottom: 10px;
	font-size: 16px;
	font-weight: bold;
}

.table {
	width: 100%;
	margin-bottom: 15px;
}
.table th {
	display: block;
	width: 190px;
	padding: 15px 10px;
	background: #fff;
	color: #3f3f3f;
	font-weight: bold;
	font-size: 12px;
}
.table td {
	padding: 15px 10px;
	background: #fff;
	color: #3f3f3f;
	font-size: 12px;
}

/* フォーム PCスタイル */
.contact-body-pc .section__ttl {
	margin: 0 0 20px;
	font-size: 24px;
	line-height: 1.5;
	text-align: center;
}
.contact-body-pc .section__body { max-width: 640px; margin: 0 auto; }
.contact-body-pc #txt_explain { margin-bottom: 20px; text-align: left; }
.contact-body-pc .table { width: 100%; border-collapse: collapse; margin: 0 auto 20px; }
.contact-body-pc .table th,
.contact-body-pc .table td { padding: 10px 0; vertical-align: top; font-size: 14px; line-height: 1.8; }
.contact-body-pc .table th { width: 220px; font-weight: bold; text-align: left; }

.contact-body-pc .table td input[type="text"],
.contact-body-pc .table td input[type="email"],
.contact-body-pc .table td input[type="tel"],
.contact-body-pc .table td textarea {
	width: 100%;
	max-width: 360px;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #bbb;
	font-size: 14px;
}
.contact-body-pc .table td textarea { min-height: 150px; }
.contact-body-pc .button_box { text-align: center; margin-top: 20px; }
.contact-body-pc .button_box input[type="submit"] {
	padding: 10px 30px;
	background: #666;
	color: #fff;
	border: 0;
	cursor: pointer;
}

/* ==========================================================
   4. 特定コンポーネント (お名前、分割フィールド等 / 最終適用版)
============================================================= */
/* お名前フィールド (PC標準) */
.name-row {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex-wrap: nowrap;
}
.name-input {
	width: 320px;
	flex: 0 1 auto;
}
.name-input .wpcf7-form-control-wrap { display: block; }
.name-input input[type="text"] { width: 100%; box-sizing: border-box; }

/* インラインペア（特定の並列要素） */
.inline-pair {
	display: inline-block;
	vertical-align: top;
	margin-right: 10px;
}
.inline-pair .split-label {
	display: inline-block;
	vertical-align: top;
	line-height: 32px;
	margin-right: 4px;
	white-space: nowrap;
}
.inline-pair .wpcf7-form-control-wrap {
	display: inline-block;
	vertical-align: top;
	width: 120px;
}
.inline-pair input[type="text"] {
	width: 120px !important;
	max-width: 120px !important;
	box-sizing: border-box;
}
.inline-pair .wpcf7-not-valid-tip {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	line-height: 1.4;
	color: #f00;
}

/* 分割入力フィールド (最終適用版) */
.split-name-row {
	display: flex !important;
	align-items: center;
	gap: 6px;
	flex-wrap: nowrap;
}
.split-label {
	white-space: nowrap;
	flex: 0 0 auto;
}
.split-input {
	display: inline-block;
	width: 90px;
	flex: 0 0 90px;
}
.split-input .wpcf7-form-control-wrap { display: block; }
.split-input input[type="text"] {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}
.table td .split-name-row { display: flex !important; width: auto !important; }
.table td .split-input { width: 120px !important; flex: 0 0 90px !important; }


/* ==========================================================
   5. SP お問い合わせページ / モバイル用上書き設定
============================================================= */
.contact-body-sp, #error-sp-box, #contact { padding: 0 15px; box-sizing: border-box; }
.contact-body-sp p, #contact p { margin: 0 0 1em; line-height: 1.8; font-size: 14px; color: #333; }
.contact-body-sp .red, #contact .red, .contact-body-sp .required-mark { color: #f00; }
.contact-body-sp .red_txt { color: #ff3333; margin-bottom: 10px; font-size: 13px; line-height: 1.6; }
.contact-body-sp .section, #error-sp-box .section { margin-bottom: 30px; }
.contact-body-sp .section__ttl, #error-sp-box .section__ttl {
	padding: 10px 12px;
	margin: 0 0 20px;
	font-weight: bold;
	color: #fff;
	background: #000;
	font-size: 15px;
	line-height: 1.4;
}

.contact-body-sp .table { width: 100%; margin-bottom: 15px; border-collapse: collapse; border-spacing: 0; }
.contact-body-sp .table th {
	display: block; width: auto; padding: 12px 0 4px; background: #fff;
	color: #3f3f3f; font-weight: bold; font-size: 13px; line-height: 1.6; text-align: left;
}
.contact-body-sp .table td {
	display: block; padding: 0 0 12px; background: #fff;
	color: #3f3f3f; font-size: 13px; line-height: 1.7; text-align: left;
}

.contact-body-sp input[type="text"], .contact-body-sp input[type="email"],
.contact-body-sp input[type="tel"], .contact-body-sp textarea, .contact-body-sp select {
	width: 100%; max-width: 100%; padding: 10px; border: 1px solid #ddd;
	background: #fff; box-shadow: inset 3px 3px 0 0 rgba(0,0,0,0.03);
	box-sizing: border-box; font-size: 16px; line-height: 1.6;
}
.contact-body-sp textarea { min-height: 140px; overflow: auto; vertical-align: top; }
.contact-body-sp input[type="text"]:focus, .contact-body-sp input[type="email"]:focus,
.contact-body-sp input[type="tel"]:focus, .contact-body-sp textarea:focus, .contact-body-sp select:focus {
	border: 1px solid #209dd9; outline: none;
}

.contact-body-sp .wpcf7-list-item { display: block; margin: 0 0 8px; }
.contact-body-sp .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 6px; line-height: 1.6; }
.contact-body-sp .button_box { clear: both; padding: 8px 0; text-align: center; }
.contact-body-sp .button_box input[type="submit"] {
/*	display: inline-block; width: 100%; max-width: 280px; padding: 12px 16px;
	border: 0; background: #666; color: #fff; font-size: 15px; line-height: 1.4;
	cursor: pointer; border-radius: 0;
	*/
}

.contact-body-sp .wpcf7-not-valid-tip { display: block; margin-top: 5px; color: #f00; font-size: 12px; line-height: 1.5; }
.contact-body-sp .wpcf7 form .wpcf7-response-output { margin: 15px 0 0; padding: 10px 12px; font-size: 12px; line-height: 1.6; }
.contact-body-sp .wpcf7 form.invalid .wpcf7-response-output,
.contact-body-sp .wpcf7 form.unaccepted .wpcf7-response-output,
.contact-body-sp .wpcf7 form.payment-required .wpcf7-response-output {
	color: #f00; border: 1px solid #f00; background: #fff5f5;
}

/* SP お名前 + 様 */
.contact-body-sp .name-row { display: flex; align-items: center; gap: 6px; }
.contact-body-sp .name-input { flex: 1 1 auto; min-width: 0; }
.contact-body-sp .name-input .wpcf7-form-control-wrap { display: block; }
.contact-body-sp .name-honorific { flex: 0 0 auto; white-space: nowrap; line-height: 1; }

#contact .table th, #contact .table td { font-size: 13px; line-height: 1.7; }

/* SP用 お名前ブロック (最終適用版に基づく) */
.sp-name-block { display: block !important; }
.sp-name-line {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 6px !important;
	margin-bottom: 6px !important;
}
.sp-name-line:last-child { margin-bottom: 0 !important; }
.sp-name-line br, .sp-name-line p { display: none !important; }

.sp-split-label {
	display: inline-block !important;
	flex: 0 0 42px !important;
	width: 42px !important;
	white-space: nowrap !important;
	font-size: 13px !important;
	line-height: 1.6 !important;
}

.sp-name-input {
	display: inline-block !important;
	flex: 0 0 auto !important;
}
.sp-name-input .wpcf7-form-control-wrap {
	display: inline-block !important;
	width: 120px !important;
	vertical-align: middle !important;
}
.sp-name-input input[type="text"] {
	display: block !important;
	width: 120px !important;
	max-width: 120px !important;
	box-sizing: border-box !important;
	font-size: 16px !important;
}

/* 敬称 (最終適用版) */
.name-honorific {
	display: inline-block !important;
	flex: 0 0 auto !important;
	white-space: nowrap !important;
	font-size: 13px !important;
	line-height: 1.6 !important;
	margin-left: 2px !important;
}

/* SPテーブル内の特例 */
.table td .sp-name-line { display: flex !important; }
.table td .sp-name-input .wpcf7-form-control-wrap { display: inline-block !important; width: 120px !important; }
.table td .sp-name-input input[type="text"] { width: 120px !important; max-width: 120px !important; }

/* 下部案内ブロック */
/*
#footer_contact { margin-top: 30px; padding: 20px 15px; background: #f5f5f5; text-align: center; }
#footer_contact h3 { margin: 0 0 12px; font-size: 18px; font-weight: bold; }
#footer_contact p { margin: 0 0 8px; font-size: 14px; line-height: 1.7; }
#footer_contact .btn3 { display: inline-block; margin-top: 10px; padding: 10px 16px; background: #b94544; color: #fff; text-decoration: none; }
*/
/* ==========================================================
   追加：お名前・ふりがな横並び強制（CF7対応版）
============================================================= */
.sp-name-block {
	display: block !important;
	width: 100% !important;
}

/* CF7が自動出力する余計な改行や段落を消去 */
.sp-name-line p,
.sp-name-line br {
	display: none !important;
}

/* 横並びを強制する行設定 */
.sp-name-line {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	margin-bottom: 10px !important;
}

/* 「姓：」「名：」などのラベル */
.sp-split-label {
	display: block !important;
	width: 45px !important;
	flex-shrink: 0 !important;
	font-size: 14px !important;
	white-space: nowrap !important;
}

/* 入力欄全体を囲むブロック */
.sp-name-input {
	display: block !important;
	flex: 1 !important; /* ラベルと「様」の間のスペースを自動でいい感じに埋める */
	min-width: 0 !important; /* スマホの極小画面でも横にはみ出さないための魔法の1行 */
}

/* CF7が自動で付けるspanタグ（これのせいで崩れやすい） */
.sp-name-input .wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
	max-width: none !important; /* ←【追加】最大幅の制限を解除！ */
	position: relative !important;
}

/* 実際のテキスト入力欄 */
.sp-name-input input[type="text"] {
	display: block !important;
	width: 100% !important;
	max-width: none !important; /* ←【追加】入力欄自身の制限も解除！ */
	box-sizing: border-box !important;
	padding: 8px !important;
	font-size: 16px !important; /* iPhoneでのタップ時自動ズームを防止 */
	margin: 0 !important;
}

/* 「様」の設定 */
.name-honorific {
	display: block !important;
	margin-left: 8px !important;
	font-size: 14px !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}

/* 入力必須エラーメッセージの調整 */
.sp-name-input .wpcf7-not-valid-tip {
	display: block !important;
	font-size: 11px !important;
	color: #f00 !important;
	margin-top: 4px !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
}

/* CF7が自動出力するbrタグの改行は消去 */
.sp-name-line br {
	display: none !important;
}

/* pタグは非表示にせず、レイアウトへの影響だけを無効化する */
.sp-name-line p {
	display: contents !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* ==========================================================
   強力な指定を上書き：入力欄を70%程度にして「様」をピタッとつける
============================================================= */
/* 親要素（1行のまとまり）を左寄せのFlexboxに */
.table td .sp-name-line {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
}

/* 入力欄の枠を65〜70%に指定（70%だと機種によっては「様」が改行されるため65%推奨） */
.table td .sp-name-input {
	display: block !important;
	width: 65% !important;
	flex: 0 0 65% !important;
}

/* 原因だった強力な記述を無効化し、枠内で100%広げる */
.table td .sp-name-input .wpcf7-form-control-wrap {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
}

/* 実際の入力欄も枠内で100%広げる */
.table td .sp-name-input input[type="text"] {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box !important;
}

/* 「様」の調整 */
.table td .name-honorific {
	display: block !important;
	margin-left: 8px !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}

/* ==========================================================
   PC用：お名前・ふりがなの改行防止（強制横並び）
============================================================= */
.table td .name-honorific, .name-honorific {
	display:inline-block!important;}
	
.name-row-pc {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: nowrap !important; /* ←これが「絶対に改行させない」魔法です */
}

/* CF7が自動出力する不要な改行(brタグ)を消去 */
.name-row-pc br {
	display: none !important;
}

.name-row-pc .inline-pair {
	display: inline-flex !important;
	align-items: center !important;
	margin-right: 10px !important;
}

.name-row-pc .split-label {
	white-space: nowrap !important;
}

.name-row-pc .name-honorific {
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}
/* ==========================================================
   「様」の縦位置の微調整（少しだけ下に下げる）
============================================================= */
.table td .name-honorific, .name-honorific {
	position: relative !important;
	top: 4px !important; /* スマホを見て、2px〜4pxあたりでしっくりくる数字に調整してください */
}

/* ==========================================================
   PC/SP共通：はみ出し完全防止（テーブルの暴走ストップ）修正版
============================================================= */
/* 1. テーブル全体の横幅をガッチリ固定して突き抜けを絶対に許さない魔法 */
.section .table {
	width: 100% !important;
	table-layout: fixed !important; /* ←これが表の広がりを強制停止させます */
	word-wrap: break-word !important;
}

/* 2. すべての入力欄に「幅100%」を指定し、枠内にピタッと合わせる */
.section input[type="text"],
.section input[type="email"],
.section input[type="tel"],
.section textarea,
.section select {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* 3. お名前・ふりがな等、短くしたい入力欄の例外設定 */
.section .name-row-pc input[type="text"],
.section .sp-name-input input[type="text"] {
	width: 160px !important; /* PC・スマホ共通で程よい幅 */
	max-width: 160px !important;
}
.section .name-row-pc .wpcf7-form-control-wrap,
.section .sp-name-input .wpcf7-form-control-wrap {
	width: auto !important;
	display: inline-block !important;
}

/* 4. PC環境専用の補正（スマホのviewport 980px の誤作動を回避） */
/* @media を使わず、PC用ページの body クラスを直接指定して安全に適用します */
body.contact-page-pc .section .table th,
body.contact-page-pc .section .table td {
	display: table-cell !important; /* 横並びを強制 */
	vertical-align: middle !important;
}
body.contact-page-pc .section .table th {
	width: 200px !important; /* 左側の見出しの幅 */
}

/* ==========================================================
   SP/PC共通：送信ボタンの「完全な中央揃え」
============================================================= */
.button_box {
	display: flex !important;
	justify-content: center !important; /* 横方向のど真ん中に配置 */
	align-items: center !important;
	width: 100% !important;
	margin: 20px auto !important; /* 上下の余白も少し整えます */
	clear: both !important;
}

/* ボタン自体の設定（はみ出し防止などが悪さしないようリセット） */
.button_box input[type="submit"] {
	display: block !important;
	width: auto !important;
	min-width: 200px !important; /* ボタンの横幅（お好みで調整してください） */
	max-width: 100% !important;
	margin: 0 !important;
}
/* ==========================================================
   SP用：送信ボタンを押しやすく大きくする（画面幅での判定なし！）
============================================================= */
.contact-body-sp .button_box input[type="submit"] {
    width: 85% !important;      /* 横幅を広げる */
    padding: 16px 0 !important; /* 上下の厚みを出す */
    font-size: 18px !important; /* 文字を大きく */
    font-weight: bold !important;
    border-radius: 8px !important; /* 角を少し丸く */
    background-color: #d9534f !important; /* 赤系（#666 等に変更OK） */
    color: #fff !important;
    border: none !important;
    box-shadow: 0 4px 0 #b0433f !important; /* 立体感（影） */
    -webkit-appearance: none !important; /* iPhone特有の丸みをリセット */
}

/* ボタンを押した時の沈むアクション */
.contact-body-sp .button_box input[type="submit"]:active {
    box-shadow: none !important;
    transform: translateY(2px) !important;
}



/* PC版をスマホで見た時に上に出るバナー */
#sp_switcher_header {
    background-color: #333333; /* 背景色（既存サイトに合わせて調整してください） */
    color: #ffffff;
    text-align: center;
    padding: 10px 0;
    font-size: 14px;
    line-height: 1.4;
}

#sp_switcher_header a {
    display: inline-block;
    background-color: #ffffff;
    color: #333333;
    text-decoration: none;
    padding: 2px 12px;
    margin-left: 10px;
    border-radius: 4px;
    font-weight: bold;
}

#sp_switcher_header a:hover {
    background-color: #dddddd;
}


/* 固定ページ上部のビジュアルエリア */
.page-title-visual {
    width: 745px;
    height: 215px;
    /* アップロードされた文字なしの背景画像があれば、そのパスを指定してください */
    background-image: url('/images/cnt_img_main_title-base.jpg'); 
    background-size: cover;
    background-position: center;
    position: relative;
    margin-bottom: 20px;
    display: flex;
    align-items: center; /* 上下中央 */
}

/* 画像の上のタイトル（左側の黒い部分に配置） */
.page-title-visual .entry-title {
    color: #ffffff !important;
    font-family: "Shippori Mincho", "Yu Mincho", "MS PMincho", serif !important; /* 明朝体指定 */
    font-size: 20px !important;
    font-weight: normal !important; /* 画像のイメージに合わせて細めに */
    letter-spacing: 0.1em !important;
    margin: 0 !important;
    padding-left: 40px !important; /* 左端からの余白（黒いエリアの中央に来るよう調整） */
    width: 50%; /* 左側の黒いエリアの幅に合わせる */
    text-align: left !important;
}

