/*
	Theme Name:			BECK 2026
	Description:		Ultra-minimal theme 
	Theme URI:			https://beckdigital.com
	Author:				BECK Digital
	Author URI:			https://beckdigital.com
	Version:			1.0
	Requires at least:	4.9
	Tested up to:		5.1
	License:			GNU General Public License v3 or later.
	License URI:		https://www.gnu.org/licenses/gpl-3.0.html
	Tags:				
	Text Domain: 		beck
*/

/* =========================================
   1. GLOBAL VARIABLES & COLORS
   ========================================= */
:root {
	/* --- ELEMENTOR GLOBAL COLORS --- */
	--e-global-color-primary: #5D0A00;
	--e-global-color-secondary: #EF4922;
	--e-global-color-text: #2C2A29;
	--e-global-color-accent: #F7F5F1; /* Replaced pure white with Off-White */
	--e-global-color-2838a97: #00000000;
	--e-global-color-72df59f: #EFEEE0;
	--e-global-color-59a8beb: #9B373A;
	--e-global-color-c9f80c6: #F7F5F1;

	/* --- NEW PALETTE MAPPING --- */
	--c-dark: var(--e-global-color-text); /* #2C2A29 */
	--c-light: var(--e-global-color-c9f80c6); /* #F7F5F1 */
	--c-off-white: var(--e-global-color-c9f80c6); /* #F7F5F1 - Replaces pure white */
	
	/* Core Palette */
	--c-primary: var(--e-global-color-primary); /* #5D0A00 */
	--c-secondary: var(--e-global-color-secondary); /* #EF4922 */
	--c-crimson: var(--e-global-color-59a8beb); /* #9B373A - Light Brick */
	--c-beige: var(--e-global-color-72df59f); /* #EFEEE0 */
	--c-transparent: var(--e-global-color-2838a97);
	
	/* Dynamic Primary Variations */
	--c-primary-light: color-mix(in srgb, var(--c-primary), var(--c-off-white) 80%);
	--c-primary-dark: color-mix(in srgb, var(--c-primary), black 40%);

	/* Defaults for body (Now uses the Off-White/Light color) */
	--bg-current: var(--c-light);
	--text-current: var(--c-dark);
	--heading-current: var(--c-primary);
	--link-current: var(--c-secondary); 
	
	/* Smart Accent defaults */
	--accent-current: var(--c-secondary);
	
	/* Button Defaults */
	--btn-bg: var(--c-primary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-primary);
}

body {
	background-color: var(--bg-current);
	color: var(--text-current);
	margin: 0;
	padding: 0;
}
body div.e-con-inner p a { 
	text-decoration: underline; 
}

/* =========================================
   2. HEADER & FOOTER LAYOUT
   ========================================= */
/* Header Defaults */
header, #site-header { 
	padding: 20px 50px; 
	width: 100%;
	box-sizing: border-box;
}

/* Footer Defaults */
#site-footer {
	padding: 50px; 
	width: 100%;
	box-sizing: border-box;
}

/* Mobile Overrides (Max-width 767px) */
@media (max-width: 767px) {
	header, #site-header { padding: 20px; }
	footer, #site-footer { padding: 50px 20px; }
}

/* =========================================
   3. TOP-LEVEL SECTIONS (Padding Fix)
   ========================================= */

