/* tc-estimate-form 見積フォーム用スタイル */
/* Cocoon 目次を非表示（見積フォームページ） */
body:has(.tc-estimate-form-wrap) {
	overflow-x: clip;
}

body:has(.tc-estimate-form-wrap) .entry-content,
body:has(.tc-estimate-form-wrap) article {
	overflow-x: visible;
}

body:has(.tc-estimate-form-wrap) .toc,
.tc-estimate-form-wrap .toc {
	display: none !important;
}

/* 選択済みUI共通カラー */
.tc-estimate-form-wrap {
	--tc-selected-color: #fd7e14;
	--tc-selected-bg: #fff4e8;
	--tc-selected-focus: rgba(253, 126, 20, 0.25);
	--tc-checkbox-color: #06c755;
	--tc-checkbox-focus: rgba(6, 199, 85, 0.25);
}

/* 全フォーム共通チェックボックス（食洗機・コンロ・レンジフード・浴室乾燥機等） */
.tc-estimate-form-wrap .form-check,
.tc-estimate-form-wrap .tc-estimate-form__form .form-check,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	min-height: 1.5rem;
	padding-left: 0;
	margin-bottom: 0;
}

.tc-estimate-form-wrap .form-check .form-check-input[type="checkbox"],
.tc-estimate-form-wrap .tc-estimate-form__form .form-check .form-check-input[type="checkbox"],
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check .form-check-input[type="checkbox"] {
	float: none;
	margin-left: 0;
	margin-right: 0;
	margin-top: 0.125rem;
}

.tc-estimate-form-wrap .form-check .form-check-label,
.tc-estimate-form-wrap .tc-estimate-form__form .form-check .form-check-label,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check .form-check-label {
	line-height: 1.5;
	padding-top: 0.05rem;
}

.tc-estimate-form-wrap .form-check-input[type="checkbox"],
.tc-estimate-form-wrap .tc-estimate-form__form .form-check-input[type="checkbox"],
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check-input[type="checkbox"],
.tc-estimate-form-wrap input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 1.5rem;
	height: 1.5rem;
	min-width: 1.5rem;
	min-height: 1.5rem;
	border: 2px solid #adb5bd;
	border-radius: 0.3rem;
	background-color: #fff;
	background-image: none;
	cursor: pointer;
	position: relative;
	flex-shrink: 0;
	accent-color: var(--tc-checkbox-color);
}

.tc-estimate-form-wrap .form-check-input[type="checkbox"]:checked,
.tc-estimate-form-wrap .tc-estimate-form__form .form-check-input[type="checkbox"]:checked,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check-input[type="checkbox"]:checked,
.tc-estimate-form-wrap input[type="checkbox"]:checked {
	border-color: var(--tc-checkbox-color);
	background-color: var(--tc-checkbox-color);
	background-image: none;
}

.tc-estimate-form-wrap .form-check-input[type="checkbox"]:checked::after,
.tc-estimate-form-wrap .tc-estimate-form__form .form-check-input[type="checkbox"]:checked::after,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check-input[type="checkbox"]:checked::after,
.tc-estimate-form-wrap input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 46%;
	width: 0.4rem;
	height: 0.75rem;
	border: solid #fff;
	border-width: 0 0.18rem 0.18rem 0;
	transform: translate(-50%, -50%) rotate(45deg);
}

.tc-estimate-form-wrap .form-check-input[type="checkbox"]:focus-visible,
.tc-estimate-form-wrap .tc-estimate-form__form .form-check-input[type="checkbox"]:focus-visible,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-check-input[type="checkbox"]:focus-visible,
.tc-estimate-form-wrap input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--tc-checkbox-color);
	outline-offset: 2px;
	box-shadow: 0 0 0 0.2rem var(--tc-checkbox-focus);
}

.tc-estimate-form-wrap .tc-estimate-form__checkbox-group {
	display: grid;
	gap: 0.75rem;
}

.tc-estimate-form-wrap .tc-estimate-form__checkbox-group .form-check {
	margin-bottom: 0;
}

.tc-estimate-form-wrap input[type="radio"],
.tc-estimate-form-wrap .form-check-input[type="radio"],
.tc-estimate-form__card-radio {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 2px solid #adb5bd;
	border-radius: 50%;
	background-color: #fff;
	background-image: none;
	cursor: pointer;
	position: relative;
	flex-shrink: 0;
}

.tc-estimate-form-wrap input[type="radio"]:checked,
.tc-estimate-form-wrap .form-check-input[type="radio"]:checked,
.tc-estimate-form__card-radio:checked {
	border-color: #fd7e14;
	background-color: #fff;
}

.tc-estimate-form-wrap input[type="radio"]:checked::before,
.tc-estimate-form-wrap .form-check-input[type="radio"]:checked::before,
.tc-estimate-form__card-radio:checked::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background-color: #fd7e14;
	transform: translate(-50%, -50%);
}

.tc-estimate-form-wrap input[type="radio"]:focus-visible,
.tc-estimate-form-wrap .form-check-input[type="radio"]:focus-visible,
.tc-estimate-form__card-radio:focus-visible {
	outline: 2px solid #fd7e14;
	outline-offset: 2px;
}

/* Bootstrap 未読込ページ向けユーティリティ（スコープ内のみ） */
.tc-estimate-form-wrap .d-grid {
	display: grid;
}

.tc-estimate-form-wrap .d-flex {
	display: flex;
}

.tc-estimate-form-wrap .d-block {
	display: block;
}

.tc-estimate-form-wrap .d-none {
	display: none !important;
}

.tc-estimate-form-wrap .gap-2 {
	gap: 0.5rem;
}

.tc-estimate-form-wrap .flex-fill {
	flex: 1 1 auto;
}

.tc-estimate-form-wrap .w-100 {
	width: 100%;
}

.tc-estimate-form-wrap .position-relative {
	position: relative;
}

.tc-estimate-form-wrap .mb-0 {
	margin-bottom: 0 !important;
}

.tc-estimate-form-wrap .mb-3 {
	margin-bottom: 1rem !important;
}

.tc-estimate-form-wrap .mt-1 {
	margin-top: 0.25rem !important;
}

.tc-estimate-form-wrap .mt-2 {
	margin-top: 0.5rem !important;
}

.tc-estimate-form-wrap .mt-4 {
	margin-top: 1.5rem !important;
}

.tc-estimate-form-wrap .p-3 {
	padding: 1rem !important;
}

.tc-estimate-form-wrap .border {
	border: 1px solid #dee2e6 !important;
}

.tc-estimate-form-wrap .rounded {
	border-radius: 0.375rem !important;
}

.tc-estimate-form-wrap .text-danger {
	color: #dc3545 !important;
}

.tc-estimate-form-wrap .text-muted {
	color: #6c757d !important;
}

.tc-estimate-form-wrap .fw-semibold {
	font-weight: 600 !important;
}

.tc-estimate-form-wrap .small {
	font-size: 0.875rem !important;
}

.tc-estimate-form-wrap .h5 {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.2;
}

.tc-estimate-form-wrap .form-label {
	display: inline-block;
	margin-bottom: 0.5rem;
	font-size: 20px;
	font-weight: 600;
	color: #212529;
}

.tc-estimate-form-wrap .form-label .tc-estimate-form__label-icon {
	margin-right: 0.375rem;
	color: #0d6efd;
}

.tc-estimate-form-wrap .alert {
	position: relative;
	padding: 1rem;
	margin-bottom: 1rem;
	border: 1px solid transparent;
	border-radius: 0.375rem;
}

.tc-estimate-form-wrap .alert-danger {
	color: #842029;
	background-color: #f8d7da;
	border-color: #f5c2c7;
}

