/**
 * Ploetner Cloud Blocks — presentation for the plugin's blocks and patterns.
 *
 * Depends only on the design-system tokens (colors, spacing, fonts) that
 * theme.json exposes, so the plugin styles its own output on any theme that
 * defines them (the ploetner-theme family theme with the cloud style variation).
 */

/* Nav CTA (header pattern): restrained accent outline */
.ploetner-cloud-nav-cta .wp-block-button__link {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny) !important;
	padding: 0.4rem 1rem !important;
	border: 1px solid var(--wp--preset--color--accent);
	background: transparent !important;
	color: var(--wp--preset--color--accent) !important;
	transition: background 0.2s ease, color 0.2s ease;
}

.ploetner-cloud-nav-cta .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--base) !important;
}

/* Mobile overlay menu (header pattern) */
.ploetner-cloud-header .wp-block-navigation__responsive-container-open,
.ploetner-cloud-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--accent);
}

/* Footer links (footer pattern) */
.ploetner-cloud-footer a {
	font-family: var(--wp--preset--font-family--mono);
	transition: color 0.2s ease;
}

.ploetner-cloud-footer a:hover {
	color: var(--wp--preset--color--accent) !important;
}

/* Check widget panel */
.ploetner-check {
	border-radius: 4px;
}

.ploetner-check-form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	max-width: 30rem;
	margin: 1.5rem auto 0;
}

/* Address field: a fixed "https://" prefix, the visitor types only the host. */
.ploetner-check-field {
	display: flex;
	flex: 1 1 16rem;
	align-items: stretch;
	min-width: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 2px;
	cursor: text;
	transition: border-color 0.2s ease;
}

.ploetner-check-field:focus-within {
	border-color: var(--wp--preset--color--accent);
}

.ploetner-check-prefix {
	display: flex;
	align-items: center;
	padding-left: 1rem;
	color: var(--wp--preset--color--dim);
	user-select: none;
}

.ploetner-check-input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.7rem 1rem 0.7rem 0.1rem;
	font: inherit;
	color: var(--wp--preset--color--contrast);
	background: transparent;
	border: 0;
	outline: none;
}

.ploetner-check-input::placeholder {
	color: var(--wp--preset--color--dim);
	opacity: 0.6;
}

.ploetner-check-submit {
	padding: 0.7rem 1.4rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 2px;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.ploetner-check-submit:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

/* Accent (CTA) button hover, if a core button uses the accent background */
.wp-block-button__link.has-accent-background-color {
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.wp-block-button__link.has-accent-background-color:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

/* ------------------------------------------------------------------ */
/* Check widget: results                                               */
/* ------------------------------------------------------------------ */

/* Verdict colors: meaning, never color alone (always icon plus label). */
.ploetner-check {
	--ploetner-pass: #1DBE76;
	--ploetner-warn: #E0A73B;
	--ploetner-fail: #F0575C;
}

.ploetner-check-results {
	max-width: 40rem;
	margin: 2rem auto 0;
	text-align: left;
}

.ploetner-check-busy,
.ploetner-check-error {
	margin: 0;
	text-align: center;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ploetner-check-error {
	color: var(--ploetner-fail);
}

.ploetner-check-head {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 1.25rem;
}

.ploetner-check-score {
	--score: 0;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	align-content: center;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 50%;
	background:
		radial-gradient(closest-side, var(--wp--preset--color--surface) 82%, transparent 83%),
		conic-gradient(var(--wp--preset--color--accent) calc(var(--score) * 1%), var(--wp--preset--color--border) 0);
}

.ploetner-check-score-value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}

.ploetner-check-score-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--dim);
}

.ploetner-check-meta {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.ploetner-check-host {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--contrast);
	word-break: break-all;
}

.ploetner-check-summary {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ploetner-check-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--border);
}

.ploetner-check-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-check-text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.ploetner-check-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
}

