.ssse-estimator,
.ssse-estimate,
.ssse-estimator-editor {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	line-height: 1.65;
	overflow-wrap: anywhere;
}
.ssse-estimator *, .ssse-estimate *, .ssse-estimator-editor * { box-sizing: border-box; }
.ssse-estimator h2, .ssse-estimate h3, .ssse-estimator-editor p { overflow-wrap: anywhere; }
.ssse-estimator__description { white-space: pre-line; }
.ssse-estimator__form fieldset { min-width: 0; margin: 1.25em 0; padding: 1em; border: 1px solid #b8c1c7; border-radius: .35em; }
.ssse-estimator__form legend { max-width: 100%; padding: 0 .35em; font-weight: 700; white-space: normal; }
.ssse-estimator__required { display: inline-block; margin-left: .5em; font-size: .85em; color: #9c2323; white-space: nowrap; }
.ssse-estimator__choice { display: flex; align-items: flex-start; gap: .6em; margin: .45em 0; padding: .35em 0; cursor: pointer; }
.ssse-estimator__choice input { flex: 0 0 auto; width: 1.2em; height: 1.2em; margin: .2em 0 0; }
.ssse-estimator__choice > span { min-width: 0; white-space: normal; }
.ssse-estimator__choice small { display: block; font-size: .9em; }
.ssse-estimator__submit, .ssse-estimator__contact-link, .ssse-estimator-editor .components-button {
	display: inline-block; max-width: 100%; height: auto; min-height: 2.75em; padding: .65em 1em;
	border: 1px solid #1c6148; border-radius: .3em; background: #1c6148; color: #fff;
	font: inherit; font-weight: 600; line-height: 1.5; text-align: center; white-space: normal; overflow-wrap: anywhere; text-decoration: none; cursor: pointer;
}
.ssse-estimator__submit:disabled { opacity: .65; cursor: wait; }
.ssse-estimator input:focus-visible, .ssse-estimator button:focus-visible, .ssse-estimator a:focus-visible,
.ssse-estimate summary:focus-visible { outline: 3px solid #2271b1; outline-offset: 3px; }
.ssse-estimator__field-error { margin: .75em 0 0; color: #9c2323; font-weight: 600; }
.ssse-estimator__status { margin: 1em 0; }
.ssse-estimator__result:focus { outline: 2px solid #2271b1; outline-offset: 4px; }
.ssse-estimator__contact { margin-top: 1.25em; }
.ssse-estimate { margin: 1em 0; padding: 1.1em; border: 1px solid #b6cdc2; border-radius: .35em; background: #f6faf8; color: #1d2327; }
.ssse-estimate h3 { margin-top: 0; }
.ssse-estimate h4 { margin: 1.4em 0 .5em; font-size: 1.1em; line-height: 1.5; }
.ssse-estimate__name { font-weight: 700; }
.ssse-estimate dl { margin: 1em 0; }
.ssse-estimate dl > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: .2em; padding: .7em 0; border-bottom: 1px solid #d7e2dc; }
.ssse-estimate dt { font-weight: 600; }
.ssse-estimate__label-unit { display: inline-block; max-width: 100%; }
.ssse-estimate dd { min-width: 0; margin: 0; }
.ssse-estimate__total { font-size: 1.1em; font-weight: 700; }
.ssse-estimate__hint { display: block; margin-top: .25em; }
.ssse-estimate__amount { display: inline-block; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.ssse-estimate__tax { display: inline-block; white-space: nowrap; }
.ssse-estimate__details { margin: 1em 0; }
.ssse-estimate__details summary { padding: .5em 0; cursor: pointer; }
.ssse-estimate__details ul { padding-left: 1.3em; }
.ssse-estimate__details li { margin: .65em 0; }
.ssse-estimate__item-name { display: block; }
.ssse-estimate .ssse-estimate__base-subtotal { margin-top: 1.25em; padding-top: .25em; border-top: 1px solid #b6cdc2; }
.ssse-estimate__notice { margin-top: 1.25em; }
.ssse-estimate__notice p { margin: .5em 0; }
.ssse-estimate__notice p:last-child { margin-bottom: 0; }
.ssse-estimate--error { border-color: #b32d2e; background: #fff7f7; }
.ssse-estimate--error p { margin: .5em 0; }
.ssse-estimate--error ul { padding-left: 1.3em; }
.ssse-cf7-estimate > .ssse-estimate { margin-bottom: 0; padding: 0; border: 0; background: transparent; }
.ssse-estimator-editor { padding: 1em; border: 1px solid #8c8f94; background: #fff; color: #1d2327; }
.ssse-estimator-editor .components-base-control, .ssse-estimator-editor .components-input-control__container,
.ssse-estimator-editor select { min-width: 0; width: 100%; max-width: 100%; }
.ssse-estimator-editor__warning { margin: 1em 0; padding: .75em; border-left: .25em solid #a15c00; background: #fff8e5; }
.ssse-estimator-editor__warning p { margin: .3em 0; }

/* 0.3.1 public presentation only. The shared CF7/admin/editor rules above
 * remain unchanged; tokens and overrides are confined to public roots. */
[data-ssse-estimator], [data-ssse-catalog] {
	--ssse-surface: #ffffff;
	--ssse-ivory: #faf8f2;
	--ssse-ink: #292d2b;
	--ssse-muted: #555d58;
	--ssse-line: #dcded8;
	--ssse-control-line: #bbc1b9;
	--ssse-gold: #958362;
	--ssse-blue: #eff5f7;
	--ssse-blue-ink: #374851;
	--ssse-action: #292d2b;
	--ssse-action-hover: #414841;
	--ssse-on-action: #ffffff;
	--ssse-focus: #344c55;
	--ssse-error: #982c30;
	--ssse-error-bg: #fff6f5;
	--ssse-intro: #292d2b;
	--ssse-intro-text: #ffffff;
	--ssse-intro-muted: #e0e5e1;
	--ssse-intro-gold: #d3c2a0;
	--ssse-required: #82503f;
	--ssse-soft-line: #e7e9e3;
	color: var(--ssse-ink);
	background: var(--ssse-surface);
	font-size: 1rem;
	line-height: 1.75;
}
[data-ssse-estimator] { padding-block: .5rem; }
[data-ssse-estimator] > .ssse-intro, [data-ssse-catalog] > .ssse-intro {
	margin: 0 0 2rem; padding: 1.75rem 2rem;
	background: var(--ssse-intro); color: var(--ssse-intro-text);
}
[data-ssse-estimator] .ssse-intro__brand, [data-ssse-catalog] .ssse-intro__brand {
	margin: 0 0 .65rem; color: var(--ssse-intro-gold);
	font-size: .875em; font-weight: 600; line-height: 1.6; letter-spacing: .08em;
}
[data-ssse-estimator] .ssse-intro__lead, [data-ssse-catalog] .ssse-intro__lead {
	margin: 0 0 .75rem; color: var(--ssse-intro-text);
	font-size: 1.5em; font-weight: 600; line-height: 1.6; text-wrap: balance;
}
[data-ssse-estimator] .ssse-intro__copy, [data-ssse-catalog] .ssse-intro__copy {
	margin: 0; color: var(--ssse-intro-muted); line-height: 1.75;
}
/* Keep one dark introduction when the single-product renderer is mounted
 * inside a catalog. Product photos and product headers remain light. */
[data-ssse-catalog] [data-ssse-estimator] > .ssse-intro { display: none; }
[data-ssse-catalog]:has([data-catalog-selected]:not([hidden])) > h2 { display: none; }
[data-ssse-estimator] .ssse-estimator__choices { display: flex; flex-wrap: wrap; gap: .75rem 1rem; }
[data-ssse-estimator] .ssse-estimator__choices > .ssse-estimator__choice {
	flex: 1 1 100%; min-width: 0; max-width: 100%; margin: 0;
}
[data-ssse-estimator] .ssse-estimator__header { margin-bottom: 1.75rem; }
[data-ssse-estimator] .ssse-product-image-wrap {
	position: relative; width: 100%; max-width: 32rem; aspect-ratio: 4 / 3;
	margin: 0 auto 1.5rem; background: var(--ssse-ivory);
}
[data-ssse-estimator] .ssse-product-image-wrap img {
	position: absolute; inset: 0; width: 100%; height: 100%; padding: 1rem; object-fit: contain;
}
[data-ssse-estimator] h2, [data-ssse-catalog] > h2 {
	margin: 0 0 1.5rem; padding: 0; border: 0; border-radius: 0;
	background: none; box-shadow: none; color: var(--ssse-ink);
	font-size: 1.5em; font-weight: 600; line-height: 1.55;
	white-space: normal; overflow-wrap: anywhere; text-wrap: balance;
}
[data-ssse-estimator] h2::before, [data-ssse-estimator] h2::after,
[data-ssse-catalog] > h2::before, [data-ssse-catalog] > h2::after { display: none; }
[data-ssse-estimator] .ssse-estimator__description { margin: 0 0 1.75rem; color: var(--ssse-muted); }
[data-ssse-estimator] .ssse-estimator__form fieldset {
	margin: 0 0 1.75rem; padding: 0; border: 0; border-radius: 0;
}
[data-ssse-estimator] .ssse-estimator__form legend {
	float: none; width: 100%; margin: 0 0 .65rem; padding: 0;
	color: var(--ssse-ink); font-size: 1.05em; font-weight: 600; line-height: 1.6;
}
[data-ssse-estimator] .ssse-estimator__required {
	padding: 0; border: 0; border-radius: 0;
	color: var(--ssse-required); background: transparent; font-size: .875em; font-weight: 400;
}
[data-ssse-estimator] .ssse-estimator__choice {
	gap: .65em; margin: .6rem 0; padding: .9rem 1rem;
	border: 1px solid var(--ssse-line); border-radius: 4px;
	background: var(--ssse-surface); color: var(--ssse-ink);
	font-size: 1em; line-height: 1.65; transition: border-color .15s ease, background-color .15s ease;
}
[data-ssse-estimator] .ssse-estimator__choice:has(input:checked) {
	border-color: var(--ssse-gold); background: var(--ssse-ivory);
}
[data-ssse-estimator] .ssse-estimator__choice input {
	appearance: auto; accent-color: var(--ssse-ink); margin-top: .2em;
}
[data-ssse-estimator] .ssse-estimator__choice small {
	margin-top: .25em; color: var(--ssse-muted); font-size: 1em;
}
[data-ssse-estimator] .ssse-estimator__submit,
[data-ssse-estimator] .ssse-estimator__contact-link {
	display: inline-block; max-width: 100%; min-height: 3rem; padding: .85rem 1.25rem;
	border: 1px solid var(--ssse-action); border-radius: 4px;
	background: var(--ssse-action); color: var(--ssse-on-action);
	font: inherit; font-weight: 600; line-height: 1.65; white-space: normal;
	overflow-wrap: anywhere; text-decoration: none; box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease;
}
/* Once an application link exists it is the primary action. No data or
 * event behavior is changed; clearing the result restores the first stage. */
[data-ssse-estimator]:has(.ssse-estimator__contact-link) .ssse-estimator__submit {
	background: var(--ssse-surface); color: var(--ssse-ink); border-color: var(--ssse-control-line);
}
[data-ssse-estimator] .ssse-estimator__contact { margin-top: 1.5rem; }
[data-ssse-estimator] .ssse-estimator__status { margin: 1rem 0; color: var(--ssse-muted); }
[data-ssse-estimator] .ssse-estimator__status:empty,
[data-ssse-estimator] .ssse-estimator__contact:empty { margin: 0; }
[data-ssse-estimator] .ssse-estimator__field-error { color: var(--ssse-error); }
[data-ssse-estimator] input:focus-visible, [data-ssse-estimator] button:focus-visible,
[data-ssse-estimator] a:focus-visible, [data-ssse-estimator] summary:focus-visible {
	outline: 3px solid var(--ssse-focus); outline-offset: 4px;
}
[data-ssse-estimator] .ssse-estimator__choice:has(input:focus-visible) {
	outline: 3px solid var(--ssse-focus); outline-offset: 3px;
}
[data-ssse-estimator] .ssse-estimator__result:focus {
	outline: 2px solid var(--ssse-focus); outline-offset: 4px;
}
[data-ssse-estimator] .ssse-estimate {
	margin: 1.75rem 0 0; padding: 1.5rem;
	border: 1px solid var(--ssse-line); border-top: 2px solid var(--ssse-gold);
	border-radius: 0; background: var(--ssse-surface); color: var(--ssse-ink);
}
[data-ssse-estimator] .ssse-estimate h3, [data-ssse-estimator] .ssse-estimate h4 {
	padding: 0; border: 0; background: none; box-shadow: none; color: var(--ssse-ink);
	font-weight: 600; line-height: 1.6;
}
[data-ssse-estimator] .ssse-estimate h3 { margin: 0 0 1rem; font-size: 1.25em; }
[data-ssse-estimator] .ssse-estimate h4 { margin: 1.5rem 0 .5rem; font-size: 1em; }
[data-ssse-estimator] .ssse-estimate h3::before, [data-ssse-estimator] .ssse-estimate h3::after,
[data-ssse-estimator] .ssse-estimate h4::before, [data-ssse-estimator] .ssse-estimate h4::after { display: none; }
[data-ssse-estimator] .ssse-estimate dl { margin: .5rem 0 1rem; }
[data-ssse-estimator] .ssse-estimate dl > div { gap: .35rem; padding: .8rem 0; border-color: var(--ssse-line); }
[data-ssse-estimator] .ssse-estimate dt { color: var(--ssse-muted); font-weight: 400; }
[data-ssse-estimator] .ssse-estimate dd { color: var(--ssse-ink); }
[data-ssse-estimator] .ssse-estimate__totals > div { padding-block: 1rem; }
[data-ssse-estimator] .ssse-estimate__total {
	margin-top: .5rem; border-top: 1px solid var(--ssse-gold); border-bottom: 0;
	font-size: 1em; font-weight: 600;
}
[data-ssse-estimator] .ssse-estimate__total dt { color: var(--ssse-ink); font-weight: 600; }
[data-ssse-estimator] .ssse-estimate__total dd { font-size: 1.5em; line-height: 1.55; }
[data-ssse-estimator] .ssse-estimate__tax { font-size: .875em; font-weight: 400; }
[data-ssse-estimator] .ssse-estimate__hint { color: var(--ssse-muted); }
[data-ssse-estimator] .ssse-estimate__details { margin: 1.25rem 0; }
[data-ssse-estimator] .ssse-estimate__details summary {
	width: fit-content; max-width: 100%; padding: .6rem 0; color: var(--ssse-muted);
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .25em;
}
[data-ssse-estimator] .ssse-estimate .ssse-estimate__base-subtotal { border-color: var(--ssse-line); }
[data-ssse-estimator] .ssse-estimate__notice {
	margin-top: 1.25rem; padding: 1rem; border: 0; border-radius: 2px;
	background: var(--ssse-blue); color: var(--ssse-blue-ink);
}
[data-ssse-estimator] .ssse-estimate__notice p { margin: 0 0 .65em; }
[data-ssse-estimator] .ssse-estimate--error {
	border-color: var(--ssse-error); background: var(--ssse-error-bg);
}
@media (hover: hover) {
	[data-ssse-estimator] .ssse-estimator__choice:hover { border-color: var(--ssse-gold); }
	[data-ssse-estimator] .ssse-estimator__submit:hover,
	[data-ssse-estimator] .ssse-estimator__contact-link:hover {
		background: var(--ssse-action-hover); border-color: var(--ssse-action-hover); color: var(--ssse-on-action);
	}
	[data-ssse-estimator]:has(.ssse-estimator__contact-link) .ssse-estimator__submit:hover {
		background: var(--ssse-ivory); border-color: var(--ssse-gold); color: var(--ssse-ink);
	}
}
@media (max-width: 599px) {
	[data-ssse-estimator] > .ssse-intro, [data-ssse-catalog] > .ssse-intro {
		margin-bottom: 1.5rem; padding: 1.25rem 1rem;
	}
	[data-ssse-estimator] .ssse-estimate { padding: 1rem .75rem; }
	[data-ssse-estimator] .ssse-estimator__choice { padding: .8rem .75rem; }
	[data-ssse-estimator] .ssse-estimator__submit,
	[data-ssse-estimator] .ssse-estimator__contact-link { width: 100%; padding-inline: .75rem; }
	[data-ssse-estimator] .ssse-estimate__notice { padding: .85rem .65rem; }
}
@media (min-width: 900px) {
	/* Intrinsic text width can force a long choice onto its own line.
	 * em minimums grow with text enlargement; never more than two columns. */
	[data-ssse-estimator] .ssse-estimator__choices > .ssse-estimator__choice {
		flex-basis: max-content; min-width: min(100%, max(18em, calc(50% - .5rem)));
	}
}
@media (prefers-reduced-motion: reduce) {
	[data-ssse-estimator] .ssse-estimator__choice,
	[data-ssse-estimator] .ssse-estimator__submit,
	[data-ssse-estimator] .ssse-estimator__contact-link { transition: none; }
}

/* 0.3.4 choice support stays subordinate to the product photo and the price. */
[data-ssse-estimator] .ssse-choice-body { flex: 1 1 0; min-width: 0; }
[data-ssse-estimator] .ssse-choice-name,
[data-ssse-estimator] .ssse-choice-description,
[data-ssse-estimator] .ssse-choice-price {
	display: block; min-width: 0; max-width: 100%; white-space: normal;
	overflow-wrap: anywhere; word-break: normal; line-break: strict; text-wrap: pretty;
}
[data-ssse-estimator] .ssse-choice-name { font-weight: 600; }
[data-ssse-estimator] .ssse-choice-description { margin-top: .35em; color: var(--ssse-muted); white-space: pre-line; }
[data-ssse-estimator] .ssse-choice-price { font-weight: 500; }
[data-ssse-estimator] .ssse-estimator__choice:has(.ssse-choice-image:not([hidden])) { container: ssse-choice / inline-size; }
[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) {
	display: grid; grid-template-columns: min(96px, 22%) minmax(0, 1fr); column-gap: .75em; align-content: start;
}
[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) > :not(img) { grid-column: 2; }
[data-ssse-estimator] .ssse-choice-image {
	display: block; grid-column: 1; grid-row: 1 / span 3; align-self: start;
	width: 100%; max-width: 96px; height: 96px; max-height: 96px;
	object-fit: contain; margin: 0; padding: 0; border: 0;
}
[data-ssse-estimator] .ssse-choice-image[hidden] { display: none !important; }
@container ssse-choice (max-width: 28em) {
	[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) {
		grid-template-columns: min(64px, 25%) minmax(0, 1fr);
	}
	[data-ssse-estimator] .ssse-choice-image { grid-row: 1; height: 64px; max-width: 64px; }
	[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) > .ssse-choice-description,
	[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) > .ssse-choice-price { grid-column: 1 / -1; }
}
@container ssse-choice (max-width: 12em) {
	[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) { grid-template-columns: minmax(0, 1fr); row-gap: .35em; }
	[data-ssse-estimator] .ssse-choice-body:has(.ssse-choice-image:not([hidden])) > :not(img) { grid-column: 1; }
}
@media (min-width: 900px) {
	/* Richer choices get enough text width before a second column is allowed. */
	[data-ssse-estimator] .ssse-estimator__choices:has(.ssse-choice-image, .ssse-choice-description) > .ssse-estimator__choice {
		flex-basis: calc(50% - .5rem); min-width: min(100%, 26em);
	}
}
