/* ==========================================================================
   ECG NIG LTD — Heritage design system (mirrors the Base44 build)
   Tokens → base → header → drawers → Elementor widget classes → sections
   ========================================================================== */
:root{
  --ecg-primary:#7D1C2D;        /* hsl(349 64% 30%) buttons */
  --ecg-primary-hover:#651824;
  --ecg-red:#7B1E2B;            /* heritage-red */
  --ecg-charcoal:#171717;
  --ecg-ivory:#F7F3EC;
  --ecg-bg:#F7F4EE;             /* hsl(40 36% 95%) */
  --ecg-stone:#E9DDD8;
  --ecg-gold:#B4925F;           /* hsl(36 36% 54%) accent */
  --ecg-border:#D7CEC1;
  --ecg-serif:"Cormorant Garamond",ui-serif,Georgia,serif;
  --ecg-sans:"Manrope",ui-sans-serif,system-ui,sans-serif;
  --ecg-ease:cubic-bezier(.22,1,.36,1);
  --ecg-ease-tw:cubic-bezier(.4,0,.2,1);
  --ecg-arrow:url(/wp-content/uploads/ecg-icons/arrow-right.svg);
  --ecg-msg:url(/wp-content/uploads/ecg-icons/message-circle.svg);
}

/* ---------- Base ---------- */
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{background-color:var(--ecg-bg)!important;color:var(--ecg-charcoal);font-family:var(--ecg-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body .site,body #wrapper,body #inner-wrap{background:transparent}
.ecg-page-offset,body:not(.elementor-page) #inner-wrap{padding-top:80px}
body.elementor-page #inner-wrap{padding-top:0}
.ecg-wrap{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem;box-sizing:border-box}
@media (min-width:768px){.ecg-wrap{padding-left:2.5rem;padding-right:2.5rem}}
.ecg-ico{width:20px;height:20px;flex-shrink:0;display:block}
.ecg-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.elementor a{text-decoration:none}
.elementor-widget-heading .elementor-heading-title a{color:inherit}

/* ---------- Header ---------- */
.ecg-header{position:fixed;left:0;right:0;top:0;z-index:50;background:var(--ecg-charcoal);transition:all .5s var(--ecg-ease-tw)}
.admin-bar .ecg-header{top:32px}
@media (max-width:782px){.admin-bar .ecg-header{top:46px}}
.ecg-header__line{position:absolute;left:0;right:0;pointer-events:none;transition:all .5s var(--ecg-ease-tw)}
.ecg-header__line--top{top:0;height:1px;background:linear-gradient(to right,transparent,rgba(180,146,95,.6),transparent)}
.ecg-header__line--bottom{bottom:0;height:2px;opacity:.7;background:linear-gradient(to right,transparent,rgba(180,146,95,.5),transparent)}
.ecg-header__inner{display:flex;align-items:center;justify-content:space-between;height:80px;transition:height .5s var(--ecg-ease-tw)}
.ecg-header.is-scrolled{background:rgba(23,23,23,.9);box-shadow:0 10px 40px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ecg-header.is-scrolled .ecg-header__line--bottom{height:1px;opacity:1}
.ecg-header.is-scrolled .ecg-header__inner{height:64px}
.ecg-logo{display:flex;align-items:center;gap:12px;transform-origin:left center;transition:transform .5s var(--ecg-ease-tw);text-decoration:none!important}
.ecg-header.is-scrolled .ecg-logo{transform:scale(.92)}
.ecg-logo__mark{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--ecg-gold);font-family:var(--ecg-serif);font-size:18px;line-height:28px;font-weight:500;color:var(--ecg-gold);transition:background-color .3s,color .3s;box-sizing:border-box}
.ecg-logo:hover .ecg-logo__mark{background:var(--ecg-gold);color:var(--ecg-charcoal)}
.ecg-logo__text{display:flex;flex-direction:column;line-height:1}
.ecg-logo__name{font-family:var(--ecg-serif);font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.025em;color:var(--ecg-ivory)}
.ecg-logo__tag{font-family:var(--ecg-sans);font-size:.6rem;line-height:1;text-transform:uppercase;letter-spacing:.28em;color:var(--ecg-gold)}
.ecg-nav{display:none;align-items:center;gap:32px}
@media (min-width:1024px){.ecg-nav{display:flex}}
.ecg-nav a{position:relative;font-family:var(--ecg-sans);font-size:.8rem;line-height:1.6;text-transform:uppercase;letter-spacing:.14em;color:rgba(247,243,236,.7);text-decoration:none!important;transition:color .3s}
.ecg-nav a:hover{color:var(--ecg-ivory)}
.ecg-nav a.is-active{color:var(--ecg-gold)}
.ecg-nav a.is-active::after{content:"";position:absolute;left:0;bottom:-8px;height:1px;width:100%;background:var(--ecg-gold)}
.ecg-header__actions{display:flex;align-items:center;gap:16px}
.ecg-iconbtn{position:relative;display:flex;width:44px;height:44px;align-items:center;justify-content:center;padding:0;margin:0;background:none!important;border:0!important;box-shadow:none!important;border-radius:0;color:rgba(247,243,236,.8);cursor:pointer;transition:color .15s;text-decoration:none!important}
.ecg-iconbtn:hover,.ecg-iconbtn:focus-visible{color:var(--ecg-gold)}
.ecg-iconbtn .ecg-ico{width:20px;height:20px}
.ecg-iconbtn--account{display:none}
@media (min-width:640px){.ecg-iconbtn--account{display:flex}}
.ecg-iconbtn--menu{color:var(--ecg-ivory)}
.ecg-iconbtn--menu .ecg-ico{width:24px;height:24px}
@media (min-width:1024px){.ecg-iconbtn--menu{display:none}}
.ecg-bag-count{position:absolute;top:6px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--ecg-primary);color:var(--ecg-ivory);font:600 10px/16px var(--ecg-sans);text-align:center;display:none}
.ecg-bag-count.has-items{display:block}

/* ---------- Overlays: mobile menu, search, quote drawer ---------- */
.ecg-lock{overflow:hidden}
.ecg-menu{position:fixed;inset:0;z-index:60;pointer-events:none}
.ecg-menu.is-open{pointer-events:auto}
.ecg-menu__scrim{position:absolute;inset:0;background:rgba(23,23,23,.4);opacity:0;transition:opacity .5s}
.ecg-menu.is-open .ecg-menu__scrim{opacity:1}
.ecg-menu__panel{position:absolute;right:0;top:0;display:flex;flex-direction:column;height:100%;width:82%;max-width:24rem;background:var(--ecg-charcoal);transform:translateX(100%);transition:transform .5s ease-out}
.ecg-menu.is-open .ecg-menu__panel{transform:none}
.ecg-menu__head{display:flex;align-items:center;justify-content:space-between;padding:24px}
.ecg-menu__title{font-family:var(--ecg-serif);font-size:24px;line-height:32px;font-weight:300;color:var(--ecg-ivory)}
.ecg-menu__rule{display:block;margin:0 24px;height:1px;width:64px;background:rgba(180,146,95,.6)}
.ecg-menu__nav{margin-top:32px;display:flex;flex-direction:column;gap:4px;padding:0 24px}
.ecg-menu__nav a{border-bottom:1px solid rgba(247,243,236,.15);padding:16px 0;font-family:var(--ecg-serif);font-size:24px;line-height:32px;font-weight:300;color:var(--ecg-ivory);text-decoration:none!important;opacity:0}
.ecg-menu__nav a.is-active{color:var(--ecg-gold)}
.ecg-menu.is-open .ecg-menu__nav a{animation:ecg-reveal-up .8s ease-out both}
.ecg-menu__foot{margin-top:auto;padding:0 24px 40px}
.ecg-menu__foot .ecg-hbtn{width:100%;box-sizing:border-box}
.ecg-menu__account{margin-top:16px;display:block;text-align:center;font:12px/16px var(--ecg-sans);text-transform:uppercase;letter-spacing:.2em;color:rgba(247,243,236,.7);text-decoration:none!important}
.ecg-menu__account:hover{color:var(--ecg-gold)}
.ecg-menu__phones{margin:24px 0 0;font:12px/16px var(--ecg-sans);text-transform:uppercase;letter-spacing:.2em;color:rgba(247,243,236,.7)}

.ecg-search{position:fixed;inset:0;z-index:85;display:none}
.ecg-search.is-open{display:block}
.ecg-search__scrim{position:absolute;inset:0;background:rgba(23,23,23,.3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ecg-search__panel{position:absolute;left:0;right:0;top:0;border-bottom:1px solid rgba(180,146,95,.25);background:rgba(23,23,23,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:ecg-slide-down .4s var(--ecg-ease) both}
.ecg-search__form{display:flex;align-items:center;gap:16px;padding-top:24px;padding-bottom:24px;margin:0 auto}
@media (min-width:768px){.ecg-search__form{padding-top:32px;padding-bottom:32px}}
.ecg-search__form>.ecg-ico{color:var(--ecg-gold)}
.ecg-search__input{width:100%;background:transparent!important;border:0!important;box-shadow:none!important;outline:none!important;padding:0!important;font-family:var(--ecg-serif)!important;font-size:24px!important;line-height:32px!important;font-weight:300!important;color:var(--ecg-ivory)!important}
.ecg-search__input::placeholder{color:rgba(247,243,236,.35)}
@media (min-width:768px){.ecg-search__input{font-size:30px!important;line-height:36px!important}}
.ecg-search .ecg-iconbtn{color:rgba(247,243,236,.7)}

.ecg-qscrim{position:fixed;inset:0;z-index:70;background:rgba(23,23,23,.5);opacity:0;pointer-events:none;transition:opacity .4s}
.ecg-qscrim.is-open{opacity:1;pointer-events:auto}
.ecg-quote{position:fixed;top:0;right:0;bottom:0;z-index:80;display:flex;flex-direction:column;width:100%;max-width:28rem;background:var(--ecg-ivory);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .5s ease-out}
.ecg-quote.is-open{transform:none}
.ecg-quote__head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(180,146,95,.2);padding:20px 24px}
.ecg-quote__title{margin:0;font-family:var(--ecg-serif);font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.02em;color:var(--ecg-charcoal)}
.ecg-quote__count{margin:0;font:12px/16px var(--ecg-sans);text-transform:uppercase;letter-spacing:.18em;color:var(--ecg-gold)}
.ecg-quote .ecg-iconbtn{width:40px;height:40px;color:var(--ecg-charcoal)}
.ecg-quote .ecg-iconbtn:hover{color:var(--ecg-red)}
.ecg-quote__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 32px;text-align:center}
.ecg-quote__empty-title{margin:0;font-family:var(--ecg-serif);font-size:20px;line-height:28px;font-weight:300;font-style:italic;color:rgba(23,23,23,.6)}
.ecg-quote__empty-text{margin:12px 0 0;font:14px/20px var(--ecg-sans);color:rgba(23,23,23,.6)}
.ecg-quote__empty .ecg-hbtn{margin-top:32px}
.ecg-quote__list{flex:1;overflow-y:auto;list-style:none;margin:0;padding:8px 24px}
.ecg-quote__item{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:20px 0;border-bottom:1px solid rgba(23,23,23,.1)}
.ecg-quote__item-cat{margin:0;font:12px/16px var(--ecg-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--ecg-gold)}
.ecg-quote__item-name{margin:4px 0 0;font-family:var(--ecg-serif);font-size:18px;line-height:24px;font-weight:500;color:var(--ecg-charcoal)}
.ecg-quote__qty{display:inline-flex;align-items:center;margin-top:12px;border:1px solid rgba(23,23,23,.2)}
.ecg-quote__qty button{display:flex;width:32px;height:32px;align-items:center;justify-content:center;background:none!important;border:0!important;padding:0;color:var(--ecg-charcoal);cursor:pointer}
.ecg-quote__qty button:hover{color:var(--ecg-red)}
.ecg-quote__qty .ecg-ico{width:14px;height:14px}
.ecg-quote__qty span{min-width:32px;text-align:center;font:500 13px/32px var(--ecg-sans)}
.ecg-quote__remove{background:none!important;border:0!important;padding:4px;color:rgba(23,23,23,.45);cursor:pointer}
.ecg-quote__remove:hover{color:var(--ecg-red)}
.ecg-quote__remove .ecg-ico{width:16px;height:16px}
.ecg-quote__foot{border-top:1px solid rgba(180,146,95,.2);padding:20px 24px 28px}
.ecg-quote__foot .ecg-hbtn{width:100%;box-sizing:border-box}
.ecg-quote__note{margin:12px 0 0;text-align:center;font:12px/18px var(--ecg-sans);color:rgba(23,23,23,.55)}
.ecg-quote[data-state="empty"] .ecg-quote__list,.ecg-quote[data-state="empty"] .ecg-quote__foot{display:none}
.ecg-quote[data-state="items"] .ecg-quote__empty{display:none}

/* Buttons used in PHP markup (header / drawers / forms) */
.ecg-hbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;font:500 14px/20px var(--ecg-sans);text-transform:uppercase;letter-spacing:.12em;border:0;border-radius:0;cursor:pointer;text-decoration:none!important;transition:all .3s var(--ecg-ease-tw)}
.ecg-hbtn:active{transform:scale(.98)}
.ecg-hbtn .ecg-ico{width:16px;height:16px}
.ecg-hbtn--primary{background:var(--ecg-primary)!important;color:var(--ecg-bg)!important}
.ecg-hbtn--primary:hover{background:var(--ecg-primary-hover)!important;letter-spacing:.17em}
.ecg-hbtn--gold{border:1px solid var(--ecg-gold);color:var(--ecg-gold)!important;background:transparent}
.ecg-hbtn--gold:hover{background:var(--ecg-gold);color:var(--ecg-bg)!important}
.ecg-hbtn--outline{border:1px solid rgba(23,23,23,.3);color:var(--ecg-charcoal)!important;background:transparent}
.ecg-hbtn--outline:hover{border-color:var(--ecg-primary);color:var(--ecg-primary)!important}

/* Quick quote form (hero) */
.ecg-qq{border:1px solid rgba(247,243,236,.15);background:rgba(255,255,255,.05);padding:28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
@media (min-width:768px){.ecg-qq{padding:32px}}
.ecg-qq__eyebrow{margin:0;font:500 12px/16px var(--ecg-sans);text-transform:uppercase;letter-spacing:.22em;color:var(--ecg-gold)}
.ecg-qq__title{margin:12px 0 0;font-family:var(--ecg-serif);font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.02em;color:var(--ecg-ivory)}
.ecg-qq__form{margin:24px 0 0;display:flex;flex-direction:column;gap:12px}
.ecg-qq__row{display:grid;gap:12px}
@media (min-width:640px){.ecg-qq__row{grid-template-columns:1fr 1fr}}
.ecg-qq__field{width:100%;box-sizing:border-box;border:0!important;border-bottom:1px solid rgba(247,243,236,.25)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:10px 0!important;margin:0;font:14px/20px var(--ecg-sans)!important;color:var(--ecg-ivory)!important;outline:none!important;-webkit-appearance:none;appearance:none}
.ecg-qq__field::placeholder{color:rgba(247,243,236,.4)}
.ecg-qq__field:focus{border-bottom-color:var(--ecg-gold)!important}
select.ecg-qq__field{background-image:none!important;cursor:pointer}
select.ecg-qq__field option{color:var(--ecg-charcoal);background:#fff}
.ecg-qq__form .ecg-hbtn{width:100%;margin-top:0}
.ecg-qq__hp{position:absolute!important;left:-9999px!important}
.ecg-qq__done{margin:24px 0 0;padding:16px;border:1px solid rgba(180,146,95,.4);font:14px/22px var(--ecg-sans);color:var(--ecg-ivory)}

/* ==========================================================================
   Elementor widget classes (applied via Advanced → CSS Classes)
   ========================================================================== */
.elementor .ecg-eyebrow .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--ecg-gold)}
.elementor .ecg-eyebrow.is-light .elementor-heading-title{color:rgba(247,243,236,.7)}

.elementor .ecg-h1 .elementor-heading-title{font-family:var(--ecg-serif);font-size:48px;line-height:1.05;font-weight:300;letter-spacing:-.02em;color:var(--ecg-ivory)}
@media (min-width:768px){.elementor .ecg-h1 .elementor-heading-title{font-size:60px;line-height:1}}
@media (min-width:1024px){.elementor .ecg-h1 .elementor-heading-title{font-size:72px;line-height:1}}

.elementor .ecg-h2 .elementor-heading-title{font-family:var(--ecg-serif);font-size:30px;line-height:1.25;font-weight:500;letter-spacing:-.02em;color:var(--ecg-charcoal)}
@media (min-width:768px){.elementor .ecg-h2 .elementor-heading-title{font-size:36px;line-height:40px}}
@media (min-width:1024px){.elementor .ecg-h2 .elementor-heading-title{font-size:2.75rem}}
.elementor .ecg-h2.is-light .elementor-heading-title{color:var(--ecg-ivory)}

.elementor .ecg-h2-cta .elementor-heading-title{font-family:var(--ecg-serif);font-size:36px;line-height:1.25;font-weight:300;letter-spacing:-.02em;color:var(--ecg-ivory)}
@media (min-width:768px){.elementor .ecg-h2-cta .elementor-heading-title{font-size:48px;line-height:1}}

.elementor .ecg-statement .elementor-heading-title{font-family:var(--ecg-serif);font-size:24px;line-height:1.375;font-weight:300;letter-spacing:0;color:var(--ecg-charcoal)}
@media (min-width:768px){.elementor .ecg-statement .elementor-heading-title{font-size:30px;line-height:36px}}

.elementor .ecg-lead .elementor-heading-title{font-family:var(--ecg-sans);font-size:18px;line-height:1.625;font-weight:400;color:rgba(247,243,236,.75)}
.elementor .ecg-body .elementor-heading-title{font-family:var(--ecg-sans);font-size:16px;line-height:1.625;font-weight:400;color:rgba(23,23,23,.7)}
.elementor .ecg-body.is-light .elementor-heading-title{color:rgba(247,243,236,.7)}
.elementor .ecg-small .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:20px;font-weight:400;color:rgba(23,23,23,.55)}
.elementor .ecg-note .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;font-style:italic;color:rgba(23,23,23,.4)}

