/* Land Consultant Price Quote — wizard frontend.
   Ported from a Figma Make reference design; colors/fonts use bmp-eng's
   own theme tokens (cascade globally from the theme's tokens.css) instead
   of the reference's flat amber accent, for consistency with the rest of
   the live site. Hardcoded fallbacks are included in case this plugin is
   ever used without that theme active. */

.lcpq-wizard {
	font-family: var(--font-primary, 'Assistant', sans-serif);
	color: var(--bmp-heading-ink, #101828);
	direction: rtl;
	text-align: right;
}

.lcpq-wizard *,
.lcpq-wizard *::before,
.lcpq-wizard *::after {
	box-sizing: border-box;
}

/* Several elements below (screens, substeps) set their own `display` for
   layout purposes, which — at equal specificity — wins over the [hidden]
   attribute's default UA-stylesheet `display:none` by cascade order. Force
   it back so JS-driven hidden/shown state is never silently overridden. */
.lcpq-wizard [hidden] {
	display: none !important;
}

/* :where() keeps this reset's specificity at zero, so it can never win a
   cascade tie against a class-level rule like .lcpq-btn-primary's gradient
   background — a plain `.lcpq-wizard button` selector (specificity 0-1-1)
   would otherwise beat those (0-1-0) regardless of source order. */
.lcpq-wizard :where(button) {
	font-family: inherit;
	cursor: pointer;
	background: none;
	border: 0;
}

.lcpq-wizard svg {
	display: block;
}

.lcpq-accent {
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783 22.5%, #feeb97 82.9%));
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
}

.lcpq-eyebrow {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bmp-dark, #0c1220);
	margin-bottom: 0.5rem;
}

.lcpq-heading {
	font-weight: 900;
	line-height: 1.15;
	color: var(--bmp-heading-ink, #101828);
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	margin-bottom: 0.25rem;
}

.lcpq-subheading {
	color: var(--bmp-text-muted, #6a7282);
	font-size: 0.9rem;
	margin-bottom: 2rem;
}

.lcpq-note {
	color: var(--bmp-text-faint, #99a1af);
	font-size: 0.75rem;
	margin-top: -1.5rem;
	margin-bottom: 1.5rem;
}

/* ── Buttons ── */
.lcpq-btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 1rem 2.2rem;
	border-radius: var(--radius-pill, 999px);
	font-weight: 800;
	font-size: 1rem;
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783 22.5%, #feeb97 82.9%));
	color: var(--bmp-dark, #0c1220);
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	box-shadow: 0 8px 20px rgba(79, 183, 131, 0.3);
}

.lcpq-btn-primary:hover {
	transform: translateY(-1px);
}

.lcpq-btn-primary svg {
	width: 18px;
	height: 18px;
}

.lcpq-btn-ghost {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.2rem;
	border-radius: var(--radius-pill, 999px);
	font-weight: 700;
	font-size: 0.9rem;
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	background: white;
	color: var(--bmp-text-muted, #6a7282);
	text-decoration: none;
	transition: all 0.15s ease;
}

.lcpq-btn-ghost:hover {
	border-color: var(--bmp-dark, #0c1220);
	background: var(--bmp-dark, #0c1220);
	color: white;
}

.lcpq-btn-ghost svg {
	width: 16px;
	height: 16px;
}

.lcpq-btn-circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	width: 88px;
	height: 88px;
	flex-shrink: 0;
	border-radius: 50%;
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783 22.5%, #feeb97 82.9%));
	color: var(--bmp-dark, #0c1220);
	font-weight: 800;
	font-size: 0.85rem;
	transition: transform 0.15s ease;
	box-shadow: 0 8px 20px rgba(79, 183, 131, 0.3);
}

.lcpq-btn-circle:hover:not(:disabled) {
	transform: scale(1.04);
}

.lcpq-btn-circle:disabled {
	opacity: 0.3;
	cursor: default;
}

.lcpq-btn-circle svg {
	width: 18px;
	height: 18px;
}

/* ── Vibrant CTA motion: ambient glow pulse + shimmer sweep ── */
.lcpq-btn-primary,
.lcpq-btn-circle:not(:disabled),
.lcpq-modal__submit:not(:disabled) {
	position: relative;
	overflow: hidden;
	animation: lcpq-cta-glow 2.4s ease-in-out infinite;
}

.lcpq-btn-primary::after,
.lcpq-btn-circle:not(:disabled)::after,
.lcpq-modal__submit:not(:disabled)::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.7) 50%, transparent 60%);
	transform: translateX(-120%);
	animation: lcpq-cta-shimmer 2.8s ease-in-out infinite;
	pointer-events: none;
}

@keyframes lcpq-cta-glow {
	0%, 100% {
		box-shadow: 0 8px 20px rgba(79, 183, 131, 0.3);
	}
	50% {
		box-shadow: 0 10px 30px rgba(79, 183, 131, 0.55), 0 0 0 5px rgba(79, 183, 131, 0.1);
	}
}

@keyframes lcpq-cta-shimmer {
	0%, 55% {
		transform: translateX(-120%);
	}
	100% {
		transform: translateX(120%);
	}
}

/* ── INTRO ── */
.lcpq-screen--intro {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: white;
}

.lcpq-intro__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--bmp-border-light, #f3f4f6);
}

.lcpq-brand {
	display: inline-flex;
	align-items: center;
	font-weight: 800;
	font-size: 1rem;
	color: var(--bmp-dark, #0c1220);
	text-decoration: none;
}

.lcpq-brand__logo {
	display: block;
	width: 70px;
	height: auto;
}

.lcpq-brand__logo svg {
	display: block;
	width: 100%;
	height: auto;
}

.lcpq-intro__hero {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 3rem 1.25rem;
}

.lcpq-intro__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.4rem 1rem;
	border-radius: var(--radius-pill, 999px);
	font-size: 0.75rem;
	font-weight: 800;
	margin-bottom: 2rem;
	background: transparent;
	border: 1px solid var(--bmp-dark, #0c1220);
	color: var(--bmp-dark, #0c1220);
}

.lcpq-intro__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bmp-amber, #d97706);
	animation: lcpq-pulse 1.6s ease-in-out infinite;
}

.lcpq-intro__title {
	font-weight: 900;
	line-height: 1.15;
	color: var(--bmp-heading-ink, #101828);
	font-size: clamp(2rem, 5vw, 3.6rem);
	margin-bottom: 1rem;
}

.lcpq-intro__subtitle {
	color: var(--bmp-text-muted, #6a7282);
	font-size: 1.1rem;
	line-height: 1.6;
	max-width: 34rem;
	margin-bottom: 3rem;
}

.lcpq-buildings {
	margin-top: 5rem;
	width: 100%;
	max-width: 640px;
	position: relative;
	height: 140px;
	overflow: hidden;
}

.lcpq-buildings__row {
	position: absolute;
	bottom: 0;
	inset-inline: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 10px;
	padding-inline: 1rem;
	border-bottom: 1px solid var(--bmp-border-light, #f3f4f6);
}

.lcpq-buildings__bar {
	width: 28px;
	height: var(--h, 60px);
	background: var(--bmp-surface-1, #f4f4f6);
	border-radius: 4px 4px 0 0;
	flex-shrink: 0;
	transform-origin: bottom;
	animation: lcpq-grow 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
	animation-delay: var(--delay, 0s);
}

.lcpq-buildings__bar:nth-child(even) {
	background: var(--bmp-border-light, #f3f4f6);
}

.lcpq-buildings__dot {
	position: absolute;
	border-radius: 50%;
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783, #feeb97));
	animation: lcpq-float 2.2s ease-in-out infinite;
}

.lcpq-buildings__dot--1 {
	width: 16px;
	height: 16px;
	right: 34%;
	top: 20px;
	opacity: 0.8;
	animation-delay: 0.4s;
}

.lcpq-buildings__dot--2 {
	width: 10px;
	height: 10px;
	left: 26%;
	top: 10px;
	opacity: 0.6;
	animation-delay: 1s;
}

@keyframes lcpq-grow {
	from { transform: scaleY(0); }
	to { transform: scaleY(1); }
}

@keyframes lcpq-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-12px); }
}

@keyframes lcpq-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.3; }
}

/* ── WIZARD LAYOUT ── */
.lcpq-screen--wizard {
	display: flex;
	flex-direction: row-reverse;
	min-height: 100vh;
}

.lcpq-wizard__photo {
	display: none;
	position: relative;
}

.lcpq-wizard__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lcpq-wizard__photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to left, rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.3));
}

.lcpq-wizard__logo {
	position: absolute;
	top: 1.25rem;
	left: 1.5rem;
	z-index: 2;
	display: inline-flex;
	background: rgba(12, 18, 32, 0.55);
	border-radius: 0.6rem;
	padding: 0.5rem 0.75rem;
	font-weight: 800;
	color: white;
	text-decoration: none;
}

.lcpq-wizard__logo-img {
	display: block;
	height: 28px;
	width: auto;
}

.lcpq-wizard__logo--mobile {
	position: static;
	color: var(--bmp-dark, #0c1220);
}

.lcpq-wizard__panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	background: white;
}

.lcpq-wizard__topbar {
	position: sticky;
	top: 0;
	z-index: 5;
	background: white;
	border-bottom: 1px solid var(--bmp-border-light, #f3f4f6);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	padding: 0.85rem 1.25rem;
}

/* Mobile: same numbered-circle timeline as desktop, just wrapped onto
   its own full-width row below the back-button/logo row instead of
   squeezed inline with them (there isn't room at mobile widths). */
.lcpq-timeline {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-basis: 100%;
	order: 3;
	padding-top: 0.6rem;
}

/* Sized to fit the longest branch (8 steps: project-type, multi-
   building, num-adjacent, basement, num-basements, road-access,
   address, contact) within mobile's ~335px content width. Desktop
   gets the larger, more spacious sizing back in the media query
   below, where width is never a constraint. */
.lcpq-timeline__line {
	width: 10px;
	height: 2px;
	background: var(--bmp-border-light, #e5e7eb);
	transition: background 0.4s ease;
}

.lcpq-timeline__line.is-active {
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783, #feeb97));
}

.lcpq-timeline__dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	color: var(--bmp-text-faint, #9ca3af);
	font-size: 0.5rem;
	font-weight: 800;
	background: white;
	transition: all 0.25s ease;
	flex-shrink: 0;
}

.lcpq-timeline__dot svg {
	width: 9px;
	height: 9px;
	stroke: white;
}

.lcpq-timeline__dot.is-current {
	width: 20px;
	height: 20px;
	border-color: var(--bmp-dark, #0c1220);
	background: var(--bmp-dark, #0c1220);
	color: white;
	box-shadow: 0 0 0 3px rgba(12, 18, 32, 0.12);
}

.lcpq-timeline__dot.is-done {
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783, #feeb97));
	border-color: transparent;
}

.lcpq-wizard__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2rem 1.5rem 3rem;
}

.lcpq-substep {
	max-width: 32rem;
}

/* ── Project type grid ── */
.lcpq-type-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.75rem;
	max-width: 30rem;
}

.lcpq-type-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	padding: 1.4rem 0.6rem;
	border-radius: 1rem;
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	color: var(--bmp-text-muted, #6a7282);
	text-align: center;
	transition: all 0.15s ease;
}

.lcpq-type-card:hover {
	transform: scale(1.02);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.lcpq-type-card svg {
	width: 32px;
	height: 32px;
}

.lcpq-type-card span {
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--bmp-heading-ink, #101828);
}

.lcpq-type-card.is-selected {
	border-color: var(--bmp-dark, #0c1220);
	background: var(--bmp-surface-1, #f4f4f6);
}

/* ── Yes/No toggle ── */
.lcpq-yesno {
	display: flex;
	gap: 1rem;
	max-width: 20rem;
}

.lcpq-yesno__btn {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	padding: 1.75rem 0;
	border-radius: 1rem;
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	font-weight: 900;
	font-size: 1.2rem;
	color: var(--bmp-heading-ink, #101828);
	transition: all 0.15s ease;
}

.lcpq-yesno__btn:hover {
	transform: scale(1.02);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.lcpq-yesno__icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bmp-surface-1, #f4f4f6);
	color: var(--bmp-text-faint, #99a1af);
}

.lcpq-yesno__icon svg {
	width: 20px;
	height: 20px;
}

.lcpq-yesno__btn.is-selected {
	border-color: var(--bmp-dark, #0c1220);
	background: var(--bmp-surface-1, #f4f4f6);
}

.lcpq-yesno__btn.is-selected .lcpq-yesno__icon {
	background: var(--bmp-dark, #0c1220);
	color: white;
}

/* ── Choice cards (num-adjacent / num-basements / road-access) ── */
.lcpq-choice-row {
	display: flex;
	gap: 1rem;
	max-width: 20rem;
}

.lcpq-choice-row--wrap {
	flex-wrap: wrap;
	max-width: none;
}

.lcpq-choice-card {
	flex: 1;
	min-width: 130px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 1.75rem 1rem;
	border-radius: 1rem;
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	transition: all 0.15s ease;
}

.lcpq-choice-card:hover {
	transform: scale(1.02);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.lcpq-choice-card__top {
	font-weight: 900;
	font-size: 1.35rem;
	color: var(--bmp-heading-ink, #101828);
}

.lcpq-choice-card__top--light {
	font-weight: 300;
	font-size: 1.5rem;
}

.lcpq-choice-card__bottom {
	font-weight: 800;
	font-size: 1rem;
	color: var(--bmp-heading-ink, #101828);
}

.lcpq-choice-card.is-selected {
	border-color: var(--bmp-dark, #0c1220);
	background: var(--bmp-surface-1, #f4f4f6);
}

/* ── Underline fields (address, contact) ── */
.lcpq-underline-field {
	position: relative;
	margin-bottom: 1.5rem;
}

.lcpq-underline-field label {
	display: block;
	font-size: 20px;
	font-weight: 500;
	color: var(--bmp-dark, #0c1220);
	margin-bottom: 0.25rem;
}

.lcpq-underline-field input {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 2px solid var(--bmp-border-light, #e5e7eb);
	padding-bottom: 0.6rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--bmp-heading-ink, #101828);
	outline: none;
	transition: border-color 0.15s ease;
	/* type="tel"/"email" inputs default to direction:ltr in most browsers
	   regardless of the page's own RTL context (assuming their content is
	   inherently Latin/numeric) — anchor the typed text to the right like
	   every other field instead, while numbers/emails still render in
	   their natural left-to-right order within that right-anchored box. */
	direction: rtl;
	text-align: right;
}

/* Google's Places script injects its own .pac-target-input style after
   this stylesheet loads, at equal specificity to the rule above, and wins
   the cascade tie — override it here with the input's own ID instead. */
#lcpq-address {
	font-size: 27px;
}

#lcpq-address::placeholder {
	color: var(--bmp-heading-ink, #101828);
	opacity: 0.7;
	font-size: 23px;
}

.lcpq-underline-field.is-filled input,
.lcpq-underline-field input:focus {
	border-color: var(--bmp-emerald, #10b981);
}

.lcpq-underline-field__icon {
	position: absolute;
	left: 0;
	bottom: 0.65rem;
	width: 18px;
	height: 18px;
	color: var(--bmp-text-faint, #99a1af);
	pointer-events: none;
}

.lcpq-field-hint {
	font-size: 0.8rem;
	color: var(--bmp-text-muted, #6a7282);
	min-height: 1.2em;
	margin-top: -1rem;
	margin-bottom: 1.5rem;
}

.lcpq-field-hint.is-error {
	color: #b91c1c;
	font-weight: 600;
}

/* ── File drop ── */
.lcpq-file-field label:first-child {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--bmp-text-faint, #99a1af);
	margin-bottom: 0.6rem;
}

.lcpq-file-drop {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	border-radius: 1rem;
	border: 2px dashed var(--bmp-border-light, #e5e7eb);
	cursor: pointer;
	transition: all 0.15s ease;
}

.lcpq-file-drop:hover {
	border-color: var(--bmp-amber, #d97706);
	background: #fffbeb;
}

.lcpq-file-drop.is-filled {
	border-color: var(--bmp-amber, #d97706);
	background: #fffbeb;
}

.lcpq-file-drop input[type='file'] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.lcpq-file-drop__icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bmp-surface-1, #f4f4f6);
	color: var(--bmp-text-faint, #99a1af);
}

.lcpq-file-drop.is-filled .lcpq-file-drop__icon {
	background: var(--bmp-amber, #d97706);
	color: white;
}

.lcpq-file-drop__icon svg {
	width: 18px;
	height: 18px;
}

.lcpq-file-drop__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.lcpq-file-drop__text strong {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--bmp-heading-ink, #101828);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lcpq-file-drop__text small {
	font-size: 0.75rem;
	color: var(--bmp-text-faint, #99a1af);
}

/* ── Complex-project referral ── */
.lcpq-complex-card {
	border-radius: 1rem;
	padding: 1.5rem;
	margin-bottom: 2rem;
	background: #fffbeb;
	border: 1.5px solid #fde68a;
}

.lcpq-complex-card__row {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.lcpq-complex-card__icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bmp-amber, #d97706);
	color: white;
}

.lcpq-complex-card__icon svg {
	width: 20px;
	height: 20px;
}

.lcpq-complex-card__title {
	font-weight: 900;
	font-size: 1.1rem;
	color: var(--bmp-heading-ink, #101828);
	margin-bottom: 0.25rem;
}

.lcpq-complex-card__title span {
	color: var(--bmp-amber, #d97706);
}

.lcpq-complex-card__text {
	font-size: 0.9rem;
	color: var(--bmp-text-muted, #6a7282);
	line-height: 1.5;
}

.lcpq-complex-card__note {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--bmp-body-ink, #1e2939);
}

/* ── Contact submit row ── */
.lcpq-contact-submit-row {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-top: 2rem;
}

.lcpq-privacy-note {
	font-size: 0.75rem;
	color: var(--bmp-text-faint, #99a1af);
	line-height: 1.5;
}

/* ── Success ── */
.lcpq-screen--success {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 3rem 1.25rem;
}

.lcpq-success-icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783, #feeb97));
	margin-bottom: 1.5rem;
	box-shadow: 0 8px 20px rgba(79, 183, 131, 0.35);
}

.lcpq-success-icon svg {
	width: 30px;
	height: 30px;
	stroke: var(--bmp-dark, #0c1220);
}

.lcpq-success-text {
	color: var(--bmp-text-muted, #6a7282);
	max-width: 26rem;
	line-height: 1.6;
	margin: 0.75rem 0 2.5rem;
}

.lcpq-success-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

/* ── Summary modal ── */
.lcpq-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.lcpq-modal[hidden] {
	display: none;
}

.lcpq-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(12, 18, 32, 0.6);
	backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.lcpq-modal.is-open .lcpq-modal__backdrop {
	opacity: 1;
}

.lcpq-modal__dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	background: white;
	border-radius: 1.5rem;
	width: 100%;
	max-width: 28rem;
	max-height: 90vh;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
	opacity: 0;
	transform: translateY(12px) scale(0.97);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Scrolls independently of the close button (which floats half outside
   the dialog's own corner via negative offsets — if this element clipped
   overflow instead of the dialog, that floating button would get cut
   off). Rounds only the top corners since .lcpq-modal__actions below it
   is a separate, always-visible flex sibling that rounds the bottom. */
.lcpq-modal__scroll {
	overflow-y: auto;
	flex: 1;
	min-height: 0;
	border-radius: 1.5rem 1.5rem 0 0;
}

.lcpq-modal.is-open .lcpq-modal__dialog {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.lcpq-modal__close {
	position: absolute;
	top: -14px;
	inset-inline-start: -14px;
	z-index: 3;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--bmp-dark, #0c1220);
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.lcpq-modal__close svg {
	width: 16px;
	height: 16px;
}

.lcpq-modal__header {
	padding: 1.75rem 1.75rem 1.25rem;
	border-bottom: 1px solid var(--bmp-border-light, #f3f4f6);
}

.lcpq-modal__header-row {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.25rem;
}

.lcpq-modal__header-row svg {
	width: 30px;
	height: 30px;
	color: var(--bmp-dark, #0c1220);
	flex-shrink: 0;
}

.lcpq-modal__header-row h2 {
	font-weight: 900;
	font-size: 1.35rem;
	color: var(--bmp-heading-ink, #101828);
}

.lcpq-modal__header p {
	color: var(--bmp-text-faint, #99a1af);
}

.lcpq-modal__section {
	padding: 1.1rem 1.75rem;
	border-bottom: 1px solid var(--bmp-border-light, #f3f4f6);
}

.lcpq-modal__section-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.85rem;
}

.lcpq-modal__section-title svg {
	width: 15px;
	height: 15px;
	color: var(--bmp-dark, #0c1220);
	flex-shrink: 0;
}

.lcpq-modal__section-title span {
	font-weight: 800;
	font-size: 1rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--bmp-dark, #0c1220);
}

.lcpq-modal__row {
	text-align: right;
	padding: 0.3rem 0;
	font-size: 1.45rem;
}

.lcpq-modal__row-value {
	font-weight: 700;
	color: var(--bmp-heading-ink, #101828);
}

.lcpq-modal__row-label {
	color: var(--bmp-dark, #0c1220);
}

.lcpq-modal__actions {
	display: flex;
	gap: 0.6rem;
	padding: 1.1rem 1.75rem;
	background: white;
	border-radius: 0 0 1.5rem 1.5rem;
	border-top: 1px solid var(--bmp-border-light, #f3f4f6);
	flex-shrink: 0;
}

.lcpq-modal__submit,
.lcpq-modal__edit {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.8rem;
	border-radius: 1rem;
	font-weight: 800;
	font-size: 0.95rem;
	transition: all 0.15s ease;
}

.lcpq-modal__submit {
	background-image: var(--bmp-gradient-cta, linear-gradient(31.6deg, #4fb783, #feeb97));
	color: var(--bmp-dark, #0c1220);
	order: 2;
}

.lcpq-modal__submit:disabled {
	opacity: 0.6;
	cursor: default;
}

.lcpq-modal__submit svg,
.lcpq-modal__edit svg {
	width: 16px;
	height: 16px;
}

.lcpq-modal__edit {
	border: 2px solid var(--bmp-border-light, #e5e7eb);
	color: var(--bmp-text-muted, #6a7282);
	order: 1;
}

.lcpq-modal__edit:hover {
	border-color: var(--bmp-text-faint, #9ca3af);
}

.lcpq-modal__error {
	margin: 0 1.75rem 1.25rem;
	color: #b91c1c;
	font-weight: 600;
	font-size: 0.85rem;
}

.lcpq-modal__error[hidden] {
	display: none;
}

/* ── Desktop (≥1024px) ── */
@media (min-width: 1024px) {
	.lcpq-wizard__photo {
		display: block;
		width: 55%;
		position: sticky;
		top: 0;
		height: 100vh;
		flex-shrink: 0;
	}

	.lcpq-wizard__panel {
		flex: 1;
	}

	.lcpq-wizard__logo--mobile {
		display: none;
	}

	.lcpq-wizard__topbar {
		flex-wrap: nowrap;
		padding: 2rem 2.5rem 0.5rem;
		border-bottom: 0;
	}

	.lcpq-timeline {
		flex-basis: auto;
		order: 0;
		padding-top: 0;
	}

	.lcpq-timeline__line {
		width: 28px;
	}

	.lcpq-timeline__dot {
		width: 22px;
		height: 22px;
		font-size: 0.65rem;
	}

	.lcpq-timeline__dot svg {
		width: 11px;
		height: 11px;
	}

	.lcpq-timeline__dot.is-current {
		width: 30px;
		height: 30px;
		box-shadow: 0 0 0 4px rgba(12, 18, 32, 0.12);
	}

	.lcpq-wizard__content {
		padding: 2rem 4rem 4rem;
	}
}

/* ── Google Places Autocomplete dropdown ──
   Google appends .pac-container directly to <body>, outside .lcpq-wizard,
   so these selectors are deliberately unscoped/global. */
.pac-container {
	border: 1px solid var(--bmp-border-light, #f3f4f6);
	border-radius: 1rem;
	margin-top: 8px;
	padding: 6px;
	box-shadow: 0 12px 32px rgba(12, 18, 32, 0.14);
	font-family: var(--font-primary, 'Assistant', sans-serif);
}

.pac-item {
	padding: 10px 12px;
	border-top: 0;
	border-radius: 0.65rem;
	font-size: 1.2rem;
	color: var(--bmp-heading-ink, #101828);
	cursor: pointer;
	direction: rtl;
}

.pac-item:hover,
.pac-item-selected {
	background: var(--bmp-surface-1, #f4f4f6);
}

.pac-icon {
	margin-top: 3px;
}

.pac-item-query {
	font-weight: 700;
	font-size: 1.2rem;
	color: var(--bmp-heading-ink, #101828);
	unicode-bidi: isolate;
}

/* Google's markup follows .pac-item-query with a plain, unclassed
   <span> for the secondary description (city/country) — mixing
   Hebrew and Latin runs here without bidi isolation makes the browser
   interleave them unpredictably (e.g. "Tira, Israel" fusing directly
   against the matched Hebrew word with no visible separator). */
.pac-item-query + span {
	unicode-bidi: isolate;
	margin-inline-start: 0.35em;
	color: var(--bmp-text-muted, #6a7282);
}

.pac-matched {
	font-weight: 800;
	color: var(--bmp-emerald, #10b981);
}

.pac-logo:after {
	margin: 4px 8px 2px;
}
