.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;font-family:"Sora", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --Espresso:#2D1F13; --Espresso2:#3B2A1A; --BodyInk:#554A41; --Faint:#8B8076; --Amber:#D2831A; --AmberInk:#9A5F0F; --Bone:#F7F5F0; --Rule:#E7E2D9; --Sora:Sora; }
/* Start custom CSS *//* NUMI — properties the Elementor style schema cannot express.
   Targets Global Class names, so it stays in sync with the class system. */

/* Hero readability: layered text shadows */
.numi-hero-h1{ text-shadow:0 1px 2px rgba(26,18,12,.55), 0 4px 16px rgba(26,18,12,.45), 0 14px 44px rgba(26,18,12,.35); text-wrap:balance; }
.numi-hero-p{ text-shadow:0 1px 2px rgba(26,18,12,.55), 0 3px 12px rgba(26,18,12,.5); text-wrap:balance; }
.numi-h2{ text-wrap:balance; }

/* Hero scrim: brand-graded three-layer gradient */
.numi-hero-scrim{
  background:
    linear-gradient(180deg, rgba(15,10,7,.74) 0%, rgba(15,10,7,.4) 110px, rgba(15,10,7,0) 270px),
    radial-gradient(ellipse 58% 64% at 20% 78%, rgba(45,31,19,.52) 0%, rgba(45,31,19,0) 72%),
    linear-gradient(180deg, rgba(45,31,19,.12) 0%, rgba(45,31,19,.08) 45%, rgba(122,71,10,.34) 100%);
  pointer-events:none;
}

/* The hero video sits behind the scrim and copy */
.numi-hero-video{ z-index:0; }
.numi-hero-video video{ width:100%; height:100%; object-fit:cover; display:block; }
.numi-hero-scrim{ z-index:1; }
.numi-hero-inner{ z-index:2; }
/* ---------- Navigation behaviour ----------
   Descendant-of-hover .elementor-kit-7s and pseudo elements cannot be expressed as
   Global Class style props, so they live here and target the same classes. */

.numi-navshell{ background:none; border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease; }