.elementor .ecg-mw-xl{max-width:36rem!important}
.elementor .ecg-mw-2xl{max-width:42rem!important}
.elementor .ecg-mw-3xl{max-width:48rem!important}
.elementor .ecg-mx-auto{margin-left:auto!important;margin-right:auto!important}

/* Gold rule (Divider widget) */
.elementor .ecg-rule .elementor-divider{padding:0!important;display:flex}
.elementor .ecg-rule .elementor-divider-separator{width:64px!important;border-top:1px solid rgba(180,146,95,.7)!important;margin:0!important}
.elementor .ecg-rule.is-center .elementor-divider{justify-content:center}
.elementor .ecg-rule.is-short .elementor-divider-separator{width:40px!important}

/* Buttons (Button widget) */
.elementor .ecg-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border:0;border-radius:0;background:transparent;font-family:var(--ecg-sans);font-size:14px;line-height:20px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;box-shadow:none;transition:all .3s var(--ecg-ease-tw);fill:none}
.elementor .ecg-btn .elementor-button:active{transform:scale(.98)}
.elementor .ecg-btn .elementor-button-content-wrapper{gap:8px;align-items:center}
.elementor .ecg-btn .elementor-button-icon{display:flex;align-items:center;margin:0!important}
.elementor .ecg-btn .elementor-button-icon svg{width:16px;height:16px;fill:none!important;stroke:currentColor}
.elementor .ecg-btn--primary .elementor-button{background:var(--ecg-primary);color:var(--ecg-bg)}
.elementor .ecg-btn--primary .elementor-button:hover,.elementor .ecg-btn--primary .elementor-button:focus{background:var(--ecg-primary-hover);color:var(--ecg-bg);letter-spacing:.17em}
.elementor .ecg-btn--outline .elementor-button{border:1px solid rgba(23,23,23,.3);color:var(--ecg-charcoal)}
.elementor .ecg-btn--outline .elementor-button:hover,.elementor .ecg-btn--outline .elementor-button:focus{border-color:var(--ecg-primary);color:var(--ecg-primary);background:transparent}
.elementor .ecg-btn--outline-light .elementor-button{border:1px solid rgba(247,243,236,.4);color:var(--ecg-ivory)}
.elementor .ecg-btn--outline-light .elementor-button:hover,.elementor .ecg-btn--outline-light .elementor-button:focus{border-color:var(--ecg-gold);color:var(--ecg-gold);background:transparent}
.elementor .ecg-btn--gold .elementor-button{border:1px solid var(--ecg-gold);color:var(--ecg-gold)}
.elementor .ecg-btn--gold .elementor-button:hover,.elementor .ecg-btn--gold .elementor-button:focus{background:var(--ecg-gold);color:var(--ecg-bg)}
.elementor .ecg-btn--ghost-light .elementor-button{border:1px solid rgba(247,243,236,.4);color:var(--ecg-ivory)}
.elementor .ecg-btn--ghost-light .elementor-button:hover,.elementor .ecg-btn--ghost-light .elementor-button:focus{background:var(--ecg-ivory);color:var(--ecg-red)}
.elementor .ecg-btn--full,.elementor .ecg-btn--full .elementor-button{width:100%}
.elementor .ecg-btn--quote .elementor-button{width:100%;padding:10px 0;border:1px solid rgba(23,23,23,.25);font-size:12px;line-height:16px;letter-spacing:.12em;font-weight:400;color:var(--ecg-charcoal);transition:color .15s,background-color .15s}
.elementor .ecg-btn--quote .elementor-button-icon svg{width:14px;height:14px}
.elementor .ecg-btn--quote .elementor-button:hover,.elementor .ecg-btn--quote .elementor-button:focus{background:var(--ecg-red);color:var(--ecg-ivory)}
.elementor .ecg-btn--quote.is-added .elementor-button{background:var(--ecg-red);color:var(--ecg-ivory);border-color:var(--ecg-red)}

