/* ==========================================================================
   NAWRA — Native Elementor widget bridge (nwx-*)
   These classes are added to NATIVE Elementor widgets/containers (via the
   "CSS Classes" field) and style Elementor's own markup to the NAWRA design.
   So the blocks stay fully editable in Elementor, but look on-brand.
   ========================================================================== */

/* Layout wrapper (boxed content inside a full-bleed section container) */
.nwx-wrap { width:100%; max-width:1280px; margin-inline:auto; }
.nw .e-con, .nw .e-con-inner { --gap:0px; }

/* Section vertical rhythm between blocks */
.nwx-wrap > .elementor-widget, .nwx-wrap > .e-con { margin-bottom:0; }

/* ---- Eyebrow (Heading widget, tag span/p) ---- */
.nwx-eyebrow .elementor-heading-title { font-size:.75rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; margin:0 0 .9rem; }
/* React uses --orange (#F4BF81) for eyebrow-orange on every tone */
.nwx-eyebrow-orange .elementor-heading-title { color:var(--nw-orange); }
.nwx-eyebrow-blue .elementor-heading-title { color:#4aa6c4; }
.nw-tone-navy .nwx-eyebrow-blue .elementor-heading-title { color:var(--nw-lightblue); }

/* ---- Headings ---- */
.nwx-display .elementor-heading-title { font-family:"Manrope",sans-serif; font-size:clamp(3rem,7vw,5.5rem); letter-spacing:-.035em; line-height:1; font-weight:500; color:var(--nw-navy); }
.nw-tone-navy .nwx-display .elementor-heading-title { color:var(--nw-cream); }
.nwx-h1 .elementor-heading-title { font-family:"Manrope",sans-serif; font-size:clamp(2.5rem,5.5vw,4.5rem); letter-spacing:-.035em; line-height:1.05; font-weight:500; color:var(--nw-navy); }
.nw-tone-navy .nwx-h1 .elementor-heading-title { color:var(--nw-cream); }
.nwx-h2 .elementor-heading-title { font-family:"Manrope",sans-serif; font-size:clamp(2rem,3.6vw,2.75rem); letter-spacing:-.02em; line-height:1.08; font-weight:500; color:var(--nw-navy); margin:0; }
.nw-tone-navy .nwx-h2 .elementor-heading-title { color:var(--nw-cream); }
.nwx-h3 .elementor-heading-title { font-family:"Manrope",sans-serif; font-size:clamp(1.5rem,2.4vw,2rem); letter-spacing:-.02em; line-height:1.1; font-weight:500; color:var(--nw-navy); margin:0; }
.nw-tone-navy .nwx-h3 .elementor-heading-title { color:var(--nw-cream); }
.nwx-subkicker .elementor-heading-title { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--nw-orange-strong); font-weight:500; margin:.6rem 0 0; }

/* ---- Body / lead text (Text Editor widget) ---- */
.nwx-lead { font-size:1.125rem; line-height:1.7; color:var(--nw-graphite); max-width:42rem; }
.nw-tone-navy .nwx-lead { color:var(--nw-steel); }
.nwx-lead strong, .nw-tone-navy .nwx-lead strong { color:var(--nw-cream); font-weight:600; }
.nwx-body { color:var(--nw-graphite); line-height:1.65; }
.nw-tone-navy .nwx-body { color:var(--nw-steel); }
.nwx-body p { margin:0 0 .8rem; }
.nwx-note { font-size:.72rem; line-height:1.6; color:var(--nw-graphite); font-style:italic; }

/* ---- Buttons (Button widget → .elementor-button) ---- */
.nwx-btn .elementor-button { display:inline-flex; align-items:center; gap:.5rem; padding:.875rem 1.5rem; border-radius:9999px; font-weight:500; font-size:.95rem; letter-spacing:-.01em; border:1px solid transparent; transition:all .2s ease; box-shadow:none; }
.nwx-btn-primary .elementor-button { background:var(--nw-orange); color:#000; }
.nwx-btn-primary .elementor-button:hover { background:var(--nw-orange-strong); transform:translateY(-1px); }
.nwx-btn-outline .elementor-button { background:transparent; border-color:currentColor; color:inherit; }
.nwx-btn-outline .elementor-button:hover { background:currentColor; }
.nw-tone-navy .nwx-btn-outline .elementor-button:hover { color:var(--nw-navy); }
.nwx-btn-ghost .elementor-button { background:transparent; color:inherit; padding-left:.4rem; }
.nwx-btn-ghost .elementor-button:hover { text-decoration:underline; text-underline-offset:4px; }
.nwx-btnrow { flex-direction:row !important; flex-wrap:wrap; gap:12px; align-items:center; }

/* ---- Icon list bullets ---- */
.nwx-bullets .elementor-icon-list-items { display:flex; flex-direction:column; gap:.55rem; }
.nwx-bullets .elementor-icon-list-item { align-items:center; margin:0 !important; padding:0 !important; }
.nwx-bullets .elementor-icon-list-icon { display:none !important; }
.nwx-bullets .elementor-icon-list-text { position:relative; padding-left:1.4rem; color:var(--nw-graphite); font-size:.95rem; }
.nw-tone-navy .nwx-bullets .elementor-icon-list-text { color:var(--nw-steel); }
.nwx-bullets .elementor-icon-list-text::before { content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--nw-orange); }