.tc-estimate-form-wrap .btn {
	display: inline-block;
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	user-select: none;
	border: 1px solid transparent;
	border-radius: 8px;
	background-color: transparent;
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.tc-estimate-form-wrap .btn-primary {
	color: #fff !important;
	background-color: #0d6efd !important;
	border-color: #0d6efd !important;
}

.tc-estimate-form-wrap .btn-primary:hover {
	color: #fff !important;
	background-color: #0b5ed7 !important;
	border-color: #0a58ca !important;
}

.tc-estimate-form-wrap .btn-secondary {
	color: #fff !important;
	background-color: #6c757d !important;
	border-color: #6c757d !important;
}

.tc-estimate-form-wrap .btn-secondary:hover {
	color: #fff !important;
	background-color: #5c636a !important;
	border-color: #565e64 !important;
}

.tc-estimate-form-wrap .btn-success {
	color: #fff !important;
	background-color: #06c755 !important;
	border-color: #06c755 !important;
}

.tc-estimate-form-wrap .btn-success:hover {
	color: #fff !important;
	background-color: #05b34c !important;
	border-color: #05b34c !important;
}

.tc-estimate-form-wrap .btn-outline-primary {
	color: #0d6efd !important;
	background-color: #fff !important;
	border-color: #0d6efd !important;
}

.tc-estimate-form-wrap .btn-outline-primary:hover {
	color: #fff !important;
	background-color: #0d6efd !important;
	border-color: #0d6efd !important;
}

.tc-estimate-form-wrap .btn-outline-secondary {
	color: #6c757d !important;
	background-color: #fff !important;
	border-color: #6c757d !important;
}

.tc-estimate-form-wrap .btn-outline-secondary:hover {
	color: #fff !important;
	background-color: #6c757d !important;
	border-color: #6c757d !important;
}

.tc-estimate-form-wrap .btn-sm {
	padding: 0.25rem 0.5rem;
	font-size: 0.875rem;
	border-radius: 6px;
}

/* フォーム全体 */
.tc-estimate-form-wrap {
	display: contents;
}

.tc-estimate-form__body {
	display: block;
	width: 100%;
	max-width: none;
}

.tc-estimate-form__full-bleed {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	transform: translateX(-50%);
	box-sizing: border-box;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope {
	color: #212529;
	font-size: 20px;
	line-height: 1.6;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope *,
.tc-estimate-form-wrap .tcos-bootstrap-scope *::before,
.tc-estimate-form-wrap .tcos-bootstrap-scope *::after {
	box-sizing: border-box;
}

.tc-estimate-form__inner,
.tc-estimate-form__section-panel-inner {
	width: 100%;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form.tc-estimate-form__inner {
	width: 100% !important;
	max-width: 800px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 1.25rem 0 1.5rem !important;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
}

.tc-estimate-form__hero {
	margin: 0 0 1.5rem;
	padding: 1.5rem 0;
	background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
	color: #fff;
	text-align: center;
}

.tc-estimate-form__title {
	margin: 0;
	font-size: clamp(1.625rem, 5vw, 2.125rem);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.02em;
}

.tc-estimate-form__section-panel {
	margin: 0 0 1.25rem;
	padding: 1.25rem 0 1.5rem;
	background-color: #f7f8fa;
}

.tc-estimate-form__section-panel:last-child {
	margin-bottom: 0;
}

.tc-estimate-form__section-panel--hidden {
	display: none !important;
}

.tc-estimate-form__section-panel-inner {
	padding-top: 0;
	padding-bottom: 0;
}

.tc-estimate-form__section-split {
	display: flex;
	flex-wrap: nowrap;
	gap: 1.25rem;
	align-items: flex-start;
}

.tc-estimate-form__section-split-media {
	flex: 0 0 280px;
	width: 280px;
	max-width: 280px;
}

.tc-estimate-form__section-split-image {
	display: block;
	width: 280px;
	max-width: 100%;
	height: auto;
}

.tc-estimate-form__section-split-fields {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-estimate-form__section-split--image-right .tc-estimate-form__section-split-fields {
	flex: 1 1 280px;
}

.tc-estimate-form__section-split + .tc-estimate-form__field {
	margin-top: 1.25rem;
}

.tc-estimate-form__accordion-trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: #0d6efd;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: underline;
	cursor: pointer;
	list-style: none;
}

.tc-estimate-form__accordion-trigger .tc-estimate-form__label-icon {
	margin-right: 0;
	font-size: 1.125em;
	color: #0d6efd;
}

.tc-estimate-form__accordion-trigger-text {
	text-decoration: underline;
}

.tc-estimate-form__accordion-trigger::-webkit-details-marker {
	display: none;
}

.tc-estimate-form__accordion-body {
	margin-top: 0.75rem;
}

.tc-estimate-form__accordion-image {
	display: block;
	width: 100%;
	max-width: 724px;
	height: auto;
}

@media screen and (max-width: 575px) {
	.tc-estimate-form__section-split {
		flex-wrap: wrap;
	}

	.tc-estimate-form__section-split-media {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
		text-align: center;
	}

	.tc-estimate-form__section-split-image {
		width: 220px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* tcos-bootstrap-scope の h2 装飾をフォーム内で無効化 */
.tc-estimate-form-wrap .tcos-bootstrap-scope h2.tc-estimate-form__step-title,
.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form__step-title {
	font-size: 20px !important;
	font-weight: 700 !important;
	color: #212529 !important;
	border: none !important;
	border-bottom: none !important;
	padding: 0 !important;
	margin: 0 0 0.75rem !important;
	background: none !important;
}

/* ステップインジケーター */
.tc-estimate-form__indicator {
	padding: 0.875rem 0 1.125rem;
	background: #fff;
}

.tc-estimate-form__indicator--top {
	margin-bottom: 1.25rem;
	border-bottom: none;
}

.tc-estimate-form__indicator-phases {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

.tc-estimate-form__indicator-phase {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	padding: 0 0.25rem;
	text-align: center;
}

.tc-estimate-form__indicator-phase:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1rem;
	left: calc(50% + 1rem);
	width: calc(100% - 2rem);
	height: 2px;
	background: #dee2e6;
	z-index: 0;
}

.tc-estimate-form__indicator-phase.is-completed:not(:last-child)::after {
	background: #0d6efd;
}

.tc-estimate-form__indicator-phase-num {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border: 2px solid #dee2e6;
	border-radius: 50%;
	background: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
	color: #6c757d;
	line-height: 1;
	box-shadow: none;
}

.tc-estimate-form__indicator-phase-label {
	font-size: 0.75rem;
	font-weight: 600;
	color: #6c757d;
	line-height: 1.35;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.tc-estimate-form__indicator-phase.is-completed .tc-estimate-form__indicator-phase-num {
	border-color: #0d6efd;
	background: #0d6efd;
	color: #fff;
	box-shadow: none;
}

.tc-estimate-form__indicator-phase.is-completed .tc-estimate-form__indicator-phase-label {
	color: #0d6efd;
}

.tc-estimate-form__indicator-phase.is-active .tc-estimate-form__indicator-phase-num {
	border-color: #fd7e14;
	background: #fd7e14;
	color: #fff;
	font-size: 0.9375rem;
	box-shadow: none;
	transform: scale(1.25);
}

.tc-estimate-form__indicator-phase.is-active .tc-estimate-form__indicator-phase-label {
	color: #fd7e14;
	font-weight: 700;
}

@media screen and (min-width: 576px) {
	.tc-estimate-form__indicator-phase-label {
		font-size: 0.875rem;
	}
}

@media screen and (min-width: 768px) {
	.tc-estimate-form__indicator-phase-label {
		font-size: 0.9375rem;
	}
}

/* ステップ */
.tc-estimate-form__intro {
	margin-bottom: 1rem !important;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	font-size: 20px;
	color: #6c757d !important;
	line-height: 1.6;
}

.tc-estimate-form--stepped .tc-estimate-form__step {
	display: none;
	border: none;
	padding: 0;
	margin: 0;
}

.tc-estimate-form--stepped .tc-estimate-form__step-title {
	display: none;
}

.tc-estimate-form--multi-section .tc-estimate-form__step.is-active .tc-estimate-form__step-title {
	display: block;
}

.tc-estimate-form--multi-section .tc-estimate-form__step.is-active + .tc-estimate-form__step.is-active {
	margin-top: 1.25rem;
	padding-top: 0;
	border-top: none;
}

.tc-estimate-form--multi-section .tc-estimate-form__step.is-active .tc-estimate-form__intro {
	display: block;
}

.tc-estimate-form--stepped .tc-estimate-form__step.is-active {
	display: block;
}

.tc-estimate-form:not(.tc-estimate-form--stepped) .tc-estimate-form__step {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #e9ecef;
}

/* フィールド */
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-text {
	margin-top: 0.25rem;
	margin-bottom: 0.5rem;
	color: #6c757d !important;
	font-size: 20px;
	line-height: 1.6;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .form-control,
.tc-estimate-form-wrap .tcos-bootstrap-scope .form-control-lg,
.tc-estimate-form-wrap .tcos-bootstrap-scope input[type="file"].form-control,
.tc-estimate-form-wrap .tcos-bootstrap-scope textarea.form-control {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: 0.625rem 0.875rem;
	font-size: 20px !important;
	font-weight: 400;
	line-height: 1.5;
	color: #212529;
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #ced4da;
	border-radius: 8px;
	appearance: none;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope select.form-control {
	min-height: 48px;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope textarea.form-control {
	min-height: 120px;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .form-control:focus {
	border-color: #86b7fe;
	outline: 0;
	box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.2);
}

.tc-estimate-form-wrap .tcos-bootstrap-scope details {
	margin-top: 0.5rem;
	padding: 0.625rem 0.75rem;
	background: #f8f9fa;
	border-radius: 8px;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope details summary {
	cursor: pointer;
	font-weight: 600;
	color: #0d6efd;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .btn-lg {
	font-size: 1.0625rem !important;
	min-height: 52px;
	padding: 0.75rem 1rem;
}

.tc-estimate-form__field-error {
	margin-top: 0.75rem;
	margin-bottom: 0;
	padding: 0.75rem 1rem;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.tc-estimate-form__field-error--dismissible,
.tc-estimate-form__panel-error--dismissible {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.tc-estimate-form__field-error-text {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-estimate-form__field-error-dismiss {
	flex: 0 0 auto;
	margin: 0;
	padding: 0.25rem 0.875rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.5;
	color: #842029;
	background-color: transparent;
	border: 1px solid #842029;
	border-radius: 8px;
	cursor: pointer;
}

.tc-estimate-form__field-error-dismiss:hover {
	color: #fff;
	background-color: #842029;
}

.alert-warning .tc-estimate-form__field-error-dismiss {
	color: #664d03;
	border-color: #997404;
}

.alert-warning .tc-estimate-form__field-error-dismiss:hover {
	color: #fff;
	background-color: #997404;
}

.tc-estimate-form__field.is-invalid .form-control,
.tc-estimate-form__field.is-invalid select.form-control,
.tc-estimate-form__field.is-invalid textarea.form-control {
	border-color: #dc3545;
}

.tc-estimate-form__field.is-invalid .tc-estimate-form__card {
	border-color: #dc3545 !important;
	box-shadow: 0 0 0 1px rgba(220, 53, 69, 0.2);
}

/* honeypot */
.tc-estimate-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ステップ切替 */
.tc-estimate-form--stepped {
	padding-bottom: 0;
}

.tc-estimate-form__page-bottom {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: none;
}

.tc-estimate-form__intro,
.tc-estimate-form__field-group-intro {
	font-size: 20px;
	line-height: 1.6;
	color: #6c757d !important;
}

.tc-estimate-form__field-group {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.tc-estimate-form__field-group:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope h3.tc-estimate-form__field-group-title--major {
	font-size: 1.5rem !important;
	font-weight: 800 !important;
	margin: 0 0 1rem !important;
	padding: 0 0 0.625rem !important;
	border: none !important;
	border-left: none !important;
	border-bottom: 3px solid #0d6efd !important;
	line-height: 1.35 !important;
	display: block;
	width: 100%;
	color: #212529 !important;
	background: none !important;
	letter-spacing: normal !important;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope h3.tc-estimate-form__field-group-title--major .tc-estimate-form__label-icon {
	margin-right: 0.5rem;
	color: #0d6efd;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope h3.tc-estimate-form__field-group-title:not(.tc-estimate-form__field-group-title--major) {
	font-size: 20px !important;
	font-weight: 700 !important;
	color: #212529 !important;
	margin: 0 0 0.75rem !important;
	padding: 0 !important;
	border: none !important;
	border-left: none !important;
	border-bottom: none !important;
	background: none !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
}

.tc-estimate-form__field-group-intro {
	margin-bottom: 1rem !important;
}

.tc-estimate-form--stepped .tc-estimate-form__actions--static {
	display: none !important;
}

.tc-estimate-form--stepped .tc-estimate-form__footer {
	display: flex !important;
	gap: 0.75rem;
	padding: 0 0 calc(0.5rem + env(safe-area-inset-bottom));
}

.tc-estimate-form__btn--next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.tc-estimate-form__btn--back,
.tc-estimate-form__btn--submit,
.tc-estimate-form__actions--static .tc-estimate-form__btn--submit,
.tc-confirm-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.tc-estimate-form__btn--next .tc-estimate-form__btn-icon,
.tc-estimate-form__btn--back .tc-estimate-form__btn-icon,
.tc-estimate-form__btn--submit .tc-estimate-form__btn-icon,
.tc-confirm-actions .tc-estimate-form__btn-icon {
	font-size: 1em;
	line-height: 1;
}

.tc-estimate-form--stepped .tc-estimate-form__footer .tc-estimate-form__btn--submit {
	display: none;
}

.tc-estimate-form--stepped.is-step-last .tc-estimate-form__footer .tc-estimate-form__btn--next {
	display: none;
}

.tc-estimate-form--stepped.is-step-last .tc-estimate-form__footer .tc-estimate-form__btn--submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	min-width: 0;
	min-height: 52px;
}

.tc-estimate-form--stepped.is-step-first .tc-estimate-form__footer .tc-estimate-form__btn--back {
	display: none;
}

/* ページ下部バー内ナビ */
.tc-estimate-form__footer {
	display: none;
}

/* カード選択UI */
.tc-estimate-form__cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	width: 100%;
}

@media (min-width: 768px) {
	.tc-estimate-form__cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

.tc-estimate-form__card-wrap {
	width: 100%;
	min-width: 0;
}

.tc-estimate-form__card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 52px;
	padding: 0.875rem 1rem !important;
	cursor: pointer;
	border: 1px solid #ddd !important;
	border-radius: 6px !important;
	background: #fff;
	gap: 0.75rem;
	transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.tc-estimate-form__card-radio {
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
}

.tc-estimate-form__card-body {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-estimate-form__card-label {
	display: block;
	font-weight: 600;
}

.tc-estimate-form__card-help {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.875rem;
	color: #6c757d;
}

.tc-estimate-form__card-price {
	flex: 0 0 auto;
	margin-left: 0.75rem;
	font-weight: 600;
	color: var(--tc-selected-color);
	white-space: nowrap;
}

.tc-estimate-form__card-radio:checked + .tc-estimate-form__card-body + .tc-estimate-form__card-price,
.tc-estimate-form__card.is-selected,
.tc-estimate-form__card:has(.tc-estimate-form__card-radio:checked) {
	border: 2px solid var(--tc-selected-color) !important;
	background: var(--tc-selected-bg);
}

.tc-estimate-form__card:has(.tc-estimate-form__card-radio:focus-visible) {
	box-shadow: 0 0 0 0.25rem var(--tc-selected-focus);
}

/* 画像付きカード選択UI */
.tc-estimate-form__cards--image {
	grid-template-columns: repeat(2, 1fr);
	align-items: stretch;
}

.tc-estimate-form__cards--image > .tc-estimate-form__card-wrap {
	display: flex;
	min-width: 0;
	min-height: 100%;
	overflow: hidden;
}

@media (min-width: 992px) {
	.tc-estimate-form__cards--image.tc-estimate-form__cards--cols-3:not(.tc-estimate-form__cards--layout-3-2),
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--cols-3:not(.tc-estimate-form__cards--layout-3-2) {
		grid-template-columns: repeat(3, 1fr);
	}

	.tc-estimate-form__cards--image.tc-estimate-form__cards--cols-5,
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--cols-5 {
		grid-template-columns: repeat(5, 1fr);
	}

	/* 上3列・下2列（下段は中央寄せ） */
	.tc-estimate-form__cards--image.tc-estimate-form__cards--layout-3-2,
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--layout-3-2 {
		grid-template-columns: repeat(6, 1fr);
	}

	.tc-estimate-form__cards--image.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(-n+3),
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(-n+3) {
		grid-column: span 2;
	}

	.tc-estimate-form__cards--image.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(4):nth-last-child(2),
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(4):nth-last-child(2) {
		grid-column: 2 / span 2;
	}

	.tc-estimate-form__cards--image.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(5):last-child,
	.tc-estimate-form__cards--icon.tc-estimate-form__cards--layout-3-2 > .tc-estimate-form__card-wrap:nth-child(5):last-child {
		grid-column: 4 / span 2;
	}
}

.tc-estimate-form__card--image {
	position: relative;
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	height: 100%;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	min-height: 0;
	min-width: 0;
	padding: 0.25rem 0.5rem 0.5rem !important;
	text-align: center;
	gap: 0.75rem;
	overflow: hidden;
	box-sizing: border-box;
}

.tc-estimate-form__cards--image:not(.tc-estimate-form__cards--image-compact) .tc-estimate-form__card--image .tc-estimate-form__card-radio {
	position: absolute;
	top: 0.25rem;
	left: 0.5rem;
	z-index: 1;
	margin: 0;
}

.tc-estimate-form__cards--image:not(.tc-estimate-form__cards--image-compact) .tc-estimate-form__card--image .tc-estimate-form__card-media {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 0 0.5rem 0.5rem;
	padding-top: calc(1.125rem + 0.25rem);
	overflow: hidden;
}

.tc-estimate-form__card-image {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 4px;
	background: #f8f9fa;
}

.tc-estimate-form__card--image .tc-estimate-form__card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.tc-estimate-form__card--image .tc-estimate-form__card-label {
	font-size: 16px;
	line-height: 1.4;
}

.tc-estimate-form__cards--image .tc-estimate-form__card-media--icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 8rem;
	padding: calc(1.125rem + 0.25rem) 0.5rem 0.5rem;
}

.tc-estimate-form__cards--image .tc-estimate-form__card-media--icon .tc-estimate-form__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 5rem;
	height: 5rem;
	border-radius: 50%;
	background: #f1f3f5;
	color: #6c757d;
	font-size: 2.25rem;
}

/* 画像カード（コンパクト）：画像100px・中央、ラベルはラジオ横 */
.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0.5rem;
	padding: 0.5rem 0.625rem !important;
	text-align: left;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-media {
	display: flex;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	padding: 0.25rem 0;
	overflow: hidden;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-image {
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100px !important;
	height: auto !important;
	margin: 0 auto;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-choice {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	width: 100%;
	min-width: 0;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-choice .tc-estimate-form__card-radio {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	z-index: auto !important;
	flex: 0 0 1.125rem;
	width: 1.125rem !important;
	height: 1.125rem !important;
	min-width: 1.125rem;
	min-height: 1.125rem;
	margin: 0.45rem 0 0;
	box-sizing: border-box;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-choice .tc-estimate-form__card-radio::before {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-choice .tc-estimate-form__card-body {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-label {
	display: block;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1.45;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-help {
	display: block;
	margin-top: 0.25rem;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1.45;
	color: #6c757d;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-media--icon {
	min-height: auto;
	max-width: 100%;
	padding: 0.25rem 0;
	overflow: hidden;
}

.tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-media--icon .tc-estimate-form__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	max-width: 100px;
	height: auto;
	aspect-ratio: 1 / 1;
	font-size: clamp(1.75rem, 8vw, 2.5rem);
}

/* レンジフード：換気扇タイプのみ画像200px（カード幅を超えない） */
.tc-estimate-form__field[data-field-key="current_fan_type"] .tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-image {
	width: 100% !important;
	max-width: 200px !important;
}

.tc-estimate-form__field[data-field-key="current_fan_type"] .tc-estimate-form__cards--image-compact .tc-estimate-form__card--image .tc-estimate-form__card-media--icon .tc-estimate-form__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 200px;
	height: auto;
	aspect-ratio: 1 / 1;
	font-size: clamp(2rem, 12vw, 4rem);
}

/* フィールドヘルプオーバーレイリンク */
.tc-estimate-form__field-help-link-wrap {
	display: inline;
	margin-left: 0.5rem;
	white-space: nowrap;
}

.tc-estimate-form__field-help-link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.4;
	color: #0d6efd;
	vertical-align: baseline;
	text-decoration: underline;
	cursor: pointer;
	background: none;
	border: 0;
}

.tc-estimate-form__field-help-link:hover,
.tc-estimate-form__field-help-link:focus {
	color: #0a58ca;
	text-decoration: underline;
}

.tc-estimate-form__field-help-link-icon {
	font-size: 0.95em;
}

body.tc-estimate-form__field-help-open {
	overflow: hidden;
}

.tc-estimate-form__field-help-overlay {
	position: fixed;
	inset: 0;
	z-index: 10060;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba(15, 23, 42, 0.5);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.tc-estimate-form__field-help-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.tc-estimate-form__field-help-overlay[hidden] {
	display: none !important;
}

.tc-estimate-form__field-help-overlay__card {
	position: relative;
	width: min(92vw, 28rem);
	max-height: calc(100vh - 2rem);
	padding: 1.25rem 1.25rem 1.5rem;
	overflow: auto;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.2);
}

.tc-estimate-form__field-help-overlay__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 2;
	width: 1.75rem;
	height: 1.75rem;
	padding: 0;
	font-size: 1.125rem;
	line-height: 1.75rem;
	color: #495057;
	text-align: center;
	cursor: pointer;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.tc-estimate-form__field-help-overlay__title {
	margin: 0 2rem 1rem 0;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: #212529;
}

.tc-estimate-form__field-help-overlay__media {
	display: flex;
	justify-content: center;
	margin-bottom: 1rem;
}

.tc-estimate-form__field-help-overlay__image {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.tc-estimate-form__field-help-overlay__text {
	display: grid;
	gap: 0.75rem;
}

.tc-estimate-form__field-help-overlay__paragraph {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #495057;
}

.tc-estimate-form__field-help-overlay__section {
	display: grid;
	gap: 0.75rem;
}

.tc-estimate-form__field-help-overlay__section + .tc-estimate-form__field-help-overlay__section {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid #e9ecef;
}

/* アイコン付きカード選択UI */
.tc-estimate-form__cards--icon {
	grid-template-columns: repeat(2, 1fr);
	align-items: stretch;
}

.tc-estimate-form__cards--icon > .tc-estimate-form__card-wrap {
	display: flex;
	min-height: 100%;
}

.tc-estimate-form__card--icon {
	position: relative;
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	min-height: 10.5rem;
	padding: 1.25rem 1rem 1.125rem !important;
	text-align: center;
	gap: 0.875rem;
}

.tc-estimate-form__card--icon .tc-estimate-form__card-radio {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1;
}

.tc-estimate-form__card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 50%;
	background: #f8f9fa;
	color: #6c757d;
	font-size: 2rem;
	line-height: 1;
	flex-shrink: 0;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.tc-estimate-form__card--icon .tc-estimate-form__card-body {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 0;
}

.tc-estimate-form__card--icon .tc-estimate-form__card-label {
	font-size: 1.125rem;
	line-height: 1.5;
	font-weight: 600;
}

.tc-estimate-form__card.is-selected .tc-estimate-form__card-icon,
.tc-estimate-form__card--icon:has(.tc-estimate-form__card-radio:checked) .tc-estimate-form__card-icon {
	background: var(--tc-selected-bg);
	color: var(--tc-selected-color);
}

/* 完了画面 */
.tc-estimate-form--thanks .alert {
	border-radius: 10px;
}

.tc-estimate-form__thanks-message p:last-child {
	margin-bottom: 0;
}

.tc-estimate-form__thanks-actions {
	margin-top: 1rem;
}

.tc-estimate-form__thanks-success {
	font-size: 16px;
	line-height: 1.7;
}

.tc-estimate-form__thanks-heading {
	margin: 0 0 0.75rem;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

.tc-estimate-form__thanks-note {
	display: block;
	margin-top: 0.35rem;
	font-size: 14px;
}

.tc-estimate-form__thanks-contact-note {
	padding: 1rem;
	border: 1px solid #dc3545;
	border-radius: 10px;
	color: #dc3545;
}

.tc-estimate-form__stub-notice {
	margin-bottom: 1rem;
}

.tc-estimate-form__additional-estimate {
	margin: 0 0 0.75rem;
	padding: 0;
	font-size: 12px;
	line-height: 1.4;
	color: #dc3545;
	text-align: center;
	background: none;
	border: none;
	box-shadow: none;
}

.tc-estimate-form__additional-estimate-text {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	margin: 0;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	color: inherit;
}

.tc-estimate-form__additional-estimate-icon {
	flex-shrink: 0;
	font-size: 0.95em;
	color: inherit;
}

.tc-estimate-form__customer-draft-prompt {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #495057;
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 0.375rem;
}

.tc-estimate-form__customer-draft-prompt-lead {
	font-weight: 600;
	color: #212529;
}

.tc-estimate-form__customer-draft-prompt-note {
	color: #6c757d;
}

.tc-estimate-form__customer-draft-reuse-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-size: 1rem;
}

.tc-estimate-form__customer-draft-reuse-link .tc-estimate-form__btn-icon {
	font-size: 1em;
	line-height: 1;
}

.tc-estimate-form__cross-sell {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid #dee2e6;
}

.tc-estimate-form__cross-sell-list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.tc-estimate-form__cross-sell-link[disabled],
.tc-estimate-form__cross-sell-link[aria-disabled="true"] {
	pointer-events: none;
	opacity: 0.55;
}

.tc-estimate-form--already-submitted .tc-estimate-form__already-submitted-message {
	border-radius: 10px;
}

.tc-estimate-form__already-submitted-actions {
	margin-top: 1rem;
}

/* 条件非表示フィールド */
.tc-estimate-form__field--hidden {
	display: none !important;
}

.tc-estimate-form__product-card-wrap--hidden,
.tc-estimate-form__product-manual--hidden {
	display: none !important;
}

.tc-estimate-form__product-card-body {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.tc-estimate-form__product-card-media {
	flex: 0 0 auto;
	width: 38%;
	max-width: 220px;
}

.tc-estimate-form__product-card-info {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-estimate-form__product-card-image {
	display: block;
	width: 100%;
	max-height: 200px;
	object-fit: contain;
}

.tc-estimate-form__product-name {
	margin-bottom: 0.625rem;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.4;
	color: #212529;
}

.tc-estimate-form__product-sale-price {
	margin-bottom: 0.375rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #6c757d;
}

.tc-estimate-form__product-list-price {
	margin-bottom: 0.375rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #6c757d;
}

.tc-estimate-form__product-construction-price {
	margin-bottom: 0.375rem;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.5;
	color: #dc3545 !important;
}

.tc-estimate-form__product-code {
	margin-top: 0.375rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #6c757d;
}

.tc-estimate-form__product-link {
	margin-top: 0.625rem;
	font-size: 1rem;
	line-height: 1.5;
}

.tc-estimate-form__product-link .tc-estimate-form__product-clear {
	padding: 0;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: #6c757d !important;
	text-decoration: underline;
	border: none;
	box-shadow: none;
}

.tc-estimate-form__product-link .tc-estimate-form__product-clear:hover {
	color: #dc3545 !important;
}

@media screen and (max-width: 575px) {
	.tc-estimate-form__product-card-body {
		flex-direction: column;
	}

	.tc-estimate-form__product-card-media {
		width: 100%;
		max-width: none;
	}
}

.tc-estimate-form-wrap--confirm-open {
	overflow: hidden;
}

.tc-estimate-form__confirm-overlay {
	position: fixed;
	inset: 0;
	z-index: 10050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba(0, 0, 0, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.tc-estimate-form__confirm-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.tc-estimate-form__confirm-overlay[hidden] {
	display: none !important;
}

.tc-estimate-form__confirm-dialog {
	width: 100%;
	max-width: 520px;
	padding: 1.5rem;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.25);
}

.tc-estimate-form__confirm-title {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
	color: #212529;
}

.tc-estimate-form__confirm-message {
	margin: 0 0 1.5rem;
	font-size: 1rem;
	line-height: 1.7;
	color: #212529;
	white-space: pre-line;
}

.tc-estimate-form__confirm-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-end;
}

.tc-estimate-form__confirm-actions .btn {
	min-width: 120px;
	min-height: 44px;
	font-size: 1rem;
}

/* 写真セクション */
.tc-photo-section {
	margin-bottom: 1rem;
	font-size: 18px;
	line-height: 1.5;
	color: #212529;
}

.tc-photo-section__lead {
	margin: 0 0 1rem;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.tc-mobile-photo-upload,
.tc-session-photos,
.tc-pc-photo-upload {
	margin-bottom: 1rem;
}

.tc-mobile-photo-upload {
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
}

.tc-estimate-form__qr-panel {
	padding: 0.875rem 1rem;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 4px;
}

.tc-estimate-form__qr-panel-title {
	margin: 0 0 0.75rem;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	color: #212529;
}

.tc-estimate-form__qr-panel-body {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	align-items: start;
	gap: 0 1.25rem;
}

.tc-estimate-form__qr-panel-code {
	grid-column: 1;
	grid-row: 1;
}

.tc-estimate-form__qr-panel-text {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.tc-estimate-form__qr-panel-text p {
	margin: 0 0 0.5rem;
}

.tc-estimate-form__qr-panel-text p:last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 800px) {
	.tc-estimate-form__qr-panel {
		display: none !important;
	}
}

.tc-session-photos {
	padding: 0;
}

.tc-pc-photo-upload {
	padding-top: 0;
	border-top: none;
}

.tc-estimate-form__pc-photo-lead {
	margin: 0 0 0.375rem;
	font-size: 16px;
	line-height: 1.6;
	color: #212529;
}

.tc-estimate-form__pc-photo-note {
	margin: 0 0 0.75rem;
	font-size: 16px;
	line-height: 1.6;
	color: #6c757d;
}

.tc-estimate-form__field--photo {
	width: 100%;
	margin-bottom: 0 !important;
}

.tc-estimate-form__photo-slots {
	margin-bottom: 0;
}

.tc-photo-upload-list--hidden {
	display: none !important;
}

.tc-estimate-form__field--photo-inactive {
	display: none;
}

/* work_type 別撮影ガイド */
.tc-photo-guide {
	margin-bottom: 1rem;
	font-size: 16px;
	line-height: 1.5;
}

.tc-photo-guide__title {
	margin: 0 0 0.375rem;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #212529;
}

.tc-photo-guide__scroll-region {
	position: relative;
}

.tc-photo-guide__scroll-hint {
	display: none;
	align-items: center;
	gap: 0.375rem;
	margin: 0 0 0.375rem;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #6c757d;
}

.tc-photo-guide__scroll-hint .fa-arrows-left-right {
	flex: 0 0 auto;
	font-size: 1rem;
	opacity: 0.85;
}

.tc-photo-guide__list-wrap {
	position: relative;
}

.tc-photo-guide__scroll-fade {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0.25rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: 3.5rem;
	padding-right: 0.25rem;
	pointer-events: none;
	background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.88) 58%, rgba(255, 255, 255, 0.98) 100%);
	opacity: 1;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.tc-photo-guide__scroll-chevron {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	color: #495057;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid #dee2e6;
	border-radius: 999px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.tc-photo-guide__scroll-chevron .fa-chevron-right {
	font-size: 1.125rem;
	line-height: 1;
}

.tc-photo-guide__scroll-region--no-scroll .tc-photo-guide__scroll-fade,
.tc-photo-guide__scroll-region--at-end .tc-photo-guide__scroll-fade {
	opacity: 0;
	visibility: hidden;
}

.tc-photo-guide__scroll-region--interacted .tc-photo-guide__scroll-hint,
.tc-photo-guide__scroll-region--at-end .tc-photo-guide__scroll-hint,
.tc-photo-guide__scroll-region--no-scroll .tc-photo-guide__scroll-hint {
	display: none !important;
}

@media screen and (max-width: 768px) {
	.tc-photo-guide__scroll-region:not(.tc-photo-guide__scroll-region--no-scroll) .tc-photo-guide__scroll-hint {
		display: flex;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tc-photo-guide__scroll-fade {
		transition: none;
	}
}

.tc-photo-guide__list {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0 0 0.25rem;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;
	scrollbar-width: auto;
	scrollbar-color: #ced4da transparent;
}

.tc-photo-guide__list::-webkit-scrollbar {
	height: 12px;
}

.tc-photo-guide__list::-webkit-scrollbar-thumb {
	background: #ced4da;
	border-radius: 999px;
}

.tc-photo-guide__item {
	display: flex;
	flex-direction: column;
	flex: 0 0 auto;
	gap: 0.25rem;
	width: 200px;
	min-width: 0;
	padding: 10px;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 0.25rem;
	scroll-snap-align: start;
}

.tc-photo-guide__thumb {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	cursor: pointer;
	background: #f8f9fa;
	border: none;
	border-radius: 0.25rem;
	overflow: hidden;
}

.tc-photo-guide__thumb-expand {
	position: absolute;
	right: 0.375rem;
	bottom: 0.375rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	font-size: 0.875rem;
	line-height: 1;
	color: #fff;
	pointer-events: none;
	background: var(--tc-checkbox-color, #06c755);
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

.tc-photo-guide__thumb:focus-visible {
	outline: 2px solid #0d6efd;
	outline-offset: 2px;
}

.tc-photo-guide__thumb img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	background: #fff;
}

.tc-photo-guide__label {
	font-size: 1em;
	font-weight: 700;
	line-height: 1.4;
	color: inherit;
}

.tc-photo-guide__desc {
	margin: 0;
	font-size: 0.875em;
	font-weight: 400;
	line-height: 1.4;
	color: #495057;
}

.tc-photo-guide-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10050;
	padding: 1rem;
	background: rgba(15, 23, 42, 0.5);
}

.tc-photo-guide-lightbox:not([hidden]) {
	display: grid;
	grid-template-columns: min(92vw, 28rem);
	grid-template-rows: auto auto;
	justify-content: center;
	align-content: center;
	gap: 0;
}

.tc-photo-guide-lightbox[hidden] {
	display: none !important;
}

.tc-photo-guide-lightbox__close {
	grid-column: 1;
	grid-row: 1 / 3;
	justify-self: end;
	align-self: start;
	z-index: 2;
	width: 2.5rem;
	height: 2.5rem;
	margin: -0.75rem -0.75rem 0 0;
	padding: 0;
	font-size: 1.75rem;
	line-height: 2.5rem;
	color: #495057;
	text-align: center;
	cursor: pointer;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.tc-photo-guide-lightbox__body {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-height: none;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid #dee2e6;
	border-bottom: 0;
	border-radius: 0.5rem 0.5rem 0 0;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.tc-photo-guide-lightbox__body img {
	display: block;
	width: 100%;
	max-width: 100%;
	max-height: min(92vw, 27rem);
	aspect-ratio: 1;
	object-fit: contain;
	border-radius: 0.25rem;
}

.tc-photo-guide-lightbox__caption {
	grid-column: 1;
	grid-row: 2;
	width: 100%;
	max-width: none;
	margin-top: 0;
	padding: 0.625rem 0.75rem 0.75rem;
	font-size: 20px;
	line-height: 1.45;
	color: #495057;
	text-align: left;
	background: #fff;
	border: 1px solid #dee2e6;
	border-top: 1px solid #e9ecef;
	border-radius: 0 0 0.5rem 0.5rem;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.tc-photo-guide-lightbox__title {
	margin: 0 0 0.375rem;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
	color: #212529;
}

.tc-photo-guide-lightbox__desc {
	margin: 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.55;
	color: #495057;
}

/* テーマ .article ul li の list-style / margin 上書き */
.article .tc-estimate-form-wrap .tcos-bootstrap-scope ul.tc-photo-guide__list,
.tc-estimate-form-wrap .tcos-bootstrap-scope ul.tc-photo-guide__list {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 0 0.25rem !important;
}

.article .tc-estimate-form-wrap .tcos-bootstrap-scope ul.tc-photo-guide__list > li.tc-photo-guide__item,
.tc-estimate-form-wrap .tcos-bootstrap-scope ul.tc-photo-guide__list > li.tc-photo-guide__item {
	list-style: none !important;
	list-style-type: none !important;
	margin: 0 !important;
}

.tc-photo-guide__list li {
	margin-bottom: 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.tc-photo-guide__list li:last-child {
	margin-bottom: 0;
}

.tc-photo-guide__placeholder {
	margin: 0 0 1rem;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.tc-photo-add-area {
	margin-bottom: 1.25rem;
}

.tc-photo-add-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 11rem;
	padding: 0.875rem 1.5rem;
	font-size: inherit;
	font-weight: 600;
	line-height: inherit;
	color: #fff;
	text-align: center;
	cursor: pointer;
	background: #0d6efd;
	border: 1px solid #0d6efd;
	border-radius: 0.375rem;
}

.tc-photo-add-trigger:hover:not(:disabled) {
	background: #0b5ed7;
	border-color: #0a58ca;
}

.tc-photo-add-trigger:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.tc-photo-add-note {
	margin: 0.5rem 0 0;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.tc-estimate-form__photo-row {
	min-height: 0;
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form__photo-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tc-photo-upload-filename {
	display: none;
}

.tc-estimate-form__field--photo.is-invalid .tc-photo-add-trigger {
	box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.2);
}

.tc-estimate-form__photo-thumb {
	display: block;
	width: 5.75rem;
	height: 5.75rem;
	margin: 0 auto 0.375rem;
	padding: 0;
	cursor: pointer;
	background: #f8f9fa;
	border: 2px dashed #ced4da;
}

.tc-estimate-form__photo-thumb:focus-visible {
	outline: 2px solid #fd7e14;
	outline-offset: 2px;
}

.tc-estimate-form__photo-thumb-media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	overflow: hidden;
	color: #adb5bd;
	background: #f8f9fa;
}

.tc-estimate-form__photo-thumb-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tc-estimate-form__photo-thumb-media .fa-image {
	font-size: 1.5rem;
	line-height: 1;
}

.tc-estimate-form__photo-thumb-file {
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	color: #6c757d;
}

.tc-estimate-form__photo-slot-label {
	margin-bottom: 0.375rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.35;
	color: #495057;
}

.tc-estimate-form__field--photo-inactive .tc-estimate-form__photo-thumb {
	cursor: pointer;
	opacity: 0.72;
}

.tc-estimate-form__field--photo-inactive .tc-estimate-form__photo-row {
	display: none;
}

.tc-estimate-form__photo-desc {
	display: none;
}

.tc-estimate-form__photo-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	min-height: 0;
}

.tc-estimate-form__photo-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10050;
	padding: 1rem;
	background: rgba(15, 23, 42, 0.5);
}

.tc-estimate-form__photo-lightbox:not([hidden]) {
	display: grid;
	grid-template-columns: min(92vw, 28rem);
	grid-template-rows: auto auto;
	justify-content: center;
	align-content: center;
	gap: 0;
}

.tc-estimate-form__photo-lightbox[hidden] {
	display: none !important;
}

.tc-estimate-form__photo-lightbox-close {
	grid-column: 1;
	grid-row: 1 / 3;
	justify-self: end;
	align-self: start;
	z-index: 2;
	width: 1.75rem;
	height: 1.75rem;
	margin: -0.625rem -0.625rem 0 0;
	padding: 0;
	font-size: 1.125rem;
	line-height: 1.75rem;
	color: #495057;
	text-align: center;
	cursor: pointer;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.tc-estimate-form__photo-lightbox-body {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-height: none;
	padding: 0.5rem;
	color: #495057;
	text-align: center;
	background: #fff;
	border: 1px solid #dee2e6;
	border-bottom: 0;
	border-radius: 0.5rem 0.5rem 0 0;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.tc-estimate-form__photo-lightbox-body:has(.tc-estimate-form__photo-lightbox-placeholder) {
	border-style: dashed;
}

.tc-estimate-form__photo-lightbox-body img {
	display: block;
	width: 100%;
	max-width: 100%;
	max-height: min(92vw, 27rem);
	aspect-ratio: 1;
	object-fit: contain;
	border-radius: 0.25rem;
}

.tc-estimate-form__photo-lightbox-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 8rem;
	padding: 0.75rem;
}

.tc-estimate-form__photo-lightbox-placeholder .fa-image {
	font-size: 2rem;
	line-height: 1;
	color: #adb5bd;
}

.tc-estimate-form__photo-lightbox-hint {
	font-size: 0.8125rem;
	line-height: 1.45;
	color: #6c757d;
}

.tc-estimate-form__photo-lightbox-caption {
	grid-column: 1;
	grid-row: 2;
	width: 100%;
	max-width: none;
	margin-top: 0;
	padding: 0.5rem 0.625rem 0.625rem;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.45;
	color: #495057;
	text-align: left;
	background: #fff;
	border: 1px solid #dee2e6;
	border-top: 1px solid #e9ecef;
	border-radius: 0 0 0.5rem 0.5rem;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form__photo-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tc-estimate-form__photo-pick {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	width: 100%;
	margin: 0;
	padding: 0.35rem 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
	white-space: nowrap;
	cursor: pointer;
	background: #fd7e14;
	border: none;
	border-radius: 0;
}

.tc-estimate-form__photo-pick:hover {
	background: #e8590c;
}

.tc-estimate-form__photo-pick .fa-camera {
	font-size: 0.75rem;
	line-height: 1;
}

.tc-estimate-form__photo-status {
	display: block;
	width: 100%;
	overflow: hidden;
	font-size: 0.6875rem;
	line-height: 1.35;
	color: #6c757d;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-estimate-form__field--photo.is-invalid .tc-estimate-form__photo-pick {
	box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.35);
}

/* セッション写真・QR */
.tc-estimate-form__session-photos {
	padding: 1rem;
	border: 1px solid #dee2e6;
	border-radius: 0.375rem;
	background: #f8f9fa;
}

.tc-estimate-form__qr-canvas canvas {
	display: block;
	width: 112px;
	height: 112px;
	image-rendering: pixelated;
	border: none;
	background: #fff;
}

.tc-estimate-form__upload-url {
	word-break: break-all;
	font-size: 16px;
}

.tc-estimate-form__session-photo-grid {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 0;
}

.tc-estimate-form__session-photo-item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	padding: 0.5rem 0.75rem;
	border: 1px solid #dee2e6;
	border-radius: 0.375rem;
	background: #fff;
}

.tc-estimate-form__session-photo-thumb {
	flex: 0 0 auto;
	width: 3rem;
	height: 3rem;
	aspect-ratio: auto;
	object-fit: cover;
	border-radius: 0.25rem;
	background: #f1f3f5;
}

.tc-estimate-form__session-photo-thumb--pdf,
.tc-estimate-mobile-upload__thumb--pdf {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.2;
	color: #dc3545;
	text-decoration: none;
	background: #f1f3f5;
	border-radius: 0.25rem;
}

.tc-estimate-form__session-photo-meta {
	font-size: 12px;
	line-height: 1.4;
	word-break: break-all;
	color: #495057;
}

.tc-estimate-form__session-photo-detach {
	align-self: flex-start;
}

/* スマホアップロード */
body:has(.tc-estimate-mobile-upload-wrap) {
	overflow-x: clip;
}

.tc-estimate-mobile-upload-wrap {
	box-sizing: border-box;
	max-width: 100%;
	margin: 0;
	padding: 16px 1em 32px;
}

.tc-estimate-mobile-upload {
	padding: 0;
	font-size: 16px;
	line-height: 1.6;
}

.tc-estimate-mobile-upload__title {
	margin: 0 0 16px;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
}

.tc-estimate-mobile-upload__intro {
	margin: 0 0 20px;
	padding: 16px;
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 12px;
	font-size: 16px;
	line-height: 1.6;
}

.tc-estimate-mobile-upload__intro p {
	margin: 0 0 8px;
}

.tc-estimate-mobile-upload__intro p:last-child {
	margin-bottom: 0;
}

.tc-estimate-mobile-upload__actions {
	margin-bottom: 20px;
	padding: 16px;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 12px;
}

.tc-estimate-mobile-upload__actions-lead {
	margin: 0 0 12px;
	font-size: 16px;
	line-height: 1.6;
}

.tc-estimate-mobile-upload__action-buttons {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__pick {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 14px 20px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	border-radius: 12px;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__pick--library {
	color: #fff;
	background: #0d6efd;
	border: 2px solid #0d6efd;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__pick--library:active {
	background: #0b5ed7;
	border-color: #0b5ed7;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__pick--camera {
	color: #0d6efd;
	background: #fff;
	border: 2px solid #0d6efd;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__pick--camera:active {
	background: #e7f1ff;
}

.tc-estimate-mobile-upload__progress {
	margin-top: 16px;
}

.tc-estimate-mobile-upload__progress[hidden] {
	display: none !important;
}

.tc-estimate-mobile-upload__progress-label {
	margin-bottom: 8px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: #495057;
}

.tc-estimate-mobile-upload__progress-track {
	overflow: hidden;
	height: 10px;
	background: #e9ecef;
	border-radius: 999px;
}

.tc-estimate-mobile-upload__progress-bar {
	width: 0;
	height: 100%;
	background: #0d6efd;
	border-radius: 999px;
	transition: width 0.15s ease;
}

.tc-estimate-mobile-upload__alert {
	margin: 0;
	padding: 16px;
	font-size: 16px;
	line-height: 1.6;
	color: #842029;
	background: #f8d7da;
	border: 1px solid #f5c2c7;
	border-radius: 12px;
}

.tc-estimate-mobile-upload__message {
	min-height: 1.5rem;
	margin-bottom: 16px;
	padding: 0 4px;
	font-size: 16px;
	line-height: 1.6;
}

.tc-estimate-mobile-upload__message.text-danger {
	color: #dc3545;
}

.tc-estimate-mobile-upload__message.text-success {
	color: #198754;
}

.tc-estimate-mobile-upload__status {
	margin-bottom: 12px;
	padding: 12px 16px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	background: #e7f1ff;
	border-radius: 10px;
}

.tc-estimate-mobile-upload__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tc-estimate-mobile-upload__item {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 12px;
}

.tc-estimate-mobile-upload__thumb {
	width: 100%;
	max-height: 240px;
	object-fit: contain;
	background: #f8f9fa;
	border-radius: 8px;
}

.tc-estimate-mobile-upload__filename {
	font-size: 12px;
	line-height: 1.4;
	word-break: break-all;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__detach {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 12px 16px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	color: #495057;
	cursor: pointer;
	background: #fff;
	border: 2px solid #ced4da;
	border-radius: 10px;
	-webkit-tap-highlight-color: transparent;
	touch-action: manipulation;
}

.tc-estimate-mobile-upload-wrap .tc-estimate-mobile-upload__detach:active {
	background: #f8f9fa;
}

/* スマホ：サイトタイトル・お客様情報・ナビボタン・アップロード画面 */
@media screen and (max-width: 767px) {
	body:has(.tc-estimate-form-wrap) .wp-block-site-title,
	body:has(.tc-estimate-mobile-upload-wrap) .wp-block-site-title {
		margin-left: 1em;
		margin-right: 1em;
	}

	.tc-estimate-form-wrap .tc-estimate-form__section-panel-inner {
		padding-left: 1em;
		padding-right: 1em;
	}

	.tc-estimate-form--stepped .tc-estimate-form__footer {
		padding-left: 1em;
		padding-right: 1em;
	}
}

.tc-estimate-form__confirmed-submit-helper {
	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;
}

/* 送信前確認画面 */
.tc-confirm-screen[hidden] {
	display: none !important;
}

.tc-estimate-form--confirm-mode .tc-estimate-form__form-main {
	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;
}

.tc-estimate-form--confirm-mode .tc-estimate-form__page-bottom {
	display: none !important;
}

.tc-estimate-form--confirm-mode .tc-confirm-screen {
	display: block;
}

.tc-confirm-screen {
	padding: 0 0 1.5rem;
	font-size: 16px;
	line-height: 1.5;
}

.tc-confirm-screen__title {
	margin: 0 0 1rem;
	padding: 0 0 0.75rem;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	border-bottom: 4px solid #0d6efd;
}

.tc-confirm-screen__lead {
	margin: 0 0 1.5rem;
	color: #6c757d;
	font-size: 16px;
	line-height: 1.5;
}

.tc-confirm-section {
	margin-bottom: 2rem;
}

.tc-confirm-section__title {
	margin: 0 0 1rem;
	padding: 0 0 0.75rem;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	border-bottom: 4px solid #0d6efd;
}

.tc-confirm-subsection__title {
	margin: 0 0 1rem;
	padding: 0 0 0.75rem;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	color: #212529;
	border-bottom: 4px solid #0d6efd;
}

.tc-confirm-product-summary {
	margin: 0 0 0.75rem;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	color: #212529;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.tc-confirm-table {
	margin: 0;
}

.tc-confirm-row {
	display: grid;
	grid-template-columns: 50% 50%;
	gap: 0.5rem 1rem;
	margin: 0 0 0.75rem;
	align-items: start;
}

.tc-confirm-row__label,
.tc-confirm-row__value {
	margin: 0;
	min-width: 0;
	font-size: 16px;
	line-height: 1.5;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.tc-confirm-row__label {
	font-weight: 600;
}

.tc-confirm-row__value {
	font-weight: 400;
}

.tc-confirm-row__value a {
	font-size: 16px;
	line-height: 1.5;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.tc-confirm-photos__count {
	margin: 0 0 0.75rem;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
}

.tc-confirm-photo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
	gap: 0.75rem;
}

.tc-confirm-photo-item__thumb {
	display: block;
	width: 100%;
	height: 5.5rem;
	object-fit: cover;
	border: 1px solid #dee2e6;
	border-radius: 0.375rem;
	background: #f8f9fa;
}

.tc-confirm-photo-item__thumb--pdf {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: #495057;
}

.tc-confirm-photo-item__name {
	margin-top: 0.35rem;
	font-size: 16px;
	line-height: 1.4;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.tc-confirm-actions {
	margin-top: 1.5rem;
}

.tc-estimate-form__photo-optional-lead {
	margin: 0 0 0.75rem;
	font-size: 16px;
	line-height: 1.6;
	color: #212529;
}

.tc-session-photo-list__title {
	margin: 0 0 0.75rem;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
}

.tc-session-photo-grid {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.tc-session-photo-item {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	padding: 0.5rem 0.75rem;
	background: #fff;
	border: 1px solid #dee2e6;
	border-radius: 0.375rem;
}

.tc-session-photo-item__meta {
	flex: 1 1 auto;
	min-width: 0;
}

.tc-session-photo-thumb {
	display: block;
	flex: 0 0 auto;
	width: 3rem;
	height: 3rem;
	aspect-ratio: auto;
	object-fit: cover;
	border: 1px solid #dee2e6;
	border-radius: 0.25rem;
	background: #f8f9fa;
}

.tc-session-photo-thumb--pdf,
.tc-estimate-form__session-photo-thumb--pdf {
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: #495057;
	text-decoration: none;
}

.tc-session-photo-name {
	margin-top: 0;
	font-size: inherit;
	line-height: inherit;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tc-session-photo-source {
	margin-top: 0.125rem;
	font-size: inherit;
	line-height: inherit;
	color: #6c757d;
}

.tc-session-photo-actions {
	flex: 0 0 auto;
	margin: 0;
}

.tc-estimate-form__pc-photo-note {
	margin: 0 0 0.5rem;
	font-size: 16px;
	line-height: 1.6;
}

.tc-estimate-form__pc-photo-limit {
	margin: 0 0 0.75rem;
	font-size: 14px;
	line-height: 1.5;
	color: #6c757d;
}

.tc-confirm-photo-item__source {
	margin-top: 0.15rem;
	font-size: 16px;
	line-height: 1.5;
	color: #6c757d;
}

@media screen and (max-width: 767px) {
	.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form.tc-estimate-form__inner.tc-estimate-form--confirm-mode,
	.tc-estimate-form-wrap .tcos-bootstrap-scope .tc-estimate-form.tc-estimate-form__inner.tc-estimate-form--thanks {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}

	.tc-estimate-form--confirm-mode .tc-confirm-screen {
		padding-left: 0;
		padding-right: 0;
	}

	.tc-photo-add-trigger {
		width: 100%;
		min-width: 0;
	}

	.tc-confirm-actions {
		flex-direction: column;
	}
}

@media screen and (max-width: 479px) {
	.tc-session-photo-item {
		flex-wrap: wrap;
	}

	.tc-session-photo-actions {
		width: 100%;
	}
}

.tc-estimate-form__liff-status {
	margin-bottom: 1rem;
	padding: 0.75rem 1rem;
	font-size: 0.95rem;
}

.tc-estimate-form__liff-status--verified {
	background-color: #e8f5e9;
	border-color: #c8e6c9;
	color: #2e7d32;
}

.tc-estimate-form__liff-status--error {
	background-color: #fdecea;
	border-color: #f5c6cb;
	color: #b71c1c;
}

.tc-estimate-form__thanks-liff {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid #dee2e6;
}

.tc-estimate-form__liff-close-fallback {
	color: #6c757d;
	font-size: 0.95rem;
}
