/* CuencaSolar Panel Matcher - public, dependency-free styles. */
.cspm {
	--cspm-ink: #12202b;
	--cspm-muted: #53616d;
	--cspm-line: #d8e0e5;
	--cspm-soft: #f5f7f8;
	--cspm-white: #fff;
	--cspm-brand: #c44800;
	--cspm-brand-dark: #a73e00;
	--cspm-navy: #123248;
	--cspm-green: #0b6b43;
	--cspm-green-soft: #eaf7f0;
	--cspm-amber: #8a5000;
	--cspm-amber-soft: #fff4d6;
	--cspm-red: #a51d2d;
	--cspm-red-soft: #fff0f1;
	--cspm-blue-soft: #eef6fa;
	--cspm-radius: 14px;
	--cspm-shadow: 0 16px 42px rgba(18, 50, 72, .11);
	box-sizing: border-box;
	color: var(--cspm-ink);
	container-type: inline-size;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.55;
	margin-inline: auto;
	max-width: 1180px;
	padding: 0 22px 64px;
}

.cspm *,
.cspm *::before,
.cspm *::after { box-sizing: inherit; }

.cspm [hidden] { display: none !important; }
.cspm img { height: auto; max-width: 100%; }
.revi-widget-floating-1 { display: none !important; }
.cspm a { color: var(--cspm-brand-dark); text-underline-offset: .18em; }
.cspm a:hover { text-decoration-thickness: 2px; }
.cspm p,
.cspm ul,
.cspm ol { margin-block: 0 16px; }
.cspm h1,
.cspm h2,
.cspm h3,
.cspm h4 { color: var(--cspm-navy); font-size: 20px; line-height: 1.2; margin: 0 0 11px; }
.cspm h1 { font-size: clamp(32px, 4vw, 48px); letter-spacing: -.025em; }
.cspm h2 { font-size: clamp(26px, 3vw, 40px); letter-spacing: -.025em; }
.cspm h3 { font-size: clamp(20px, 2vw, 25px); }

.cspm-sr-only {
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	overflow: hidden !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

.cspm :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid #087eaa;
	outline-offset: 3px;
}
.cspm h3[tabindex="-1"]:focus { outline: none; }

.cspm-breadcrumbs { color: var(--cspm-muted); font-size: 15px; padding-block: 18px; }
.cspm-breadcrumbs ol { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; list-style: none; margin: 0; padding: 0; }
.cspm-breadcrumbs li { align-items: center; display: flex; gap: 7px; }
.cspm-breadcrumbs a { color: inherit; }

