/**
 * Global shell and reusable components.
 * Scoped to body.ilg-active so deactivation restores the prior appearance.
 */

body.ilg-active,
body.ilg-active #page,
body.ilg-active .site,
body.ilg-active #content,
body.ilg-active .site-content,
body.ilg-active .site-main {
	background-color: var(--ilg-black) !important;
	color: var(--ilg-text);
}

body.ilg-active {
	min-width: 0;
	font-family: var(--ilg-font-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.ilg-active *,
body.ilg-active *::before,
body.ilg-active *::after {
	box-sizing: border-box;
}

body.ilg-active img,
body.ilg-active video,
body.ilg-active iframe,
body.ilg-active svg {
	max-width: 100%;
}

body.ilg-active :where(.ast-container, .ilh-container, .il-inst-wrap) {
	width: min(calc(100% - var(--ilg-gutter-mobile) - var(--ilg-gutter-mobile)), var(--ilg-container));
	max-width: var(--ilg-container);
	margin-inline: auto;
}

body.ilg-active :where(h1, h2, h3, h4, h5, h6, .entry-title, .page-title) {
	color: var(--ilg-white);
	font-family: var(--ilg-font-heading);
	letter-spacing: -0.025em;
	text-wrap: balance;
}

body.ilg-active :where(p, li, dd, .entry-content, .page-content) {
	color: inherit;
}

body.ilg-active :where(a) {
	transition: color var(--ilg-transition), background-color var(--ilg-transition), border-color var(--ilg-transition), opacity var(--ilg-transition), transform var(--ilg-transition), box-shadow var(--ilg-transition);
}

body.ilg-active :where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--ilg-focus) !important;
	outline-offset: 3px;
}

body.ilg-active ::selection {
	background: var(--ilg-orange);
	color: var(--ilg-white);
}

/* Reusable buttons: functional attributes and event handlers remain untouched. */
body.ilg-active :where(
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.wp-element-button,
	.wp-block-button__link,
	.ilh-btn,
	.il-btn,
	.il-submit,
	button[type="submit"],
	input[type="submit"]
) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ilg-button-height);
	max-width: 100%;
	padding: 12px 22px;
	border: 1px solid rgba(255, 139, 37, 0.48) !important;
	border-radius: var(--ilg-radius-sm) !important;
	background: linear-gradient(105deg, var(--ilg-orange-light), var(--ilg-orange)) !important;
	color: var(--ilg-white) !important;
	font-weight: 800;
	line-height: 1.15;
	text-align: center;
	text-decoration: none !important;
	box-shadow: var(--ilg-shadow-orange);
}

body.ilg-active :where(
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.wp-element-button,
	.wp-block-button__link,
	.ilh-btn,
	.il-btn,
	.il-submit,
	button[type="submit"],
	input[type="submit"]
):hover {
	border-color: var(--ilg-orange-light) !important;
	background: linear-gradient(105deg, #ff9b3e, #ff5a00) !important;
	color: var(--ilg-white) !important;
	transform: translateY(-1px);
}

body.ilg-active :where(.ilh-btn:not(.ilh-btn--primary), .il-btn-secondary) {
	border-color: var(--ilg-border-orange-active) !important;
	background: rgba(8, 8, 8, 0.78) !important;
	box-shadow: var(--ilg-shadow-sm);
}

body.ilg-active :where(button, .button, input[type="submit"]):disabled,
body.ilg-active :where(button, .button, input[type="submit"]).disabled {
	cursor: not-allowed;
	opacity: 0.52;
	transform: none !important;
}

/* Native and plugin form controls. */
body.ilg-active :where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
	select,
	textarea,
	.select2-selection,
	.wc-block-components-text-input input,
	.wc-block-components-combobox-control input
) {
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--ilg-border-strong) !important;
	border-radius: var(--ilg-radius-sm) !important;
	background: #0b0b0b !important;
	color: var(--ilg-white) !important;
	box-shadow: none !important;
}

body.ilg-active :where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
	select,
	textarea,
	.select2-selection,
	.wc-block-components-text-input input,
	.wc-block-components-combobox-control input
):focus {
	border-color: var(--ilg-orange) !important;
	box-shadow: 0 0 0 3px rgba(255, 106, 0, 0.14) !important;
	outline: 0;
}

body.ilg-active :where(input, textarea)::placeholder {
	color: #858585;
	opacity: 1;
}

body.ilg-active :where(label, legend) {
	color: var(--ilg-white);
}

/* =========================================================
 * Astra global header
 * ======================================================= */
body.ilg-active #masthead,
body.ilg-active.ast-theme-transparent-header #masthead {
	position: relative !important;
	top: auto !important;
	right: auto !important;
	left: auto !important;
	z-index: var(--ilg-z-header);
	display: block !important;
	width: 100%;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: var(--ilg-black) !important;
	box-shadow: none !important;
}

