/* ==================
 * Button Styles
 * ================== */
.cr-button {
	--cr-button-bg-color: var(--black, #000);
	--cr-button-border-radius: 12px;
	--cr-button-focus-color: darkblue;
	--cr-button-hover-bg-color: var(--black, #000);
	--cr-button-hover-text-color: var(--white, #fff);
	--cr-button-text-color: var(--white, #fff);
	--cr-button-padding-block: 1lh;
	--cr-button-padding-inline: 2ch;
	--cr-button-max-width: 400px;

	background-color: var(--cr-button-bg-color);
	border-radius: var(--cr-button-border-radius);
	border-width: 0;
	color: var(--cr-button-text-color);
	display: inline-block;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	max-width: var(--cr-button-max-width);
	padding-block: var(--cr-button-padding-block);
	padding-inline: var(--cr-button-padding-inline);
	text-align: center;
	text-decoration: none;
	text-shadow: none; // don't inherit text shadow from parents
	transition: background-color .125s ease-in-out, color .125s ease-in-out;
}

.cr-button:hover {
	background-color: var(--cr-button-hover-bg-color);
	color: var(--cr-button-hover-text-color);
	cursor: pointer;
}

.cr-button:focus-visible {
	background: var(--cr-button-focus-color);
	color: var(--white);
	outline-color: var(--cr-button-focus-color);
	outline-offset: 3px;
	outline-style: solid;
	outline-width: 2px;
}


/* ==================
 * Column Styles
 * ================== */
.cr-column {
	--cr-col-align: start;
	--cr-row-gap: 1rem;

	align-items: var(--cr-col-align);
	display: flex;
	flex-direction: column;
	row-gap: var(--cr-row-gap);
	
	// remove default content margins in favor of row-gap spacing
	> * {
		margin-block: 0;
	}

	&[data-align="baseline"] {
		--cr-col-align: center;
	}

	&[data-align="center"] {
		--cr-col-align: center;
	}

	&[data-align="end"] {
		--cr-col-align: end;
	}

	&[data-align="stretch"] {
		--cr-col-align: stretch;
	}
}

/* ==================
 * Grid Styles
 * ================== */
.cr-grid {
	--grid-min-col-size: 280px;
	--grid-col-gap: 4rem;
	--grid-row-gap: 1rem;
	 
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(var(--grid-min-col-size), 1fr));
	column-gap: var(--grid-col-gap);
	row-gap: var(--grid-row-gap)
}
 

/* ==================
 * GridItem Styles
 * ================== */
.cr-grid-item {
	
}

/* ==================
 * Page Section Styles
 * ================== */
.cr-page-section {
	--cr-section-col-gap: 2rem;
	--cr-section-row-align: start;
	--cr-section-row-gap: 2rem;
	--cr-section-min-col-size: 300px;
	
	.wrapper {
		align-content: center;
		align-items: var(--cr-section-row-align);
		column-gap: var(--cr-section-col-gap);
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(var(--cr-section-min-col-size), 1fr));
		justify-content: center;
		row-gap: var(--cr-section-row-gap);
	}
	
	&[data-align="baseline"] {
		--cr-section-row-align: center;
	}
	
	&[data-align="center"] {
		--cr-section-row-align: center;
	}
	
	&[data-align="end"] {
		--cr-section-row-align: end;
	}
	
	&[data-align="stretch"] {
		--cr-section-row-align: stretch;
	}
	
	&[data-theme="my-theme"] {
		// your theme styles here
	}
}

/* ==================
 * Row Styles
 * ================== */
.cr-row {
	--cr-col-gap: 1rem;
	--cr-row-align: start;
	--cr-row-gap: 1rem;
	--cr-row-wrap: wrap;
	
	align-items: var(--cr-row-align);
	column-gap: var(--cr-col-gap);
	display: flex;
	flex-direction: row;
	flex-wrap: var(--cr-row-wrap);
	row-gap: var(--cr-row-gap);
	width: 100%;
	
	&[data-align="baseline"] {
		--cr-row-align: center;
	}
	
	&[data-align="center"] {
		--cr-row-align: center;
	}
	
	&[data-align="end"] {
		--cr-row-align: end;
	}
	
	&[data-align="stretch"] {
		--cr-row-align: stretch;
	}
	
	&[data-wrap="no"] {
		--cr-row-wrap: nowrap;
	}
}

/* ==================
 * TextBlockWithImage Styles
 * ================== */
 .cr-text-block-with-image .wrapper {
		 --cr-tb-min-col-size: 340px;
		 --cr-tb-max-col-size: 640px;
	 }
 }