/**
 * System pages (404 / search) layout helpers.
 * GeneratePress main.min.css stays dequeued site-wide; these rules cover
 * parent 404/search markup that otherwise falls back to unstyled browser defaults.
 *
 * Note: Local 404 markup is `#primary.content-area > .site-main > .inside-article`
 * (no `.site-content` wrapper).
 */

.error404 #primary.content-area,
.search #primary.content-area {
	width: 100%;
	max-width: 1260px; /* match .my-container */
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
	word-wrap: break-word;
}

.error404 .site-main,
.search .site-main {
	width: 100%;
}

.error404.separate-containers .site-main,
.search.separate-containers .site-main {
	margin: 40px auto 64px;
}

.error404.separate-containers .inside-article,
.search.separate-containers .inside-article {
	padding: 40px 0;
	max-width: 720px;
}

.error404 .entry-header,
.search .entry-header {
	margin-bottom: 16px;
}

.error404 .entry-title,
.search .entry-title {
	margin: 0 0 12px;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 700;
	line-height: 1.2;
	color: #111;
}

.error404 .entry-content > p,
.search .entry-content > p {
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 1.6;
	color: #454545;
	max-width: 52ch;
}

/* WP search form: <label><input></label> + <button> */
.error404 .search-form,
.search .search-form {
	display: flex;
	align-items: stretch;
	max-width: 480px;
	margin: 0;
}

.error404 .search-form > label,
.search .search-form > label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	display: block;
}

.error404 .search-form .search-field,
.search .search-form .search-field {
	display: block;
	width: 100%;
	margin: 0;
	padding: 10px 15px;
	border: 1px solid #d0d0d0;
	border-radius: 0;
	border-right: 0;
	font-size: 15px;
	line-height: 1.4;
	background: #fff;
	color: #111;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
}

.error404 .search-form .search-field:focus,
.search .search-form .search-field:focus {
	outline: 2px solid #5a30c8;
	outline-offset: -1px;
	position: relative;
	z-index: 1;
}

.error404 .search-form .search-submit,
.search .search-form .search-submit {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 10px 16px;
	border: 1px solid #55555e;
	border-radius: 0;
	background: #55555e;
	color: #fff;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: button;
	appearance: button;
}

.error404 .search-form .search-submit .gp-icon,
.search .search-form .search-submit .gp-icon {
	display: inline-flex;
	width: 1em;
	height: 1em;
}

.error404 .search-form .search-submit .gp-icon svg,
.search .search-form .search-submit .gp-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.error404 .search-form .search-submit:hover,
.search .search-form .search-submit:hover,
.error404 .search-form .search-submit:focus-visible,
.search .search-form .search-submit:focus-visible {
	background: #3f3f46;
	border-color: #3f3f46;
}

.error404 .search-form .search-submit:focus-visible,
.search .search-form .search-submit:focus-visible {
	outline: 2px solid #5a30c8;
	outline-offset: 2px;
}

@media (max-width: 991px) {
	.error404 #primary.content-area,
	.search #primary.content-area {
		max-width: 98%;
		padding-left: 16px;
		padding-right: 16px;
	}
}

@media (max-width: 767px) {
	.error404.separate-containers .site-main,
	.search.separate-containers .site-main {
		margin: 24px auto 48px;
	}

	.error404.separate-containers .inside-article,
	.search.separate-containers .inside-article {
		padding: 24px 0;
		max-width: 100%;
	}

	.error404 .search-form,
	.search .search-form {
		max-width: 100%;
	}
}
