.smartl-tiles {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-flow: dense;
	gap: 3px;
}

.wp-block-post-template.smartl-tiles {
	padding: 0;
	margin-block: 0;
}

.wp-block-post-template.smartl-tiles > li {
	margin: 0;
}

.wp-block-cover.is-style-tile .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.smartl-tiles > .is-tall {
	grid-row: span 2;
}

.smartl-tiles > .is-wide {
	grid-column: span 2;
}

.wp-block-cover.is-style-tile {
	aspect-ratio: 1;
	min-height: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

.smartl-tiles > .wp-block-cover.is-style-tile:is(.is-tall, .is-wide) {
	aspect-ratio: auto;
}

.wp-block-cover.is-style-tile .wp-block-cover__image-background {
	transition: transform 0.4s ease;
}

.wp-block-cover.is-style-tile:hover .wp-block-cover__image-background,
.wp-block-cover.is-style-tile:focus-within .wp-block-cover__image-background {
	transform: scale(1.05);
}

.wp-block-cover.is-style-tile :where(h2, h3, p) {
	color: var(--wp--preset--color--white);
	margin: 0;
	line-height: 1.25;
	text-shadow: 0 1px 3px rgb(0 0 0 / 0.35);
}

.wp-block-cover.is-style-tile .wp-block-cover__inner-container {
	position: absolute;
	inset: 0;
	width: auto;
	padding: 1rem 1.25rem;
}

.wp-block-cover.is-style-tile .wp-block-cover__inner-container > * + * {
	margin-block-start: 0.9em;
}

@media (max-width: 900px) {
	.smartl-tiles {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.smartl-tiles {
		grid-template-columns: 1fr;
	}

	.smartl-tiles > :is(.is-tall, .is-wide) {
		grid-row: auto;
		grid-column: auto;
	}

	.smartl-tiles > .wp-block-cover.is-style-tile:is(.is-tall, .is-wide) {
		aspect-ratio: 1;
	}
}

.wp-block-cover.is-style-tile a {
	color: inherit;
	text-decoration: none;
}

.wp-block-cover.is-style-tile a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}

.wp-block-group.is-style-price-card {
	background: var(--wp--preset--color--white);
	border-radius: 6px;
	padding: var(--wp--preset--spacing--40);
	box-shadow: 0 2px 8px rgb(0 0 0 / 0.06);
}

.wp-block-group.is-style-price-card .smartl-price {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--primary);
}

.smartl-price {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 300;
	line-height: 1.2;
}

.wp-block-post-content > .smartl-hero:first-child {
	margin-block-start: 0;
}

.smartl-hero .wp-block-post-title {
	text-shadow: 0 2px 12px rgb(0 0 0 / 0.4);
}

.wp-block-details {
	background: var(--wp--preset--color--white);
	border-radius: 6px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.wp-block-details summary {
	display: flex;
	align-items: center;
	gap: 0.6em;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "";
	flex: none;
	width: 1em;
	height: 1em;
	margin-inline-start: auto;
	background-color: var(--wp--preset--color--primary);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 4v16M4 12h16'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform 0.3s ease;
}

.wp-block-details[open] summary::after {
	transform: rotate(180deg);
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M4 12h16'/%3E%3C/svg%3E");
}

.wp-block-details summary::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background-color: var(--wp--preset--color--primary);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 11v6'/%3E%3Ccircle cx='12' cy='7.5' r='0.6' fill='black'/%3E%3C/svg%3E") no-repeat center / contain;
}

.wp-block-details > summary + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.wp-block-details {
	box-sizing: border-box;
}

@supports (interpolate-size: allow-keywords) {
	.wp-block-details {
		interpolate-size: allow-keywords;
	}

	.wp-block-details::details-content {
		block-size: 0;
		overflow: hidden;
		transition:
			block-size 0.35s ease,
			content-visibility 0.35s allow-discrete;
	}

	.wp-block-details[open]::details-content {
		block-size: auto;
	}

	@media (prefers-reduced-motion: reduce) {
		.wp-block-details::details-content {
			transition: none;
		}
	}
}

