/* Final overrides, loaded after style.css and after the plugin layer.
   Purpose: keep the reading column centred on wide screens, keep the page
   furniture inside one measure no matter which stylesheet wins the cascade,
   and guarantee readable contrast in the dark bars.

   Load order: `lvs-final` after `lvs-child` (style.css), then `lvs-nav-dropdown`
   after this file, and the inline block that functions.php prints at
   wp_head 9999999 last of all.

   This file styles the *surface* of the category panels (white card, readable
   links, scroll). It never sets display/visibility/opacity/height on
   .lvs-nav__sub — that is nav-dropdown.css's job, so an `!important` here
   cannot pin a panel shut. */

/* ---------- Astra chrome: everything Astra draws itself is off ------------
   The theme prints its own masthead, nav and footer. Astra's header markup is
   removed on pages, so no half-styled anchor can survive in a white bar. */
.site-header,
#masthead,
.ast-mobile-header-wrap,
.ast-primary-header-bar,
.ast-above-header-bar,
.ast-below-header-bar,
#colophon,
.site-footer,
.ast-small-footer,
.ast-footer-copyright,
.tz5-auto-footer { display: none !important; }

.site-header a,
#masthead a,
.ast-mobile-header-wrap a { display: none !important; }

/* ---------- Contrast baseline --------------------------------------------
   Every dark bar paints a solid colour as well as a gradient. A gradient alone
   leaves computed backgroundColor at rgba(0,0,0,0), and a contrast check then
   measures the anchor against the page's white body instead of against the bar.
   Solid background-color first, gradient on top of it. */