/* Text links (hero secondary links) */
.elementor .ecg-textlink .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.18em;color:rgba(247,243,236,.6);transition:color .15s}
.elementor .ecg-textlink .elementor-heading-title a:hover{color:var(--ecg-gold)}
.elementor .ecg-trust .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.2em;color:rgba(247,243,236,.5)}

/* Icons (Icon widget, lucide SVG) */
.elementor .ecg-ic .elementor-icon-wrapper{display:flex;line-height:1}
.elementor .ecg-ic .elementor-icon{display:flex;font-size:28px;color:var(--ecg-red);line-height:1}
.elementor .ecg-ic .elementor-icon svg{width:1em;height:1em;fill:none!important;stroke:currentColor}
.elementor .ecg-ic--40 .elementor-icon{font-size:40px}
.elementor .ecg-ic--20 .elementor-icon{font-size:20px}
.elementor .ecg-ic--16 .elementor-icon{font-size:16px}
.elementor .ecg-ic.is-gold .elementor-icon{color:var(--ecg-gold)}

/* ---------- Hero ---------- */
.elementor .ecg-hero{min-height:100vh;min-height:100svh}
.elementor .ecg-hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:center;gap:48px!important;width:100%}
@media (min-width:1024px){.elementor .ecg-hero-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.elementor .ecg-span-7{grid-column:span 7}.elementor .ecg-span-5{grid-column:span 5}}
.elementor .ecg-inline-row{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center}
.elementor .ecg-inline-row>.elementor-widget{width:auto!important;max-width:none}

