/* newman-core.css -- GENERATED by projects/newman-air/tools/port-css.py. Do not edit.
   Edit design-source/v2-1/index.html (the prototype), assets/css/src/adapter.css or
   assets/css/src/overrides.css or inner.css, then re-run the porter and deploy-plugin.sh. */

/* ============================================================================
   ELEMENTOR ADAPTER (hand-written, comes first in newman-core.css)

   Same adapter as Lenz (projects/lenz/plugin/lenz-core/assets/css/src/adapter.css),
   scoped to `.nw-site` so the splash and the promo pages on this install are
   untouched. The ported prototype CSS assumes plain block markup; Elementor wraps
   every element in containers and widget wrappers with their own padding, gap,
   width and position. This block makes those wrappers transparent so the
   prototype rules decide layout and look.
   ============================================================================ */

.nw-site .elementor .elementor-element.e-con.e-flex {
  --display: block; --flex-direction: row;
  --flex-wrap: nowrap; --flex-wrap-mobile: nowrap;
}
.nw-site .elementor .e-con-boxed { flex-direction: row; }

.nw-site .elementor {
  --container-default-padding-top: 0px;
  --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px;
  --container-default-padding-left: 0px;
}
.nw-site .elementor .elementor-element {
  --widgets-spacing: 0px;
  --widgets-spacing-row: 0px;
  --widgets-spacing-column: 0px;
  --kit-widget-spacing: 0px;
}
/* Every container sets `text-align: var(--text-align)` with `--text-align: initial`,
   which breaks inheritance: a centred band (`.final`) would not centre its
   inline children. The prototype's <div>s inherit. */
.nw-site .elementor .e-con { text-align: inherit; }
.nw-site .elementor .e-con {
  min-width: auto;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --width: auto;
  --container-widget-width: auto;
}
:where(body.nw-site:not(.elementor-editor-active)) .elementor .e-con { --position: static; }
:where(body.nw-site:not(.elementor-editor-active)) .elementor .elementor-widget { position: static; }

/* A band's boxed container only satisfies the gate's band structure: it gives up
   its box, so the band's children sit directly in the <section> as in the
   prototype (`.wrap` plus full-bleed siblings such as the ridges or the slider). */
.nw-site .elementor .e-con.nw-pass,
.nw-site .elementor .e-con.nw-pass > .e-con-inner { display: contents; }
.nw-site .elementor .e-con-boxed > .e-con-inner { display: contents; }

.nw-site .e-con::before {
  position: static; display: inline;
  top: auto; left: auto; width: auto; height: auto;
  opacity: 1; mix-blend-mode: normal; border-radius: 0; border-style: none;
  transition: none;
}

.nw-site .elementor :is(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, blockquote, dl, dd) { margin: 0; }
.nw-site .elementor :is(h1, h2, h3, h4, h5, h6) { font-size: revert; }

.nw-site .elementor :where(button:not(.elementor-button)),
.nw-site .elementor :where(button:not(.elementor-button)):is(:hover, :focus) { all: revert; }

.nw-site .elementor .elementor-widget-image { min-height: 0; }
.nw-site .elementor .elementor-widget-image img {
  display: block; width: 100%; height: 100%; max-width: none;
  object-fit: inherit; object-position: inherit; border-radius: inherit;
}

:where(body.nw-site:not(.elementor-editor-active)) .elementor .elementor-widget-html { display: contents; }

/* Text and headings take type from the prototype rules, not from the kit's
   default schemes (Elementor > Settings keeps them on for the splash). */
.nw-site .elementor .elementor-widget-text-editor { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; }
.nw-site .elementor .elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); }

.nw-site .elementor .elementor-button .elementor-button-content-wrapper { display: contents; }
.nw-site .elementor .elementor-button .elementor-button-text { display: contents; }

/* Hello Elementor's reset sets `small { font-size: 80% }`; the prototype has the
   browser default (`smaller`). Prototype rules that size a <small> still win. */
.nw-site .elementor small { font-size: smaller; }

/* Theme Builder parts: the fixed header and the footer give up their wrapper. */
.nw-site .elementor-location-header { display: contents; }

/* Editor: see the end of overrides.css (it must come after the ported rules). */

