/* Equalize page width across the whole plugin surface (lists, hub pages,
 * homepage sections) -- Blocksy and Elementor sometimes render nearly
 * edge-to-edge here otherwise, up to 1600px wide. Here everywhere a fixed,
 * narrower column: max-w 1024px.
 */

.ct-container,
.elementor-container {
	max-width: 1024px !important;
}

/* "Full Width" pages (any normal page/article, not built with Elementor)
 * leave the content completely unconstrained -- it still gets a centered
 * column plus side margin here. */
.ct-container-full > article,
.ct-container-full > #content,
.ct-container-full > .content-area {
	max-width: 1024px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}

/* Individual articles (lists): a slightly narrower column than the
 * general page width, but wide enough that an image looks well-aligned
 * instead of looking too small in a narrow reading column. */
.single-post .ct-container-full > article {
	max-width: 900px;
}

/* WordPress' own [caption] shortcode sets a hard inline width (in pixels,
 * equal to the full image) on the surrounding <figure class="wp-caption">.
 * With a large original (e.g. 1000px wide), that width runs straight
 * through the article column -- the image itself has max-width:100%, but
 * the figure around it doesn't, so the text underneath (the caption) and
 * the image together push the whole page wider than intended. Simply bind
 * the figure itself to the column width too. */
.wp-caption {
	max-width: 100% !important;
}

@media (max-width: 480px) {
	.ct-container-full > article,
	.ct-container-full > #content,
	.ct-container-full > .content-area {
		padding-left: 16px;
		padding-right: 16px;
	}
}

/* ==========================================================================
   Article (list): title, meta and reading text.
   ========================================================================== */

/* No extra margin here -- Blocksy's own .ct-container-full already adds
 * 60px of top padding above the article on single posts; stacking our
 * own margin on top of that (as originally ported from the Dutch site,
 * which apparently didn't have that built-in padding) made the gap
 * above the title too large. */
.single-post .entry-header {
	margin-top: 0;
}

/* Blocksy's default byline (author/date/category) is turned off -- we
 * show our own row that fits the voting feature, under the intro (see
 * .t10hq-list-meta, inserted by t10hq_the_content_filter()). */
.single-post .entry-meta {
	display: none;
}

.entry-content,
.entry-content p,
.t10hq-item-text,
.t10hq-list-meta {
	font-family: "Public Sans", system-ui, sans-serif;
}

.entry-content p {
	line-height: 1.7;
}

/* Row under the intro: posted by -- votes -- date. */
.t10hq-list-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 4px 0 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid #2D5053;
	font-size: 13px;
	color: #A9C4C0;
}

.t10hq-list-meta a {
	color: #F3EFE2;
	font-weight: 600;
	text-decoration: none;
}

.t10hq-list-meta a:hover {
	color: #E8A33B;
}

.t10hq-list-meta .t10hq-list-meta-votes {
	color: #E8A33B;
	font-weight: 700;
}

.t10hq-list-meta .t10hq-list-meta-sep {
	color: #2D5053;
}


/* Featured image at the top of the article (see
 * t10hq_featured_image_above_content() in inc-layout.php). Only here --
 * not in the card grids elsewhere (hitlist/newest/category hub) -- does
 * any credit show as a small overlay on the photo. */
.t10hq-featured-wrap {
	position: relative;
	line-height: 0;
	margin: 0 0 28px;
}

.t10hq-featured-image {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border: 1px solid #2D5053;
	display: block;
}

.t10hq-featured-credit {
	position: absolute;
	right: 8px;
	bottom: 8px;
	background: rgba(18, 47, 48, 0.75);
	color: #F3EFE2;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 10px;
	line-height: 1.4;
	padding: 3px 8px;
	border-radius: 2px;
	pointer-events: none;
}

/* Blocksy's default header height (70px, via the --header-height CSS
 * variable on .ct-container in the middle row) looked too heavy now that
 * the site title has a tagline underneath. A bit more compact, desktop
 * and mobile. */
header.ct-header [data-row="middle"] .ct-container {
	--header-height: 58px;
}