/* ---------- Pillars ---------- */
.elementor .ecg-pillar-title .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:20px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ecg-charcoal)}
.elementor .ecg-pillar-text .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:1.625;color:rgba(23,23,23,.65)}

/* ---------- Stats ---------- */
.elementor .ecg-stat .elementor-heading-title{font-family:var(--ecg-serif);font-size:48px;line-height:1;font-weight:300;letter-spacing:normal;color:var(--ecg-charcoal);text-align:center}
@media (min-width:768px){.elementor .ecg-stat .elementor-heading-title{font-size:60px}}
.elementor .ecg-stat-label .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.22em;color:rgba(23,23,23,.5);text-align:center}

/* ---------- Cards: shared ---------- */
.elementor .ecg-card-quiet{transition:transform .3s var(--ecg-ease),box-shadow .3s var(--ecg-ease)}
.elementor .ecg-card-quiet:hover{transform:translateY(-4px);box-shadow:0 24px 48px -18px rgba(23,23,23,.3)}
.elementor .ecg-badge{position:absolute!important;left:12px;top:12px;z-index:3;width:auto!important;pointer-events:none}
.elementor .ecg-badge .elementor-heading-title{display:inline-block;background:rgba(23,23,23,.6);padding:2px 8px;font-family:var(--ecg-sans);font-size:.6rem;line-height:1.6;text-transform:uppercase;letter-spacing:.14em;color:rgba(247,243,236,.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.elementor .ecg-media{position:relative;overflow:hidden}
.elementor .ecg-img img{display:block;width:100%!important;height:auto!important;max-width:none;object-fit:cover;transition:transform .5s ease-out}
.elementor .ecg-ar-43 img{aspect-ratio:4/3}
.elementor .ecg-ar-1610 img{aspect-ratio:16/10}
.elementor .ecg-ar-sq img{aspect-ratio:1/1}
.elementor .ecg-zoom:hover .ecg-img img{transform:scale(1.05)}
.elementor .ecg-zoom-slow .ecg-img img{transition-duration:.7s}

/* Category cards */
.elementor .ecg-cat-card{position:relative;display:block;overflow:hidden;background:var(--ecg-stone);height:100%;text-decoration:none!important}
.elementor .ecg-cat-overlay{position:absolute!important;left:0;right:0;bottom:0;z-index:2;padding:80px 24px 24px!important;background:linear-gradient(to top,rgba(23,23,23,.9),rgba(23,23,23,.25),transparent)}
.elementor .ecg-card-title-lg .elementor-heading-title{font-family:var(--ecg-serif);font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.02em;color:var(--ecg-ivory)}
.elementor .ecg-card-text-light .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:1.625;color:rgba(247,243,236,.7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.elementor .ecg-explore .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.14em;color:var(--ecg-ivory);transition:color .15s}
.elementor .ecg-explore .elementor-heading-title::after{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:var(--ecg-arrow) center/contain no-repeat;mask:var(--ecg-arrow) center/contain no-repeat}
.elementor .ecg-cat-card:hover .ecg-explore .elementor-heading-title{color:var(--ecg-gold)}

/* Product cards */
.elementor .ecg-product{display:flex;flex-direction:column;height:100%;background:var(--ecg-stone)}
.elementor .ecg-product-media{position:relative;display:block;overflow:hidden}
.elementor .ecg-spec{position:absolute!important;left:0;right:0;bottom:0;z-index:2;background:rgba(23,23,23,.9);padding:16px;transform:translateY(100%);transition:transform .5s}
.elementor .ecg-product:hover .ecg-spec{transform:none}
.elementor .ecg-spec .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:1.625;color:rgba(247,243,236,.8)}
.elementor .ecg-spec .elementor-heading-title span{color:var(--ecg-gold)}
.elementor .ecg-product-body{flex:1 1 0%;padding:20px!important}
.elementor .ecg-product-cat .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.12em;color:var(--ecg-gold)}
.elementor .ecg-product-title .elementor-heading-title{font-family:var(--ecg-serif);font-size:18px;line-height:28px;font-weight:500;letter-spacing:-.02em;color:var(--ecg-charcoal)}
.elementor .ecg-product-meta .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;color:rgba(23,23,23,.55)}
.elementor .ecg-product-price .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:rgba(23,23,23,.7)}

