/**
 * ペット規約フォーム(pet-terms-form)総合デザインアップグレード
 * コンセプト: プレミアム、モバイルファースト、ブランド整合性
 */

/* 0. スムーズスクロール */
html {
	scroll-behavior: smooth !important;
}

/* body に esv-pet-terms-form が付くページのみ（functions.php の body_class） */
body.esv-pet-terms-form {
	background-color: #f7f9fc !important;
}

/* 1. 全体基本スタイル / タイポグラフィ */
body.esv-pet-terms-form .pagewrapper {
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	background-color: transparent !important;
	color: #2D3748;
	line-height: 1.6;
}

body.esv-pet-terms-form h1, 
body.esv-pet-terms-form h2, 
body.esv-pet-terms-form h3 {
	letter-spacing: 0.05em !important;
	color: #1a365d !important;
}

/* フッターのカードリスト（PEANUTS / Special Site 等）は白のまま表示 */
body.esv-pet-terms-form .cardlist .inner h2,
body.esv-pet-terms-form .cardlist .inner h3 {
	color: #fff !important;
}

/* メインタトルエリア */
body.esv-pet-terms-form .maintitlearea {
	padding: 100px 20px 60px !important;
	text-align: center !important;
	background: transparent !important;
}

body.esv-pet-terms-form .maintitle h1 {
	font-size: 2.4rem !important;
	font-weight: 700 !important;
	position: relative !important;
	display: inline-block !important;
	padding-bottom: 20px !important;
	color: #1a365d !important;
}

body.esv-pet-terms-form .maintitle h1::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 4px;
	background: #1a365d;
	border-radius: 4px;
}

/* 2. セクション共通：カードレイアウト */
body.esv-pet-terms-form .contentarea {
	padding: 60px 20px !important;
}

body.esv-pet-terms-form .contentarea .content {
	max-width: 850px !important;
	margin: 0 auto !important;
	background: #ffffff !important;
	padding: 50px !important;
	border-radius: 20px !important;
	box-shadow: 0 10px 40px rgba(26, 54, 93, 0.06) !important;
	border: 1px solid rgba(26, 54, 93, 0.05) !important;
}

/* 3. 利用規約セクション */
body.esv-pet-terms-form .pet-terms-rules {
	background: transparent !important;
	border: none !important;
}

body.esv-pet-terms-form .pet-terms-rules-title {
	font-size: 1.6rem !important;
	margin-bottom: 25px !important;
	border-bottom: 2px solid #edf2f7 !important;
	padding-bottom: 15px !important;
	color: #1a365d !important;
}

body.esv-pet-terms-form .pet-terms-rules-lead {
	font-size: 1.1rem !important;
	margin-bottom: 35px !important;
	color: #4A5568 !important;
}