/* ==========================================================================
   Header brand mark: "Top10" + "HQ" in two shades, plus a tagline (the
   site tagline from blogdescription) underneath -- same as
   "Muziek"+"Top10" + tagline on muziektop10.nl (see
   t10hq_header_logo_html_fix() in inc-layout.php). The existing,
   self-uploaded logo image (separate from the site-title text) is hidden
   so only this styled text title + tagline remains -- consistent with
   muziektop10.nl/filmfun.nl, which also don't use a separate logo image.
   Deliberate choice, not assumed without asking. The image itself
   (attachment) stays in the media library, only this header display of it
   is turned off. */

.site-logo-container {
	display: none;
}

.site-title a {
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.t10hq-logo-accent {
	color: #E8A33B;
}

.t10hq-header-tagline {
	margin: 2px 0 0;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: #A9C4C0;
	text-transform: none;
}

/* ==========================================================================
   Live hitlist (homepage): lists with the most votes, genuinely live via
   [t10hq_hitlist] -- no vote buttons here, those belong on the list
   itself, not on this overview.
   ========================================================================== */

.t10hq-hitlist {
	display: flex;
	flex-direction: column;
	margin-top: 20px;
}

.t10hq-hitlist-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 12px 16px;
	background: #16393B;
	border: 1px solid #2D5053;
	border-top: none;
	text-decoration: none;
	transition: background-color 120ms ease;
}

.t10hq-hitlist-row:first-child {
	border-top: 1px solid #2D5053;
}

.t10hq-hitlist-row:hover {
	background: #1a4244;
}

.t10hq-hitlist-rank {
	flex-shrink: 0;
	width: 32px;
	font-family: "Public Sans", sans-serif;
	font-weight: 800;
	font-size: 20px;
	color: #E8A33B;
}

.t10hq-hitlist-image {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	overflow: hidden;
}

.t10hq-hitlist-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.t10hq-hitlist-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.t10hq-hitlist-meta {
	font-family: "Public Sans", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	color: #A9C4C0;
}

.t10hq-hitlist-title {
	font-family: "Public Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #F3EFE2;
}

.t10hq-hitlist-row:hover .t10hq-hitlist-title {
	color: #E8A33B;
}

.t10hq-hitlist-empty {
	margin-top: 20px;
	color: #A9C4C0;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 14px;
}

/* ==========================================================================
   Title + content of 1 block (LIVE HITLIST, NEWEST LISTS, POPULAR
   CATEGORY BLOCKS) visually merged into 1 card: the title becomes a
   header bar INSIDE the same border, instead of separate text above it.
   The "All X ->" link deliberately stays separate, BELOW the block.
   ========================================================================== */

.t10hq-block-title-bar {
	/* Full border, same as any individual item (.t10hq-hitlist-row) --
	 * this makes the title look like the same kind of box in the row,
	 * with exactly the same divider line to the first item as between two
	 * items themselves. */
	background: #16393B;
	border: 1px solid #2D5053;
	margin-top: 20px;
}

.t10hq-block-title-bar .elementor-widget-wrap {
	/* Exactly as tall vertically as an item row (.t10hq-hitlist-row, 81px)
	 * -- 26px top/bottom instead of 16px, otherwise the title bar is
	 * shorter than the items below it. */
	padding: 26px 16px !important;
}

.t10hq-block-title-bar h2 {
	margin: 0;
}

.t10hq-block-content .t10hq-hitlist {
	margin-top: 0;
}

.t10hq-block-content .t10hq-hitlist-row:first-child {
	border-top: none;
}

/* ==========================================================================
   "Account" in the main navigation as a button instead of a plain menu
   label -- same as the other call-to-action buttons on the site
   (marigold, bold, uppercase). The same menu item appears in both the
   desktop and the mobile offcanvas menu, so 1 CSS class covers both.
   ========================================================================== */

.t10hq-nav-account-button {
	align-items: center !important;
}

