/* HoRNet Design System v3.3 — shared frontend foundations.
 * Page-specific components remain in their templates; this file normalises the
 * typography, surfaces, controls and accessibility primitives beneath them.
 */
:root {
	--hn-black: #000000;
	--hn-white: #ffffff;
	--hn-yellow: #ffcd43;
	--hn-magenta: #ff43cd;
	--hn-cyan: #43cdff;
	--hn-bg-page: #faf7f2;
	--hn-surface-0: #f4efe6;
	--hn-surface-1: #ece5d8;
	--hn-surface-2: #e2d9c8;
	--hn-text: #14110e;
	--hn-state-success: #43ffa1;
	--hn-state-warning: #ffb443;
	--hn-state-danger: #ff4343;
	--font-sans: "Exo 2", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--font-mono: "JetBrains Mono", "SF Mono", Monaco, Consolas, "Courier New", monospace;
	--r-panel: 10px;
	--r-card: 12px;
	--r-control: 7px;
	--focus-ring: 3px solid var(--hn-cyan);
	--focus-offset: 2px;
	--shadow-1: 4px 4px 0 rgba(0, 0, 0, .9);
	--shadow-2: 7px 7px 0 rgba(0, 0, 0, .92);
	--shadow-3: 8px 8px 0 var(--hn-black);
}

html { background: var(--hn-bg-page); }
body {
	background-color: var(--hn-bg-page);
	background-image: none;
	color: var(--hn-text);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.5;
}

h1, h2, h3, h4, h5, h6,
.btn,
.et_pb_button,
.edd-submit,
.edd-add-to-cart,
.edd-go-to-checkout {
	font-family: var(--font-sans);
}
h1, h2, h3, h4, h5, h6 {
	color: var(--hn-black);
	font-weight: 800;
	letter-spacing: -.02em;
}
h1 { font-size: clamp(44px, 5vw, 72px); line-height: .9; }
h2 { font-size: clamp(32px, 3.8vw, 56px); line-height: .92; }
h3 { font-size: clamp(26px, 2.6vw, 34px); font-weight: 700; line-height: .98; }
h4 { font-size: 24px; font-weight: 700; line-height: 1.04; }
/* Product hero is a dark media surface: its title follows the white subheader. */
.single-download .carousel-caption h1 {
	color: var(--hn-white) !important;
}
/* Divi emits module-specific type rules after queued styles. Keep its content
   in the same type family and weight hierarchy without changing the layouts. */
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h1,
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h2 {
	font-family: var(--font-sans) !important;
	font-weight: 800 !important;
	letter-spacing: -.02em !important;
}
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h3,
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h4,
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h5,
body #et-boc .et-l .et_pb_module.et_pb_module.et_pb_module h6 {
	font-family: var(--font-sans) !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
}

/* The navigation is structural, not a translucent decoration. */
.navbar,
.navbar-default {
	border: 0;
	border-bottom: 3px solid var(--hn-black);
	border-radius: 0;
	background-color: var(--hn-white);
	background-image: none;
	box-shadow: var(--shadow-1);
}
.navbar a,
.navbar-nav li a {
	font-family: var(--font-mono);
	font-size: 16px;
	letter-spacing: .06em;
}
/* Match the taller social links so active menu backgrounds meet the bottom border. */
@media (min-width: 768px) {
	.navbar .navbar-collapse > .navbar-nav:not(.navbar-right) > li > a {
		min-height: 70px;
	}
}

/* Keep navigation states legible without glow effects. */
.navbar-nav li:hover,
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus,
.navbar-nav li a:hover,
.navbar-nav li a:focus {
	background: var(--hn-yellow) !important;
	color: var(--hn-black) !important;
	text-shadow: none !important;
}

footer {
	border-top: 3px solid var(--hn-black);
	background: var(--hn-black);
	color: var(--hn-white);
}
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
footer a,
footer .nav li a {
	color: var(--hn-white);
}
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6 {
	font-weight: 800;
}
footer a:hover,
footer .nav li a:hover {
	background: transparent !important;
	color: var(--hn-yellow) !important;
	text-shadow: none !important;
}

/* Legacy hero texture/overlay treatment is intentionally disabled. */
.img-overlay { display: none; }
.carousel-control.left,
.carousel-control.right,
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus,
.panel-heading,
.alert,
.progress,
.progress-bar {
	background-image: none !important;
}
a:hover {
	text-shadow: none;
}

/* Labels and data retain the technical, plugin-native mono treatment. */
label,
legend,
th,
.edd-label,
.edd-required-indicator,
.edd_cart_item_price,
.edd_cart_amount {
	font-family: var(--font-mono);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="url"],
