@charset "utf-8";


@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

/* ===============================================
 * リセット & 基本設定
 * =============================================== */

html {
	-moz-text-size-adjust: none;
	text-size-adjust: none;
	font-size: 62.5%;
	scroll-behavior: smooth; /* ← スムーズスクロールをデフォルトに */
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
	margin: 0; 
}

/* Box sizing rules */
*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	color: #333;
	font-size: 1.6rem;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	line-height: 1.7; 
	background: #FFF;
	min-height: 100vh;
}

/* Make images easier to work with */
img,
picture {
	max-width: 100%;
	height: auto; 
	display: block; /* ← vertical-alignが不要になり、下の隙間問題も解決 */
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
	font: inherit;
}

/* Remove default styling for buttons and inputs */
button,
input {
	border-radius: 0; /* iOSでの角丸をリセット */
	-webkit-appearance: none; /* iOSなどで適用される独自のUIパーツの見た目をリセット */
	-moz-appearance: none;
	appearance: none;
	background-color: transparent; /* 背景色をリセット */
	border: none; /* 枠線をリセット */
	padding: 0; /* パディングをリセット */
	margin: 0; /* マージンをリセット */
	color: inherit; /* 文字色を継承 */
}

/* Add some basic styling for buttons for usability */
button {
	cursor: pointer; /* カーソルをポインターに */
	display: inline-block; /* インラインブロック要素に */
	text-align: center; /* テキストを中央揃えに */
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
	min-height: 10em;
}

ul,
ol {
	list-style: none;
	padding: 0;
	margin: 0;
}


/* ===============================================
 * リンク設定
 * =============================================== */
a { 
	color: #333;
	text-decoration: none;
}


/* ===============================================
 * ユーティリティ（便利クラス）
 * =============================================== */

/* clearfix */
.cf::before, .cf::after { content: ""; display: table; }
.cf::after { clear: both; }

/* SP/PC表示切り替え */
.for-sp {
	display: none;
}
.for-pc {
	display: block;
}

@media only screen and (max-width: 768px) { 
	.for-sp {
		display: block;
	}
	.for-pc {
		display: none;
	}
}


/* ===============================================
 * アクセシビリティ対応
 * =============================================== */

/* OSやブラウザで「動きを減らす」設定を有効にしているユーザー向けに、アニメーションやスムーズスクロールを無効化します */
@media (prefers-reduced-motion: reduce) {
	html {
	scroll-behavior: auto;
	}
	
	*,
	*::before,
	*::after {
	animation-duration: 0.01ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.01ms !important;
	scroll-behavior: auto !important;
	}
}



/* ここからページスタイル */

.wrapper {
    max-width: 720px;
    width: 100%;
    margin: 0 auto;
    padding-bottom: 220px;
}

.header-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 26px 20px;
    max-width: 720px;
    margin: 0 auto;
}

.header-logo img {
    width: 298px;
    height: auto;
}

.header-btn img {
    width: 250px;
    height: auto;
}

.footer-logo img {
    margin: 0 auto;
}

.banner-btn-link,
.btn-link {
    display: block;
    width: 100%;
}

    
.footer-info-relative {
    position: relative;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

.footer-info-relative img {
    width: 100%;
    height: auto;
    display: block;
}

/* --- 電話番号リンクの基本設定 --- */
.tel-link-overlay {
    position: absolute;
    display: block;
    bottom: 41%;
    left: 31%;
    width: 36%;
    height: 9%;
    z-index: 999;

    pointer-events: none;
    cursor: default;
}

@media (max-width: 430px) {
    a.tel-link-overlay[href^="tel:"] {
        pointer-events: auto !important;
        cursor: pointer !important;
    }
}


  




/* フッター固定ボタン */
.fixed-cv-btn {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    max-width: 720px;
    width: 100%;
    z-index: 999;
    display: none;
}

.fixed-cv-btn img {
    width: 100%;
    height: auto;
    display: block;
}

/* --- Safari (iOS) だけに適用する「隙間対策」 --- */
@supports (-webkit-touch-callout: none) {
    .fixed-cv-btn {
        /* Safariの時だけ背景色を塗り、セーフエリアを確保 */
        background-color: #FB7025; 
        padding-bottom: env(safe-area-inset-bottom);
    }

    .fixed-cv-btn::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        height: 100px;
        background-color: inherit;
        display: block;
    }
}