.t10hq-nav-account-button .ct-menu-link {
	align-self: center !important;
	height: auto !important;
	flex: none !important;
	background: #E8A33B;
	color: #24150A !important;
	padding: 9px 16px !important;
	font-weight: 800;
	line-height: normal !important;
}

.t10hq-nav-account-button .ct-menu-link:hover {
	background: #C98A2E;
	color: #24150A !important;
}

#offcanvas .t10hq-nav-account-button .ct-menu-link,
.mobile-menu .t10hq-nav-account-button .ct-menu-link {
	display: inline-block;
	margin-top: 10px;
	padding: 10px 18px !important;
}


/* ==================== kaartgrid.css ==================== */

/* ==========================================================================
   Card grid (homepage): popular lists per category. Same colors/
   typography as the rest of the site, but as a grid of cards instead of
   the row list of t10hq-hitlist.
   ========================================================================== */

.t10hq-card-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 20px;
}

.t10hq-card-grid-item {
	display: flex;
	flex-direction: column;
	background: #16393B;
	border: 1px solid #2D5053;
	text-decoration: none;
	transition: border-color 120ms ease;
}

.t10hq-card-grid-item:hover {
	border-color: #E8A33B;
}

.t10hq-card-grid-image {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #122F30;
}

.t10hq-card-grid-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.t10hq-card-grid-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 28px;
	color: #2D5053;
}

.t10hq-card-grid-votes {
	position: absolute;
	right: 8px;
	bottom: 8px;
	background: rgba(18, 47, 48, 0.85);
	color: #E8A33B;
	font-family: "Public Sans", sans-serif;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 7px;
	border-radius: 2px;
}

.t10hq-card-grid-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px;
}

.t10hq-card-grid-category {
	font-family: "Public Sans", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.6px;
	color: #A9C4C0;
}

.t10hq-card-grid-title {
	font-family: "Public Sans", sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: #F3EFE2;
}

.t10hq-card-grid-item:hover .t10hq-card-grid-title {
	color: #E8A33B;
}

/* 2 columns (smaller category blocks on the homepage). */
.t10hq-card-grid--small {
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 767px) {
	.t10hq-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.t10hq-card-grid-text {
		padding: 10px;
	}
	.t10hq-card-grid-title {
		font-size: 13px;
	}
}


/* ==================== footer.css ==================== */

/* Expanded footer (columns), above the theme's existing thin bottom bar
 * (copyright + Footer Menu). Same background color as that bottom bar so
 * they blend seamlessly. */

/* The theme's own "Footer Menu" is exactly the same row of links as our
 * own "More" column above -- it was duplicated. The copyright text next
 * to it stays, only this menu is removed. */
#footer-menu {
	display: none;
}

.t10hq-footer {
	background: #16393B;
	border-top: 1px solid #2D5053;
}

.t10hq-footer-inner {
	max-width: 1024px;
	margin: 0 auto;
	padding: 56px 20px 40px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 32px;
	box-sizing: border-box;
}

.t10hq-footer-logo {
	display: inline-block;
	font-family: "Public Sans", sans-serif;
	font-weight: 800;
	font-size: 20px;
	letter-spacing: 0.02em;
	color: #F3EFE2;
	text-decoration: none;
}

.t10hq-logo-accent {
	color: #E8A33B;
}

.t10hq-footer-tagline {
	margin: 8px 0 0;
	font-family: "Public Sans", sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #A9C4C0;
}

.t10hq-footer-blurb {
	margin: 14px 0 0;
	max-width: 320px;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 13px;
	line-height: 1.6;
	color: #A9C4C0;
}

.t10hq-footer-column-title {
	margin: 0 0 14px;
	font-family: "Public Sans", sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #F3EFE2;
}

.t10hq-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.t10hq-footer-links a {
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 14px;
	color: #A9C4C0;
	text-decoration: none;
}

.t10hq-footer-links a:hover {
	color: #E8A33B;
}

@media (max-width: 900px) {
	.t10hq-footer-inner {
		grid-template-columns: 1fr 1fr;
		row-gap: 40px;
	}

	.t10hq-footer-brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.t10hq-footer-inner {
		grid-template-columns: 1fr;
		padding: 40px 20px 32px;
		gap: 32px;
	}
}


