@charset "utf-8";

.estimate-flow,
.estimate-flow * { box-sizing: border-box; }

.estimate-steps {
	position: -webkit-sticky;
	position: sticky;
	z-index: 20;
	top: 53px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	/*max-width: 480px;*/
	margin: 12px auto 12px;
	padding: 18px 14px;
	background: #fff;
	box-shadow: 0 5px 14px rgba(25, 30, 38, .07);
}

.estimate-steps span {
	display: block;
	height: auto;
	overflow: visible;
	color: transparent;
	font-size: 0;
	line-height: 0;
	background: transparent;
}

.estimate-steps b {
	display: block;
	color: #a1a5ad;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .7px;
}

.estimate-steps span:after {
	content: "";
	display: block;
	height: 6px;
	margin-top: 8px;
	background: #e6e8ec;
	border-radius: 999px;
}

.estimate-steps span.done b,
.estimate-steps span.active b { color: #FF7D3B; }

.estimate-steps span.done:after,
.estimate-steps span.active:after { background: #ffd21e; }

.theme-bbegi .estimate-steps span.done b,
.theme-bbegi .estimate-steps span.active b { color: #d95618; }

.theme-bbegi .estimate-steps span.done:after,
.theme-bbegi .estimate-steps span.active:after { background: #ff7d3b; }

.step-page {
	/*max-width: 480px;*/
	margin: 0 auto;
	padding: 0 14px;
}

.step-card {
	padding: 20px 16px;
	background: #fff;
	border: 1px solid #e9eaed;
	border-radius: 14px;
	box-shadow: 0 4px 18px rgba(32, 38, 46, .05);
}

.step-title { margin: 0 0 6px; font-size: 19px; font-weight: 800; letter-spacing: -.5px; }
.step-desc { margin: 0 0 22px; color: #777; font-size: 13px; line-height: 1.55; }
.step-field { margin-top: 18px; }
.step-field:first-of-type { margin-top: 0; }
.step-label { display: block; margin: 0 0 8px; color: #333; font-size: 15px; font-weight: 700; }
.required-mark { margin-left: 3px; color: #e5484d; font-style: normal; font-weight: 900; }

.step-input,
.step-select {
	width: 100%;
	height: 46px;
	padding: 0 13px;
	color: #222;
	font-size: 15px;
	font-weight: 600;
	background: #f7f8fa;
	border: 1px solid #dfe2e6;
	border-radius: 9px;
	outline: none;
}

.step-input:focus,
.step-select:focus { background: #fff; border-color: #FF7D3B; box-shadow: 0 0 0 3px rgba(0, 0, 0, .05); }
.step-input[readonly] { color: #777; background: #f0f1f3; }

.step-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px 9px;
}
.step-fields .step-field,
.step-fields .step-field:first-child { min-width: 0; margin-top: 0; }
.step-fields .step-field-address { grid-column: 1 / -1; }
.step-fields .step-label { margin-bottom: 6px; font-size: 15px; }
.step-fields .step-input { height: 44px; padding-right: 32px; padding-left: 10px; font-size: 13.5px; }
.step-field-address .step-choice {
	height: auto;
	min-height: 50px;
	padding: 10px 40px 10px 14px;
	font-size: 13.5px;
	line-height: 1.45;
	white-space: normal;
}
.optional-service-card { overflow: hidden; }
.optional-service-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: -4px 0 22px;
	padding: 18px;
	background: linear-gradient(135deg, #fff4ed 0%, #fffaf7 100%);
	border: 1px solid #ffe0cf;
	border-radius: 15px;
}
.optional-service-visual span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	color: #d95618;
	font-size: 12px;
	font-weight: 900;
	background: #fff;
	border: 1px solid #ffd4bd;
	border-radius: 18px;
	box-shadow: 0 7px 16px rgba(128, 76, 47, .08);
}
.optional-service-visual span:nth-child(2) { color: #fff; background: #ff7d3b; border-color: #ff7d3b; }
.optional-service-section {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #eceef1;
}
.optional-service-kicker {
	display: block;
	margin-bottom: 9px;
	color: #777d85;
	font-size: 12px;
	font-weight: 800;
}
.optional-service-list { display: grid; gap: 10px; }
.optional-service-item { min-width: 0; }
.optional-service-option {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 86px;
	padding: 14px;
	cursor: pointer;
	background: #f7f8fa;
	border: 1px solid #e1e4e8;
	border-radius: 13px;
	transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.optional-service-option > input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	opacity: 0;
}
.optional-service-icon {
	display: flex;
	flex: 0 0 42px;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: #686e76;
	font-size: 10px;
	font-weight: 900;
	background: #fff;
	border-radius: 12px;
}
.optional-service-copy { flex: 1; min-width: 0; }
.optional-service-copy strong {
	display: block;
	color: #25282d;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.35;
}
.optional-service-copy small {
	display: block;
	margin-top: 4px;
	color: #747981;
	font-size: 12px;
	line-height: 1.45;
}
.optional-service-check {
	position: relative;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	background: #fff;
	border: 2px solid #c7ccd3;
	border-radius: 7px;
}
.optional-service-check:after {
	position: absolute;
	top: 3px;
	left: 6px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	content: "";
	opacity: 0;
	transform: rotate(45deg);
}
.optional-service-option.is-selected {
	background: #fff7f2;
	border-color: #ff9c6b;
	box-shadow: 0 7px 18px rgba(255, 125, 59, .08);
}
.optional-service-option.is-selected .optional-service-icon { color: #d95618; background: #ffe7da; }
.optional-service-option.is-selected .optional-service-check { background: #ff7d3b; border-color: #ff7d3b; }
.optional-service-option.is-selected .optional-service-check:after { opacity: 1; }
.optional-service-option:focus-within { border-color: #ff7d3b; box-shadow: 0 0 0 3px rgba(255, 125, 59, .12); }
.optional-service-date {
	display: none;
	margin-top: 8px;
	padding: 13px 14px;
	background: #fffaf7;
	border: 1px solid #ffe0cf;
	border-radius: 12px;
}
.optional-service-date.is-visible { display: block; }
.optional-service-date label { display: block; margin-bottom: 6px; color: #454a51; font-size: 12px; font-weight: 800; }
.optional-service-date-control {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0 44px 0 13px;
	color: #222;
	font-family: inherit;
	text-align: left;
	cursor: pointer;
	background: #fff;
	border: 1px solid #dfe2e6;
	border-radius: 9px;
	box-sizing: border-box;
}
.optional-service-date-control:focus { border-color: #ff7d3b; outline: none; box-shadow: 0 0 0 3px rgba(0, 0, 0, .05); }
.optional-service-date-text {
	min-width: 0;
	color: #8a8f96;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1;
}
.optional-service-date-control.has-value .optional-service-date-text { color: #222; font-weight: 700; }
.optional-service-calendar-icon {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 17px;
	height: 16px;
	border: 2px solid #737982;
	border-radius: 4px;
	box-sizing: border-box;
	pointer-events: none;
	transform: translateY(-45%);
}
.optional-service-calendar-icon:before {
	position: absolute;
	top: 3px;
	right: -2px;
	left: -2px;
	border-top: 2px solid #737982;
	content: "";
}
.optional-service-calendar-icon:after {
	position: absolute;
	top: -5px;
	left: 3px;
	width: 2px;
	height: 5px;
	background: #737982;
	box-shadow: 7px 0 0 #737982;
	content: "";
}
.estimate-flow #innerLayer.storage-date-layer .storage-date-picker-title {
	display: flex;
	align-items: center;
	height: 34px !important;
	padding: 0 4px;
	color: #25282d;
	font-size: 15px;
	font-weight: 800;
	box-sizing: border-box;
}
.estimate-flow #innerLayer.storage-date-layer #storageDatePicker { margin: 0 !important; }
.estimate-flow #innerLayer.storage-date-layer .storage-date-picker-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 12px;
}
.estimate-flow #innerLayer.storage-date-layer .storage-date-picker-actions button {
	height: 44px;
	padding: 0;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
	border-radius: 10px;
}
.estimate-flow #innerLayer.storage-date-layer .storage-date-picker-actions .cancel {
	color: #555b63;
	background: #f3f4f6;
	border: 1px solid #dfe2e6;
}
.estimate-flow #innerLayer.storage-date-layer .storage-date-picker-actions .delete {
	color: #fff;
	background: #e5484d;
	border: 1px solid #e5484d;
}
.estimate-flow #innerLayer.storage-date-layer .ui-datepicker td.ui-state-disabled,
.estimate-flow #innerLayer.storage-date-layer .ui-datepicker td.ui-state-disabled span { cursor: not-allowed !important; }
.optional-service-date p,
.optional-service-note { margin: 8px 2px 0; color: #747981; font-size: 12px; line-height: 1.5; }
.optional-service-storage {
	overflow: hidden;
	background: #f7f8fa;
	border: 1px solid #e1e4e8;
	border-radius: 13px;
	transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.optional-service-storage .optional-service-option {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}
.optional-service-storage.is-expanded {
	background: #fff7f2;
	border-color: #ff9c6b;
	box-shadow: 0 7px 18px rgba(255, 125, 59, .08);
}
.optional-service-storage .optional-service-option.is-selected { box-shadow: none; }
.optional-service-storage .optional-service-date {
	display: block;
	visibility: hidden;
	overflow: hidden;
	max-height: 0;
	margin: 0 14px;
	padding: 0;
	opacity: 0;
	background: transparent;
	border: 0;
	border-top: 1px solid transparent;
	border-radius: 0;
	pointer-events: none;
	transform: translateY(-5px);
	transition: max-height .25s ease, padding .25s ease, opacity .2s ease, transform .25s ease, border-color .2s ease;
}
.optional-service-storage .optional-service-date.is-visible {
	visibility: visible;
	max-height: 150px;
	padding: 13px 0 14px;
	opacity: 1;
	border-top-color: #ffd8c3;
	pointer-events: auto;
	transform: translateY(0);
}
.optional-service-error { margin: 14px 0 0; padding: 11px 12px; color: #c83f55; font-size: 12px; font-weight: 700; background: #fff2f4; border: 1px solid #f4d4d9; border-radius: 9px; }
.step-choice {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	padding-right: 40px;
	white-space: nowrap;
	text-overflow: ellipsis;
	text-decoration: none;
}
.step-choice:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 16px;
	width: 7px;
	height: 7px;
	margin-top: -5px;
	border-top: 2px solid #9da2aa;
	border-right: 2px solid #9da2aa;
	transform: rotate(45deg);
}
.step-choice-date:before {
	content: "";
	position: absolute;
	top: 14px;
	right: 14px;
	width: 14px;
	height: 14px;
	border: 2px solid #9da2aa;
	border-radius: 3px;
}
.step-choice-date:after {
	top: 12px;
	right: 17px;
	width: 8px;
	height: 3px;
	margin: 0;
	border: 0;
	border-top: 2px solid #9da2aa;
	border-bottom: 2px solid #9da2aa;
	transform: none;
}
.step-choice.is-complete {
	color: #151515;
	font-weight: 800;
	background: #fffbed;
	/*border-color: #e8c326;*/
}
.step-field.is-complete .step-label { color: #292929; font-weight: 800; }
.theme-bbegi .step-choice.is-complete {
	background: #fff3ec;
	border-color: #ff9c6b;
	box-shadow: inset 3px 0 0 #ff7d3b;
}
.theme-bbegi .step-field.is-complete .step-label { color: #c84e14; }

.phone-inline,
.auth-inline { display: flex; align-items: center; gap: 7px; }
.phone-inline .step-select { flex: 0 0 72px; padding: 0 8px; }
.phone-inline .step-input { flex: 1 1 0; min-width: 0; text-align: center; }
.auth-inline .step-input { flex: 1 1 auto; min-width: 0; }
.auth-number-wrap { position: relative; flex: 1 1 auto; min-width: 0; }
.auth-number-wrap .step-input { padding-right: 61px; }
.auth-countdown {
	position: absolute;
	top: 50%;
	right: 13px;
	color: #e5484d;
	font-size: 12px;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	line-height: 1;
	pointer-events: none;
	transform: translateY(-50%);
}
.auth-inline #btnVerify { min-width: 104px; transition: color .2s ease, background-color .2s ease, border-color .2s ease; font-size: 14px; }

.step-action {
	flex: 0 0 auto;
	height: 46px;
	padding: 0 13px;
	color: #191919;
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
	background: #ffd737;
	border: 1px solid #e8c326;
	border-radius: 9px;
}

.theme-bbegi .step-action { color: #fff; background: #ff7d3b; border-color: #e96b2d; }
.step-action[disabled] { color: #999; background: #eceef1; border-color: #dfe2e6; }
.step-action.verified[disabled] { color: #16834b; background: #eaf8f0; border-color: #a9dfbf; }

.customer-review {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 22px;
	padding: 12px 13px;
	background: #f7f8fa;
	border: 1px solid #e5e7ea;
	border-radius: 10px;
}
.customer-review span { color: #888; font-size: 11px; }
.customer-review strong { min-width: 0; overflow: hidden; color: #222; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }

.step-followup {
	padding-top: 24px;
}
.password-input-wrap { position: relative; }
.password-input-wrap .step-input { padding-right: 50px; }
.password-input-wrap input::-ms-reveal,
.password-input-wrap input::-ms-clear { display: none; }
.password-visibility-toggle {
	position: absolute;
	top: 50%;
	right: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 8px;
	transform: translateY(-50%);
}
.password-visibility-toggle:hover { background: #f1f3f5; }
.password-visibility-toggle:focus { outline: 2px solid #ffd737; outline-offset: 1px; }
.theme-bbegi .password-visibility-toggle:focus { outline-color: #ff9c6b; }
.password-eye {
	position: relative;
	display: block;
	width: 19px;
	height: 13px;
	border: 2px solid #7f858e;
	border-radius: 70% 0 70% 0;
	transform: rotate(45deg);
}
.password-eye:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 5px;
	height: 5px;
	background: #7f858e;
	border-radius: 50%;
	transform: translate(-50%, -50%);
}
.password-visibility-toggle:after {
	content: "";
	position: absolute;
	top: 18px;
	left: 7px;
	width: 24px;
	height: 2px;
	background: #7f858e;
	border-radius: 2px;
	transform: rotate(45deg);
}
.password-visibility-toggle.is-visible:after { display: none; }

.auth-complete {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 15px;
	color: #16834b;
	background: #eaf8f0;
	border: 1px solid #b9e3c9;
	border-radius: 11px;
}
.auth-complete span { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; color: #fff; background: #26a762; border-radius: 50%; }
.auth-complete strong { font-size: 14px; }
.new-password-section .auth-complete { margin-bottom: 22px; }
.resend-guide { margin: 9px 0 0; color: #8a8f98; font-size: 12px; line-height: 1.45; text-align: left; }
.password-find-row { margin-top: 12px; text-align: right; }
.password-find-link {
	padding: 4px 0;
	color: #777;
	font-size: 12px;
	background: transparent;
	border: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.password-find-link strong { color: #333; }
.theme-bbegi .password-find-link strong { color: #d95618; }
.password-find-layer {
	position: fixed;
	z-index: 8500;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 18px;
}
.password-find-backdrop {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(17, 24, 39, .62);
	border: 0;
}
.password-find-modal {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 420px;
	padding: 24px 20px 20px;
	background: #fff;
	border-radius: 17px;
	box-shadow: 0 22px 60px rgba(17, 24, 39, .28);
}
.password-find-modal h2 { margin: 0 42px 7px 0; color: #191919; font-size: 19px; font-weight: 800; letter-spacing: -.4px; }
.password-find-modal > p { margin: 15px 0 20px; color: #777; font-size: 12px; line-height: 1.55; }
.password-find-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 32px;
	height: 32px;
	padding: 0 0 2px;
	color: #666;
	font-size: 24px;
	line-height: 30px;
	background: #f1f3f5;
	border: 0;
	border-radius: 50%;
}
.password-reset-field { display: none; }
.password-find-actions { display: flex; gap: 8px; margin-top: 22px; }
.password-find-actions button {
	height: 46px;
	font-size: 14px;
	font-weight: 800;
	border-radius: 10px;
}
.password-find-actions .cancel { flex: 0 0 76px; color: #666; background: #fff; border: 1px solid #dfe2e6; }
.password-find-actions .confirm { flex: 1 1 auto; color: #191919; background: #ffd737; border: 1px solid #e8c326; }
.theme-bbegi .password-find-actions .confirm { color: #fff; background: #ff7d3b; border-color: #e96b2d; }
#btnResetPassword { display: none; }

.step-guide { margin: 7px 0 0; color: #ff625f; font-size: 12px; line-height: 1.45; }
.step-guide.ok { color: #16834b; }
.step-summary { margin: 16px 0 0; padding: 14px; background: #f7f8fa; border-radius: 10px; }
.step-summary dt { float: left; width: 74px; padding: 5px 0; color: #888; font-size: 12px; }
.step-summary dd { min-height: 28px; padding: 5px 0 5px 78px; color: #222; font-size: 13px; font-weight: 700; }

.step-buttons { display: flex; gap: 8px; max-width: 480px; margin: 50px auto 70px; padding: 0 14px; }
.step-buttons a,
.step-buttons button {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	color: #191919;
	font-size: 16px;
	font-weight: 800;
	text-decoration: none;
	background: #ffd737;
	border: 1px solid #e8c326;
	border-radius: 10px;
}
.step-buttons .back { flex: 0 0 82px; color: #666; background: #fff; border-color: #dfe2e6; }
.step-buttons .next { flex: 1 1 auto; }
.step-buttons-equal .back,
.step-buttons-equal .next { flex: 1 1 0; }
.step-buttons .next[disabled] { color: #999; background: #eceef1; border-color: #dfe2e6; }
.step-buttons .password-submit { transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.step-buttons .password-submit[disabled] { cursor: default; }
.step-buttons .password-submit.is-disabled { color: #999; background: #eceef1; border-color: #dfe2e6; cursor: pointer; }
.theme-bbegi .step-buttons .next { color: #fff; background: #ff7d3b; border-color: #e96b2d; }
.theme-bbegi .step-buttons .password-submit.is-disabled { color: #999; background: #eceef1; border-color: #dfe2e6; }
.theme-bbegi .step-buttons .next[disabled] { color: #999; background: #eceef1; border-color: #dfe2e6; }
#step1Content .step-buttons .next {
	color: #999;
	background: #eceef1;
	border-color: #dfe2e6;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
#step1Content .step-buttons .next.is-ready {
	color: #191919;
	background: #ffd737;
	border-color: #e8c326;
}
.theme-bbegi #step1Content .step-buttons .next.is-ready {
	color: #fff;
	background: #ff7d3b;
	border-color: #e96b2d;
}

@keyframes estimate-loading-spin {
	to { transform: rotate(360deg); }
}
.estimate-flow #innerLayer.modern-loading-layer {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	width: 132px;
	min-height: 116px;
	padding: 20px 16px !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 16px;
	box-shadow: 0 18px 48px rgba(17, 24, 39, .24);
	transform: translate(-50%, -50%);
}
.estimate-flow .modern-loading {
	position: static;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: auto;
	margin: 0;
	padding: 0;
	flex-direction: column;
	color: #333;
	background: transparent;
	border: 0;
	opacity: 1;
}
.estimate-flow .modern-loading-spinner {
	display: block;
	width: 38px !important;
	height: 38px !important;
	margin: 0 auto 12px !important;
	background: none !important;
	border: 4px solid #eceef1;
	border-top-color: #ffd737;
	border-radius: 50%;
	animation: estimate-loading-spin .75s linear infinite;
}
.theme-bbegi .modern-loading-spinner { border-top-color: #ff7d3b; }
.estimate-flow .modern-loading h1 { margin: 0; color: #333; font-size: 13px; font-weight: 800; text-align: center; text-shadow: none; }

@keyframes step-loading-v2-rotate {
	to { transform: rotate(360deg); }
}
@keyframes step-loading-v2-pulse {
	0%, 100% { opacity: .65; transform: translate(-50%, -50%) scale(.88); }
	50% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes step-loading-v2-dot {
	0%, 60%, 100% { opacity: .3; transform: translateY(0); }
	30% { opacity: 1; transform: translateY(-4px); }
}
.estimate-flow.step-loading-v2-open { overflow: hidden !important; }
.estimate-flow #backgroundLayer.step-loading-v2-backdrop {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background: rgba(25, 29, 35, .54) !important;
	opacity: 1 !important;
	filter: none !important;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}
.estimate-flow #innerLayer.step-loading-v2-layer {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	width: calc(100% - 48px) !important;
	max-width: 236px;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 24px 20px 20px !important;
	background: rgba(255, 255, 255, .98) !important;
	border: 1px solid rgba(255, 255, 255, .8) !important;
	border-radius: 22px;
	box-sizing: border-box;
	box-shadow: 0 24px 70px rgba(17, 24, 39, .28);
	transform: translate(-50%, -50%);
}
.estimate-flow .step-loading-v2 {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	color: #25282d;
	text-align: center;
	flex-direction: column;
}
.estimate-flow .step-loading-v2-motion {
	position: relative;
	width: 54px;
	height: 54px;
	margin-bottom: 14px;
}
.estimate-flow .step-loading-v2-ring {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	border: 4px solid #ffe7da;
	border-top-color: #ff7d3b;
	border-right-color: #ffad82;
	border-radius: 50%;
	box-sizing: border-box;
	animation: step-loading-v2-rotate .8s linear infinite;
}
.estimate-flow .step-loading-v2-core {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 22px;
	height: 22px;
	background: linear-gradient(145deg, #ff9b68, #ff6f28);
	border-radius: 8px;
	box-shadow: 0 5px 12px rgba(255, 125, 59, .28);
	animation: step-loading-v2-pulse 1.15s ease-in-out infinite;
}
.estimate-flow .step-loading-v2 strong {
	display: block;
	margin: 0;
	color: #25282d;
	font-size: 15px;
	font-weight: 900;
	line-height: 1.35;
	letter-spacing: -.3px;
}
.estimate-flow .step-loading-v2-message {
	margin: 6px 0 0;
	color: #737982;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	word-break: keep-all;
}
.estimate-flow .step-loading-v2-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	height: 8px;
	margin-top: 13px;
}
.estimate-flow .step-loading-v2-dots i {
	display: block;
	width: 5px;
	height: 5px;
	background: #ff7d3b;
	border-radius: 50%;
	animation: step-loading-v2-dot 1.15s ease-in-out infinite;
}
.estimate-flow .step-loading-v2-dots i:nth-child(2) { animation-delay: .14s; }
.estimate-flow .step-loading-v2-dots i:nth-child(3) { animation-delay: .28s; }

@media (prefers-reduced-motion: reduce) {
	.estimate-flow .step-loading-v2-ring,
	.estimate-flow .step-loading-v2-core,
	.estimate-flow .step-loading-v2-dots i { animation-duration: 2.2s; }
}

.complete-hero { padding: 28px 20px; text-align: center; }
.complete-check {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	margin: 0 auto 13px;
	color: #191919;
	font-size: 27px;
	font-weight: 900;
	background: #ffd737;
	border-radius: 50%;
}
.theme-bbegi .complete-check { color: #fff; background: #ff7d3b; }
.complete-hero .step-title { font-size: 22px; }
.complete-hero .step-desc { margin-bottom: 0; }
.complete-summary-card {
	margin-top: 18px;
	padding: 20px 18px;
	background: #fff;
	border: 1px solid #e4e6ea;
	border-radius: 14px;
	box-shadow: 0 5px 18px rgba(32, 38, 46, .05);
}
.complete-summary-card > h2 { margin: 0; color: #202328; font-size: 18px; font-weight: 900; letter-spacing: -.4px; }
.complete-summary-card > p { margin: 6px 0 16px; color: #7b8088; font-size: 12px; line-height: 1.5; }
.complete-estimate-summary {
	margin: 0;
	padding: 3px 14px;
	background: #f7f8fa;
	border: 1px solid #e7e9ed;
	border-radius: 12px;
}
.complete-estimate-summary > div {
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr);
	gap: 9px;
	padding: 12px 0;
	border-bottom: 1px solid #e7e9ed;
}
.complete-estimate-summary > div:last-child { border-bottom: 0; }
.complete-estimate-summary dt { font-size: 12px; font-weight: 800; }
.complete-estimate-summary dd { min-width: 0; margin: 0; color: #25282d; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.benefit-title { margin: 26px 0 12px; font-size: 17px; font-weight: 800; letter-spacing: -.4px; }
.benefit-grid { display: grid; gap: 11px; }
.benefit-card {
	display: flex;
	align-items: center;
	gap: 13px;
	min-height: 112px;
	padding: 17px;
	background: #fff;
	border: 1px solid #e4e6ea;
	border-radius: 13px;
	box-shadow: 0 4px 16px rgba(32, 38, 46, .04);
}
.benefit-card.is-requested {
	background: #fff7f2;
	border-color: #ffb28c;
}
.benefit-requested-badge {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	margin-top: 10px;
	padding: 0 10px;
	color: #e75e1c;
	font-size: 12px;
	font-weight: 800;
	background: #ffe5d7;
	border-radius: 999px;
}
.benefit-icon {
	display: flex;
	flex: 0 0 48px;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	color: #555;
	font-size: 13px;
	font-weight: 900;
	background: #f3f4f6;
	border-radius: 14px;
}
.benefit-copy { flex: 1 1 auto; min-width: 0; }
.benefit-copy strong { display: block; margin-bottom: 5px; color: #222; font-size: 15px; }
.benefit-copy p { margin: 0; color: #777; font-size: 12px; line-height: 1.5; }
.benefit-copy em { color: #f14f38; font-style: normal; font-weight: 800; }
.benefit-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	margin-top: 10px;
	padding: 0 12px;
	color: #191919;
	font-size: 12px;
	font-weight: 800;
	text-decoration: none;
	background: #ffd737;
	border-radius: 8px;
}
.theme-bbegi .benefit-link { color: #fff; background: #ff7d3b; }
.complete-actions { margin-top: 18px; }

/* 1단계 선택 팝업 */
.estimate-flow .ui-widget-overlay {
	background: rgba(17, 24, 39, .58) !important;
	opacity: 1 !important;
	filter: none !important;
}
.estimate-flow .modern-estimate-dialog {
	overflow: hidden;
	padding: 0;
	font-family: inherit;
	background: #fff;
	border: 0;
	border-radius: 18px;
	box-shadow: 0 22px 60px rgba(17, 24, 39, .24);
}
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar {
	min-height: 58px;
	padding: 19px 54px 14px 20px;
	background: #fff;
	border: 0;
	border-bottom: 1px solid #eceef1;
	border-radius: 0;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-title {
	margin: 0;
	color: #191919;
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.4px;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close {
	top: 14px;
	right: 14px;
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
	background: #f4f5f7;
	border: 0;
	border-radius: 50%;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close:hover { background: #e9ebee; }
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close .ui-icon {
	position: relative;
	top: auto;
	left: auto;
	display: block;
	width: 32px;
	height: 32px;
	margin: 0;
	background: none;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close .ui-icon:before,
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close .ui-icon:after {
	content: "";
	position: absolute;
	top: 15px;
	left: 9px;
	width: 14px;
	height: 2px;
	background: #61656c;
	border-radius: 1px;
	transform: rotate(45deg);
}
.estimate-flow .modern-estimate-dialog .ui-dialog-titlebar-close .ui-icon:after { transform: rotate(-45deg); }
.estimate-flow .modern-estimate-dialog .ui-dialog-content {
	max-height: 66vh !important;
	padding: 16px 16px 10px;
	overflow-x: hidden;
	overflow-y: auto;
	background: #fff;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-content > ul,
.estimate-flow .modern-estimate-dialog .ui-dialog-content > div > ul {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.estimate-flow .modern-estimate-dialog li.ui-list-btn-up,
.estimate-flow .modern-estimate-dialog li.ui-list-btn-hover {
	position: relative;
	min-height: 50px;
	margin: 0;
	padding: 14px 15px !important;
	color: #333;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.45;
	background: #f7f8fa;
	border: 1px solid #e3e6ea !important;
	border-radius: 11px !important;
	cursor: pointer;
}
.estimate-flow .modern-estimate-dialog li.ui-list-btn-hover {
	background: #fffaf0;
	border-color: #ffd737 !important;
}
.theme-bbegi .modern-estimate-dialog li.ui-list-btn-hover {
	background: #fff6f1;
	border-color: #ff7d3b !important;
}
.estimate-flow .modern-estimate-dialog li input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.estimate-flow .modern-estimate-dialog li input[type="radio"] + label {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 22px;
	padding-left: 31px;
	color: #222;
	font-size: 15px;
	font-weight: 800;
	cursor: pointer;
}
.estimate-flow .modern-estimate-dialog li input[type="radio"] + label:before {
	content: "";
	position: absolute;
	top: 1px;
	left: 0;
	width: 20px;
	height: 20px;
	background: #fff;
	border: 2px solid #cbd0d7;
	border-radius: 50%;
}
.estimate-flow .modern-estimate-dialog li input[type="radio"]:checked + label:before {
	background: #ffd737;
	/*border: 6px solid #ffd737;*/
	box-shadow: inset 0 0 0 3px #fff;
}
.theme-bbegi .modern-estimate-dialog li input[type="radio"]:checked + label:before {
	background: #ff7d3b;
	border-color: #ff7d3b;
}
.estimate-flow .modern-estimate-dialog #select_service p {
	margin: 8px 0 0 31px;
	padding: 0;
	color: #777;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.55;
}
.estimate-flow .modern-estimate-dialog .p-icon { width: 22px; height: auto; margin-left: 7px; }
.estimate-flow .modern-estimate-dialog .ui-dialog-buttonpane {
	margin: 0;
	padding: 10px 16px 16px;
	background: #fff;
	border: 0;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-buttonset { float: none; }
.estimate-flow .modern-estimate-dialog .ui-dialog-buttonset button {
	width: 100%;
	height: 46px;
	margin: 0;
	color: #555;
	font-size: 14px;
	font-weight: 800;
	background: #f1f3f5;
	border: 0;
	border-radius: 10px;
}
.estimate-flow .modern-estimate-dialog .ui-dialog-buttonset button .ui-button-text { padding: 0; line-height: 46px; }

/* 사무실이사 */
.office-estimate-flow #officeForm .step-buttons .next {
	color: #999;
	background: #eceef1;
	border-color: #dfe2e6;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}
.office-estimate-flow #officeForm .step-buttons .next.is-ready {
	color: #191919;
	background: #ffd737;
	border-color: #e8c326;
}
.theme-bbegi.office-estimate-flow #officeForm .step-buttons .next.is-ready {
	color: #fff;
	background: #ff7d3b;
	border-color: #e96b2d;
}
.office-estimate-flow .optional-service-icon { font-size: 12px; font-weight: 900; letter-spacing: -.4px; }
.office-estimate-flow .office-large-move-note {
	margin: 12px 16px 4px;
	padding: 15px;
	background: #fff8f3;
	border: 1px solid #ffe0cf;
	border-radius: 12px;
}
.office-estimate-flow .office-large-move-note strong { display: block; color: #30343a; font-size: 14px; }
.office-estimate-flow .office-large-move-note p { margin: 6px 0 11px; color: #747981; font-size: 12px; line-height: 1.5; }
.office-estimate-flow .office-large-move-note a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	color: #d95618;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	background: #fff;
	border: 1px solid #ffb38d;
	border-radius: 9px;
}

.estimate-flow .modern-estimate-dialog #area_si > div,
.estimate-flow .modern-estimate-dialog #area_stair > div {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}
.estimate-flow .modern-estimate-dialog #area_si button,
.estimate-flow .modern-estimate-dialog #area_stair button {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 4px;
	color: #333;
	font-size: 13px;
	font-weight: 700;
	background: #f7f8fa;
	border: 1px solid #e3e6ea;
	border-radius: 10px;
}
.estimate-flow .modern-estimate-dialog #area_stair #up { display: block; }

.estimate-flow #backgroundLayer { background: rgba(17, 24, 39, .58) !important; opacity: 1 !important; filter: none !important; }
.estimate-flow #innerLayer.modern-date-layer {
	left: 50% !important;
	width: calc(100% - 28px);
	max-width: 390px;
	padding: 14px 12px 12px !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 18px;
	box-shadow: 0 22px 60px rgba(17, 24, 39, .24);
	transform: translateX(-50%);
}
.estimate-flow #innerLayer.modern-date-layer > div:first-child { height: 34px !important; }
.estimate-flow #innerLayer.modern-date-layer > div:first-child a {
	top: 10px !important;
	right: 10px !important;
	width: 30px;
	height: 30px;
	background: #f4f5f7;
	border-radius: 50%;
}
.estimate-flow #innerLayer.modern-date-layer > div:first-child .ui-icon { margin: 7px; }
.estimate-flow #innerLayer.modern-date-layer #datetime,
.estimate-flow #innerLayer.modern-date-layer #storageDatePicker { margin: 0 !important; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker { width: 100%; padding: 0; border: 0; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker-header { padding: 8px 0 13px; background: #fff; border: 0; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker-title { color: #222; font-size: 16px; font-weight: 800; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker th {
	padding: 9px 0;
	color: #3f4650;
	font-size: 12px;
	font-weight: 800;
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker th:first-child { color: #e5484d; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker th:last-child { color: #3977d2; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker th span { opacity: 1; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td { padding: 2px; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td a,
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	padding: 0;
	font-size: 13px;
	font-weight: 700;
	background: #f7f8fa;
	border: 0;
	border-radius: 9px;
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td a { color: #2f343b; }
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td.moving-lucky-day a {
	position: relative;
	color: #c83f55;
	line-height: 1;
	background: #fff0f3;
	/*border: 1px solid #f2b7c1;
	flex-direction: column;*/
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td.moving-lucky-day a:after {
	margin-top: 2px;
	color: #d64c62;
	font-size: 8px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.7px;
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td.ui-state-disabled {
	opacity: 1;
	filter: none;
	cursor: pointer !important;
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td.ui-state-disabled span {
	opacity: 1;
	color: #c4c8cf;
	font-weight: 500;
	background: #f5f6f8;
	cursor: pointer !important;
}
.estimate-flow #innerLayer.modern-date-layer .ui-datepicker td a.ui-state-active { color: #191919; background: #ffd737; }
.theme-bbegi #innerLayer.modern-date-layer .ui-datepicker td a.ui-state-active { color: #fff; background: #ff7d3b; }
.estimate-flow #innerLayer.modern-date-layer .moving-date-legend {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 10px 2px 0;
	padding: 10px 11px;
	color: #6f3b43;
	background: #fff5f6;
	border: 1px solid #f4d4d9;
	border-radius: 9px;
}
.estimate-flow #innerLayer.modern-date-layer .moving-date-legend > span {
	display: block;
	width: 10px;
	height: 10px;
	background: #d64c62;
	border-radius: 3px;
	flex: 0 0 10px;
}
.estimate-flow #innerLayer.modern-date-layer .moving-date-legend p {
	margin: 0;
	font-size: 11px;
	line-height: 1.45;
}
.estimate-flow #innerLayer.modern-date-layer .moving-date-legend strong {
	color: #c83f55;
	font-weight: 800;
}

/* @media (max-width: 360px) {
	.estimate-steps { padding-right: 7px; padding-left: 7px; }
	.step-page { padding-right: 10px; padding-left: 10px; }
	.step-card { padding-right: 13px; padding-left: 13px; }
	.step-fields { gap: 15px 7px; }
	.step-fields .step-input { padding-right: 28px; padding-left: 8px; font-size: 12px; }
	.phone-inline,
	.auth-inline { gap: 5px; }
	.phone-inline .step-select { flex-basis: 66px; }
	.step-action { padding: 0 9px; font-size: 11px; }
} */

@media (min-width: 768px) {
	.estimate-steps,
	.step-page,
	.step-buttons { max-width: 920px; }
	.estimate-steps { padding-top: 22px; padding-bottom: 22px; }
	.step-page { padding-right: 20px; padding-left: 20px; }
	.step-card { padding: 28px 30px; }
	.step-title { font-size: 22px; }
	.step-desc { font-size: 14px; }
	.step-fields { gap: 20px 18px; }
	.step-fields .step-field { margin-top: 0; }
	.step-buttons { padding-right: 20px; padding-left: 20px; }
	.optional-service-list { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
	.office-estimate-flow .office-large-move-note { margin-right: 16px; margin-left: 16px; }
	.benefit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.benefit-card { align-items: flex-start; min-height: 205px; flex-direction: column; }
	.benefit-icon { width: 52px; height: 52px; }
}