/* Why list */
.elementor .ecg-check .elementor-heading-title{display:flex;align-items:flex-start;gap:16px;padding-bottom:20px;border-bottom:1px solid rgba(23,23,23,.1);font-family:var(--ecg-sans);font-size:16px;line-height:24px;font-weight:400;color:rgba(23,23,23,.85)}
.elementor .ecg-check .elementor-heading-title::before{content:"";flex-shrink:0;width:24px;height:1px;margin-top:8px;background:var(--ecg-gold)}

/* Project cards */
.elementor .ecg-project{overflow:hidden;background:var(--ecg-stone)}
.elementor .ecg-card-title .elementor-heading-title{font-family:var(--ecg-serif);font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.02em;color:var(--ecg-charcoal)}
.elementor .ecg-card-text .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:20px;color:rgba(23,23,23,.65);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Showroom address row */
.elementor .ecg-address .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:1.625;color:rgba(23,23,23,.75)}
.elementor .ecg-media-plain img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}

/* Testimonials */
.elementor .ecg-testi{border:1px solid rgba(180,146,95,.3);background:var(--ecg-ivory);padding:32px!important}
.elementor .ecg-quote-mark .elementor-heading-title{font-family:var(--ecg-serif);font-size:48px;line-height:1;color:var(--ecg-gold)}
.elementor .ecg-testi-text .elementor-heading-title{font-family:var(--ecg-sans);font-size:14px;line-height:1.625;font-style:italic;color:rgba(23,23,23,.55)}
.elementor .ecg-testi-name .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.16em;color:rgba(23,23,23,.4)}

