/**
 * Document downloader styles.
 *
 * Every value routes through a custom property with a fallback, so the theme,
 * Elementor Global Colors, or a widget-level Style control can override any of
 * it without this file needing to change. No !important anywhere: Elementor's
 * per-widget selectors are more specific and must be able to win.
 */

.sdl-downloader {
	--sdl-primary: var(--sdl-color-primary, #4f46b8);
	--sdl-primary-contrast: var(--sdl-color-primary-contrast, #ffffff);
	--sdl-text: var(--sdl-color-text, #1b1b24);
	--sdl-muted: var(--sdl-color-muted, #5b5b68);
	--sdl-surface: var(--sdl-color-surface, #ffffff);
	--sdl-border: var(--sdl-color-border, #e2e2ea);
	--sdl-error: var(--sdl-color-error, #b3261e);
	--sdl-success: var(--sdl-color-success, #1c7c54);
	--sdl-radius: var(--sdl-radius-base, 12px);

	color: var(--sdl-text);
	container-type: inline-size;
}

.sdl-label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
}

.sdl-controls {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

@media (min-width: 640px) {
	.sdl-controls {
		flex-direction: row;
	}
}

.sdl-field {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
}

.sdl-input {
	box-sizing: border-box;
	width: 100%;
	height: 3.5rem;
	padding-inline: 1rem 5.5rem;
	font-size: 1rem;
	color: inherit;
	background: var(--sdl-surface);
	border: 1px solid var(--sdl-border);
	border-radius: var(--sdl-radius);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sdl-input:focus-visible {
	outline: 2px solid var(--sdl-primary);
	outline-offset: 2px;
}

.sdl-input[aria-invalid='true'] {
	border-color: var(--sdl-error);
}

/* Logical inset so RTL layouts place the button on the correct side. */
.sdl-paste {
	position: absolute;
	inset-block: 50%;
	inset-inline-end: 0.5rem;
	transform: translateY(-50%);
	height: 2.25rem;
	padding-inline: 0.75rem;
	font-size: 0.78rem;
	font-weight: 600;
	color: inherit;
	background: var(--sdl-border);
	border: 0;
	border-radius: calc(var(--sdl-radius) - 4px);
	cursor: pointer;
}

.sdl-submit,
.sdl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3.5rem;
	padding-inline: 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	border: 0;
	border-radius: var(--sdl-radius);
	cursor: pointer;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}

.sdl-submit {
	flex: 0 0 auto;
}

.sdl-submit,
.sdl-btn--primary {
	color: var(--sdl-primary-contrast);
	background: var(--sdl-primary);
}

.sdl-btn--ghost {
	color: inherit;
	background: transparent;
	border: 1px solid var(--sdl-border);
}

.sdl-submit[disabled] {
	opacity: 0.6;
	cursor: not-allowed;
}

.sdl-status {
	min-height: 1.5rem;
	margin: 0.75rem 0 0;
	font-size: 0.9rem;
}

.sdl-status--ok {
	color: var(--sdl-success);
}

.sdl-status--error {
	color: var(--sdl-error);
}

.sdl-card {
	margin-top: 1rem;
	padding: 1.25rem;
	background: var(--sdl-surface);
	border: 1px solid var(--sdl-border);
	border-radius: calc(var(--sdl-radius) + 4px);
}

.sdl-card__head {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
}

/* Fixed box reserves space before the image loads, so nothing shifts. */
.sdl-thumb {
	flex: 0 0 auto;
	width: 104px;
	height: 135px;
	object-fit: cover;
	border: 1px solid var(--sdl-border);
	border-radius: calc(var(--sdl-radius) - 2px);
}

.sdl-card__body {
	min-width: 0;
}

.sdl-card__title {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.sdl-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 0.75rem 0 0;
}

.sdl-meta dt {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--sdl-muted);
}

.sdl-meta dd {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 600;
}

.sdl-actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

@media (min-width: 640px) {
	.sdl-actions {
		flex-direction: row;
	}
}

.sdl-disclosure,
.sdl-note,
.sdl-preview-note {
	margin: 0.75rem 0 0;
	font-size: 0.78rem;
	line-height: 1.6;
	color: var(--sdl-muted);
}

.sdl-preview {
	margin-top: 1.5rem;
}

.sdl-preview__title {
	margin: 0 0 0.75rem;
	font-size: 0.9rem;
	font-weight: 600;
}

/* Height is reserved up front so the frame loading cannot shift the page. */
.sdl-preview__frame {
	display: block;
	width: 100%;
	height: clamp(400px, 62vh, 820px);
	border: 1px solid var(--sdl-border);
	border-radius: var(--sdl-radius);
	background: var(--sdl-surface);
}

.sdl-card--preview {
	border-style: dashed;
}

.sdl-hide-metadata .sdl-meta,
.sdl-hide-preview .sdl-preview {
	display: none;
}

/* Dark mode is driven by a class or attribute on a parent, so Elementor's
   editor preview and the live page behave identically. */
.sdl-dark .sdl-downloader,
[data-theme='dark'] .sdl-downloader,
.dark .sdl-downloader {
	--sdl-text: var(--sdl-color-text-dark, #f2f2f7);
	--sdl-muted: var(--sdl-color-muted-dark, #a8a8b8);
	--sdl-surface: var(--sdl-color-surface-dark, #23232f);
	--sdl-border: var(--sdl-color-border-dark, #3a3a4d);
}

@media (prefers-reduced-motion: reduce) {
	.sdl-downloader * {
		transition-duration: 0.001ms !important;
		animation-duration: 0.001ms !important;
	}
}

/* -------------------------------------------------------------------------
 * Reference landing page: [scribd_landing]
 * Everything is scoped so the design cannot leak into unrelated pages.
 * ---------------------------------------------------------------------- */

html:has(body .sdl-landing) {
	margin-top: 0 !important;
}

body:has(.sdl-landing) #wpadminbar {
	display: none !important;
}

body:has(.sdl-landing) .wp-block-post-title {
	display: none;
}

body:has(.sdl-landing) main#wp--skip-link--target > .wp-block-group:first-child {
	display: none !important;
}

body:has(.sdl-landing) {
	overflow-x: clip;
}

body:has(.sdl-landing) .wp-block-post-content,
body:has(.sdl-landing) .entry-content {
	margin-block-start: 0;
	width: 100%;
	max-width: none !important;
	margin-inline: 0 !important;
	padding-inline: 0 !important;
}

body:has(.sdl-landing) .wp-block-post-content > .sdl-landing,
body:has(.sdl-landing) .entry-content > .sdl-landing {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

.sdl-landing {
	--land-brand: #6557d8;
	--land-brand-dark: #493da7;
	--land-accent: #159baa;
	--land-ink: #20202b;
	--land-muted: #686879;
	--land-page: #fafafd;
	--land-card: #ffffff;
	--land-border: #e6e4ef;
	--land-soft: #f3f1fb;
	--land-shadow: 0 20px 55px -32px rgb(38 27 100 / 0.34);

	width: 100% !important;
	max-width: none !important;
	margin-inline: 0;
	margin-block: 0;
	color: var(--land-ink);
	background: var(--land-page);
	font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.65;
}

.sdl-landing *,
.sdl-landing *::before,
.sdl-landing *::after {
	box-sizing: border-box;
}

.sdl-land-shell {
	width: min(1180px, calc(100% - 2rem));
	margin-inline: auto;
}

.sdl-land-shell--narrow {
	width: min(820px, calc(100% - 2rem));
}

.sdl-land-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(4rem, 8vw, 7rem) clamp(3.5rem, 7vw, 6rem);
	background:
		radial-gradient(circle at 12% 6%, rgb(101 87 216 / 0.20), transparent 32rem),
		radial-gradient(circle at 88% 20%, rgb(21 155 170 / 0.15), transparent 28rem),
		linear-gradient(180deg, #f8f6ff 0%, #fbfbfe 100%);
}

.sdl-land-grid {
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0.45;
	background-image:
		linear-gradient(to right, rgb(84 74 150 / 0.08) 1px, transparent 1px),
		linear-gradient(to bottom, rgb(84 74 150 / 0.08) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(80% 64% at 50% 5%, #000 24%, transparent 82%);
	mask-image: radial-gradient(80% 64% at 50% 5%, #000 24%, transparent 82%);
}

.sdl-land-hero__grid {
	display: grid;
	align-items: center;
	gap: clamp(3rem, 7vw, 6rem);
}

.sdl-land-eyebrow,
.sdl-land-kicker,
.sdl-land-section-head > p {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	color: var(--land-brand-dark);
	font-size: 0.77rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sdl-land-eyebrow {
	padding: 0.45rem 0.8rem;
	background: rgb(101 87 216 / 0.08);
	border: 1px solid rgb(101 87 216 / 0.16);
	border-radius: 999px;
	letter-spacing: 0.035em;
	text-transform: none;
}

.sdl-land-svg {
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 auto;
}

.sdl-land-eyebrow .sdl-land-svg {
	width: 0.95rem;
	height: 0.95rem;
}

.sdl-land-title {
	margin: 0;
	max-width: 760px;
	font-size: clamp(2.55rem, 5.7vw, 4.7rem);
	font-weight: 760;
	line-height: 1.02;
	letter-spacing: -0.052em;
}

.sdl-land-title > span {
	display: block;
}

.sdl-land-gradient {
	margin-top: 0.2em;
	color: transparent;
	background: linear-gradient(92deg, var(--land-brand) 0%, #746be9 48%, var(--land-accent) 100%);
	-webkit-background-clip: text;
	background-clip: text;
}

.sdl-land-lede {
	max-width: 680px;
	margin: 1.5rem 0 0;
	color: var(--land-muted);
	font-size: clamp(1.03rem, 1.7vw, 1.2rem);
	line-height: 1.75;
}

.sdl-land-tool-card {
	margin-top: 2.2rem;
	padding: clamp(1rem, 2.5vw, 1.45rem);
	background: rgb(255 255 255 / 0.88);
	border: 1px solid rgb(214 210 237 / 0.88);
	border-radius: 1.25rem;
	box-shadow: var(--land-shadow);
	backdrop-filter: blur(14px);
}

.sdl-land-tool-card .sdl-downloader {
	--sdl-color-primary: var(--land-brand);
	--sdl-color-text: var(--land-ink);
	--sdl-color-muted: var(--land-muted);
	--sdl-color-surface: #ffffff;
	--sdl-color-border: #dcd9eb;
	--sdl-radius-base: 12px;
}

.sdl-land-art {
	position: relative;
	display: none;
	min-height: 410px;
	perspective: 1000px;
}

.sdl-land-sheet {
	position: absolute;
	inset: 8% 12% 8% 15%;
	border: 1px solid var(--land-border);
	border-radius: 1.5rem;
	background: var(--land-card);
	box-shadow: var(--land-shadow);
}

.sdl-land-sheet--back {
	transform: rotate(-10deg) translate(-18px, -4px);
	opacity: 0.55;
}

.sdl-land-sheet--middle {
	transform: rotate(-5deg) translate(-7px, 0);
	opacity: 0.82;
}

.sdl-land-sheet--front {
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	padding: 3rem 2.2rem;
	background: linear-gradient(150deg, #fff 0%, #f8f6ff 100%);
	animation: sdl-land-float 6s ease-in-out infinite;
}

.sdl-land-paper-title,
.sdl-land-paper-line {
	height: 0.65rem;
	border-radius: 999px;
	background: #cfccdc;
}

.sdl-land-paper-title {
	width: 64%;
	height: 0.9rem;
	background: #8d88a6;
}

.sdl-land-paper-line--short {
	width: 72%;
}

.sdl-land-chips {
	display: flex;
	gap: 0.45rem;
	margin-top: auto;
}

.sdl-land-chips span {
	padding: 0.35rem 0.48rem;
	color: var(--land-brand-dark);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	background: rgb(101 87 216 / 0.08);
	border: 1px solid rgb(101 87 216 / 0.16);
	border-radius: 0.5rem;
}

.sdl-land-download-badge {
	position: absolute;
	right: 2%;
	bottom: 5%;
	display: grid;
	width: 6.1rem;
	height: 6.1rem;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 0.5);
	border-radius: 50%;
	background: radial-gradient(circle at 33% 25%, #938cf3, var(--land-brand) 48%, var(--land-accent));
	box-shadow: 0 20px 45px -14px rgb(70 55 180 / 0.62);
	animation: sdl-land-badge 3.6s ease-in-out infinite;
}

.sdl-land-download-badge::before,
.sdl-land-download-badge::after,
.sdl-land-download-badge span {
	content: "";
	position: absolute;
	background: #fff;
	border-radius: 999px;
}

.sdl-land-download-badge::before {
	width: 0.3rem;
	height: 2.1rem;
	transform: translateY(-0.4rem);
}

.sdl-land-download-badge::after {
	width: 1.55rem;
	height: 1.55rem;
	background: transparent;
	border-right: 0.3rem solid #fff;
	border-bottom: 0.3rem solid #fff;
	border-radius: 0.15rem;
	transform: translateY(0.1rem) rotate(45deg);
}

.sdl-land-download-badge span {
	bottom: 1.35rem;
	width: 2.25rem;
	height: 0.28rem;
}

.sdl-land-trust {
	padding-block: 2.5rem;
	background: #fff;
	border-block: 1px solid var(--land-border);
}

.sdl-land-trust__grid {
	display: grid;
	gap: 1.5rem;
	padding: 0;
	list-style: none;
}

.sdl-land-trust__grid li {
	display: flex;
	gap: 0.9rem;
}

.sdl-land-trust__grid .sdl-land-svg {
	margin-top: 0.1rem;
	color: var(--land-brand);
}

.sdl-land-trust__grid strong {
	display: block;
	font-size: 0.92rem;
}

.sdl-land-trust__grid p,
.sdl-land-card p,
.sdl-land-rule-card p,
.sdl-land-responsible__copy > p:last-child,
.sdl-land-final__card p {
	margin: 0.35rem 0 0;
	color: var(--land-muted);
	font-size: 0.91rem;
	line-height: 1.7;
}

.sdl-land-section {
	padding-block: clamp(4.5rem, 8vw, 7rem);
}

.sdl-land-section--surface {
	background: #fff;
	border-block: 1px solid var(--land-border);
}

.sdl-land-section-head {
	max-width: 730px;
	margin: 0 auto 2.8rem;
	text-align: center;
}

.sdl-land-section-head > p {
	margin-bottom: 0.65rem;
}

.sdl-land-section-head h2,
.sdl-land-responsible h2,
.sdl-land-final__card h2 {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.15rem);
	font-weight: 730;
	line-height: 1.12;
	letter-spacing: -0.035em;
}

.sdl-land-section-head > span {
	display: block;
	margin-top: 1rem;
	color: var(--land-muted);
	font-size: 1rem;
}

.sdl-land-steps,
.sdl-land-features {
	display: grid;
	gap: 1.15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sdl-land-card,
.sdl-land-rule-card {
	position: relative;
	padding: 1.55rem;
	background: var(--land-card);
	border: 1px solid var(--land-border);
	border-radius: 1.15rem;
	box-shadow: 0 12px 35px -28px rgb(30 21 83 / 0.45);
	transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.sdl-land-card:hover {
	transform: translateY(-4px);
	border-color: rgb(101 87 216 / 0.35);
	box-shadow: var(--land-shadow);
}

.sdl-land-card h3,
.sdl-land-rule-card h3 {
	margin: 1rem 0 0;
	font-size: 1.08rem;
	line-height: 1.35;
}

.sdl-land-step-no,
.sdl-land-iconbox {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.8rem;
	height: 2.8rem;
	color: var(--land-brand-dark);
	font-weight: 800;
	background: rgb(101 87 216 / 0.09);
	border: 1px solid rgb(101 87 216 / 0.16);
	border-radius: 0.9rem;
}

.sdl-land-step-no {
	font-size: 1.15rem;
}

.sdl-land-iconbox .sdl-land-svg {
	width: 1.2rem;
	height: 1.2rem;
}

.sdl-land-responsible {
	display: grid;
	align-items: center;
	gap: 2rem;
}

.sdl-land-responsible__copy > p:last-child {
	max-width: 650px;
	margin-top: 1.25rem;
	font-size: 1rem;
}

.sdl-land-rule-card {
	padding: clamp(1.6rem, 4vw, 2.5rem);
	background: linear-gradient(145deg, #fff 0%, #f5f3ff 100%);
}

.sdl-land-rule-card > .sdl-land-svg {
	width: 2rem;
	height: 2rem;
	color: var(--land-brand);
}

.sdl-land-rule-card h3 {
	font-size: 1.3rem;
}

.sdl-land-faq {
	display: grid;
	gap: 0.8rem;
}

.sdl-land-faq details {
	background: var(--land-card);
	border: 1px solid var(--land-border);
	border-radius: 1rem;
	box-shadow: 0 7px 22px -24px rgb(30 21 83 / 0.5);
}

.sdl-land-faq summary {
	position: relative;
	padding: 1.2rem 3.25rem 1.2rem 1.25rem;
	font-weight: 680;
	cursor: pointer;
	list-style: none;
}

.sdl-land-faq summary::-webkit-details-marker {
	display: none;
}

.sdl-land-faq summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 1.2rem;
	width: 1.7rem;
	height: 1.7rem;
	color: var(--land-brand-dark);
	font-size: 1.25rem;
	line-height: 1.55rem;
	text-align: center;
	background: rgb(101 87 216 / 0.08);
	border-radius: 50%;
	transform: translateY(-50%);
}

.sdl-land-faq details[open] summary::after {
	content: "−";
}

.sdl-land-faq details p {
	margin: 0;
	padding: 0 1.25rem 1.35rem;
	color: var(--land-muted);
	font-size: 0.94rem;
}

.sdl-land-final {
	padding-block: clamp(4rem, 8vw, 6.5rem);
}

.sdl-land-final__card {
	position: relative;
	overflow: hidden;
	padding: clamp(2.7rem, 7vw, 5rem) 1.5rem;
	text-align: center;
	background:
		radial-gradient(circle at 50% -20%, rgb(101 87 216 / 0.24), transparent 55%),
		var(--land-card);
	border: 1px solid var(--land-border);
	border-radius: 1.7rem;
	box-shadow: var(--land-shadow);
}

.sdl-land-final__card p {
	max-width: 610px;
	margin: 1rem auto 0;
	font-size: 1rem;
}

.sdl-land-final__card a {
	display: inline-flex;
	margin-top: 1.7rem;
	padding: 0.85rem 1.25rem;
	color: #fff;
	font-size: 0.94rem;
	font-weight: 750;
	text-decoration: none;
	background: linear-gradient(120deg, var(--land-brand), var(--land-brand-dark));
	border-radius: 0.85rem;
	box-shadow: 0 14px 30px -18px rgb(73 61 167 / 0.72);
}

@media (min-width: 700px) {
	.sdl-land-trust__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sdl-land-steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sdl-land-features {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 980px) {
	.sdl-land-hero__grid {
		grid-template-columns: minmax(0, 1.22fr) minmax(320px, 0.78fr);
	}

	.sdl-land-art {
		display: block;
	}

	.sdl-land-trust__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.sdl-land-features {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sdl-land-responsible {
		grid-template-columns: 1.02fr 0.98fr;
		gap: 4rem;
	}
}

@media (max-width: 639px) {
	.sdl-land-shell,
	.sdl-land-shell--narrow {
		width: min(100% - 1.25rem, 1180px);
	}

	.sdl-land-hero {
		padding-top: 3rem;
	}

	.sdl-land-title {
		font-size: clamp(2.25rem, 12vw, 3.15rem);
	}

	.sdl-land-tool-card {
		padding: 0.8rem;
		border-radius: 1rem;
	}

	.sdl-land-card,
	.sdl-land-rule-card {
		padding: 1.3rem;
	}
}

@keyframes sdl-land-float {
	0%, 100% { transform: translateY(0) rotateX(0.5deg) rotateY(-1deg); }
	50% { transform: translateY(-12px) rotateX(-1deg) rotateY(1deg); }
}

@keyframes sdl-land-badge {
	0%, 100% { transform: translateY(0) scale(1); }
	50% { transform: translateY(-9px) scale(1.03); }
}

@media (prefers-reduced-motion: reduce) {
	.sdl-land-sheet--front,
	.sdl-land-download-badge {
		animation: none;
	}
}
