/* Devcore global shell v1.0.0. All visual rules are strictly scoped. */
#dc-global-header, .dc-global-footer { --dc-shell-lime:#b2d51b; --dc-shell-lime-bright:#c0e633; --dc-shell-ink:#060b09; --dc-shell-green:#142319; --dc-shell-text:#f0f4ef; --dc-shell-muted:#98a9a0; }
#dc-global-header, .dc-global-footer { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing:antialiased; box-sizing:border-box; }
#dc-global-header *, #dc-global-header *::before, #dc-global-header *::after, .dc-global-footer *, .dc-global-footer *::before, .dc-global-footer *::after { box-sizing:border-box; }
#dc-global-header svg, .dc-global-footer svg { display:block; flex:none; }
#dc-global-header a, #dc-global-header button, .dc-global-footer a { -webkit-tap-highlight-color: transparent; }
#dc-global-header a, .dc-global-footer a { text-decoration:none; }
#dc-global-header button { font-family:inherit; }
#dc-global-header :focus-visible, .dc-global-footer :focus-visible { outline:2px solid var(--dc-shell-lime-bright); outline-offset:5px; }
#dc-global-header { position:sticky; top:0; z-index:9970; width:100%; background:rgba(5,9,7,.955); border-bottom:1px solid rgba(173,208,143,.14); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); isolation:isolate; color:var(--dc-shell-text); }
body.admin-bar #dc-global-header { top:32px; }
#dc-global-header .dc-global-header__inner { max-width:1520px; min-height:82px; margin:0 auto; padding:0 clamp(20px,4vw,64px); display:grid; grid-template-columns:minmax(184px,1fr) auto minmax(184px,1fr); align-items:center; gap:24px; }
#dc-global-header .dc-brand { display:inline-flex; width:max-content; max-width:100%; align-items:center; line-height:0; position:relative; z-index:1; }
#dc-global-header .dc-brand-logo, .dc-global-footer .dc-brand-logo { display:block; width:215px; max-width:100%; height:auto; max-height:36px; object-fit:contain; object-position:left center; }
#dc-global-header .dc-desktop-nav { align-self:stretch; display:flex; align-items:stretch; justify-content:center; }
#dc-global-header .dc-nav-list { list-style:none; display:flex; align-items:stretch; justify-content:center; gap:clamp(8px,1.45vw,26px); margin:0; padding:0; }
#dc-global-header .dc-nav-item { display:flex; align-items:stretch; position:static; margin:0; padding:0; }
#dc-global-header .dc-nav-link, #dc-global-header .dc-nav-trigger { display:flex; align-items:center; justify-content:center; position:relative; min-height:82px; gap:7px; margin:0; padding:0 5px; background:none; border:0; border-radius:0; box-shadow:none; white-space:nowrap; color:#c2cbc3; font-size:13px; font-weight:500; line-height:1.4; letter-spacing:-.008em; text-decoration:none; cursor:pointer; transition:color .18s ease; }
#dc-global-header .dc-nav-link:hover, #dc-global-header .dc-nav-trigger:hover, #dc-global-header .dc-nav-item.is-active > .dc-nav-link, #dc-global-header .dc-nav-item.is-active > .dc-nav-trigger, #dc-global-header .dc-nav-item.is-open > .dc-nav-trigger { color:#fff; }
#dc-global-header .dc-nav-link.is-label { opacity:.55; cursor:default; }
#dc-global-header .dc-nav-item > .dc-nav-link::after, #dc-global-header .dc-nav-item > .dc-nav-trigger::after { position:absolute; bottom:0; left:5px; right:5px; height:2px; content:""; transform:scaleX(0); transform-origin:center; background:linear-gradient(90deg,#8aae12,var(--dc-shell-lime-bright)); transition:transform .2s ease; }
#dc-global-header .dc-nav-item.is-active > .dc-nav-link::after, #dc-global-header .dc-nav-item.is-active > .dc-nav-trigger::after, #dc-global-header .dc-nav-item.is-open > .dc-nav-trigger::after, #dc-global-header .dc-nav-item:hover > .dc-nav-link::after, #dc-global-header .dc-nav-item:hover > .dc-nav-trigger::after { transform:scaleX(1); }
#dc-global-header .dc-chevron { width:13px; height:13px; opacity:.68; transition:transform .22s ease; }
#dc-global-header .dc-nav-item.is-open .dc-chevron, #dc-global-header .dc-nav-item:hover .dc-chevron { transform:rotate(180deg); }
#dc-global-header .dc-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
#dc-global-header .dc-contact-cta { display:inline-flex; gap:12px; align-items:center; justify-content:center; min-width:118px; padding:10px 18px 10px 21px; border:1px solid rgba(181,219,25,.80); border-radius:100px; background:rgba(7,11,7,.42); color:#f8faf6; font-size:12px; line-height:1.1; font-weight:650; letter-spacing:-.01em; transition:background .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease; }
#dc-global-header .dc-contact-cta svg { width:16px; height:16px; transition:transform .22s ease; }
#dc-global-header .dc-contact-cta:hover { color:#091006; background:var(--dc-shell-lime-bright); box-shadow:0 0 27px rgba(178,213,27,.18); transform:translateY(-1px); }
#dc-global-header .dc-contact-cta:hover svg { transform:translate(2px,-2px); }
/* Premium megamenu, rendered from the site's normal WordPress navigation items. */
#dc-global-header .dc-mega { display:grid; grid-template-columns:320px minmax(0,1fr); width:min(1050px,calc(100vw - 64px)); min-height:345px; position:absolute; top:calc(100% - 1px); left:50%; padding:10px; color:var(--dc-shell-text); border:1px solid rgba(147,185,140,.22); border-radius:0 0 20px 20px; background:linear-gradient(122deg,rgba(14,25,19,.985),rgba(6,14,11,.99) 57%,rgba(7,13,10,.99)); box-shadow:0 24px 70px rgba(0,0,0,.50),inset 0 1px 0 rgba(174,209,141,.09); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,11px); transition:opacity .20s ease,visibility .20s ease,transform .20s ease; overflow:hidden; }
#dc-global-header .dc-mega::before { position:absolute; top:-200px; right:1%; width:440px; height:350px; border-radius:50%; content:""; background:radial-gradient(circle,rgba(80,115,38,.14),transparent 68%); pointer-events:none; }
#dc-global-header .dc-nav-item.is-open > .dc-mega, #dc-global-header:not(.dc-js-ready) .dc-nav-item:hover > .dc-mega, #dc-global-header:not(.dc-js-ready) .dc-nav-item:focus-within > .dc-mega { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
#dc-global-header .dc-mega__intro { background:linear-gradient(165deg,rgba(33,58,33,.73),rgba(14,29,23,.70)); border:1px solid rgba(156,190,97,.13); border-radius:13px; padding:28px 25px 21px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
#dc-global-header .dc-mega__intro::before { content:""; position:absolute; width:220px; height:220px; border:1px solid rgba(181,218,32,.12); border-radius:50%; bottom:-120px; right:-95px; box-shadow:0 0 0 30px rgba(155,215,36,.018),0 0 0 65px rgba(155,215,36,.012); pointer-events:none; }
#dc-global-header .dc-mega__eyebrow { color:#b7dc5f; font-size:10px; font-weight:730; letter-spacing:.18em; display:flex; align-items:center; gap:8px; }
#dc-global-header .dc-mega__dot { width:7px; height:7px; background:#bbde3c; display:inline-block; border-radius:50%; box-shadow:0 0 12px rgba(188,224,55,.56); }
#dc-global-header .dc-mega__headline { font-size:30px; font-weight:740; line-height:1.12; letter-spacing:-.052em; color:#f7f9f5; margin:36px 0 13px; max-width:265px; }
#dc-global-header .dc-mega__description { color:#b1c0b3; font-size:13px; line-height:1.65; font-weight:400; margin:0; max-width:263px; }
#dc-global-header .dc-mega__explore { color:#d0ec6c; font-size:12px; font-weight:670; display:inline-flex; width:max-content; gap:10px; align-items:center; margin-top:24px; transition:gap .18s ease; }
#dc-global-header .dc-mega__explore:hover { gap:16px; color:#f5ffc9; }
#dc-global-header .dc-mega__explore svg { width:15px; height:15px; }
#dc-global-header .dc-mega__signature { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:42px; color:#72906e; font-size:8px; font-weight:670; letter-spacing:.16em; }
#dc-global-header .dc-mega__signature span:first-child { color:#b8d553; letter-spacing:.12em; }
#dc-global-header .dc-mega__main { display:flex; flex-direction:column; padding:25px 22px 17px 25px; min-width:0; position:relative; z-index:1; }
#dc-global-header .dc-mega__section-label { color:#809b86; font-size:10px; font-weight:720; letter-spacing:.18em; padding:1px 0 14px 7px; }
#dc-global-header .dc-mega__cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; align-content:start; }
#dc-global-header .dc-mega-card { min-height:102px; display:flex; align-items:flex-start; gap:13px; position:relative; padding:20px 12px 14px; border:1px solid transparent; border-radius:12px; color:#f3f6f1; background:rgba(255,255,255,.02); transition:background .18s ease,border-color .18s ease,transform .18s ease; }
#dc-global-header a.dc-mega-card:hover, #dc-global-header .dc-mega-card.is-current { background:rgba(157,194,86,.095); border-color:rgba(179,220,93,.27); transform:translateY(-2px); }
#dc-global-header .dc-mega-card__icon { display:flex; align-items:center; justify-content:center; width:37px; height:37px; flex:0 0 37px; border:1px solid rgba(160,203,93,.26); background:#18281d; color:#b7dd51; border-radius:10px; }
#dc-global-header .dc-mega-card__icon svg { width:18px; height:18px; }
#dc-global-header .dc-mega-card__content { min-width:0; display:flex; flex-direction:column; gap:7px; padding-top:1px; }
#dc-global-header .dc-mega-card__title { color:#f6f9f3; font-size:14px; line-height:1.25; font-weight:650; letter-spacing:-.022em; }
#dc-global-header .dc-mega-card__desc { color:#a4b6a7; font-size:11.4px; line-height:1.52; max-width:240px; font-weight:400; }
#dc-global-header .dc-mega-card__arrow { color:#a9d12b; align-self:flex-start; margin:0 0 0 auto; opacity:0; transform:translate(-3px,3px); transition:opacity .18s ease,transform .18s ease; }
#dc-global-header .dc-mega-card__arrow svg { width:14px; height:14px; }
#dc-global-header a.dc-mega-card:hover .dc-mega-card__arrow { opacity:1; transform:translate(0,0); }
#dc-global-header .dc-mega-nested { padding:3px 7px 8px 62px; display:flex; flex-direction:column; gap:5px; }
#dc-global-header .dc-mega-nested a { color:#a9bbae; font-size:11.5px; }
#dc-global-header .dc-mega-nested a:hover { color:#cbed80; }
/* Mobile drawer; desktop unaffected. */
#dc-global-header .dc-mobile-toggle { display:none; align-items:center; justify-content:center; width:43px; height:43px; padding:0; border:1px solid rgba(185,213,146,.3); border-radius:11px; background:#172319; color:#c9eb61; cursor:pointer; }
#dc-global-header .dc-mobile-toggle svg { width:23px; height:23px; }
#dc-global-header .dc-mobile-backdrop { position:fixed; top:0; left:0; width:100vw; height:100dvh; z-index:9972; background:rgba(0,0,0,.68); backdrop-filter:blur(5px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .23s ease,visibility .23s ease; }
#dc-global-header .dc-mobile-drawer { display:flex; flex-direction:column; position:fixed; z-index:9973; top:0; right:0; bottom:0; width:min(440px,100vw); height:100dvh; padding:26px 25px 23px; overflow-y:auto; overscroll-behavior:contain; background:radial-gradient(ellipse at 85% 0%,rgba(47,74,32,.25),transparent 45%),#08120c; border-left:1px solid rgba(177,215,118,.17); box-shadow:-25px 0 65px rgba(0,0,0,.4); clip-path:inset(0 0 0 100%); opacity:0; visibility:hidden; pointer-events:none; transition:clip-path .28s cubic-bezier(.2,.85,.2,1),opacity .28s ease,visibility .28s ease; }
#dc-global-header.dc-mobile-open .dc-mobile-backdrop { opacity:1; visibility:visible; pointer-events:auto; }
#dc-global-header.dc-mobile-open .dc-mobile-drawer { clip-path:inset(0 0 0 0); opacity:1; visibility:visible; pointer-events:auto; }
body.dc-mobile-menu-open { overflow:hidden; }
#dc-global-header .dc-mobile-drawer__top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:25px; border-bottom:1px solid rgba(167,193,152,.17); }
#dc-global-header .dc-mobile-drawer__eyebrow { color:#badc50; font-size:11px; font-weight:760; letter-spacing:.18em; }
#dc-global-header .dc-mobile-close { display:flex; justify-content:center; align-items:center; width:43px; height:43px; padding:0; color:#e1e9d9; background:#1a2a1d; border:1px solid rgba(168,208,118,.29); border-radius:11px; cursor:pointer; }
#dc-global-header .dc-mobile-close svg { width:21px; height:21px; }
#dc-global-header .dc-mobile-nav { flex:1; padding-top:15px; }
#dc-global-header .dc-mobile-group { border-bottom:1px solid rgba(161,191,155,.15); }
#dc-global-header .dc-mobile-group__trigger, #dc-global-header .dc-mobile-group__link { width:100%; min-height:69px; display:flex; align-items:center; justify-content:space-between; text-align:left; gap:12px; color:#f3f8ee; background:none; padding:14px 3px; border:0; border-radius:0; font-size:23px; font-weight:650; letter-spacing:-.045em; cursor:pointer; line-height:1.3; }
#dc-global-header .dc-mobile-group__trigger svg, #dc-global-header .dc-mobile-group__link svg { width:18px; height:18px; color:#b5d842; transition:transform .18s ease; }
#dc-global-header .dc-mobile-group__trigger[aria-expanded="true"] svg { transform:rotate(180deg); }
#dc-global-header .dc-mobile-group__children { padding:2px 0 18px; }
#dc-global-header .dc-mobile-child { display:flex; align-items:flex-start; gap:12px; padding:15px 11px; color:#eef5e6; border-radius:11px; transition:background .2s ease; }
#dc-global-header .dc-mobile-child:hover { background:rgba(171,211,97,.10); }
#dc-global-header .dc-mobile-child__icon { width:37px; height:37px; border-radius:9px; background:#1c301e; color:#bbe14e; display:flex; align-items:center; justify-content:center; flex:none; }
#dc-global-header .dc-mobile-child__icon svg { width:17px; height:17px; }
#dc-global-header .dc-mobile-child strong { display:block; font-size:14px; font-weight:650; line-height:1.4; color:#e9f2e5; }
#dc-global-header .dc-mobile-child small { display:block; color:#9daf9e; font-size:11.5px; line-height:1.5; padding-top:3px; }
#dc-global-header .dc-mobile-drawer__bottom { margin-top:35px; border-top:1px solid rgba(161,191,155,.19); padding-top:22px; }
#dc-global-header .dc-mobile-drawer__tagline { display:block; font-size:9px; color:#98ae8f; letter-spacing:.16em; margin-bottom:17px; }
#dc-global-header .dc-mobile-contact { display:flex; align-items:center; justify-content:space-between; background:#b8dd2d; color:#0d1507; border-radius:11px; padding:15px 18px; font-weight:750; font-size:15px; }
#dc-global-header .dc-mobile-contact svg { width:17px; height:17px; }
/* Footer: independent of page layout and Elementor styles. */
.dc-global-footer { position:relative; overflow:hidden; color:#e4ede3; background:#060b08; border-top:1px solid rgba(164,197,148,.17); }
.dc-global-footer .dc-footer-glow { pointer-events:none; position:absolute; width:610px; height:420px; background:radial-gradient(ellipse,rgba(74,106,38,.11),transparent 68%); left:-190px; top:-210px; }
.dc-global-footer .dc-global-footer__inner { max-width:1520px; margin:0 auto; padding:0 clamp(20px,4vw,64px); position:relative; }
.dc-global-footer .dc-footer-topline { display:flex; justify-content:flex-start; align-items:center; gap:15px; padding-top:45px; color:#a1c366; font-size:10px; font-weight:700; letter-spacing:.19em; }
.dc-global-footer .dc-footer-topline__line { display:inline-block; height:1px; width:38px; background:#a3c43f; }
.dc-global-footer .dc-footer-main { display:grid; grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); gap:clamp(35px,9vw,140px); padding:46px 0 75px; }
.dc-global-footer .dc-footer-identity { display:flex; align-items:flex-start; flex-direction:column; }
.dc-global-footer .dc-footer-logo { display:inline-flex; line-height:0; max-width:100%; }
.dc-global-footer .dc-footer-logo .dc-brand-logo { width:194px; }
.dc-global-footer .dc-footer-tagline { color:#a8b9aa; font-size:14px; line-height:1.55; margin:23px 0 21px; font-weight:430; letter-spacing:-.012em; }
.dc-global-footer .dc-footer-identity address { font-size:12px; font-style:normal; color:#90a398; line-height:1.9; margin:0; }
.dc-global-footer .dc-footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-top:1px; }
.dc-global-footer .dc-footer-group h3 { font-size:12px; letter-spacing:.065em; text-transform:uppercase; color:#eef3e9; font-weight:690; margin:0 0 23px; line-height:1.35; }
.dc-global-footer .dc-footer-group ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:15px; }
.dc-global-footer .dc-footer-group li { margin:0; padding:0; line-height:1.2; }
.dc-global-footer .dc-footer-group a { color:#99ad9e; font-size:12px; line-height:1.5; transition:color .18s ease; }
.dc-global-footer .dc-footer-group a:hover { color:#c5ed66; }
.dc-global-footer .dc-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:22px 0 28px; border-top:1px solid rgba(160,189,145,.14); color:#738777; font-size:11px; line-height:1.5; }
.dc-global-footer .dc-footer-bottom a { display:inline-flex; align-items:center; gap:8px; color:#adc87e; font-weight:620; transition:color .2s ease; }
.dc-global-footer .dc-footer-bottom a:hover { color:#c6ea4b; }
.dc-global-footer .dc-footer-bottom svg { width:14px; height:14px; }
@media (max-width: 1160px) {
    #dc-global-header .dc-global-header__inner { grid-template-columns:minmax(140px,1fr) auto; min-height:76px; }
    #dc-global-header .dc-desktop-nav { display:none; }
    #dc-global-header .dc-mobile-toggle { display:inline-flex; }
    #dc-global-header .dc-contact-cta { min-height:40px; }
    .dc-global-footer .dc-footer-main { grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:38px; }
}
@media (max-width: 782px) { body.admin-bar #dc-global-header { top:46px; } }
@media (max-width: 760px) {
    #dc-global-header .dc-global-header__inner { min-height:71px; padding:0 20px; }
    #dc-global-header .dc-brand-logo { width:192px; max-height:30px; }
    #dc-global-header .dc-contact-cta { display:none; }
    .dc-global-footer .dc-footer-topline { padding-top:36px; }
    .dc-global-footer .dc-footer-main { display:flex; flex-direction:column; gap:41px; padding:33px 0 51px; }
    .dc-global-footer .dc-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 26px; }
    .dc-global-footer .dc-footer-group h3 { margin-bottom:17px; }
    .dc-global-footer .dc-footer-group ul { gap:10px; }
    .dc-global-footer .dc-footer-bottom { flex-wrap:wrap; gap:9px; }
}
@media (max-width: 390px) {
    #dc-global-header .dc-brand-logo { width:176px; }
    #dc-global-header .dc-mobile-drawer { padding-left:19px; padding-right:19px; }
}
@media (prefers-reduced-motion: reduce) {
    #dc-global-header *, .dc-global-footer * { transition-duration:0.001ms !important; animation-duration:0.001ms !important; }
}
