/*
Theme Name: EnterpriseWP Dark
Theme URI: https://enterprisewp.agency
Author: Douglas Allen Pemberton
Description: Dark child theme for EnterpriseWP.agency. Built on GeneratePress for weight; dark surfaces, EW blue accent, contrast tuned to avoid glare without dropping legibility.
Template: generatepress
Version: 1.0.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: enterprisewp-dark
*/

/* ============================================================
   PALETTE
   Body text sits at ~13:1 on the base surface. Deliberately
   not #fff on #000 - maximum contrast reads as glare.
   ============================================================ */
:root {
	--ew-bg:            #0b1016;
	--ew-surface:       #121a24;
	--ew-surface-alt:   #16202c;
	--ew-border:        #22303f;
	--ew-text:          #d5dde6;
	--ew-heading:       #eaf1f8;
	--ew-muted:         #93a6bb;
	--ew-accent:        #4da3ff;
	--ew-accent-hover:  #7bbcff;
	--ew-accent-dim:    rgba(77, 163, 255, 0.12);
	--ew-shadow:        rgba(0, 0, 0, 0.45);
}

/* ---------- base ---------- */
html { background-color: var(--ew-bg); }

body,
.site,
.site-content,
#page {
	background-color: var(--ew-bg);
	color: var(--ew-text);
}

body { -webkit-font-smoothing: antialiased; }

h1, h2, h3, h4, h5, h6,
.entry-title,
.entry-title a,
.widget-title,
.site-title,
.site-title a {
	color: var(--ew-heading);
}

p, li, dd, dt, td, th, figcaption, .entry-content { color: var(--ew-text); }

small, .entry-meta, .post-meta, .comment-metadata,
.site-description, .wp-block-post-date {
	color: var(--ew-muted);
}

/* ---------- links ---------- */
a { color: var(--ew-accent); }
a:hover, a:focus { color: var(--ew-accent-hover); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--ew-accent);
	outline-offset: 2px;
}

/* ---------- header / nav ---------- */
.site-header,
.main-navigation,
.main-navigation ul ul,
.gb-container.site-header {
	background-color: var(--ew-surface);
	border-bottom: 1px solid var(--ew-border);
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--ew-text);
	background-color: transparent;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus > a,
.main-navigation .main-nav ul li.sfHover > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--ew-accent);
	background-color: var(--ew-accent-dim);
}

.main-navigation ul ul {
	border: 1px solid var(--ew-border);
	box-shadow: 0 8px 24px var(--ew-shadow);
}

/* ---------- content surfaces ---------- */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .container,
.inside-page-header,
.sidebar .widget,
.wp-block-group.has-background {
	background-color: var(--ew-surface);
	border: 1px solid var(--ew-border);
	border-radius: 6px;
}

.entry-content > * { max-width: 100%; }

/* ---------- footer ---------- */
.site-footer,
.footer-widgets,
.site-info,
.footer-bar {
	background-color: var(--ew-surface-alt);
	color: var(--ew-muted);
	border-top: 1px solid var(--ew-border);
}

.site-footer a, .site-info a { color: var(--ew-accent); }

/* ---------- buttons ---------- */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
a.wp-block-button__link,
.wp-block-button__link {
	background-color: var(--ew-accent);
	color: #06101c;
	border: 1px solid var(--ew-accent);
	border-radius: 4px;
	font-weight: 600;
}

button:hover,
input[type="submit"]:hover,
a.button:hover,
.wp-block-button__link:hover {
	background-color: var(--ew-accent-hover);
	border-color: var(--ew-accent-hover);
	color: #06101c;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	color: var(--ew-accent);
}

/* ---------- forms (FluentForm + core) ---------- */
input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"],
input[type="tel"], input[type="date"], select, textarea,
.frm-fluent-form input, .frm-fluent-form textarea, .frm-fluent-form select {
	background-color: var(--ew-bg);
	color: var(--ew-text);
	border: 1px solid var(--ew-border);
	border-radius: 4px;
}

input::placeholder, textarea::placeholder { color: var(--ew-muted); }

