/* The left workspace scrolls independently of the fixed quote rail. */
.sqe-calculator--planner {
	--sqe-header-height: 72px;
	--sqe-ink: #18322a;
	--sqe-muted: #66756f;
	--sqe-line: #e2e9e4;
	background: #f7faf8 !important;
	bottom: 0 !important;
	height: 100dvh !important;
	left: 0 !important;
	margin: 0 !important;
	max-width: none !important;
	overflow: hidden;
	position: fixed !important;
	right: 0 !important;
	top: 0 !important;
	width: 100vw !important;
	isolation: isolate;
	z-index: 2147483000 !important;
}

/* Guided system sizing keeps the first decision inside the roof review. */
.sqe-calculator--planner .sqe-roof-config--guided {
	display: block;
}
body.admin-bar .sqe-calculator--planner {
	height: calc(100dvh - 32px) !important;
	top: 32px !important;
}
.sqe-calculator--planner .sqe-roof-config--guided > div:first-child {
	max-width: 560px;
}
.sqe-calculator--planner .sqe-roof-config-hint {
	background: #f5faf6;
	border-left: 3px solid var(--sqe-accent);
	margin: 1rem 0 0 !important;
	padding: 0.7rem 0.85rem;
}
.sqe-calculator--planner .sqe-roof-config-advanced {
	border-top: 1px solid var(--sqe-line);
	margin-top: 1.1rem;
	padding-top: 0.9rem;
}
.sqe-calculator--planner .sqe-roof-config-advanced summary {
	color: var(--sqe-primary);
	cursor: pointer;
	font-size: 0.8rem;
	font-weight: 700;
}
.sqe-calculator--planner .sqe-roof-config-advanced label {
	margin-top: 0.8rem;
	max-width: 230px;
}
.sqe-calculator--planner .sqe-roof-size-options {
	display: grid;
	gap: 0.65rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sqe-calculator--planner .sqe-roof-size-option {
	align-items: flex-start;
	background: #fff;
	border: 1px solid #dce8de;
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	gap: 0.7rem;
	padding: 0.85rem;
	transition:
		border-color 0.15s ease,
		background 0.15s ease;
}
.sqe-calculator--planner .sqe-roof-size-option.is-selected {
	background: #f1f8f3;
	border-color: var(--sqe-primary);
	box-shadow: inset 0 0 0 1px var(--sqe-primary);
}
.sqe-calculator--planner .sqe-roof-size-option input {
	accent-color: var(--sqe-accent);
	margin: 0.15rem 0 0;
}
.sqe-calculator--planner .sqe-roof-size-option span {
	display: grid;
	gap: 0.25rem;
}
.sqe-calculator--planner .sqe-roof-size-option strong {
	color: var(--sqe-ink);
	font-size: 0.88rem;
}
.sqe-calculator--planner .sqe-roof-size-option small,
.sqe-calculator--planner .sqe-roof-analysis-range span {
	color: var(--sqe-muted);
	font-size: 0.75rem;
	line-height: 1.4;
}
.sqe-calculator--planner .sqe-roof-analysis-range {
	display: grid;
	gap: 0.45rem;
	margin-top: 0.9rem;
}
.sqe-calculator--planner .sqe-roof-analysis-range span {
	display: flex;
	font-weight: 700;
	justify-content: space-between;
}
.sqe-calculator--planner .sqe-roof-analysis-range output {
	color: var(--sqe-primary);
	font-size: 1rem;
	font-weight: 800;
}
.sqe-calculator--planner .sqe-roof-analysis-range input {
	accent-color: var(--sqe-accent);
	width: 100%;
}
.sqe-calculator--planner .sqe-panel-count-control--compact {
	background: #f7faf8;
	border: 1px solid var(--sqe-line);
	border-radius: 10px;
	margin-top: 0.9rem;
	padding: 0.8rem 0.9rem;
}
.sqe-calculator--planner
	.sqe-panel-count-control--compact
	.sqe-panel-count-control-heading
	> label {
	color: var(--sqe-muted);
	font-size: 0.75rem;
	font-weight: 700;
}
.sqe-calculator--planner .sqe-panel-count-control--compact .sqe-panel-count-control-input {
	font-size: 1rem;
}
.sqe-calculator--planner .sqe-panel-count-control--compact input[type='range'] {
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-card {
	background: #f7faf8;
	border: 1px solid #dfeae1;
	border-radius: 12px;
	padding: 0.7rem 0.9rem;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-card > div {
	border-bottom: 1px solid #e1ebe3;
	display: flex;
	font-size: 0.8rem;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.55rem 0;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-card > div:last-child {
	border-bottom: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-card strong {
	color: var(--sqe-ink);
	white-space: nowrap;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-total {
	border-top: 2px solid var(--sqe-primary) !important;
	color: var(--sqe-primary);
	font-size: 0.9rem !important;
	font-weight: 800;
	margin-top: 0.25rem;
	padding-top: 0.8rem !important;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-total strong {
	color: var(--sqe-primary);
	font-size: 1.15rem;
}
.sqe-calculator--planner .sqe-roof-analysis-estimate-manual {
	background: #fff5ed;
	border-left: 3px solid var(--sqe-accent);
	color: var(--sqe-ink);
	font-size: 0.82rem;
	line-height: 1.45;
	margin: 0;
	padding: 0.75rem 0.9rem;
}
@media (max-width: 620px) {
	.sqe-calculator--planner .sqe-roof-size-options {
		grid-template-columns: 1fr;
	}
}
.sqe-calculator--planner .sqe-planner {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	padding: 0;
	background: #f7faf8;
}
.sqe-calculator--planner .sqe-planner-header {
	align-items: center;
	background: #fff;
	border-bottom: 1px solid var(--sqe-line);
	box-shadow: none;
	display: grid;
	flex: 0 0 var(--sqe-header-height);
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) minmax(160px, 260px) minmax(0, 1fr);
	height: var(--sqe-header-height);
	margin: 0;
	max-width: none;
	min-height: 0;
	padding: 0 clamp(1rem, 3vw, 2.5rem);
	position: relative;
	top: auto;
	z-index: 1000;
}
.sqe-calculator--planner .sqe-planner-brand {
	justify-content: flex-start;
}
.sqe-calculator--planner .sqe-planner-brand .sqe-logo {
	height: 38px;
	max-width: 120px;
	width: auto;
}
.sqe-calculator--planner .sqe-planner-brand > div {
	gap: 0;
}
.sqe-calculator--planner .sqe-planner-brand strong {
	color: var(--sqe-ink);
	font-size: 0.95rem;
	line-height: 1.25;
}
.sqe-calculator--planner .sqe-planner-brand small {
	color: var(--sqe-muted);
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-header-progress {
	display: grid;
	gap: 0.12rem;
	line-height: 1.15;
	text-align: center;
}
.sqe-calculator--planner .sqe-header-progress small {
	color: var(--sqe-muted);
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}
.sqe-calculator--planner .sqe-header-progress strong {
	color: var(--sqe-ink);
	font-size: 0.85rem;
	font-weight: 700;
}
.sqe-calculator--planner .sqe-header-progress-track {
	background: #e9efeb;
	border-radius: 99px;
	height: 3px;
	margin: 0.3rem auto 0;
	overflow: hidden;
	width: 100%;
}
.sqe-calculator--planner .sqe-header-progress-track span {
	background: var(--sqe-accent);
	display: block;
	height: 100%;
}
.sqe-calculator--planner .sqe-planner-header-back {
	border: 1px solid var(--sqe-line);
	border-radius: 8px;
	color: var(--sqe-ink);
	font-size: 0.8rem;
	font-weight: 650;
	justify-self: end;
	padding: 0.55rem 0.8rem;
	white-space: nowrap;
}
.sqe-calculator--planner .sqe-planner-header-back:hover {
	background: #f4f8f5;
}
.sqe-calculator--planner .sqe-address-modal {
	align-items: center;
	background: rgb(10 27 20 / 58%);
	display: grid;
	inset: 0;
	justify-items: center;
	padding: 1rem;
	position: fixed;
	z-index: 2000;
}
.sqe-calculator--planner .sqe-address-modal-card {
	background: #fff;
	border: 1px solid #d9e5dc;
	border-radius: 18px;
	box-shadow: 0 24px 70px rgb(10 34 23 / 24%);
	max-width: 560px;
	padding: clamp(1.25rem, 4vw, 2rem);
	width: 100%;
}
.sqe-calculator--planner .sqe-address-modal-header {
	align-items: start;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}
.sqe-calculator--planner .sqe-address-modal-header h2 {
	color: var(--sqe-ink);
	font-size: clamp(1.3rem, 3vw, 1.75rem);
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin: 0;
}
.sqe-calculator--planner .sqe-modal-close {
	align-items: center;
	background: #f1f6f2;
	border: 0;
	border-radius: 50%;
	color: var(--sqe-ink);
	display: inline-flex;
	font-size: 1.4rem;
	height: 36px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	width: 36px;
}
.sqe-calculator--planner .sqe-modal-close:hover,
.sqe-calculator--planner .sqe-modal-close:focus-visible {
	background: #e4efe7;
}
.sqe-calculator--planner .sqe-address-modal-current {
	color: var(--sqe-ink);
	font-size: 0.82rem;
	margin: 1.2rem 0 0.35rem;
}
.sqe-calculator--planner .sqe-address-modal-help {
	color: var(--sqe-muted);
	font-size: 0.88rem;
	margin: 0;
}
.sqe-calculator--planner .sqe-address-modal .sqe-search-control {
	margin-top: 1.2rem;
}
.sqe-calculator--planner .sqe-modal-cancel {
	margin-top: 1rem;
	width: 100%;
}
.sqe-calculator--planner .sqe-roof-analysis-modal {
	align-items: center;
	background: rgb(10 27 20 / 58%);
	display: grid;
	inset: 0;
	justify-items: center;
	overflow: hidden;
	overscroll-behavior: contain;
	padding: 1rem;
	position: fixed;
	z-index: 2000;
}
.sqe-calculator--planner .sqe-roof-analysis-card {
	background: #fff;
	border: 1px solid rgb(217 229 220 / 80%);
	border-radius: 22px;
	box-shadow: 0 30px 90px rgb(10 34 23 / 30%);
	display: flex;
	flex-direction: column;
	height: min(calc(100dvh - 2rem), 760px);
	max-height: calc(100dvh - 1.5rem);
	max-width: 720px;
	min-height: 0;
	overflow: hidden;
	width: 100%;
}
.sqe-calculator--planner .sqe-roof-analysis-header {
	align-items: start;
	background: linear-gradient(135deg, #f5faf6 0%, #fff 72%);
	border-bottom: 1px solid var(--sqe-line);
	display: flex;
	flex: 0 0 auto;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.7rem clamp(1.25rem, 4vw, 2.25rem) 0.65rem;
}
.sqe-calculator--planner .sqe-roof-analysis-heading {
	min-width: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-header h2 {
	color: var(--sqe-ink);
	font-size: clamp(1.4rem, 3vw, 1.85rem);
	letter-spacing: -0.035em;
	line-height: 1.15;
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-lead {
	color: var(--sqe-muted);
	font-size: 0.82rem;
	line-height: 1.35;
	margin: 0.2rem 0 0;
	max-width: 46ch;
}
.sqe-calculator--planner .sqe-roof-analysis-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0 clamp(1.25rem, 4vw, 2.25rem) 1.5rem;
	scrollbar-color: #9fb7a5 transparent;
	scrollbar-gutter: stable;
	-webkit-overflow-scrolling: touch;
}
.sqe-calculator--planner .sqe-roof-analysis-scroll::-webkit-scrollbar {
	width: 9px;
}
.sqe-calculator--planner .sqe-roof-analysis-scroll::-webkit-scrollbar-track {
	background: transparent;
}
.sqe-calculator--planner .sqe-roof-analysis-scroll::-webkit-scrollbar-thumb {
	background: #9fb7a5;
	border: 3px solid #fff;
	border-radius: 99px;
}
.sqe-calculator--planner .sqe-roof-analysis-scroll:focus-visible {
	outline: 2px solid var(--sqe-primary);
	outline-offset: -3px;
}
.sqe-calculator--planner .sqe-roof-analysis-loading {
	align-items: center;
	background: #f5faf6;
	border: 1px solid #e0ece2;
	border-radius: 14px;
	display: flex;
	gap: 0.9rem;
	margin-top: 1.5rem;
	min-height: 150px;
	padding: 1.35rem;
}
.sqe-calculator--planner .sqe-roof-analysis-spinner {
	animation: sqe-spin 0.9s linear infinite;
	border: 3px solid #dce9df;
	border-radius: 50%;
	border-top-color: var(--sqe-accent);
	display: inline-block;
	flex: 0 0 28px;
	height: 28px;
	width: 28px;
}
.sqe-calculator--planner .sqe-roof-analysis-loading strong,
.sqe-calculator--planner .sqe-roof-analysis-error strong {
	color: var(--sqe-ink);
	display: block;
}
.sqe-calculator--planner .sqe-roof-analysis-loading p,
.sqe-calculator--planner .sqe-roof-analysis-error p {
	color: var(--sqe-muted);
	font-size: 0.85rem;
	margin: 0.35rem 0 0;
}
.sqe-calculator--planner .sqe-roof-analysis-error {
	background: #fff3ef;
	border: 1px solid #f1d4cb;
	border-radius: 14px;
	color: #713414;
	margin-top: 1.5rem;
	padding: 1.25rem;
}
.sqe-calculator--planner .sqe-roof-analysis-error strong {
	color: #713414;
}
.sqe-calculator--planner .sqe-roof-analysis-error .sqe-secondary-button {
	margin-top: 1rem;
}
.sqe-calculator--planner .sqe-roof-analysis-results {
	padding-top: 1.35rem;
}
.sqe-calculator--planner .sqe-roof-analysis-status {
	align-items: center;
	color: var(--sqe-ink);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.77rem;
	font-weight: 750;
	gap: 0.55rem;
	justify-content: space-between;
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-status span:first-child {
	align-items: center;
	display: inline-flex;
	gap: 0.4rem;
}
.sqe-calculator--planner .sqe-roof-analysis-status span:first-child::before {
	background: #3f9b69;
	border-radius: 50%;
	box-shadow: 0 0 0 4px #e3f3e8;
	content: '';
	display: inline-block;
	height: 7px;
	width: 7px;
}
.sqe-calculator--planner .sqe-roof-analysis-status span:last-child {
	background: #f0f6f1;
	border-radius: 99px;
	color: var(--sqe-muted);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 0.42rem 0.65rem;
	text-transform: uppercase;
}
.sqe-calculator--planner .sqe-roof-analysis-note,
.sqe-calculator--planner .sqe-roof-analysis-disclaimer {
	color: var(--sqe-muted);
	font-size: 0.82rem;
	line-height: 1.45;
}
.sqe-calculator--planner .sqe-roof-analysis-note {
	background: #f8fbf8;
	border-left: 3px solid var(--sqe-accent);
	margin: 1rem 0 1.35rem;
	padding: 0.75rem 0.9rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section {
	border-top: 1px solid var(--sqe-line);
	padding-top: 1.25rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section + .sqe-roof-analysis-section {
	margin-top: 1.35rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section h3 {
	color: var(--sqe-ink);
	font-size: 1rem;
	letter-spacing: -0.01em;
	margin: 0 0 0.8rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section-heading {
	align-items: end;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin-bottom: 0.9rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section-heading h3 {
	margin-bottom: 0.3rem;
}
.sqe-calculator--planner .sqe-roof-analysis-section-heading p {
	color: var(--sqe-muted);
	font-size: 0.76rem;
	line-height: 1.4;
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-metrics,
.sqe-calculator--planner .sqe-roof-analysis-details {
	display: grid;
	gap: 0.65rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-metrics > div,
.sqe-calculator--planner .sqe-roof-analysis-details > div {
	background: #f8fbf9;
	border: 1px solid #e0eae2;
	border-radius: 12px;
	display: grid;
	gap: 0.3rem;
	min-height: 76px;
	padding: 0.85rem 0.9rem;
}
.sqe-calculator--planner .sqe-roof-analysis-metrics small,
.sqe-calculator--planner .sqe-roof-analysis-details small {
	color: var(--sqe-muted);
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-roof-analysis-metrics strong,
.sqe-calculator--planner .sqe-roof-analysis-details strong {
	color: var(--sqe-ink);
	font-size: 1.08rem;
}
.sqe-calculator--planner .sqe-roof-analysis-segment {
	display: grid;
	gap: 0.4rem;
	max-width: 230px;
}
.sqe-calculator--planner .sqe-roof-analysis-segment > span {
	color: var(--sqe-ink);
	font-size: 0.8rem;
	font-weight: 700;
}
.sqe-calculator--planner .sqe-roof-analysis-segment select {
	background: #fff;
	border: 1px solid #cfddd2;
	border-radius: 8px;
	color: var(--sqe-ink);
	min-height: 42px;
	padding: 0.55rem 0.7rem;
	width: 100%;
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-section-heading {
	align-items: center;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 150px;
	margin-bottom: 0.7rem;
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-segment {
	gap: 0.25rem;
	max-width: none;
	width: 150px;
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-segment > span {
	color: var(--sqe-muted);
	font-size: 0.72rem;
	font-weight: 600;
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-segment select {
	min-height: 38px;
	padding-block: 0.4rem;
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-details {
	gap: 0.8rem;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}
.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-details > div {
	background: transparent;
	border: 0;
	border-top: 1px solid var(--sqe-line);
	border-radius: 0;
	gap: 0.2rem;
	min-height: 0;
	padding: 0.65rem 0 0;
}
.sqe-calculator--planner .sqe-roof-analysis-details dt {
	color: var(--sqe-muted);
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-roof-analysis-details dd {
	color: var(--sqe-ink);
	font-size: 1.08rem;
	font-weight: 700;
	margin: 0;
}
.sqe-calculator--planner .sqe-roof-analysis-output {
	background: var(--sqe-primary);
	border-radius: 14px;
	color: var(--sqe-ink);
	display: grid;
	gap: 0.25rem;
	margin: 1.35rem 0 0;
	padding: 1rem 1.1rem;
}
.sqe-calculator--planner .sqe-roof-analysis-output small {
	color: #c6dbce;
	font-size: 0.72rem;
	font-weight: 700;
}
.sqe-calculator--planner .sqe-roof-analysis-output strong {
	color: #fff;
	font-size: 1.3rem;
}
.sqe-calculator--planner .sqe-roof-analysis-output span {
	color: #c6dbce;
	font-size: 0.73rem;
}
.sqe-calculator--planner .sqe-roof-analysis-disclaimer {
	border-top: 1px solid var(--sqe-line);
	font-size: 0.74rem;
	margin: 1.35rem 0 0;
	padding-top: 1.1rem;
}
.sqe-calculator--planner .sqe-roof-analysis-actions {
	border-top: 1px solid var(--sqe-line);
	background: #fff;
	display: flex;
	flex: 0 0 auto;
	gap: 0.7rem;
	justify-content: flex-end;
	padding: 1rem clamp(1.25rem, 4vw, 2.25rem) 1.25rem;
}
@keyframes sqe-spin {
	to {
		transform: rotate(360deg);
	}
}
.sqe-calculator--planner .sqe-planner-scroll {
	min-height: 0;
	min-width: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior-y: contain;
	padding: clamp(1rem, 2.5vw, 2rem) clamp(1rem, 3vw, 2.5rem) 3rem;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.sqe-calculator--planner .sqe-planner-scroll::-webkit-scrollbar {
	display: none;
	width: 0;
}
.sqe-calculator--planner .sqe-planner-layout {
	align-items: stretch;
	display: grid;
	flex: 1 1 auto;
	gap: 0;
	grid-template-columns: minmax(0, 1fr) clamp(280px, 26vw, 344px);
	margin: 0;
	max-width: none;
	min-height: 0;
	overflow: hidden;
	width: 100%;
}
.sqe-calculator--planner .sqe-planner-main {
	min-width: 0;
}
.sqe-calculator--planner .sqe-planner-rail {
	align-self: stretch;
	background: #fff;
	border-left: 1px solid var(--sqe-line);
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	height: 100% !important;
	max-height: none;
	min-height: 0;
	min-width: 0;
	order: 0;
	overflow: hidden;
	padding: clamp(1rem, 2.5vw, 2rem) clamp(0.8rem, 2vw, 1.5rem);
	position: static;
	top: auto;
}
.sqe-calculator--planner .sqe-rail-card {
	border: 1px solid var(--sqe-line);
	border-radius: 12px;
	box-shadow: 0 12px 30px rgb(20 45 32 / 5%);
	flex: 0 1 auto;
	max-height: 100%;
	min-height: 0;
	overflow: hidden;
}
.sqe-calculator--planner .sqe-rail-brand {
	justify-content: space-between;
	padding: 1.1rem 1.2rem;
}
.sqe-calculator--planner .sqe-rail-brand > div {
	gap: 0.15rem;
}
.sqe-calculator--planner .sqe-rail-brand strong {
	color: var(--sqe-ink);
	font-size: 1rem;
}
.sqe-calculator--planner .sqe-rail-brand small {
	color: var(--sqe-muted);
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.13em;
}
.sqe-calculator--planner .sqe-rail-count {
	background: #f1f5f1;
	border-radius: 99px;
	color: var(--sqe-ink);
	font-size: 0.72rem;
	font-weight: 750;
	padding: 0.35rem 0.55rem;
}
.sqe-calculator--planner .sqe-rail-progress {
	flex: 0 0 3px;
	transition: width 0.2s ease;
}
.sqe-calculator--planner .sqe-rail-steps {
	min-height: 0;
	overflow-y: auto;
	scrollbar-color: #c5d0c7 transparent;
}
.sqe-calculator--planner .sqe-rail-item,
.sqe-calculator--planner .sqe-rail-card .sqe-rail-item {
	display: flex;
	gap: 0.8rem;
	min-height: 62px;
	padding: 0.7rem 1rem;
}
.sqe-calculator--planner .sqe-rail-item.is-active {
	background: #f4f8f3;
	box-shadow: inset 3px 0 var(--sqe-accent);
	color: var(--sqe-ink);
}
.sqe-calculator--planner .sqe-rail-item.is-complete {
	color: var(--sqe-ink);
}
.sqe-calculator--planner .sqe-rail-item:disabled {
	opacity: 0.56;
}
.sqe-calculator--planner .sqe-rail-icon {
	background: #f0f4f0;
	border-radius: 7px;
	color: var(--sqe-muted);
	flex: 0 0 29px;
	font-size: 0.68rem;
	font-weight: 800;
	height: 29px;
}
.sqe-calculator--planner .sqe-rail-item.is-active .sqe-rail-icon {
	background: var(--sqe-primary);
	color: #fff;
}
.sqe-calculator--planner .sqe-rail-item strong {
	font-size: 0.84rem;
}
.sqe-calculator--planner .sqe-rail-item small {
	font-size: 0.7rem;
}
.sqe-calculator--planner .sqe-rail-item em {
	font-size: 1rem;
}
.sqe-calculator--planner .sqe-rail-total {
	background: var(--sqe-primary);
	border-radius: 10px;
	margin: 0;
	padding: 1rem 1.2rem;
	text-align: left;
}
.sqe-calculator--planner .sqe-rail-total strong {
	font-size: 1.45rem;
}
.sqe-calculator--planner .sqe-rail-total small {
	color: #d9e6dc;
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-section-heading {
	align-items: center;
	margin-bottom: 1rem;
}
.sqe-calculator--planner .sqe-kicker {
	font-size: 0.66rem;
	letter-spacing: 0.15em;
	margin-bottom: 0.55rem;
}
.sqe-calculator--planner .sqe-section-heading h1,
.sqe-calculator--planner .sqe-content-section > h1 {
	color: var(--sqe-ink);
	font-size: clamp(1.55rem, 2.8vw, 2.35rem);
	font-weight: 650;
	letter-spacing: -0.035em;
	line-height: 1.18;
}
.sqe-calculator--planner .sqe-map-card {
	border: 1px solid #dce7dc;
	border-radius: 12px;
	box-shadow: none;
}
.sqe-calculator--planner .sqe-property-map {
	height: clamp(390px, 62vh, 680px);
	min-height: 390px;
}
.sqe-calculator--planner .sqe-google-map-wrap {
	position: relative;
}
.sqe-calculator--planner .sqe-google-map-error {
	background: #fff;
	border: 1px solid #c75041;
	border-radius: 8px;
	color: #8a2f29;
	font-size: 0.84rem;
	left: 50%;
	max-width: calc(100% - 2rem);
	padding: 0.8rem 1rem;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}
.sqe-calculator--planner .sqe-map-instruction {
	align-items: start;
	background: rgb(20 38 31 / 93%);
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 10px;
	box-shadow: 0 14px 32px rgb(15 37 24 / 20%);
	grid-template-columns: 1fr;
	left: 1rem;
	max-width: min(390px, calc(100% - 2rem));
	padding: 0.9rem 1rem;
	right: auto;
	top: 1rem;
}
.sqe-calculator--planner .sqe-map-instruction strong {
	font-size: 0.89rem;
}
.sqe-calculator--planner .sqe-map-instruction span {
	font-size: 0.76rem;
}
.sqe-calculator--planner .sqe-map-actions {
	background: linear-gradient(transparent, rgb(14 31 23 / 42%));
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	padding: 2.5rem 1rem 1rem;
	pointer-events: none;
	position: absolute;
	right: 0;
	z-index: 500;
}
.sqe-calculator--planner .sqe-map-actions .sqe-primary-button {
	box-shadow:
		0 0 0 4px #fff,
		0 9px 25px rgb(14 31 23 / 28%);
	min-width: 168px;
	pointer-events: auto;
}
.sqe-calculator--planner .sqe-map-caption {
	color: var(--sqe-muted);
	font-size: 0.75rem;
	line-height: 1.4;
	margin: 0.6rem 0 0;
}
.sqe-calculator--planner .sqe-primary-button,
.sqe-calculator--planner .sqe-secondary-button {
	border-radius: 8px;
	font-size: 0.84rem;
	font-weight: 700;
	min-height: 42px;
	padding: 0.65rem 1rem;
}
.sqe-calculator--planner .sqe-roof-config {
	border-color: var(--sqe-line);
	border-radius: 12px;
	gap: 1.25rem 1.5rem;
	grid-template-columns: minmax(0, 1.4fr) minmax(150px, 1fr) minmax(150px, 0.8fr);
	padding: 1.5rem;
}
.sqe-calculator--planner .sqe-roof-config h2 {
	color: var(--sqe-ink);
	font-size: 1.25rem;
}
.sqe-calculator--planner .sqe-roof-config > button {
	grid-column: 1 / -1;
	justify-self: start;
}
.sqe-calculator--planner .sqe-roof-config output {
	color: var(--sqe-primary);
	font-size: 1.45rem;
}
.sqe-calculator--planner .sqe-content-section {
	border-color: var(--sqe-line);
	border-radius: 12px;
	min-height: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.sqe-calculator--planner .sqe-content-section > p:not(.sqe-kicker) {
	color: var(--sqe-muted);
	font-size: 0.95rem;
}
.sqe-calculator--planner .sqe-package-grid,
.sqe-calculator--planner .sqe-addon-grid {
	gap: 0.8rem;
	margin-top: 1.2rem;
}
.sqe-calculator--planner .sqe-addon-grid + .sqe-primary-button {
	margin-top: 1.25rem;
}
.sqe-calculator--planner .sqe-package-card,
.sqe-calculator--planner .sqe-addon-card {
	border-color: var(--sqe-line);
	border-radius: 10px;
	gap: 1.2rem;
	padding: 0.9rem;
}
.sqe-calculator--planner .sqe-package-card {
	grid-template-columns: minmax(145px, 180px) minmax(0, 1fr);
}
.sqe-calculator--planner .sqe-package-card.is-selected,
.sqe-calculator--planner .sqe-addon-card.is-selected {
	border-color: var(--sqe-accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--sqe-accent) 12%, transparent);
}
.sqe-calculator--planner .sqe-package-media {
	background: linear-gradient(140deg, #ecf3ed, #f8faf7);
	min-height: 170px;
}
.sqe-calculator--planner .sqe-panel-illustration {
	background-color: #203a43;
	background-image:
		repeating-linear-gradient(
			90deg,
			transparent 0 20%,
			#8aa5a7 20% calc(20% + 1px),
			transparent calc(20% + 1px) 25%
		),
		repeating-linear-gradient(
			0deg,
			transparent 0 23%,
			#8aa5a7 23% calc(23% + 1px),
			transparent calc(23% + 1px) 25%
		);
	border: 6px solid #314c52;
	border-radius: 3px;
	box-shadow: 0 12px 18px rgb(15 43 34 / 16%);
	display: block;
	height: 96px;
	transform: perspective(280px) rotateX(18deg) rotateZ(-6deg);
	width: 115px;
}
.sqe-calculator--planner .sqe-package-placeholder small {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: capitalize;
}
.sqe-calculator--planner .sqe-package-copy h2,
.sqe-calculator--planner .sqe-addon-card h2 {
	color: var(--sqe-ink);
	font-size: 1.13rem;
	line-height: 1.3;
}
.sqe-calculator--planner .sqe-package-footer {
	align-items: center;
}
.sqe-calculator--planner .sqe-package-footer strong {
	font-size: 1.15rem;
}
.sqe-calculator--planner .sqe-addon-card {
	grid-template-columns: 92px minmax(0, 1fr);
}
.sqe-calculator--planner .sqe-addon-image {
	background: #eef5ef;
	font-size: 2rem;
	height: 92px;
}
.sqe-calculator--planner .sqe-addon-image img {
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}
.sqe-calculator--planner .sqe-addon-footer {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}
.sqe-calculator--planner .sqe-savings-metrics {
	background: #f0f5f0;
	border-radius: 10px;
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 1.5rem;
	padding: 1.2rem;
}
.sqe-calculator--planner .sqe-savings-metrics > div {
	display: grid;
	gap: 0.3rem;
}
.sqe-calculator--planner .sqe-savings-metrics small {
	color: var(--sqe-muted);
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-savings-metrics strong {
	color: var(--sqe-ink);
	font-size: 1rem;
	overflow-wrap: anywhere;
}
.sqe-calculator--planner .sqe-savings-guide {
	border: 1px solid var(--sqe-line);
	border-radius: 12px;
	display: grid;
	gap: clamp(1.25rem, 3vw, 2rem);
	margin: 1.25rem 0;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.sqe-calculator--planner .sqe-energy-flow {
	align-items: stretch;
	background: #f4f8f4;
	border-radius: 10px;
	display: grid;
	gap: 0.6rem;
	grid-template-columns: repeat(2, minmax(0, 1fr) 20px) minmax(0, 1fr);
	padding: 1rem;
}
.sqe-calculator--planner .sqe-energy-node {
	align-items: center;
	background: #fff;
	border: 1px solid var(--sqe-line);
	border-radius: 8px;
	color: var(--sqe-ink);
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	justify-content: center;
	min-height: 96px;
	padding: 0.6rem;
	text-align: center;
}
.sqe-calculator--planner .sqe-energy-node span {
	color: var(--sqe-accent);
	font-size: 1.65rem;
	line-height: 1;
}
.sqe-calculator--planner .sqe-energy-node strong {
	font-size: 0.8rem;
}
.sqe-calculator--planner .sqe-energy-arrow {
	align-self: center;
	color: var(--sqe-accent);
	font-size: 1.1rem;
	text-align: center;
}
.sqe-calculator--planner .sqe-savings-explainer {
	align-items: start;
	display: grid;
	gap: clamp(1rem, 3vw, 2rem);
	grid-template-columns: minmax(0, 1.15fr) minmax(220px, 0.85fr);
}
.sqe-calculator--planner .sqe-savings-explainer h2 {
	color: var(--sqe-ink);
	font-size: clamp(1.3rem, 2.5vw, 1.75rem);
	line-height: 1.25;
	margin: 0 0 0.65rem;
}
.sqe-calculator--planner .sqe-savings-explainer p:not(.sqe-kicker) {
	color: var(--sqe-muted);
	font-size: 0.88rem;
	line-height: 1.6;
	margin: 0;
}
.sqe-calculator--planner .sqe-savings-checklist {
	background: #f7faf7;
	border-radius: 9px;
	padding: 1rem 1.1rem;
}
.sqe-calculator--planner .sqe-savings-checklist strong {
	color: var(--sqe-ink);
	font-size: 0.85rem;
}
.sqe-calculator--planner .sqe-savings-checklist ul {
	color: var(--sqe-muted);
	font-size: 0.8rem;
	line-height: 1.5;
	list-style: none;
	margin: 0.65rem 0 0;
	padding: 0;
}
.sqe-calculator--planner .sqe-savings-checklist li {
	padding: 0.3rem 0 0.3rem 1.25rem;
	position: relative;
}
.sqe-calculator--planner .sqe-savings-checklist li::before {
	color: var(--sqe-accent);
	content: '✓';
	font-weight: 800;
	left: 0;
	position: absolute;
}
.sqe-calculator--planner .sqe-savings-note {
	background: #edf4ed;
	border-radius: 7px;
	color: var(--sqe-ink);
	font-size: 0.78rem;
	margin: 0;
	padding: 0.55rem 0.8rem;
}
.sqe-calculator--planner .sqe-summary-layout {
	align-items: start;
	gap: 1rem;
	margin-top: 1.5rem;
}
.sqe-calculator--planner .sqe-summary-panel {
	border-color: var(--sqe-line);
	border-radius: 10px;
	padding: 1.4rem;
}
.sqe-calculator--planner .sqe-contact-panel {
	align-content: start;
	align-self: start;
	border-color: var(--sqe-line);
	border-radius: 10px;
	padding: 1.4rem;
	position: sticky;
	top: 1.25rem;
}
.sqe-calculator--planner .sqe-selection-review {
	border-top: 1px solid var(--sqe-line);
	margin-top: 1rem;
	padding-top: 0.35rem;
}
.sqe-calculator--planner .sqe-selection-review h3 {
	color: var(--sqe-ink);
	font-size: 0.92rem;
	margin: 0.75rem 0 0.25rem;
}
.sqe-calculator--planner .sqe-selection-review dl {
	margin: 0;
}
.sqe-calculator--planner .sqe-selection-review dl > div {
	border-bottom: 1px solid var(--sqe-line);
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
	padding: 0.7rem 0;
}
.sqe-calculator--planner .sqe-selection-review dt {
	color: var(--sqe-muted);
	font-size: 0.78rem;
	font-weight: 650;
}
.sqe-calculator--planner .sqe-selection-review dd {
	color: var(--sqe-ink);
	font-size: 0.84rem;
	margin: 0;
	min-width: 0;
}
.sqe-calculator--planner .sqe-selection-review-detail,
.sqe-calculator--planner .sqe-selection-review-detail > span,
.sqe-calculator--planner .sqe-selection-review-detail > div {
	display: grid;
	gap: 0.2rem;
}
.sqe-calculator--planner .sqe-selection-review-detail > div + div {
	border-top: 1px solid var(--sqe-line);
	margin-top: 0.55rem;
	padding-top: 0.55rem;
}
.sqe-calculator--planner .sqe-selection-review-detail > strong {
	font-size: 0.88rem;
}
.sqe-calculator--planner .sqe-selection-review-detail > span {
	color: var(--sqe-muted);
	font-size: 0.78rem;
}
.sqe-calculator--planner .sqe-selection-review-detail ul {
	color: var(--sqe-muted);
	font-size: 0.78rem;
	margin: 0.2rem 0 0;
	padding-left: 1rem;
}
.sqe-calculator--planner .sqe-contact-panel input:not([type='checkbox']),
.sqe-calculator--planner .sqe-contact-panel textarea {
	border-radius: 8px;
	min-height: 42px;
}
.sqe-calculator--planner .sqe-trust-sections.is-compact {
	gap: 1.5rem;
	margin: 2rem auto 0;
	max-width: 1450px;
}
.sqe-calculator--planner .sqe-trust-sections article {
	border: 1px solid var(--sqe-line);
	border-radius: 9px;
	box-shadow: none;
}
@media (max-width: 900px) {
	.sqe-calculator--planner .sqe-planner-layout {
		grid-template-columns: minmax(0, 1fr) 255px;
	}
	.sqe-calculator--planner .sqe-roof-config {
		grid-template-columns: 1fr 1fr;
	}
	.sqe-calculator--planner .sqe-roof-config > div:first-child {
		grid-column: 1 / -1;
	}
	.sqe-calculator--planner .sqe-summary-layout {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-contact-panel {
		position: static;
		top: auto;
	}
	.sqe-calculator--planner .sqe-savings-explainer {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 740px) {
	.sqe-calculator--planner {
		--sqe-header-height: 64px;
	}
	.sqe-calculator--planner .sqe-planner-header {
		gap: 0.6rem;
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.sqe-calculator--planner .sqe-header-progress {
		display: none;
	}
	.sqe-calculator--planner .sqe-planner-brand .sqe-logo {
		max-width: 90px;
	}
	.sqe-calculator--planner .sqe-planner-layout {
		grid-template-columns: 1fr;
		grid-template-rows: auto minmax(0, 1fr);
	}
	.sqe-calculator--planner .sqe-planner-scroll {
		grid-row: 2;
	}
	.sqe-calculator--planner .sqe-planner-rail {
		align-items: stretch;
		border-bottom: 1px solid var(--sqe-line);
		border-left: 0;
		display: grid;
		gap: 0.6rem;
		grid-row: 1;
		grid-template-columns: minmax(0, 1fr) auto;
		height: auto !important;
		max-height: none;
		order: -1;
		padding: 0.7rem 1rem;
		position: static;
	}
	.sqe-calculator--planner .sqe-rail-steps {
		display: none;
	}
	.sqe-calculator--planner .sqe-rail-card {
		flex: none;
	}
	.sqe-calculator--planner .sqe-rail-total {
		min-width: 140px;
		padding: 0.7rem 1rem;
	}
	.sqe-calculator--planner .sqe-rail-total strong {
		font-size: 1.2rem;
	}
	.sqe-calculator--planner .sqe-section-heading {
		align-items: flex-start;
	}
	.sqe-calculator--planner .sqe-map-instruction {
		left: 0.65rem;
		max-width: calc(100% - 1.3rem);
		right: 0.65rem;
		top: 0.65rem;
	}
	.sqe-calculator--planner .sqe-package-card,
	.sqe-calculator--planner .sqe-addon-card {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-savings-metrics {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-package-media {
		min-height: 140px;
	}
}
@media (max-width: 620px) {
	.sqe-calculator--planner .sqe-roof-analysis-modal {
		padding: 0.5rem;
	}
	.sqe-calculator--planner .sqe-roof-analysis-card {
		border-radius: 16px;
		height: calc(100dvh - 1rem);
		max-height: calc(100dvh - 1rem);
	}
	.sqe-calculator--planner .sqe-roof-analysis-header {
		padding: 0.65rem 1rem 0.55rem;
	}
	.sqe-calculator--planner .sqe-roof-analysis-scroll {
		padding-inline: 1rem;
	}
	.sqe-calculator--planner .sqe-roof-analysis-metrics,
	.sqe-calculator--planner .sqe-roof-analysis-details {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-roof-analysis-section-heading {
		align-items: stretch;
		flex-direction: column;
		gap: 0.8rem;
	}
	.sqe-calculator--planner .sqe-roof-analysis-segment {
		max-width: none;
	}
	.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-section-heading {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-segment {
		width: 100%;
	}
	.sqe-calculator--planner .sqe-roof-analysis-sections .sqe-roof-analysis-details {
		grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	}
	.sqe-calculator--planner .sqe-roof-analysis-actions {
		flex-direction: column-reverse;
		padding: 0.85rem 1rem 1rem;
	}
	.sqe-calculator--planner .sqe-roof-analysis-actions button {
		width: 100%;
	}
	.sqe-calculator--planner .sqe-planner-scroll {
		padding: 0.85rem 0.75rem 1.75rem;
	}
	.sqe-calculator--planner .sqe-planner-header {
		padding-inline: 0.75rem;
	}
	.sqe-calculator--planner .sqe-planner-brand > div {
		display: none;
	}
	.sqe-calculator--planner .sqe-planner-header-back {
		font-size: 0.75rem;
		grid-column: 2;
		grid-row: 1;
		padding: 0.5rem 0.6rem;
	}
	.sqe-calculator--planner .sqe-content-section,
	.sqe-calculator--planner .sqe-roof-config {
		padding: 1rem;
	}
	.sqe-calculator--planner .sqe-section-heading h1,
	.sqe-calculator--planner .sqe-content-section > h1 {
		font-size: clamp(1.4rem, 6vw, 1.8rem);
	}
	.sqe-calculator--planner .sqe-roof-config {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-selection-review dl > div {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}
	.sqe-calculator--planner .sqe-property-map {
		height: min(55dvh, 430px);
		min-height: 290px;
	}
	.sqe-calculator--planner .sqe-map-instruction {
		border-radius: 0;
		left: auto;
		max-width: none;
		position: relative;
		right: auto;
		top: auto;
	}
	.sqe-calculator--planner .sqe-map-actions {
		background: #fff;
		border-top: 1px solid var(--sqe-line);
		padding: 0.85rem;
		pointer-events: auto;
		position: relative;
	}
	.sqe-calculator--planner .sqe-map-actions .sqe-primary-button {
		box-shadow: none;
		width: 100%;
	}
	.sqe-calculator--planner .sqe-package-footer,
	.sqe-calculator--planner .sqe-addon-footer {
		align-items: stretch;
		flex-direction: column;
	}
	.sqe-calculator--planner .sqe-package-footer .sqe-primary-button,
	.sqe-calculator--planner .sqe-addon-footer button {
		width: 100%;
	}
}
@media screen and (max-width: 782px) {
	body.admin-bar .sqe-calculator--planner {
		height: calc(100dvh - 46px) !important;
		top: 46px !important;
	}
}
@media (max-width: 480px) {
	.sqe-calculator--planner .sqe-planner-rail {
		padding: 0.55rem 0.7rem;
	}
	.sqe-calculator--planner .sqe-rail-brand {
		padding: 0.65rem 0.75rem;
	}
	.sqe-calculator--planner .sqe-rail-brand strong {
		font-size: 0.82rem;
	}
	.sqe-calculator--planner .sqe-rail-total {
		min-width: 118px;
		padding: 0.5rem 0.65rem;
	}
	.sqe-calculator--planner .sqe-rail-total strong {
		font-size: 1rem;
	}
	.sqe-calculator--planner .sqe-energy-flow {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-energy-node {
		min-height: 70px;
	}
	.sqe-calculator--planner .sqe-energy-arrow {
		line-height: 1;
		transform: rotate(90deg);
	}
	.sqe-calculator--planner .sqe-savings-metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.sqe-calculator--planner .sqe-savings-metrics > div:last-child {
		grid-column: 1 / -1;
	}
	.sqe-calculator--planner .sqe-savings-guide {
		padding: 0.85rem;
	}
	.sqe-calculator--planner .sqe-trust-sections.is-compact {
		gap: 0.75rem;
		margin-top: 1.25rem;
	}
}

/* Renerji-inspired catalogue and hand-off flow. Keep page headings strong, but let
 * modal and card headings remain compact so the hierarchy stays calm. */
.sqe-calculator--planner .sqe-section-heading h1,
.sqe-calculator--planner .sqe-content-section > h1 {
	font-size: clamp(1.7rem, 3.2vw, 2.25rem);
	line-height: 1.08;
}
.sqe-calculator--planner .sqe-package-intro-meta {
	align-items: center;
	background: #f1f7f2;
	border: 1px solid #deebe0;
	border-radius: 10px;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	margin: -0.25rem 0 1.1rem;
	padding: 0.75rem 0.9rem;
}
.sqe-calculator--planner .sqe-package-intro-meta strong {
	color: var(--sqe-ink);
	font-size: 0.82rem;
}
.sqe-calculator--planner .sqe-package-intro-meta span {
	color: var(--sqe-muted);
	font-size: 0.78rem;
}
.sqe-calculator--planner .sqe-package-card {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 5px 20px rgb(24 50 42 / 4%);
	gap: clamp(1rem, 2vw, 1.35rem);
	padding: 0.85rem;
}
.sqe-calculator--planner .sqe-package-card:hover {
	border-color: #b9d0c0;
	box-shadow: 0 10px 28px rgb(24 50 42 / 9%);
}
.sqe-calculator--planner .sqe-package-card.is-recommended {
	border-color: var(--sqe-primary);
}
.sqe-calculator--planner .sqe-package-media,
.sqe-calculator--planner .sqe-package-media img {
	min-height: 205px;
}
.sqe-calculator--planner .sqe-package-media {
	border-radius: 10px;
}
.sqe-calculator--planner .sqe-package-copy {
	padding: 0.15rem 0.2rem 0.1rem;
}
.sqe-calculator--planner .sqe-package-topline {
	align-items: center;
	display: flex;
	gap: 0.7rem;
	justify-content: space-between;
}
.sqe-calculator--planner .sqe-package-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: flex-end;
}
.sqe-calculator--planner .sqe-package-badge--recommended {
	background: var(--sqe-primary);
	color: #fff;
}
.sqe-calculator--planner .sqe-package-badge {
	background: #edf5ef;
	border-radius: 99px;
	color: var(--sqe-primary);
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.32rem 0.55rem;
	white-space: nowrap;
}
.sqe-calculator--planner .sqe-package-copy h2 {
	font-size: 1.18rem;
	letter-spacing: -0.02em;
	margin: 0.35rem 0 0.4rem;
}
.sqe-calculator--planner .sqe-package-description {
	color: var(--sqe-muted);
	font-size: 0.84rem;
	line-height: 1.45;
	margin: 0 0 0.85rem;
}
.sqe-calculator--planner .sqe-package-specs {
	background: #f5f8f5;
	border-radius: 9px;
	display: grid;
	gap: 0.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-bottom: 0.85rem;
	padding: 0.65rem;
}
.sqe-calculator--planner .sqe-package-specs > div {
	display: grid;
	gap: 0.18rem;
	min-width: 0;
}
.sqe-calculator--planner .sqe-package-specs small,
.sqe-calculator--planner .sqe-package-footer small {
	color: var(--sqe-muted);
	font-size: 0.65rem;
	line-height: 1.2;
}
.sqe-calculator--planner .sqe-package-specs strong {
	color: var(--sqe-ink);
	font-size: 0.74rem;
	line-height: 1.25;
	overflow-wrap: anywhere;
}
.sqe-calculator--planner .sqe-package-features {
	display: grid;
	gap: 0.35rem;
	margin: 0;
}
.sqe-calculator--planner .sqe-package-features li {
	align-items: flex-start;
	display: flex;
	font-size: 0.76rem;
	gap: 0.45rem;
	line-height: 1.35;
	margin: 0;
}
.sqe-calculator--planner .sqe-package-features li > span {
	color: var(--sqe-accent);
	font-weight: 800;
}
.sqe-calculator--planner .sqe-package-footer {
	border-top: 1px solid var(--sqe-line);
	margin-top: 0.9rem;
	padding-top: 0.85rem;
}
.sqe-calculator--planner .sqe-package-footer > div {
	display: grid;
	gap: 0.15rem;
}
.sqe-calculator--planner .sqe-package-footer strong {
	font-size: 1.3rem;
}
.sqe-calculator--planner .sqe-package-footer .sqe-primary-button {
	font-size: 0.78rem;
	padding: 0.68rem 0.9rem;
}

.sqe-calculator--planner .sqe-summary-page > p:not(.sqe-kicker) {
	max-width: 52ch;
}
.sqe-calculator--planner .sqe-summary-contact-card {
	background: #f1f7f2;
	border: 1px solid #deebe0;
	border-radius: 12px;
	padding: 1.25rem;
}
.sqe-calculator--planner .sqe-summary-contact-card .sqe-kicker {
	margin-bottom: 0.45rem;
}
.sqe-calculator--planner .sqe-summary-contact-card h2 {
	color: var(--sqe-ink);
	font-size: 1.1rem;
	margin: 0 0 0.65rem;
}
.sqe-calculator--planner .sqe-summary-contact-card p,
.sqe-calculator--planner .sqe-summary-contact-card span {
	color: var(--sqe-muted);
	display: block;
	font-size: 0.82rem;
	line-height: 1.45;
	margin: 0.2rem 0;
}
.sqe-calculator--planner .sqe-summary-contact-card span {
	border-top: 1px solid #dbe8dd;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
}
.sqe-calculator--planner .sqe-summary-cta {
	align-items: center;
	background: var(--sqe-primary);
	border-radius: 14px;
	color: #fff;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin: 1.2rem 0 0;
	padding: 1.25rem 1.4rem;
}
.sqe-calculator--planner .sqe-summary-cta .sqe-kicker {
	color: #e4b82c;
	margin-bottom: 0.35rem;
}
.sqe-calculator--planner .sqe-summary-cta h2 {
	color: #fff;
	font-size: 1.2rem;
	margin: 0 0 0.3rem;
}
.sqe-calculator--planner .sqe-summary-cta p:not(.sqe-kicker) {
	color: #d6e4db;
	font-size: 0.82rem;
	line-height: 1.45;
	margin: 0;
	max-width: 48ch;
}
.sqe-calculator--planner .sqe-summary-cta .sqe-primary-button {
	flex: 0 0 auto;
	white-space: nowrap;
}

/* The details and appointment dialogs use a real flex scroll region. */
.sqe-calculator--planner .sqe-customer-details-modal,
.sqe-calculator--planner .sqe-appointment-modal {
	align-items: center;
	background: rgb(10 27 20 / 62%);
	display: grid;
	inset: 0;
	justify-items: center;
	overflow: hidden;
	overscroll-behavior: contain;
	padding: 1rem;
	position: fixed;
	z-index: 2100;
}
.sqe-calculator--planner .sqe-customer-details-card,
.sqe-calculator--planner .sqe-appointment-card {
	background: #fff;
	border: 1px solid #dce8df;
	border-radius: 18px;
	box-shadow: 0 28px 85px rgb(5 27 17 / 30%);
	display: flex;
	flex-direction: column;
	height: min(720px, calc(100dvh - 2rem));
	min-height: 0;
	overflow: hidden;
	width: min(100%, 680px);
}
.sqe-calculator--planner .sqe-appointment-card {
	height: min(650px, calc(100dvh - 2rem));
	width: min(100%, 620px);
}
.sqe-calculator--planner .sqe-customer-details-header,
.sqe-calculator--planner .sqe-appointment-header {
	align-items: flex-start;
	background: linear-gradient(135deg, #f4f9f5, #fff 74%);
	border-bottom: 1px solid var(--sqe-line);
	display: flex;
	flex: 0 0 auto;
	gap: 1rem;
	justify-content: space-between;
	padding: 1.2rem clamp(1.25rem, 4vw, 2rem) 1.05rem;
}
.sqe-calculator--planner .sqe-customer-details-header h2,
.sqe-calculator--planner .sqe-appointment-header h2 {
	color: var(--sqe-ink);
	font-size: clamp(1.35rem, 3vw, 1.75rem);
	letter-spacing: -0.035em;
	line-height: 1.12;
	margin: 0;
}
.sqe-calculator--planner .sqe-customer-details-header > div > p:not(.sqe-kicker),
.sqe-calculator--planner .sqe-appointment-header > div > p:not(.sqe-kicker) {
	color: var(--sqe-muted);
	font-size: 0.82rem;
	line-height: 1.4;
	margin: 0.35rem 0 0;
}
.sqe-calculator--planner .sqe-customer-details-form,
.sqe-calculator--planner .sqe-appointment-form {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 1rem;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 1.15rem clamp(1.25rem, 4vw, 2rem) 1.25rem;
	scrollbar-color: #9fb7a5 transparent;
	scrollbar-gutter: stable;
	touch-action: pan-y;
	-webkit-overflow-scrolling: touch;
}
.sqe-calculator--planner .sqe-customer-details-form::-webkit-scrollbar,
.sqe-calculator--planner .sqe-appointment-form::-webkit-scrollbar {
	width: 9px;
}
.sqe-calculator--planner .sqe-customer-details-form::-webkit-scrollbar-thumb,
.sqe-calculator--planner .sqe-appointment-form::-webkit-scrollbar-thumb {
	background: #9fb7a5;
	border: 3px solid #fff;
	border-radius: 99px;
}
.sqe-calculator--planner .sqe-details-plan {
	background: #f1f7f2;
	border-left: 3px solid var(--sqe-accent);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: 0.8rem 0.9rem;
}
.sqe-calculator--planner .sqe-details-plan > div:first-child {
	display: grid;
	gap: 0.25rem;
	min-width: 0;
}
.sqe-calculator--planner .sqe-details-plan small,
.sqe-calculator--planner .sqe-details-plan-meta span {
	color: var(--sqe-muted);
	font-size: 0.72rem;
}
.sqe-calculator--planner .sqe-details-plan strong {
	color: var(--sqe-ink);
	font-size: 0.83rem;
	overflow-wrap: anywhere;
}
.sqe-calculator--planner .sqe-details-plan-meta {
	align-content: center;
	display: grid;
	flex: 0 0 auto;
	gap: 0.2rem;
	text-align: right;
}
.sqe-calculator--planner .sqe-details-plan-meta strong {
	color: var(--sqe-primary);
	font-size: 0.92rem;
}
.sqe-calculator--planner .sqe-details-field-grid {
	display: grid;
	gap: 0.85rem 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sqe-calculator--planner .sqe-customer-details-form label,
.sqe-calculator--planner .sqe-appointment-form label {
	display: grid;
	gap: 0.35rem;
}
.sqe-calculator--planner .sqe-customer-details-form label > span,
.sqe-calculator--planner .sqe-appointment-form label > span,
.sqe-calculator--planner .sqe-appointment-options legend {
	color: var(--sqe-ink);
	font-size: 0.75rem;
	font-weight: 750;
}
.sqe-calculator--planner .sqe-customer-details-form input:not([type='checkbox']),
.sqe-calculator--planner .sqe-customer-details-form textarea,
.sqe-calculator--planner .sqe-appointment-form input[type='date'] {
	background: #fff;
	border: 1px solid #cfddd2;
	border-radius: 9px;
	box-sizing: border-box;
	color: var(--sqe-ink);
	font: inherit;
	font-size: 0.86rem;
	min-height: 43px;
	padding: 0.7rem 0.75rem;
	width: 100%;
}
.sqe-calculator--planner .sqe-customer-details-form textarea {
	min-height: 88px;
	resize: vertical;
}
.sqe-calculator--planner .sqe-customer-details-form input:focus,
.sqe-calculator--planner .sqe-customer-details-form textarea:focus,
.sqe-calculator--planner .sqe-appointment-form input:focus {
	border-color: var(--sqe-primary);
	box-shadow: 0 0 0 3px rgb(24 50 42 / 11%);
	outline: 0;
}
.sqe-calculator--planner .sqe-details-consent,
.sqe-calculator--planner .sqe-appointment-options {
	border: 0;
	margin: 0;
	min-width: 0;
	padding: 0;
}
.sqe-calculator--planner .sqe-details-consent legend,
.sqe-calculator--planner .sqe-appointment-options legend {
	margin-bottom: 0.5rem;
	padding: 0;
}
.sqe-calculator--planner .sqe-details-check {
	align-items: flex-start;
	background: #f8fbf8;
	border: 1px solid #e1ebe3;
	border-radius: 8px;
	display: flex !important;
	font-size: 0.76rem;
	gap: 0.6rem;
	line-height: 1.4;
	margin-top: 0.45rem;
	padding: 0.7rem;
}
.sqe-calculator--planner .sqe-details-check input {
	accent-color: var(--sqe-primary);
	flex: 0 0 auto;
	height: 16px;
	margin: 0.05rem 0 0;
	width: 16px;
}
.sqe-calculator--planner .sqe-details-consent > a {
	color: var(--sqe-primary);
	display: inline-block;
	font-size: 0.76rem;
	margin-top: 0.55rem;
}
.sqe-calculator--planner .sqe-details-actions,
.sqe-calculator--planner .sqe-appointment-actions {
	align-items: center;
	background: rgb(255 255 255 / 96%);
	border-top: 1px solid var(--sqe-line);
	display: flex;
	flex: 0 0 auto;
	gap: 0.65rem;
	justify-content: flex-end;
	margin: 0 -0.1rem -0.2rem;
	padding: 0.9rem 0 0.1rem;
	position: sticky;
	bottom: 0;
}
.sqe-calculator--planner .sqe-details-actions .sqe-primary-button,
.sqe-calculator--planner .sqe-appointment-actions .sqe-primary-button {
	font-size: 0.78rem;
}

.sqe-calculator--planner .sqe-appointment-form {
	gap: 1.1rem;
}
.sqe-calculator--planner .sqe-appointment-date {
	max-width: 250px;
}
.sqe-calculator--planner .sqe-appointment-options > div {
	display: grid;
	gap: 0.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sqe-calculator--planner .sqe-appointment-options:last-of-type > div {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sqe-calculator--planner .sqe-appointment-option {
	align-items: center;
	background: #fff;
	border: 1px solid #dce6df;
	border-radius: 9px;
	color: var(--sqe-ink);
	cursor: pointer;
	display: flex !important;
	font-size: 0.8rem;
	gap: 0.5rem;
	padding: 0.75rem;
}
.sqe-calculator--planner .sqe-appointment-option.is-selected {
	background: var(--sqe-accent);
	border-color: var(--sqe-accent);
	color: #fff;
}
.sqe-calculator--planner .sqe-appointment-option input {
	accent-color: var(--sqe-primary);
	margin: 0;
}
.sqe-calculator--planner .sqe-appointment-option b {
	align-items: center;
	background: #fff;
	border-radius: 50%;
	color: var(--sqe-accent);
	display: inline-flex;
	height: 18px;
	justify-content: center;
	width: 18px;
}
.sqe-calculator--planner .sqe-appointment-note {
	background: #f1f7f2;
	border-left: 3px solid var(--sqe-accent);
	color: var(--sqe-muted);
	font-size: 0.76rem;
	line-height: 1.45;
	margin: 0;
	padding: 0.7rem 0.8rem;
}
.sqe-calculator--planner .sqe-appointment-actions .sqe-plain-button {
	font-size: 0.76rem;
}

@media (min-width: 741px) and (max-width: 1020px) {
	.sqe-calculator--planner .sqe-package-card {
		grid-template-columns: minmax(160px, 0.65fr) minmax(0, 1fr);
	}
	.sqe-calculator--planner .sqe-package-media,
	.sqe-calculator--planner .sqe-package-media img {
		min-height: 190px;
	}
}
@media (max-width: 740px) {
	.sqe-calculator--planner .sqe-summary-cta {
		align-items: stretch;
		flex-direction: column;
		gap: 0.9rem;
	}
	.sqe-calculator--planner .sqe-summary-cta .sqe-primary-button {
		width: 100%;
	}
	.sqe-calculator--planner .sqe-customer-details-modal,
	.sqe-calculator--planner .sqe-appointment-modal {
		align-items: start;
		padding: 0.5rem;
	}
	.sqe-calculator--planner .sqe-customer-details-card,
	.sqe-calculator--planner .sqe-appointment-card {
		border-radius: 15px;
		height: calc(100dvh - 1rem);
		max-height: calc(100dvh - 1rem);
	}
	.sqe-calculator--planner .sqe-customer-details-header,
	.sqe-calculator--planner .sqe-appointment-header {
		padding: 1rem 1rem 0.9rem;
	}
	.sqe-calculator--planner .sqe-customer-details-form,
	.sqe-calculator--planner .sqe-appointment-form {
		padding-inline: 1rem;
	}
	.sqe-calculator--planner .sqe-package-media,
	.sqe-calculator--planner .sqe-package-media img {
		min-height: 150px;
	}
}
@media (max-width: 540px) {
	.sqe-calculator--planner .sqe-details-field-grid,
	.sqe-calculator--planner .sqe-appointment-options > div,
	.sqe-calculator--planner .sqe-appointment-options:last-of-type > div {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-details-plan {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.55rem;
	}
	.sqe-calculator--planner .sqe-details-plan-meta {
		align-items: start;
		grid-template-columns: repeat(2, auto);
		text-align: left;
	}
	.sqe-calculator--planner .sqe-details-actions,
	.sqe-calculator--planner .sqe-appointment-actions {
		align-items: stretch;
		flex-wrap: wrap;
	}
	.sqe-calculator--planner .sqe-details-actions .sqe-primary-button,
	.sqe-calculator--planner .sqe-details-actions .sqe-secondary-button {
		flex: 1 1 150px;
	}
	.sqe-calculator--planner .sqe-appointment-actions .sqe-primary-button {
		flex: 1 1 100%;
		order: -1;
	}
	.sqe-calculator--planner .sqe-appointment-actions .sqe-secondary-button,
	.sqe-calculator--planner .sqe-appointment-actions .sqe-plain-button {
		flex: 1 1 130px;
	}
}

/* Product cards switch to a vertical layout on phones. Keep the image first so
 * the catalogue remains easy to scan before the package details. */
@media (max-width: 740px) {
	.sqe-calculator--planner .sqe-package-card {
		grid-template-columns: minmax(0, 1fr);
		min-width: 0;
	}
	.sqe-calculator--planner .sqe-package-media {
		aspect-ratio: 16 / 10;
		height: auto;
		min-height: 0;
		width: 100%;
	}
	.sqe-calculator--planner .sqe-package-media img {
		height: 100%;
		min-height: 0;
		width: 100%;
	}
	.sqe-calculator--planner .sqe-package-copy {
		min-width: 0;
		width: 100%;
	}
	.sqe-calculator--planner .sqe-package-topline {
		align-items: flex-start;
	}
	.sqe-calculator--planner .sqe-package-family {
		min-width: 0;
		overflow-wrap: anywhere;
	}
	.sqe-calculator--planner .sqe-package-badge {
		white-space: normal;
	}
	.sqe-calculator--planner .sqe-package-intro-meta {
		align-items: flex-start;
		flex-direction: column;
		line-height: 1.4;
	}
	.sqe-calculator--planner .sqe-customer-details-header > div,
	.sqe-calculator--planner .sqe-appointment-header > div {
		min-width: 0;
	}
}

@media (max-width: 480px) {
	.sqe-calculator--planner .sqe-package-specs {
		grid-template-columns: 1fr;
	}
	.sqe-calculator--planner .sqe-package-specs > div {
		border-bottom: 1px solid #e1eae2;
		padding-bottom: 0.45rem;
	}
	.sqe-calculator--planner .sqe-package-specs > div:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}
}
