/* =========================================================================
   White-Label landing — shared base for every wl-* block.

   Handle: sws-wl-shared. Each wl-* block enqueues this first and makes its own
   stylesheet depend on it, so the base loads once and also works in the editor.

   Ported from the Claude Design source (docs/plans/white-label-partners/design/
   source.html), which is inline-styled: the repeated patterns live here, the
   section-specific rules live in each block's style.css.

   Everything is scoped under .wl-scope (a class every wl-* <section> carries),
   so nothing here can leak into the rest of the site — the landing runs on its
   own template but the blocks are still insertable anywhere.
   ========================================================================= */

.wl-scope {
	/* Site palette (identical values to the design system tokens). */
	--wl-green: #028d40;
	--wl-green-dark: #027035;
	--wl-green-bright: #28a745;
	--wl-violet: #605cb8;
	--wl-ink: #212529;
	--wl-graphite: #343a40;
	--wl-muted: #777777;
	--wl-border: #e6e6e6;
	--wl-border-soft: #f2f2f2;
	--wl-surface-alt: #f8f9fa;
	--wl-surface-tint: #f4f7f5;
	--wl-dark: #14181b;
	--wl-danger: #dc3545;
	/* Fonts come from the theme: Rubik for headings, Source Sans Pro for body. */
	--wl-font-heading: 'Rubik', sans-serif;
}

.wl-scope,
.wl-scope * {
	box-sizing: border-box;
}

/* Section shells -------------------------------------------------------- */

.wl-scope {
	background: #fff;
	color: var(--wl-ink);
}

.wl-section--alt {
	background: var(--wl-surface-alt);
	border-top: 1px solid var(--wl-border);
	border-bottom: 1px solid var(--wl-border);
}

.wl-section--dark {
	background: var(--wl-dark);
	color: #fff;
}

/* The design's 1140px shell. Deliberately self-contained rather than the
   theme's Bootstrap .container: same width, but the design's 24px gutter and
   no dependency on the (slimmed-down) Bootstrap layer. */
.wl-scope .wl-container {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 24px;
}

.wl-scope .wl-pad {
	padding-top: 90px;
	padding-bottom: 90px;
}

/* Section header (kicker + h2 + intro) ---------------------------------- */

.wl-scope .wl-head {
	max-width: 720px;
	margin-bottom: 46px;
}

.wl-scope .wl-head--wide {
	max-width: 780px;
}

.wl-scope .wl-kicker {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: var(--wl-green);
	margin-bottom: 14px;
}

.wl-scope .wl-h2 {
	font-family: var(--wl-font-heading);
	font-size: 33px;
	font-weight: 500;
	color: var(--wl-graphite);
	line-height: 1.2;
	margin: 0 0 16px;
	text-wrap: pretty;
}

.wl-scope .wl-intro {
	font-size: 17px;
	line-height: 1.7;
	color: var(--wl-muted);
	margin: 0;
}

.wl-scope .wl-intro--ink {
	color: var(--wl-ink);
}

/* Links ----------------------------------------------------------------- */

.wl-scope .wl-lnk {
	transition: color .2s ease-out;
}

.wl-scope .wl-lnk:hover,
.wl-scope .wl-lnk:focus {
	color: var(--wl-violet);
}

.wl-scope .wl-lnk--green {
	color: var(--wl-green);
	text-decoration: none;
	font-weight: 500;
}

/* Buttons --------------------------------------------------------------- */

.wl-scope .wl-btn {
	position: relative;
	overflow: hidden;
	z-index: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	padding: 17px 30px;
	border: 1px solid transparent;
	border-radius: .25rem;
	text-decoration: none;
	min-height: 48px;
	cursor: pointer;
	text-align: center;
}

/* Violet wipe on hover — the design's .wl-btn-fill. */
.wl-scope .wl-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--wl-violet);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .3s ease-out;
	z-index: -1;
}

.wl-scope .wl-btn:hover::before,
.wl-scope .wl-btn:focus-visible::before {
	transform: scaleY(1);
}

.wl-scope .wl-btn:hover,
.wl-scope .wl-btn:focus-visible {
	color: #fff;
	border-color: var(--wl-violet);
}

.wl-scope .wl-btn--fill {
	background: var(--wl-green);
	color: #fff;
	border-color: var(--wl-green);
}

/* Outline-on-white: used by the two secondary model cards. */
.wl-scope .wl-btn--outline {
	background: #fff;
	color: var(--wl-green);
	border-color: var(--wl-green);
}

/* Outline-on-dark: hero secondary and the final CTA's second button. */
.wl-scope .wl-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .35);
	font-size: 15.5px;
	padding: 15px 28px;
}