/* ---- Checklist (with check marks) ---- */
.nwx-check .elementor-icon-list-item { align-items:flex-start; margin:0 0 .5rem !important; }
.nwx-check .elementor-icon-list-icon { display:none !important; }
.nwx-check .elementor-icon-list-text { position:relative; padding-left:1.5rem; color:var(--nw-graphite); }
.nw-tone-navy .nwx-check .elementor-icon-list-text { color:var(--nw-steel); }
.nwx-check .elementor-icon-list-text::before { content:"✓"; position:absolute; left:0; color:#3d9a5c; font-weight:700; }

/* ---- Stat bar ---- */
.nwx-statnum .elementor-heading-title { font-size:clamp(2.2rem,4vw,3rem); font-weight:500; letter-spacing:-.035em; line-height:1; color:var(--nw-navy); }
.nw-tone-navy .nwx-statnum .elementor-heading-title { color:var(--nw-cream); }
.nwx-statlabel { font-size:.9rem; color:var(--nw-graphite); max-width:20ch; line-height:1.4; }
.nw-tone-navy .nwx-statlabel { color:var(--nw-steel); }

/* ---- Grids (Container with a grid class; CSS drives the layout) ---- */
.nwx-grid { display:grid !important; gap:1.5rem; }
.nwx-grid-2 { grid-template-columns:repeat(2,1fr); }
.nwx-grid-3 { grid-template-columns:repeat(3,1fr); }
.nwx-grid-4 { grid-template-columns:repeat(4,1fr); }
.nwx-row2 { display:grid !important; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.nwx-hero-row { grid-template-columns:1.15fr 1fr; }
@media (max-width:1024px){
  .nwx-grid-3,.nwx-grid-4 { grid-template-columns:repeat(2,1fr); }
  .nwx-row2 { grid-template-columns:1fr; }
}
@media (max-width:640px){
  .nwx-grid-2,.nwx-grid-3,.nwx-grid-4 { grid-template-columns:1fr; }
}

/* ---- Card (a Container styled as a card) ---- */
.nwx-card { background:#fff !important; border:1px solid var(--nw-border); border-radius:1rem; padding:2rem !important;
  box-shadow:0 1px 2px rgba(9,30,39,.04),0 8px 24px -12px rgba(9,30,39,.08); height:100%;
  display:flex; flex-direction:column; gap:.85rem; text-decoration:none; transition:transform .2s ease; }
.nwx-card2 { background:#fff !important; border:1px solid var(--nw-border); border-radius:1rem; padding:0rem !important;
  box-shadow:0 1px 2px rgba(9,30,39,.04),0 8px 24px -12px rgba(9,30,39,.08); height:100%;
  display:flex; flex-direction:column; gap:.85rem; text-decoration:none; transition:transform .2s ease; }
.nwx-card2.nwx-link:hover { transform:translateY(-4px); }


.nwx-card.nwx-link:hover { transform:translateY(-4px); }
.nw-tone-navy .nwx-card { background:rgba(255,255,255,.05) !important; border-color:rgba(255,255,255,.14); }
.nwx-card--featured { border:2px solid var(--nw-orange); border-radius:1.25rem; padding:2.5rem !important; box-shadow:0 8px 32px -16px rgba(244,191,129,.4); }
.nwx-card-top { display:flex !important; flex-direction:row !important; align-items:center; justify-content:space-between; }
.nwx-tag .elementor-heading-title { font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--nw-orange-strong); }
.nwx-tag-blue .elementor-heading-title { color:#3f97b5; }
.nwx-tag-navy .elementor-heading-title { color:var(--nw-navy); }
.nwx-num .elementor-heading-title { font-size:.85rem; letter-spacing:.18em; color:var(--nw-graphite); }
.nwx-cardmore .elementor-button { padding:0; background:transparent; color:var(--nw-orange-strong); font-weight:600; margin-top:auto; }
.nwx-cardmore .elementor-button:hover { color:var(--nw-orange-strong); text-decoration:underline; }
.nwx-icon .elementor-heading-title { font-size:1.7rem; line-height:1; color:var(--nw-orange-strong); }

/* Push card link/button to the bottom for aligned rows */
.nwx-card > .elementor-widget-button:last-child { margin-top:auto; }

/* ---- Trust strip ---- */
.nwx-trust { display:flex !important; flex-direction:row !important; flex-wrap:wrap; align-items:center; justify-content:center; gap:.75rem 2rem; }
.nwx-trust .elementor-heading-title { font-size:.9rem; font-weight:600; color:var(--nw-graphite); }

/* ---- Image placeholder ---- */
.nwx-imgph { background:linear-gradient(135deg,var(--nw-cloud),var(--nw-lightblue)); border-radius:1rem; min-height:340px; display:flex; align-items:center; justify-content:center; }
.nwx-imgph .elementor-heading-title { color:var(--nw-graphite); font-size:.85rem; font-weight:400; }

/* ---- Testimonial (as card) ---- */
.nwx-quote blockquote, .nwx-quote .elementor-heading-title { font-size:1.15rem; line-height:1.4; color:var(--nw-navy); font-weight:500; }
.nwx-quotecite .elementor-heading-title { font-size:.9rem; color:var(--nw-graphite); font-weight:400; margin-top:auto; }
/* On navy sections the quote/cite must be light (React uses --cream / cream-70%) */
.nw-tone-navy .nwx-quote blockquote, .nw-tone-navy .nwx-quote .elementor-heading-title { color:var(--nw-cream) !important; }
.nw-tone-navy .nwx-quotecite .elementor-heading-title { color:var(--nw-steel) !important; }

/* ---- CTA band centered (matches React CTABand: text-2xl, not a big h2) ---- */
.nwx-cta { display:flex !important; flex-direction:column !important; align-items:center !important; text-align:center; max-width:48rem; margin-inline:auto; gap:2rem !important; }
.nwx-cta .elementor-widget-heading, .nwx-cta .elementor-widget { width:100%; }
.nwx-cta .elementor-heading-title { color:var(--nw-cream); font-size:clamp(1.25rem,2.4vw,1.5rem) !important; font-weight:500 !important; letter-spacing:-.02em !important; line-height:1.35 !important; margin:0; text-align:center; }
.nwx-cta .nwx-btnrow { justify-content:center; width:100%; }

/* ---- Accordion (native Elementor Accordion widget) ---- */
.nwx-faq .elementor-accordion .elementor-accordion-item { border:0; border-bottom:1px solid var(--nw-border); }
.nw-tone-navy .nwx-faq .elementor-accordion .elementor-accordion-item { border-bottom-color:rgba(255,255,255,.12); }
/* Question title — always navy (override Elementor's green/blue active+inactive states) */
.nwx-faq .elementor-tab-title { padding:1.4rem 0; font-size:1.15rem; letter-spacing:-.02em; background:transparent; border:0; }
.nwx-faq .elementor-tab-title,
.nwx-faq .elementor-tab-title a,
.nwx-faq .elementor-tab-title .elementor-accordion-title,
.nwx-faq .elementor-tab-title.elementor-active,
.nwx-faq .elementor-tab-title.elementor-active a,
.nwx-faq .elementor-tab-title.elementor-active .elementor-accordion-title { color:var(--nw-navy) !important; font-weight:500 !important; }
.nw-tone-navy .nwx-faq .elementor-tab-title,
.nw-tone-navy .nwx-faq .elementor-tab-title a,
.nw-tone-navy .nwx-faq .elementor-tab-title.elementor-active,
.nw-tone-navy .nwx-faq .elementor-tab-title.elementor-active a { color:var(--nw-cream) !important; }
/* Icon — always orange (both states; it just rotates) */
.nwx-faq .elementor-accordion-icon,
.nwx-faq .elementor-accordion-icon i,
.nwx-faq .elementor-accordion-icon svg,
.nwx-faq .elementor-active .elementor-accordion-icon,
.nwx-faq .elementor-active .elementor-accordion-icon i,
.nwx-faq .elementor-active .elementor-accordion-icon svg { color:var(--nw-orange-strong) !important; fill:var(--nw-orange-strong) !important; }
.nwx-faq .elementor-tab-content { padding:0 3rem 1.4rem 0; color:var(--nw-graphite); line-height:1.7; border:0; background:transparent; }
.nw-tone-navy .nwx-faq .elementor-tab-content { color:var(--nw-steel); }

/* Elementor default widget margins → tighten a touch inside cards */
.nwx-card .elementor-widget:not(:last-child) { margin-bottom:0; }

/* ---- Spacing / flex helpers (Elementor sets widget gap to 0) ---- */
.nw .nwx-wrap { display:flex !important; flex-direction:column; gap:2rem !important; }
.nw .nwx-col { display:flex !important; flex-direction:column; gap:1.15rem !important; align-items:flex-start; }
.nw .nwx-hb { display:flex !important; flex-direction:column; gap:.55rem !important; max-width:44rem; }
.nw .nwx-stat { display:flex !important; flex-direction:column; gap:.5rem !important; }
.nw .nwx-grid { gap:1.5rem !important; }
.nw .nwx-row2 { gap:3rem !important; }
.nwx-btnrow.e-con { gap:12px !important; }
.nwx-card-top.e-con { gap:8px !important; }
/* Buttons shouldn't stretch full width in a flex column */
.nwx-col .elementor-widget-button, .nwx-card .elementor-widget-button { width:auto; }
.nwx-btnrow .elementor-widget-button { width:auto; }

/* ==========================================================================
   Elementor PRO Theme Builder — header / footer (native Nav Menu widgets)
   ========================================================================== */
.nwx-pro-header { background:#fff !important; border-bottom:1px solid var(--nw-border); padding:12px 24px !important; }
.nwx-pro-headbar { display:flex !important; flex-direction:row !important; align-items:center; justify-content:space-between; gap:1.25rem; max-width:1280px; margin-inline:auto; width:100%; }
/* Logo: render at natural aspect ratio (don't let container width squeeze it) */
.nwx-pro-headbar > .e-con:first-child { flex:0 0 auto !important; width:auto !important; }
.nwx-pro-header .elementor-widget-image { text-align:left; max-width:none !important; }
.nwx-pro-header .elementor-widget-image img { height:40px !important; width:auto !important; max-width:none !important; object-fit:contain !important; display:block; }
/* main nav */
.nwx-pro-nav .elementor-nav-menu { gap:1.6rem; }
.nwx-pro-nav .elementor-nav-menu > li > a.elementor-item { color:var(--nw-navy) !important; font-weight:500; font-size:.875rem; letter-spacing:-.01em; padding:6px 0 !important; fill:var(--nw-navy); }
.nwx-pro-nav .elementor-item:hover, .nwx-pro-nav .elementor-item.elementor-item-active,
.nwx-pro-nav .elementor-item.highlighted { color:var(--nw-orange-strong) !important; background:transparent !important; }
.nwx-pro-nav .elementor-nav-menu--dropdown { border-radius:.85rem; box-shadow:0 12px 30px -14px rgba(9,30,39,.25); border:1px solid var(--nw-border); padding:.4rem; }
.nwx-pro-nav .elementor-nav-menu--dropdown a.elementor-item { color:var(--nw-navy) !important; border-radius:.5rem; }
.nwx-pro-nav .elementor-nav-menu--dropdown a.elementor-item:hover { background:var(--nw-cloud) !important; color:var(--nw-navy) !important; }
.nwx-pro-header .elementor-menu-toggle { color:var(--nw-navy); }

/* footer */
.nwx-pro-footer { background:var(--nw-navy) !important; padding:64px 24px 32px !important; }
.nwx-pro-footgrid { display:grid !important; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; max-width:1280px; margin-inline:auto; width:100%; }
.nwx-pro-footer .elementor-widget-heading .elementor-heading-title { color:var(--nw-orange) !important; font-size:.8rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; margin:0 0 1rem; }
.nwx-pro-footer .elementor-widget-image { text-align:left !important; }
.nwx-pro-footer .elementor-widget-image .elementor-widget-container { text-align:left !important; }
.nwx-pro-footer .elementor-widget-image img { height:52px !important; width:auto !important; max-width:none !important; margin-bottom:1rem; margin-left:0 !important; margin-right:auto !important; display:block; }
.nwx-pro-faddr, .nwx-pro-faddr p { color:var(--nw-steel) !important; line-height:1.6; font-size:.95rem; }
.nwx-pro-faddr a { color:var(--nw-steel) !important; }
.nwx-pro-fnav .elementor-nav-menu > li > a.elementor-item { color:var(--nw-steel) !important; padding:.28rem 0 !important; font-size:.95rem; }
.nwx-pro-fnav .elementor-item:hover { color:var(--nw-cream) !important; background:transparent !important; }
.nwx-pro-fbottom, .nwx-pro-fbottom p { border-top:1px solid rgba(255,255,255,.12); margin:2.5rem auto 0; padding-top:1.5rem; max-width:1280px; color:var(--nw-space) !important; font-size:.72rem; line-height:1.6; }
@media (max-width:900px){ .nwx-pro-footgrid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .nwx-pro-footgrid { grid-template-columns:1fr; } }

/* Pro header refinements */
.nwx-pro-header { position:sticky; top:0; z-index:999; }
.nwx-pro-headbar > .e-con { display:flex; align-items:center; }
.nwx-pro-headbar > .e-con:nth-child(2) { flex:1 1 auto; }
.nwx-pro-nav .elementor-nav-menu { flex-wrap:nowrap !important; }
.nwx-pro-nav .elementor-nav-menu > li > a.elementor-item { white-space:nowrap; }
@media (max-width:1024px){ .nwx-pro-headbar > .e-con:nth-child(2){ flex:0 0 auto; } }

/* Kill the stacked default padding on nested header containers → compact 64px bar */
.nwx-pro-header { padding-top:10px !important; padding-bottom:10px !important; }
.nwx-pro-header > .e-con-inner,
.nwx-pro-headbar,
.nwx-pro-headbar > .e-con,
.nwx-pro-headbar > .e-con > .e-con-inner {
  padding-top:0 !important; padding-bottom:0 !important; min-height:0 !important; row-gap:0 !important;
}
.nwx-pro-headbar { align-items:center !important; }
.nwx-pro-headbar > .e-con { align-self:center; }
/* Elementor's default 20px widget margin was inflating the button row → zero it */
.nwx-pro-header .elementor-widget { margin-top:0 !important; margin-bottom:0 !important; }

/* ============ Native Pro Form widget → NAWRA form design ============ */
/* Field spacing */
.nwx-form .elementor-form .elementor-form-fields-wrapper { gap:.6rem; }
.nwx-form .elementor-field-group { margin-bottom:0; }
/* Visually hide labels (kept in DOM for a11y) — placeholders carry the intent */
.nwx-form .elementor-field-group > .elementor-field-label { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Inputs / textareas */
.nwx-form .elementor-field-group .elementor-field.elementor-size-md,
.nwx-form input[type=text], .nwx-form input[type=email], .nwx-form input[type=tel],
.nwx-form input[type=number], .nwx-form textarea, .nwx-form select {
	width:100%; padding:.72rem 1rem; border-radius:.6rem; font:inherit; font-size:.95rem;
	background:rgba(255,255,255,.9); border:1px solid var(--nw-border); color:var(--nw-navy); box-sizing:border-box;
}
.nwx-form textarea { min-height:96px; resize:vertical; }
.nwx-form input::placeholder, .nwx-form textarea::placeholder { color:var(--nw-space); }
/* On dark (navy) surfaces — must outrank the .elementor-size-md base selector */
.nw-tone-navy .nwx-form .elementor-field-group .elementor-field.elementor-size-md,
.nw-tone-navy .nwx-form input[type=text], .nw-tone-navy .nwx-form input[type=email],
.nw-tone-navy .nwx-form input[type=tel], .nw-tone-navy .nwx-form textarea, .nw-tone-navy .nwx-form select {
	background:rgba(255,255,255,.08) !important; border-color:rgba(255,255,255,.2) !important; color:var(--nw-cream) !important;
}
.nw-tone-navy .nwx-form input::placeholder, .nw-tone-navy .nwx-form textarea::placeholder { color:rgba(250,245,225,.55); }
/* Submit button — orange bg, black text, pill */
.nwx-form .elementor-button, .nwx-form button[type=submit] {
	background:var(--nw-orange) !important; color:#000 !important; border:0 !important; border-radius:9999px !important;
	padding:.85rem 1.8rem !important; font-weight:600 !important; font-size:.95rem !important; margin-top:.5rem; cursor:pointer;
	transition:background .15s;
}
.nwx-form .elementor-button:hover, .nwx-form button[type=submit]:hover { background:var(--nw-orange-strong) !important; }
.nwx-form .elementor-button .elementor-button-content-wrapper { justify-content:center; }
.nwx-form .elementor-button .elementor-button-text { color:#000 !important; }
/* Radio → pills */
.nwx-form .elementor-field-subgroup { display:flex; flex-wrap:wrap; gap:.5rem; }
.nwx-form .elementor-field-subgroup .elementor-field-option { position:relative; margin:0; }
.nwx-form .elementor-field-subgroup input[type=radio], .nwx-form .elementor-field-subgroup input[type=checkbox] { position:absolute; opacity:0; width:0; height:0; }
.nwx-form .elementor-field-subgroup .elementor-field-option label {
	display:inline-flex; align-items:center; border:1px solid var(--nw-border); background:#fff; padding:.5rem 1.05rem;
	border-radius:9999px; font-size:.88rem; cursor:pointer; transition:.15s; color:var(--nw-navy); margin:0;
}
.nwx-form .elementor-field-subgroup .elementor-field-option label:hover { border-color:var(--nw-orange-strong); }
.nwx-form .elementor-field-subgroup input:checked + label { border-color:var(--nw-navy); background:var(--nw-navy); color:#fff; }
.nw-tone-navy .nwx-form .elementor-field-subgroup input:checked + label { background:var(--nw-orange); color:#000; border-color:var(--nw-orange); }
/* Card-wrapped form (eyebrow + headline + subline + form) */
.nwx-form-card { padding:2rem !important; display:flex !important; flex-direction:column; gap:.35rem; }
.nwx-form-card .nwx-h3 .elementor-heading-title { color:var(--nw-cream); margin:.15rem 0 .1rem; }
.nw-tone-cream .nwx-form-card .nwx-h3 .elementor-heading-title,
.nw-tone-white .nwx-form-card .nwx-h3 .elementor-heading-title,
.nw-tone-cloud .nwx-form-card .nwx-h3 .elementor-heading-title { color:var(--nw-navy); }
.nwx-form-sub, .nwx-form-sub p { font-size:.9rem; color:var(--nw-steel); margin:0 0 .6rem; line-height:1.55; }
.nw-tone-cream .nwx-form-sub p, .nw-tone-white .nwx-form-sub p, .nw-tone-cloud .nwx-form-sub p { color:var(--nw-graphite); }
.nwx-form-card .nwx-form { margin-top:.25rem; }

/* Messages */
.nwx-form .elementor-message { font-size:.85rem; margin-top:.5rem; }
.nwx-form .elementor-message.elementor-message-success { color:#3fae6b; }
.nwx-form .elementor-field-group .elementor-field-label + .elementor-field-subgroup { margin-top:.25rem; }

/* ==========================================================================
   Native section builders — additional widget classes (rollout)
   ========================================================================== */
/* Prose column (legal/text single-column) */
.nw .nwx-prose { max-width:52rem; gap:1rem !important; }
.nwx-prose .nwx-h3 .elementor-heading-title { margin-top:1rem; }

/* Hero single-column (no form) */
.nw .nwx-hero-single { max-width:56rem; }

/* Hero stat cards */
.nwx-statcards { gap:1rem !important; margin-top:.5rem; }
.nwx-statcard { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:.85rem; padding:1rem !important; gap:.25rem !important; }
.nw-tone-cream .nwx-statcard, .nw-tone-white .nwx-statcard, .nw-tone-cloud .nwx-statcard { background:#fff; border-color:var(--nw-border); }
.nwx-statcard-n .elementor-heading-title { font-size:1.5rem; font-weight:600; letter-spacing:-.03em; color:var(--nw-cream); line-height:1; }
.nw-tone-cream .nwx-statcard-n .elementor-heading-title, .nw-tone-white .nwx-statcard-n .elementor-heading-title, .nw-tone-cloud .nwx-statcard-n .elementor-heading-title { color:var(--nw-navy); }
.nwx-statcard-l .elementor-heading-title { font-size:.78rem; color:var(--nw-steel); line-height:1.35; font-weight:400; margin-top:.25rem; }
.nw-tone-cream .nwx-statcard-l .elementor-heading-title, .nw-tone-white .nwx-statcard-l .elementor-heading-title, .nw-tone-cloud .nwx-statcard-l .elementor-heading-title { color:var(--nw-graphite); }

/* Badge / pills */
.nwx-badge .elementor-heading-title { display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; background:var(--nw-orange); color:var(--nw-navy); padding:.375rem .875rem; border-radius:9999px; }
.nwx-badge-blue .elementor-heading-title { background:var(--nw-lightblue); color:var(--nw-navy); }
.nwx-pills { display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:.6rem; }
.nwx-pill .elementor-heading-title { display:inline-block; border:1px solid var(--nw-border); background:#fff; color:var(--nw-navy); padding:.5rem 1rem; border-radius:9999px; font-size:.875rem; font-weight:400; }
.nw-tone-navy .nwx-pill .elementor-heading-title { background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:var(--nw-cream); }

/* Card price chip inside title */
.nwx-cardprice { color:var(--nw-orange-strong); font-size:1rem; font-weight:500; }

/* Cross (✗) list for compare */
.nwx-cross .elementor-icon-list-item { align-items:flex-start; margin:0 0 .5rem !important; }
.nwx-cross .elementor-icon-list-icon { display:none !important; }
.nwx-cross .elementor-icon-list-text { position:relative; padding-left:1.5rem; color:var(--nw-graphite); }
.nw-tone-navy .nwx-cross .elementor-icon-list-text { color:var(--nw-steel); }
.nwx-cross .elementor-icon-list-text::before { content:"\2715"; position:absolute; left:0; color:#c2685a; font-weight:700; }

/* Big number (feature list / side card) */
.nwx-num-lg .elementor-heading-title { font-size:1.1rem; font-weight:700; letter-spacing:.1em; color:var(--nw-orange-strong); }

/* Pricing */
.nwx-price .elementor-text-editor { display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem; }
.nwx-price-n { font-size:2rem; font-weight:600; letter-spacing:-.03em; color:var(--nw-navy); }
.nw-tone-navy .nwx-price-n { color:var(--nw-cream); }
.nwx-price-strike { text-decoration:line-through; color:var(--nw-graphite); font-size:1.1rem; }
.nwx-price-per { color:var(--nw-graphite); font-size:.9rem; }
.nw-tone-navy .nwx-price-per { color:var(--nw-steel); }

/* Highlight / pullquote */
.nwx-highlight .elementor-text-editor { background:rgba(244,191,129,.16); border-radius:.6rem; padding:1.25rem 1.5rem; font-size:1.2rem; font-weight:600; color:var(--nw-navy); }
.nwx-pullquote .elementor-text-editor { border-left:3px solid var(--nw-orange); padding-left:1.25rem; font-size:1.3rem; font-style:italic; color:var(--nw-navy); line-height:1.5; }
.nw-tone-navy .nwx-pullquote .elementor-text-editor { color:var(--nw-cream); }
.nwx-display-sm .elementor-heading-title { font-size:clamp(2rem,5vw,3.5rem); }

/* Side card items */
.nwx-sidecard-item { gap:.25rem !important; margin-top:.5rem; }
.nwx-sidecard-t .elementor-heading-title { font-size:1rem; font-weight:600; color:var(--nw-navy); }
.nw-tone-navy .nwx-sidecard-t .elementor-heading-title { color:var(--nw-cream); }

/* Trust strip items */
.nwx-trust-item .elementor-heading-title { font-size:.9rem; font-weight:600; color:var(--nw-graphite); }

/* Image placeholder label */
.nwx-imgph-label .elementor-heading-title { color:var(--nw-graphite); font-size:.85rem; font-weight:400; }
.nwx-quote-media { min-height:150px; margin-bottom:1rem; }

/* Centered CTA button row */
.nwx-btnrow-center { justify-content:center; }

/* Native table (Container grid) */
.nwx-table { border:1px solid var(--nw-border); border-radius:1rem; overflow:hidden; background:#fff; gap:0 !important; }
.nw-tone-navy .nwx-table { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.14); }
.nwx-trow { display:grid !important; gap:0 !important; border-bottom:1px solid var(--nw-border); }
.nw-tone-navy .nwx-trow { border-color:rgba(255,255,255,.1); }
.nwx-trow:last-child { border-bottom:0; }
.nwx-cols-2 .nwx-trow { grid-template-columns:1fr 1fr; }
.nwx-cols-3 .nwx-trow { grid-template-columns:1.4fr 1fr 1fr; }
.nwx-cols-4 .nwx-trow { grid-template-columns:1.6fr 1fr 1fr 1fr; }
.nwx-trow-head { background:var(--nw-navy); }
.nwx-trow-head .nwx-th .elementor-heading-title { color:var(--nw-cream); font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.nwx-th, .nwx-td { padding:1rem 1.25rem !important; }
.nwx-td .elementor-text-editor { color:var(--nw-graphite); font-size:.95rem; line-height:1.5; }
.nw-tone-navy .nwx-td .elementor-text-editor { color:var(--nw-steel); }
.nwx-td-accent .elementor-text-editor { color:var(--nw-orange-strong); font-weight:600; }
@media (max-width:640px){
  /* keep native table columns on mobile (short values), just tighten type/padding so headers stay aligned */
  .nwx-th, .nwx-td { padding:.6rem .55rem !important; }
  .nwx-th .elementor-heading-title { font-size:.6rem !important; letter-spacing:.04em; }
  .nwx-td .elementor-text-editor { font-size:.8rem; }
  .nwx-cols-4 .nwx-trow { grid-template-columns:1.5fr 1fr 1fr 1fr; }
}

/* Google Maps + map row */
.nwx-map-row { grid-template-columns:1.1fr .9fr; align-items:stretch; }
/* row2 variants defined after the base media query must also stack on mobile */
@media (max-width:1024px){ .nwx-contact-row, .nwx-map-row { grid-template-columns:1fr !important; } }
.nwx-map-embed iframe, .nwx-map-embed { min-height:420px; border-radius:1rem; overflow:hidden; }
.nwx-contact-row { grid-template-columns:1.1fr .9fr; align-items:start; }

/* ==========================================================================
   Navy-tone correctness — internals that were dark-on-dark on navy sections
   ========================================================================== */
.nw-tone-navy .nwx-num .elementor-heading-title { color:var(--nw-steel); }
.nw-tone-navy .nwx-tag .elementor-heading-title { color:var(--nw-orange); }
.nw-tone-navy .nwx-tag-blue .elementor-heading-title { color:var(--nw-lightblue); }
.nw-tone-navy .nwx-icon .elementor-heading-title { color:var(--nw-orange); }
.nw-tone-navy .nwx-cardprice { color:var(--nw-orange); }
.nw-tone-navy .nwx-highlight .elementor-text-editor { color:var(--nw-cream); background:rgba(244,191,129,.14); }
.nw-tone-navy .nwx-note { color:var(--nw-steel); }
.nw-tone-navy .nwx-subkicker .elementor-heading-title { color:var(--nw-orange); }
.nw-tone-navy .nwx-sidecard-t .elementor-heading-title { color:var(--nw-cream); }
.nw-tone-navy .nwx-badge .elementor-heading-title { background:var(--nw-orange); color:var(--nw-navy); }
/* Native table header row already navy; on a navy section give it a lighter fill so it reads */
.nw-tone-navy .nwx-trow-head { background:rgba(255,255,255,.08); }
.nw-tone-navy .nwx-trow-head .nwx-th .elementor-heading-title { color:var(--nw-cream); }

/* ==========================================================================
   Cinematic video hero (pausestudio-style) + moved lead form + founders video
   ========================================================================== */
.nwx-video-hero { min-height:88vh !important; display:flex !important; flex-direction:column !important;
  align-items:center !important; justify-content:center !important; text-align:center; position:relative;
  padding:96px 24px !important; overflow:hidden; }
/* background video fills the section (override Elementor's JS inline sizing) */
.nwx-video-hero .elementor-background-video-container { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; overflow:hidden; }
.nwx-video-hero .elementor-background-video-container video,
.nwx-video-hero .elementor-background-video-embed video,
.nwx-video-hero video.elementor-background-video-hosted {
  position:absolute !important; top:0 !important; left:0 !important; width:100% !important; height:100% !important;
  min-width:100% !important; min-height:100% !important; max-width:none !important; object-fit:cover !important; transform:none !important; }
.nwx-video-hero > .elementor-background-overlay { z-index:1; inset:0; }
.nwx-vh-inner { position:relative; z-index:2; max-width:52rem; display:flex !important; flex-direction:column;
  align-items:center; gap:1.25rem !important; }
.nwx-vh-inner .nwx-eyebrow .elementor-heading-title { color:var(--nw-lightblue); }
.nwx-vh-inner .nwx-display .elementor-heading-title { color:var(--nw-cream); text-shadow:0 2px 24px rgba(0,0,0,.35); }
.nwx-vh-inner .nwx-lead { color:rgba(250,245,225,.9); max-width:40rem; font-size:1.15rem; }
.nwx-vh-inner .nwx-btnrow { justify-content:center; margin-top:.75rem; }
.nwx-video-hero .nwx-btn-ghost .elementor-button { color:var(--nw-cream); }
@media (max-width:768px){ .nwx-video-hero { min-height:78vh !important; padding:72px 20px !important; } }

/* Moved lead-capture section — centered card */
.nwx-lead-sec .nwx-wrap { align-items:center; }
.nwx-lead-sec .nwx-hb { text-align:center; align-items:center; max-width:46rem; margin-inline:auto; }
.nwx-lead-wrap { max-width:560px; width:100%; margin-inline:auto; }

/* Founders story video (About) */
.nwx-founder-video-wrap { width:100%; }
.nwx-founder-video .elementor-wrapper, .nwx-founder-video video,
.nwx-founder-video .elementor-custom-embed-image-overlay { border-radius:1rem; overflow:hidden; }
.nwx-founder-video .elementor-custom-embed-image-overlay { min-height:320px; background-size:cover; background-position:center; }
.nwx-video-ph { position:relative; }
.nwx-video-ph .nwx-imgph-label { font-size:1rem; }

/* Real photos (replace gray placeholders) */
.nwx-photo { border-radius:1rem; overflow:hidden; }
.nwx-photo-img img, .nwx-photo img { width:100%; height:100%; object-fit:cover; border-radius:1rem; display:block; }

/* Photo gallery items (real images) — uniform tiles */
.nwx-gal-item { aspect-ratio:4/3; border-radius:1rem; overflow:hidden; }
.nwx-gal-item img { width:100%; height:100%; object-fit:cover; display:block; }
/* Text-section photo keeps a pleasing ratio */
.nwx-photo { border-radius:1rem; overflow:hidden; }
.nwx-photo img { width:100%; height:auto; display:block; border-radius:1rem; }
.nwx-row2 .nwx-photo { align-self:stretch; }
.nwx-row2 .nwx-photo img { height:100%; object-fit:cover; }

/* ==========================================================================
   Phase 1 — image-forward presentation (cards / split hero / full-width band)
   ========================================================================== */
/* Photo flush at the top of a card (cancels the card's 2rem padding) */
.nwx-card-media { margin:-2rem -2rem 1.1rem !important; border-radius:1rem 1rem 0 0; overflow:hidden; aspect-ratio:16/10; }
.nwx-card--featured .nwx-card-media { margin:-2.5rem -2.5rem 1.2rem !important; border-radius:1.25rem 1.25rem 0 0; }
.nwx-card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.nwx-link:hover .nwx-card-media img, .nwx-card:hover .nwx-card-media img { transform:scale(1.04); }

/* Split hero media (photo beside the headline) */
.nwx-hero-media { align-self:stretch; border-radius:1.25rem; overflow:hidden; min-height:340px; }
.nwx-hero-media img { width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:1024px){ .nwx-hero-media { min-height:260px; } }

/* Full-width image band */
.nwx-band { min-height:clamp(300px,38vh,460px); display:flex !important; align-items:center;
  padding:clamp(2.5rem,6vw,5rem) 24px !important; overflow:hidden; position:relative; }
.nwx-band > .elementor-background-overlay { inset:0; z-index:1; }
.nwx-band-inner { position:relative; z-index:2; max-width:1280px; margin-inline:auto; width:100%;
  display:flex !important; flex-direction:column; gap:.6rem; }
.nwx-band-inner .nwx-h2 .elementor-heading-title { color:var(--nw-cream); max-width:20ch; text-shadow:0 2px 18px rgba(0,0,0,.35); }

/* 2-col galleries (e.g. Results data visuals) use wide 16:9 tiles */
.nwx-grid-2 .nwx-gal-item { aspect-ratio:16/9; }