input:focus, textarea:focus, select:focus {
	border-color: var(--ew-accent);
	background-color: var(--ew-bg);
	color: var(--ew-text);
}

.frm-fluent-form label, .ff-el-input--label label { color: var(--ew-text); }

/* ---------- tables, code, quotes ---------- */
table, th, td { border-color: var(--ew-border); }
thead th { background-color: var(--ew-surface-alt); color: var(--ew-heading); }
tbody tr:nth-child(even) { background-color: rgba(255, 255, 255, 0.02); }

code, kbd, pre, samp {
	background-color: var(--ew-surface-alt);
	color: var(--ew-accent-hover);
	border: 1px solid var(--ew-border);
	border-radius: 4px;
}

blockquote {
	border-left: 3px solid var(--ew-accent);
	background-color: var(--ew-surface-alt);
	color: var(--ew-text);
}

hr, .wp-block-separator { border-color: var(--ew-border); }

/* ---------- media ---------- */
img, video { max-width: 100%; height: auto; }

/* Legacy assets were authored for a light page. Take the hard
   white edge off without washing out the artwork itself. */
.entry-content img:not(.no-dim) { filter: brightness(0.92) contrast(1.02); }

/* ---------- scrollbar ---------- */
* { scrollbar-color: var(--ew-border) var(--ew-bg); scrollbar-width: thin; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--ew-bg); }
::-webkit-scrollbar-thumb { background: var(--ew-border); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--ew-accent); }