/* ---- V2.1 prototype stylesheet (ported) ---- */
body.nw-site {
  --c-base: #003E51; --c-highlight: #46BFAF; --c-highlight-2: #0F5B6D; --c-accent: #FF8900; --c-on-accent: #003E51; --c-cream: #F7F2E4; --c-ink: #1E2B31; --c-alert: #B5231D; --font-display: "Bricolage Grotesque", system-ui, sans-serif; --font-body: "DM Sans", system-ui, sans-serif; --c-surface: #FFFFFF; --c-muted: color-mix(in srgb, var(--c-ink) 66%, white); --c-line: color-mix(in srgb, var(--c-base) 13%, white); --c-base-deep: color-mix(in srgb, var(--c-base) 72%, black); --c-base-soft: color-mix(in srgb, var(--c-base) 8%, white); --c-highlight-soft: color-mix(in srgb, var(--c-highlight) 18%, white); --c-accent-soft: color-mix(in srgb, var(--c-accent) 20%, white); --c-accent-hover: color-mix(in srgb, var(--c-accent) 86%, black); --c-on-dark: color-mix(in srgb, #fff 84%, var(--c-base)); --radius: 18px; --radius-sm: 10px; --shadow: 0 18px 40px -18px color-mix(in srgb, var(--c-base-deep) 55%, transparent); --shadow-lg: 0 30px 70px -25px color-mix(in srgb, var(--c-base-deep) 65%, transparent); --ease: cubic-bezier(.2, .7, .2, 1); --wrap: 1240px; --topo: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420' fill='none' stroke='black' stroke-width='1.4'><path d='M210 58c84-4 150 54 146 136s-74 148-154 144S64 268 68 186s58-124 142-128Z'/><path d='M210 96c64-3 114 40 110 102s-56 102-118 100-104-46-100-106 44-93 108-96Z'/><path d='M210 134c46-2 80 30 76 72s-40 68-84 66-72-32-70-74 32-62 78-64Z'/><path d='M211 170c26-1 46 16 44 40s-24 36-48 34-40-18-38-40 16-33 42-34Z'/><circle cx='0' cy='0' r='62'/><circle cx='420' cy='0' r='62'/><circle cx='0' cy='420' r='62'/><circle cx='420' cy='420' r='62'/><circle cx='0' cy='0' r='100'/><circle cx='420' cy='0' r='100'/><circle cx='0' cy='420' r='100'/><circle cx='420' cy='420' r='100'/><circle cx='0' cy='0' r='26'/><circle cx='420' cy='0' r='26'/><circle cx='0' cy='420' r='26'/><circle cx='420' cy='420' r='26'/></svg>"); --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
html:has(body.nw-site) {
  scroll-behavior: smooth; scroll-padding-top: 90px;
}
body.nw-site {
  margin: 0; font-family: var(--font-body); font-size: 17px; line-height: 1.65; color: var(--c-ink); background: var(--c-surface); -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.nw-site .elementor img {
  max-width: 100%; display: block;
}
.nw-site .elementor a {
  color: inherit;
}
.nw-site .elementor h1,
.nw-site .elementor h2,
.nw-site .elementor h3,
.nw-site .elementor h4,
.nw-site .elementor .display {
  font-family: var(--font-display); color: var(--c-base); line-height: 1.06; margin: 0 0 .45em; font-weight: 800; letter-spacing: -.02em;
}
.nw-site .elementor h1 {
  font-size: clamp(2.7rem, 6.2vw, 5.4rem);
}
.nw-site .elementor h2 {
  font-size: clamp(2rem, 4.2vw, 3.4rem);
}
.nw-site .elementor h3 {
  font-size: 1.35rem; letter-spacing: -.01em;
}
.nw-site .elementor p {
  margin: 0 0 1em;
}
.nw-site .elementor .wrap {
  width: min(var(--wrap), 100% - 32px); margin-inline: auto; position: relative;
}
.nw-site .elementor section {
  padding: clamp(72px, 9vw, 128px) 0; position: relative;
}
.nw-site .elementor .icon {
  width: 1.2em; height: 1.2em; flex: none;
}
.nw-site .elementor .topo {
  position: relative; isolation: isolate;
}
.nw-site .elementor .topo::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--c-highlight); opacity: .14; -webkit-mask: var(--topo) repeat; mask: var(--topo) repeat; -webkit-mask-size: 420px; mask-size: 420px;
}
.nw-site .elementor .topo.light::before {
  background: var(--c-base); opacity: .06;
}
.nw-site .elementor .grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; background-image: var(--grain); opacity: .09; mix-blend-mode: overlay;
}
.nw-site .elementor .on-dark {
  color: var(--c-on-dark);
}
.nw-site .elementor .on-dark :is(h1, h2, h3) {
  color: #fff;
}
.nw-site .elementor .eyebrow {
  display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1rem; font: 700 .8rem/1 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--c-highlight-2);
}
.nw-site .elementor .eyebrow .paw {
  width: 18px; height: 18px; color: var(--c-accent);
}
.nw-site .elementor .on-dark .eyebrow {
  color: var(--c-highlight);
}
.nw-site .elementor .lead {
  font-size: 1.15rem; color: var(--c-muted);
}
.nw-site .elementor .on-dark .lead {
  color: var(--c-on-dark);
}
.nw-site .elementor .btn:not(.elementor-widget),
.nw-site .elementor .btn .elementor-button {
  --pad: 1rem 1.7rem; display: inline-flex; align-items: center; justify-content: center; gap: .6rem; white-space: nowrap; font: 700 1.02rem/1 var(--font-body); padding: var(--pad); border-radius: 999px; border: 2px solid transparent; text-decoration: none; cursor: pointer; position: relative; transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s;
}
.nw-site .elementor .btn.elementor-widget {
  display: block;
}
.nw-site .elementor .btn .icon {
  transition: transform .25s var(--ease);
}
.nw-site .elementor .btn:not(.elementor-widget):hover,
.nw-site .elementor .btn .elementor-button:hover {
  transform: translateY(-2px);
}
.nw-site .elementor .btn:hover .arrow {
  transform: translateX(4px);
}
.nw-site .elementor .btn-accent:not(.elementor-widget),
.nw-site .elementor .btn-accent .elementor-button {
  background: var(--c-accent); color: var(--c-on-accent); box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--c-accent) 80%, transparent);
}
.nw-site .elementor .btn-accent:not(.elementor-widget):hover,
.nw-site .elementor .btn-accent .elementor-button:hover {
  background: var(--c-accent-hover); box-shadow: 0 16px 34px -12px color-mix(in srgb, var(--c-accent) 90%, transparent);
}
.nw-site .elementor .btn-ghost:not(.elementor-widget),
.nw-site .elementor .btn-ghost .elementor-button {
  border-color: color-mix(in srgb, currentColor 40%, transparent); color: var(--c-base);
}
.nw-site .elementor .btn-ghost:not(.elementor-widget):hover,
.nw-site .elementor .btn-ghost .elementor-button:hover {
  border-color: currentColor;
}
.nw-site .elementor .on-dark .btn-ghost:not(.elementor-widget),
.nw-site .elementor .on-dark .btn-ghost .elementor-button {
  color: #fff;
}
.nw-site .elementor .btn-xl:not(.elementor-widget),
.nw-site .elementor .btn-xl .elementor-button {
  --pad: 1.25rem 2.2rem; font-size: 1.15rem;
}
.nw-site .elementor .btn-row {
  display: flex; flex-wrap: wrap; gap: 12px;
}
.nw-site .elementor .text-link {
  display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--c-highlight-2); text-decoration: none;
}
.nw-site .elementor .text-link .icon {
  transition: transform .25s var(--ease);
}
.nw-site .elementor .text-link:hover .icon {
  transform: translateX(4px);
}
.nw-site .elementor .note {
  display: inline-flex; align-items: center; gap: .35rem; font: 600 .72rem/1.3 var(--font-body); background: #FFF3C4; color: #6B4E00; border: 1px dashed #D9A900; padding: .25rem .55rem; border-radius: 6px; vertical-align: middle; text-transform: none; letter-spacing: 0; font-style: normal;
}
.nw-site .elementor body.hide-notes .note {
  display: none !important;
}
.nw-site .elementor .reveal {
  opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); transition-delay: calc(var(--d, 0) * 90ms);
}
.nw-site .elementor .reveal.in {
  opacity: 1; transform: none;
}
.nw-site .elementor .site-head {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60; transition: background .3s, box-shadow .3s;
}
.nw-site .elementor .utility {
  background: var(--c-base-deep); color: #fff; font-size: .85rem; overflow: hidden; max-height: 40px; transition: max-height .3s var(--ease);
}
.nw-site .elementor .utility .wrap {
  display: flex; justify-content: space-between; gap: 16px; padding: 8px 0;
}
.nw-site .elementor .utility a,
.nw-site .elementor .utility :is(span, .lz-span) {
  display: inline-flex; align-items: center; gap: .4rem; text-decoration: none;
}
.nw-site .elementor .utility .icon {
  color: var(--c-accent);
}
.nw-site .elementor .site-head.scrolled .utility {
  max-height: 0;
}
.nw-site .elementor .bar .wrap {
  display: flex; align-items: center; gap: 22px;
}
.nw-site .elementor .site-head.scrolled .bar,
.nw-site .elementor .site-head.menu-open .bar {
  background: color-mix(in srgb, var(--c-surface) 92%, transparent); backdrop-filter: blur(12px); box-shadow: 0 8px 30px -18px rgba(0,0,0,.35);
}
.nw-site .elementor .bar {
  transition: background .3s, box-shadow .3s;
}
.nw-site .elementor .logo {
  display: block; padding: 10px 0; animation: logo-in .9s var(--ease) both;
}
.nw-site .elementor .logo img {
  height: 100px; width: auto; transition: height .3s var(--ease);
}
.nw-site .elementor .site-head.scrolled .logo img {
  height: 72px;
}
@keyframes logo-in { from { opacity: 0; transform: translateY(-10px) rotate(-3deg); } to { opacity: 1; transform: none; } }
.nw-site .elementor nav.main {
  display: flex; gap: 20px; margin-left: auto; align-self: stretch;
}
.nw-site .elementor .nav-item {
  display: flex; align-items: center;
}
.nw-site .elementor .nav-item.has-drop {
  position: relative;
}
.nw-site .elementor .nav-link {
  display: inline-flex; align-items: center; gap: 3px; padding: 26px 0 23px; white-space: nowrap; font-weight: 600; font-size: .96rem; text-decoration: none; color: #fff; border-bottom: 3px solid transparent; transition: color .2s, border-color .2s, padding .3s var(--ease);
}
.nw-site .elementor .site-head.scrolled .nav-link {
  color: var(--c-base); padding: 22px 0 19px;
}
.nw-site .elementor .nav-link .chev {
  width: 16px; height: 16px; transition: transform .25s var(--ease);
}
.nw-site .elementor .nav-item:hover .nav-link,
.nw-site .elementor .nav-item:focus-within .nav-link {
  border-bottom-color: var(--c-accent);
}
.nw-site .elementor .nav-item:hover .chev,
.nw-site .elementor .nav-item:focus-within .chev {
  transform: rotate(180deg);
}
.nw-site .elementor .mega,
.nw-site .elementor .drop {
  position: absolute; top: 100%; z-index: 50; background: var(--c-surface); color: var(--c-ink); border-radius: 0 0 var(--radius) var(--radius); border-top: 4px solid var(--c-accent); box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .25s var(--ease), visibility .2s;
}
.nw-site .elementor .nav-item:hover :is(.mega, .drop),
.nw-site .elementor .nav-item:focus-within :is(.mega, .drop) {
  opacity: 1; visibility: visible; transform: none;
}
.nw-site .elementor .mega {
  left: 0; right: 0; display: grid; grid-template-columns: repeat(4, 1fr) 1.15fr; gap: 8px 28px; padding: 30px;
}
.nw-site .elementor .mega-col {
  display: grid; align-content: start; gap: 2px;
}
.nw-site .elementor .mega-title {
  display: flex; align-items: center; gap: 8px; margin: 0 0 8px; padding-bottom: 10px; border-bottom: 1px solid var(--c-line); font: 800 1rem/1.2 var(--font-display); color: var(--c-base);
}
.nw-site .elementor .mega-title .icon {
  color: var(--c-highlight-2);
}
.nw-site .elementor .mega a:not(.mega-cta),
.nw-site .elementor .drop a {
  text-decoration: none; padding: 7px 10px; margin-inline: -10px; border-radius: 8px; font-size: .95rem; transition: background .15s, transform .15s;
}
.nw-site .elementor .mega a:not(.mega-cta):hover,
.nw-site .elementor .drop a:hover {
  background: var(--c-highlight-soft); color: var(--c-base); transform: translateX(3px);
}
.nw-site .elementor .mega-cta {
  position: relative; overflow: hidden; display: grid; align-content: end; min-height: 200px; padding: 20px; border-radius: var(--radius); background: var(--c-base); color: var(--c-on-dark); text-decoration: none;
}
.nw-site .elementor .mega-cta strong {
  display: block; font: 800 1.15rem/1.2 var(--font-display); color: #fff; margin-bottom: 4px;
}
.nw-site .elementor .mega-cta :is(span, .lz-span) {
  position: relative; z-index: 1; font-size: .9rem;
}
.nw-site .elementor .mega-cta img {
  position: absolute; width: 120px; right: -8px; top: -4px;
}
.nw-site .elementor .drop {
  left: -18px; min-width: 220px; display: grid; padding: 14px 24px;
}
.nw-site .elementor .head-cta {
  display: flex; align-items: center; gap: 14px;
}
.nw-site .elementor .menu-btn {
  display: none; background: none; border: 0; color: #fff; padding: 6px; cursor: pointer; margin-left: auto;
}
.nw-site .elementor .site-head.scrolled .menu-btn,
.nw-site .elementor .site-head.menu-open .menu-btn {
  color: var(--c-base);
}
.nw-site .elementor .drawer {
  display: none; background: var(--c-surface); border-top: 1px solid var(--c-line); padding: 6px 16px 22px; max-height: calc(100vh - 80px); overflow: auto;
}
.nw-site .elementor .site-head.menu-open .drawer {
  display: block;
}
.nw-site .elementor .drawer details {
  border-bottom: 1px solid var(--c-line);
}
.nw-site .elementor .drawer summary,
.nw-site .elementor .drawer-link {
  display: flex; justify-content: space-between; padding: 14px 0; font-weight: 700; color: var(--c-base); text-decoration: none; cursor: pointer; list-style: none;
}
.nw-site .elementor .drawer summary::-webkit-details-marker {
  display: none;
}
.nw-site .elementor .drawer summary::after {
  content: "+"; font-size: 1.3rem; line-height: 1; color: var(--c-highlight-2);
}
.nw-site .elementor .drawer details[open] summary::after {
  content: "\2212";
}
.nw-site .elementor .drawer-link {
  border-bottom: 1px solid var(--c-line);
}
.nw-site .elementor .drawer-group {
  display: grid; padding: 0 0 12px 12px;
}
.nw-site .elementor .drawer-group p {
  margin: 8px 0 4px; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-highlight-2);
}
.nw-site .elementor .drawer-group a {
  padding: 7px 0; text-decoration: none;
}
@media (max-width: 1160px) {
.nw-site .elementor nav.main,
.nw-site .elementor .head-cta {
  display: none;
}
.nw-site .elementor .menu-btn {
  display: block;
}
.nw-site .elementor .logo img {
  height: 72px;
}
}
@media (max-width: 640px) {
.nw-site .elementor .utility .hide-sm {
  display: none;
}
}
.nw-site .elementor .hero {
  padding: 170px 0 230px; color: var(--c-on-dark); overflow: hidden; background: radial-gradient(900px 520px at 78% 18%, color-mix(in srgb, var(--c-highlight) 30%, transparent), transparent 65%), radial-gradient(700px 400px at 5% 90%, color-mix(in srgb, var(--c-accent) 14%, transparent), transparent 70%), linear-gradient(170deg, var(--c-base) 0%, var(--c-base-deep) 100%);
}
.nw-site .elementor .hero .wrap {
  z-index: 2; display: grid; grid-template-columns: 1.25fr .75fr; gap: 56px; align-items: center;
}
.nw-site .elementor .hero h1 {
  color: #fff; margin-bottom: .35em;
}
.nw-site .elementor .hero h1 .w {
  display: inline-block; opacity: 0; transform: translateY(.45em) rotate(2deg); animation: word-in .8s var(--ease) forwards; animation-delay: calc(120ms + var(--i) * 70ms);
}
.nw-site .elementor .hero h1 .hl {
  color: var(--c-accent); position: relative;
}
.nw-site .elementor .hero h1 .hl svg {
  position: absolute; left: 0; right: 0; bottom: -.12em; width: 100%; height: .3em; color: var(--c-accent);
}
.nw-site .elementor .hero h1 .hl svg path {
  stroke-dasharray: 400; stroke-dashoffset: 400; animation: draw 1s var(--ease) 1.1s forwards;
}
@keyframes word-in { to { opacity: 1; transform: none; } }
@keyframes draw { to { stroke-dashoffset: 0; } }
.nw-site .elementor .fade-up {
  opacity: 0; transform: translateY(18px); animation: word-in .8s var(--ease) forwards; animation-delay: var(--delay, 0s);
}
.nw-site .elementor .hero .lead {
  font-size: 1.2rem; max-width: 620px;
}
.nw-site .elementor .hero .btn-row {
  margin-top: 30px;
}
.nw-site .elementor .stars {
  display: inline-flex; gap: 3px;
}
.nw-site .elementor .stars svg {
  width: 18px; height: 18px; color: var(--c-accent);
}
.nw-site .elementor .form-card {
  position: relative; background: var(--c-surface); color: var(--c-ink); border-radius: calc(var(--radius) + 4px); padding: 34px 28px 26px; box-shadow: var(--shadow-lg); transform: rotate(.6deg);
}
.nw-site .elementor .on-dark .form-card h2 {
  font-size: 1.7rem; margin-bottom: .15em; color: var(--c-base);
}
.nw-site .elementor .on-dark .form-card {
  color: var(--c-ink);
}
.nw-site .elementor .form-card p {
  color: var(--c-muted); font-size: .95rem;
}
.nw-site .elementor .badge-ring {
  position: absolute; width: 150px; height: 150px; right: -54px; top: -78px; z-index: 3;
}
.nw-site .elementor .badge-ring .ring {
  position: absolute; inset: 0; animation: spin 22s linear infinite;
}
.nw-site .elementor .badge-ring .ring text {
  font: 700 10.5px var(--font-body); letter-spacing: .22em; fill: var(--c-base); text-transform: uppercase;
}
.nw-site .elementor .badge-ring .disc {
  position: absolute; inset: 0; border-radius: 50%; background: var(--c-accent); box-shadow: var(--shadow);
}
.nw-site .elementor .badge-ring img {
  position: absolute; width: 104px; left: 23px; top: 23px;
}
@keyframes spin { to { transform: rotate(360deg); } }
.nw-site .elementor .field {
  display: grid; gap: 4px; margin-bottom: 12px;
}
.nw-site .elementor .field label {
  font-weight: 700; font-size: .82rem; color: var(--c-base);
}
.nw-site .elementor .field :is(input, select, textarea) {
  font: inherit; font-size: .98rem; padding: .75rem .85rem; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); background: var(--c-base-soft); color: var(--c-ink); width: 100%; transition: border-color .2s, background .2s, box-shadow .2s;
}
.nw-site .elementor .field :is(input, select, textarea):focus {
  outline: none; border-color: var(--c-highlight); background: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-highlight) 22%, transparent);
}
.nw-site .elementor .field-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.nw-site .elementor .form-card .btn:not(.elementor-widget),
.nw-site .elementor .form-card .btn .elementor-button {
  width: 100%; margin-top: 4px;
}
.nw-site .elementor .form-foot {
  display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: .82rem; color: var(--c-muted);
}
.nw-site .elementor .form-foot .icon {
  color: var(--c-highlight-2);
}
.nw-site .elementor .ridges {
  position: absolute; left: 0; right: 0; bottom: -2px; height: 260px; z-index: 1; pointer-events: none;
}
.nw-site .elementor .ridges svg {
  position: absolute; bottom: 0; left: -5%; width: 110%; height: 100%;
}
.nw-site .elementor .ridges .r1 {
  fill: color-mix(in srgb, var(--c-highlight) 32%, var(--c-base)); opacity: .55;
}
.nw-site .elementor .ridges .r2 {
  fill: color-mix(in srgb, var(--c-highlight-2) 70%, var(--c-base-deep));
}
.nw-site .elementor .ridges .r3 {
  fill: var(--c-base-deep);
}
.nw-site .elementor .ridges .trees {
  fill: var(--c-base-deep);
}
@media (max-width: 960px) {
.nw-site .elementor .hero {
  padding-top: 140px;
}
.nw-site .elementor .hero .wrap {
  grid-template-columns: 1fr;
}
.nw-site .elementor .form-card {
  margin: 70px 30px 0 0;
}
.nw-site .elementor .badge-ring {
  width: 120px; height: 120px; right: -20px; top: -64px;
}
.nw-site .elementor .badge-ring img {
  width: 84px; left: 18px; top: 18px;
}
}
@media (max-width: 520px) {
.nw-site .elementor .field-row {
  grid-template-columns: 1fr;
}
.nw-site .elementor .form-card {
  margin-left: 0;
}
.nw-site .elementor .badge-ring {
  right: -6px;
}
}
.nw-site .elementor .trust {
  padding: 0; margin-top: -60px; z-index: 4;
}
.nw-site .elementor .band {
  background: var(--c-accent); color: var(--c-on-accent); transform: rotate(-1.6deg); margin-inline: -3vw; box-shadow: var(--shadow-lg); position: relative; overflow: hidden;
}
.nw-site .elementor .band::after {
  content: ""; position: absolute; inset: 0; background-image: var(--grain); opacity: .12; mix-blend-mode: multiply; pointer-events: none;
}
.nw-site .elementor .band .wrap {
  transform: rotate(1.6deg); display: grid; grid-template-columns: repeat(4, 1fr); padding: 34px 0; gap: 0;
}
.nw-site .elementor .trust-item {
  padding: 6px 26px; display: grid; gap: 4px; position: relative;
}
.nw-site .elementor .trust-item + .trust-item {
  border-left: 2px dashed color-mix(in srgb, var(--c-on-accent) 30%, transparent);
}
.nw-site .elementor .trust-item .num {
  font: 800 2.4rem/1 var(--font-display); letter-spacing: -.03em; display: flex; align-items: center; gap: 8px;
}
.nw-site .elementor .trust-item strong {
  font: 800 1.05rem/1.25 var(--font-display);
}
.nw-site .elementor .trust-item :is(span, .lz-span):not(.num) {
  font-size: .9rem; line-height: 1.4; opacity: .88;
}
@media (max-width: 960px) {
.nw-site .elementor .band .wrap {
  grid-template-columns: 1fr 1fr; gap: 22px 0;
}
.nw-site .elementor .trust-item:nth-child(3) {
  border-left: 0;
}
}
@media (max-width: 560px) {
.nw-site .elementor .band .wrap {
  grid-template-columns: 1fr;
}
.nw-site .elementor .trust-item + .trust-item {
  border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--c-on-accent) 30%, transparent); padding-top: 18px;
}
}
.nw-site .elementor .services {
  padding-top: clamp(110px, 12vw, 160px);
}
.nw-site .elementor .section-top {
  display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: end; margin-bottom: 48px;
}
.nw-site .elementor .section-top .lead {
  margin: 0;
}
.nw-site .elementor .bento {
  display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr);
}
.nw-site .elementor .svc {
  position: relative; overflow: hidden; border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 8px; background: var(--c-surface); border: 1.5px solid var(--c-line); transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s;
}
.nw-site .elementor .svc:hover {
  transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent;
}
.nw-site .elementor .svc p {
  color: var(--c-muted); flex: 1; position: relative; z-index: 1;
}
.nw-site .elementor .svc h3 {
  position: relative; z-index: 1;
}
.nw-site .elementor .svc .text-link {
  position: relative; z-index: 1;
}
.nw-site .elementor .svc .glyph {
  position: absolute; right: -30px; bottom: -40px; width: 220px; height: 220px; opacity: .14; transition: transform .8s var(--ease);
}
.nw-site .elementor .svc:hover .glyph {
  transform: rotate(25deg) scale(1.06);
}
.nw-site .elementor .duo {
  position: relative; width: 62px; height: 62px; display: grid; place-items: center; margin-bottom: 10px; color: var(--c-base);
}
.nw-site .elementor .duo::before {
  content: ""; position: absolute; inset: 0; background: var(--c-highlight-soft); border-radius: 42% 58% 61% 39% / 47% 41% 59% 53%; transition: border-radius .6s var(--ease), transform .6s var(--ease);
}
.nw-site .elementor .duo::after {
  content: ""; position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--c-accent); right: 2px; top: 4px;
}
.nw-site .elementor .svc:hover .duo::before {
  border-radius: 58% 42% 39% 61% / 41% 57% 43% 59%; transform: rotate(-8deg);
}
.nw-site .elementor .duo .icon {
  position: relative; width: 30px; height: 30px;
}
.nw-site .elementor .svc.aci {
  background: var(--c-base); color: var(--c-on-dark); border: 0;
}
.nw-site .elementor .svc.aci h3 {
  color: #fff;
}
.nw-site .elementor .svc.aci p {
  color: var(--c-on-dark); max-width: 440px;
}
.nw-site .elementor .svc.aci .text-link {
  color: var(--c-accent);
}
.nw-site .elementor .svc.aci .glyph {
  color: var(--c-highlight); opacity: .22;
}
.nw-site .elementor .svc.aci .duo {
  color: #fff;
}
.nw-site .elementor .svc.aci .duo::before {
  background: color-mix(in srgb, var(--c-highlight) 35%, transparent);
}
.nw-site .elementor .svc.hti {
  background: var(--c-accent-soft); border-color: transparent;
}
.nw-site .elementor .svc.hti .glyph {
  color: var(--c-accent); opacity: .2;
}
.nw-site .elementor .svc.hti .duo::before {
  background: var(--c-surface);
}
.nw-site .elementor .svc.mnt,
.nw-site .elementor .svc.iaq {
  background: var(--c-cream); border-color: transparent;
}
.nw-site .elementor .svc.acr .glyph,
.nw-site .elementor .svc.htr .glyph,
.nw-site .elementor .svc.mnt .glyph,
.nw-site .elementor .svc.iaq .glyph {
  color: var(--c-base); opacity: .07;
}
@media (max-width: 1000px) {
.nw-site .elementor .section-top {
  grid-template-columns: 1fr;
}
.nw-site .elementor .bento {
  grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 600px) {
.nw-site .elementor .bento {
  grid-template-columns: 1fr;
}
}
.nw-site .elementor .about {
  background: var(--c-cream); overflow: hidden;
}
.nw-site .elementor .about .wrap {
  display: grid; grid-template-columns: .95fr 1.05fr; gap: 72px; align-items: center;
}
.nw-site .elementor .polaroid-stack {
  position: relative; min-height: 470px;
}
.nw-site .elementor .polaroid {
  position: absolute; background: #fff; padding: 14px 14px 56px; border-radius: 6px; box-shadow: var(--shadow-lg); width: min(380px, 80%);
}
.nw-site .elementor .polaroid .shot {
  aspect-ratio: 1 / 1; border-radius: 3px; display: grid; place-items: center; overflow: hidden; position: relative;
}
.nw-site .elementor .polaroid :is(figcaption, .lz-figcaption) {
  position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; font: 700 1rem var(--font-display); color: var(--c-base);
}
.nw-site .elementor .polaroid.p1 {
  left: 0; top: 40px; transform: rotate(-6deg);
}
.nw-site .elementor .polaroid.p1 .shot {
  background: color-mix(in srgb, var(--c-highlight-soft) 70%, white);
}
.nw-site .elementor .polaroid.p2 {
  right: 0; top: 0; transform: rotate(5deg);
}
.nw-site .elementor .polaroid.p2 .shot {
  background: linear-gradient(160deg, var(--c-base), var(--c-base-deep));
}
.nw-site .elementor .polaroid.p2 .shot::before {
  content: ""; position: absolute; inset: 0; background: var(--c-highlight); opacity: .2; -webkit-mask: var(--topo) repeat; mask: var(--topo) repeat; -webkit-mask-size: 260px; mask-size: 260px;
}
.nw-site .elementor .polaroid .tape {
  position: absolute; top: -12px; left: 50%; width: 110px; height: 28px; transform: translateX(-50%) rotate(-3deg); background: color-mix(in srgb, var(--c-accent) 55%, white); opacity: .85;
}
.nw-site .elementor .polaroid .shot img {
  width: 78%;
}
.nw-site .elementor .polaroid .shot .note {
  position: absolute; bottom: 10px;
}
.nw-site .elementor .big-stat {
  display: flex; gap: 34px; margin: 26px 0 30px; flex-wrap: wrap;
}
.nw-site .elementor .big-stat div {
  display: grid;
}
.nw-site .elementor .big-stat b {
  font: 800 clamp(1.9rem, 3.4vw, 2.9rem)/.9 var(--font-display); color: var(--c-accent); letter-spacing: -.03em;
}
.nw-site .elementor .big-stat small {
  font-weight: 600; color: var(--c-muted); margin-top: 6px;
}
@media (max-width: 960px) {
.nw-site .elementor .about .wrap {
  grid-template-columns: 1fr;
}
.nw-site .elementor .polaroid-stack {
  min-height: 420px; max-width: 560px;
}
}
.nw-site .elementor .difference {
  background: var(--c-base); color: var(--c-on-dark); overflow: hidden;
}
.nw-site .elementor .slider-head {
  display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 40px;
}
.nw-site .elementor .slider-head h2 {
  max-width: 720px; margin: 0;
}
.nw-site .elementor .slider-nav {
  display: flex; gap: 10px;
}
.nw-site .elementor .slider-nav button {
  width: 54px; height: 54px; border-radius: 50%; border: 2px solid color-mix(in srgb, #fff 35%, transparent); background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .2s, border-color .2s, transform .2s;
}
.nw-site .elementor .slider-nav button:hover {
  background: var(--c-accent); border-color: var(--c-accent); color: var(--c-on-accent); transform: scale(1.06);
}
.nw-site .elementor .track {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(400px, 82%); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px max(16px, (100% - var(--wrap)) / 2) 26px; scrollbar-width: none; cursor: grab;
}
.nw-site .elementor .track::-webkit-scrollbar {
  display: none;
}
.nw-site .elementor .track.dragging {
  cursor: grabbing; scroll-snap-type: none;
}
.nw-site .elementor .diff-card {
  scroll-snap-align: start; border-radius: var(--radius); padding: 34px 30px; position: relative; overflow: hidden; user-select: none; background: color-mix(in srgb, #fff 6%, var(--c-base)); border: 1px solid color-mix(in srgb, #fff 12%, transparent); transition: transform .35s var(--ease), background .3s;
}
.nw-site .elementor .diff-card:hover {
  transform: translateY(-6px); background: color-mix(in srgb, #fff 10%, var(--c-base));
}
.nw-site .elementor .diff-card .num {
  font: 800 4.6rem/1 var(--font-display); color: var(--c-accent); display: block; margin-bottom: 18px; letter-spacing: -.04em;
}
.nw-site .elementor .diff-card h3 {
  color: #fff;
}
.nw-site .elementor .diff-card p {
  margin: 0; font-size: .98rem;
}
.nw-site .elementor .progress {
  height: 4px; border-radius: 4px; background: color-mix(in srgb, #fff 14%, transparent); overflow: hidden; margin-top: 8px;
}
.nw-site .elementor .progress :is(span, .lz-span) {
  display: block; height: 100%; width: 20%; background: var(--c-accent); border-radius: 4px; transition: width .2s;
}
.nw-site .elementor .club .wrap {
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center;
}
.nw-site .elementor .member-card {
  position: relative; aspect-ratio: 1.586; border-radius: 22px; padding: 26px; overflow: hidden; color: #fff; isolation: isolate; background: linear-gradient(135deg, var(--c-highlight-2), var(--c-base) 55%, var(--c-base-deep)); box-shadow: var(--shadow-lg); transform: rotate(-5deg); transition: transform .6s var(--ease);
}
.nw-site .elementor .member-card:hover {
  transform: rotate(-2deg) translateY(-6px);
}
.nw-site .elementor .member-card::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--c-highlight); opacity: .18; -webkit-mask: var(--topo) repeat; mask: var(--topo) repeat; -webkit-mask-size: 300px; mask-size: 300px;
}
.nw-site .elementor .member-card::after {
  content: ""; position: absolute; inset: -40%; z-index: -1; background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.18) 50%, transparent 60%); animation: shine 5s ease-in-out infinite;
}
@keyframes shine { 0%, 60% { transform: translateX(-60%); } 100% { transform: translateX(60%); } }
.nw-site .elementor .member-card .mc-top {
  display: flex; justify-content: space-between; align-items: start;
}
.nw-site .elementor .member-card .mc-name {
  font: 800 clamp(1.3rem, 2.4vw, 1.8rem)/1 var(--font-display); letter-spacing: .02em;
}
.nw-site .elementor .member-card .mc-name small {
  display: block; font: 600 .7rem var(--font-body); letter-spacing: .25em; opacity: .75; margin-top: 6px;
}
.nw-site .elementor .member-card .chip {
  width: 46px; height: 36px; border-radius: 7px; background: linear-gradient(135deg, var(--c-accent), color-mix(in srgb, var(--c-accent) 60%, white));
}
.nw-site .elementor .member-card img {
  position: absolute; right: 18px; bottom: 14px; width: 34%;
}
.nw-site .elementor .member-card .mc-foot {
  position: absolute; left: 26px; bottom: 22px; font: 700 .78rem var(--font-body); letter-spacing: .2em; text-transform: uppercase;
}
.nw-site .elementor .member-card .mc-foot b {
  display: block; font: 800 1.5rem var(--font-display); letter-spacing: 0; color: var(--c-accent); text-transform: none;
}
.nw-site .elementor .checks {
  list-style: none; padding: 0; margin: 22px 0 30px; display: grid; gap: 12px;
}
.nw-site .elementor .checks :is(li, .lz-li) {
  display: flex; align-items: flex-start; gap: 12px; color: var(--c-ink);
}
.nw-site .elementor .checks :is(li, .lz-li) strong {
  color: var(--c-base);
}
.nw-site .elementor .checks .tick {
  width: 30px; height: 30px; border-radius: 50%; background: var(--c-accent); color: var(--c-on-accent); display: grid; place-items: center; flex: none;
}
.nw-site .elementor .checks .tick .icon {
  width: 16px; height: 16px;
}
.nw-site .elementor .price {
  color: var(--c-highlight-2); white-space: nowrap;
}
@media (max-width: 960px) {
.nw-site .elementor .club .wrap {
  grid-template-columns: 1fr; gap: 50px;
}
.nw-site .elementor .member-card {
  max-width: 460px;
}
}
.nw-site .elementor .finance {
  background: linear-gradient(180deg, var(--c-surface) 0%, var(--c-base-soft) 100%); clip-path: polygon(0 0, 100% 5%, 100% 100%, 0 100%); padding-top: clamp(100px, 11vw, 150px);
}
.nw-site .elementor .finance .wrap {
  display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center;
}
.nw-site .elementor .partners {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 30px;
}
.nw-site .elementor .partners :is(span, .lz-span) {
  display: grid; place-items: center; height: 58px; padding: 0 1.2rem; border-radius: 14px; background: var(--c-surface); border: 1.5px solid var(--c-line);
}
.nw-site .elementor .partners img {
  height: 24px; width: auto;
}
.nw-site .elementor .partners img.hearth {
  height: 32px;
}
.nw-site .elementor .steps {
  display: grid; gap: 16px;
}
.nw-site .elementor .step {
  display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; padding: 22px 24px; border-radius: var(--radius); background: var(--c-surface); box-shadow: var(--shadow); transition: transform .35s var(--ease);
}
.nw-site .elementor .step:nth-child(2) {
  margin-left: 34px;
}
.nw-site .elementor .step:nth-child(3) {
  margin-left: 68px;
}
.nw-site .elementor .step:hover {
  transform: translateX(-6px);
}
.nw-site .elementor .step .n {
  width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: var(--c-base); color: var(--c-accent);
}
.nw-site .elementor .step strong {
  display: block; font: 800 1.15rem/1.25 var(--font-display); color: var(--c-base); margin-bottom: 2px;
}
.nw-site .elementor .step :is(span, .lz-span) {
  color: var(--c-muted);
}
.nw-site .elementor .step .fine {
  display: block; margin-top: 4px; font-size: .8rem; opacity: .85;
}
@media (max-width: 960px) {
.nw-site .elementor .finance .wrap {
  grid-template-columns: 1fr;
}
.nw-site .elementor .step:nth-child(n) {
  margin-left: 0;
}
}
.nw-site .elementor .reviews .wrap {
  display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: center;
}
.nw-site .elementor .score .big {
  font: 800 clamp(2.4rem, 4vw, 3.2rem)/.85 var(--font-display); color: var(--c-base); letter-spacing: -.05em; display: flex; align-items: flex-end; gap: 10px; margin: 10px 0 14px;
}
.nw-site .elementor .score .big small {
  font-size: .45em; color: var(--c-muted); letter-spacing: 0; margin-bottom: .35em;
}
.nw-site .elementor .score .stars svg {
  width: 24px; height: 24px;
}
.nw-site .elementor .score p.meta {
  margin-top: 12px; font-weight: 600; color: var(--c-base);
}
.nw-site .elementor .masonry {
  columns: 2; column-gap: 20px;
}
.nw-site .elementor .rv {
  break-inside: avoid; margin-bottom: 20px; background: var(--c-surface); border: 1.5px solid var(--c-line); border-radius: var(--radius); padding: 24px; position: relative;
}
.nw-site .elementor .rv .q {
  position: absolute; right: 18px; top: 6px; font: 800 4.5rem/1 var(--font-display); color: var(--c-highlight-soft);
}
.nw-site .elementor .skel {
  height: 10px; border-radius: 6px; background: var(--c-line); margin-bottom: 10px;
}
.nw-site .elementor .skel.s {
  width: 55%;
}
.nw-site .elementor .skel.xs {
  width: 35%;
}
.nw-site .elementor .rv-head {
  display: flex; gap: 12px; align-items: center; margin-bottom: 16px;
}
.nw-site .elementor .rv-avatar {
  width: 46px; height: 46px; border-radius: 50%; background: conic-gradient(var(--c-accent), var(--c-highlight), var(--c-accent)); padding: 3px;
}
.nw-site .elementor .rv-avatar::after {
  content: ""; display: block; width: 100%; height: 100%; border-radius: 50%; background: var(--c-base-soft);
}
.nw-site .elementor .rv .stars {
  margin-bottom: 12px;
}
.nw-site .elementor .rv .stars svg {
  width: 16px; height: 16px;
}
@media (max-width: 960px) {
.nw-site .elementor .reviews .wrap {
  grid-template-columns: 1fr;
}
}
@media (max-width: 600px) {
.nw-site .elementor .masonry {
  columns: 1;
}
}
.nw-site .elementor .brands {
  padding-top: 0;
}
.nw-site .elementor .brands .head {
  text-align: center; max-width: 780px; margin: 0 auto 36px;
}
.nw-site .elementor .marquee {
  overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.nw-site .elementor .marquee-track {
  display: flex; gap: 24px; width: max-content; animation: scroll 32s linear infinite; padding: 10px 0;
}
.nw-site .elementor .marquee:hover .marquee-track {
  animation-play-state: paused;
}
.nw-site .elementor .brand-tile {
  width: 200px; height: 110px; border-radius: var(--radius); background: #fff; border: 1.5px solid var(--c-line); display: grid; place-items: center; padding: 16px; position: relative; transition: transform .3s var(--ease), box-shadow .3s;
}
.nw-site .elementor .brand-tile img {
  max-height: 74px; width: auto; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s;
}
.nw-site .elementor .brand-tile:hover {
  transform: translateY(-4px); box-shadow: var(--shadow);
}
.nw-site .elementor .brand-tile:hover img {
  filter: none; opacity: 1;
}
.nw-site .elementor .brand-tile.pending {
  font: 800 1.7rem var(--font-display); color: #C8102E; letter-spacing: .06em; font-style: normal;
}
.nw-site .elementor .brand-tile.pending .note {
  position: absolute; bottom: 8px; font-size: .62rem;
}
@keyframes scroll { to { transform: translateX(calc(-50% - 12px)); } }
.nw-site .elementor .area {
  background: var(--c-base-deep); color: var(--c-on-dark); overflow: hidden;
}
.nw-site .elementor .area .wrap {
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center;
}
.nw-site .elementor .cities {
  list-style: none; padding: 0; margin: 24px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px;
}
.nw-site .elementor .cities :is(li, .lz-li) {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; font-weight: 600; color: #fff; cursor: default; transition: background .2s;
}
.nw-site .elementor .cities :is(li, .lz-li):hover,
.nw-site .elementor .cities :is(li, .lz-li).on {
  background: color-mix(in srgb, #fff 10%, transparent);
}
.nw-site .elementor .cities .icon {
  color: var(--c-accent);
}
.nw-site .elementor .cities a {
  text-decoration: none; border-bottom: 1.5px dashed color-mix(in srgb, var(--c-accent) 70%, transparent);
}
.nw-site .elementor .area a.phone {
  color: var(--c-accent); font-weight: 700; white-space: nowrap;
}
.nw-site .elementor .map-card {
  position: relative; border-radius: calc(var(--radius) + 6px); overflow: hidden; background: color-mix(in srgb, var(--c-highlight) 10%, var(--c-base)); box-shadow: var(--shadow-lg);
}
.nw-site .elementor .map-card::before {
  content: ""; position: absolute; inset: 0; background: var(--c-highlight); opacity: .16; -webkit-mask: var(--topo) repeat; mask: var(--topo) repeat; -webkit-mask-size: 340px; mask-size: 340px;
}
.nw-site .elementor .map-card svg {
  position: relative; display: block; width: 100%; height: auto;
}
.nw-site .elementor .map-card .pin circle.dot {
  fill: var(--c-accent); stroke: var(--c-base-deep); stroke-width: 3; transition: r .25s var(--ease);
}
.nw-site .elementor .map-card .pin circle.pulse {
  fill: var(--c-accent); opacity: 0; transform-box: fill-box; transform-origin: center;
}
.nw-site .elementor .map-card .pin.on circle.pulse {
  animation: pulse 1.4s ease-out infinite;
}
.nw-site .elementor .map-card .pin.on circle.dot {
  r: 10;
}
.nw-site .elementor .map-card .pin text {
  font: 700 13px var(--font-body); fill: #fff; paint-order: stroke; stroke: var(--c-base-deep); stroke-width: 4px;
}
@keyframes pulse { 0% { opacity: .55; transform: scale(1); } 100% { opacity: 0; transform: scale(3.2); } }
.nw-site .elementor .map-card .note {
  position: absolute; left: 14px; bottom: 14px;
}
@media (max-width: 960px) {
.nw-site .elementor .area .wrap {
  grid-template-columns: 1fr;
}
}
.nw-site .elementor .faq .wrap {
  display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; align-items: start;
}
.nw-site .elementor .faq-side {
  position: sticky; top: 120px;
}
.nw-site .elementor .faq-side .ask {
  margin-top: 26px; padding: 22px; border-radius: var(--radius); background: var(--c-cream); display: flex; gap: 16px; align-items: center;
}
.nw-site .elementor .faq-side .ask img {
  width: 76px; flex: none;
}
.nw-site .elementor .faq-side .ask strong {
  display: block; font: 800 1.1rem var(--font-display); color: var(--c-base);
}
.nw-site .elementor .faq-side .ask a {
  color: var(--c-highlight-2); font-weight: 700; text-decoration: none;
}
.nw-site .elementor .faq-list {
  display: grid; gap: 14px;
}
.nw-site .elementor details.qa {
  border-radius: var(--radius); background: var(--c-surface); border: 1.5px solid var(--c-line); transition: border-color .25s, box-shadow .25s;
}
.nw-site .elementor details.qa:hover {
  border-color: color-mix(in srgb, var(--c-highlight) 60%, white);
}
.nw-site .elementor details.qa[open] {
  border-color: transparent; box-shadow: var(--shadow);
}
.nw-site .elementor details.qa summary {
  list-style: none; cursor: pointer; padding: 22px 24px; display: flex; justify-content: space-between; align-items: center; gap: 18px; font: 800 1.15rem/1.3 var(--font-display); color: var(--c-base);
}
.nw-site .elementor details.qa summary::-webkit-details-marker {
  display: none;
}
.nw-site .elementor details.qa .pm {
  width: 34px; height: 34px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--c-highlight-soft); color: var(--c-base); transition: transform .35s var(--ease), background .25s;
}
.nw-site .elementor details.qa[open] .pm {
  transform: rotate(135deg); background: var(--c-accent); color: var(--c-on-accent);
}
.nw-site .elementor details.qa .ans {
  padding: 0 24px 22px; color: var(--c-muted); animation: open .45s var(--ease);
}
.nw-site .elementor details.qa .ans p {
  margin: 0;
}
@keyframes open { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (max-width: 960px) {
.nw-site .elementor .faq .wrap {
  grid-template-columns: 1fr;
}
.nw-site .elementor .faq-side {
  position: static;
}
}
.nw-site .elementor .final {
  background: linear-gradient(170deg, var(--c-base), var(--c-base-deep)); color: var(--c-on-dark); overflow: hidden; padding-bottom: 0; text-align: center;
}
.nw-site .elementor .final .wrap {
  z-index: 2; max-width: 980px;
}
.nw-site .elementor .final h2 {
  color: #fff; font-size: clamp(2.4rem, 6vw, 4.8rem);
}
.nw-site .elementor .final .lead {
  max-width: 680px; margin-inline: auto;
}
.nw-site .elementor .final .btn-row {
  justify-content: center; margin: 34px 0 0;
}
.nw-site .elementor .final .bear-rise {
  position: relative; z-index: 2; width: 240px; margin: 44px auto 0; transition: transform .8s var(--ease);
}
.nw-site .elementor .final:hover .bear-rise {
  transform: translateY(-4%);
}
.nw-site .elementor .final .ridges {
  height: 120px;
}
.nw-site .elementor .final .ridges .r3 {
  fill: var(--c-base-deep);
}
.nw-site .elementor footer.site {
  background: var(--c-base-deep); color: color-mix(in srgb, #fff 74%, var(--c-base)); padding: 70px 0 28px; font-size: .95rem; position: relative;
}
.nw-site .elementor footer.site::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--c-highlight), var(--c-accent), var(--c-highlight));
}
.nw-site .elementor footer.site .cols {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px;
}
.nw-site .elementor footer.site h4 {
  color: #fff; font-size: 1.05rem; margin-bottom: 14px;
}
.nw-site .elementor footer.site :is(ul, .lz-ul) {
  list-style: none; padding: 0; margin: 0; display: grid; gap: 7px;
}
.nw-site .elementor footer.site a {
  text-decoration: none; transition: color .2s;
}
.nw-site .elementor footer.site a:hover {
  color: var(--c-accent);
}
.nw-site .elementor .foot-logo {
  height: 64px; width: auto; margin-bottom: 18px;
}
.nw-site .elementor .foot-contact {
  display: grid; gap: 10px; margin-top: 16px;
}
.nw-site .elementor .foot-contact a {
  display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 600;
}
.nw-site .elementor .foot-contact .icon {
  color: var(--c-accent);
}
.nw-site .elementor .legal {
  border-top: 1px solid color-mix(in srgb, #fff 14%, transparent); margin-top: 48px; padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .85rem;
}
.nw-site .elementor .legal nav {
  display: flex; gap: 18px;
}
@media (max-width: 960px) {
.nw-site .elementor footer.site .cols {
  grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 560px) {
.nw-site .elementor footer.site .cols {
  grid-template-columns: 1fr;
}
}
@media (prefers-reduced-motion: reduce) {
.nw-site .elementor .reveal {
  opacity: 1; transform: none;
}
.nw-site .elementor .hero h1 .w,
.nw-site .elementor .fade-up {
  opacity: 1; transform: none;
}
}

/* ============================================================================
   HAND-WRITTEN OVERRIDES (come last in newman-core.css)

   Only what the porter cannot derive from the prototype. Values are copied from
   the prototype rules named in each comment.
   ============================================================================ */

/* ---- Button icons ----------------------------------------------------------
   Button text is kses-filtered (no inline SVG), so the prototype's
   `<svg class="icon">` inside .btn becomes a CSS mask: phone before the label,
   arrow after it (and nudged on hover, as `.btn:hover .arrow`). */
.nw-site .elementor .nw-ico .elementor-button::before,
.nw-site .elementor .nw-ico-after .elementor-button::after {
  content: "";
  flex: none;
  width: 1.2em;            /* .icon */
  height: 1.2em;
  background: currentColor;
  -webkit-mask: var(--nw-ico) center / contain no-repeat;
  mask: var(--nw-ico) center / contain no-repeat;
  transition: transform .25s var(--ease);
}
.nw-site .elementor .nw-ico-after .elementor-button::before { content: none; }
.nw-site .elementor .nw-ico-after .elementor-button:hover::after { transform: translateX(4px); }
.nw-site .elementor .nw-ico-phone { --nw-ico: url(../icons/i-phone.svg); }
.nw-site .elementor .nw-ico-arrow { --nw-ico: url(../icons/i-arrow.svg); }

/* ---- Hero H1 underline -----------------------------------------------------
   The prototype draws it with an inline <svg> inside `.hl`; the heading title is
   kses-filtered, so the same path is a mask on ::after, revealed left to right
   in the same 1s from 1.1s (`.hero h1 .hl svg path`). */
.nw-site .elementor .hero h1 .hl::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -.12em; height: .3em;
  background: var(--c-accent);
  -webkit-mask: url(../icons/underline.svg) center / 100% 100% no-repeat;
  mask: url(../icons/underline.svg) center / 100% 100% no-repeat;
  clip-path: inset(0 100% 0 0);
  animation: nw-draw 1s var(--ease) 1.1s forwards;
}
@keyframes nw-draw { to { clip-path: inset(0 0 0 0); } }
@media (prefers-reduced-motion: reduce) { .nw-site .elementor .hero h1 .hl::after { clip-path: none; animation: none; } }

/* ---- Native buttons start from the prototype's bare <a> --------------------
   Elementor and the kit paint .elementor-button (grey/green background, kit
   font); the prototype's .btn has neither. Lower weight than the ported
   .btn-accent rules, so those still win. */
.nw-site .elementor .elementor-button { background: transparent; font-family: var(--font-body); }   /* (0,3,0): under .btn-accent's (0,4,0) */

/* ---- Child-combinator rules the port turned into descendants ---------------
   `.trust-item > span:not(.num)` also reaches the count-up span inside `.num`. */
.nw-site .elementor .trust-item .num span[data-count] { font: inherit; line-height: inherit; opacity: 1; }   /* (0,5,1): also wins in the editor, where an extra .elementor-text-editor div sits in between */

/* `.svc p { flex: 1 }` pushed the card link to the bottom; the text widget
   wrapper is the flex item now. */
.nw-site .elementor .svc > .elementor-widget-text-editor { flex: 1; position: relative; z-index: 1; }

/* ---- Request form (prototype: .field, .field-row, .form-card .btn) ---------
   Elementor Pro form markup instead of the prototype's static form. Selectors
   carry .elementor-widget-form to meet the widget's own element CSS. */
.nw-site .elementor .nw-form.elementor-widget-form .elementor-form-fields-wrapper { margin-bottom: 0; }   /* Elementor pulls it up by the row gap */
.nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group { margin-bottom: 12px; }
.nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group > .elementor-field-label {
  display: block; padding: 0 0 4px; margin: 0;
  font: 700 .82rem/1.65 var(--font-body); color: var(--c-base);
}
.nw-site .elementor .nw-form.elementor-widget-form .elementor-mark-required .elementor-field-label::after { content: "*"; color: inherit; padding: 0; padding-inline-start: 0; }
.nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group .elementor-field {
  font: inherit; font-size: .98rem; line-height: 1.65; padding: .75rem .85rem; min-height: 0;
  border: 1.5px solid var(--c-line); border-radius: var(--radius-sm);
  background: var(--c-base-soft); color: var(--c-ink); width: 100%;
  transition: border-color .2s, background .2s, box-shadow .2s;
}
.nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group .elementor-field:focus {
  outline: none; border-color: var(--c-highlight); background: #fff;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-highlight) 22%, transparent);
}
.nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group.elementor-field-type-submit { margin: 4px 0 0; }
/* Submit = .btn.btn-accent, full width (.form-card .btn) */
.nw-site .elementor .nw-form.elementor-widget-form .elementor-button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem; width: 100%;
  font: 700 1.02rem/1 var(--font-body); padding: 1rem 1.7rem; border-radius: 999px; border: 2px solid transparent;
  background: var(--c-accent); color: var(--c-on-accent);
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--c-accent) 80%, transparent);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s;
}
.nw-site .elementor .nw-form.elementor-widget-form .elementor-button[type="submit"]::after {
  content: ""; width: 1.2em; height: 1.2em; background: currentColor;
  -webkit-mask: url(../icons/i-arrow.svg) center / contain no-repeat; mask: url(../icons/i-arrow.svg) center / contain no-repeat;
}
.nw-site .elementor .nw-form.elementor-widget-form .elementor-button[type="submit"]:hover {
  transform: translateY(-2px); background: var(--c-accent-hover);
}
@media (max-width: 520px) {   /* .field-row stacks: row gap (12) + field margin (12) between the pair */
  .nw-site .elementor .nw-form.elementor-widget-form .elementor-field-group { width: 100%; }
  .nw-site .elementor .nw-form.elementor-widget-form :is(.elementor-field-group-name, .elementor-field-group-email) { margin-bottom: 24px; }
}

