.skip-link {
	position: absolute;
	left: 0.75rem;
	top: -100%;
	z-index: 100000;
	padding: 0.75rem 1rem;
	background: var(--color-ink);
	color: var(--color-paper);
}

.skip-link:focus {
	top: 0.75rem;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	clip: auto !important;
	height: auto;
	width: auto;
}

/*
 * Base = 390px. Do not use 100vw on full-bleed: it causes 1px horizontal scroll
 * when a scrollbar is present. Root padding in theme.json handles gutters.
 */
.wp-site-blocks,
.wp-block-group.alignfull,
.wp-block-group.alignwide {
	max-width: 100%;
}

header.wp-block-group.alignfull,
footer.wp-block-group.alignfull {
	padding-left: max(0.75rem, env(safe-area-inset-left));
	padding-right: max(0.75rem, env(safe-area-inset-right));
}

.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-search__button,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-button__link {
	min-height: 44px;
	min-width: 44px;
}

.wp-block-site-logo img {
	height: auto;
}

.wptotem-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.wptotem-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

.wptotem-table-scroll:focus {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.wptotem-table-scroll table {
	width: 100%;
	border-collapse: collapse;
}

input,
select,
textarea {
	font-size: 16px;
	max-width: 100%;
}

img,
video,
svg {
	max-width: 100%;
	height: auto;
}

@media (min-width: 768px) {
	.wp-block-columns {
		gap: var(--wp--preset--spacing--50);
	}

	.wptotem-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.wp-block-navigation .wp-block-navigation-item__content {
		min-width: 0;
	}
}

@media (min-width: 1440px) {
	.wptotem-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.wp-block-button__link:hover,
.wp-block-search__button:hover {
	filter: brightness(0.92);
}

.wp-block-button__link:focus-visible,
.wp-block-search__button:focus-visible,
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.wp-block-button__link:disabled,
.wp-block-button__link[aria-disabled="true"] {
	opacity: 0.5;
	cursor: not-allowed;
}

.wp-block-button__link[aria-busy="true"] {
	pointer-events: none;
}

.wptotem-field-error,
.wpcf7-not-valid-tip,
.wp-block-search__input[aria-invalid="true"] {
	color: var(--color-danger);
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
	outline: 2px solid var(--color-danger);
	outline-offset: 1px;
}

.wptotem-form-success {
	border-left: 3px solid var(--color-accent);
	padding: 0.75rem 1rem;
}