/* ==========================================================================
   Homepage layout: hero + per-category card-grid sections.
   ========================================================================== */

.t10hq-home {
	max-width: 1024px;
	margin: 0 auto;
	padding: 40px 20px 60px;
	box-sizing: border-box;
}

.t10hq-home-section {
	margin-bottom: 48px;
}

.t10hq-home-section h2 {
	font-family: "Public Sans", sans-serif;
	font-size: 24px;
	font-weight: 800;
	color: #F3EFE2;
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid #2D5053;
}

.t10hq-home-more {
	margin: 16px 0 0;
	text-align: right;
}

.t10hq-home-more a {
	font-family: "Public Sans", sans-serif;
	font-size: 13px;
	font-weight: 700;
	color: #E8A33B;
	text-decoration: none;
}

.t10hq-home-more a:hover {
	color: #F3EFE2;
}

/* ==========================================================================
   Homepage v2: hero (headline + search + category pills + CTA) plus a
   2-column grid of titled list boxes -- matches filmfun.nl's homepage
   layout (numbered row-lists in titled boxes, not big image cards).
   ========================================================================== */

.t10hq-home-hero {
	text-align: center;
	padding: 56px 20px 40px;
	max-width: 720px;
	margin: 0 auto;
}

.t10hq-home-hero h1 {
	font-family: "Public Sans", sans-serif;
	font-size: 34px;
	font-weight: 800;
	color: #F3EFE2;
	margin: 0 0 24px;
}

.t10hq-home-search {
	display: flex;
	gap: 10px;
	max-width: 520px;
	margin: 0 auto 24px;
}

.t10hq-home-search input {
	flex: 1;
	background: #16393B;
	border: 1px solid #2D5053;
	color: #F3EFE2;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 15px;
	padding: 12px 16px;
}

.t10hq-home-search input::placeholder {
	color: #6d8c8a;
}

.t10hq-home-search input:focus {
	outline: 2px solid #E8A33B;
	outline-offset: 1px;
}

.t10hq-home-search button {
	background: #E8A33B;
	color: #24150A;
	border: none;
	padding: 0 22px;
	font-family: "Public Sans", sans-serif;
	font-weight: 700;
	cursor: pointer;
}

.t10hq-home-search button:hover {
	background: #C98A2E;
}

.t10hq-home-pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: 28px;
}

.t10hq-home-pills a {
	background: #16393B;
	border: 1px solid #2D5053;
	color: #F3EFE2;
	font-family: "Public Sans", sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	padding: 10px 18px;
	text-decoration: none;
}

.t10hq-home-pills a:hover {
	border-color: #E8A33B;
	color: #E8A33B;
}

.t10hq-home-cta {
	display: inline-block;
	background: #E8A33B;
	color: #24150A !important;
	font-family: "Public Sans", sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	font-size: 14px;
	letter-spacing: 0.5px;
	padding: 16px 32px;
	text-decoration: none;
}

.t10hq-home-cta:hover {
	background: #C98A2E;
}

.t10hq-home-grid-2col {
	max-width: 1024px;
	margin: 0 auto 28px;
	padding: 0 20px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.t10hq-home-box-title {
	background: #16393B;
	border: 1px solid #2D5053;
	border-bottom: none;
	padding: 16px 20px;
}

.t10hq-home-box-title h2 {
	margin: 0;
	font-family: "Public Sans", sans-serif;
	font-size: 17px;
	font-weight: 800;
	color: #F3EFE2;
}

.t10hq-home-box-content .t10hq-hitlist {
	margin-top: 0;
}

.t10hq-home-box-content .t10hq-hitlist-row:first-child {
	border-top: none;
}

@media (max-width: 700px) {
	.t10hq-home-grid-2col {
		grid-template-columns: 1fr;
	}
	.t10hq-home-hero h1 {
		font-size: 26px;
	}
	.t10hq-home-search {
		flex-direction: column;
	}
}