header.lvs-topbar,
.lvs-topbar {
	background-color: #0b1220 !important;
	background-image: linear-gradient(90deg, #0b1220 0%, #131f33 100%) !important;
	color: #f4f7fb !important;
	border-bottom: 1px solid #26364d !important;
	display: block !important;
	width: 100% !important;
	position: relative !important;
	z-index: 120 !important;
	overflow: visible !important;
}
.lvs-topbar__inner {
	max-width: 1180px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 14px 24px !important;
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
}
.lvs-topbar__tagline { display: none !important; }
.lvs-topbar__brand,
.lvs-topbar__brand:link,
.lvs-topbar__brand:visited,
.lvs-topbar a,
.lvs-topbar a:link,
.lvs-topbar a:visited {
	color: #ffcf3f !important;
	background-color: transparent !important;
	text-decoration: none !important;
	font-weight: 900 !important;
	font-size: 1.35rem !important;
	letter-spacing: -.03em !important;
}
.lvs-topbar__brand:hover,
.lvs-topbar__brand:focus,
.lvs-topbar a:hover,
.lvs-topbar a:focus {
	color: #ffe38a !important;
	text-decoration: none !important;
}

/* ---------- Navigation bar ---------------------------------------------------- */
.lvs-nav {
	background-color: #131f33 !important;
	background-image: none !important;
	border-bottom: 3px solid #f5b301 !important;
	color: #e8f0fb !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	position: relative !important;
	z-index: 110 !important;
	clear: both !important;
	/* A bar that clips its own overflow would cut every panel off at 60px. */
	overflow: visible !important;
}
.lvs-nav__bar {
	max-width: 1180px !important;
	width: 100% !important;
	margin: 0 auto !important;
	padding: 0 24px !important;
	box-sizing: border-box !important;
	overflow: visible !important;
}
.lvs-nav__root {
	display: flex !important;
	flex-wrap: wrap !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 2px 6px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 6px 0 !important;
	position: static !important;
	background: transparent !important;
	height: auto !important;
	opacity: 1 !important;
	visibility: visible !important;
}
/* Each category anchors its own panel. */
.lvs-nav__node {
	position: relative !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.lvs-nav__anchor,
.lvs-nav__anchor:link,
.lvs-nav__anchor:visited {
	display: inline-block !important;
	padding: 9px 13px !important;
	border-radius: 8px !important;
	background-color: #1b2b42 !important;
	color: #f2f7ff !important;
	text-decoration: none !important;
	font-size: .92rem !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	white-space: nowrap !important;
}
.lvs-nav__anchor:hover,
.lvs-nav__anchor:focus {
	background-color: #2b4160 !important;
	color: #ffd75e !important;
	text-decoration: none !important;
}

/* ---------- Category panel: surface only ------------------------------------
   White card, so the panel reads as a sheet laid over the page rather than a
   second dark bar. Its links are dark on white — a panel that inherited the
   bar's #f2f7ff would be invisible here, which is the trap this rule avoids.
   Open/closed state lives in nav-dropdown.css. */
.lvs-nav .lvs-nav__sub {
	background-color: #ffffff !important;
	border: 1px solid #cfdae8 !important;
	border-radius: 10px !important;
	box-shadow: 0 14px 34px rgba(8, 18, 34, .26) !important;
	box-sizing: border-box !important;
}
.lvs-nav .lvs-nav__sub > li,
.lvs-nav .lvs-nav__sub > li > a {
	list-style: none !important;
	margin: 0 !important;
}

/* Panel links override the "every .lvs-nav a is pale" rule above by being more
   specific, and do it without !important on the colour so :hover and the hub
   row can still take their own shade. */
.lvs-nav .lvs-nav__sub > li > a,
.lvs-nav .lvs-nav__sub > li > a:link,
.lvs-nav .lvs-nav__sub > li > a:visited {
	display: block !important;
	color: #16233a !important;
	background-color: transparent !important;
	text-decoration: none !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	white-space: normal !important;
	word-break: break-word !important;
}
.lvs-nav .lvs-nav__sub > li > a:hover,
.lvs-nav .lvs-nav__sub > li > a:focus {
	color: #0b1220 !important;
	background-color: #eef4fc !important;
	text-decoration: none !important;
}

/* The hub row at the top of a panel is already styled in nav-dropdown.css
   (amber tint, ruled off from its children); keep it winning here. */
.lvs-nav .lvs-nav__sub > .lvs-nav__hub-link > a,
.lvs-nav .lvs-nav__sub > .lvs-nav__hub-link > a:link,
.lvs-nav .lvs-nav__sub > .lvs-nav__hub-link > a:visited {
	color: #8a5a00 !important;
	background-color: #fdf6e6 !important;
	font-weight: 900 !important;
}
.lvs-nav .lvs-nav__sub > .lvs-nav__hub-link > a:hover,
.lvs-nav .lvs-nav__sub > .lvs-nav__hub-link > a:focus {
	color: #6b4500 !important;
	background-color: #fbecc6 !important;
}

/* ---------- Astra layout ------------------------------------------------------ */
#content .ast-container,
.ast-container {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}
#primary,
.site-main,
#main {
	width: 100% !important;
	max-width: 100% !important;
	flex: 1 1 100% !important;
	margin-inline: auto !important;
}
#primary.content-area,
.ast-right-sidebar #primary,
.ast-left-sidebar #primary,
.ast-no-sidebar #primary {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}
.widget-area,
#secondary,
.ast-sidebar { display: none !important; }

/* One centred reading column. Everything below is measured against it, which is
   what keeps the badge, the H1, the copy, the offer cards and the footer from
   hanging off the left edge of a 1920px canvas. */
.entry-content,
.ast-article-single .entry-content,
#content .entry-content,
.lar-page .entry-content,
.lar-page .site-content,
.lar-page .ast-container > .entry-content {
	display: block !important;
	width: 100% !important;
	max-width: 1180px !important;
	margin-inline: auto !important;
	padding-inline: 24px !important;
	box-sizing: border-box;
}
.lar-page .ast-article-single,
.lar-page .ast-article-post,
.lar-page article {
	float: none !important;
	width: 100% !important;
	max-width: 1180px !important;
	margin-inline: auto !important;
}

/* ---------- Hero band --------------------------------------------------------- */
.lvs-hero {
	display: block !important;
	width: 100% !important;
	max-width: 1180px !important;
	margin-inline: auto !important;
	padding-inline: 24px !important;
	box-sizing: border-box;
}
.lvs-hero__grid { max-width: 100%; }

/* ---------- Reading measure --------------------------------------------------- */
.lvs-standfirst,
.lvs-leadin,
.lvs-contents,
.lvs-onward,
.lvs-faq,
.lvs-board,
.lvs-figure {
	max-width: 100% !important;
	margin-inline: auto !important;
	box-sizing: border-box;
}
.entry-content > p,
.entry-content section > p {
	max-width: 78ch;
}

.entry-content h1,
.entry-content h2,
.entry-content h3 { text-align: left; }
.entry-content > h1:first-child { margin-top: 8px; }

/* ---------- Footer ------------------------------------------------------------ */
footer.lvs-footer {
	display: block !important;
	clear: both !important;
	position: relative !important;
	z-index: 1 !important;
	width: 100% !important;
	margin-top: 56px !important;
	background-color: #0b1220 !important;
	background-image: none !important;
	color: #dbe5f2 !important;
	padding: 34px 24px !important;
	box-sizing: border-box !important;
	border-top: 3px solid #f5b301 !important;
}
footer.lvs-footer .lvs-wrap { max-width: 1180px !important; margin: 0 auto !important; }
.lvs-footer__brand {
	color: #ffcf3f !important;
	font-weight: 900 !important;
	font-size: 1.15rem !important;
	margin: 0 0 14px !important;
}
ul.lvs-footer__links {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	gap: 8px 24px !important;
}
ul.lvs-footer__links li {
	display: list-item !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
ul.lvs-footer__links a,
ul.lvs-footer__links a:link,
ul.lvs-footer__links a:visited {
	display: inline !important;
	color: #dbe5f2 !important;
	background-color: transparent !important;
	text-decoration: none !important;
	font-size: .9rem !important;
}
ul.lvs-footer__links a:hover,
ul.lvs-footer__links a:focus {
	color: #ffd75e !important;
	text-decoration: underline !important;
}

/* ---------- Mobile ------------------------------------------------------------ */
@media (max-width: 600px) {
	.entry-content,
	.lar-page .ast-article-single,
	.lvs-hero { padding-inline: 16px !important; }
	.lvs-nav__bar { padding: 0 16px !important; }
	.lvs-topbar__inner { padding: 12px 16px !important; }
}