/* ---------- selection ---------- */
::selection { background: var(--ew-accent); color: #06101c; }

/* ---------- print ----------
   Deliberately keeps the dark theme. Printing this site is for
   screen-accurate PDF capture and portfolio use, not paper, and a
   light print sheet would misrepresent the design. Background
   graphics must be enabled in the browser's print dialog. */
@media print {
	html, body, .site, .site-content { background: #0b1016 !important; color: #d5dde6 !important;
		-webkit-print-color-adjust: exact; print-color-adjust: exact; }
	a { color: #4da3ff !important; }
	.main-navigation, .site-header { background-color: #121a24 !important; }
	* { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
	.ewp-mid-nav, .sovereign-faq-block details { background-color: #16202c !important; }
}

/* ============================================================
   LEGACY BRIDGE
   Recovered page content carries 200+ inline <style> blocks from
   the original navy/cyan dark build. They restyle the nav with
   !important via --ewp-* variables, but the :root that defines
   those variables only exists on some pages. On the rest the
   custom property is undefined, `color: var(--ewp-text)` is
   invalid at computed-value time, the colour falls back to
   inherit, and the menu turns invisible.

   Defining them globally here satisfies every one of those rules
   and re-points the legacy palette at this theme's colours.
   ============================================================ */
:root {
	--ewp-bg-deep:    #0b1016;
	--ewp-bg-panel:   #121a24;
	--ewp-bg-rich:    #121a24;
	--ewp-bg-mid:     #16202c;
	--ewp-border:     #22303f;
	--ewp-text:       #d5dde6;
	--ewp-text-muted: #93a6bb;
	--ewp-muted:      #93a6bb;
	--ewp-accent:     #4da3ff;
	--ewp-cyan:       #4da3ff;
	--ewp-highlight:  #7bbcff;
	--ewp-hover:      rgba(77, 163, 255, 0.20);
	--ewp-glow:       0 0 20px rgba(77, 163, 255, 0.16);
	--ewp-shadow:     0 2px 12px rgba(0, 0, 0, 0.45);
}

/* Belt and braces: the legacy rules use !important, so match it.
   Anything undefined upstream still lands on a readable colour. */
.main-navigation,
.main-navigation .inside-navigation,
nav.main-navigation,
.main-nav ul,
.main-nav ul li {
	background-color: var(--ew-surface) !important;
}

.main-navigation a,
.main-navigation .main-nav ul li a,
.nav-menu a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--ew-text) !important;
}

.main-navigation a:hover,
.main-navigation .main-nav ul li:hover > a,
.nav-menu a:hover {
	color: var(--ew-accent-hover) !important;
}

.main-navigation .current-menu-item > a,
.main-navigation .current-page-ancestor > a,
.main-navigation .current-menu-ancestor > a {
	color: var(--ew-accent) !important;
}

.main-navigation ul ul,
.sub-menu {
	background-color: var(--ew-surface-alt) !important;
	border: 1px solid var(--ew-border) !important;
}

.main-navigation ul ul a,
.sub-menu a { color: var(--ew-text) !important; }

.main-navigation ul ul a:hover,
.sub-menu a:hover {
	background: var(--ew-accent) !important;
	color: #06101c !important;
}

/* The in-content nav bars baked into recovered pages were authored
   against a light build. Bring them into the dark scheme instead of
   leaving bright blue slabs mid-page. */
.entry-content [style*="background-color: #1f7fd4"],
.entry-content [style*="background-color:#1f7fd4"],
.entry-content [style*="background: #1f7fd4"],
.entry-content [style*="background:#1f7fd4"] {
	background-color: var(--ew-surface-alt) !important;
	border: 1px solid var(--ew-border);
	border-radius: 6px;
}

/* ---------- mid-content navigation ---------- */
.ewp-mid-nav {
	margin: 2.5em 0;
	padding: 0.9em 1.2em;
	background-color: var(--ew-surface-alt);
	border: 1px solid var(--ew-border);
	border-radius: 6px;
}

.ewp-mid-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4em 0;
}

.ewp-mid-nav__list li { margin: 0; display: flex; align-items: center; }

.ewp-mid-nav__list li::after {
	content: "|";
	color: var(--ew-border);
	padding: 0 0.85em;
}

.ewp-mid-nav__list li:last-child::after { content: ""; padding: 0; }

.ewp-mid-nav__list a {
	color: var(--ew-accent);
	text-decoration: none;
	font-weight: 600;
	padding: 0.15em 0;
	border-bottom: 1px solid transparent;
}

.ewp-mid-nav__list a:hover,
.ewp-mid-nav__list a:focus {
	color: var(--ew-accent-hover);
	border-bottom-color: var(--ew-accent-hover);
}

@media (max-width: 600px) {
	.ewp-mid-nav__list { flex-direction: column; align-items: center; }
	.ewp-mid-nav__list li::after { content: ""; padding: 0; }
	.ewp-mid-nav__list li { padding: 0.3em 0; }
}

/* ---------- recovered FAQ blocks ----------
   Authored inline against a light build: #e2e8f0 borders and
   #475569 body text, both unreadable on a dark surface. Inline
   styles need !important to override. */
.sovereign-faq-block {
	border-top: 1px solid var(--ew-border) !important;
	margin-top: 2rem;
}

.sovereign-faq-block details {
	border-bottom: 1px solid var(--ew-border) !important;
	background-color: var(--ew-surface);
	border-radius: 6px;
	padding: 0.9rem 1.1rem !important;
	margin-bottom: 0.75rem !important;
}

.sovereign-faq-block summary {
	color: var(--ew-heading) !important;
	list-style: none;
	position: relative;
	padding-right: 1.6em;
}

.sovereign-faq-block summary::-webkit-details-marker { display: none; }

.sovereign-faq-block summary::after {
	content: "+";
	position: absolute;
	right: 0;
	color: var(--ew-accent);
	font-weight: 700;
}

.sovereign-faq-block details[open] > summary::after { content: "\2212"; }
.sovereign-faq-block details[open] > summary { color: var(--ew-accent) !important; }

.sovereign-faq-block summary:hover { color: var(--ew-accent-hover) !important; }

.sovereign-faq-block p,
.sovereign-faq-block li,
.sovereign-faq-block div:not([class]) {
	color: var(--ew-text) !important;
}

.sovereign-faq-block a { color: var(--ew-accent) !important; }

/* ============================================================
   INITIATE ARCHITECTURAL BRIEFING  (page id 296)
   Conversion page. Recovered content carries inline colours from
   the light build, so this scopes hard to the palette already
   defined above - no new colour values are introduced here, every
   declaration references an existing custom property.
   ============================================================ */

.page-id-296 .inside-article {
	background-color: var(--ew-surface);
	border: 2px solid var(--ew-accent);
	border-radius: 8px;
	box-shadow: 0 0 0 1px var(--ew-border), 0 8px 28px var(--ew-shadow);
	padding: 2rem;
}

.page-id-296 .entry-title {
	color: var(--ew-heading);
	border-bottom: 2px solid var(--ew-accent);
	padding-bottom: 0.5rem;
	margin-bottom: 1.25rem;
}

/* Neutralise inline colours carried over from the light build.
   Attribute selectors catch style="" declarations the theme
   cannot otherwise reach. */
.page-id-296 .entry-content [style*="color"],
.page-id-296 .entry-content [style*="colour"] {
	color: var(--ew-text) !important;
}

.page-id-296 .entry-content [style*="background"] {
	background-color: var(--ew-surface-alt) !important;
	border: 1px solid var(--ew-border);
	border-radius: 6px;
}

.page-id-296 .entry-content h1,
.page-id-296 .entry-content h2,
.page-id-296 .entry-content h3,
.page-id-296 .entry-content h4,
.page-id-296 .entry-content strong,
.page-id-296 .entry-content b {
	color: var(--ew-heading) !important;
}

.page-id-296 .entry-content p,
.page-id-296 .entry-content li,
.page-id-296 .entry-content td,
.page-id-296 .entry-content span,
.page-id-296 .entry-content div {
	color: var(--ew-text);
}

.page-id-296 .entry-content a { color: var(--ew-accent) !important; }
.page-id-296 .entry-content a:hover { color: var(--ew-accent-hover) !important; }

/* Any panel/callout inside the page gets the same treatment as the
   outer box, one step lighter so it reads as nested. */
.page-id-296 .entry-content .wp-block-group,
.page-id-296 .entry-content .wp-block-column,
.page-id-296 .entry-content blockquote,
.page-id-296 .entry-content table {
	background-color: var(--ew-surface-alt) !important;
	border: 1px solid var(--ew-accent) !important;
	border-radius: 6px;
	padding: 1rem 1.2rem;
}

/* Form controls, whether native or FluentForm once installed. */
.page-id-296 input[type="text"],
.page-id-296 input[type="email"],
.page-id-296 input[type="tel"],
.page-id-296 input[type="url"],
.page-id-296 select,
.page-id-296 textarea {
	background-color: var(--ew-bg) !important;
	color: var(--ew-text) !important;
	border: 1px solid var(--ew-accent) !important;
	border-radius: 4px;
}

.page-id-296 input:focus,
.page-id-296 select:focus,
.page-id-296 textarea:focus {
	border-color: var(--ew-accent-hover) !important;
	box-shadow: 0 0 0 2px var(--ew-accent-dim);
	outline: none;
}

.page-id-296 label { color: var(--ew-text) !important; }
.page-id-296 ::placeholder { color: var(--ew-muted) !important; }

.page-id-296 button,
.page-id-296 input[type="submit"],
.page-id-296 .wp-block-button__link {
	background-color: var(--ew-accent) !important;
	border: 1px solid var(--ew-accent) !important;
	color: #06101c !important;
	font-weight: 600;
}

.page-id-296 button:hover,
.page-id-296 input[type="submit"]:hover,
.page-id-296 .wp-block-button__link:hover {
	background-color: var(--ew-accent-hover) !important;
	border-color: var(--ew-accent-hover) !important;
}

/* Images on this page keep the shared dimming, plus a matching edge. */
.page-id-296 .entry-content img {
	border: 1px solid var(--ew-border);
	border-radius: 6px;
}

/* The mid-content nav sits inside the box; drop its own frame so
   there are not two nested borders competing. */
.page-id-296 .ewp-mid-nav {
	border-color: var(--ew-border);
	background-color: var(--ew-bg);
}

/* ---------- header graphic link ---------- */
.ewp-header-link {
	display: inline-block;
	line-height: 0;
	border: 0;
	text-decoration: none;
}

.ewp-header-link img { display: block; }

.ewp-header-link:focus-visible {
	outline: 2px solid var(--ew-accent);
	outline-offset: 3px;
}