/* Frontend & Editor Defaults for Top Level */
[data-elementor-type="wp-page"] > .elementor-section,
[data-elementor-type="wp-page"] > .e-con,
[data-elementor-type="wp-page"] > .e-container,
/* Editor Support for Top Level Only */
[data-elementor-type="wp-page"] .e-con[data-nesting-level="0"],
[data-elementor-type="wp-page"] .e-container[data-nesting-level="0"],
[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section {
	--theme-pad-top: 150px;
	--theme-pad-bottom: 150px;
	--theme-pad-left: 50px;
	--theme-pad-right: 50px;
	
	padding: var(--theme-pad-top) var(--theme-pad-right) var(--theme-pad-bottom) var(--theme-pad-left);
}

/* Reset for Nested Items */
/* :where(
	[data-elementor-type="wp-page"] .e-con[data-nesting-level]:not([data-nesting-level="0"]),
	[data-elementor-type="wp-page"] .e-container[data-nesting-level]:not([data-nesting-level="0"])
) {
	--theme-pad-top: 0px;
	--theme-pad-bottom: 0px;
	--theme-pad-left: 0px;
	--theme-pad-right: 0px;
} */

/* SAFETY CATCH: Header & Footer Templates */
/* [data-elementor-type="header"] .e-con,
[data-elementor-type="footer"] .e-con,
[data-elementor-type="header"] .elementor-section,
[data-elementor-type="footer"] .elementor-section {
	--theme-pad-top: 0px;
	--theme-pad-bottom: 0px;
	--theme-pad-left: 0px;
	--theme-pad-right: 0px;
	
	padding: var(--theme-pad-top) var(--theme-pad-right) var(--theme-pad-bottom) var(--theme-pad-left);
} */

/* Tablet Overrides */
@media (max-width: 1024px) {
	[data-elementor-type="wp-page"] > .elementor-section,
	[data-elementor-type="wp-page"] > .e-con,
	[data-elementor-type="wp-page"] > .e-container,
	[data-elementor-type="wp-page"] .e-con[data-nesting-level="0"],
	[data-elementor-type="wp-page"] .e-container[data-nesting-level="0"],
	[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section {
		--theme-pad-top: 70px;
		--theme-pad-bottom: 70px;
		--theme-pad-left: 30px;
		--theme-pad-right: 30px;
	}
}

/* Mobile Overrides */
@media (max-width: 767px) {
	[data-elementor-type="wp-page"] > .elementor-section,
	[data-elementor-type="wp-page"] > .e-con,
	[data-elementor-type="wp-page"] > .e-container,
	[data-elementor-type="wp-page"] .e-con[data-nesting-level="0"],
	[data-elementor-type="wp-page"] .e-container[data-nesting-level="0"],
	[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section {
		--theme-pad-top: 50px;
		--theme-pad-bottom: 50px;
		--theme-pad-left: 20px;
		--theme-pad-right: 20px;
	}
}

/* =========================================
   4. SMART COLOR THEMES
   ========================================= */

/* --- DARK THEME --- */
.dark {
	--bg-current: var(--c-dark);
	--text-current: var(--c-light);
	--heading-current: var(--c-off-white);
	--link-current: var(--c-secondary); /* Orange Links */
	--accent-current: var(--c-secondary);
	
	/* Buttons on Dark: Orange BG, Off-White Text */
	--btn-bg: var(--c-secondary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-secondary);
	
	background-color: var(--bg-current);
	color: var(--text-current);
}

/* --- LIGHT THEME (Light Brick/Crimson Theme) --- */
.light {
	--bg-current: var(--c-crimson);
	--text-current: var(--c-off-white);
	--heading-current: var(--c-beige); /* Beige headings for contrast & style */
	--link-current: var(--c-beige);
	--accent-current: var(--c-off-white); 
	
	/* Buttons on Brick: Dark Brown BG, Off-White Text */
	--btn-bg: var(--c-primary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-primary);

	background-color: var(--bg-current);
	color: var(--text-current);
}

/* --- OFF-WHITE THEME (Retains `.white` classname so HTML doesn't break) --- */
.white {
	--bg-current: var(--c-off-white);
	--text-current: var(--c-dark);
	--heading-current: var(--c-primary);
	--link-current: var(--c-secondary); /* Orange Links */
	--accent-current: var(--c-primary); 
	
	/* Buttons on Off-White: Primary BG, Off-White Text */
	--btn-bg: var(--c-primary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-primary);

	background-color: var(--bg-current);
	color: var(--text-current);
}

/* --- PRIMARY THEME --- */
.primary {
	--bg-current: var(--c-primary);
	--text-current: var(--c-beige);
	--heading-current: var(--c-secondary); /* Orange Headings */
	--link-current: var(--c-off-white); /* Off-White links on dark red */
	--accent-current: var(--c-secondary);
	
	/* Buttons on Primary: Off-White BG, Primary Text */
	--btn-bg: var(--c-off-white);
	--btn-text: var(--c-primary);
	--btn-border: var(--c-off-white);

	background-color: var(--bg-current);
	color: var(--text-current);
}

/* Headings Colors */
.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6, .dark .elementor-heading-title,
.light h1, .light h2, .light h3, .light h4, .light h5, .light h6, .light .elementor-heading-title,
.white h1, .white h2, .white h3, .white h4, .white h5, .white h6, .white .elementor-heading-title,
.primary h1, .primary h2, .primary h3, .primary h4, .primary h5, .primary h6, .primary .elementor-heading-title {
	color: var(--heading-current);
}

/* Strong Tag Accent in Headings */
h1 strong, h2 strong, 
h1 b, h2 b {
	color: var(--accent-current) !important; 
	font-weight: inherit !important;          
	display: block;                          
	margin-bottom: 0.2em; 
}

@media (max-width: 767px) {
	h1 strong, h2 strong, h3 strong, h4 strong, h5 strong, h6 strong,
	.elementor-heading-title strong,
	h1 b, h2 b, h3 b, h4 b, h5 b, h6 b,
	.elementor-heading-title b {
		display: inline;                     
		margin-bottom: 0;    
	}
}

/* Links (Exclude buttons) */
.dark a:not(.elementor-button), 
.light a:not(.elementor-button), 
.white a:not(.elementor-button),
.primary a:not(.elementor-button) {
	color: var(--link-current) !important;
	text-decoration: underline !important;
	text-underline-offset: 4px;
	font-weight: 600;
}

/* =========================================
   5. BUTTON STYLES
   ========================================= */
body .elementor-widget-button .elementor-button,
body .elementor-button {
	display: inline-flex;
	padding: 15px 40px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 18px;
	line-height: 1.2em;
	transition: all 0.3s ease;
	cursor: pointer;
	text-decoration: none !important; 
	align-items: center;
	justify-content: center;
	gap: 8px; 
	
	/* Dynamic Theme Styles */
	background-color: var(--btn-bg) ;
	color: var(--btn-text) ;
	border: 1px solid var(--btn-border) ;
}

body .elementor-widget-button .elementor-button:hover,
body .elementor-button:hover {
	opacity: 0.9;
	transform: translateY(-2px);
}

/* =========================================
   6. GRID SYSTEM & SMART CARDS
   ========================================= */

/* --- GRID LAYOUT --- */
.elementor-element.grid-2, 
.elementor-element.grid-3, 
.elementor-element.grid-4, 
.elementor-element.grid-5 {
	display: grid;
	gap: 20px;
	width: 100%;
	grid-auto-flow: row;
}

/* Editor Fix */
.elementor-editor-active .elementor-element.grid-2 .e-con-inner,
.elementor-editor-active .elementor-element.grid-3 .e-con-inner,
.elementor-editor-active .elementor-element.grid-4 .e-con-inner,
.elementor-editor-active .elementor-element.grid-5 .e-con-inner {
	display: grid;
	gap: 20px;
	width: 100%;
	grid-auto-flow: row;
}

/* Columns Config */
.elementor-element.grid-2, .elementor-editor-active .elementor-element.grid-2 .e-con-inner { grid-template-columns: repeat(2, 1fr); }
.elementor-element.grid-3, .elementor-editor-active .elementor-element.grid-3 .e-con-inner { grid-template-columns: repeat(3, 1fr); }
.elementor-element.grid-4, .elementor-editor-active .elementor-element.grid-4 .e-con-inner { grid-template-columns: repeat(4, 1fr); }
.elementor-element.grid-5, .elementor-editor-active .elementor-element.grid-5 .e-con-inner { grid-template-columns: repeat(5, 1fr); }

/* Responsive Grid */
@media (max-width: 1024px) {
	.elementor-element.grid-2, .elementor-editor-active .elementor-element.grid-2 .e-con-inner,
	.elementor-element.grid-3, .elementor-editor-active .elementor-element.grid-3 .e-con-inner,
	.elementor-element.grid-4, .elementor-editor-active .elementor-element.grid-4 .e-con-inner,
	.elementor-element.grid-5, .elementor-editor-active .elementor-element.grid-5 .e-con-inner {
		grid-template-columns: 1fr;
	}
}

/* --- GRID + THEME COMBINATION (The "Card" Mode) --- */
.grid-2.dark, .grid-3.dark, .grid-4.dark, .grid-5.dark,
.grid-2.light, .grid-3.light, .grid-4.light, .grid-5.light,
.grid-2.white, .grid-3.white, .grid-4.white, .grid-5.white,
.grid-2.primary, .grid-3.primary, .grid-4.primary, .grid-5.primary {
	background-color: transparent !important;
	background: transparent !important;
	padding: 0;
}

/* DARK CARDS */
.grid-2.dark > .elementor-element, .elementor-editor-active .grid-2.dark .e-con-inner > .elementor-element,
.grid-3.dark > .elementor-element, .elementor-editor-active .grid-3.dark .e-con-inner > .elementor-element,
.grid-4.dark > .elementor-element, .elementor-editor-active .grid-4.dark .e-con-inner > .elementor-element,
.grid-5.dark > .elementor-element, .elementor-editor-active .grid-5.dark .e-con-inner > .elementor-element {
	background-color: var(--c-dark);
	color: var(--c-beige);
	padding: 50px 30px 30px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.25);
	border-radius: 5px;

	--heading-current: var(--c-off-white);
	--link-current: var(--c-secondary);
	--accent-current: var(--c-secondary);
	--btn-bg: var(--c-secondary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-secondary);
}

/* LIGHT CARDS (Crimson) */
.grid-2.light > .elementor-element, .elementor-editor-active .grid-2.light .e-con-inner > .elementor-element,
.grid-3.light > .elementor-element, .elementor-editor-active .grid-3.light .e-con-inner > .elementor-element,
.grid-4.light > .elementor-element, .elementor-editor-active .grid-4.light .e-con-inner > .elementor-element,
.grid-5.light > .elementor-element, .elementor-editor-active .grid-5.light .e-con-inner > .elementor-element {
	background-color: var(--c-crimson);
	color: var(--c-off-white);
	padding: 50px 30px 30px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.25);
	border-radius: 5px;

	--heading-current: var(--c-beige);
	--link-current: var(--c-beige);
	--accent-current: var(--c-off-white);
	--btn-bg: var(--c-primary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-primary);
}

/* OFF-WHITE CARDS */
.grid-2.white > .elementor-element, .elementor-editor-active .grid-2.white .e-con-inner > .elementor-element,
.grid-3.white > .elementor-element, .elementor-editor-active .grid-3.white .e-con-inner > .elementor-element,
.grid-4.white > .elementor-element, .elementor-editor-active .grid-4.white .e-con-inner > .elementor-element,
.grid-5.white > .elementor-element, .elementor-editor-active .grid-5.white .e-con-inner > .elementor-element {
	background-color: var(--c-off-white);
	color: var(--c-dark);
	padding: 50px 30px 30px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	border-radius: 5px;

	--heading-current: var(--c-primary);
	--link-current: var(--c-secondary);
	--accent-current: var(--c-primary);
	--btn-bg: var(--c-primary);
	--btn-text: var(--c-off-white);
	--btn-border: var(--c-primary);
}

/* PRIMARY CARDS */
.grid-2.primary > .elementor-element, .elementor-editor-active .grid-2.primary .e-con-inner > .elementor-element,
.grid-3.primary > .elementor-element, .elementor-editor-active .grid-3.primary .e-con-inner > .elementor-element,
.grid-4.primary > .elementor-element, .elementor-editor-active .grid-4.primary .e-con-inner > .elementor-element,
.grid-5.primary > .elementor-element, .elementor-editor-active .grid-5.primary .e-con-inner > .elementor-element {
	background-color: var(--c-primary);
	color: var(--c-beige);
	padding: 50px 30px 30px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.25);
	border-radius: 5px;

	--heading-current: var(--c-secondary);
	--link-current: var(--c-off-white);
	--accent-current: var(--c-secondary);
	--btn-bg: var(--c-off-white);
	--btn-text: var(--c-primary);
	--btn-border: var(--c-off-white);
}