.ploetner-check-detail {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ploetner-check-badge {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.2rem 0.6rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.ploetner-check-row.is-pass .ploetner-check-badge { color: var(--ploetner-pass); }
.ploetner-check-row.is-warn .ploetner-check-badge { color: var(--ploetner-warn); }
.ploetner-check-row.is-fail .ploetner-check-badge { color: var(--ploetner-fail); }

.ploetner-check-note {
	max-width: 30rem;
	margin: 1.25rem auto 0;
	text-align: center;
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

.ploetner-check-submit:disabled {
	opacity: 0.6;
	cursor: progress;
	transform: none;
}

/* ------------------------------------------------------------------ */
/* Page sections (front page, offer page)                              */
/* ------------------------------------------------------------------ */

.ploetner-cloud-kicker {
	margin-bottom: 0;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.ploetner-cloud-probes {
	letter-spacing: 0.04em;
}

.ploetner-cloud-card {
	height: 100%;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	transition: border-color 0.2s ease, transform 0.2s ease;
}

.ploetner-cloud-card:hover {
	border-color: var(--wp--preset--color--border-hover);
}

.ploetner-cloud-card > * {
	margin-top: 0;
}

.ploetner-cloud-step {
	letter-spacing: 0.06em;
}

.ploetner-cloud-price.is-featured {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent);
}

.ploetner-cloud-checklist {
	list-style: none;
	padding-left: 0;
}

.ploetner-cloud-checklist li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.4rem;
}

.ploetner-cloud-checklist li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--mono);
}

.ploetner-cloud-steps {
	counter-reset: ploetner-step;
	list-style: none;
	padding-left: 0;
}

.ploetner-cloud-steps li {
	counter-increment: ploetner-step;
	position: relative;
	padding-left: 2.5rem;
	margin-bottom: 0.8rem;
}