.wl-scope .wl-btn--white {
	background: #fff;
	color: var(--wl-green);
	border-color: #fff;
	font-weight: 600;
	white-space: nowrap;
}

.wl-scope .wl-btn--sm {
	font-size: 15.5px;
	padding: 15px 26px;
	min-height: 46px;
	gap: 9px;
}

.wl-scope .wl-btn--block {
	display: flex;
	width: 100%;
	font-size: 15.5px;
	padding: 14px 20px;
	gap: 9px;
}

.wl-scope .wl-btn .sws-ico,
.wl-scope .wl-btn .fas,
.wl-scope .wl-btn .fab {
	flex: 0 0 auto;
}

/* Cards ----------------------------------------------------------------- */

.wl-scope .wl-card {
	background: #fff;
	border: 1px solid var(--wl-border);
	border-radius: .25rem;
	box-shadow: 0 0 10px rgba(0, 0, 0, .06);
	padding: 26px 24px;
}

.wl-scope .wl-card--lift {
	transition: transform .25s ease-out, box-shadow .25s ease-out;
}

.wl-scope .wl-card--lift:hover {
	transform: translateY(-4px);
	box-shadow: 0 5px 20px rgba(0, 0, 0, .12);
}

/* Round green illustration tile. */
.wl-scope .wl-tile {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--wl-green);
	color: #fff;
	flex: 0 0 auto;
	transition: background .25s ease-out;
}

.wl-scope .wl-card--lift:hover .wl-tile {
	background: var(--wl-violet);
}

.wl-scope .wl-tile__ico {
	width: 24px;
	height: 24px;
	fill: currentColor;
	display: block;
}

.wl-scope .wl-tile--sm {
	width: 44px;
	height: 44px;
}

.wl-scope .wl-tile--sm .wl-tile__ico {
	width: 18px;
	height: 18px;
}

/* Check lists ------------------------------------------------------------ */

.wl-scope .wl-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.wl-scope .wl-checks li {
	display: flex;
	gap: 11px;
	font-size: 15.5px;
	line-height: 1.5;
	color: var(--wl-ink);
	margin: 0;
}

.wl-scope .wl-checks li::before {
	content: none;
}

.wl-scope .wl-checks .fas {
	color: var(--wl-green);
	margin-top: 4px;
	flex: 0 0 auto;
}

/* Native <details> accordions (no JS anywhere on this page) --------------- */

.wl-scope .wl-details__sum {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 0;
	min-height: 44px;
}

.wl-scope .wl-details__sum::-webkit-details-marker {
	display: none;
}

.wl-scope .wl-details__q {
	font-size: 16px;
	font-weight: 500;
	color: var(--wl-graphite);
	margin: 0;
	transition: color .2s ease-out;
}

.wl-scope .wl-details__chev {
	color: var(--wl-green);
	font-size: 13px;
	flex: 0 0 auto;
	transition: transform .25s ease-out;
}

.wl-scope .wl-details[open] .wl-details__chev {
	transform: rotate(180deg);
}

.wl-scope .wl-details[open] .wl-details__q {
	color: var(--wl-green);
}

/* Grids ------------------------------------------------------------------ */

.wl-scope .wl-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.wl-scope .wl-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.wl-scope .wl-grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.wl-scope .wl-grid-5 {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 20px;
}

.wl-scope .wl-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 54px;
}

.wl-scope .wl-form-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

/* Screen-reader-only heading (the theme's own helper is .screen-reader-text,
   kept separate so the landing stays self-contained). */
.wl-scope .wl-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Breakpoints — the design's own 1000 / 980 / 620, not Bootstrap's. -------- */

@media (max-width: 980px) {
	.wl-scope .wl-split,
	.wl-scope .wl-grid-3,
	.wl-scope .wl-grid-5,
	.wl-scope .wl-grid-2 {
		grid-template-columns: 1fr;
	}

	.wl-scope .wl-grid-4 {
		grid-template-columns: 1fr 1fr;
	}

	.wl-scope .wl-pad {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

@media (max-width: 620px) {
	.wl-scope .wl-grid-4 {
		grid-template-columns: 1fr;
	}

	.wl-scope .wl-h2 {
		font-size: 25px;
	}

	.wl-scope .wl-form-2 {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wl-scope .wl-card--lift,
	.wl-scope .wl-card--lift:hover {
		transform: none;
		transition: none;
	}

	.wl-scope .wl-btn::before,
	.wl-scope .wl-details__chev {
		transition: none;
	}
}
