.wp-block-image-title-card-block-card.itcb-block-wrap,
.itcb-block-editor-wrap {
	box-sizing: border-box;
	width: 100%;
}

.itcb-link {
	display: block;
	color: inherit;
	text-decoration: none !important;
}

.itcb-card {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	width: var(--itcb-width, 340px);
	max-width: 100%;
	height: var(--itcb-height, auto);
	overflow: hidden;
	background: var(--itcb-bg, #f7f8e9);
	border: var(--itcb-border-width, 1px) solid var(--itcb-border, #dfe6c8);
	border-radius: var(--itcb-radius, 22px);
	color: var(--itcb-text, #267b38);
	font-family: var(--itcb-font-family, sans-serif);
	isolation: isolate;
	transition: transform .2s ease, box-shadow .2s ease;
}

.itcb-link:hover .itcb-card,
.itcb-link:focus-visible .itcb-card {
	transform: translateY(-2px);
}

.itcb-link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 4px;
	border-radius: var(--itcb-radius, 22px);
}

.itcb-card.itcb-align-left { margin-right: auto; margin-left: 0; }
.itcb-card.itcb-align-center { margin-right: auto; margin-left: auto; }
.itcb-card.itcb-align-right { margin-right: 0; margin-left: auto; }
.itcb-link.itcb-align-left { margin-right: auto; margin-left: 0; width: var(--itcb-width, 340px); max-width: 100%; }
.itcb-link.itcb-align-center { margin-right: auto; margin-left: auto; width: var(--itcb-width, 340px); max-width: 100%; }
.itcb-link.itcb-align-right { margin-right: 0; margin-left: auto; width: var(--itcb-width, 340px); max-width: 100%; }
.itcb-link .itcb-card { width: 100%; }

.itcb-card.itcb-has-shadow {
	box-shadow: 0 10px 26px rgba(31, 41, 55, .14);
}

.itcb-title-area {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 var(--itcb-title-height, 135px);
	min-height: var(--itcb-title-height, 135px);
	padding: var(--itcb-padding, 20px);
	background: var(--itcb-bg, #f7f8e9);
	color: var(--itcb-text, #267b38);
}

.itcb-content-row {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: var(--itcb-gap, 20px);
	width: 100%;
	min-width: 0;
}

.itcb-icon-right .itcb-content-row { flex-direction: row-reverse; }
.itcb-icon-top .itcb-content-row { flex-direction: column; }
.itcb-icon-top .itcb-title { width: 100%; }

.itcb-text-left .itcb-title { text-align: left; }
.itcb-text-center .itcb-title { text-align: center; }
.itcb-text-right .itcb-title { text-align: right; }
.itcb-text-center .itcb-content-row { justify-content: center; }
.itcb-text-right .itcb-content-row { justify-content: flex-end; }
.itcb-icon-top.itcb-text-left .itcb-content-row { align-items: flex-start; }
.itcb-icon-top.itcb-text-center .itcb-content-row { align-items: center; }
.itcb-icon-top.itcb-text-right .itcb-content-row { align-items: flex-end; }

.itcb-title {
	min-width: 0;
	margin: 0;
	color: inherit;
	font-family: inherit;
	font-size: clamp(12px, var(--itcb-font-size, 27px), 64px);
	font-weight: var(--itcb-font-weight, 700);
	line-height: var(--itcb-line-height, 1.55);
	letter-spacing: var(--itcb-letter-spacing, 1px);
	overflow-wrap: anywhere;
}

.itcb-icon-dashicon,
.itcb-icon-image {
	box-sizing: border-box;
	flex: 0 0 auto;
	width: var(--itcb-icon-size, 54px);
	height: var(--itcb-icon-size, 54px);
	color: inherit;
	font-size: var(--itcb-icon-size, 54px);
	line-height: 1;
	object-fit: contain;
}

.itcb-icon-dashicon::before {
	display: block;
	width: 100%;
	height: 100%;
	font-size: inherit;
	line-height: 1;
}

.itcb-image-area {
	position: relative;
	flex: 0 0 var(--itcb-image-height, 190px);
	min-height: 0;
	overflow: hidden;
	background: #e7ecef;
}

.itcb-fixed-height .itcb-image-area {
	flex: 1 1 auto;
}

.itcb-image-area img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-position: var(--itcb-image-position, center center);
}

.itcb-layout-text-bottom .itcb-title-area { order: 2; }
.itcb-layout-text-bottom .itcb-image-area { order: 1; }
.itcb-layout-text-top .itcb-title-area { order: 1; }
.itcb-layout-text-top .itcb-image-area { order: 2; }

@media (max-width: 480px) {
	.itcb-title-area {
		padding: min(var(--itcb-padding, 20px), 7vw);
	}
	.itcb-content-row {
		gap: min(var(--itcb-gap, 20px), 6vw);
	}
	.itcb-icon-dashicon,
	.itcb-icon-image {
		width: min(var(--itcb-icon-size, 54px), 22vw);
		height: min(var(--itcb-icon-size, 54px), 22vw);
		font-size: min(var(--itcb-icon-size, 54px), 22vw);
	}
}
