/**
 * Software Is Good - Sliders: what every design shares.
 *
 * Colours come from the Settings screen as custom properties on each slider's
 * outer element (--sigsl-accent, --sigsl-second, ...); type comes from the
 * theme. Every slider is a size container, so a design lays itself out by the
 * width it is given (a full width section or a narrow column), not by the
 * width of the screen.
 *
 * Selectors carry two classes, and buttons `button.` on top, so the rules win
 * over theme and page builder styles for headings, links and buttons without
 * !important.
 */

.sigsl {
	--sigsl-muted: rgb( var( --sigsl-ink-rgb ) / 0.68 );
	--sigsl-line: rgb( var( --sigsl-ink-rgb ) / 0.13 );
	--sigsl-line-strong: rgb( var( --sigsl-ink-rgb ) / 0.24 );
	--sigsl-soft: rgb( var( --sigsl-ink-rgb ) / 0.06 );
	--sigsl-shade: 12 16 16;
	--sigsl-ease: cubic-bezier( 0.2, 0.7, 0.2, 1 );
	container-type: inline-size;
	position: relative;
	color: var( --sigsl-ink );
	line-height: 1.5;
	text-align: left;
}

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

.sigsl :where( h2, h3, h4, p, figure, figcaption ) {
	margin: 0;
	padding: 0;
}

.sigsl img {
	-webkit-user-drag: none;
	user-select: none;
}

.sigsl button {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-transform: none;
	text-shadow: none;
	white-space: normal;
	min-width: 0;
	min-height: 0;
	cursor: pointer;
}

.sigsl :focus-visible {
	outline: 3px solid var( --sigsl-accent );
	outline-offset: 3px;
}

.sigsl .sigsl-icon {
	display: block;
	flex: none;
	width: 20px;
	height: 20px;
}

/* --- section head: eyebrow, heading, arrows --- */
.sigsl .sigsl-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 28px;
}

.sigsl .sigsl-eyebrow {
	margin: 0 0 12px;
	color: var( --sigsl-accent );
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sigsl .sigsl-heading {
	margin: 0;
	padding: 0;
	color: var( --sigsl-ink );
	font-size: clamp( 26px, 3.2cqi, 38px );
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-transform: none;
	text-wrap: balance;
}

.sigsl .sigsl-arrows {
	display: flex;
	gap: 10px;
}

/* Without a heading the arrows still sit on the right. */
.sigsl .sigsl-head > .sigsl-arrows {
	margin-left: auto;
}

/* --- buttons --- */
.sigsl .sigsl-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.sigsl a.sigsl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	margin: 0;
	padding: 0 26px;
	border: 2px solid transparent;
	border-radius: var( --sigsl-btn-radius );
	background: var( --sigsl-accent );
	box-shadow: none;
	color: var( --sigsl-button-ink );
	font-size: 14px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: 0.05em;
	text-align: center;
	text-decoration: none;
	text-transform: var( --sigsl-btn-case );
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.sigsl a.sigsl-btn:hover,
.sigsl a.sigsl-btn:focus-visible {
	background: var( --sigsl-accent-deep );
	color: var( --sigsl-button-ink );
	text-decoration: none;
}

.sigsl a.sigsl-btn .sigsl-icon {
	width: 16px;
	height: 16px;
}

.sigsl a.sigsl-btn--second {
	background: var( --sigsl-second );
	color: var( --sigsl-on-second );
}

.sigsl a.sigsl-btn--second:hover,
.sigsl a.sigsl-btn--second:focus-visible {
	background: var( --sigsl-second-deep );
	color: var( --sigsl-on-second );
}

.sigsl a.sigsl-btn--ghost {
	border-color: rgb( 255 255 255 / 0.8 );
	background: transparent;
	color: #fff;
}

.sigsl a.sigsl-btn--ghost:hover,
.sigsl a.sigsl-btn--ghost:focus-visible {
	background: rgb( 255 255 255 / 0.14 );
	color: #fff;
}

.sigsl a.sigsl-btn--line {
	border-color: var( --sigsl-ink );
	background: transparent;
	color: var( --sigsl-ink );
}

.sigsl a.sigsl-btn--line:hover,
.sigsl a.sigsl-btn--line:focus-visible {
	background: var( --sigsl-ink );
	color: var( --sigsl-on-ink );
}

/* --- round arrows --- */
.sigsl button.sigsl-arrow {
	display: grid;
	place-items: center;
	flex: none;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: inherit;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
}

.sigsl button.sigsl-arrow:hover:not( :disabled ) {
	border-color: var( --sigsl-ink );
	background: var( --sigsl-ink );
	color: var( --sigsl-on-ink );
}

.sigsl button.sigsl-arrow:disabled {
	opacity: 0.28;
	cursor: default;
}

/* --- chips and links on cards --- */
.sigsl .sigsl-chip {
	display: inline-block;
	padding: 7px 12px;
	border-radius: 50px;
	background: var( --sigsl-second );
	color: var( --sigsl-on-second );
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.sigsl a.sigsl-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var( --sigsl-second );
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.sigsl a.sigsl-more:hover {
	color: var( --sigsl-second-deep );
	text-decoration: none;
}

.sigsl a.sigsl-more .sigsl-icon {
	width: 18px;
	height: 18px;
	transition: transform 0.25s;
}

.sigsl a.sigsl-more:hover .sigsl-icon {
	transform: translateX( 4px );
}

@media ( prefers-reduced-motion: reduce ) {
	.sigsl *:not( .sigsl-story-fill ),
	.sigsl *::before,
	.sigsl *::after {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
		animation-duration: 0.01ms !important;
	}
}