.wp-block-image.is-style-picto img {
	mix-blend-mode: multiply;
}

a.is-external::after {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.75em;
	margin-inline-start: 0.25em;
	vertical-align: baseline;
	background-color: currentColor;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4 10 14M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E") no-repeat center / contain;
}

.wp-block-post-content a:where(:not(.wp-element-button)) {
	position: relative;
	top: 0;
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px;
	transition:
		color 0.2s ease,
		top 0.2s ease,
		background-size 0.3s ease;
}

.wp-block-post-content a:where(:not(.wp-element-button)):is(:hover, :focus-visible) {
	top: -1px;
	background-size: 100% 1px;
}

.wp-block-post-content .wp-block-cover.is-style-tile a {
	position: static;
	background: none;
}

.wpcf7-form {
	--field-border: #d4d4d4;
	display: grid;
	gap: var(--wp--preset--spacing--30);
	max-width: 760px;
	margin-inline: auto;
}

.smartl-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
}

.smartl-form__grid > .is-full {
	grid-column: 1 / -1;
}

.wpcf7-form label {
	display: grid;
	gap: 0.35rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--black);
}

.wpcf7-form label small {
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.wpcf7-form :is(input:not([type="submit"], [type="checkbox"], [type="radio"]), select, textarea) {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 1rem;
	border: 1px solid var(--field-border);
	border-radius: 6px;
	background: var(--wp--preset--color--light);
	color: var(--wp--preset--color--foreground);
	font: inherit;
	font-weight: 400;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;
}

.wpcf7-form textarea {
	resize: vertical;
	min-height: 8rem;
}

.wpcf7-form :is(input, select, textarea)::placeholder {
	color: #a3a3a3;
}

.wpcf7-form :is(input, select, textarea):focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--white);
	box-shadow: 0 0 0 3px rgb(40 136 179 / 0.2);
}

.wpcf7-form :is(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--wp--preset--color--accent);
}

.wpcf7-not-valid-tip {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--wp--preset--color--accent);
}

.smartl-form__note {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.wpcf7-form .wpcf7-submit {
	justify-self: start;
	padding: 0.8rem 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		transform 0.2s ease;
}

.wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .wpcf7-submit:focus-visible {
	background: var(--wp--preset--color--black);
	transform: translateY(-1px);
}

.wpcf7-form .wpcf7-spinner {
	margin: 0 0 0 1rem;
	vertical-align: middle;
}

.smartl-form__info {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-radius: 6px;
	background: var(--wp--preset--color--light);
	font-size: var(--wp--preset--font-size--small);
}

.smartl-form__info p {
	margin: 0;
}

.smartl-form__info p + p {
	margin-top: 0.5rem;
}

.wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 0.75rem 1rem;
	border-radius: 6px;
	border-width: 1px;
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 600px) {
	.smartl-form__grid {
		grid-template-columns: 1fr;
	}
}

header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

header.wp-block-template-part.is-scrolled {
	box-shadow: 0 2px 12px rgb(0 0 0 / 0.25);
}

header.wp-block-template-part.is-hidden {
	transform: translateY(calc(-100% - var(--wp-admin--admin-bar--height, 0px)));
	box-shadow: none;
}

header.wp-block-template-part:focus-within {
	transform: none;
}

.smartl-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 90;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	box-shadow: 0 4px 12px rgb(0 0 0 / 0.2);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.75rem);
	transition:
		opacity 0.3s ease,
		transform 0.3s ease,
		visibility 0.3s,
		background-color 0.2s ease;
}

.smartl-to-top::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--wp--preset--color--white);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/svg%3E") no-repeat center / 1.1rem;
}

.smartl-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.smartl-to-top:hover,
.smartl-to-top:focus-visible {
	background: var(--wp--preset--color--black);
}

@media (prefers-reduced-motion: reduce) {
	header.wp-block-template-part,
	.smartl-to-top {
		transition: none;
	}
}
