/* Shared interaction and wrapper adaptations. Layout and widget styling remain in Elementor. */
.hec-site {
 --bg:var(--e-global-color-son_bg); --surface:var(--e-global-color-son_surface); --surface-2:var(--e-global-color-son_surface_2);
 --line:var(--e-global-color-son_line); --line-2:var(--e-global-color-son_line_2);
 --fg:var(--e-global-color-son_fg); --fg-2:var(--e-global-color-son_fg_2); --muted:var(--e-global-color-son_muted); --faint:var(--e-global-color-son_faint);
 --accent:var(--e-global-color-son_accent); --accent-hi:var(--e-global-color-son_accent_hi); --accent-soft:var(--e-global-color-son_accent_soft);
 --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace; --display:'Space Grotesk',sans-serif; --body:'Manrope',sans-serif;
 background:var(--bg); color:var(--fg); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
html:has(.hec-site){scroll-behavior:smooth}
.hec-site ::selection{background:var(--accent);color:#fff}
.hec-accent-text{color:var(--accent)}
.hec-site .hec-node{--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.hec-site .hec-layout{--container-widget-width:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--container-widget-height:initial}
.hec-site .hec-node.elementor-widget{max-width:100%}
.hec-site .hec-node .elementor-heading-title{padding:0;display:block}
.hec-site .hec-node .elementor-heading-title a{color:inherit}
.hec-site .hec-node.elementor-widget-image{line-height:0}
.hec-site .hec-node.elementor-widget-image img{display:block}
.hec-site .hec-contained-image{height:100%;display:flex;align-items:center;justify-content:center}
.hec-site .hec-contained-image>.elementor-widget-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.hec-site .hec-full-height-image,.hec-site .hec-full-height-image>.elementor-widget-container{height:100%}
.hec-site .hec-node.elementor-widget-icon{line-height:0}
.hec-site .hec-node .elementor-icon{display:flex;align-items:center;justify-content:center}
.hec-site .hec-line-icon svg,.hec-site .hec-line-icon svg path{fill:none}
.hec-site .hec-line-icon svg{stroke:currentColor}
.hec-site .hec-node .elementor-button-content-wrapper{align-items:center}
.hec-site .hec-node .elementor-button-icon{display:flex;align-items:center}
.hec-site .hec-node .elementor-button-text:empty{display:none}
.hec-site .hec-icon-button .elementor-button{display:flex;width:100%;height:100%;align-items:center;justify-content:center}
.hec-site .hec-icon-button>.elementor-widget-container{height:100%}
.hec-site .elementor-location-header{position:sticky;top:0;z-index:50}
.admin-bar.hec-site .elementor-location-header{top:32px}
.hec-site .hec-site-header{position:relative}
.hec-site .hec-logo-black{display:none}
.hec-site[data-hec-theme="light"] .hec-logo-white{display:none}
.hec-site[data-hec-theme="light"] .hec-logo-black{display:block}
.hec-site .hec-menu-toggle{display:none}
.hec-site .hec-mobile-menu{display:none}
.hec-site.hec-menu-open .hec-mobile-menu{display:flex}
.hec-site.hec-menu-open{overflow:hidden}
.hec-site .hec-mobile-menu{height:calc(100dvh - 76px);overflow-y:auto}
.hec-site .hec-mobile-menu .elementor-button{display:flex;width:100%}
.hec-site .hec-mobile-menu .elementor-button-content-wrapper{width:100%;justify-content:space-between}
.hec-site .hec-mobile-menu .elementor-button-text{text-align:left}
.hec-site .hec-marquee{display:block;width:max-content;max-width:none;white-space:nowrap}
.hec-site .hec-marquee>.elementor-widget-heading{display:inline-block;vertical-align:middle;max-width:none}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.hec-site .hec-project-card:hover .hec-project-logo,.hec-site .hec-project-card:focus-within .hec-project-logo{opacity:0}
.hec-site .hec-project-card:hover .hec-project-overlay,.hec-site .hec-project-card:focus-within .hec-project-overlay{opacity:1}
.hec-site .hec-contact-form{width:100%}
.hec-site .hec-contact-form .elementor-field-label{text-transform:uppercase;font-family:var(--mono);font-weight:400}
.hec-site .hec-contact-form .elementor-field-group .elementor-field{padding:13px 15px;min-height:0;box-shadow:none;outline:none;transition:border-color .2s}
.hec-site .hec-contact-form .elementor-field-group .elementor-field:focus{border-color:var(--accent)}
.hec-site .hec-contact-form textarea.elementor-field{resize:vertical;line-height:normal}
.hec-site .hec-contact-form .elementor-button svg,.hec-site .hec-contact-form .elementor-button svg path{fill:none;stroke:currentColor}
.hec-site .hec-contact-form .elementor-button svg{width:17px;height:17px}
.hec-site .hec-contact-form .elementor-button{padding:16px 24px;min-height:0}
.hec-site .hec-contact-form .elementor-button-content-wrapper{flex-direction:row-reverse;gap:10px}
.hec-site .hec-theme-toggle .elementor-button,.hec-site .hec-menu-toggle .elementor-button{padding:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.hec-site a:focus-visible,.hec-site button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:1060px){
 .hec-site .hec-desktop-nav{display:none}
 .hec-site .hec-menu-toggle{display:block}
}
@media(max-width:782px){.admin-bar.hec-site .elementor-location-header{top:46px}}
@media(prefers-reduced-motion:reduce){
 html:has(.hec-site){scroll-behavior:auto}
 .hec-site .hec-marquee{animation:none}
 .hec-site .hec-node,.hec-site .hec-node *{transition-duration:0s;animation-duration:0s}
}