.ploetner-cloud-steps li::before {
	content: counter(ploetner-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	line-height: inherit;
}

.ploetner-cloud-stat {
	margin-bottom: 0.2rem;
	font-weight: 600;
}

.ploetner-cloud-stats .wp-block-column {
	padding-left: var(--wp--preset--spacing--30);
	border-left: 2px solid var(--wp--preset--color--accent);
}

.ploetner-cloud-faq {
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-cloud-faq summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.ploetner-cloud-faq summary:hover {
	color: var(--wp--preset--color--accent);
}

.ploetner-cloud-faq p {
	margin-top: var(--wp--preset--spacing--20);
}

.ploetner-cloud-contact a:not(.wp-block-button__link) {
	color: inherit;
}

.ploetner-cloud-contact-button .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

/* Scope cards: link to the service page, pinned to the bottom of the card. */
.ploetner-cloud-card-link {
	margin-top: var(--wp--preset--spacing--30) !important;
	letter-spacing: 0.03em;
}

.ploetner-cloud-card-link a {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.ploetner-cloud-card-link a:hover {
	text-decoration: underline;
}

/* Service page: free-check hint as one bordered line with a button. */
.ploetner-cloud-service-check .ploetner-cloud-card {
	height: auto;
	border-color: var(--wp--preset--color--accent);
	padding: var(--wp--preset--spacing--40);
}

.ploetner-cloud-service-check-text {
	flex: 1 1 24rem;
	margin: 0;
}

/* ------------------------------------------------------------------ */
/* Inquiry form                                                        */
/* ------------------------------------------------------------------ */

.ploetner-inquiry {
	scroll-margin-top: 6rem;
}

.ploetner-inquiry-form {
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.ploetner-inquiry-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.ploetner-inquiry-row-3 {
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.ploetner-inquiry-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0;
}

.ploetner-inquiry-field label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ploetner-inquiry-required {
	color: var(--wp--preset--color--accent);
}

.ploetner-inquiry-field input,
.ploetner-inquiry-field select,
.ploetner-inquiry-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.7rem 0.9rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 2px;
	transition: border-color 0.2s ease;
}

.ploetner-inquiry-field textarea {
	min-height: 10rem;
	resize: vertical;
}

.ploetner-inquiry-field input:focus,
.ploetner-inquiry-field select:focus,
.ploetner-inquiry-field textarea:focus {
	border-color: var(--wp--preset--color--accent);
	outline: 2px solid transparent;
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent);
}

.ploetner-inquiry-field input::placeholder {
	color: var(--wp--preset--color--dim);
}

.ploetner-inquiry-hint {
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

.ploetner-inquiry-field.has-error input,
.ploetner-inquiry-field.has-error textarea {
	border-color: var(--ploetner-fail, #f0575c);
}

.ploetner-inquiry-error,
.ploetner-inquiry-alert {
	font-size: var(--wp--preset--font-size--small);
	color: var(--ploetner-fail, #f0575c);
}

.ploetner-inquiry-alert {
	margin: 0;
	padding: 0.8rem 1rem;
	border: 1px solid var(--ploetner-fail, #f0575c);
	border-radius: 2px;
}

.ploetner-inquiry-error::before,
.ploetner-inquiry-alert::before {
	content: "\2715\00a0";
}

/* Honeypot: off screen, still in the form for bots. */
.ploetner-inquiry-trap {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ploetner-inquiry-note {
	margin: 0;
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

.ploetner-inquiry-note a {
	color: inherit;
}

.ploetner-inquiry-actions {
	margin: 0;
}

.ploetner-inquiry-submit {
	padding: 0.8rem 1.6rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 2px;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.ploetner-inquiry-submit:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

.ploetner-inquiry-sent {
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--ploetner-pass, #1dbe76);
	border-radius: 6px;
}

.ploetner-inquiry-sent p {
	margin: 0;
}

.ploetner-inquiry-sent-title {
	margin-bottom: var(--wp--preset--spacing--20) !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.ploetner-inquiry-sent-title::before {
	content: "\2713\00a0";
	color: var(--ploetner-pass, #1dbe76);
}

/* Header and footer: content aligned to the wide width of the page sections,
   the sticky background stays full width. Works for saved template parts too. */
.ploetner-cloud-header,
.ploetner-cloud-footer {
	padding-left: max(var(--wp--style--root--padding-left, var(--wp--preset--spacing--40)), calc((100% - var(--wp--style--global--wide-size, 1200px)) / 2)) !important;
	padding-right: max(var(--wp--style--root--padding-right, var(--wp--preset--spacing--40)), calc((100% - var(--wp--style--global--wide-size, 1200px)) / 2)) !important;
}

/* Sticky header: the group sits inside the template-part wrapper, which is
   only as tall as the header, so the wrapper has to be the sticky element. */
.wp-site-blocks > .wp-block-template-part:has(> .ploetner-cloud-header) {
	position: sticky;
	top: var(--wp-admin--admin-bar--position-offset, 0px);
	z-index: 50;
}

/* Language switcher (header): minimal globe, list opens on click.
   Same classes as on ploetner.dev. */
.ploetner-lang {
	position: relative;
	display: inline-block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
}

.ploetner-lang__toggle {
	display: flex;
	align-items: center;
	padding: 0.25rem;
	list-style: none;
	cursor: pointer;
	color: var(--wp--preset--color--muted);
	border-radius: 2px;
	transition: color 0.2s ease;
}

.ploetner-lang__toggle::-webkit-details-marker {
	display: none;
}

.ploetner-lang__toggle::marker {
	content: "";
}

.ploetner-lang__toggle:hover,
.ploetner-lang[open] .ploetner-lang__toggle {
	color: var(--wp--preset--color--accent);
}

.ploetner-lang__toggle:focus-visible {
	outline: 1px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.ploetner-lang__list {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	z-index: 100;
	min-width: 10rem;
	margin: 0;
	padding: 0.35rem 0;
	list-style: none;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 3px;
}

.ploetner-lang__list a {
	display: flex;
	gap: 0.75rem;
	padding: 0.4rem 0.9rem;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, background 0.2s ease;
}

.ploetner-lang__list a:hover,
.ploetner-lang__list a:focus-visible {
	color: var(--wp--preset--color--accent);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 6%, transparent);
}

.ploetner-lang__list a[aria-current="true"] {
	color: var(--wp--preset--color--contrast);
}

.ploetner-lang__code {
	color: var(--wp--preset--color--accent);
}

/* ------------------------------------------------------------------ */
/* Illustrations, process graphic, report preview, portrait            */
/* ------------------------------------------------------------------ */

/* SVG classes: l accent stroke, m muted stroke, f surface fill, a accent fill,
   s soft accent fill, t mono label. Colors follow the active palette. */
.ploetner-cloud-illustration svg {
	display: block;
	width: 100%;
	height: auto;
}

.ploetner-cloud-illustration .l { stroke: var(--wp--preset--color--accent); }
.ploetner-cloud-illustration .m { stroke: var(--wp--preset--color--border-hover, var(--wp--preset--color--border)); }
.ploetner-cloud-illustration .f { fill: var(--wp--preset--color--surface); }
.ploetner-cloud-illustration .a { fill: var(--wp--preset--color--accent); }
.ploetner-cloud-illustration .s { fill: var(--wp--preset--color--accent); opacity: 0.35; }
.ploetner-cloud-illustration .t {
	fill: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 13px;
	letter-spacing: 0.04em;
}

.ploetner-cloud-illustration.is-scene {
	max-width: 22rem;
	margin-inline: auto;
}

.ploetner-cloud-illustration.is-icon {
	width: 2.5rem;
	height: 2.5rem;
}

.ploetner-cloud-card > .ploetner-cloud-illustration.is-icon {
	margin-bottom: var(--wp--preset--spacing--20);
}

@media (max-width: 781px) {
	.ploetner-cloud-hero-columns .ploetner-cloud-illustration.is-scene {
		max-width: 14rem;
		margin-inline: 0;
	}
}

/* Process graphic: four steps with connectors. */
.ploetner-flow {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
	margin: 0 auto;
	padding: 0;
	list-style: none;
	counter-reset: ploetner-flow;
}

.ploetner-flow__step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	counter-increment: ploetner-flow;
}

.ploetner-flow__step:first-child {
	border-color: var(--wp--preset--color--accent);
}

.ploetner-flow__step::before {
	content: counter(ploetner-flow, decimal-leading-zero);
	position: absolute;
	top: var(--wp--preset--spacing--40);
	right: var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

/* Connector: a short accent line with an arrow head between the cards. */
.ploetner-flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(-1 * var(--wp--preset--spacing--40));
	width: var(--wp--preset--spacing--40);
	height: 2px;
	background: linear-gradient(90deg, var(--wp--preset--color--border-hover, var(--wp--preset--color--border)), var(--wp--preset--color--accent));
}

.ploetner-flow__title {
	margin-top: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--contrast);
}

.ploetner-flow__text {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

@media (max-width: 900px) {
	.ploetner-flow {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ploetner-flow__step:nth-child(2)::after {
		display: none;
	}
}

@media (max-width: 560px) {
	.ploetner-flow {
		grid-template-columns: 1fr;
	}

	.ploetner-flow__step:not(:last-child)::after {
		display: block;
		top: auto;
		right: auto;
		bottom: calc(-1 * var(--wp--preset--spacing--40));
		left: 2.6rem;
		width: 2px;
		height: var(--wp--preset--spacing--40);
		background: linear-gradient(180deg, var(--wp--preset--color--border-hover, var(--wp--preset--color--border)), var(--wp--preset--color--accent));
	}
}

/* Report preview: a document window with a findings table. */
.ploetner-report {
	margin: 0 auto;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	box-shadow: 0 24px 48px -32px rgba(0, 0, 0, 0.55);
}

.ploetner-report__bar {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.7rem 1rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-report__bar span {
	width: 0.6rem;
	height: 0.6rem;
	border-radius: 50%;
	background: var(--wp--preset--color--border-hover, var(--wp--preset--color--border));
}

.ploetner-report__bar em {
	margin-left: 0.6rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	font-style: normal;
	color: var(--wp--preset--color--dim);
}

.ploetner-report table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
}

.ploetner-report th {
	padding: 0.8rem 1rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-align: left;
	text-transform: uppercase;
	color: var(--wp--preset--color--dim);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-report td {
	padding: 0.9rem 1rem;
	vertical-align: top;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-report tr:last-child td {
	border-bottom: 0;
}

.ploetner-report th:nth-child(1) { width: 3rem; }
.ploetner-report th:nth-child(3) { width: 7rem; }
.ploetner-report th:nth-child(4) { width: 5rem; }

.ploetner-report__num,
.ploetner-report__effort {
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--dim);
}

.ploetner-report__finding {
	display: block;
	color: var(--wp--preset--color--contrast);
}

.ploetner-report__area {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

.ploetner-report__quick {
	margin-left: 0.6rem;
	padding: 0.05rem 0.45rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--accent);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 2px;
}

.ploetner-report__risk {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	white-space: nowrap;
}

.ploetner-report__risk::before {
	content: "\25CF\00a0";
}

.ploetner-report__risk.is-high { color: var(--ploetner-fail, #f0575c); }
.ploetner-report__risk.is-medium { color: var(--ploetner-warn, #e0a73b); }
.ploetner-report__risk.is-low { color: var(--wp--preset--color--muted); }

.ploetner-report figcaption {
	margin: 0;
	padding: 0.8rem 1rem;
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
	border-top: 1px solid var(--wp--preset--color--border);
}

@media (max-width: 560px) {
	.ploetner-report__num {
		display: none;
	}

	.ploetner-report th:first-child {
		display: none;
	}

	.ploetner-report__quick {
		display: inline-block;
		margin: 0.35rem 0 0;
	}
}

/* Portrait or monogram next to the introduction. */
.ploetner-cloud-portrait img {
	width: 100%;
	max-width: 18rem;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--border);
}

.ploetner-cloud-monogram {
	display: grid;
	place-items: center;
	width: min(100%, 14rem);
	aspect-ratio: 1;
	margin: 0 auto;
	font-size: clamp(3rem, 8vw, 5rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 50%;
}

/* ------------------------------------------------------------------ */
/* Legal page: same layout as on ploetner.dev                          */
/* ------------------------------------------------------------------ */

/* Numbered labels, provider details as a key/value card, privacy topics as
   rows with the title on the left and the text on the right. */
.ploetner-legal {
	--ploetner-legal-key: 15rem;
}

.ploetner-legal > .ploetner-cloud-kicker {
	margin-top: var(--wp--preset--spacing--70);
	margin-bottom: 0;
}

.ploetner-legal > .ploetner-cloud-kicker:first-child {
	margin-top: var(--wp--preset--spacing--40);
}

.ploetner-legal > .wp-block-heading {
	margin-top: 0.5rem;
	margin-bottom: var(--wp--preset--spacing--40);
}

.ploetner-legal-facts {
	padding: 0.25rem var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
}

.ploetner-legal-row,
.ploetner-legal-section {
	display: grid;
	grid-template-columns: var(--ploetner-legal-key) minmax(0, 1fr);
	gap: 0.35rem 2rem;
	align-items: baseline;
	margin: 0 !important;
}

.ploetner-legal-row {
	padding: 0.9rem 0;
}

.ploetner-legal-row + .ploetner-legal-row {
	border-top: 1px solid var(--wp--preset--color--border);
}

.ploetner-legal-row > p,
.ploetner-legal-text > p,
.ploetner-legal-title {
	margin: 0;
}

.ploetner-legal-key {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--wp--preset--color--dim);
}

.ploetner-legal-value {
	color: var(--wp--preset--color--contrast);
}

.ploetner-legal-section {
	padding: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--border);
}

.ploetner-legal-section:last-of-type {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ploetner-legal-title {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.4;
}

/* Small accent triangle in front of each topic (decorative). */
.ploetner-legal-title::before {
	content: "";
	display: inline-block;
	margin-right: 0.5rem;
	vertical-align: 0.1em;
	border-top: 0.3em solid transparent;
	border-bottom: 0.3em solid transparent;
	border-left: 0.4em solid var(--wp--preset--color--accent);
}

.ploetner-legal-text {
	color: var(--wp--preset--color--muted);
	font-weight: 300;
	line-height: 1.7;
}

.ploetner-legal-text > p + p {
	margin-top: 0.9rem;
}

.ploetner-legal a {
	color: var(--wp--preset--color--accent);
}

.ploetner-legal-updated {
	margin-top: var(--wp--preset--spacing--50) !important;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	color: var(--wp--preset--color--dim);
}

@media (max-width: 782px) {
	.ploetner-legal-row,
	.ploetner-legal-section {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Anchored sections: keep headings clear of the sticky header. */
.ploetner-cloud-how,
.ploetner-cloud-pricing,
.ploetner-cloud-contact,
.ploetner-cloud-scope,
.ploetner-cloud-faq,
.wp-block-heading[id],
#check {
	scroll-margin-top: 5rem;
}

@media (prefers-reduced-motion: reduce) {
	.ploetner-cloud-card,
	.ploetner-check-submit,
	.ploetner-inquiry-submit,
	.ploetner-inquiry-field input,
	.ploetner-inquiry-field select,
	.ploetner-inquiry-field textarea,
	.ploetner-cloud-nav-cta .wp-block-button__link {
		transition: none;
	}
}

/* Contact page: the side card keeps its own height, steps in body size. */
.ploetner-cloud-contact-page .ploetner-cloud-card {
	height: auto;
}

.ploetner-cloud-contact-page .ploetner-cloud-steps {
	font-size: var(--wp--preset--font-size--small);
}

/* Check widget: link to the inquiry form below the results. */
.ploetner-check-next {
	margin: var(--wp--preset--spacing--30) 0 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	text-align: right;
}

.ploetner-check-next a {
	color: var(--wp--preset--color--accent);
}