/* Ensure Headings INSIDE Cards inherit correctly */
[class*="grid-"].dark .elementor-element h1, 
[class*="grid-"].dark .elementor-element h2, 
[class*="grid-"].dark .elementor-element h3, 
[class*="grid-"].dark .elementor-element .elementor-heading-title,
[class*="grid-"].light .elementor-element h1, 
[class*="grid-"].light .elementor-element h2, 
[class*="grid-"].light .elementor-element h3, 
[class*="grid-"].light .elementor-element .elementor-heading-title,
[class*="grid-"].white .elementor-element h1, 
[class*="grid-"].white .elementor-element h2, 
[class*="grid-"].white .elementor-element h3, 
[class*="grid-"].white .elementor-element .elementor-heading-title,
[class*="grid-"].primary .elementor-element h1, 
[class*="grid-"].primary .elementor-element h2, 
[class*="grid-"].primary .elementor-element h3, 
[class*="grid-"].primary .elementor-element .elementor-heading-title {
	color: var(--heading-current);
}

/* ==========================================================================
   GLOBAL TYPOGRAPHY & RESET
   ========================================================================== */
body[class] {
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: inherit;
}

body h1, body h2, body h3, body h4, body h5, body h6 {
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 0.6em;
  max-width: 45ch; 
}