.cspm-hero {
	align-items: center;
	background:
		radial-gradient(circle at 82% 15%, rgba(255, 192, 92, .22), transparent 27%),
		linear-gradient(135deg, #f7fafb 0%, #eef5f6 100%);
	border: 1px solid #e0e9ec;
	border-radius: 24px;
	display: grid;
	gap: clamp(24px, 5vw, 64px);
	grid-template-columns: minmax(0, 1.45fr) minmax(260px, .72fr);
	overflow: hidden;
	padding: clamp(28px, 6vw, 68px);
	position: relative;
}

.cspm-hero::after {
	background: linear-gradient(120deg, transparent, rgba(232, 93, 4, .12));
	border-radius: 50%;
	content: "";
	height: 260px;
	position: absolute;
	right: -100px;
	top: -120px;
	width: 260px;
}

.cspm-eyebrow {
	color: var(--cspm-brand-dark);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .095em;
	margin-bottom: 10px;
	text-transform: uppercase;
}

.cspm-lead { color: #344854; font-size: clamp(17px, 2vw, 20px); max-width: 740px; }
.cspm-trust-list { display: flex; flex-wrap: wrap; gap: 10px 19px; list-style: none; margin: 24px 0 0; padding: 0; }
.cspm-trust-list li { font-size: 16px; font-weight: 750; padding-left: 25px; position: relative; }
.cspm-trust-list li::before { color: var(--cspm-green); content: "✓"; font-weight: 900; left: 0; position: absolute; }
.cspm-hero__note { background: rgba(255,255,255,.9); border: 1px solid rgba(18,50,72,.12); border-radius: var(--cspm-radius); box-shadow: 0 10px 30px rgba(18,50,72,.08); display: flex; gap: 13px; padding: 20px; position: relative; z-index: 1; }
.cspm-hero__note svg { color: var(--cspm-brand); flex: 0 0 24px; }
.cspm-hero__note strong { color: var(--cspm-navy); display: block; margin-bottom: 6px; }
.cspm-hero__note p { color: var(--cspm-muted); font-size: 16px; margin: 0; }

.cspm-tool { background: var(--cspm-white); border: 1px solid var(--cspm-line); border-radius: 22px; box-shadow: var(--cspm-shadow); margin: clamp(30px, 5vw, 58px) auto; overflow: hidden; }
.cspm-tool__heading { align-items: flex-end; background: var(--cspm-navy); color: white; display: flex; gap: 24px; justify-content: space-between; padding: clamp(24px, 5vw, 42px); }
.cspm-tool__heading h2,
.cspm-tool__heading .cspm-eyebrow { color: white; }
.cspm-tool__heading .cspm-eyebrow { opacity: .78; }
.cspm-ai-label { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; flex: 0 1 360px; font-size: 15px; margin: 0; padding: 8px 13px; }

.cspm-progress { counter-reset: none; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0; padding: 24px clamp(24px, 5vw, 42px) 0; }
.cspm-progress li { align-items: center; color: #4c5962; display: flex; font-size: 15px; gap: 9px; min-width: 0; position: relative; }
.cspm-progress li:not(:last-child)::after { background: var(--cspm-line); content: ""; height: 2px; margin-inline: 12px; min-width: 20px; width: 100%; }
.cspm-progress span { align-items: center; background: #edf0f2; border-radius: 50%; display: inline-flex; flex: 0 0 31px; font-weight: 800; height: 31px; justify-content: center; }
.cspm-progress strong { white-space: nowrap; }
.cspm-progress li[aria-current="step"] { color: var(--cspm-navy); }
.cspm-progress li[aria-current="step"] span { background: var(--cspm-brand); color: white; }
.cspm-progress li.is-complete { color: var(--cspm-green); }
.cspm-progress li.is-complete span { background: var(--cspm-green); color: white; }

.cspm-step { padding: clamp(24px, 5vw, 44px); }
.cspm-step-heading { align-items: start; border-bottom: 1px solid var(--cspm-line); display: flex; gap: 24px; justify-content: space-between; margin-bottom: 26px; padding-bottom: 20px; }
.cspm-step-heading > p { color: var(--cspm-muted); flex: 0 1 400px; }
.cspm-step-heading--results > p { font-size: 15px; text-align: right; }

.cspm-mode-picker,
.cspm [data-review-form] fieldset { border: 0; margin: 0; padding: 0; }
.cspm-mode-picker legend { color: var(--cspm-navy); font-size: 18px; font-weight: 800; margin-bottom: 14px; }
.cspm-mode-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr); margin-bottom: 24px; }
.cspm-mode-grid input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.cspm-mode-card { align-items: center; border: 2px solid var(--cspm-line); border-radius: var(--cspm-radius); cursor: pointer; display: flex; gap: 15px; min-height: 80px; padding: 15px 18px; transition: border-color .15s, background-color .15s, transform .15s; }
.cspm-mode-card:hover { border-color: #a9b7bf; transform: translateY(-1px); }
.cspm-mode-card[aria-disabled="true"] { background: var(--cspm-soft); cursor: not-allowed; opacity: .65; transform: none; }
.cspm-mode-card svg { color: var(--cspm-brand); flex: 0 0 32px; height: 32px; width: 32px; }
.cspm-mode-card span { display: flex; flex-direction: column; }
.cspm-mode-card small { color: var(--cspm-muted); font-size: 15px; font-weight: 500; }
.cspm-mode-grid input:checked + .cspm-mode-card { background: #fff7f1; border-color: var(--cspm-brand); box-shadow: 0 0 0 1px var(--cspm-brand); }
.cspm-mode-grid input:focus-visible + .cspm-mode-card { outline: 3px solid #087eaa; outline-offset: 3px; }

.cspm-variant-selector fieldset { border: 0; margin: 0; padding: 0; }
.cspm-variant-selector__intro { color: var(--cspm-muted); font-size: 16px; margin: 0 0 18px; max-width: 760px; }
.cspm-variant-options { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cspm-variant-option { min-width: 0; position: relative; }
.cspm-variant-option > input { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.cspm-variant-card { background: white; border: 2px solid var(--cspm-line); border-radius: var(--cspm-radius); cursor: pointer; display: flex; flex-direction: column; gap: 8px; height: 100%; min-height: 126px; padding: 17px 18px; transition: background-color .15s, border-color .15s, transform .15s; }
.cspm-variant-card:hover { border-color: #8ea4b0; transform: translateY(-1px); }
.cspm-variant-card__header { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.cspm-variant-card__header strong { color: var(--cspm-navy); font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.cspm-variant-card__power { background: #fff2e9; border-radius: 999px; color: var(--cspm-brand-dark); flex: 0 0 auto; font-size: 15px; font-weight: 800; padding: 5px 9px; }
.cspm-variant-card small { color: var(--cspm-muted); display: block; font-size: 15px; line-height: 1.45; }
.cspm-variant-card__evidence { overflow-wrap: anywhere; }
.cspm-variant-option > input:checked + .cspm-variant-card { background: #fff7f1; border-color: var(--cspm-brand); box-shadow: 0 0 0 1px var(--cspm-brand); }
.cspm-variant-option > input:focus-visible + .cspm-variant-card { outline: 3px solid #087eaa; outline-offset: 3px; }
.cspm-variant-selector .cspm-form-actions { flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.cspm-variant-selector .cspm-button[disabled] { cursor: not-allowed; }

.cspm-upload { border: 2px dashed #9aaab4; border-radius: var(--cspm-radius); min-height: 230px; padding: 30px; position: relative; text-align: center; transition: background-color .15s, border-color .15s; }
.cspm-upload.is-dragging { background: var(--cspm-blue-soft); border-color: #087eaa; }
.cspm-upload.is-invalid { background: var(--cspm-red-soft); border-color: var(--cspm-red); }
.cspm-upload input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.cspm-upload label { align-items: center; cursor: pointer; display: flex; flex-direction: column; gap: 7px; justify-content: center; min-height: 160px; }
.cspm-upload input:focus-visible + label { border-radius: 10px; outline: 3px solid #087eaa; outline-offset: 4px; }
.cspm-upload label > svg { color: var(--cspm-brand); height: 42px; width: 42px; }
.cspm-upload label > strong { color: var(--cspm-navy); font-size: 18px; }
.cspm-upload label > span:not(.cspm-button) { color: var(--cspm-muted); font-size: 16px; }
.cspm-upload__formats { color: var(--cspm-muted); font-size: 15px; margin: 4px 0 0; }
.cspm-file-list { display: grid; gap: 9px; margin-top: 14px; }
.cspm-file { align-items: center; background: var(--cspm-soft); border: 1px solid var(--cspm-line); border-radius: 10px; display: flex; gap: 12px; padding: 10px 12px; }
.cspm-file__thumb { align-items: center; background: #e4eaed; border-radius: 7px; display: flex; flex: 0 0 48px; height: 48px; justify-content: center; object-fit: cover; overflow: hidden; width: 48px; }
.cspm-file__thumb img { height: 100%; object-fit: cover; width: 100%; }
.cspm-file__info { min-width: 0; text-align: left; }
.cspm-file__info strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cspm-file__info small { color: var(--cspm-muted); font-size: 15px; }
.cspm-file__remove { background: transparent; border: 0; border-radius: 6px; color: var(--cspm-red); cursor: pointer; font-size: 15px; font-weight: 750; margin-left: auto; min-height: 44px; padding: 8px 10px; }
.cspm-photo-tips { background: var(--cspm-blue-soft); border-radius: 10px; margin-top: 18px; padding: 15px 18px; }
.cspm-photo-tips ul { display: grid; gap: 4px; margin: 7px 0 0; padding-left: 20px; }
.cspm-photo-tips li { font-size: 16px; }
.cspm-privacy-note { border-top: 1px solid var(--cspm-line); color: var(--cspm-muted); font-size: 16px; margin-top: 20px; padding-top: 16px; }
.cspm-check { align-items: flex-start; color: var(--cspm-ink); cursor: pointer; display: flex; gap: 10px; }
.cspm-check input { flex: 0 0 20px; height: 20px; margin-top: 2px; width: 20px; }

.cspm-form-intro { color: var(--cspm-muted); }
.cspm-field-grid { display: grid; gap: 18px; margin-bottom: 22px; }
.cspm-field-grid--identity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cspm-field-grid--technical { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cspm-field-grid--optional { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 18px; }
.cspm-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cspm-field > span:first-child { color: var(--cspm-navy); font-size: 16px; font-weight: 750; }
.cspm-field > span small { color: var(--cspm-muted); font-size: 15px; font-weight: 500; }
.cspm-field > span b { color: var(--cspm-red); }
.cspm-evidence-crop { align-items: flex-start; display: inline-flex; flex-direction: column; gap: 4px; margin-top: 3px; }
.cspm-evidence-crop canvas { background: #fff; border: 1px solid var(--cspm-line); border-radius: 6px; height: 72px; object-fit: cover; width: 144px; }
.cspm-evidence-crop small { color: var(--cspm-muted); font-size: 15px; font-weight: 650; }
.cspm-field input,
.cspm-field select,
.cspm-field textarea { background: white; border: 1px solid #aab6bd; border-radius: 8px; color: var(--cspm-ink); font: inherit; min-height: 46px; padding: 9px 11px; width: 100%; }
.cspm-field input:hover { border-color: #70828e; }
.cspm-field.is-low-confidence input { background: var(--cspm-amber-soft); border-color: var(--cspm-amber); }
.cspm-field.is-invalid input { background: var(--cspm-red-soft); border-color: var(--cspm-red); }
.cspm-field > small { color: var(--cspm-muted); font-size: 15px; min-height: 1.1em; }
.cspm-field.is-low-confidence > small { color: var(--cspm-amber); font-weight: 700; }
.cspm-input-unit { align-items: stretch; display: flex; position: relative; }
.cspm-input-unit input { border-radius: 8px 0 0 8px; min-width: 0; }
.cspm-input-unit em { align-items: center; background: #eef1f3; border: 1px solid #aab6bd; border-left: 0; border-radius: 0 8px 8px 0; display: flex; font-size: 16px; font-style: normal; font-weight: 700; padding-inline: 10px; }

.cspm-inline-details { border: 1px solid var(--cspm-line); border-radius: 10px; margin-block: 20px; }
.cspm-inline-details summary { align-items: center; color: var(--cspm-navy); cursor: pointer; display: flex; font-weight: 800; justify-content: space-between; min-height: 50px; padding: 12px 15px; }
.cspm-inline-details summary span { color: var(--cspm-muted); font-size: 15px; font-weight: 500; }
.cspm-inline-details[open] { padding: 0 15px 4px; }
.cspm-inline-details[open] summary { margin-inline: -15px; padding-inline: 15px; }

.cspm-button { align-items: center; border: 1px solid transparent; border-radius: 8px; cursor: pointer; display: inline-flex; font: inherit; font-size: 16px; font-weight: 800; gap: 8px; justify-content: center; line-height: 1.2; min-height: 48px; padding: 12px 18px; text-align: center; text-decoration: none; transition: background-color .15s, border-color .15s, color .15s, transform .15s; }
.cspm-button:hover { transform: translateY(-1px); }
.cspm-button svg { height: 20px; width: 20px; }
.cspm-button--primary { background: var(--cspm-brand); color: white !important; }
.cspm-button--primary:hover { background: var(--cspm-brand-dark); }
.cspm-button--secondary { background: white; border-color: var(--cspm-brand); color: var(--cspm-brand-dark) !important; }
.cspm-button--secondary:hover { background: #fff6f0; }
.cspm-button--ghost { background: transparent; border-color: var(--cspm-line); color: var(--cspm-navy) !important; }
.cspm-button--light { background: white; color: var(--cspm-navy) !important; }
.cspm-button[disabled],
.cspm-button[aria-disabled="true"] { cursor: wait; opacity: .58; transform: none; }
.cspm-form-actions { display: flex; justify-content: flex-end; margin-top: 24px; }
.cspm-form-actions--split { justify-content: space-between; }

.cspm-alert { border: 1px solid; border-radius: 10px; margin: 24px clamp(24px, 5vw, 42px) 0; padding: 14px 17px; }
.cspm-alert ul { margin: 7px 0 0; padding-left: 20px; }
.cspm-alert--error { background: var(--cspm-red-soft); border-color: #e1a0a8; color: #7e1522; }
.cspm-alert--warning { background: var(--cspm-amber-soft); border-color: #e7c370; color: #674000; margin: 0 0 20px; }
.cspm-alert p:last-child { margin-bottom: 0; }
.cspm-status { border-radius: 8px; font-size: 16px; margin-top: 15px; padding: 12px 14px; }
.cspm-status.is-loading { background: var(--cspm-blue-soft); color: var(--cspm-navy); }
.cspm-status.is-success { background: var(--cspm-green-soft); color: var(--cspm-green); }
.cspm-status.is-warning { background: var(--cspm-amber-soft); color: var(--cspm-amber); }
.cspm-status.is-error { background: var(--cspm-red-soft); color: var(--cspm-red); }
.cspm-status p { margin: 6px 0; }
.cspm-status .cspm-advanced-checks { margin: 5px 0 10px; padding-left: 20px; }
.cspm-status > small { display: block; margin-top: 10px; }
.cspm-missing-note { background: var(--cspm-amber-soft); border-left: 4px solid var(--cspm-amber); border-radius: 6px; margin-block: 18px; padding: 14px 16px; }
.cspm-missing-note p { margin: 4px 0 0; }
.cspm-power-confirmation { background: var(--cspm-amber-soft); border: 1px solid #e7c370; border-radius: 8px; margin-block: 18px; padding: 14px 16px; }
.cspm-power-confirmation__error { color: var(--cspm-red); font-weight: 750; margin: 0; }
.cspm-turnstile { background: var(--cspm-soft); border: 1px solid var(--cspm-line); border-radius: 10px; margin-top: 16px; padding: 13px; }
.cspm-turnstile > p { color: var(--cspm-muted); font-size: 15px; font-weight: 700; margin: 0 0 8px; }
.cspm-turnstile > small { font-size: 15px; }
.cspm-turnstile [data-turnstile-widget] { min-height: 1px; }

.cspm-result-guidance { background: var(--cspm-blue-soft); border-left: 4px solid #267696; border-radius: 6px; margin-bottom: 20px; padding: 14px 16px; }
.cspm-result-guidance:empty { display: none; }
.cspm-results { display: grid; gap: 22px; }
.cspm-result { border: 1px solid var(--cspm-line); border-radius: var(--cspm-radius); overflow: hidden; }
.cspm-result--primary { border-color: #df8a4e; box-shadow: 0 12px 32px rgba(89,49,17,.1); }
.cspm-result__flag { background: var(--cspm-navy); color: white; font-size: 14px; font-weight: 800; letter-spacing: .045em; padding: 8px 18px; text-transform: uppercase; }
.cspm-result__main { align-items: start; display: grid; gap: 24px; grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr); padding: clamp(18px, 4vw, 28px); }
.cspm-result__image { align-items: center; align-self: start; aspect-ratio: 4 / 3; background: var(--cspm-soft); border-radius: 10px; display: flex; justify-content: center; min-height: 180px; overflow: hidden; width: 100%; }
.cspm-result__image img { max-height: 220px; object-fit: contain; width: 100%; }
.cspm-result__main--no-image { grid-template-columns: minmax(0, 1fr); }
.cspm-result__topline { align-items: center; display: flex; flex-wrap: wrap; gap: 9px; justify-content: space-between; }
.cspm-result__score { color: var(--cspm-muted); font-size: 15px; font-weight: 700; }
.cspm-result__price { color: var(--cspm-navy); font-size: 18px; font-weight: 850; }
.cspm-badge { border-radius: 999px; display: inline-flex; font-size: 14px; font-weight: 850; line-height: 1.25; padding: 7px 10px; }
.cspm-badge--green { background: var(--cspm-green-soft); color: var(--cspm-green); }
.cspm-badge--amber { background: var(--cspm-amber-soft); color: var(--cspm-amber); }
.cspm-badge--red { background: #edf3f6; color: #27475a; }
.cspm-result__summary { color: var(--cspm-muted); }
.cspm-result__reasons { margin-block: 12px; padding-left: 22px; }
.cspm-result__checks { background: var(--cspm-blue-soft); border-left: 4px solid #267696; border-radius: 8px; margin-block: 16px; padding: 14px 16px; }
.cspm-result__checks > strong { color: var(--cspm-navy); display: block; margin-bottom: 7px; }
.cspm-result__check-list { margin: 0; padding-left: 20px; }
.cspm-result__check-list li:last-child { margin-bottom: 0; }
.cspm-result__actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.cspm-stock-note { color: var(--cspm-muted); font-size: 15px; width: 100%; }
.cspm-stock-note.is-error { color: var(--cspm-red); }

.cspm-comparison { border-top: 1px solid var(--cspm-line); overflow-x: auto; }
.cspm-comparison table { border-collapse: collapse; font-size: 15px; min-width: 600px; width: 100%; }
.cspm-comparison__hint { color: var(--cspm-muted); display: none; font-size: 15px; margin: 0; padding: 12px 18px 0; }
.cspm-comparison caption { color: var(--cspm-navy); font-weight: 800; padding: 15px 18px 8px; text-align: left; }
.cspm-comparison th,
.cspm-comparison td { border-top: 1px solid #e8edef; padding: 10px 18px; text-align: left; }
.cspm-comparison thead th { background: var(--cspm-soft); color: var(--cspm-navy); }
.cspm-comparison tbody th { color: var(--cspm-navy); white-space: nowrap; }
.cspm-delta--good { color: var(--cspm-green); font-weight: 750; }
.cspm-delta--warn { color: var(--cspm-amber); font-weight: 750; }
.cspm-delta--risk { color: #704100; font-weight: 800; }
.cspm-result__details { border-top: 1px solid var(--cspm-line); }
.cspm-result__details > summary { color: var(--cspm-navy); cursor: pointer; font-size: 16px; font-weight: 800; min-height: 52px; padding: 15px 20px; }
.cspm-result__details > .cspm-result__reasons,
.cspm-result__details > .cspm-result__checks { margin-inline: 20px; }
.cspm-empty-stock { background: var(--cspm-amber-soft); border-radius: var(--cspm-radius); padding: 24px; text-align: center; }

.cspm-advanced-intro { color: var(--cspm-muted); margin: 28px 0 -12px; }
.cspm-advanced { background: var(--cspm-soft); border: 1px solid var(--cspm-line); border-radius: var(--cspm-radius); margin-top: 28px; }
.cspm-advanced summary { align-items: center; cursor: pointer; display: flex; gap: 16px; justify-content: space-between; min-height: 66px; padding: 14px 18px; }
.cspm-advanced summary > span:first-child { display: flex; flex-direction: column; }
.cspm-advanced summary small { color: var(--cspm-muted); font-size: 15px; font-weight: 500; }
.cspm-advanced form { border-top: 1px solid var(--cspm-line); padding: 20px; }
.cspm-tag { background: #e3e8eb; border-radius: 999px; color: var(--cspm-muted); font-size: 14px; font-weight: 800; padding: 5px 9px; }
.cspm-equipment-upload { background: white; border: 1px solid var(--cspm-line); border-radius: 10px; margin-bottom: 18px; padding: 15px; }
.cspm-equipment-upload input[type="file"] { height: auto; min-height: 46px; padding: 8px; }
.cspm-advanced__privacy { color: var(--cspm-muted); font-size: 15px; }
.cspm-restart { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 24px; }

.cspm-seo-section { margin-block: clamp(55px, 8vw, 92px); }
.cspm-section-heading { margin: 0 auto 34px; max-width: 800px; text-align: center; }
.cspm-section-heading > p:last-child { color: var(--cspm-muted); }
.cspm-explainer-grid,
.cspm-criteria-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.cspm-explainer-grid article,
.cspm-criteria-grid article { border: 1px solid var(--cspm-line); border-radius: var(--cspm-radius); padding: 23px; }
.cspm-explainer-grid article > span { color: var(--cspm-brand); font-size: 15px; font-weight: 900; }
.cspm-explainer-grid p,
.cspm-criteria-grid p { color: var(--cspm-muted); margin-bottom: 0; }
.cspm-criteria-grid { grid-template-columns: repeat(2, 1fr); }
.cspm-seo-section--muted { background: var(--cspm-soft); border-radius: 22px; margin-inline: -22px; padding: clamp(32px, 6vw, 60px) 22px; }
.cspm-method-note { border-left: 4px solid var(--cspm-brand); margin: 26px 0 0; padding: 12px 16px; }
.cspm-faq__list { margin: auto; max-width: 850px; }
.cspm-faq details { border-bottom: 1px solid var(--cspm-line); }
.cspm-faq summary { color: var(--cspm-navy); cursor: pointer; font-size: 17px; font-weight: 800; min-height: 58px; padding: 17px 42px 17px 4px; position: relative; }
.cspm-faq summary::after { content: "+"; font-size: 24px; position: absolute; right: 8px; top: 10px; }
.cspm-faq details[open] summary::after { content: "−"; }
.cspm-faq details p { color: var(--cspm-muted); padding: 0 42px 18px 4px; }
.cspm-expert-cta { align-items: center; background: linear-gradient(135deg, var(--cspm-navy), #1d526d); border-radius: 22px; color: white; display: flex; gap: 30px; justify-content: space-between; padding: clamp(28px, 6vw, 52px); }
.cspm-expert-cta h2,
.cspm-expert-cta .cspm-eyebrow { color: white; }
.cspm-expert-cta p:last-child { margin-bottom: 0; max-width: 760px; }
.cspm-expert-cta .cspm-button { flex: 0 0 auto; }

@media (max-width: 820px) {
	.cspm-hero { grid-template-columns: 1fr; }
	.cspm-tool__heading,
	.cspm-step-heading,
	.cspm-expert-cta { align-items: stretch; flex-direction: column; }
	.cspm-ai-label { flex-basis: auto; }
	.cspm-step-heading > p { flex: 0 1 auto; margin-bottom: 0; }
	.cspm-step-heading--results > p { text-align: left; }
	.cspm-field-grid--technical,
	.cspm-field-grid--optional { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cspm-explainer-grid { grid-template-columns: 1fr; }
	.cspm-result__main { grid-template-columns: minmax(120px, .3fr) minmax(0, 1fr); }
	.cspm-expert-cta .cspm-button { align-self: flex-start; }
}

/* The shortcode may sit in a narrow Genesis/Elementor content column even on
 * a wide desktop viewport. Query the real component width as well as the
 * viewport so the hero and field groups cannot be squeezed unnaturally. */
@container (max-width: 820px) {
	.cspm-hero { grid-template-columns: 1fr; }
	.cspm-hero__note { max-width: 560px; }
	.cspm-field-grid--technical,
	.cspm-field-grid--optional { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cspm-explainer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 580px) {
	.cspm { padding-inline: 14px; }
	.cspm-hero { border-radius: 16px; padding: 25px 20px; }
	.cspm-trust-list { align-items: flex-start; flex-direction: column; }
	.cspm-tool { border-radius: 16px; }
	.cspm-tool__heading,
	.cspm-step { padding: 22px 17px; }
	.cspm-progress { padding: 18px 17px 0; }
	.cspm-progress strong { clip: rect(0,0,0,0); height: 1px; overflow: hidden; position: absolute; width: 1px; }
	.cspm-mode-grid,
	.cspm-variant-options,
	.cspm-field-grid--identity,
	.cspm-field-grid--technical,
	.cspm-field-grid--optional,
	.cspm-criteria-grid { grid-template-columns: 1fr; }
	.cspm-upload { min-height: 205px; padding: 22px 13px; }
	.cspm-form-actions,
	.cspm-form-actions--split { align-items: stretch; flex-direction: column-reverse; gap: 10px; }
	.cspm-form-actions .cspm-button { width: 100%; }
	.cspm-result__main { grid-template-columns: 1fr; }
	.cspm-result__image { min-height: 150px; }
	.cspm-comparison__hint { display: block; }
	.cspm-result__actions { align-items: stretch; flex-direction: column; }
	.cspm-result__actions .cspm-button { width: 100%; }
	.cspm-seo-section--muted { margin-inline: -14px; padding-inline: 14px; }
	.cspm-expert-cta .cspm-button { align-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
	.cspm *,
	.cspm *::before,
	.cspm *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; }
}

@media (forced-colors: active) {
	.cspm-button,
	.cspm-mode-card,
	.cspm-variant-card,
	.cspm-upload,
	.cspm-result,
	.cspm-alert { border: 2px solid CanvasText; }
	.cspm-mode-grid input:checked + .cspm-mode-card { outline: 3px solid Highlight; }
	.cspm-variant-option > input:checked + .cspm-variant-card { outline: 3px solid Highlight; }
}