/* Frosted state once scrolled, and on every page that is not the homepage */
.numi-navshell.is-scrolled{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom-color:rgba(45,31,19,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
.numi-navshell.is-scrolled .numi-logo{ color:#2D1F13; }
.numi-navshell.is-scrolled .numi-navlink{ color:#554A41; }
.numi-navshell.is-scrolled .numi-navlink:hover{ background:#F7F5F0; color:#2D1F13; }
.numi-navshell.is-scrolled .numi-navtel{ color:#2D1F13; }

/* Dropdown panels: reveal on hover / keyboard focus */
.numi-drop{ opacity:0; pointer-events:none; transform:translateY(6px);
  transition:opacity .15s ease, transform .15s ease; }
.numi-ndrop:hover .numi-drop,
.numi-ndrop:focus-within .numi-drop{ opacity:1; pointer-events:auto; transform:translateY(0); }

/* Arrow that slides in on row hover */
.numi-mg-link::after{ content:"→"; opacity:0; transform:translateX(-4px);
  transition:opacity .15s, transform .15s; color:#9A5F0F; font-size:.9rem; }
.numi-mg-link:hover::after{ opacity:1; transform:none; }

/* Elementor's button base would otherwise fight the nav link styling */
.numi-mg-link, .numi-navcta{ border:0; text-decoration:none; cursor:pointer; }
.numi-mg-link{ justify-content:space-between; width:100%; text-align:left; }
.numi-logo{ text-decoration:none; }

/* Panel image keeps its aspect while filling the column */
.numi-ph img{ width:100%; height:100%; object-fit:cover; border-radius:12px; display:block; }
/* Panels overflow the bar, so nothing in the chain may clip them */
.numi-navshell, .numi-navbar, .numi-nl, .numi-ndrop{ overflow:visible; }
.numi-nl .numi-navlink, .numi-navcta{ white-space:nowrap; }

.numi-navtel{ white-space:nowrap; }
.numi-ndrop{ flex:0 0 auto; }

/* ---------- Page ground ---------- */
body{ background:#F7F5F0; }

/* ---------- Service cards ---------- */
.numi-svc-card{ text-decoration:none; }
.numi-svc-card::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(45,31,19,0) 42%, rgba(45,31,19,.72) 100%); }
.numi-svc-card:hover .numi-sv-img{ transform:scale(1.05); }
.numi-svc-card:hover .numi-sv-ar{ background:#D2831A; color:#fff; }
.numi-sv-ar p, .numi-sv-ar span{ margin:0; line-height:1; font-size:1rem; }

/* ---------- Trust strip ---------- */
.numi-tcard{ border-bottom-width:1px; border-top-width:0; border-left-width:0; border-right-width:0; }


/* ---------- Method steps ---------- */
.numi-step::before{ content:""; display:block; width:26px; height:2px; background:#D2831A; margin-bottom:14px; }

/* ---------- Reviews slider ---------- */
.numi-rslider{ scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none; }
.numi-rslider::-webkit-scrollbar{ display:none; }
.numi-rv{ scroll-snap-align:start; }

/* ---------- CTA band ---------- */
.elementor-element-ctaband .numi-hero-scrim{
  background:
    radial-gradient(ellipse 66% 58% at 50% 46%, rgba(26,18,12,.56) 0%, rgba(26,18,12,0) 74%),
    linear-gradient(180deg, rgba(26,18,12,.42) 0%, rgba(26,18,12,.2) 50%, rgba(26,18,12,.46) 100%);
}
.elementor-element-ctaband .numi-sv-img{ z-index:0; }

/* ---------- FAQ accordion: match the prototype's card look ---------- */
.elementor-element-faq .elementor-accordion{ max-width:none; margin:0; width:100%; }
body.home .elementor-element-faq .elementor-accordion{ max-width:800px; margin:0 auto; }
.elementor-element-faq .elementor-accordion-item{ background:#fff; border:0 !important; border-radius:14px; margin-bottom:10px; overflow:hidden; }
.elementor-element-faq .elementor-tab-title{ padding:20px 24px !important; border:0 !important; background:#fff; }
.elementor-element-faq .elementor-accordion-title{ color:#2D1F13 !important; font-weight:600; font-size:.96rem; letter-spacing:-.01em; }
.elementor-element-faq .elementor-tab-title:hover .elementor-accordion-title{ color:#2D1F13 !important; }
.elementor-element-faq .elementor-tab-content{ padding:0 24px 22px; border:0 !important; background:#fff;
  font-size:.9rem; line-height:1.7; color:#554A41; max-width:64ch; }
.elementor-element-faq .elementor-accordion-icon{ width:30px; height:30px; border-radius:50%; background:#F7F5F0;
  display:inline-flex; align-items:center; justify-content:center; flex:none; margin-inline-end:14px; }
.elementor-element-faq .elementor-accordion-icon svg{ width:12px; height:12px; fill:#2D1F13; }
.elementor-element-faq .elementor-active .elementor-accordion-icon{ background:#D2831A; }
.elementor-element-faq .elementor-active .elementor-accordion-icon svg{ fill:#fff; }
/* ---------- Footer ---------- */
.numi-fgrid{ border-bottom-width:1px; border-top-width:0; border-left-width:0; border-right-width:0; }
.numi-flink{ text-align:left; justify-content:flex-start; text-decoration:none; }
.elementor-element-fbadges{ gap:14px; flex-wrap:wrap; align-items:center; padding:26px 0 0; }
.elementor-element-fbadges img{ height:56px; width:auto; background:#fff; border-radius:10px; padding:6px 10px; }
.elementor-element-fbot a{ color:#C9BCAC; text-decoration:underline; text-underline-offset:2px; background:none; border:0; padding:0; font-size:.8rem; }
.elementor-element-fbot a:hover{ color:#fff; }
#ftag{ margin-top:14px; max-width:34ch; line-height:1.6; }

/* ---------- Overrides for Elementor widget defaults ---------- */

/* FAQ: Elementor's accordion link colours are more specific than ours */
.elementor-element-faq .elementor-accordion .elementor-tab-title,
.elementor-element-faq .elementor-accordion .elementor-tab-title a,
.elementor-element-faq .elementor-accordion-title{ color:#2D1F13 !important; text-decoration:none !important; }
.elementor-element-faq .elementor-accordion .elementor-tab-title.elementor-active a{ color:#2D1F13 !important; }
.elementor-element-faq .elementor-accordion-icon svg{ fill:#2D1F13 !important; }
.elementor-element-faq .elementor-active .elementor-accordion-icon svg{ fill:#fff !important; }

/* Footer: e-button centres its label; these are list links */
.numi-flink{ justify-content:flex-start !important; text-align:left !important; text-decoration:none !important; }
.elementor-element-fbrand .numi-logo-l1, .elementor-element-fbrand .numi-logo-l2{ display:block !important; }
.elementor-element-fbrand .numi-logo-l2{ margin-top:4px; color:#8F7F6D; }
.elementor-element-fbadges > *{ flex:0 0 auto; }
.elementor-element-fbadges img{ height:56px !important; width:auto !important; object-fit:contain; }
.elementor-element-fbot .e-button-base, .elementor-element-fbot a{ background:none !important; border:0 !important; padding:0 !important;
  color:#C9BCAC !important; font-size:.8rem !important; font-weight:400 !important;
  text-decoration:underline !important; text-underline-offset:2px; width:auto !important; }
.elementor-element-fbot .e-button-base:hover, .elementor-element-fbot a:hover{ color:#fff !important; }

/* CTA band: lift contrast so the copy reads over bright imagery */
.elementor-element-ctaband .numi-hero-scrim{
  background:
    radial-gradient(ellipse 66% 58% at 50% 46%, rgba(26,18,12,.62) 0%, rgba(26,18,12,.12) 74%),
    linear-gradient(180deg, rgba(26,18,12,.5) 0%, rgba(26,18,12,.3) 50%, rgba(26,18,12,.54) 100%) !important;
}

/* Nav + panel links: strip Elementor's button chrome */
.numi-navlink, .numi-mg-link{ text-decoration:none !important; border:0 !important; }
.numi-navlink{ background:transparent; }
/* ---------- Mobile navigation ---------- */
.numi-mm-link{ border-width:0 !important; justify-content:flex-start !important; text-align:left !important;
  text-decoration:none !important; width:100%; }
.numi-mcta{ text-decoration:none !important; width:100%; }
.numi-mobilemenu.is-open{ display:flex !important; }
body.numi-menu-open{ overflow:hidden; }
/* the panel is a child of the bar, so the bar itself must outrank it */
body.numi-menu-open .numi-navshell{ z-index:95; background:#F7F5F0; border-bottom-color:#E7E2D9; }
body.numi-menu-open .numi-navbar{ position:relative; z-index:85; }
body.numi-menu-open .numi-logo, body.numi-menu-open .numi-menu-btn{ color:#2D1F13; }
/* hamburger animates to a close icon */
.numi-menu-btn .numi-menu-bar{ transition:transform .25s, opacity .25s; }
.numi-menu-btn[aria-expanded="true"] .numi-menu-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.numi-menu-btn[aria-expanded="true"] .numi-menu-bar:nth-child(2){ opacity:0; }
.numi-menu-btn[aria-expanded="true"] .numi-menu-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media(max-width:920px){
  .numi-nl{ display:none !important; }
  .numi-menu-btn{ display:flex !important; }
}
@media(min-width:921px){
  .numi-mobilemenu{ display:none !important; }
}
/* ---------- Trust icons: masked to amber-ink, like the prototype ---------- */




.numi-ic{ box-shadow:0 3px 12px rgba(45,31,19,.06); }

/* ---------- Stars use the Google gold, not brand amber ---------- */


/* ---------- Google rating pill ---------- */
.elementor-element-grate{ flex:0 0 auto; }



/* ---------- Story card ---------- */
.numi-btn-amber{ text-decoration:none !important; }
.numi-stat-n{ font-variant-numeric:tabular-nums; }

/* ---------- Method: amber rule sits inside the card ---------- */
.numi-step{ position:relative; }
.numi-step::before{ content:""; display:block; width:26px; height:2px; background:#D2831A;
  margin:0 0 14px 0; flex:0 0 auto; }

/* ---------- FAQ icon: circle + plus, amber when open ---------- */
.elementor-element-faq .elementor-accordion-icon span{ display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; }
.elementor-element-faq .elementor-accordion-icon svg{ width:11px; height:11px; }

/* ---------- Footer badge row ---------- */
.elementor-element-fbadges{ align-items:center; }
.elementor-element-faccred{ margin:0 8px 0 0 !important; white-space:nowrap; }
/* ---------- Scroll reveal (matches the prototype's rise-and-fade) ---------- */
[data-numi-reveal]{ opacity:0; transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
[data-numi-reveal].is-in{ opacity:1; transform:none; }

/* children of a revealed grid stagger in */
[data-numi-reveal] > *{ opacity:0; transform:translateY(18px);
  transition:opacity .55s cubic-bezier(.22,.61,.36,1), transform .55s cubic-bezier(.22,.61,.36,1); }
[data-numi-reveal].is-in > *{ opacity:1; transform:none; }
[data-numi-reveal].is-in > *:nth-child(2){ transition-delay:.07s; }
[data-numi-reveal].is-in > *:nth-child(3){ transition-delay:.14s; }
[data-numi-reveal].is-in > *:nth-child(4){ transition-delay:.21s; }
[data-numi-reveal].is-in > *:nth-child(5){ transition-delay:.28s; }
[data-numi-reveal].is-in > *:nth-child(6){ transition-delay:.35s; }
[data-numi-reveal].is-in > *:nth-child(7){ transition-delay:.42s; }
[data-numi-reveal].is-in > *:nth-child(8){ transition-delay:.49s; }
[data-numi-reveal].is-in > *:nth-child(9){ transition-delay:.56s; }
@media(prefers-reduced-motion: reduce){
  [data-numi-reveal], [data-numi-reveal] > *{ opacity:1 !important; transform:none !important; transition:none !important; }
}
/* ---------- Trust icons: empty element + mask, as in the prototype ---------- */
.numi-icon{ -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; }
.elementor-element-icm1{ -webkit-mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-scope.png); mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-scope.png); }
.elementor-element-icm2{ -webkit-mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-handshake.png); mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-handshake.png); }
.elementor-element-icm3{ -webkit-mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-home.png); mask-image:url(https://numirenovations.com/wp-content/uploads/numi-masks/icon-home.png); }

/* ---------- Google mark and stars in the rating pill ---------- */
[data-id="grateg"], [data-id="credg"]{ width:22px; height:22px; margin:0; font-size:0; color:transparent; flex:0 0 auto; background:url(https://numirenovations.com/wp-content/uploads/numi-masks/google-g.svg) center/contain no-repeat; }
[data-id="gratet"], [data-id="credt"]{ font-weight:600; font-size:.92rem; color:#2D1F13; margin:0; }
[data-id="grates"], [data-id="creds"]{ color:#F5A623; letter-spacing:2px; margin:0; font-size:.95rem; }
.numi-rv .numi-eb{ color:#F5A623 !important; letter-spacing:2px; font-size:.95rem; }

/* ---------- Stat star takes the brand amber, as in the prototype ---------- */


/* ---------- FAQ icon: circle with a plus that rotates when open ---------- */
.elementor-element-faq .elementor-accordion-icon i{ font-style:normal; }
.elementor-element-faq .elementor-accordion-icon-closed, .elementor-element-faq .elementor-accordion-icon-opened{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.elementor-element-faq .elementor-accordion-icon svg{ width:11px; height:11px; display:block; }

/* ---------- FAQ icon: one plus that rotates to a cross, like the prototype ---------- */
.elementor-element-faq .elementor-accordion-icon{ width:30px !important; height:30px !important; min-width:30px; flex:0 0 30px !important; border-radius:50% !important; background:#F7F5F0 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; padding:0 !important; margin:0 14px 0 0 !important; overflow:hidden; transition:background .25s, transform .25s; }
.elementor-element-faq .elementor-accordion-icon-opened{ display:none !important; }
.elementor-element-faq .elementor-accordion-icon-closed{ display:flex !important; align-items:center; justify-content:center; width:auto !important; height:auto !important; transition:transform .25s; }
.elementor-element-faq .elementor-accordion-icon svg{ width:11px !important; height:11px !important; fill:#2D1F13 !important; display:block; }
.elementor-element-faq .elementor-active .elementor-accordion-icon{ background:#D2831A !important; }
.elementor-element-faq .elementor-active .elementor-accordion-icon-closed{ transform:rotate(45deg); }
.elementor-element-faq .elementor-active .elementor-accordion-icon svg{ fill:#fff !important; }

[data-id="stat1n"]::after{ content:"★"; color:#D2831A; font-style:normal; }

/* ---------- Type family ---------- */
body, .elementor, .elementor button, .elementor input, .elementor select, .elementor textarea,
.e-heading-base, .e-paragraph-base, .e-button-base{
  font-family:'Sora', ui-sans-serif, -apple-system, 'Segoe UI', system-ui, sans-serif;
}

/* ---------- FAQ: smooth collapse and a brand focus ring ---------- */
.elementor-element-faq .elementor-tab-content{ transition:none !important; will-change:height; }
.elementor-element-faq .elementor-accordion-item{ transition:none !important; }
.elementor-element-faq .elementor-tab-title a:focus, .elementor-element-faq .elementor-tab-title:focus{ outline:none !important; box-shadow:none !important; }
.elementor-element-faq .elementor-tab-title a:focus-visible{ outline:2px solid #D2831A !important; outline-offset:3px; border-radius:6px; }

/* ===================== QA pass: prototype parity ===================== */

/* The prototype's body rhythm. Elementor's 1.5 default shortened every line
   box on the page, which is what read as the wrong font size. */
body, .elementor, .e-heading-base, .e-paragraph-base, .e-button-base{ line-height:1.65; }

/* ---------- Sticky header ----------
   The shell carried position:sticky, but its containing block is the header
   template wrapper, which is only as tall as the bar, so it never travelled.
   The wrapper has to be the sticky element instead. */
.elementor-location-header{ position:sticky; top:0; z-index:60; }
.elementor-location-header .numi-navshell{ position:relative; top:auto; z-index:auto; }
body.numi-menu-open .elementor-location-header{ z-index:95; }

/* ---------- Mobile menu ---------- */
.numi-mobilemenu .numi-mm-link{ line-height:1.65; }
.numi-mcta{ font-size:1.05rem; line-height:1.65; }
.numi-mobilemenu .numi-mtel{ margin-top:12px; text-align:center; }
.numi-mback{ padding:0 0 4px !important; margin:0 0 8px !important; background:none !important;
  border:0 !important; cursor:pointer; width:auto !important; align-self:flex-start;
  justify-content:flex-start !important; text-decoration:none !important; line-height:1.65; }
.numi-mback::before{ content:""; width:17px; height:17px; flex:0 0 auto; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 18l-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 18l-6-6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ---------- Method: the amber rule has to stay in flow ----------
   Something upstream positions generated content absolutely, which lifted the
   rule out of the card and over the heading. */
.numi-step::before{ position:static !important; }

/* ---------- Story stats: left and right insets only both apply
   once the grid stops claiming width:100% ---------- */
.numi-stats{ width:auto !important; }

/* ---------- Review cards ---------- */
.numi-rv [data-id$="w"]{ margin-top:auto; }
.numi-rv .numi-eb{ font-size:.95rem !important; font-weight:400 !important; line-height:1.65 !important; }

/* ---------- FAQ: Elementor's accordion typography gives way to the
   prototype's, and the plus moves to the right of the row ---------- */
.elementor-element-faq .elementor-accordion .elementor-tab-title,
.elementor-element-faq .elementor-accordion .elementor-accordion-title,
.elementor-element-faq .elementor-accordion .elementor-tab-content{
  font-family:'Sora', ui-sans-serif, -apple-system, 'Segoe UI', system-ui, sans-serif;
}
.elementor-element-faq .elementor-accordion .elementor-tab-title{
  display:flex; align-items:center; justify-content:space-between; gap:14px; line-height:1.65;
}
.elementor-element-faq .elementor-accordion .elementor-accordion-title{
  font-size:.96rem; font-weight:600; line-height:1.65; letter-spacing:-.01em; flex:1 1 auto;
}
.elementor-element-faq .elementor-accordion .elementor-accordion-icon{
  order:2; margin:0 0 0 14px !important;
}
.elementor-element-faq .elementor-accordion .elementor-tab-content{
  padding:0 24px 22px; font-size:.9rem; line-height:1.7; color:#554A41; max-width:64ch;
}

/* ---------- The second stat's percent sign takes the brand amber ---------- */
[data-id="stat2n"]::after{ content:"%"; color:#D2831A; font-style:normal; }

/* =============== QA pass: hover states, footer, mega panel =============== */

/* Hello Elementor's reset.css repaints every link and button on hover
   (a:hover -> #336, button:hover -> #c36 on white). Those .elementor-kit-7s outrank a
   bare global class, so each element the prototype leaves alone on hover has
   to say so explicitly, at a specificity the reset cannot beat. */
.elementor button:hover, .elementor button:focus,
.elementor [type="button"]:hover, .elementor [type="submit"]:hover{ background-color:transparent; }

.elementor .numi-mm-link:hover, .elementor .numi-mm-link:focus{ color:#2D1F13; }
.elementor .numi-mtel:hover, .elementor .numi-mtel:focus{ color:#9A5F0F; }
.elementor .numi-mcta:hover, .elementor .numi-mcta:focus{ color:#fff; background:#9A5F0F; }
.elementor .numi-svc-card:hover, .elementor .numi-svc-card:focus{ color:#fff; }
.elementor .numi-btn-white:hover, .elementor .numi-btn-white:focus{ color:#2D1F13; background:#F7F5F0; }
.elementor .numi-btn-ghost:hover, .elementor .numi-btn-ghost:focus{ color:#fff; background:rgba(255,255,255,.24); }
.elementor .numi-btn-amber:hover, .elementor .numi-btn-amber:focus{ color:#fff; background:#9A5F0F; }
.elementor .numi-logo:hover, .elementor .numi-logo:focus{ color:#fff; }
.elementor .numi-navshell.is-scrolled .numi-logo:hover{ color:#2D1F13; }
.elementor .numi-flink:hover, .elementor .numi-flink:focus{ color:#fff; }
.numi-navshell .numi-menu-btn:hover, .numi-navshell .numi-menu-btn:focus{ color:#fff; }
.numi-navshell.is-scrolled .numi-menu-btn:hover,
body.numi-menu-open .numi-menu-btn:hover{ color:#2D1F13; }
.numi-mback:hover, .numi-mback:focus{ color:#9A5F0F; background:none; }

/* Before / after tabs: white at rest, espresso outline on hover, espresso when on */
.nvm-ba__tab:hover, .nvm-ba__tab:focus{ background:#FFFFFF; color:#2D1F13; border-color:#2D1F13; }
.nvm-ba__tab.is-on, .nvm-ba__tab.is-on:hover, .nvm-ba__tab.is-on:focus{
  background:#2D1F13; border-color:#2D1F13; color:#fff; }

/* ---------- Mobile menu: the phone row keeps its own colour ---------- */
.numi-mobilemenu .numi-mtel{ color:#9A5F0F; font-weight:600; }
.numi-mback{ line-height:1; }

/* ---------- Footer: the badge row needs air under the rule ---------- */
.elementor-element-fbadges{ padding:24px 0 4px !important; gap:10px 14px !important;
  flex-wrap:wrap !important; align-items:center !important; flex-direction:row !important; }
.elementor-element-faccred{ font-size:.72rem !important; letter-spacing:.16em !important;
  color:#8F7F6D !important; margin:0 6px 0 0 !important; }
.elementor-element-fbadges img{ height:56px !important; width:auto !important;
  background:#fff; border-radius:8px; padding:7px 12px; }

/* ---------- Mega panel image cross-fades as the services are hovered ---------- */
.numi-ph{ transition:opacity .18s ease; }

/* =============== QA pass: last of the type and colour drift =============== */

/* Atomic widgets render data-id, not .elementor-element-<id>, so the footer
   badge label has to be addressed that way. */
[data-id="faccred"]{ font-size:.72rem !important; font-weight:600 !important;
  letter-spacing:.16em !important; color:#8F7F6D !important; margin:0 6px 0 0 !important; }

/* Stat numbers sit on the page's own rhythm in the prototype */
.numi-stat-n{ line-height:1.65 !important; }

/* Stars: the prototype spaces them by a flat 2px, not by em */
.numi-rv .numi-eb, [data-id="grates"], [data-id="creds"]{ letter-spacing:2px !important; }

/* =============== QA pass: Elementor's 10px block padding =============== */

/* e-div-block ships a 10px padding all round. Every plain wrapper in the
   prototype has none, and the extra 20px was narrowing columns and text. */
[data-id="fbrand"], [data-id="fcol1"], [data-id="fcol2"], [data-id="fcol3"],
[data-id="stcardtop"], [data-id="rev1w"], [data-id="rev2w"], [data-id="rev3w"],
[data-id="rev4w"], [data-id="rev5w"]{ padding:0; }

/* Footer detail */
[data-id="flogo"], [data-id="fsub"]{ line-height:1.65; }
[data-id="fbot"]{ gap:12px; font-size:.78rem; }
.elementor-element-fbadges img{ box-sizing:content-box; }

/* Hamburger bars match the prototype's 22px */
.numi-menu-btn .numi-menu-bar{ width:22px !important; min-width:0 !important; }

/* Every h2 in the prototype balances its lines, the story card's included */
.numi-st-h2{ text-wrap:balance; }

/* ===================== Service and sub-page chrome ===================== */

.numi-shero{ min-height:min(74dvh,720px) !important; }
.numi-shero-scrim{
  background:radial-gradient(ellipse 58% 64% at 20% 78%, rgba(45,31,19,.52) 0%, rgba(45,31,19,0) 72%),
             linear-gradient(180deg, rgba(45,31,19,.28) 0%, rgba(45,31,19,.08) 45%, rgba(122,71,10,.34) 100%);
  pointer-events:none;
}
.numi-shero-h1{ font-size:clamp(2.2rem,4.4vw,3.3rem); text-wrap:balance;
  text-shadow:0 1px 2px rgba(26,18,12,.55), 0 4px 16px rgba(26,18,12,.45), 0 14px 44px rgba(26,18,12,.35); }
.numi-shero-lede{ text-wrap:balance;
  text-shadow:0 1px 2px rgba(26,18,12,.55), 0 3px 12px rgba(26,18,12,.5); }

/* Breadcrumb: one row of links and separators, no button chrome */
.numi-crumb{ display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  text-shadow:0 1px 8px rgba(26,18,12,.5); }
.numi-crumb > *{ margin:0 !important; font-size:.8rem; line-height:1.65; }
.numi-crumb a, .numi-crumb .e-button-base{ color:rgba(255,255,255,.95) !important; background:none !important;
  border:0 !important; padding:0 !important; width:auto !important; text-decoration:none !important; }
.numi-crumb a:hover{ color:#FFFFFF !important; }
.numi-cta-main, .numi-cta-tel{ text-decoration:none !important; }

/* Fact strip: amber rule above each fact, no rule before the first column */
.numi-fact::before{ content:""; display:block; position:static !important; width:24px; height:2px;
  background:#D2831A; margin:0 0 12px 0; }
.numi-fact:first-child{ border-inline-start-width:0 !important; padding-inline-start:0 !important; }
.numi-fact:last-child{ padding-inline-end:0 !important; }

.numi-svc-h{ font-size:clamp(1.9rem,3.4vw,2.5rem); text-wrap:balance; }
.numi-svc-sec + .numi-svc-sec{ border-top:1px solid #E7E2D9; }
.numi-chk-li::before{ content:"✓"; color:#9A5F0F; font-weight:700; flex:0 0 auto; position:static !important; }

/* The sub-page bar is frosted from the first pixel, as in the prototype */
body:not(.home) .numi-navshell{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom-color:rgba(45,31,19,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
body:not(.home) .numi-logo{ color:#2D1F13; }
body:not(.home) .numi-navlink{ color:#554A41; }
body:not(.home) .numi-navlink:hover{ background:#F7F5F0; color:#2D1F13; }
body:not(.home) .numi-navtel{ color:#2D1F13; }
body:not(.home) .numi-menu-btn{ color:#2D1F13; }

/* Dark page hero (privacy, 404) */
.numi-phero-scr{ background:linear-gradient(180deg,rgba(26,18,12,.5),rgba(26,18,12,.78)); pointer-events:none; }
.numi-phero-h1{ font-size:clamp(2rem,4.4vw,3.1rem); text-wrap:balance; }

/* Contact panel list: amber tick before each step */
.numi-step2{ display:flex; gap:12px; }
.numi-step2::before{ content:""; position:static !important; width:16px; height:2px; background:#D2831A;
  flex:0 0 auto; margin-top:11px; }
.numi-faqlink{ text-decoration:none !important; }
.numi-cdark-big{ text-decoration:none !important; }

@media(max-width:960px){
  .numi-plangrid, .numi-cgrid, .numi-faqgrid{ grid-template-columns:1fr !important; }
  .numi-fhead{ position:static !important; }
}
@media(max-width:920px){
  .numi-grid2{ grid-template-columns:1fr !important; }
}
@media(max-width:760px){
  .numi-svc-sec{ padding:56px 0 !important; }
  .numi-shero-in{ padding:112px 20px 36px !important; }
  .numi-phero-in{ padding:104px 20px 48px !important; }
  .numi-factstrip-in{ grid-template-columns:1fr !important; gap:18px 0; }
  .numi-fact{ padding:20px 0 !important; border-inline-start-width:0 !important; }
  .numi-chk, .numi-abst, .numi-drvgrid{ grid-template-columns:1fr !important; }
}

/* ===================== Sub-page detail ===================== */

.numi-shero-sm{ min-height:min(42dvh,400px) !important; }
.numi-prose > *{ width:100%; }
.numi-prose-li::before{ content:"•"; color:#9A5F0F; font-weight:700; flex:0 0 auto; position:static !important; }

/* About: the accent character beside each headline number */
[data-id="abst1n"]::after{ content:"★"; color:#D2831A; font-style:normal; }
[data-id="abst2n"]::after{ content:"%"; color:#D2831A; font-style:normal; }
[data-id="journeyleft"]{ display:block !important; }
[data-id="journeyp1"]{ margin-bottom:0 !important; }
[data-id="journeyp2"]{ margin:16px 0 0 !important; }
[data-id="credrow"] img{ height:56px !important; width:auto !important; display:block; }
[data-id="credb1"], [data-id="credb2"], [data-id="credb3"]{ box-shadow:0 4px 16px rgba(45,31,19,.08); }

/* Contact: the card heading sits on white, not on the dark panel */
[data-id="ccardh"]{ font-size:1.5rem !important; margin:0 0 24px !important; color:#2D1F13 !important;
  font-weight:600; letter-spacing:-.028em; line-height:1.1; }

/* Contact form: Elementor's form widget wearing the prototype's field styling */
.elementor-element-cform .elementor-form-fields-wrapper{ row-gap:14px; }
.elementor-element-cform .elementor-field-group > label{ font-size:.82rem; font-weight:600;
  letter-spacing:.04em; margin-bottom:6px; color:#2D1F13; }
.elementor-element-cform .elementor-field-textual{ width:100%; border:1px solid #E7E2D9 !important;
  border-radius:10px !important; background:#F7F5F0 !important; font-family:inherit; font-size:.94rem;
  color:#2D1F13; padding:12px 14px; height:auto; line-height:1.65; }
.elementor-element-cform .elementor-field-textual:focus{ outline:2px solid #D2831A; outline-offset:1px;
  border-color:#D2831A !important; box-shadow:none; }
.elementor-element-cform .elementor-field-type-textarea textarea{ min-height:120px; }
.elementor-element-cform .elementor-field-type-submit{ justify-content:flex-start; }
.elementor-element-cform .elementor-button{ background-color:#2D1F13 !important; color:#fff !important; border:0 !important;
  font-family:inherit; font-weight:600; font-size:.95rem; padding:15px 26px; border-radius:100px; width:auto !important; flex:0 0 auto; }
.elementor-element-cform .elementor-button:hover{ background-color:#D2831A !important; color:#fff !important; }
.elementor-element-cform .elementor-message{ font-size:.9rem; line-height:1.65; }

/* 404 buttons keep the hero's button set */
[data-id="nfsvc"]{ border-color:rgba(255,255,255,.5) !important; }

/* Layout-only containers carry no padding of their own; Elementor's block default is 10px */
.numi-crumb, .numi-cta-row, .numi-plangrid, .numi-drvgrid, .numi-drvgrid-auto, .numi-faqgrid,
.numi-cgrid, .numi-grid2, .numi-abimg, .numi-abst, .numi-prose, .numi-nfrow, .numi-chk,
.numi-factstrip-in{ padding-block:0 !important; padding-inline:0 !important; }
.numi-factstrip-in{ padding-inline:24px !important; }

/* the first collapse on load happens without the slide, so nothing flickers */
.elementor-accordion.numi-no-anim .elementor-tab-content{ display:none !important; }

.numi-shero{ padding:0 !important; }

/* The nav item for the current page, as in the comp */
.numi-nl .numi-navlink.is-current{ background:#F7F5F0; color:#2D1F13; font-weight:600; }
.numi-mm-link.is-current{ color:#9A5F0F !important; font-weight:600; }

/* Anchored sections clear the sticky bar, as in the comp */
.numi-svc-sec[id], .numi-sec[id], .numi-section[id], .numi-faqcat[id], [id="services"]{ scroll-margin-top:110px; }
html{ scroll-behavior:smooth; }
@media(prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

/* The frosted bar's backdrop-filter makes the shell a containing block for
   fixed children, which collapsed the mobile panel to the height of the bar.
   While the menu is open the bar is opaque anyway, so the filter can go. */
body.numi-menu-open .numi-navshell{ backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
body.numi-menu-open .numi-mobilemenu{ position:fixed; inset:0; }

/* The credentials row is a row of pills, not stacked blocks */
.numi-badgerow > *{ width:auto !important; flex:0 0 auto; }
[data-id="credgoogle"]{ font-weight:500; font-size:.9rem; }

/* The CTA band is an inset card, not full bleed, below the 1280 grid */
.numi-band{ width:calc(100% - 48px) !important; margin-left:auto !important; margin-right:auto !important; }

/* Related renovations cards */
.numi-rel-a{ text-decoration:none !important; }
.numi-rel-a::after{ content:"→"; color:#9A5F0F; flex:0 0 auto; position:static !important; }
.numi-rel-a:hover::after{ color:#FFFFFF; }
.numi-rel-a:hover .numi-rel-s{ color:rgba(255,255,255,.6); }
.numi-rel-a > *{ padding:0 !important; }
@media(max-width:760px){ .numi-rel{ grid-template-columns:1fr !important; } }/* End custom CSS */