@media (max-width:430px) {
    .wrapper {
        padding-bottom: 120px;
    }
    .header-wrap {
        padding: 10px 15px;
    }
    .header-logo img {
        width: 149px;
        height: auto;
    }

    .header-btn img {
        width: 125px;
        height: auto;
    }
    .footer-logo img {
        width: 164px;
        height: auto;
    }
}


/* ==================================================
	 お問い合わせフォーム Popup Maker
	 Popup ID: 2251
	 ================================================== */


#pum-2251 {
		--primary: #2C6E96;
		--primary-light: #E8F3FA;
		--primary-dark: #1a4f70;
		--accent: #C8962A;
		--text: #333333;
		--text-light: #666666;
		--text-muted: #999999;
		--bg: #F7F9FB;
		--white: #ffffff;
		--border: #D8E6EF;
		--error: #D94F4F;
		--success: #3A8C5C;
		--radius: 8px;
		--shadow-modal: 0 8px 48px rgba(0, 0, 0, 0.18);
}


/* ==================================================
	 Popup Maker 本体
	 ================================================== */

#pum-2251.pum-overlay {
		padding: 40px 16px !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		-webkit-overflow-scrolling: touch !important;
		box-sizing: border-box !important;
		background: rgba(20, 40, 60, 0.55) !important;
		backdrop-filter: blur(3px);
}

#pum-2251 .pum-container,
#pum-2251 .pum-container p,
#pum-2251 .pum-container span,
#pum-2251 .pum-container label,
#pum-2251 .pum-container input,
#pum-2251 .pum-container textarea,
#pum-2251 .pum-container button {
		font-family: 'Noto Sans JP', sans-serif !important;
}

#pum-2251 .pum-container {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		position: relative !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		margin: 0 auto 40px !important;
		width: 92% !important;
		max-width: 580px !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		border-radius: 16px !important;
		box-shadow: var(--shadow-modal) !important;
		background: #fff !important;
		border: none !important;
		overflow: hidden !important;
		font-size: 15px !important;
		line-height: 1.7 !important;
}


/* ==================================================
	 モーダルヘッダー
	 ================================================== */

#pum-2251 .modal-header {
		padding: 28px 32px 18px;
		border-bottom: 1px solid var(--border);
		border-radius: 16px 16px 0 0 !important;
		display: flex;
		flex-direction: column;
}

#pum-2251 .modal-title {
		font-size: 18px;
		font-weight: 700;
		color: var(--primary);
		letter-spacing: 0.04em;
		padding-right: 45px !important;
		word-break: break-all !important;
		line-height: 1.4 !important;
		margin-bottom: 0 !important;
}

#pum-2251 .modal-subtitle {
		font-size: 12px;
		color: var(--text-muted);
		margin-top: 4px;
		letter-spacing: 0.02em;
		padding-right: 45px !important;
}


/* ==================================================
	 閉じるボタン
	 ================================================== */

#pum-2251 .pum-container svg,
#pum-2251 .pum-container svg *,
#pum-2251 .pum-container .pum-close,
#pum-2251 .pum-container .pum-close::before {
		font-size: inherit !important;
		line-height: 1 !important;
}

#pum-2251 .pum-container .pum-close.popmake-close {
		position: absolute !important;
		top: 24px !important;
		right: 24px !important;
		left: auto !important;
		transform: none !important;
		background: var(--bg) !important;
		border: none !important;
		width: 36px !important;
		height: 36px !important;
		border-radius: 50% !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		cursor: pointer !important;
		z-index: 20 !important;
		font-size: 0 !important;
}

#pum-2251 .pum-container .pum-close.popmake-close:hover {
		background: var(--border) !important;
}

#pum-2251 .pum-container .pum-close.popmake-close::before {
	content: "" !important;
	display: block !important;
	width: 14px !important;
	height: 14px !important;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") !important;
		background-repeat: no-repeat !important;
		background-position: center !important;
		background-size: contain !important;
}


/* ==================================================
	 フォーム内部
	 ================================================== */

#pum-2251 .modal-body {
		padding: 28px 32px 36px !important;
		box-sizing: border-box !important;
}

