/* ==========================================================================
   C2 – generic content pages (Terms, Cookies, posts, archives, search, 404,
   and legacy Elementor pages). The designed pages use assets/css/design/*.

   No global resets here: the design CSS relies on browser defaults, so every
   rule below is scoped to .pg-generic and wrapped in :where() (0 specificity)
   so Elementor widgets on legacy pages still win.
   ========================================================================== */

:root {
	--c2-blue: #009FE3;
	--c2-blue-dark: #0A8FCB;
	--c2-ink: #15171A;
	--c2-text: #4A4F57;
	--c2-muted: #6B6F73;
	--c2-border: rgba(21, 23, 26, .1);
}

/* Generic pages sit inside the white .hero-wrap under the fixed navbar. */
.pg-generic .c2-main { display: block; min-height: 40vh; }

:where(.pg-generic) .container {
	width: 100%;
	max-width: 1104px;
	margin-inline: auto;
	padding-inline: 32px;
	box-sizing: border-box;
}
:where(.pg-generic) .container--narrow { max-width: 824px; }
:where(.pg-generic) .section { padding-block: 56px 96px; }
@media (max-width: 820px) {
	:where(.pg-generic) .container { padding-inline: 20px; }
	:where(.pg-generic) .section { padding-block: 32px 64px; }
}

:where(.pg-generic .c2-main) { color: var(--c2-text); font-size: 16px; line-height: 1.7; }
:where(.pg-generic .c2-main) :where(h1, h2, h3, h4) { color: var(--c2-ink); font-weight: 800; line-height: 1.15; letter-spacing: -.01em; margin: 0 0 .6em; }
:where(.pg-generic) .page-title,
:where(.pg-generic) .entry-title { font-size: clamp(30px, 4.5vw, 52px); text-transform: uppercase; letter-spacing: -.025em; }
:where(.pg-generic .entry-content) :where(h2) { font-size: 28px; margin-top: 1.4em; }
:where(.pg-generic .entry-content) :where(h3) { font-size: 20px; margin-top: 1.2em; }
:where(.pg-generic .entry-content) :where(a) { color: var(--c2-blue); text-decoration: underline; text-underline-offset: 3px; }
:where(.pg-generic .entry-content) :where(ul, ol) { padding-left: 1.25em; }
:where(.pg-generic .entry-content) :where(img) { max-width: 100%; height: auto; border-radius: 16px; }
:where(.pg-generic) .page-header { margin-bottom: 32px; }
:where(.pg-generic) .entry-meta { color: var(--c2-muted); font-size: 14px; }

:where(.pg-generic) .search-form { display: flex; gap: 8px; max-width: 480px; }
:where(.pg-generic .c2-main) :where(input[type="search"], input[type="text"], input[type="email"], textarea) {
	width: 100%; height: 46px; box-sizing: border-box; padding: 0 14px;
	border: 1.5px solid var(--c2-border); border-radius: 10px; background: #fff;
	font: inherit; font-size: 15px; color: var(--c2-ink);
}
:where(.pg-generic) .btn,
:where(.pg-generic .c2-main) :where(button[type="submit"], input[type="submit"]) {
	display: inline-flex; align-items: center; justify-content: center; height: 46px; padding: 0 22px;
	border: 0; border-radius: 10px; background: var(--c2-blue); color: #fff;
	font: inherit; font-size: 14px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
	text-decoration: none; cursor: pointer;
}

:where(.pg-generic) .post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
:where(.pg-generic) .card { display: flex; flex-direction: column; background: #F5F5F5; border-radius: 28px; overflow: hidden; }
:where(.pg-generic) .card__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
:where(.pg-generic) .card__body { padding: 24px; }
:where(.pg-generic) .card__title { font-size: 20px; }
:where(.pg-generic) .card__title a { color: inherit; text-decoration: none; }
:where(.pg-generic) .pagination { margin-top: 48px; }
:where(.pg-generic) .pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
:where(.pg-generic) .pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; box-sizing: border-box; border-radius: 999px; background: #F5F5F5; color: var(--c2-ink); font-weight: 700; text-decoration: none; }
:where(.pg-generic) .pagination .page-numbers.current { background: var(--c2-blue); color: #fff; }
:where(.pg-generic) .post-nav .nav-links { display: flex; justify-content: space-between; gap: 24px; }

/* Utilities (all pages) */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 2147483001;
	width: auto; height: auto; padding: 10px 16px; margin: 0; clip: auto;
	border-radius: 999px; background: #009FE3; color: #fff;
	font: 700 14px/1.2 'Plus Jakarta Sans', system-ui, sans-serif; text-decoration: none;
}