body.esv-pet-terms-form .pet-terms-rules-list {
	counter-reset: rules-counter !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.esv-pet-terms-form .pet-terms-rules-list li {
	position: relative !important;
	padding-left: 50px !important;
	margin-bottom: 24px !important;
	font-size: 1rem !important;
	color: #333 !important;
	list-style: none !important;
}

body.esv-pet-terms-form .pet-terms-rules-list li::before {
	counter-increment: rules-counter;
	content: counter(rules-counter);
	position: absolute;
	left: 0;
	top: 0;
	width: 32px;
	height: 32px;
	background: #1a365d !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

body.esv-pet-terms-form .pet-terms-rules-groups {
	margin-top: 8px !important;
}

body.esv-pet-terms-form .pet-terms-rules-group {
	margin-bottom: 26px !important;
}

body.esv-pet-terms-form .pet-terms-rules-group:last-child {
	margin-bottom: 0 !important;
}

body.esv-pet-terms-form .pet-terms-rules-group__title {
	display: inline-block !important;
	margin: 0 0 10px 0 !important;
	padding: 6px 14px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	color: #1a365d !important;
	background: #eef3f9 !important;
	border-radius: 6px !important;
}

body.esv-pet-terms-form .pet-terms-rules-group__items {
	border-left: 3px solid #1a365d !important;
	padding-left: 14px !important;
}

body.esv-pet-terms-form .pet-terms-rules-group__items p {
	margin: 0 !important;
	padding: 10px 0 !important;
	font-size: 1rem !important;
	line-height: 1.75 !important;
	color: #1f2937 !important;
}

body.esv-pet-terms-form .pet-terms-rules-group__items p + p {
	border-top: 1px solid #edf2f7 !important;
}

body.esv-pet-terms-form .pet-terms-rules-plan-link {
	margin-top: 32px !important;
	margin-bottom: 0 !important;
	text-align: center !important;
}

body.esv-pet-terms-form .pet-terms-rules-plan-links {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
}

body.esv-pet-terms-form .pet-terms-rules-plan-link .btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: relative !important;
	min-height: 52px !important;
	width: clamp(280px, 40vw, 420px) !important;
	max-width: 100% !important;
	padding: 12px 56px 12px 22px !important;
	padding-right: 52px !important;
	box-sizing: border-box !important;
	text-align: center !important;
	font-size: 15px !important;
	line-height: 1.35 !important;
}

body.esv-pet-terms-form .pet-terms-rules-plan-link .btn::after {
	content: '➝';
	position: absolute !important;
	right: 22px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2rem;
	transition: transform 0.2s ease, right 0.2s ease;
}

body.esv-pet-terms-form .pet-terms-rules-plan-link .btn:hover::after {
	right: 18px;
	transform: translateY(-50%) translateX(2px);
}

/* 4. フォーム入力エリア（規約ブロックと同じ .contentarea .content の 850px に従う） */

body.esv-pet-terms-form .wpcf7-form-control-wrap {
	display: block !important;
	margin-bottom: 30px !important;
}

body.esv-pet-terms-form .pet-terms-form-area label {
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	margin-bottom: 12px !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

body.esv-pet-terms-form .pet-terms-form-area label::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 16px;
	background: #1a365d;
	border-radius: 2px;
}

/* チェックボックスのラベルには縦ライン不要 */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-list-item label::before {
	display: none !important;
}

/* 入力フィールド（テキスト・メール・電話・数値・日付を同一デザインに統一） */
body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
body.esv-pet-terms-form .pet-terms-form-area input[type="date"],
body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
body.esv-pet-terms-form .pet-terms-form-area input[type="date"] {
	border: 1px solid #E2E8F0 !important;
	padding: 16px 20px !important;
	border-radius: 12px !important;
	font-size: 1.05rem !important;
	transition: all 0.25s ease !important;
	background-color: #F8FAFC !important;
	width: 100% !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	min-height: 50px !important;
}

body.esv-pet-terms-form .pet-terms-form-area textarea {
	border: 1px solid #E2E8F0 !important;
	padding: 16px 20px !important;
	border-radius: 12px !important;
	font-size: 1.05rem !important;
	transition: all 0.25s ease !important;
	background-color: #F8FAFC !important;
	width: 100% !important;
	min-height: 100px !important;
	resize: vertical !important;
	box-sizing: border-box !important;
}

body.esv-pet-terms-form .pet-terms-form-area textarea:focus {
	border-color: #1a365d !important;
	background-color: #fff !important;
	box-shadow: 0 0 0 4px rgba(26, 54, 93, 0.08) !important;
	outline: none !important;
}

/* 体重入力 (Kg) のデザイン（他のフィールドと統一） */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-form-control-wrap[data-name*="weight"] {
	display: block !important;
	width: 100% !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-form-control-wrap[data-name*="weight"] input {
	width: 100% !important;
	display: block !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}

/* ラジオボタンのプレミアム・セグメント化 */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group {
	display: flex !important;
	gap: 14px !important;
	flex-wrap: wrap !important;
	margin-top: 10px !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item {
	margin: 0 !important;
	flex: 1 !important;
	min-width: 140px !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio label,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group label {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: #F8FAFC !important;
	border: 2px solid #E2E8F0 !important;
	padding: 16px 22px !important;
	border-radius: 14px !important;
	cursor: pointer !important;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
	width: 100% !important;
	margin: 0 !important;
	font-weight: 700 !important;
	color: #4A5568 !important;
	gap: 0 !important;
	position: relative !important;
	overflow: hidden !important;
	min-height: 52px !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio label::before,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group label::before {
	display: none !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio input[type="radio"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group input[type="radio"] {
	position: absolute !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item-label,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item-label {
	font-size: 1.05rem !important;
	color: inherit !important;
	z-index: 1 !important;
}

body.esv-pet-terms-form .pet-terms-mobile-break {
	display: none !important;
}

/* 選択時のスタイル */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item:has(input:checked) label,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item:has(input:checked) label {
	background: #1a365d !important;
	border-color: #1a365d !important;
	color: #ffffff !important;
	box-shadow: 0 6px 20px rgba(26, 54, 93, 0.25) !important;
	transform: translateY(-2px) !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio label:hover,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group label:hover {
	border-color: #1a365d !important;
	background: #EDF2F7 !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(26, 54, 93, 0.1) !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item:has(input:checked) label:hover,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item:has(input:checked) label:hover {
	background: #162e50 !important;
}

body.esv-pet-terms-form .pet-terms-form-area input:focus {
	border-color: #1a365d !important;
	background-color: #fff !important;
	box-shadow: 0 0 0 4px rgba(26, 54, 93, 0.08) !important;
	outline: none !important;
}

/* ファイルアップロード */
body.esv-pet-terms-form .pet-terms-form-area input[type="file"] {
	padding: 24px 20px !important;
	background: #fff !important;
	border: 2px dashed #CBD5E0 !important;
	width: 100% !important;
	border-radius: 16px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	font-size: 0.95rem !important;
	color: #4A5568 !important;
	position: relative !important;
}

body.esv-pet-terms-form .pet-terms-form-area input[type="file"]:hover {
	border-color: #1a365d !important;
	background: #F7FAFC !important;
	box-shadow: 0 4px 12px rgba(26, 54, 93, 0.08) !important;
	transform: translateY(-2px) !important;
}

body.esv-pet-terms-form .pet-terms-form-area input[type="file"]:focus {
	border-color: #1a365d !important;
	background: #fff !important;
	outline: none !important;
	box-shadow: 0 0 0 4px rgba(26, 54, 93, 0.12), 0 4px 12px rgba(26, 54, 93, 0.08) !important;
}

body.esv-pet-terms-form .pet-terms-form-area input[type="file"].pet-terms-file-input--enhanced {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body.esv-pet-terms-form .pet-terms-file-control {
	display: flex !important;
	align-items: center !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	border: 2px dashed #CBD5E0 !important;
	border-radius: 16px !important;
	padding: 18px 20px !important;
	background: #fff !important;
	min-height: 72px !important;
}

body.esv-pet-terms-form .pet-terms-file-control__button {
	-webkit-appearance: none !important;
	appearance: none !important;
	border: 1px solid #9ca3af !important;
	border-radius: 6px !important;
	background: #f9fafb !important;
	color: #1f2937 !important;
	font-size: 14px !important;
	line-height: 1.2 !important;
	padding: 8px 14px !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
}

body.esv-pet-terms-form .pet-terms-file-control__button:hover {
	border-color: #1a365d !important;
	background: #eef2ff !important;
}

body.esv-pet-terms-form .pet-terms-file-control__status {
	font-size: 14px !important;
	line-height: 1.5 !important;
	color: #4b5563 !important;
	word-break: break-all !important;
}

body.esv-pet-terms-form .pet-terms-file-control.is-selected .pet-terms-file-control__status {
	color: #1f2937 !important;
	font-weight: 600 !important;
}

body.esv-pet-terms-form .pet-terms-file-control.is-resume {
	border-color: #2f855a !important;
	background: #f0fff4 !important;
}

body.esv-pet-terms-form .pet-terms-file-control.is-resume .pet-terms-file-control__status {
	color: #276749 !important;
	font-weight: 600 !important;
}

body.esv-pet-terms-form .pet-terms-file-control.is-resume .pet-terms-file-control__status::before {
	content: '✓ ' !important;
	font-weight: 700 !important;
}

body.esv-pet-terms-form .pet-terms-file-hint {
	font-size: 0.92rem !important;
	color: #334155 !important;
	font-weight: 500 !important;
	margin: 0 0 8px 0 !important;
	display: block !important;
	line-height: 1.65 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}

/* 犬情報ブロック */
body.esv-pet-terms-form .pet-terms-dog-block {
	background: linear-gradient(135deg, #ffffff 0%, #fafbfd 100%) !important;
	border: 2px solid #edf2f7 !important;
	border-radius: 24px !important;
	padding: 32px 28px !important;
	margin-bottom: 40px !important;
	margin-top: 40px !important;
	position: relative !important;
	box-shadow: 0 6px 24px rgba(26, 54, 93, 0.05) !important;
	transition: all 0.3s ease !important;
}

/* 絵文字は削除 */

body.esv-pet-terms-form .pet-terms-dog-block:hover {
	box-shadow: 0 8px 32px rgba(26, 54, 93, 0.08) !important;
	border-color: #cbd5e0 !important;
}

body.esv-pet-terms-form .pet-terms-dog-heading-row {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
	margin-bottom: 28px !important;
	padding-bottom: 16px !important;
	border-bottom: 3px solid #edf2f7 !important;
}

body.esv-pet-terms-form .pet-terms-dog-heading-row .pet-terms-dog-heading {
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	flex: 1 !important;
	min-width: 0 !important;
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-wrap: wrap !important;
}

body.esv-pet-terms-form .pet-terms-remove-dog {
	flex-shrink: 0 !important;
	margin: 0 !important;
	padding: 0.45rem 0.95rem !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	color: #4a5568 !important;
	background: #fff !important;
	border: 1px solid #cbd5e0 !important;
	border-radius: 8px !important;
	cursor: pointer !important;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease !important;
}

body.esv-pet-terms-form .pet-terms-remove-dog:hover {
	color: #c53030 !important;
	border-color: #fc8181 !important;
	background: #fff5f5 !important;
}

body.esv-pet-terms-form .pet-terms-add-dog-wrap {
	text-align: center !important;
	padding: 20px 0 !important;
}

body.esv-pet-terms-form #pet-terms-add-dog {
	background: #fff !important;
	color: #1a365d !important;
	border: 2px solid #1a365d !important;
	font-weight: 700 !important;
	border-radius: 60px !important;
	padding: 16px 50px !important;
	transition: all 0.3s ease !important;
	cursor: pointer !important;
	font-size: 1.1rem !important;
	display: inline-block !important;
}

body.esv-pet-terms-form #pet-terms-add-dog:hover {
	background: #1a365d !important;
	color: #fff !important;
	transform: translateY(-3px) !important;
	box-shadow: 0 8px 20px rgba(26, 54, 93, 0.2) !important;
}

/* 同意 & 送信 */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-form-control-wrap[data-name="agreement"] {
	border-top: 2px solid #edf2f7 !important;
	padding-top: 50px !important;
	margin-top: 40px !important;
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-list-item {
	display: flex !important;
	align-items: center !important;
	margin: 0 !important;
}

/* 「規約に同意する」のラベルレイアウト調整（チェックボックスとテキストを中央揃え＆適切な間隔） */
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-list-item > label {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
}

body.esv-pet-terms-form .pet-terms-form-area input[type="checkbox"] {
	width: 28px !important;
	height: 28px !important;
	margin-right: 15px !important;
	cursor: pointer !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-list-item-label {
	font-weight: 700 !important;
	color: #1a365d !important;
	font-size: 1.2rem !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit {
	background: linear-gradient(135deg, #1a365d 0%, #2c5282 100%) !important;
	color: #fff !important;
	border: none !important;
	width: 100% !important;
	max-width: 480px !important;
	padding: 24px 40px !important;
	border-radius: 100px !important;
	font-size: 1.4rem !important;
	font-weight: 700 !important;
	margin: 60px auto 0 !important;
	display: block !important;
	box-shadow: 0 15px 35px rgba(26, 54, 93, 0.25) !important;
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	position: relative !important;
	overflow: hidden !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit::before {
	content: '→' !important;
	position: absolute !important;
	right: 30px !important;
	top: 50% !important;
	transform: translateY(-50%) translateX(60px) !important;
	font-size: 1.6rem !important;
	font-weight: 700 !important;
	transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
	opacity: 0 !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit:hover {
	transform: translateY(-5px) !important;
	box-shadow: 0 20px 45px rgba(26, 54, 93, 0.35) !important;
	opacity: 1 !important;
	padding-right: 60px !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit:hover::before {
	transform: translateY(-50%) translateX(0) !important;
	opacity: 1 !important;
}

body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit:active {
	transform: translateY(-2px) !important;
	box-shadow: 0 10px 25px rgba(26, 54, 93, 0.3) !important;
}

/*
 * 以前は html ルートの font-size を上書きしていたため、
 * pet-terms ページのヘッダー/フッター等も意図せず拡大していた。
 * main 内は下部の変数（--pt-fs-*）と個別指定でサイズを維持し、
 * それ以外はテーマ共通サイズを使う。
 */

/* 8. レスポンスシブ (モバイルファースト調整) */
@media (max-width: 768px) {
	body.esv-pet-terms-form .maintitlearea {
		padding: 60px 15px 30px !important;
	}
	body.esv-pet-terms-form .maintitle h1 {
		font-size: 1.75rem !important;
		line-height: 1.35 !important;
	}
	body.esv-pet-terms-form .contentarea {
		padding: 15px 10px !important;
	}
	body.esv-pet-terms-form .contentarea .content {
		padding: 28px 18px !important;
		border-radius: 14px !important;
		margin-bottom: 0 !important;
		width: auto !important;
		max-width: none !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-title {
		font-size: 1.25rem !important;
		line-height: 1.4 !important;
		margin-bottom: 20px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-lead {
		font-size: 1rem !important;
		line-height: 1.65 !important;
		margin-bottom: 25px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-list li {
		font-size: 1rem !important;
		line-height: 1.65 !important;
		padding-left: 40px !important;
		margin-bottom: 18px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-list li::before {
		width: 28px !important;
		height: 28px !important;
		font-size: 14px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-group {
		margin-bottom: 22px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-group__title {
		font-size: 0.95rem !important;
		padding: 6px 12px !important;
		margin-bottom: 8px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-group__items {
		padding-left: 12px !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-group__items p {
		font-size: 14px !important;
		line-height: 1.72 !important;
		padding: 8px 0 !important;
	}
	body.esv-pet-terms-form .pet-terms-rules-plan-link .btn {
		font-size: 13px !important;
		width: min(100%, 340px) !important;
		min-height: 46px !important;
		padding: 10px 44px 10px 16px !important;
	}
	body.esv-pet-terms-form .pet-terms-dog-block {
		padding: 22px 16px !important;
		margin-bottom: 30px !important;
		margin-top: 30px !important;
	}
	body.esv-pet-terms-form .pet-terms-dog-heading-row {
		margin-bottom: 20px !important;
		flex-wrap: wrap !important;
	}
	body.esv-pet-terms-form .pet-terms-dog-heading-row .pet-terms-dog-heading {
		font-size: 1.15rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit {
		font-size: 1.15rem !important;
		padding: 20px 32px !important;
		margin-top: 40px !important;
	}
	body.esv-pet-terms-form .pet-terms-add-dog-wrap {
		padding: 16px 0 !important;
	}
	body.esv-pet-terms-form #pet-terms-add-dog {
		padding: 14px 35px !important;
		font-size: 1rem !important;
	}
	body.esv-pet-terms-form .pet-terms-agreement-block {
		padding: 1.25rem 1rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .wpcf7-list-item-label {
		font-size: 1rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-section {
		padding: 1.5rem 1rem 1.75rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-section__title {
		font-size: 1.125rem !important;
		line-height: 1.4 !important;
	}
	body.esv-pet-terms-form .pet-terms-form-section__lead {
		font-size: 1rem !important;
		line-height: 1.6 !important;
	}
	body.esv-pet-terms-form .pet-terms-progress--before-submit {
		margin-top: 1.5rem !important;
		padding-top: 1rem !important;
	}

	/* ベースは html ルート 15px（上記 :has）に従う。入力のみ 16px（iOS フォーカス時の自動拡大を防ぐ） */
	body.esv-pet-terms-form .pagewrapper {
		font-size: 1rem !important;
		line-height: 1.65 !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="date"],
	body.esv-pet-terms-form .pet-terms-form-area textarea,
	body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="date"],
	body.esv-pet-terms-form .pet-terms-form-area textarea {
		font-size: 16px !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area input[type="date"].flatpickr-input {
		font-size: 16px !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area input[type="file"] {
		font-size: 0.875rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-intro {
		font-size: 1rem !important;
		line-height: 1.65 !important;
	}
	body.esv-pet-terms-form .pet-terms-form-intro__req {
		font-size: 0.6875rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label,
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label--static {
		font-size: 1rem !important;
		line-height: 1.45 !important;
	}
	body.esv-pet-terms-form .pet-terms-file-hint {
		font-size: 0.9375rem !important;
		line-height: 1.55 !important;
	}
	body.esv-pet-terms-form .pet-terms-field-hint {
		font-size: 0.9375rem !important;
	}
	body.esv-pet-terms-form .pet-terms-badge-req {
		font-size: 0.6875rem !important;
	}
	body.esv-pet-terms-form .pet-terms-progress-agreement-label__text {
		font-size: 1rem !important;
		line-height: 1.55 !important;
	}
	body.esv-pet-terms-form .pet-terms-form-error {
		font-size: 0.875rem !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-title {
		font-size: 1.375rem !important;
		line-height: 1.35 !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-lead {
		font-size: 1rem !important;
		line-height: 1.6 !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-card__title {
		font-size: 1rem !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-label {
		font-size: 0.875rem !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-value {
		font-size: 1rem !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-file-caption {
		font-size: 0.8125rem !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-pdf-name {
		font-size: 0.8125rem !important;
	}
	body.esv-pet-terms-form .pet-terms-dog-heading-row .pet-terms-dog-heading {
		font-size: 1.125rem !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item-label,
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item-label {
		font-size: 1rem !important;
		display: block !important;
		text-align: center !important;
		line-height: 1.35 !important;
		word-break: keep-all !important;
		overflow-wrap: normal !important;
		white-space: normal !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-applicant-group .wpcf7-list-item label {
		min-height: 88px !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-usage-group .wpcf7-list-item label,
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-gender-group .wpcf7-list-item label {
		min-height: 52px !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-gender-group {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 14px !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .pet-terms-gender-group .wpcf7-list-item {
		min-width: 0 !important;
	}
	body.esv-pet-terms-form .pet-terms-mobile-break {
		display: inline !important;
	}
	body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit {
		font-size: 1.0625rem !important;
	}
	body.esv-pet-terms-form .pet-terms-remove-dog {
		font-size: 0.8125rem !important;
	}
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.esv-pet-terms-form .pet-terms-rules-plan-link .btn {
		width: min(100%, 360px) !important;
		font-size: 14px !important;
		min-height: 50px !important;
	}
}

/* ========== Flatpickr プレミアムデザイン ========== */

/* 日付入力フィールド */
.pet-terms-form-area input[type="date"].flatpickr-input {
	min-height: 52px;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231a365d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 48px !important;
	border: 1px solid #E2E8F0;
	border-radius: 10px;
	background-color: #F8FAFC;
	width: 100%;
	font-size: 1rem;
}

/* カレンダー本体 */
.flatpickr-calendar {
	background: #fff !important;
	box-shadow: 0 20px 60px rgba(26, 54, 93, 0.14) !important;
	border-radius: 18px !important;
	border: 1px solid rgba(26, 54, 93, 0.08) !important;
	/* 内側の余白：ヘッダーが見切れないように padding-top を十分に確保 */
	padding: 16px 16px 20px !important;
	width: 340px !important;
	box-sizing: border-box !important;
}

/* ヘッダー全体（月ナビ行） */
.flatpickr-months {
	display: flex !important;
	align-items: center !important;
	height: 60px !important;          /* ← 固定高さを確保 */
	padding: 0 0 12px 0 !important;
	position: relative !important;
}

/* flatpickr-month（.flatpickr-current-month の親） */
.flatpickr-month {
	height: 60px !important;
	overflow: visible !important;      /* ← クリッピングをOFF */
	display: flex !important;
	align-items: center !important;
	flex: 1 !important;
}

/* 月・年セレクターを横並び中央配置 */
.flatpickr-current-month {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	width: 100% !important;
	padding: 0 !important;
	position: static !important;       /* ← absolute をリセット */
	left: auto !important;
	font-size: inherit !important;
}

/* 月・年それぞれのラッパー */
.pet-terms-month-wrap,
.pet-terms-year-wrap {
	display: flex !important;
	align-items: center !important;
	background: #F0F5FF !important;
	border: 1.5px solid #CBD5E0 !important;
	border-radius: 10px !important;
	padding: 0 12px !important;
	height: 40px !important;
	min-width: 80px !important;
	box-sizing: border-box !important;
	transition: border-color 0.2s, box-shadow 0.2s !important;
}

.pet-terms-month-wrap:hover,
.pet-terms-year-wrap:hover {
	border-color: #1a365d !important;
	box-shadow: 0 0 0 3px rgba(26, 54, 93, 0.1) !important;
}

/* ラベルは非表示 */
.pet-terms-month-label,
.pet-terms-year-label {
	display: none !important;
}

/* ドロップダウン */
.flatpickr-monthDropdown-months,
select.pet-terms-year-select {
	background: transparent !important;
	border: none !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	cursor: pointer !important;
	outline: none !important;
	padding: 0 !important;
	margin: 0 !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	text-align: center !important;
	width: auto !important;
}

/* 前月・次月ナビゲーション矢印 */
.flatpickr-prev-month,
.flatpickr-next-month {
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	top: 8px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 10px !important;
	background: transparent !important;
	transition: background 0.2s !important;
	fill: #1a365d !important;
}

.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
	background: #EBF4FF !important;
}

.flatpickr-prev-month svg,
.flatpickr-next-month svg {
	width: 18px !important;
	height: 18px !important;
	fill: #1a365d !important;
}

/* 曜日ヘッダー */
.flatpickr-weekdays {
	padding: 4px 0 8px !important;
}

.flatpickr-weekday {
	color: #718096 !important;
	font-weight: 700 !important;
	font-size: 12px !important;
}

/* 日付グリッド */
.flatpickr-days {
	width: 100% !important;
}

.dayContainer {
	width: 100% !important;
	min-width: unset !important;
	max-width: 100% !important;
}

.flatpickr-day {
	border-radius: 10px !important;
	height: 44px !important;
	line-height: 44px !important;
	max-width: 44px !important;
	flex-basis: 14.28% !important;
	font-size: 14px !important;
	margin: 2px auto !important;
	border: 1px solid transparent !important;
	transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}

.flatpickr-day:hover {
	background: #EBF4FF !important;
	color: #1a365d !important;
}

/* 今日 */
.flatpickr-day.today {
	border-color: #1a365d !important;
	color: #1a365d !important;
	font-weight: 700 !important;
	background: transparent !important;
}

/* 選択された日 */
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
	background: #1a365d !important;
	border-color: #1a365d !important;
	color: #fff !important;
}

/* 前月・翌月の日付 */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.nextMonthDay,
.flatpickr-day.prevMonthDay {
	opacity: 0.3 !important;
}

/* CF7 バリデーション */
.wpcf7-not-valid-tip {
	color: #E53E3E;
	font-size: 0.85rem;
	font-weight: 700;
	margin-top: 8px;
}

.wpcf7-response-output {
	border: none !important;
	border-radius: 14px !important;
	padding: 24px !important;
	font-weight: 700 !important;
	text-align: center;
}

/* 独自フォーム共通 */
body.esv-pet-terms-form .pet-terms-form-error {
	color: #C53030 !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	margin-top: 8px !important;
	margin-bottom: 0 !important;
	line-height: 1.45 !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field .pet-terms-form-error {
	padding-left: 2px !important;
}

body.esv-pet-terms-form .pet-terms-form-error-global {
	border: 1px solid #FEB2B2 !important;
	background: #FFF5F5 !important;
	border-radius: 10px !important;
	padding: 12px 16px !important;
	margin-bottom: 1.25rem !important;
}

/* フォーム冒頭の案内（枠なし・本文に馴染ませる） */
body.esv-pet-terms-form .pet-terms-form-intro {
	font-size: 0.95rem !important;
	color: #4a5568 !important;
	line-height: 1.65 !important;
	margin: 0 0 1.75rem !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.esv-pet-terms-form .pet-terms-form-intro__req {
	display: inline-block !important;
	margin-left: 4px !important;
	padding: 2px 8px !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	color: #fff !important;
	background: #DC2626 !important;
	border-radius: 4px !important;
	vertical-align: middle !important;
	line-height: 1.2 !important;
}

/* 規約同意（確認へ進むボタン直上・区切り線のみ） */
body.esv-pet-terms-form .pet-terms-progress--before-submit {
	margin-top: 2rem !important;
	margin-bottom: 0 !important;
	padding: 1.25rem 0 0 0 !important;
	border-top: 1px solid #edf2f7 !important;
	background: transparent !important;
	border-left: none !important;
	border-right: none !important;
	border-bottom: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* 規約同意 */
body.esv-pet-terms-form .pet-terms-progress__agreement {
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: none !important;
	text-align: left !important;
}

body.esv-pet-terms-form .pet-terms-progress__agreement + .pet-terms-progress__agreement {
	margin-top: 10px !important;
}

body.esv-pet-terms-form .pet-terms-progress-agreement-label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 !important;
	cursor: pointer !important;
	font-weight: 600 !important;
	color: #2d3748 !important;
	line-height: 1.55 !important;
}

body.esv-pet-terms-form .pet-terms-progress-agreement-label::before {
	display: none !important;
}

body.esv-pet-terms-form .pet-terms-progress-agreement-label input[type="checkbox"] {
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
	margin: 2px 0 0 0 !important;
	flex-shrink: 0 !important;
	cursor: pointer !important;
	accent-color: #1a365d !important;
}

body.esv-pet-terms-form .pet-terms-progress-agreement-label__text {
	font-size: 0.92rem !important;
	font-weight: 600 !important;
	color: #2d3748 !important;
}

/* 同意文言のみ 1px 小さくする */
body.esv-pet-terms-form .pet-terms-progress-agreement-label__text {
	font-size: calc(var(--pt-fs-body) - 1px) !important;
}

body.esv-pet-terms-form .pet-terms-progress-agreement-label__text .pet-terms-badge-req {
	margin-left: 6px !important;
	vertical-align: 0.12em !important;
}

body.esv-pet-terms-form .pet-terms-rules-link-inline {
	color: #1a365d !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	font-weight: 700 !important;
}

body.esv-pet-terms-form .pet-terms-rules-link-inline:hover {
	color: #2c5282 !important;
}

body.esv-pet-terms-form .pet-terms-progress__agreement .pet-terms-form-error {
	margin-top: 8px !important;
}

body.esv-pet-terms-form .pet-terms-progress__agreement--error {
	border-radius: 0 !important;
	padding: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	background: transparent !important;
	border: none !important;
}

/* フィールドヒント */
body.esv-pet-terms-form .pet-terms-field-hint {
	font-size: 0.82rem !important;
	color: #718096 !important;
	margin: 8px 0 0 0 !important;
	display: block !important;
	line-height: 1.5 !important;
	padding: 6px 10px !important;
	background: transparent !important;
	border-left: 2px solid #CBD5E0 !important;
	padding-left: 10px !important;
}

/* セクション */
body.esv-pet-terms-form .pet-terms-form-section {
	margin-bottom: 2rem !important;
	padding: 2rem 1.5rem 2rem !important;
	background: linear-gradient(135deg, #fafbfd 0%, #ffffff 100%) !important;
	border: 1px solid #edf2f7 !important;
	border-radius: 20px !important;
	box-shadow: 0 4px 16px rgba(26, 54, 93, 0.04) !important;
	transition: box-shadow 0.3s ease !important;
	position: relative !important;
	overflow: hidden !important;
}

body.esv-pet-terms-form .pet-terms-form-section::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 4px !important;
	background: linear-gradient(90deg, #1a365d 0%, #2c5282 50%, #4299e1 100%) !important;
}

body.esv-pet-terms-form .pet-terms-form-section:hover {
	box-shadow: 0 6px 24px rgba(26, 54, 93, 0.08) !important;
}

body.esv-pet-terms-form .pet-terms-form-section__title {
	font-size: 1.25rem !important;
	margin: 0 0 0.5rem !important;
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-wrap: wrap !important;
}

body.esv-pet-terms-form .pet-terms-form-section__step {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 28px !important;
	height: 28px !important;
	padding: 0 8px !important;
	font-size: 0.9rem !important;
	font-weight: 800 !important;
	color: #fff !important;
	background: #1a365d !important;
	border-radius: 8px !important;
}

body.esv-pet-terms-form .pet-terms-form-section__lead {
	margin: 0 0 1.25rem !important;
	font-size: 0.9rem !important;
	color: #718096 !important;
	line-height: 1.55 !important;
}

/* 1フィールド単位 */
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field {
	margin-bottom: 1.35rem !important;
	position: relative !important;
	transition: all 0.3s ease !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field:last-child {
	margin-bottom: 0 !important;
}

/* ラベルの統一デザイン */
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	margin-bottom: 10px !important;
	transition: color 0.2s ease !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 18px;
	background: linear-gradient(180deg, #1a365d 0%, #2c5282 100%);
	border-radius: 2px;
	flex-shrink: 0;
}

/* フォーカス時のラベル強調 */
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field:focus-within .pet-terms-field__label {
	color: #1a365d !important;
}

body.esv-pet-terms-form .pet-terms-badge-req {
	display: inline-block !important;
	margin-left: 6px !important;
	padding: 3px 9px !important;
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	color: #fff !important;
	background: #DC2626 !important;
	border-radius: 6px !important;
	vertical-align: 0.15em !important;
	box-shadow: 0 1px 3px rgba(220, 38, 38, 0.3) !important;
	letter-spacing: 0.02em !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label--static {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	margin-bottom: 10px !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label--static::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 18px;
	background: linear-gradient(180deg, #1a365d 0%, #2c5282 100%);
	border-radius: 2px;
	flex-shrink: 0;
}

/* エラー時の入力枠 */
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="text"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="email"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="tel"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="number"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="date"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error textarea,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="text"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="email"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="tel"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="number"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="date"],
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error textarea {
	border-color: #e53e3e !important;
	background-color: #fffafa !important;
	box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.12) !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error input[type="file"] {
	border-color: #e53e3e !important;
	background-color: #fffafa !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field--error .pet-terms-radio-group {
	box-shadow: 0 0 0 2px rgba(229, 62, 62, 0.2) !important;
	border-radius: 12px !important;
}

body.esv-pet-terms-form .pet-terms-applicant-periods {
	display: grid !important;
	gap: 12px !important;
	margin-bottom: 1.35rem !important;
}

body.esv-pet-terms-form .pet-terms-applicant-period {
	margin-bottom: 0 !important;
}

body.esv-pet-terms-form .pet-terms-date-range {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
	align-items: center !important;
	gap: 8px !important;
}

body.esv-pet-terms-form .pet-terms-date-card {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

body.esv-pet-terms-form .pet-terms-date-card__label {
	display: block !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #64748b !important;
	margin: 0 0 6px 2px !important;
	letter-spacing: 0.02em !important;
}

body.esv-pet-terms-form .pet-terms-date-card--single {
	grid-column: 1 / -1 !important;
}

body.esv-pet-terms-form .pet-terms-date-range__sep {
	color: #64748b !important;
	font-weight: 700 !important;
	font-size: var(--pt-fs-small) !important;
}

/* 規約同意（送信直前） */
body.esv-pet-terms-form .pet-terms-agreement-block {
	margin-top: 2rem !important;
	padding: 1.5rem 1.25rem !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 16px !important;
	background: #fff !important;
	text-align: center !important;
}

body.esv-pet-terms-form .pet-terms-agreement-block__title {
	margin: 0 0 0.35rem !important;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
}

body.esv-pet-terms-form .pet-terms-agreement-block__text {
	margin: 0 0 1rem !important;
	font-size: 0.88rem !important;
	color: #718096 !important;
	line-height: 1.55 !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-agreement-block .pet-terms-agreement-label {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	margin: 0 auto !important;
}

body.esv-pet-terms-form .pet-terms-form-area .pet-terms-agreement-block .pet-terms-agreement-label::before {
	display: none !important;
}

body.esv-pet-terms-form .pet-terms-form-actions {
	margin-top: 1.75rem !important;
	text-align: center !important;
}

body.esv-pet-terms-form .pet-terms-form-actions .wpcf7-submit {
	margin-top: 0 !important;
}

/* セクション内の最初の愛犬ブロックは上余白を詰める */
body.esv-pet-terms-form .pet-terms-form-section--pets > .pet-terms-dog-block:first-of-type {
	margin-top: 0 !important;
}

body.esv-pet-terms-form .pet-terms-dog-heading .pet-terms-badge-req {
	vertical-align: middle !important;
}

body.esv-pet-terms-form .pet-terms-confirm-title {
	font-size: 1.6rem !important;
	margin: 0 0 12px !important;
	color: #1a365d !important;
	text-align: center !important;
	padding-bottom: 16px !important;
	border-bottom: 2px solid #e2e8f0 !important;
	font-weight: 700 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-lead {
	margin: 0 0 1.75rem !important;
	color: #4a5568 !important;
	text-align: center !important;
	font-size: 0.95rem !important;
	line-height: 1.65 !important;
}

/* 確認：カード＋表形式（左括弧風のボックスは廃止） */
body.esv-pet-terms-form .pet-terms-confirm-card {
	background: #fff !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 12px !important;
	padding: 0 0 4px !important;
	margin: 0 0 1.25rem !important;
	box-shadow: 0 1px 3px rgba(26, 54, 93, 0.06) !important;
	overflow: hidden !important;
}

body.esv-pet-terms-form .pet-terms-confirm-card__title {
	margin: 0 !important;
	padding: 14px 18px !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	color: #1a365d !important;
	letter-spacing: 0.04em !important;
	background: linear-gradient(180deg, #f8fafc 0%, #fff 100%) !important;
	border-bottom: 1px solid #edf2f7 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-spec {
	padding: 0 !important;
	margin: 0 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-row {
	display: grid !important;
	grid-template-columns: minmax(120px, 32%) 1fr !important;
	gap: 8px 16px !important;
	padding: 12px 18px !important;
	margin: 0 !important;
	border-bottom: 1px solid #f1f5f9 !important;
	align-items: start !important;
}

body.esv-pet-terms-form .pet-terms-confirm-row:last-child {
	border-bottom: none !important;
}

body.esv-pet-terms-form .pet-terms-confirm-row--file {
	grid-template-columns: minmax(120px, 32%) 1fr !important;
}

body.esv-pet-terms-form .pet-terms-confirm-label {
	font-size: 0.8rem !important;
	font-weight: 700 !important;
	color: #64748b !important;
	letter-spacing: 0.03em !important;
	line-height: 1.5 !important;
	padding-top: 2px !important;
}

body.esv-pet-terms-form .pet-terms-confirm-value {
	font-size: 0.95rem !important;
	color: #1e293b !important;
	line-height: 1.55 !important;
	word-break: break-word !important;
}

body.esv-pet-terms-form .pet-terms-confirm-value--file {
	min-width: 0 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-thumb-wrap {
	display: block !important;
	max-width: 100% !important;
	margin: 0 0 8px !important;
}

body.esv-pet-terms-form .pet-terms-confirm-thumb-img {
	display: block !important;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 280px !important;
	object-fit: contain !important;
	border-radius: 8px !important;
	border: 1px solid #e2e8f0 !important;
	background: #f8fafc !important;
}

body.esv-pet-terms-form .pet-terms-confirm-file-caption {
	margin: 0 !important;
	font-size: 0.78rem !important;
	line-height: 1.45 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-file-caption a {
	color: #2c5282 !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	word-break: break-all !important;
}

body.esv-pet-terms-form .pet-terms-confirm-pdf-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	flex-wrap: wrap !important;
	color: #1e293b !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	padding: 8px 12px !important;
	background: #f8fafc !important;
	border: 1px solid #e2e8f0 !important;
	border-radius: 8px !important;
	transition: border-color 0.2s ease, background 0.2s ease !important;
}

body.esv-pet-terms-form .pet-terms-confirm-pdf-link:hover {
	border-color: #1a365d !important;
	background: #fff !important;
}

body.esv-pet-terms-form .pet-terms-confirm-pdf-badge {
	display: inline-block !important;
	padding: 1px 8px !important;
	font-size: 0.7rem !important;
	font-weight: 800 !important;
	color: #fff !important;
	background: #c53030 !important;
	border-radius: 4px !important;
	vertical-align: middle !important;
}

body.esv-pet-terms-form .pet-terms-confirm-pdf-name {
	font-size: 0.85rem !important;
	word-break: break-all !important;
}

body.esv-pet-terms-form .pet-terms-confirm-file-link {
	color: #2c5282 !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
	word-break: break-all !important;
}

body.esv-pet-terms-form .pet-terms-confirm-file-none {
	color: #94a3b8 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-footer {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: 16px !important;
	margin-top: 1.75rem !important;
	max-width: 560px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.esv-pet-terms-form .pet-terms-confirm-footer > .pet-terms-confirm-back,
body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-finalize-form {
	flex: 1 1 220px !important;
	max-width: 100% !important;
	min-width: 0 !important;
}

body.esv-pet-terms-form a.pet-terms-confirm-back.btn {
	background-image: none !important;
	text-align: center !important;
}

body.esv-pet-terms-form .pet-terms-confirm-back {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	/* border の代わりに outline を使うことで高さへの影響をゼロにする。
	   padding は wpcf7-submit と完全に同一の値にして高さを揃える */
	padding: 24px 40px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	border-radius: 100px !important;
	border: none !important;
	outline: 2px solid #2c5282 !important;
	outline-offset: -2px !important;
	background: #fff !important;
	color: #1a365d !important;
	line-height: 1.25 !important;
	box-shadow: 0 15px 35px rgba(26, 54, 93, 0.2) !important;
	transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275),
	            box-shadow 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275),
	            outline-color 0.15s ease,
	            background 0.15s ease !important;
	-webkit-appearance: none !important;
	position: relative !important;
}

/* モバイル：wpcf7-submit と同じ 20px 32px ※メインルールより後に置くこと */
@media (max-width: 768px) {
	body.esv-pet-terms-form .pet-terms-confirm-back {
		padding: 20px 32px !important;
		font-size: 1.0625rem !important;
	}
}

body.esv-pet-terms-form .pet-terms-confirm-back:hover,
body.esv-pet-terms-form .pet-terms-confirm-back:focus-visible {
	background: linear-gradient(180deg, #ffffff 0%, #f0f4f8 100%) !important;
	outline-color: #1a365d !important;
	color: #1a365d !important;
	transform: translateY(-3px) !important;
	box-shadow: 0 14px 34px rgba(26, 54, 93, 0.18) !important;
}

body.esv-pet-terms-form .pet-terms-confirm-back:active {
	transform: translateY(-1px) !important;
	box-shadow: 0 8px 22px rgba(26, 54, 93, 0.14) !important;
}

body.esv-pet-terms-form .pet-terms-confirm .pet-terms-finalize-form {
	margin-top: 0 !important;
	text-align: center !important;
	display: flex !important;
	flex-direction: column !important;
}

body.esv-pet-terms-form .pet-terms-confirm .pet-terms-finalize-form .wpcf7-submit {
	margin-top: 0 !important;
	width: 100% !important;
	max-width: none !important;
	flex: 1 1 auto !important;
	align-self: stretch !important;
	line-height: 1.25 !important;
}

/* 確認画面の2ボタンは同じ寸法を強制 */
body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-confirm-back,
body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-finalize-form .wpcf7-submit {
	min-height: 72px !important;
	padding: 24px 40px !important;
	font-size: var(--pt-fs-label) !important;
	font-weight: 700 !important;
	border-radius: 100px !important;
	line-height: 1.25 !important;
	margin: 0 !important;
}

@media (max-width: 520px) {
	body.esv-pet-terms-form .pet-terms-confirm-footer {
		flex-direction: column !important;
		align-items: stretch !important;
		max-width: 480px !important;
	}

	body.esv-pet-terms-form .pet-terms-confirm-footer > .pet-terms-confirm-back,
	body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-finalize-form {
		flex: 1 1 auto !important;
		width: 100% !important;
	}
}

@media (max-width: 768px) {
	body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-confirm-back,
	body.esv-pet-terms-form .pet-terms-confirm-footer .pet-terms-finalize-form .wpcf7-submit {
		min-height: 64px !important;
		padding: 20px 32px !important;
		font-size: 1.0625rem !important;
	}
}

body.esv-pet-terms-form .pet-terms-file-resume-note {
	font-size: 0.88rem !important;
	color: #475569 !important;
	margin: 0 0 8px 0 !important;
	line-height: 1.5 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-actions {
	margin-top: 24px !important;
	text-align: center !important;
}

@media (max-width: 600px) {
	body.esv-pet-terms-form .pet-terms-confirm-row {
		grid-template-columns: 1fr !important;
		gap: 4px !important;
		padding: 12px 14px !important;
	}
	body.esv-pet-terms-form .pet-terms-confirm-thumb-img {
		max-height: 220px !important;
	}
	body.esv-pet-terms-form .pet-terms-date-range {
		grid-template-columns: 1fr !important;
	}
	body.esv-pet-terms-form .pet-terms-date-range__sep {
		display: none !important;
	}
}

/* サンクスページ */
.pet-terms-thanks-content {
	text-align: center;
}

.pet-terms-thanks-content h2 {
	margin-bottom: 16px;
}

.pet-terms-thanks-content p {
	margin-bottom: 10px;
}

.pet-terms-thanks-link {
	margin-top: 30px;
}

/* =========================================================
 * Typography normalization (2026-03)
 * Goal: readable across all devices
 * - SP base: 14px
 * - Minimum: 12px
 * ========================================================= */
body.esv-pet-terms-form {
	--pt-fs-body: 16px;
	--pt-fs-small: 13px;
	--pt-fs-label: 15px;
	--pt-fs-input: 16px;
	--pt-fs-placeholder: 15px;
	--pt-fs-h1: 36px;
	--pt-fs-h2: 26px;
	--pt-fs-h3: 20px;
	--pt-fs-button: 15px;
	--pt-lh-body: 1.7;
}

@media (min-width: 769px) and (max-width: 1100px) {
	body.esv-pet-terms-form {
		--pt-fs-body: 15px;
		--pt-fs-small: 13px;
		--pt-fs-label: 14px;
		--pt-fs-input: 15px;
		--pt-fs-placeholder: 14px;
		--pt-fs-h1: 31px;
		--pt-fs-h2: 23px;
		--pt-fs-h3: 18px;
		--pt-fs-button: 14px;
	}
}

@media (max-width: 768px) {
	body.esv-pet-terms-form {
		/* SP baseline and lower bound policy */
		--pt-fs-body: 14px;
		--pt-fs-small: 12px;
		--pt-fs-label: 14px;
		--pt-fs-input: 16px;
		--pt-fs-placeholder: 14px;
		--pt-fs-h1: 28px;
		--pt-fs-h2: 22px;
		--pt-fs-h3: 17px;
		--pt-fs-button: 14px;
		--pt-lh-body: 1.72;
	}
}

/* Body/readability */
body.esv-pet-terms-form .pagewrapper,
body.esv-pet-terms-form .pet-terms-rules-lead,
body.esv-pet-terms-form .pet-terms-rules-list li,
body.esv-pet-terms-form .pet-terms-form-intro,
body.esv-pet-terms-form .pet-terms-form-section__lead,
body.esv-pet-terms-form .pet-terms-progress-agreement-label__text,
body.esv-pet-terms-form .pet-terms-confirm-value,
body.esv-pet-terms-form .pet-terms-confirm-lead {
	font-size: var(--pt-fs-body) !important;
	line-height: var(--pt-lh-body) !important;
}

/* Headings hierarchy */
body.esv-pet-terms-form .maintitle h1 {
	font-size: var(--pt-fs-h1) !important;
}
body.esv-pet-terms-form .pet-terms-rules-title,
body.esv-pet-terms-form .pet-terms-confirm-title {
	font-size: var(--pt-fs-h2) !important;
	line-height: 1.4 !important;
}
body.esv-pet-terms-form .pet-terms-form-section__title,
body.esv-pet-terms-form .pet-terms-dog-heading-row .pet-terms-dog-heading {
	font-size: var(--pt-fs-h3) !important;
	line-height: 1.45 !important;
}

/* Labels and actionable texts */
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-field__label--static,
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-radio .wpcf7-list-item-label,
body.esv-pet-terms-form .pet-terms-form-area .pet-terms-radio-group .wpcf7-list-item-label,
body.esv-pet-terms-form .pet-terms-rules-plan-link .btn,
body.esv-pet-terms-form .pet-terms-form-area .wpcf7-submit,
body.esv-pet-terms-form .pet-terms-confirm-back {
	font-size: var(--pt-fs-label) !important;
}

/* Small text floor */
body.esv-pet-terms-form .pet-terms-file-hint,
body.esv-pet-terms-form .pet-terms-field-hint,
body.esv-pet-terms-form .pet-terms-form-error,
body.esv-pet-terms-form .pet-terms-confirm-label,
body.esv-pet-terms-form .pet-terms-confirm-file-caption,
body.esv-pet-terms-form .pet-terms-confirm-pdf-name,
body.esv-pet-terms-form .pet-terms-remove-dog {
	font-size: var(--pt-fs-small) !important;
	line-height: 1.6 !important;
}

/* Form control text (desktop/tablet/SP) */
body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
body.esv-pet-terms-form .pet-terms-form-area input[type="date"],
body.esv-pet-terms-form .pet-terms-form-area textarea {
	font-size: var(--pt-fs-input) !important;
	line-height: 1.5 !important;
}

body.esv-pet-terms-form .pet-terms-form-area input::placeholder,
body.esv-pet-terms-form .pet-terms-form-area textarea::placeholder {
	font-size: var(--pt-fs-placeholder) !important;
	line-height: 1.5 !important;
	color: #6b7280 !important;
}

/* Keep form controls 16px on mobile to prevent iOS zoom */
@media (max-width: 768px) {
	body.esv-pet-terms-form .pet-terms-form-area input[type="text"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="email"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="tel"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="number"],
	body.esv-pet-terms-form .pet-terms-form-area input[type="date"],
	body.esv-pet-terms-form .pet-terms-form-area textarea {
		font-size: 16px !important;
	}
}

/* Confirm view typography should follow input view scale */
body.esv-pet-terms-form .pet-terms-confirm-title {
	font-size: var(--pt-fs-h3) !important;
	line-height: 1.45 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-lead,
body.esv-pet-terms-form .pet-terms-confirm-value {
	font-size: var(--pt-fs-body) !important;
	line-height: var(--pt-lh-body) !important;
}

body.esv-pet-terms-form .pet-terms-confirm-card__title,
body.esv-pet-terms-form .pet-terms-confirm-label {
	font-size: var(--pt-fs-label) !important;
	line-height: 1.5 !important;
}

body.esv-pet-terms-form .pet-terms-confirm-file-caption,
body.esv-pet-terms-form .pet-terms-confirm-pdf-name {
	font-size: var(--pt-fs-small) !important;
	line-height: 1.6 !important;
}

/* ユーティリティ */
.is-hidden {
	display: none !important;
}