body.ilg-active #masthead :where(
	#ast-desktop-header,
	#ast-mobile-header,
	.ast-main-header-wrap,
	.ast-primary-header-bar,
	.main-header-bar
) {
	border-color: transparent !important;
	background: transparent !important;
}

body.ilg-active #masthead .site-primary-header-wrap {
	width: min(calc(100% - var(--ilg-gutter-mobile) - var(--ilg-gutter-mobile)), var(--ilg-container)) !important;
	max-width: var(--ilg-container) !important;
	min-height: var(--ilg-header-height) !important;
	margin: 12px auto !important;
	padding: 0 20px !important;
	border: 1px solid var(--ilg-border-orange) !important;
	border-radius: var(--ilg-radius-lg) !important;
	background: radial-gradient(circle at 88% 8%, rgba(255, 106, 0, 0.09), transparent 27%), linear-gradient(145deg, #151515, #050505) !important;
	box-shadow: var(--ilg-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

body.ilg-active #masthead .ast-builder-grid-row {
	width: 100%;
	min-width: 0;
}

body.ilg-active #masthead :where(.site-header-section, .ast-builder-layout-element, .ast-site-identity) {
	min-width: 0;
}

/* Remove all former text/pseudo logos; Astra receives one official image. */
body.ilg-active #masthead .site-branding::before,
body.ilg-active #masthead .site-branding::after {
	content: none !important;
	display: none !important;
}

body.ilg-active #masthead :where(.site-title, .site-description, .ast-site-title-wrap, .ilaf-brand-link) {
	display: none !important;
}

body.ilg-active #masthead .site-branding {
	display: flex !important;
	align-items: center;
	min-width: 0;
	min-height: 0 !important;
	padding: 0 !important;
}

body.ilg-active #masthead :where(.ilg-logo, .ilg-logo__link) {
	display: inline-flex !important;
	align-items: center;
	justify-content: flex-start;
	min-width: 0 !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.ilg-active #masthead img.ilg-logo__image {
	display: block !important;
	width: auto !important;
	height: 70px !important;
	max-width: 118px !important;
	margin: 0 !important;
	object-fit: contain;
}

body.ilg-active #ast-desktop-header .ast-builder-menu-1 {
	padding: 4px 6px;
	border: 1px solid var(--ilg-border);
	border-radius: var(--ilg-radius-pill);
	background: rgba(255, 255, 255, 0.025) !important;
}

body.ilg-active #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
	display: flex;
	align-items: center;
	height: 48px !important;
	padding: 0 15px !important;
	border: 1px solid transparent !important;
	border-radius: var(--ilg-radius-pill);
	background: transparent !important;
	color: var(--ilg-white) !important;
	font-weight: 750;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

body.ilg-active #ast-desktop-header .main-header-menu > .menu-item > .menu-link:hover {
	border-color: var(--ilg-border-orange) !important;
	color: var(--ilg-orange-light) !important;
}

body.ilg-active #ast-desktop-header .main-header-menu > :is(.current-menu-item, .current_page_item) > .menu-link {
	border-color: var(--ilg-border-orange-active) !important;
	background: transparent !important;
	color: var(--ilg-orange-light) !important;
}

body.ilg-active #masthead :where(
	.ast-site-header-cart .cart-container,
	.ast-header-account-link,
	.menu-toggle
) {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	border: 1px solid var(--ilg-border-strong) !important;
	border-radius: var(--ilg-radius-sm) !important;
	background: var(--ilg-panel) !important;
	color: var(--ilg-white) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.ilg-active #masthead :where(
	.ast-site-header-cart .cart-container,
	.ast-header-account-link,
	.menu-toggle
):hover {
	border-color: var(--ilg-border-orange-active) !important;
	color: var(--ilg-orange-light) !important;
}

body.ilg-active #masthead :where(
	.ast-site-header-cart .cart-container svg,
	.ast-header-account-link svg,
	.menu-toggle svg
) {
	width: 21px !important;
	height: 21px !important;
	fill: currentColor !important;
}

body.ilg-active #masthead .astra-icon[data-cart-total]::after {
	border-color: var(--ilg-black) !important;
	background: var(--ilg-orange) !important;
	color: var(--ilg-white) !important;
}

body.ilg-active #masthead .site-header-primary-section-right {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 9px;
	min-width: 0;
}

/* =========================================================
 * Astra global footer — outer and every internal layer
 * ======================================================= */
