/* === THEME TWEAKS === */ 

	/* Text Balance / Pretty */

	:is(h1, h2, h3, h4, h5, h6), .balance {
		text-wrap: balance;
	}

	p, blockquote, li {
		text-wrap: pretty;
	}

	/* P Last Child */

	p:not(:has(~ p)) {
		margin-bottom: 0px;
	}

	/* Place footer at the bottom on small content */
	@media (min-width: 1024px) {
		body {
			display: flex;
			flex-direction: column;
			min-height: 100vh;
		}
		.site-footer {
			margin-top: auto;
		}

		.full-width-content .container.grid-container{
			width: 100%;
		}
	}

.stretch-link {
    position: relative;
}

.stretch-link a::after {
    content: '';
    position: absolute;
    inset: 0;
}

.stretch-link a:is(:focus-visible)::after {
    outline: 2px solid;
}

.stretch-link a:is(:hover, :focus) {
    outline: none;
}



/* === UTILITIES === */

	/* Line Limits */
	.line-limit-3, .line-limit-2 {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.line-limit-3 {
		-webkit-line-clamp: 3;
	}

	.line-limit-2 {
		-webkit-line-clamp: 2;
	}

	/* Visually Hidden */
	.visually-hidden:not(:focus):not(:active), .sr-only:not(:focus):not(:active) {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	/* Isolation */
	.isolate{
		isolation: isolate;
	}

	/* Transition */
	.transition{
		transition: all .25s ease-in-out;
	}

	.bleed-grid{
		padding-block: var(--section-padding-block-d);
		display: grid;
		grid-template-columns: 
			minmax(var(--section-padding-inline), 1fr)
			minmax(0, calc(var(--gb-container-width)/2))
			minmax(0, calc(var(--gb-container-width)/2))
			minmax(var(--section-padding-inline), 1fr)
			;
	}


/* === Layout Variables === */

:root{
    /* Section Padding */
    --section-space-xs: clamp(1rem, 0.679rem + 1.026vi, 1.5rem);
    --section-space-s: clamp(1.5rem, 0.538rem + 3.077vi, 3rem);
    --section-space-m: clamp(3rem, 1.718rem + 4.103vi, 5rem);
    --section-space-l: clamp(4.5rem, 2.577rem + 6.154vi, 7.5rem);
    --section-space-xl: clamp(6rem, 3.436rem + 8.205vi, 10rem);
	--gutter: clamp(1rem, 0.679rem + 1.026vi, 1.5rem);

    /* Wrapper Max-Sizes */
    --wrapper-width-xs: 632px;
    --wrapper-width-s: 848px;
    --wrapper-width-m: 1064px;
    --wrapper-width-d: var(--gb-container-width, 1280px);
    --wrapper-width-l: 1496px;
    --wrapper-width-xl: calc(100dvw - (var(--section-padding-inline) * 2));

	/* Spacing Variables */
	--space-xxs: clamp(0.25rem, 0.1rem + 0.5vi, 0.5rem);	/* 4 → 8  */
	--space-xs: clamp(0.375rem, 0rem + 1.25vi, 1rem);		/* 6 → 16 */
	--space-s: clamp(0.75rem, 0.3rem + 1.5vi, 1.5rem);		/* 12 → 24 */
	--space-m: clamp(1rem, 0.4rem + 2vi, 2rem);				/* 16 → 32 */
	--space-l: clamp(1.5rem, 0.6rem + 3vi, 3rem);			/* 24 → 48 */
	--space-xl: clamp(2rem, 0.8rem + 4vi, 4rem);			/* 32 → 64 */
	--space-xxl: clamp(2.5rem, 1rem + 5vi, 5rem);			/* 40 → 80 */
	--space-xxxl: clamp(3rem, 1.2rem + 6vi, 6rem);			/* 48 → 96 */
	
	/* Border Radius */
	--radius-s: clamp(0.125rem, 0.05rem + 0.25vi, 0.25rem);
	--radius-m: clamp(0.25rem, 0.1rem + 0.5vi, 0.5rem);
	--radius-l: clamp(0.375rem, 0rem + 1.25vi, 1rem);
	--radius-xl: clamp(0.75rem, 0.3rem + 1.5vi, 1.5rem);
	--radius-xxl: clamp(1rem, 0.4rem + 2vi, 2rem);
	
	/* Auto Grids */
	--auto-grid-s: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
	--auto-grid-m: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
	--auto-grid-l: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
	--auto-grid-xl: repeat(auto-fit, minmax(min(24rem, 100%), 1fr));
	--auto-grid-xxl: repeat(auto-fit, minmax(min(35rem, 100%), 1fr));
	
	/* Typography */
	--fs-h1: clamp(3.375rem, 3.0682rem + 1.2273vw, 4.05rem);
	--fs-h2: clamp(2.5313rem, 2.3011rem + 0.9205vw, 3.0375rem);
	--fs-h3: clamp(2.1094rem, 1.9176rem + 0.767vw, 2.5313rem);
	--fs-h4: clamp(1.6875rem, 1.5341rem + 0.6136vw, 2.025rem);
	--fs-h5: clamp(1.4063rem, 1.2784rem + 0.5114vw, 1.6875rem);
	--fs-h6: clamp(1.2656rem, 1.1506rem + 0.4602vw, 1.5188rem);
	--fs-p: clamp(0.9375rem, 0.8523rem + 0.3409vw, 1.125rem);
	--fs-p-l: clamp(1.2656rem, 1.1506rem + 0.4602vw, 1.5188rem);
	--fs-p-s: clamp(0.7292rem, 0.6629rem + 0.2652vw, 0.875rem);
}