#pum-2251 .section-heading {
	font-size: 12px;
	font-weight: 700;
	color: var(--primary);
	letter-spacing: 0.1em;
	display: flex !important;
	align-items: center !important;
	gap: 8px;
	margin-bottom: 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--primary-light);
}

#pum-2251 .section-heading svg {
	display: block !important;
	width: 13px !important;
	height: 13px !important;
	flex: 0 0 13px;
	margin: 0 !important;
	padding: 0 !important;
	position: static !important;
	transform: none !important;
}

#pum-2251 .section-heading-text {
	display: block;
	line-height: 1 !important;
}

#pum-2251 .form-section {
		margin-bottom: 32px;
}

#pum-2251 .field {
		margin-bottom: 20px;
}

#pum-2251 .form-divider {
		border: 0;
		border-top: 1px solid #D8E6EF;
		margin: 24px 0;
}

#pum-2251 .field-label {
		display: flex !important;
		align-items: flex-start !important;
		gap: 7px !important;
		font-size: 13px;
		font-weight: 500;
		color: var(--text);
		line-height: 1.5;
		margin: 0 0 8px !important;
}

#pum-2251 p.field-label {
		margin: 0 0 8px !important;
}

#pum-2251 label.field-label {
		margin: 0 0 8px !important;
}

/* Contact Form 7の自動整形で項目内に挿入される改行を無効化 */
#pum-2251 .field > br,
#pum-2251 .field-label > br {
		display: none !important;
}

#pum-2251 .badge-required {
		font-size: 10px;
		background: var(--primary);
		color: var(--white);
		padding: 2px 6px;
		border-radius: 3px;
		font-weight: 400;
		letter-spacing: 0.03em;
		flex-shrink: 0;
		margin-top: 2px;
}

#pum-2251 .badge-optional {
		font-size: 10px;
		background: var(--bg);
		color: var(--text-muted);
		padding: 2px 6px;
		border-radius: 3px;
		border: 1px solid var(--border);
		font-weight: 400;
		flex-shrink: 0;
		margin-top: 2px;
}


/* ==================================================
	 入力欄
	 ================================================== */

#pum-2251 .wpcf7-text,
#pum-2251 .wpcf7-tel,
#pum-2251 .wpcf7-email,
#pum-2251 .wpcf7-textarea {
		width: 100% !important;
		padding: 13px 14px !important;
		border: 1.5px solid var(--border) !important;
		border-radius: var(--radius) !important;
		font-size: 15px;
		color: var(--text);
		background: var(--white) !important;
		box-sizing: border-box !important;
		display: block !important;
		margin-top: 0 !important;
}

#pum-2251 input::placeholder,
#pum-2251 textarea::placeholder {
		color: #999999 !important;
		font-size: 14px !important;
}


/* ==================================================
	 チェックボックス・ラジオボタン
	 ================================================== */

#pum-2251 .custom-checkbox .wpcf7-checkbox,
#pum-2251 .custom-checkbox .wpcf7-radio {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 8px !important;
}

#pum-2251 .custom-checkbox .wpcf7-list-item {
		font-size: 14px !important;
		margin: 0 !important;
		display: flex !important;
		align-items: center !important;
		gap: 10px !important;
		padding: 13px 14px !important;
		border: 1.5px solid var(--border) !important;
		border-radius: var(--radius) !important;
		background: var(--white) !important;
		min-height: 50px !important;
		box-sizing: border-box !important;
		transition: all 0.2s ease !important;
		cursor: pointer !important;
}

#pum-2251 .custom-checkbox .wpcf7-list-item::before {
		content: "" !important;
		width: 20px !important;
		height: 20px !important;
		border: 1.5px solid #b0c4de !important;
		background-color: var(--white) !important;
		flex-shrink: 0 !important;
}

#pum-2251 .custom-checkbox .wpcf7-checkbox .wpcf7-list-item::before {
		border-radius: 4px !important;
}

#pum-2251 .custom-checkbox .wpcf7-radio .wpcf7-list-item::before {
		border-radius: 50% !important;
}

#pum-2251 .custom-checkbox .wpcf7-list-item:has(input:checked),
#pum-2251 .custom-checkbox .wpcf7-list-item.checked {
		border-color: var(--primary) !important;
		border-width: 2px !important;
		background-color: var(--primary-light) !important;
		color: var(--primary-dark) !important;
		font-weight: 600 !important;
}