body.ilg-active :where(
	footer#colophon,
	.site-footer,
	.site-primary-footer-wrap,
	.site-above-footer-wrap,
	.site-below-footer-wrap,
	#colophon .ast-builder-grid-row-container,
	#colophon .ast-builder-footer-grid-columns,
	#colophon .site-footer-section,
	#colophon .footer-widget-area
) {
	border-color: var(--ilg-border) !important;
	background-color: var(--ilg-black) !important;
	background-image: radial-gradient(circle at 50% 0%, rgba(255, 106, 0, 0.1), transparent 34%), linear-gradient(145deg, #101010, #030303) !important;
	color: var(--ilg-muted) !important;
}

body.ilg-active footer#colophon.site-footer {
	display: block !important;
	min-height: 184px;
	border-top: 2px solid var(--ilg-orange) !important;
}

body.ilg-active #colophon .site-primary-footer-wrap {
	display: grid !important;
	min-height: 182px;
	padding-block: 32px !important;
}

body.ilg-active #colophon .site-primary-footer-inner-wrap {
	width: min(calc(100% - var(--ilg-gutter-mobile) - var(--ilg-gutter-mobile)), var(--ilg-container)) !important;
	max-width: var(--ilg-container) !important;
	margin-inline: auto !important;
}

body.ilg-active #colophon :where(h2, h3, h4, h5, h6, .widget-title, .wp-block-heading) {
	color: var(--ilg-white) !important;
}

body.ilg-active #colophon :where(a, .menu-link) {
	color: var(--ilg-white) !important;
	font-weight: 600;
}

body.ilg-active #colophon :where(a, .menu-link):hover {
	color: var(--ilg-orange-light) !important;
}

body.ilg-active #colophon :where(.ast-footer-copyright, .ast-footer-copyright p, .site-info, .site-info p, .ilaf-footer-copy) {
	color: var(--ilg-muted) !important;
}

/* Home content refinements retained from 1.5.2, excluding shell rules. */
body.ilg-active.home .ilh-hero__content {
	width: min(940px, calc(100% - 36px)) !important;
	max-width: 940px !important;
	padding: clamp(24px, 4vw, 44px) !important;
	border: 1px solid var(--ilg-border-orange) !important;
	border-radius: 34px !important;
	background: radial-gradient(circle at 50% 0%, rgba(255, 106, 0, 0.13), transparent 38%), rgba(4, 4, 4, 0.34) !important;
	box-shadow: 0 34px 90px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.07) !important;
	backdrop-filter: blur(8px) saturate(1.12);
}

body.ilg-active.home :where(.ilh-category-card, .ilh-benefit-card) {
	border: 1px solid var(--ilg-border-orange) !important;
	border-radius: var(--ilg-radius-lg) !important;
	background: radial-gradient(circle at 100% 100%, rgba(255, 106, 0, 0.13), transparent 36%), linear-gradient(145deg, #1b1b1b, #090909) !important;
	box-shadow: var(--ilg-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

body.ilg-active.home :where(.ilh-category-card, .ilh-benefit-card):hover {
	border-color: var(--ilg-border-orange-active) !important;
	transform: translateY(-5px);
}

/* The legacy social-proof block was removed from the Home composition. */
body.ilg-active.home :where(.ilh-testimonials, .ilh-testimonial-section, .ilh-reviews, .ilh-social-proof),
body.ilg-active.home section:has(.ilh-testimonial) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.ilg-active.home :where(.ilh-section-head, .ilh-products-intro) {
	padding-left: 18px !important;
	border-left: 3px solid var(--ilg-orange) !important;
}

body.ilg-active.home .ilh-products-band {
	border-block: 1px solid var(--ilg-border-orange) !important;
	background: radial-gradient(circle at 12% 8%, rgba(255, 106, 0, 0.18), transparent 27%), linear-gradient(145deg, #111111, #040404) !important;
}

/* Institutional content keeps its markup but consumes the global tokens. */
body.ilg-active :where(.il-contact-card, .il-form-card, .il-value-card, .il-manifesto, .il-cta-inner) {
	border-color: var(--ilg-border-orange) !important;
	background-color: var(--ilg-panel) !important;
	box-shadow: var(--ilg-shadow) !important;
}

/* 404 and empty states */
body.ilg-active.error404 :where(#page, #content, .site-content, main),
body.ilg-active .woocommerce .cart-empty,
body.ilg-active .wc-empty-cart-message {
	background: var(--ilg-black) !important;
	color: var(--ilg-white) !important;
}

body.ilg-active.error404 .error-404,
body.ilg-active .woocommerce .cart-empty,
body.ilg-active .wc-empty-cart-message {
	width: min(100%, 980px);
	margin: clamp(28px, 6vw, 70px) auto;
	padding: clamp(24px, 5vw, 58px);
	border: 1px solid var(--ilg-border-orange) !important;
	border-radius: var(--ilg-radius-lg) !important;
	background: linear-gradient(145deg, var(--ilg-panel), #080808) !important;
	box-shadow: var(--ilg-shadow) !important;
}