/* CTA band */
.elementor .ecg-rule-cta .elementor-divider-separator{width:64px!important;border-top:1px solid rgba(180,146,95,.7)!important;margin:0 auto!important}

/* ---------- Footer ---------- */
.elementor .ecg-footer-grid{display:grid!important;grid-template-columns:minmax(0,1fr);gap:48px!important}
@media (min-width:768px){.elementor .ecg-footer-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.elementor .ecg-span-f5{grid-column:span 5}.elementor .ecg-span-f3{grid-column:span 3}.elementor .ecg-span-f4{grid-column:span 4}}
.elementor .ecg-flogo .elementor-widget-container,.elementor .ecg-flogo{line-height:1}
.elementor .ecg-motto .elementor-heading-title{max-width:24rem;font-family:var(--ecg-serif);font-size:18px;line-height:28px;font-weight:300;font-style:italic;color:rgba(247,243,236,.7)}
.elementor .ecg-fabout .elementor-heading-title{max-width:24rem;font-family:var(--ecg-sans);font-size:14px;line-height:1.625;color:rgba(247,243,236,.6)}
.elementor .ecg-flinks .elementor-icon-list-items{display:grid;gap:12px}
.elementor .ecg-flinks .elementor-icon-list-item{padding:0!important;margin:0!important}
.elementor .ecg-flinks .elementor-icon-list-item::after{display:none!important}
.elementor .ecg-flinks a{color:rgba(247,243,236,.7)!important;font-size:14px;line-height:20px}
.elementor .ecg-flinks .elementor-icon-list-text{font-family:var(--ecg-sans);font-size:14px;line-height:27.2px;color:rgba(247,243,236,.7);padding:0!important;transition:color .15s}
.elementor .ecg-flinks a:hover .elementor-icon-list-text{color:var(--ecg-gold)}
.elementor .ecg-fcontact .elementor-icon-list-items{display:flex;flex-direction:column;gap:16px}
.elementor .ecg-fcontact .elementor-icon-list-item{align-items:flex-start!important;gap:12px;padding:0!important;margin:0!important}
.elementor .ecg-fcontact .elementor-icon-list-icon{padding-top:2px}
.elementor .ecg-fcontact .elementor-icon-list-icon svg{width:16px!important;height:16px!important;fill:none!important;stroke:var(--ecg-gold)!important}
.elementor .ecg-fcontact .elementor-icon-list-text{font-family:var(--ecg-sans);font-size:14px;line-height:20px;color:rgba(247,243,236,.7);padding:0!important}
.elementor .ecg-fcontact .elementor-icon-list-text a,.elementor .ecg-fcontact a{color:inherit}
.elementor .ecg-fcontact .elementor-icon-list-text a:hover{color:var(--ecg-gold)}
.elementor .ecg-fcontact .elementor-icon-list-text .sep{color:rgba(247,243,236,.3);margin:0 12px}
.elementor .ecg-fwa .elementor-heading-title{display:flex;font-family:var(--ecg-sans);font-size:14px;line-height:20px}
.elementor .ecg-fwa .elementor-heading-title a{display:inline-flex;align-items:center;gap:8px;color:var(--ecg-gold);transition:color .15s}
.elementor .ecg-fwa .elementor-heading-title a::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--ecg-msg) center/contain no-repeat;mask:var(--ecg-msg) center/contain no-repeat}
.elementor .ecg-fwa .elementor-heading-title a:hover{color:var(--ecg-ivory)}
.elementor .ecg-fbottom{border-top:1px solid rgba(247,243,236,.1)}
.elementor .ecg-copy .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.18em;color:rgba(247,243,236,.4)}
.elementor .ecg-copy-2 .elementor-heading-title{font-family:var(--ecg-sans);font-size:12px;line-height:16px;letter-spacing:.025em;color:rgba(247,243,236,.4)}