#pum-2251 .custom-checkbox .wpcf7-checkbox .wpcf7-list-item:has(input:checked)::before,
#pum-2251 .custom-checkbox .wpcf7-checkbox .wpcf7-list-item.checked::before {
		background-color: var(--primary) !important;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
		background-size: 14px !important;
		background-repeat: no-repeat !important;
		background-position: center !important;
}

#pum-2251 .custom-checkbox .wpcf7-radio .wpcf7-list-item:has(input:checked)::before,
#pum-2251 .custom-checkbox .wpcf7-radio .wpcf7-list-item.checked::before {
		background: radial-gradient(var(--primary) 45%, #fff 50%) !important;
		background-color: #fff !important;
}

#pum-2251 .custom-checkbox input {
		position: absolute !important;
		opacity: 0 !important;
		pointer-events: none !important;
}


/* ==================================================
	 送信ボタン
	 ================================================== */

#pum-2251 .submit-area {
		width: 100% !important;
		text-align: center !important;
		margin: 20px 0 0 !important;
}

#pum-2251 .wpcf7-submit {
		width: 100% !important;
		padding: 17px !important;
		background: #F56700 !important;
		color: #fff !important;
		border: none !important;
		border-radius: 50px !important;
		font-size: 16px !important;
		font-weight: 700 !important;
		cursor: pointer !important;
		box-shadow: 0 4px 18px rgba(245, 103, 0, 0.28) !important;
		margin-top: 20px !important;
		text-align: center !important;
		transition: all 0.2s ease !important;
}

#pum-2251 .wpcf7-submit:hover {
		background: #d45a00 !important;
		transform: translateY(-1px) !important;
		box-shadow: 0 6px 22px rgba(245, 103, 0, 0.36);
}


/* ==================================================
	 プライバシー
	 ================================================== */

#pum-2251 .privacy-note {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
		text-indent: 0 !important;
		margin: 14px 0 0 !important;
		padding: 0 !important;
		font-size: 11px !important;
		color: var(--text-muted) !important;
		line-height: 1.7 !important;
}

#pum-2251 .privacy-note a {
		color: var(--primary) !important;
		text-decoration: underline !important;
}


/* ==================================================
	 スマホ
	 ================================================== */

@media (max-width: 480px) {

		#pum-2251.pum-overlay {
				padding: 20px 10px !important;
		}

		#pum-2251 .modal-header {
				padding-left: 18px !important;
				padding-right: 18px !important;
		}

		#pum-2251 .modal-body {
				padding-left: 18px !important;
				padding-right: 18px !important;
		}

		#pum-2251 .pum-container .pum-close.popmake-close {
				top: 104px !important;
				right: 16px !important;
		}

		#pum-2251 .custom-checkbox .wpcf7-checkbox,
		#pum-2251 .custom-checkbox .wpcf7-radio {
				grid-template-columns: 1fr !important;
		}

		#pum-2251 .modal-title {
				font-size: 15px !important;
		}
}


/* ==================================================
   Popup 2251 微調整
   ================================================== */

/* Popup Makerテーマ側の余白をリセット */
#pum-2251 .pum-container {
	padding: 0 !important;
}

/* フォーム内部の左右幅を参照サイトに合わせる */
#pum-2251 .modal-header {
	padding: 28px 32px 18px !important;
}

#pum-2251 .modal-body {
	padding: 28px 32px 36px !important;
}

/* 以前のフォームタブに残った内側ラッパーには余白を加算しない */
#pum-2251 .modal-form-content {
	padding: 0 !important;
	box-sizing: border-box !important;
}

@media (max-width: 480px) {
	#pum-2251 .modal-form-content {
		padding: 0 !important;
	}
}

/* Popup Makerがcontent側に余白を持っている場合もリセット */
#pum-2251 .pum-content {
	margin: 0 !important;
	padding: 0 !important;
}

/* ==================================================
   Popup 2251 表示・操作調整
   ================================================== */

/* フォーム内側の背景を白にする */
#pum-2251 .pum-content,
#pum-2251 .wpcf7,
#pum-2251 .wpcf7-form,
#pum-2251 .modal-header,
#pum-2251 .modal-body {
	background-color: #fff !important;
}