select,
textarea,
.edd-input,
.edd-select {
	border: 3px solid var(--hn-black) !important;
	border-radius: var(--r-control) !important;
	background-color: var(--hn-white) !important;
	background-image: none;
	box-shadow: none;
	color: var(--hn-black) !important;
	font-family: var(--font-sans);
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus,
.edd-input:focus,
.edd-select:focus {
	border-color: var(--hn-cyan) !important;
	box-shadow: inset 0 0 0 1px var(--hn-cyan) !important;
	outline: none;
}

/* Existing Bootstrap content modules use the same hard structural treatment. */
.thumbnail,
.well,
.panel {
	border: 3px solid var(--hn-black);
	border-radius: var(--r-card);
	background-image: none;
	box-shadow: var(--shadow-2);
}

/* Shared EDD checkout, account and purchase-history surfaces. */
#edd_checkout_cart,
#edd_checkout_form_wrap fieldset,
#edd_login_form,
#edd_register_form,
#edd_profile_editor_form,
#edd_purchase_receipt,
#edd_purchase_receipt_products,
#edd_user_history {
	border: 3px solid var(--hn-black);
	border-radius: var(--r-panel);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--hn-white);
	overflow: hidden;
}
/* Account forms sit directly on the page surface, without a card frame. */
body.page-id-104 #edd_login_form,
body.page-id-104 #edd_register_form,
body.page-id-104 #edd_profile_editor_form {
	border: 0;
	border-radius: 0;
	background: transparent;
	overflow: visible;
}
/* Account tabs use the same compact controls as the plugin catalogue. */
body.page-id-104 .entry-content > .nav-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}
body.page-id-104 .entry-content > .nav-tabs > li {
	float: none;
	margin: 0;
}
body.page-id-104 .entry-content > .nav-tabs > li > a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin: 0;
	padding: 10px 14px;
	border: 3px solid var(--hn-black);
	border-radius: 6px;
	background: var(--hn-white);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	text-transform: uppercase;
}
body.page-id-104 .entry-content > .nav-tabs > li > a:hover,
body.page-id-104 .entry-content > .nav-tabs > li > a:focus,
body.page-id-104 .entry-content > .nav-tabs > li.active > a,
body.page-id-104 .entry-content > .nav-tabs > li.active > a:hover,
body.page-id-104 .entry-content > .nav-tabs > li.active > a:focus {
	border-color: var(--hn-black);
	background: var(--hn-yellow);
	color: var(--hn-black);
	text-shadow: none;
}
#edd_purchase_receipt thead th,
#edd_purchase_receipt_products thead th,
#edd_user_history th {
	background: var(--hn-black);
	color: var(--hn-white);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
/* Keep every checkout-cart section light; this intentionally overrides EDD's
 * header and totals treatment. */
#edd_checkout_cart,
#edd_checkout_cart thead,
#edd_checkout_cart tbody,
#edd_checkout_cart tfoot,
#edd_checkout_cart tr,
#edd_checkout_cart th,
#edd_checkout_cart td {
	background: var(--hn-white) !important;
	color: var(--hn-black) !important;
}
#edd_checkout_cart a {
	color: var(--hn-black) !important;
}
#edd_purchase_receipt td,
#edd_purchase_receipt_products td,
#edd_user_history td {
	border-color: var(--hn-black);
}
.edd_purchase_id,
.edd_purchase_date,
.edd_purchase_amount,
.edd_download_payment_status {
	font-family: var(--font-mono);
}
.edd_download_file_link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	border: 2px solid var(--hn-black);
	border-radius: var(--r-control);
	background: var(--hn-yellow);
	box-shadow: 3px 3px 0 var(--hn-black);
	color: var(--hn-black);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .03em;
	padding: 8px 12px;
	text-decoration: none;
}
.edd_download_file_link:hover {
	background: var(--hn-black);
	color: var(--hn-yellow);
	text-shadow: none;
}
.edd-alert,
.edd_error,
.edd_errors,
.alert {
	border: 3px solid var(--hn-black);
	border-radius: var(--r-control);
	box-shadow: var(--shadow-1);
	color: var(--hn-black);
	font-weight: 700;
	text-shadow: none;
}
.alert-success { background-color: var(--hn-state-success); }
.alert-info { background-color: var(--hn-cyan); }
.alert-warning { background-color: var(--hn-state-warning); }
.alert-danger,
.edd-alert-error,
.edd_error,
.edd_errors { background-color: var(--hn-state-danger); }
.panel-heading {
	border-bottom: 3px solid var(--hn-black);
	font-family: var(--font-mono);
	font-weight: 700;
}
.progress {
	border: 2px solid var(--hn-black);
	border-radius: var(--r-control);
	box-shadow: none;
}
.progress-bar { background-color: var(--hn-cyan); }

:focus-visible {
	outline: var(--focus-ring);
	outline-offset: var(--focus-offset);
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
	animation-duration: .01ms !important;
	animation-iteration-count: 1 !important;
	scroll-behavior: auto !important;
	transition-duration: .01ms !important;
}
}