/* The trust-item title and caption sit in a text widget <div>: as inline elements they took
   the div's 17px/1.65 line box; in the prototype they are grid items (block). */
.nw-site .elementor .trust-item .elementor-widget-text-editor > :not(.num) { display: block; }

/* The prototype never resets <figure>, so its polaroids keep the browser's
   default margin (1em 40px) on top of left:0 / right:0; the adapter's margin
   reset (and Elementor's `.elementor .elementor-widget:not(..):not(..) figure`,
   0,4,1) would move them 40px out and 17px up. */
.nw-site .elementor .elementor-widget .polaroid-stack figure.polaroid { margin: 1em 40px; }

/* `.btn-row` is a flex row whose items stretch: in the prototype a button without
   an icon grows to its neighbour's height (Get In Touch next to Our Story). The
   widget wrapper is the flex item here, so it passes the stretch to the <a>. */
.nw-site .elementor .btn-row > .btn.elementor-widget-button { display: flex; }

/* ---- Elementor editor: no entrance animations --------------------------------
   newman-site.js does not run in the editor canvas, so nothing adds `.in` and the
   `.reveal` / `.fade-up` blocks and the H1 words would stay at opacity 0 (Erick,
   2026-10-23: the canvas showed empty bands). In the editor everything is shown
   in its final state; the public page keeps the prototype's animations. Weights
   are above the ported rules they replace ((0,3,0) for .reveal, (0,4,1) for
   `.hero h1 .w`). */