/* 内側の背景で角丸が消えないようにする */
#pum-2251 .pum-content {
	border-radius: 16px !important;
}

/* チェックボックスの各選択肢を基準にする */
#pum-2251 .custom-checkbox .wpcf7-list-item {
	position: relative !important;
}

/* 実際のチェックボックスを透明なままクリック可能にする */
#pum-2251 .custom-checkbox input[type="checkbox"],
#pum-2251 .custom-checkbox input[type="radio"] {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	opacity: 0 !important;
	pointer-events: auto !important;
	cursor: pointer !important;
	z-index: 2 !important;
}

#pum-2251 .custom-radio-owner .wpcf7-radio {
  grid-template-columns: 1fr !important;
  gap: 8px !important;
}

#pum-2251 .field-note {
  margin: 5px 0 10px !important;
  font-size: 11px !important;
  color: var(--text-muted) !important;
  line-height: 1.6 !important;
}

/* ==================================================
   Contact Form 7 実表示用の最終調整
   ================================================== */

/* #pum-2251自体がコンテナの場合にもPopup Maker標準の余白を解除する */
#pum-2251.pum-container,
#pum-2251 .pum-container {
	padding: 0 !important;
}

/* Popup Maker・Contact Form 7の中間ラッパーでは余白を持たせない */
#pum-2251 .pum-content,
#pum-2251 .wpcf7,
#pum-2251 .wpcf7-form {
	margin: 0 !important;
	padding: 0 !important;
}

/* Contact Form 7が改行コードから自動生成するbrを除去する */
#pum-2251 .wpcf7-form br {
	display: none !important;
}

/* プライバシー文の改行だけは残す */
#pum-2251 .wpcf7-form .privacy-note br {
	display: initial !important;
}

/* ラジオ選択肢の文字色を参照HTMLと同じ濃さにする */
#pum-2251 .custom-radio-owner .wpcf7-list-item {
	color: var(--text) !important;
	font-weight: 500 !important;
}

/* 参照HTMLと同じテキストエリアの最小高さ */
#pum-2251 .wpcf7-textarea {
	height: auto !important;
	min-height: 90px !important;
}

/* プライバシー文 */
#pum-2251 .privacy-note,
#pum-2251 .privacy-note a {
	font-size: 11px !important;
}

#pum-2251 .privacy-note a {
	color: #2C6E96 !important;
	text-decoration: underline !important;
}

#pum-2251 .submit-area .privacy-note {
	font-size: 11px !important;
}

/* テーマ側の固定heightを上書きし、フォーム内のtextareaを90px以上にする */
#pum-2251 textarea,
#pum-2251 textarea.wpcf7-textarea {
	height: 90px !important;
	min-height: 90px !important;
	max-height: none !important;
}

/* Contact Form 7の自動整形後もプライバシー文を確実に指定する */
#pum-2251 .submit-area > p:last-child {
	font-size: 11px !important;
	line-height: 1.7 !important;
}

#pum-2251 .submit-area > p:last-child a {
	color: #2C6E96 !important;
	text-decoration: underline !important;
}

/* 送信ボタンとプライバシー文の位置を参照HTMLに合わせる */
#pum-2251 .wpcf7-submit {
	line-height: 1 !important;
	letter-spacing: 0.08em !important;
	vertical-align: middle !important;
}

#pum-2251 .submit-area > p:last-child {
	margin: 14px 0 0 !important;
}

/* Contact Form 7が各入力欄を包む要素の余白を除去する */
#pum-2251 .wpcf7-form-control-wrap {
	margin: 0 !important;
	padding: 0 !important;
}

/* 送信ボタンとプライバシー文の間隔を14pxに固定する */
#pum-2251 .submit-area {
	display: block !important;
	margin-top: 28px !important;
}

#pum-2251 .submit-area .wpcf7-submit {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
}

#pum-2251 .submit-area .privacy-note {
	margin: 14px 0 0 !important;
}

/* プライバシー文の改行は通常の行間で表示する */
#pum-2251 .privacy-note br {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
}

#pum-2251 .privacy-note > span {
	display: block !important;
	margin: 0 !important;
	line-height: 1.7 !important;
}