body h1 {
  font-size: clamp(2.25rem, 5vw + 1rem, 4rem); 
  font-weight: 500;
}
body h2 {
  font-size: clamp(2rem, 3vw + 1rem, 3rem);
  font-weight: 500;
}
body h3 {
  font-size: clamp(1rem, 2vw + 1rem, 1.25rem);
  font-weight: 700;
  margin-bottom: 0em;
  line-height: 1.2em !important;
}
body h4 {
  font-size: clamp(1.125rem, 1vw + 1rem, 1.5rem);
  font-weight: 700;
  margin-bottom: 0em;
}
body h5, body h6 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0em;
}

body p {
  line-height: 1.6;
  margin-bottom: 1.5rem;
  max-width: 65ch; 
  font-size: clamp(1rem, 0.5vw + 0.9rem, 1.125rem); 
}

body a {
  text-decoration: none;
  transition: opacity 0.2s ease-in-out;
}
body a:hover {
  opacity: 0.8;
}

body ul, body ol {
  padding-left: 1.5em; 
  margin-bottom: 1.5rem;
}
body li {
  margin-bottom: 0.5em; 
  padding-left: 0.5em;
}

body table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  font-variant-numeric: tabular-nums;
}
body th, body td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  vertical-align: top;
}
body th {
  font-weight: 700;
  border-bottom-width: 2px;
}
body tbody tr:nth-child(even) {
  background-color: rgba(0, 0, 0, 0.02);
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */
.clamp-2, .clamp-3, .clamp-4, .clamp-5 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.clamp-2 { -webkit-line-clamp: 2; }
.clamp-3 { -webkit-line-clamp: 3; }
.clamp-4 { -webkit-line-clamp: 4; }
.clamp-5 { -webkit-line-clamp: 5; }

.text-tiny, .text-tiny p, .text-tiny .elementor-heading-title, .text-tiny .elementor-icon-list-item { 
	font-size: 0.875rem !important; 
}
.text-small, .text-small p, .text-small .elementor-heading-title, .text-small .elementor-icon-list-item { 
	font-size: 0.9375rem !important; 
}
.text-large, .text-large p, .text-large .elementor-heading-title, .text-large .elementor-icon-list-item { 
	font-size: 1.25rem !important; 
}

.text-full-width, .text-full-width p, .text-full-width h1, .text-full-width h2 {
  max-width: 100% !important;
}

.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.muted p, .muted h1, .muted h2, .muted h3, .muted h4, .muted h5, .muted h6,
.muted .elementor-heading-title, .muted .elementor-icon-list-item, .muted a:not(.elementor-button) {
	opacity: 0.7 !important;
}

img.alignleft { float: left; margin-right: 1.5rem; margin-bottom: 1.5rem; }
img.alignright { float: right; margin-left: 1.5rem; margin-bottom: 1.5rem; }
img.aligncenter { display: block; margin-left: auto; margin-right: auto; margin-bottom: 1.5rem; }

.no-padding { padding: 0 !important; --theme-pad-top: 0; --theme-pad-bottom: 0; }

/* ==========================================================================
   LONG FORM CONTENT CONTEXT
   ========================================================================== */
.long-form-content p, .long-form-content ul, .long-form-content ol {
  font-size: clamp(1.125rem, 1vw + 1rem, 1.25rem); 
  line-height: 1.8;
  margin-bottom: 1.75em;
  max-width: 70ch; 
}

.long-form-content h2, .long-form-content h3, .long-form-content h4 {
  margin-top: 2.5em; 
  margin-bottom: 0.75em;
  line-height: 1.25;
  max-width: 900px;
}

.long-form-content > *:first-child {
  margin-top: 0;
}

.horizontal-scroll {
  overflow-x: auto;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 1.5rem;
}

.horizontal-scroll table {
  min-width: 600px; 
  width: 100%;
  border-collapse: collapse;
}

               :root {
            /* Using your existing variables */
            --fm-primary: var(--e-global-color-primary, #5D0A00);
            --fm-secondary: var(--e-global-color-secondary, #EF4922);
            --fm-text: var(--e-global-color-text, #2C2A29);
            
            /* Backgrounds mapped to your theme */
            --fm-bg-light: var(--c-beige, #EFEEE0); 
            --fm-bg-offwhite: var(--c-off-white, #F7F5F1);
            --fm-accent: var(--c-off-white, #F7F5F1);

            /* Derived Beiges for borders and hovers based on your light beige */
            --fm-beige-hover: color-mix(in srgb, var(--fm-bg-light), black 5%);
            --fm-beige-border: color-mix(in srgb, var(--fm-bg-light), black 12%);
            --fm-beige-muted: color-mix(in srgb, var(--fm-bg-light), black 35%);
            --fm-beige-dark: color-mix(in srgb, var(--fm-bg-light), black 55%);

            /* Timing */
            --fm-transition: 0.3s ease;
        }

        /* Scoped Reset for the Menu to prevent Elementor conflicts */
        .fm-menu-wrapper, .fm-menu-wrapper * {
            box-sizing: border-box;
            /* Using inherit to naturally pick up your theme's typography */
            font-family: inherit; 
            margin: 0;
            padding: 0;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        .fm-menu-toggle {
            position: absolute;
            top: 30px;
            right: 24px;
            z-index: 9999;
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding: 8px;
            background: transparent;
            border: none;
            cursor: pointer;
            outline: none;
            transition: opacity var(--fm-transition);
        }
#fmCloseServices { border-radius: 0; }

        .fm-menu-toggle:hover {
            opacity: 0.7;
        }

        .fm-menu-toggle span {
            display: block;
            width: 32px;
            height: 2px;
            background-color: #FFF;
            transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
            transform-origin: center;
        }

        /* Morphing logic */
        .fm-menu-toggle.is-active .line-1 {
            transform: translateY(8px) rotate(45deg);
            background-color: var(--fm-primary); /* Turn dark red when open for contrast */
        }
        .fm-menu-toggle.is-active .line-2 {
            opacity: 0;
        }
        .fm-menu-toggle.is-active .line-3 {
            transform: translateY(-8px) rotate(-45deg);
            background-color: var(--fm-primary);
        }

        .fm-menu-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background-color: rgba(0,0,0,.01); /* Semi-transparent black */
            z-index: 9997;
            opacity: 0;
            backdrop-filter: blur(3px);
            -webkit-backdrop-filter: blur(3px);
            pointer-events: none;
            transition: opacity 0.5s ease, backdrop-filter 0.5s ease, -webkit-backdrop-filter 0.5s ease;
        }

        .fm-menu-overlay.is-active {
            opacity: 1;
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);
            pointer-events: auto;
        }

        .fm-menu-tray {
            position: fixed;
            top: 0;
            right: 0;
            width: 100%;
            max-width: 400px;
            height: 100vh;
            background-color: var(--fm-bg-light);
            z-index: 9998;
            display: flex;
            flex-direction: column;
            box-shadow: -10px 0 30px rgba(0, 0, 0, 0.15);
            clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 0);
            visibility: hidden;
            overflow: hidden; 
        }

        /* Top Branding Bar */
        .fm-menu-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 1.5rem;
            border-bottom: 1px solid var(--fm-beige-border);
            height: 80px;
            flex-shrink: 0;
        }

        .fm-menu-brand {
            font-weight: 700;
            color: var(--fm-primary);
            font-size: 1.25rem;
            letter-spacing: -0.05em;
        }

        /* View Container for Main & Sub Menu Sliding */
        .fm-menu-view-container {
            position: relative;
            flex-grow: 1;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        .fm-menu-list {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            list-style: none !important; /* Override theme bullet styles */
            margin: 0 !important;
            padding: 0 !important;
            overflow-y: auto;
            transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
            background-color: var(--fm-bg-light);
        }

        /* Submenu specific initial state */
        .fm-submenu-list {
            transform: translateX(100%);
        }

        /* Translation Classes via JS */
        .fm-translate-x-minus-full {
            transform: translateX(-100%);
        }
        .fm-translate-x-0 {
            transform: translateX(0);
        }
#fmMenuTray a {
    color: #000 !important;
    text-decoration: none !important;
}
        .fm-menu-item {
            border-bottom: 1px solid var(--fm-beige-border);
            margin: 0 !important;
            padding: 0 !important;
        }

        .fm-menu-link {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 1.5rem;
            text-decoration: none !important;
            transition: background-color var(--fm-transition);
        }

        .fm-menu-link-content {
            display: flex;
            align-items: center;
            gap: 1.5rem;
        }

        .fm-menu-number {
            color: var(--fm-beige-muted);
            font-weight: 700;
            font-size: 1.25rem;
            width: 1.5rem;
        }

        .fm-menu-text {
            font-weight: 700;
            font-size: 1.5rem;
            color: var(--fm-text);
            transition: color var(--fm-transition);
        }

        .fm-menu-icon {
            color: var(--fm-beige-muted);
            transition: color var(--fm-transition), transform var(--fm-transition);
        }

        /* Hover States for Standard Links */
        .fm-menu-link:hover {
            background-color: var(--fm-beige-hover);
            opacity: 1 !important; /* Override theme anchor hover */
        }
        .fm-menu-link:hover .fm-menu-text,
        .fm-menu-link:hover .fm-menu-icon {
            color: var(--fm-secondary);
        }

        .fm-menu-split-item {
            display: flex;
            align-items: center;
            padding-right: 1rem;
            transition: background-color var(--fm-transition);
            margin: 0 !important;
        }

        .fm-menu-split-item:hover {
            background-color: var(--fm-beige-hover);
        }

        .fm-menu-split-link {
            flex-grow: 1;
            display: flex;
            align-items: center;
            gap: 1.5rem;
            padding: 1.5rem;
            text-decoration: none !important;
        }

        .fm-menu-split-item:hover .fm-menu-text {
            color: var(--fm-secondary);
        }

        .fm-submenu-btn {
            padding: 0.75rem;
            border-radius: 50%;
            background-color: transparent;
            border: none;
            cursor: pointer;
            outline: none;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all var(--fm-transition);
        }

        .fm-menu-split-item:hover .fm-submenu-btn {
            background-color: var(--fm-beige-border);
        }
        
        .fm-menu-split-item:hover .fm-submenu-btn .fm-menu-icon {
            color: var(--fm-primary);
        }

        .fm-submenu-btn:hover {
            background-color: var(--fm-primary) !important;
        }

        .fm-submenu-btn:hover .fm-menu-icon {
            color: var(--fm-accent);
            transform: rotate(45deg);
        }

        .fm-back-btn {
            width: 100%;
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 1.5rem;
            background: transparent;
            border: none;
            cursor: pointer;
            transition: background-color var(--fm-transition);
            text-align: left;
        }

        .fm-back-btn:hover {
            background-color: var(--fm-beige-hover);
        }

        .fm-back-text {
            font-size: 0.875rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--fm-text);
            transition: color var(--fm-transition);
        }

        .fm-back-btn:hover .fm-back-text,
        .fm-back-btn:hover .fm-menu-icon {
            color: var(--fm-secondary);
        }

        .fm-submenu-title {
            padding: 1.5rem;
            padding-bottom: 0.5rem;
            font-weight: 700;
            font-size: 1.875rem;
            color: var(--fm-primary);
            letter-spacing: -0.05em;
        }

        .fm-submenu-link {
            display: block;
            padding: 1rem 1.5rem;
            font-size: 1.25rem;
            color: var(--fm-beige-dark);
            text-decoration: none !important;
            border-bottom: 1px solid var(--fm-beige-border);
            transition: all var(--fm-transition);
        }
        .fm-submenu-link:last-child {
            border-bottom: none;
        }
        .fm-submenu-link:hover {
            background-color: var(--fm-beige-hover);
            color: var(--fm-secondary) !important;
            opacity: 1 !important;
        }

        .fm-connect-wrapper {
            margin-top: auto;
            padding: 2.5rem 1.5rem 2rem 1.5rem;
            border-top: 1px solid var(--fm-beige-border);
        }

        .fm-connect-link {
            display: flex;
            align-items: center;
            justify-content: space-between;
            text-decoration: none !important;
        }

        .fm-connect-text {
            font-weight: 700;
            font-size: 1.5rem; 
            color: var(--fm-primary);
            letter-spacing: -0.025em;
            transition: color var(--fm-transition);
        }

        .fm-connect-icon {
            color: var(--fm-primary);
            transition: all var(--fm-transition);
        }

        .fm-connect-link:hover .fm-connect-text,
        .fm-connect-link:hover .fm-connect-icon {
            color: var(--fm-secondary);
        }
        .fm-connect-link:hover .fm-connect-icon {
            transform: translateX(8px);
        }

        .fm-menu-tray.is-active {
            visibility: visible;
            animation: foldOut 0.6s cubic-bezier(0.77, 0, 0.175, 1) forwards;
        }

        .fm-menu-tray.is-closing {
            visibility: visible;
            animation: foldIn 0.6s cubic-bezier(0.77, 0, 0.175, 1) forwards;
        }

        @keyframes foldOut {
            0% {
                clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 0);
            }
            50% {
                clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%);
            }
            100% {
                clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
            }
        }

        @keyframes foldIn {
            0% {
                clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
            }
            50% {
                clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%);
            }
            100% {
                clip-path: polygon(100% 0, 100% 0, 100% 0, 100% 0);
            }
        }

        .fm-stagger-item {
            opacity: 0;
            transform: translateY(20px) translateX(10px);
        }

        .fm-menu-tray.is-active .fm-stagger-item {
            animation: menuItemFadeIn 0.4s ease forwards;
        }

        .fm-menu-tray.is-active .fm-stagger-item:nth-child(1) { animation-delay: 0.6s; }
        .fm-menu-tray.is-active .fm-stagger-item:nth-child(2) { animation-delay: 0.7s; }
        .fm-menu-tray.is-active .fm-stagger-item:nth-child(3) { animation-delay: 0.8s; }
        .fm-menu-tray.is-active .fm-stagger-item:nth-child(4) { animation-delay: 0.9s; }
        .fm-menu-tray.is-active .fm-stagger-item:nth-child(5) { animation-delay: 1.0s; }
        .fm-menu-tray.is-active .fm-stagger-item:nth-child(6) { animation-delay: 1.1s; }

        @keyframes menuItemFadeIn {
            to {
                opacity: 1;
                transform: translateY(0) translateX(0);
            }
        }
@media (min-width: 1025px) {
  body.parent-pageid-438 [data-elementor-type="wp-page"] > .e-con,
  body.parent-pageid-438 [data-elementor-type="wp-page"] .e-con[data-nesting-level="0"],
  body.parent-pageid-438 [data-elementor-type="wp-page"] > .elementor-section {
    --theme-pad-top: 80px;
    --theme-pad-bottom: 80px;
  }
}