body.elementor-editor-active.nw-site .elementor :is(.reveal, .fade-up),
body.elementor-editor-active.nw-site .elementor .hero h1 .w {
  opacity: 1; transform: none; animation: none; transition: none;
}
body.elementor-editor-active.nw-site .elementor .hero h1 .hl::after { clip-path: none; animation: none; }

/* ============================================================================
   INNER PAGES (hand-written, comes after overrides.css in newman-core.css)

   The V2.1 prototype only covers the homepage. Inner pages (services, service
   areas, About, Contact, Financing, Maintenance Plan, legal) reuse its bands as
   they are (hero + form card, trust band, FAQ, Bear Necessities, final CTA) and
   add the pieces below, built from the same tokens: a shorter hero, an article
   column with a sticky sidebar, numbered steps, mini service cards, pricing cards
   and a contact card. Built by pages/inner/build.py.
   ============================================================================ */

/* ---- Hero: same band as the homepage, shorter, smaller H1 ------------------ */
.nw-site .elementor .hero.page-hero { padding: 150px 0 200px; }
/* With the form card: the badge ring sits 64px above the card, so the card starts lower
   than the text to keep the badge clear of the fixed header and its Schedule button. */
.nw-site .elementor .hero.page-hero:not(.solo) { padding-top: 175px; }
.nw-site .elementor .hero.page-hero:not(.solo) .form-card { margin-top: 60px; }
.nw-site .elementor .page-hero h1 { font-size: clamp(2.3rem, 4.6vw, 3.9rem); }
.nw-site .elementor .page-hero .lead + .lead { margin-top: .8em; }
.nw-site .elementor .page-hero.solo .wrap { grid-template-columns: minmax(0, 820px); }
.nw-site .elementor .page-hero.compact { padding: 140px 0 150px; }
.nw-site .elementor .page-hero.compact .ridges { height: 140px; }
.nw-site .elementor .crumbs {
  display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1.1rem; padding: 0; list-style: none;
  font: 600 .85rem/1.3 var(--font-body); color: var(--c-on-dark);
}
.nw-site .elementor .crumbs li + li::before { content: "/"; margin-right: .45rem; opacity: .5; }
.nw-site .elementor .crumbs a { color: #fff; text-decoration: none; opacity: .8; }
.nw-site .elementor .crumbs a:hover { opacity: 1; text-decoration: underline; }
.nw-site .elementor .crumbs [aria-current] { color: var(--c-highlight); }

/* The badge ring sits over the card's top-right corner: keep long titles clear of it. */
.nw-site .elementor .page-hero .form-card .elementor-widget-heading .elementor-heading-title { padding-right: 64px; }

/* ---- FAQ band on inner pages: tinted, so it separates from the white article above ---- */
.nw-site .elementor .faq.faq-alt { background: var(--c-base-soft); }
.nw-site .elementor .faq.faq-alt .faq-side .ask { background: var(--c-surface); box-shadow: var(--shadow); }
.nw-site .elementor .faq.faq-alt details.qa { border-color: transparent; box-shadow: 0 6px 18px -14px color-mix(in srgb, var(--c-base-deep) 45%, transparent); }

/* ---- Article: content column + sticky sidebar ------------------------------ */
.nw-site .elementor .article .wrap {
  display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; align-items: start;
}
.nw-site .elementor .article.wide .wrap { grid-template-columns: minmax(0, 860px); justify-content: center; }
.nw-site .elementor .prose { font-size: 1.06rem; color: var(--c-ink); }
.nw-site .elementor .prose-block + .prose-block { margin-top: 64px; padding-top: 56px; border-top: 1.5px solid var(--c-line); }
.nw-site .elementor .prose h2,
.nw-site .elementor .prose h2.elementor-heading-title { font-size: clamp(1.75rem, 3vw, 2.45rem); margin: 0 0 .55em; }
.nw-site .elementor .prose h3,
.nw-site .elementor .prose h3.elementor-heading-title { font-size: 1.32rem; margin: 1.6em 0 .5em; }
.nw-site .elementor .prose .elementor-widget-heading:first-child h3 { margin-top: 0; }
.nw-site .elementor .prose p { margin: 0 0 1em; }
.nw-site .elementor .prose p:last-child { margin-bottom: 0; }
.nw-site .elementor .prose :is(p, li, td, th) > :is(a, strong > a, em > a):not(.btn):not(.elementor-button):not(.text-link) {
  color: var(--c-highlight-2); font-weight: 600; text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--c-highlight) 60%, transparent); text-underline-offset: .18em;
}
.nw-site .elementor .prose ul { list-style: none; padding: 0; margin: .4em 0 1.3em; display: grid; gap: 10px; }
.nw-site .elementor .prose ul li { position: relative; padding-left: 36px; }
.nw-site .elementor .prose ul li::before {
  content: ""; position: absolute; left: 0; top: .18em; width: 24px; height: 24px; border-radius: 50%;
  background: var(--c-accent-soft);
}
.nw-site .elementor .prose ul li::after {
  content: ""; position: absolute; left: 6px; top: calc(.18em + 6px); width: 12px; height: 12px;
  background: var(--c-base);
  -webkit-mask: url(../icons/i-check.svg) center / contain no-repeat; mask: url(../icons/i-check.svg) center / contain no-repeat;
}
.nw-site .elementor .prose .btn-row { margin-top: 26px; }