/* CF7がsubmit直後に追加するspinnerをレイアウトから外す */
#pum-2251 .submit-area > p:first-child {
	position: relative !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 0 !important;
}

#pum-2251 .submit-area .wpcf7-spinner {
	position: absolute !important;
	top: 50% !important;
	right: -32px !important;
	width: 24px !important;
	height: 24px !important;
	margin: 0 !important;
	transform: translateY(-50%) !important;
}

/* contact-form-owner.htmlと同じ文字組み・ボタン高に戻す */
#pum-2251 .wpcf7-submit {
	line-height: 1.7 !important;
}

#pum-2251 .field-note {
	font-size: 11px !important;
	line-height: 1.6 !important;
	margin: 5px 0 10px !important;
}

#pum-2251 .privacy-note {
	font-size: 11px !important;
	line-height: 1.7 !important;
	margin: 14px 0 0 !important;
}

#pum-2251 .privacy-note br {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: inherit !important;
}

#pum-2251 .privacy-note > span {
	display: inline !important;
	line-height: inherit !important;
}

/* スマホ用の指定は、後続のPC指定よりも後で確実に上書きする */
@media (max-width: 480px) {
	#pum-2251 .modal-header {
		padding: 16px 18px 14px !important;
	}

	#pum-2251 .modal-body {
		padding: 18px 18px 32px !important;
	}
}

/* 実DOM（#formBody）を起点にテーマ側 .wpcf7 p を上書きする */
#formBody .field-note {
	margin: 5px 0 10px !important;
	font-size: 11px !important;
	line-height: 1.6 !important;
}

/* CF7が入力欄を包んで自動生成したpの下余白を除去する */
#formBody .field > p:has(.wpcf7-form-control-wrap) {
	margin: 0 !important;
}

/* textareaのプレースホルダーを含む文字の行間 */
#formBody .wpcf7-textarea {
	line-height: 1.5 !important;
}

/* input[type=submit]はline-heightを高さと一致させて天地中央にする */
#formBody .wpcf7-submit {
	height: 57px !important;
	padding: 0 !important;
	line-height: 57px !important;
	letter-spacing: 0.08em !important;
}

/* CF7が自動配置するTurnstileをモーダル上部中央へ配置する */
#pum-2251 .wpcf7-form > .cf-turnstile,
#pum-2251 .wpcf7-form > .wpcf7-form-control-wrap:has(.cf-turnstile) {
	display: flex !important;
	justify-content: center !important;
	width: 100% !important;
	margin: 26px auto 0 !important;
}

/* 未入力のテキスト・電話・メール欄 */
#formBody .wpcf7-not-valid {
  border-color: #D94F4F !important;
}

/* エラーテキスト */
#formBody .wpcf7-not-valid-tip {
  display: block !important;
  margin-top: 5px !important;
  color: #D94F4F !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
}

/* ラジオボタンのエラー文 */
#formBody .custom-radio-owner .wpcf7-not-valid-tip {
  margin-top: 8px !important;
}

/* ==================================================
   サンクスページ
   ================================================== */
.thanks-page {
	/* テーマ側がカード外へ出力する固定ページタイトルを非表示にする */
	font-size: 0;
}

.standalone-thanks,
.standalone-thanks p,
.standalone-thanks h1,
.standalone-thanks span,
.standalone-thanks button {
	font-family: 'Noto Sans JP', sans-serif !important;
}

.standalone-thanks {
	--thanks-text: #333333;
	--thanks-text-light: #666666;
	--thanks-text-muted: #999999;
	--thanks-bg: #F7F9FB;
	--thanks-white: #ffffff;
	--thanks-border: #D8E6EF;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100vh;
	padding: 20px;
	background: var(--thanks-bg);
	font-size: 15px !important;
	line-height: 1.7 !important;
}

.thanks-card {
	box-sizing: border-box;
	width: 100%;
	max-width: 520px;
	padding: 56px 40px 48px;
	text-align: center;
	background: var(--thanks-white);
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(44, 110, 150, 0.10);
}

/* サンクスページ上部をフォームと同じヘッダーにする */
.thanks-card.thanks-card--form-header {
	width: 92%;
	max-width: 580px;
	padding: 0 !important;
	overflow: hidden;
}