/* ---------- Motion ---------- */
@keyframes ecg-reveal-up{0%{opacity:0;transform:translateY(24px) scale(.985)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ecg-slide-down{0%{opacity:0;transform:translateY(-12px)}100%{opacity:1;transform:none}}
.ecg-js .elementor .ecg-anim{animation:ecg-reveal-up .8s ease-out both}
.ecg-js .elementor .ecg-anim-2{animation-delay:.15s}
.ecg-js .elementor .ecg-anim-3{animation-delay:.1s}
.ecg-js .ecg-reveal:not(.is-in){opacity:0;transform:translateY(22px) scale(.98)}
.ecg-js .ecg-reveal.is-in{opacity:1;transform:none;transition:opacity .6s var(--ecg-ease),transform .6s var(--ecg-ease),box-shadow .3s var(--ecg-ease);transition-delay:var(--ecg-d,0ms)}
.ecg-js .ecg-reveal.is-in.ecg-card-quiet:hover{transform:translateY(-4px);transition-delay:0ms}
.elementor-editor-active .ecg-reveal,.elementor-editor-active .ecg-anim{opacity:1!important;transform:none!important;animation:none!important}
@media (prefers-reduced-motion:reduce){.ecg-js .ecg-reveal,.ecg-js .elementor .ecg-anim{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}}

/* ---------- Extras ---------- */
.elementor .ecg-ic.is-center .elementor-icon-wrapper{justify-content:center}
.elementor .ecg-row-start{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:flex-start!important}
.elementor .ecg-row-start>.elementor-widget-icon{width:auto!important;flex:0 0 auto}
.elementor .ecg-row-start>.elementor-widget-heading{flex:1 1 0%;width:auto!important}
.elementor .ecg-flogo .elementor-heading-title{display:flex;align-items:center;gap:12px;line-height:1}
.elementor .ecg-flogo .elementor-heading-title a{display:flex;align-items:center;gap:12px}
.ecg-flogo-mark{display:flex;width:40px;height:40px;flex-shrink:0;box-sizing:border-box;align-items:center;justify-content:center;border:1px solid var(--ecg-gold);font-family:var(--ecg-serif);font-size:18px;line-height:28px;font-weight:500;color:var(--ecg-gold)}
.ecg-flogo-text{display:flex;flex-direction:column;line-height:1}
.ecg-flogo-text span:first-child{font-family:var(--ecg-serif);font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.025em;color:var(--ecg-ivory)}
.ecg-flogo-text span:last-child{font-family:var(--ecg-sans);font-size:.6rem;line-height:1;text-transform:uppercase;letter-spacing:.28em;color:var(--ecg-gold)}
.elementor .ecg-footer{color:var(--ecg-ivory)}
.elementor .ecg-footer .ecg-eyebrow .elementor-heading-title{color:var(--ecg-gold)}
@media (max-width:767px){.elementor .ecg-fbottom{align-items:center!important}}

.elementor .ecg-fcontact .elementor-icon-list-text{display:inline-flex;flex-wrap:wrap;align-items:center}
.elementor .ecg-trust-row{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important}
.elementor .ecg-trust-row>.elementor-widget-divider{flex:0 0 40px;width:40px!important}
.elementor .ecg-trust-row>.elementor-widget-heading{flex:1 1 0%;min-width:0;width:auto!important}
.elementor .ecg-fcontact .elementor-icon-list-text a{display:inline!important;width:auto!important}