/* Numbered steps (old "What happens during..." lists) */
.nw-site .elementor .prose ol.steps-list { list-style: none; padding: 0; margin: 1em 0 1.2em; display: grid; gap: 14px; counter-reset: stp; }
.nw-site .elementor .steps-list li {
  counter-increment: stp; position: relative; padding: 20px 22px 20px 78px; border-radius: var(--radius);
  background: var(--c-surface); border: 1.5px solid var(--c-line);
}
.nw-site .elementor .steps-list li::before {
  content: counter(stp); position: absolute; left: 20px; top: 18px; width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center; background: var(--c-base); color: #fff; font: 800 1.15rem/1 var(--font-display);
}
.nw-site .elementor .steps-list strong { display: block; font: 800 1.12rem/1.3 var(--font-display); color: var(--c-base); margin-bottom: .3em; }
.nw-site .elementor .steps-list p { margin: 0; color: var(--c-muted); }

/* Mini service cards (old "Title<br>text" paragraphs on hubs and city pages) */
.nw-site .elementor .mini-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 1.2em 0 1.4em; }
.nw-site .elementor .mini-card {
  display: flex; flex-direction: column; gap: .45em; padding: 22px 22px 20px; border-radius: var(--radius);
  background: var(--c-surface); border: 1.5px solid var(--c-line); text-decoration: none; color: var(--c-ink);
  transition: border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
.nw-site .elementor a.mini-card:hover { border-color: color-mix(in srgb, var(--c-highlight) 60%, white); box-shadow: var(--shadow); transform: translateY(-2px); }
.nw-site .elementor .mini-card strong { font: 800 1.12rem/1.25 var(--font-display); color: var(--c-base); }
.nw-site .elementor .mini-card span { font-size: .96rem; color: var(--c-muted); }
.nw-site .elementor .mini-card .more { margin-top: auto; padding-top: .4em; font-weight: 700; color: var(--c-highlight-2); display: inline-flex; gap: .35em; align-items: center; }
.nw-site .elementor .mini-card .more svg { width: 1em; height: 1em; }

/* ---- Sidebar ---------------------------------------------------------------- */
.nw-site .elementor .aside { position: sticky; top: 120px; display: grid; gap: 18px; }
.nw-site .elementor .side-card { border-radius: var(--radius); padding: 26px 24px; background: var(--c-cream); }
.nw-site .elementor .side-card h3,
.nw-site .elementor .side-card .elementor-heading-title { font-size: 1.2rem; margin: 0 0 .6em; }
.nw-site .elementor .side-card p { margin: 0 0 1em; color: var(--c-muted); font-size: .97rem; }
.nw-site .elementor .side-card .btn { width: 100%; }
.nw-site .elementor .side-card.dark { background: linear-gradient(170deg, var(--c-base), var(--c-base-deep)); color: var(--c-on-dark); }
.nw-site .elementor .side-card.dark h3,
.nw-site .elementor .side-card.dark .elementor-heading-title { color: #fff; }
.nw-site .elementor .side-card.dark p { color: var(--c-on-dark); }
.nw-site .elementor .side-card .big-phone { display: block; font: 800 1.6rem/1.1 var(--font-display); color: #fff; text-decoration: none; margin: .1em 0 .5em; }
.nw-site .elementor .side-card .fee { display: flex; gap: .5em; align-items: center; font-size: .9rem; margin: 14px 0 0; }
.nw-site .elementor .side-card .fee svg { width: 1.1em; height: 1.1em; color: var(--c-accent); flex: none; }
.nw-site .elementor .side-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.nw-site .elementor .side-nav a {
  display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px;
  text-decoration: none; color: var(--c-base); font-weight: 600; font-size: .97rem;
}
.nw-site .elementor .side-nav a:hover { background: #fff; }
.nw-site .elementor .side-nav a[aria-current] { background: var(--c-base); color: #fff; }
.nw-site .elementor .side-nav svg { width: 1em; height: 1em; opacity: .6; flex: none; }
.nw-site .elementor .side-nav .grp { font: 700 .72rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--c-highlight-2); padding: 14px 12px 6px; }

/* ---- Pricing (Maintenance Plan) -------------------------------------------- */
.nw-site .elementor .price-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 34px; }
.nw-site .elementor .price-card {
  position: relative; padding: 32px 30px; border-radius: calc(var(--radius) + 4px); background: var(--c-surface);
  border: 1.5px solid var(--c-line); box-shadow: var(--shadow);
}
.nw-site .elementor .price-card.featured { background: linear-gradient(170deg, var(--c-base), var(--c-base-deep)); color: var(--c-on-dark); border-color: transparent; }
.nw-site .elementor .price-card .tier { font: 700 .8rem/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--c-highlight-2); }
.nw-site .elementor .price-card.featured .tier { color: var(--c-highlight); }
.nw-site .elementor .price-card .amt { display: block; font: 800 clamp(2.4rem, 4vw, 3.2rem)/1 var(--font-display); color: var(--c-base); margin: .35em 0 .2em; }
.nw-site .elementor .price-card.featured .amt { color: #fff; }
.nw-site .elementor .price-card .amt small { font-size: .38em; font-weight: 700; opacity: .75; }
.nw-site .elementor .price-card p { margin: 0; color: var(--c-muted); }
.nw-site .elementor .price-card.featured p { color: var(--c-on-dark); }
.nw-site .elementor .fine { margin-top: 18px; font-size: .92rem; color: var(--c-muted); font-style: italic; }

/* ---- Contact card ------------------------------------------------------------ */
.nw-site .elementor .contact-list { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 16px; }
.nw-site .elementor .contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.nw-site .elementor .contact-list .ic {
  width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: color-mix(in srgb, #fff 12%, transparent); color: var(--c-accent);
}
.nw-site .elementor .contact-list .ic svg { width: 20px; height: 20px; }
.nw-site .elementor .contact-list strong { display: block; color: #fff; font-weight: 700; }
.nw-site .elementor .contact-list a { color: var(--c-on-dark); text-decoration: none; }
.nw-site .elementor .contact-list a:hover { color: #fff; text-decoration: underline; }

/* ---- Partner logos on a light band (Financing) -------------------------------- */
.nw-site .elementor .prose .partners { margin: 1.2em 0 1.4em; }

/* ---- Third-party embed (A2P opt-in form) --------------------------------------- */
.nw-site .elementor .embed-wrap iframe { display: block; width: 100%; min-height: 906px; border: 0; }

/* ---- Sitemap ------------------------------------------------------------------- */
.nw-site .elementor .sitemap-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; }
.nw-site .elementor .sitemap-cols h3 { font-size: 1.15rem; margin: 0 0 .6em; }

/* ---- Responsive (prototype breakpoints: 960 / 600) ----------------------------- */
@media (max-width: 960px) {
  .nw-site .elementor .article .wrap { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .nw-site .elementor .aside { position: static; }
  .nw-site .elementor .hero.page-hero { padding: 130px 0 170px; }
  .nw-site .elementor .sitemap-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .nw-site .elementor .mini-cards,
  .nw-site .elementor .price-cards,
  .nw-site .elementor .sitemap-cols { grid-template-columns: minmax(0, 1fr); }
  .nw-site .elementor .steps-list li { padding: 18px 18px 18px 68px; }
  .nw-site .elementor .steps-list li::before { left: 16px; width: 38px; height: 38px; }
  .nw-site .elementor .prose-block + .prose-block { margin-top: 48px; padding-top: 42px; }
}

/* ---- Blog: single post (pages/blog/build.py) and index (Posts widget) ---------- */
.nw-site .elementor .post-hero h1 { font-size: clamp(2rem, 4vw, 3.3rem); max-width: 900px; }
.nw-site .elementor .post-meta .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; }
.nw-site .elementor .post-meta .elementor-icon-list-item,
.nw-site .elementor .post-meta a { color: var(--c-on-dark); font: 600 .95rem/1.4 var(--font-body); text-decoration: none; }
.nw-site .elementor .post-meta .elementor-icon-list-item + .elementor-icon-list-item::before { content: "\00b7"; margin-right: 18px; opacity: .6; }
.nw-site .elementor .post-meta .elementor-icon-list-icon { display: none; }
.nw-site .elementor .post-thumb { margin: 0 0 40px; }
.nw-site .elementor .post-thumb img { width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: calc(var(--radius) + 4px); box-shadow: var(--shadow); }
.nw-site .elementor .post-body img { max-width: 100%; height: auto; border-radius: var(--radius); }   /* blog post images only: .partners logos keep their fixed height */
.nw-site .elementor .prose ol:not(.steps-list) { margin: .4em 0 1.3em; padding-left: 1.4em; display: grid; gap: 8px; }
.nw-site .elementor .prose ol:not(.steps-list) li::marker { color: var(--c-highlight-2); font-weight: 800; }
.nw-site .elementor .prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0 1.6em; font-size: .97rem; display: block; overflow-x: auto; }
.nw-site .elementor .prose th,
.nw-site .elementor .prose td { padding: 12px 14px; border-bottom: 1.5px solid var(--c-line); text-align: left; vertical-align: top; }
.nw-site .elementor .prose th { background: var(--c-base); color: #fff; font-weight: 700; }
.nw-site .elementor .prose tr:nth-child(even) td { background: var(--c-base-soft); }
.nw-site .elementor .prose h4 { font-size: 1.12rem; margin: 1.4em 0 .4em; }
.nw-site .elementor .post-body > .elementor-widget-container > :first-child { margin-top: 0; }

.nw-site .elementor .article.wide.blog-index .wrap { grid-template-columns: minmax(0, var(--wrap)); }
.nw-site .elementor .blog-grid .elementor-posts-container { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nw-site .elementor .blog-grid .elementor-post {
  display: flex; flex-direction: column; overflow: hidden; border-radius: var(--radius); background: var(--c-surface);
  border: 1.5px solid var(--c-line); transition: border-color .25s, box-shadow .25s, transform .25s var(--ease);
}
.nw-site .elementor .blog-grid .elementor-post:hover { border-color: color-mix(in srgb, var(--c-highlight) 60%, white); box-shadow: var(--shadow); transform: translateY(-2px); }
.nw-site .elementor .blog-grid .elementor-post__thumbnail__link { display: block; width: 100%; margin: 0; }
.nw-site .elementor .blog-grid .elementor-post__thumbnail { position: relative; padding-bottom: 62%; overflow: hidden; }
.nw-site .elementor .blog-grid .elementor-post__thumbnail img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: none; }
.nw-site .elementor .blog-grid .elementor-post__text { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 24px; flex: 1; }
.nw-site .elementor .blog-grid .elementor-post__title { margin: 0; font: 800 1.2rem/1.25 var(--font-display); }
.nw-site .elementor .blog-grid .elementor-post__title a { color: var(--c-base); text-decoration: none; }
.nw-site .elementor .blog-grid .elementor-post__meta-data { order: -1; font: 700 .75rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--c-highlight-2); }
.nw-site .elementor .blog-grid .elementor-post__excerpt p { margin: 0; color: var(--c-muted); font-size: .97rem; }
.nw-site .elementor .blog-grid .elementor-post__read-more { margin-top: auto; font-weight: 700; color: var(--c-highlight-2); text-decoration: none; }
.nw-site .elementor .blog-grid .elementor-pagination { margin-top: 34px; display: flex; gap: 8px; justify-content: center; }
.nw-site .elementor .blog-grid .page-numbers { display: inline-grid; place-items: center; min-width: 40px; height: 40px; border-radius: 999px; border: 1.5px solid var(--c-line); color: var(--c-base); text-decoration: none; font-weight: 700; }
.nw-site .elementor .blog-grid .page-numbers.current { background: var(--c-base); color: #fff; border-color: transparent; }
@media (max-width: 960px) { .nw-site .elementor .blog-grid .elementor-posts-container { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .nw-site .elementor .blog-grid .elementor-posts-container { grid-template-columns: minmax(0, 1fr); } }

/* ---- Native widgets in place of raw HTML (Erick 2026-10-23: editable in Elementor) ------- */
/* Eyebrow: heading widget rendered as <p>; same look as the prototype .eyebrow, paw as a mask */
.nw-site .elementor .nw-eyebrow .elementor-heading-title {
  display: inline-flex; align-items: center; gap: .6rem; margin: 0 0 1rem;
  font: 700 .8rem/1 var(--font-body); letter-spacing: .18em; text-transform: uppercase; color: var(--c-highlight-2);
}
.nw-site .elementor .nw-eyebrow .elementor-heading-title::before {
  content: ""; flex: none; width: 18px; height: 18px; background: var(--c-accent);
  -webkit-mask: url(../icons/i-paw.svg) center / contain no-repeat; mask: url(../icons/i-paw.svg) center / contain no-repeat;
}
.nw-site .elementor .on-dark .nw-eyebrow .elementor-heading-title { color: var(--c-highlight); }

/* Breadcrumb in a text widget */
.nw-site .elementor .nw-crumbs .crumbs { margin: 0 0 1.1rem; }

/* Lock line (form card foot, sidebar fee) */
.nw-site .elementor .nw-lock { display: flex; gap: .5em; align-items: center; }
.nw-site .elementor .nw-lock::before {
  content: ""; flex: none; width: 1.05em; height: 1.05em; background: var(--c-accent);
  -webkit-mask: url(../icons/i-lock.svg) center / contain no-repeat; mask: url(../icons/i-lock.svg) center / contain no-repeat;
}
.nw-site .elementor .form-card .nw-lock::before { background: var(--c-highlight-2); }

/* Sidebar menu: icon-list widget */
.nw-site .elementor .side-nav .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.nw-site .elementor .side-nav .elementor-icon-list-item { margin: 0; padding: 0; }
.nw-site .elementor .side-nav .elementor-icon-list-item::after { content: none; }
.nw-site .elementor .side-nav .elementor-icon-list-icon { display: none; }
.nw-site .elementor .side-nav .elementor-icon-list-item > a {
  display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px;
  text-decoration: none; color: var(--c-base); font-weight: 600; font-size: .97rem; width: 100%;
}
.nw-site .elementor .side-nav .elementor-icon-list-text { color: inherit; padding: 0; }
.nw-site .elementor .side-nav .elementor-icon-list-item > a::after {
  content: ""; flex: none; width: 1em; height: 1em; background: currentColor; opacity: .6;
  -webkit-mask: url(../icons/i-arrow.svg) center / contain no-repeat; mask: url(../icons/i-arrow.svg) center / contain no-repeat;
}
.nw-site .elementor .side-nav .elementor-icon-list-item > a:hover { background: #fff; }
.nw-site .elementor .side-nav .elementor-icon-list-item > a[aria-current] { background: var(--c-base); color: #fff; }

/* Contact card: icon-list widget */
.nw-site .elementor .contact-list .elementor-icon-list-items { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 14px; }
.nw-site .elementor .contact-list .elementor-icon-list-item { display: flex; gap: 14px; align-items: center; margin: 0; padding: 0; }
.nw-site .elementor .contact-list .elementor-icon-list-item > a { display: flex; gap: 14px; align-items: center; color: var(--c-on-dark); text-decoration: none; }
.nw-site .elementor .contact-list .elementor-icon-list-item > a:hover { color: #fff; text-decoration: underline; }
.nw-site .elementor .contact-list .elementor-icon-list-icon {
  width: 44px; height: 44px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: color-mix(in srgb, #fff 12%, transparent); color: var(--c-accent);
}
.nw-site .elementor .contact-list .elementor-icon-list-icon :is(svg, i) { width: 18px; height: 18px; font-size: 18px; fill: var(--c-accent); color: var(--c-accent); }
.nw-site .elementor .contact-list .elementor-icon-list-text { color: var(--c-on-dark); padding: 0; }

/* FAQ: nested-accordion widget styled as the prototype's details.qa */
.nw-site .elementor .faq-acc {
  --n-accordion-title-flex-direction: row; --n-accordion-title-justify-content: space-between;
  --n-accordion-title-flex-grow: 1; --n-accordion-item-title-space-between: 14px;
}
.nw-site .elementor .faq-acc .e-n-accordion { display: grid; gap: 14px; }
.nw-site .elementor .faq-acc .e-n-accordion-item-title-header { flex: 1; text-align: left; justify-content: flex-start; }
.nw-site .elementor .faq-acc .e-n-accordion-item {
  border-radius: var(--radius); background: var(--c-surface); border: 1.5px solid var(--c-line); overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}
.nw-site .elementor .faq.faq-alt .faq-acc .e-n-accordion-item { border-color: transparent; box-shadow: 0 6px 18px -14px color-mix(in srgb, var(--c-base-deep) 45%, transparent); }
.nw-site .elementor .faq-acc .e-n-accordion-item:hover { border-color: color-mix(in srgb, var(--c-highlight) 60%, white); }
.nw-site .elementor .faq-acc .e-n-accordion-item[open] { border-color: transparent; box-shadow: var(--shadow); }
.nw-site .elementor .faq-acc .e-n-accordion-item-title {
  list-style: none; cursor: pointer; padding: 22px 24px; display: flex; flex-direction: row; justify-content: space-between;
  align-items: center; gap: 18px; border: 0; background: transparent; margin: 0;
}
.nw-site .elementor .faq-acc .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.nw-site .elementor .faq-acc .e-n-accordion-item-title-text { font: 800 1.15rem/1.3 var(--font-display); color: var(--c-base); margin: 0; letter-spacing: normal; }
.nw-site .elementor .faq-acc .e-n-accordion-item-title-icon {
  width: 34px; height: 34px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: var(--c-highlight-soft); color: var(--c-base); transition: transform .35s var(--ease), background .25s;
}
.nw-site .elementor .faq-acc .e-n-accordion-item-title-icon :is(svg, i) { width: 14px; height: 14px; font-size: 14px; fill: currentColor; }
.nw-site .elementor .faq-acc .e-n-accordion-item-title-icon { order: 2; }   /* Elementor puts it first (order -1) */
.nw-site .elementor .faq-acc .e-n-accordion-item { margin: 0; }                 /* the grid gap spaces the items */
.nw-site .elementor .faq-acc .e-n-accordion-item-title-icon .e-opened { display: none; }
.nw-site .elementor .faq-acc .e-n-accordion-item-title-icon .e-closed { display: flex; }
.nw-site .elementor .faq-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon { transform: rotate(135deg); background: var(--c-accent); color: var(--c-on-accent); }
.nw-site .elementor .faq-acc .faq-ans { padding: 0 24px 22px; color: var(--c-muted); border: 0; }
.nw-site .elementor .faq-acc .faq-ans .elementor-widget-text-editor p { margin: 0; }   /* a theme rule adds 17px below the last p */
.nw-site .elementor .faq-acc .faq-ans .elementor-widget-text-editor p + p { margin-top: .8em; }

/* ============================================================================
   HEADER AND FOOTER ON NATIVE WIDGETS (2026-10-23)
   pages/_theme/build-templates.py: icon lists, logo image, Nav Menu widget with
   the WordPress menu "Newman Main" (tools/make-menus.php). These rules give the
   Nav Menu markup the V2.1 look: nav links, the Services mega menu (4 groups +
   CTA), the Service Areas dropdown and the mobile dropdown.
   ============================================================================ */

/* ---- Utility bar (icon lists) ---- */
.nw-site .elementor .utility .elementor-icon-list-items { display: flex; gap: 18px; margin: 0; padding: 0; }
.nw-site .elementor .utility .elementor-icon-list-item { margin: 0; padding: 0; display: inline-flex; align-items: center; }
.nw-site .elementor .utility .elementor-icon-list-item::after { content: none; }
.nw-site .elementor .utility .elementor-icon-list-item > a { display: inline-flex; align-items: center; color: #fff; text-decoration: none; }
.nw-site .elementor .utility .elementor-icon-list-text { color: #fff; font-size: .85rem; padding-left: .4rem; }
.nw-site .elementor .utility .elementor-icon-list-icon :is(svg, i) { width: 14px; height: 14px; fill: var(--c-accent); color: var(--c-accent); }

/* ---- Logo (image widget) ---- */
.nw-site .elementor :is(.logo, .foot-logo) { text-align: left; }
.nw-site .elementor .logo a { display: block; }
.nw-site .elementor .logo img { width: auto; max-width: none; }

/* ---- Nav Menu: top level ---- */
.nw-site .elementor .nw-nav { margin-left: auto; align-self: stretch; display: flex; }
@media (min-width: 1025px) { .nw-site .elementor .nw-nav .elementor-nav-menu--main { display: flex; } }
@media (max-width: 1024px) {
  /* relative only here: the stretched mobile dropdown measures from the widget. On desktop the
     mega menu must measure from the header's .wrap (logo to CTA), so the widget stays static. */
  .nw-site .elementor .nw-nav { align-self: center; position: relative; }
  .nw-site .elementor .nw-nav .elementor-nav-menu--main { display: none; }
}
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu { display: flex; gap: 20px; margin: 0; padding: 0; position: static; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li { display: flex; align-items: center; position: relative; }
/* Menu links fill the bar's height (as the prototype's nav.main does), so with the
   bigger logo (Shelby/DJ, 2026-11-03/04) the labels stay centred next to the logo
   and the CTA, and the dropdowns open at the bar's bottom edge. */
.nw-site .elementor .nw-nav > .elementor-widget-container,
.nw-site .elementor .nw-nav .elementor-nav-menu--main,
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu { align-self: stretch; height: 100%; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li { align-items: stretch; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item,
.nw-site .site-head.scrolled .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-item { padding-top: 0; padding-bottom: 0; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li.nw-mega { position: static; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main .elementor-item {
  display: inline-flex; align-items: center; gap: 3px; padding: 26px 0 23px; white-space: nowrap; font: 600 .96rem/1.65 var(--font-body);
  text-decoration: none; color: #fff; border-bottom: 3px solid transparent; transition: color .2s, border-color .2s, padding .3s;
}
.nw-site .site-head.scrolled .nw-nav .elementor-nav-menu--main .elementor-item { color: var(--c-base); padding: 22px 0 19px; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li:is(:hover, :focus-within) > .elementor-item { border-bottom-color: var(--c-accent); }
/* Items with a dropdown: no underline, the panel's orange top border already marks them (Erick: it showed twice) */
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li.menu-item-has-children:is(:hover, :focus-within) > .elementor-item { border-bottom-color: transparent; }
.nw-site .elementor .nw-nav .elementor-item .sub-arrow { display: inline-flex; padding: 0 0 0 3px; }
.nw-site .elementor .nw-nav .elementor-item .sub-arrow svg { width: 11px; height: 11px; fill: currentColor; transition: transform .25s var(--ease); }
.nw-site .elementor .nw-nav li:is(:hover, :focus-within) > .elementor-item .sub-arrow svg { transform: rotate(180deg); }

/* ---- Dropdowns (desktop): shown on hover/focus; positions forced over SmartMenus' inline styles ---- */
.nw-site .elementor .nw-nav .elementor-nav-menu--main .sub-menu {
  background: var(--c-surface); color: var(--c-ink); border-radius: 0 0 var(--radius) var(--radius);
  border-top: 4px solid var(--c-accent); box-shadow: var(--shadow-lg); z-index: 50;
}
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li > .sub-menu {
  display: none !important; position: absolute !important; top: 100% !important; margin: 0 !important; width: auto !important;
}
.nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu > li:is(:hover, :focus-within) > .sub-menu { display: grid !important; }
.nw-site .elementor .nw-nav li.nw-drop > .sub-menu { left: -18px !important; min-width: 220px !important; padding: 14px 24px; }
.nw-site .elementor .nw-nav li.nw-mega > .sub-menu {
  left: 0 !important; right: 0 !important; min-width: 0 !important; max-width: none !important;
  grid-template-columns: repeat(4, 1fr) 1.15fr; gap: 8px 28px; padding: 30px;
}
.nw-site .elementor .nw-nav .sub-menu li { display: block; }
.nw-site .elementor .nw-nav .sub-menu a.elementor-sub-item {
  display: block; padding: 7px 10px; margin-inline: -10px; border-radius: 8px; font: 400 .95rem/1.35 var(--font-body);
  color: var(--c-ink); background: transparent; text-decoration: none; border: 0; white-space: normal; transition: background .15s, transform .15s;
}
.nw-site .elementor .nw-nav .sub-menu a.elementor-sub-item:is(:hover, :focus, .elementor-item-active) { background: var(--c-highlight-soft); color: var(--c-base); transform: translateX(3px); }

/* Mega: group headings (not links on desktop) and their always-open lists */
.nw-site .elementor .nw-nav li.mega-group { display: grid; align-content: start; gap: 2px; }
.nw-site .elementor .nw-nav .elementor-nav-menu--main li.mega-group > a.elementor-sub-item {
  display: flex; align-items: center; gap: 8px; margin: 0 0 8px; padding: 0 0 10px; border-radius: 0; border-bottom: 1px solid var(--c-line);
  font: 800 1rem/1.2 var(--font-display); color: var(--c-base); pointer-events: none; transform: none; background: none;
}
.nw-site .elementor .nw-nav li.mega-group > a .sub-arrow { display: none; }
.nw-site .elementor .nw-nav li.mega-group > a::before {
  content: ""; flex: none; width: 18px; height: 18px; background: var(--c-highlight-2);
  -webkit-mask: var(--nw-ico) center / contain no-repeat; mask: var(--nw-ico) center / contain no-repeat;
}
.nw-site .elementor .nw-nav li.ic-snow > a { --nw-ico: url(../icons/i-snow.svg); }
.nw-site .elementor .nw-nav li.ic-flame > a { --nw-ico: url(../icons/i-flame.svg); }
.nw-site .elementor .nw-nav li.ic-air > a { --nw-ico: url(../icons/i-air.svg); }
.nw-site .elementor .nw-nav li.ic-plus > a { --nw-ico: url(../icons/i-plus.svg); }
.nw-site .elementor .nw-nav .elementor-nav-menu--main li.mega-group > .sub-menu {
  display: grid !important; position: static !important; width: auto !important; min-width: 0 !important; margin: 0 !important;
  padding: 0; border: 0; box-shadow: none; background: none; opacity: 1; visibility: visible; transform: none; gap: 2px;
}
/* Mega CTA card */
.nw-site .elementor .nw-nav .elementor-nav-menu--main li.mega-cta > a.elementor-sub-item {
  position: relative; overflow: hidden; display: grid; align-content: end; min-height: 200px; height: 100%; padding: 20px; margin: 0;
  border-radius: var(--radius); background: var(--c-base); color: var(--c-on-dark); font-size: .9rem; transform: none;
}
.nw-site .elementor .nw-nav .elementor-nav-menu--main li.mega-cta > a.elementor-sub-item:hover { background: var(--c-base-deep); color: var(--c-on-dark); }
.nw-site .elementor .nw-nav li.mega-cta > a strong { display: block; font: 800 1.15rem/1.2 var(--font-display); color: #fff; margin-bottom: 4px; }
.nw-site .elementor .nw-nav li.mega-cta > a::after {
  content: ""; position: absolute; width: 120px; height: 120px; right: -8px; top: -4px;
  background: url(../img/NewmanAirLogo_Bear.svg) center / contain no-repeat;
}

/* ---- Mobile toggle + dropdown (Nav Menu's own, at the tablet breakpoint) ---- */
.nw-site .elementor .nw-nav .elementor-menu-toggle { margin-left: auto; background: none; color: #fff; padding: 6px; font-size: 28px; }
.nw-site .elementor .nw-nav .elementor-menu-toggle :is(svg, i) { width: 28px; height: 28px; fill: currentColor; }
.nw-site .site-head:is(.scrolled, :has(.elementor-menu-toggle.elementor-active)) .nw-nav .elementor-menu-toggle { color: var(--c-base); }
.nw-site .site-head:has(.elementor-menu-toggle.elementor-active) .bar {
  background: color-mix(in srgb, var(--c-surface) 92%, transparent); backdrop-filter: blur(12px); box-shadow: 0 8px 30px -18px rgba(0,0,0,.35);
}
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown {
  background: var(--c-surface); border-top: 1px solid var(--c-line); max-height: calc(100vh - 80px); overflow: auto;
}
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown .elementor-nav-menu { padding: 6px 16px 22px; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown a {
  display: flex; justify-content: space-between; padding: 14px 0; font: 700 1rem/1.3 var(--font-body); color: var(--c-base);
  background: transparent; border-bottom: 1px solid var(--c-line); text-decoration: none;
}
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown a:is(:hover, :focus, .highlighted, .elementor-item-active) { background: transparent; color: var(--c-highlight-2); }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown .sub-menu { padding-left: 12px; background: transparent; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown .sub-menu a { font-weight: 500; padding: 10px 0; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown li.mega-group > a {
  font: 700 .75rem/1.2 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--c-highlight-2);
}
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown li.mega-cta { display: none; }
/* Services groups open inside the mobile menu (as the V2.1 drawer): labels, then their pages */
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown li.mega-group > .sub-menu { display: block !important; padding-left: 0; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown li.mega-group > a { pointer-events: none; border-bottom: 0; padding: 14px 0 4px; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown li.mega-group > a .sub-arrow { display: none; }
.nw-site .elementor .nw-nav nav.elementor-nav-menu--dropdown .sub-arrow svg { width: 12px; height: 12px; fill: currentColor; }
/* Between the tablet breakpoint and 1160px the full nav and the CTA do not fit (prototype hides the nav below 1160) */
@media (min-width: 1025px) and (max-width: 1160px) {
  .nw-site .elementor .site-head .head-cta { display: none; }
  .nw-site .elementor .nw-nav .elementor-nav-menu--main > .elementor-nav-menu { gap: 16px; }
}

/* ---- Footer (logo image, icon lists, legal line) ---- */
.nw-site .elementor footer.site .foot-logo { height: auto; margin-bottom: 18px; }
.nw-site .elementor footer.site .foot-logo img { height: 64px; width: auto; max-width: none; }
.nw-site .elementor footer.site .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.nw-site .elementor footer.site .elementor-icon-list-item { margin: 0; padding: 0; }
.nw-site .elementor footer.site .elementor-icon-list-item::after { content: none; }
.nw-site .elementor footer.site .elementor-icon-list-text { color: inherit; padding: 0; transition: color .2s; }
.nw-site .elementor footer.site .elementor-icon-list-item > a { color: color-mix(in srgb, #fff 74%, var(--c-base)); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.nw-site .elementor footer.site .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: var(--c-accent); }
.nw-site .elementor footer.site .foot-contact { margin-top: 16px; }
.nw-site .elementor footer.site .foot-contact .elementor-icon-list-items { gap: 10px; }
.nw-site .elementor footer.site .foot-contact .elementor-icon-list-item > a { color: #fff; font-weight: 600; }
.nw-site .elementor footer.site .foot-contact .elementor-icon-list-icon :is(svg, i) { width: 16px; height: 16px; fill: var(--c-accent); color: var(--c-accent); }
.nw-site .elementor footer.site .legal p { margin: 0; }
.nw-site .elementor footer.site .legal-links .elementor-icon-list-items { display: flex; gap: 18px; }

/* ---- Homepage pieces on native widgets (2026-10-23) ---- */
/* Card links: text widget; the arrow is a mask (text widgets lose inline SVG on edit) */
.nw-site .elementor .svc > .svc-link { flex: none; }
.nw-site .elementor .svc-link p { margin: 0; }
.nw-site .elementor .text-link.nw-arrow::after {
  content: ""; flex: none; width: 1.2em; height: 1.2em; background: currentColor; transition: transform .25s var(--ease);
  -webkit-mask: url(../icons/i-arrow.svg) center / contain no-repeat; mask: url(../icons/i-arrow.svg) center / contain no-repeat;
}
.nw-site .elementor .text-link.nw-arrow:hover::after { transform: translateX(4px); }
/* City list: icon-list widget (#cityList, hover linked to the map pins by name in newman-site.js) */
.nw-site .elementor .nw-cities .elementor-icon-list-items {
  list-style: none; padding: 0; margin: 24px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px;
}
.nw-site .elementor .nw-cities .elementor-icon-list-item {
  display: flex; align-items: center; gap: 8px; margin: 0; padding: 6px 8px; border-radius: 8px; font-weight: 600; color: #fff;
  cursor: default; transition: background .2s;
}
.nw-site .elementor .nw-cities .elementor-icon-list-item::after { content: none; }
.nw-site .elementor .nw-cities .elementor-icon-list-item:is(:hover, .on) { background: color-mix(in srgb, #fff 10%, transparent); }
.nw-site .elementor .nw-cities .elementor-icon-list-item > a { display: flex; align-items: center; gap: 8px; color: #fff; text-decoration: none; }
.nw-site .elementor .nw-cities .elementor-icon-list-icon :is(svg, i) { width: 16px; height: 16px; fill: var(--c-accent); color: var(--c-accent); }
.nw-site .elementor .nw-cities .elementor-icon-list-text { color: #fff; padding: 0; }
.nw-site .elementor .nw-cities a .elementor-icon-list-text { border-bottom: 1.5px dashed color-mix(in srgb, var(--c-accent) 70%, transparent); }

/* ---- Editing the header template itself: it is fixed and white-on-transparent on the site
   (it sits over the dark hero), so in its own editor canvas it gets the hero's dark ground. ---- */
body.single-elementor_library.nw-site:has(.site-head) { background: var(--c-base-deep); }
body.single-elementor_library.nw-site .site-head { position: relative; }

/* In the Elementor editor every widget is position: relative (for its handles), which made the
   mega menu measure from the nav widget instead of the header's .wrap. Desktop only. */
@media (min-width: 1025px) {
  body.elementor-editor-active.nw-site .elementor .nw-nav { position: static; }
}

/* Utility bar below 1000px (2026-10-28): email + phone + "24/7 live answering" (plus the left
   line from 641px) do not fit in one line and the 40px bar clips the last item. Below 1000px the
   bar keeps the phone and the live answering line; the email stays in the footer and on Contact. */
@media (max-width: 999px) {
  .nw-site .elementor .utility-right .elementor-icon-list-item:first-child { display: none; }
}
/* 641 to 749px: the left line ("Locally owned...") plus phone + live answering still wrap, so the
   left line hides there too, as it already does on phones (.hide-sm). */
@media (max-width: 749px) {
  .nw-site .elementor .utility .hide-sm { display: none; }
}