.thanks-page-header {
	position: relative;
	padding: 28px 32px 18px !important;
	border-bottom: 1px solid #D8E6EF;
	text-align: left !important;
}

.thanks-page-header__title {
	margin: 0;
	padding-right: 45px;
	font-size: 18px !important;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: #2C6E96;
	white-space: nowrap;
}

.thanks-page-header__subtitle {
	margin: 4px 0 0;
	padding-right: 45px;
	font-size: 12px !important;
	line-height: 1.6;
	color: var(--thanks-text-muted);
	white-space: nowrap;
}

.thanks-page-header__close {
	position: absolute;
	top: 24px;
	right: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #F7F9FB;
	color: #666666;
	font-size: 20px;
	font-weight: 300;
	line-height: 1;
	text-decoration: none;
}

.thanks-card--form-header .thanks-content {
	box-sizing: border-box;
	max-width: 520px;
	margin: 0 auto;
	padding: 56px 40px 48px;
	text-align: center;
}

.thanks-card .company-name {
	margin-bottom: 32px;
	font-size: 13px;
	color: var(--thanks-text-muted);
}

.thanks-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 20px;
	background: #E8F5EE;
	border-radius: 50%;
}

.thanks-title {
	margin-bottom: 12px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--thanks-text);
}

.thanks-body {
	margin-bottom: 24px;
	font-size: 14px;
	line-height: 1.9;
	color: var(--thanks-text-light);
}

.thanks-divider {
	width: 40px;
	height: 2px;
	margin: 0 auto 20px;
	background: var(--thanks-border);
}

.thanks-contact {
	margin-bottom: 28px;
	padding: 16px 20px;
	font-size: 13px;
	text-align: left;
	color: var(--thanks-text-light);
	background: var(--thanks-bg);
	border-radius: 10px;
}

.thanks-close-btn {
	display: inline-block;
	padding: 12px 36px;
	font-size: 14px;
	color: var(--thanks-text-light);
	text-decoration: none;
	cursor: pointer;
	background: var(--thanks-white);
	border: 1.5px solid var(--thanks-border);
	border-radius: 50px;
	transition: all 0.15s;
}

@media (max-width: 480px) {
	.standalone-thanks {
		padding: 0;
	}

	.thanks-card {
		padding: 36px 20px 32px;
		border-radius: 14px 14px 0 0;
	}

	.thanks-card.thanks-card--form-header {
		width: 100%;
		max-width: none;
		padding: 0;
	}

	.thanks-page-header {
		padding: 16px 18px 14px !important;
	}

	.thanks-page-header__title {
		font-size: 15px !important;
		white-space: normal;
	}

	.thanks-page-header__subtitle {
		margin-top: 4px;
		font-size: 12px !important;
		white-space: normal;
	}

	.thanks-page-header__close {
		top: 16px;
		right: 16px;
		width: 36px;
		height: 36px;
		font-size: 20px;
	}

	.thanks-card--form-header .thanks-content {
		padding: 36px 20px 32px;
	}
}

/* サンクスページの自動返信メール見出し */
.thanks-contact > p:first-child {
	color: #333333 !important;
}

/* スマホではサンクスページをブラウザ幅いっぱいに表示する */
@media (max-width: 600px) {
	/* フォームのモーダルもブラウザ幅いっぱいに表示する */
	#pum-2251.pum-overlay {
		padding: 0 !important;
		overflow-x: hidden !important;
	}

	#pum-2251.pum-container,
	#pum-2251 .pum-container {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		margin: 0 !important;
		left: 0 !important;
		right: 0 !important;
		box-sizing: border-box !important;
	}

	/* iPhoneの入力フォーカス時の自動拡大を防ぐ */
	#pum-2251 input[type="text"],
	#pum-2251 input[type="tel"],
	#pum-2251 input[type="email"],
	#pum-2251 textarea {
		font-size: 16px !important;
	}

	/* サンクスページもブラウザ幅いっぱいに表示する */
	body.thanks-page {
		margin: 0 !important;
		padding: 0 !important;
	}

	body.thanks-page .standalone-thanks {
		width: 100%;
		max-width: 100%;
		min-height: 100svh;
		padding: 0 !important;
	}

	body.thanks-page .thanks-card.thanks-card--form-header {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0;
	}
}

