/* ── neighborly-base-reset ── */
/*! Hello Elementor 3.5.1 reset.css — copied verbatim (GPL-3.0) so existing page styles keep the same base. */
html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}[tabindex]:not([tabindex="-1"]):focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 4px #fff;outline:2px solid #000;outline-offset:2px}[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible),a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){box-shadow:none;outline:none}

/* ── neighborly-base-theme ── */
/*! Hello Elementor 3.5.1 theme.css — copied verbatim (GPL-3.0). */
.comments-area a,.page-content a{text-decoration:underline}.alignright{float:right;margin-left:1rem}.alignleft{float:left;margin-right:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw;overflow-x:hidden;width:100vw}.alignfull img{width:100%}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{display:block;position:relative}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form{margin:50px auto;max-width:500px}.post-password-form p{align-items:flex-end;display:flex;width:100%}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{max-height:500px;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:991px){.post .wp-post-image{max-height:400px}}@media(max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{font-size:.9em;list-style:none;margin:0;padding:0}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{border-block-end:1px solid #ccc;display:flex;flex-direction:column;padding-block-end:30px;padding-block-start:30px;padding-inline-end:0;padding-inline-start:60px}#comments .comment .avatar,#comments .pingback .avatar{border-radius:50%;left:0;margin-inline-end:10px;position:absolute}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{left:auto;right:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{list-style:none;margin:0;padding-inline-start:30px;position:relative}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{content:"↪";display:inline-block;font-size:1em;font-weight:400;left:0;line-height:1;position:absolute;top:45px;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";left:auto;right:0}@media(min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media(max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{float:left;position:inherit}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:right}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}@custom-media --hello-screen-xs-and-below (width < 576px);@custom-media --hello-screen-xs-and-above (width >= 576px);@custom-media --hello-screen-xs-only (0 <= width < 576px);@custom-media --hello-screen-sm-and-below (width < 768px);@custom-media --hello-screen-sm-and-above (width >= 768px);@custom-media --hello-screen-sm-only (576px <= width < 768px);@custom-media --hello-screen-md-and-below (width < 992px);@custom-media --hello-screen-md-and-above (width >= 992px);@custom-media --hello-screen-md-only (768px <= width < 992px);@custom-media --hello-screen-xl-and-below (width < 1200px);@custom-media --hello-screen-xl-and-above (width >= 1200px);@custom-media --hello-screen-xl-only (992px <= width < 1200px);@media(max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}}@media(min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media(min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)}

/* ── neighborly-kit ── */
/* ============================================================
   Neighborly — Elementor Kit equivalent (Kit #6, post-6.css)
   ------------------------------------------------------------
   Elementor's global Kit sets body/link/heading colors and sizes
   on every page via .elementor-kit-6. When Elementor is removed,
   that class and stylesheet disappear, so the same values are
   restated here on plain element selectors.

   Specificity is deliberately LOWER than .elementor-kit-6, so
   while Elementor is still active its own rules win (identical
   values either way) and nothing shifts during the transition.
   ============================================================ */

:root {
  --e-global-color-primary: #002868;
  --e-global-color-secondary: #BF0A30;
  --e-global-color-text: #FFFFFF;
  --e-global-color-accent: #FFFFFF;
  --e-global-typography-primary-font-size: 1.3rem;
  --e-global-typography-primary-font-weight: 700;
  --e-global-typography-text-font-family: "Jost";
  --e-global-typography-text-font-size: 1rem;
  --e-global-typography-text-font-weight: 400;
}

body {
  background-color: #FFFFFF;
  color: #FFFFFF;
  font-size: 1.1rem;
}
body a  { color: #FFFFFF; font-style: normal; }
body h1 { color: #FFFFFF; font-size: 3rem; }
body h2 { color: #FFFFFF; font-size: 2.3rem; }
body h3 { color: #FFFFFF; font-size: 2rem; }
body h4 { color: #FFFFFF; font-size: 1.4rem; }
body h5 { color: #FFFFFF; font-size: 1.9rem; font-weight: 700; }
body h6 { color: #FFFFFF; }
body img { box-shadow: 3px 4px 10px 0 rgba(0,0,0,.5); }

@media (max-width: 767px) {
  :root {
    --e-global-typography-primary-font-size: 1.5rem;
    --e-global-typography-text-font-size: 1.3rem;
  }
  body h1 { font-size: 2rem; }
  body h2 { font-size: 1.8rem; }
  body h3 { font-size: 1.5rem; }
}

/* ── neighborly-nh-resets ── */
/* ============================================================
   NH — Hello Theme Resets
   WPCode → CSS snippet › No page condition
   Priority: 3 › Auto Insert: Header
   Loads BEFORE Global CSS (priority 10) so 3186 can override.
   Purpose: neutralize Hello theme bleed-through on NH classes.
   ============================================================ */

/* ── p elements — null out Hello/Elementor border + background ── */
/* Hello theme and some Elementor widget contexts add border-left,
   background, and box-shadow to bare <p> elements. Null these out
   on all NH-prefixed containers. */
[class^="nh-"] p,
[class*=" nh-"] p {
  border: none !important;
  border-left: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* ── li elements — same treatment ── */
[class^="nh-"] li,
[class*=" nh-"] li {
  border: none !important;
  border-left: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* ── Button width override ── */
/* Hello theme sets button { width: auto } which defeats width: 100%
   on buttons inside flex containers. Scope the fix to NH buttons only. */
.nh-pm-cmp__btn-detail,
.nh-pm-cmp__btn-book,
.nh-pm-cmp2__btn-detail,
.nh-pm-cmp2__btn-book,
button.nh-faq-trigger,
button.nh-btn {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* CTA row buttons use flex:1 to share space — preserve that behaviour */
.nh-pm__cta-row button.nh-btn,
.nh-pm-pj__cta-row button.nh-btn,
.nh-pm-ab__cta-row button.nh-btn,
.nh-ws__cta-row button.nh-btn,
.nh-lm__link-row a.nh-btn,
.nh-lm__link-row button.nh-btn {
  width: auto !important;
  flex: 1 !important;
  min-width: 0 !important;
}

/* ── Heading color + weight overrides ── */
/* Hello overrides color on headings inside .elementor-widget wrappers. */
.nh-pm__name,
.nh-pm-pj__name,
.nh-pm-ab__name,
.nh-pm-cmp__title,
.nh-pm-cmp2__title,
.nh-lm__title {
  color: #002868 !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
}

/* ── Spec / price value colors ── */
.nh-pm__spec-value,
.nh-pm-eq__price-value,
.nh-pm-pj__price-value,
.nh-pm-cmp__spec-value,
.nh-pm-cmp2__spec-value {
  color: #002868 !important;
}

/* ── Comparison card head text — white on dark backgrounds ── */
/* RUCSS can strip these if the comparison modal has never been
   rendered during the CSS scan. Safelist .nh-pm-cmp and .nh-pm-cmp2
   in WP Rocket → File Optimization → RUCSS Safelist.          */
.nh-pm-cmp__size,
.nh-pm-cmp__popular-badge,
.nh-pm-cmp2__size {
  color: #fff !important;
}
.nh-pm-cmp__price,
.nh-pm-cmp2__price {
  color: rgba(255,255,255,.8) !important;
}
.nh-pm-cmp__price strong,
.nh-pm-cmp2__price strong {
  color: #fff !important;
}

/* ── Card head backgrounds (RUCSS safeguard) ── */
/* Dynamically rendered card heads can lose their background color
   when RUCSS strips CSS not present at initial page load.      */
.nh-pm-cmp__card-head {
  background: #002868 !important;
}
.nh-pm-cmp__card--popular .nh-pm-cmp__card-head {
  background: #BF0A30 !important;
}
.nh-pm-cmp2__card-head {
  background: #002868 !important;
}


/* ── About section: contain Elementor container overflow ─────── */
/* Root cause: the .e-con-boxed Elementor container wrapping the
   about library template (ID 3762) renders at a fixed desktop
   width on mobile, inflating the layout viewport past 820px so
   .nh-about-inner's two-column breakpoint never fires.
   Fix: clip overflow at the section level and force the inner
   grid to respect the available width rather than the inflated
   container width.                                             */
.nh-about {
  max-width: 100%;
  overflow-x: clip; /* clip avoids creating a scroll container */
}
.nh-about-inner {
  max-width: 100%;
}
.nh-about-content {
  min-width: 0; /* prevents flex/grid children from overflowing */
  max-width: 100%;
  overflow-wrap: break-word;
}

/* ── Footer: prevent logo images from inflating the layout viewport ── */
/* The e-con-boxed container wrapping the BBB + Chamber logos creates a  */
/* containing block wider than its visual column slot, causing 100vw to  */
/* expand past the viewport on every page. Fix the container and images. */
footer .e-con-boxed,
footer .e-con-inner {
  max-width: 100% !important;
}
footer img {
  max-width: 100% !important;
  height: auto !important;
}

footer .display-name,
.elementor-element-94d4fad .display-name {
  max-width: 100% !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

/* ── neighborly-nh-global ── */
/* ============================================================
   Neighborly Hauling — Global CSS
   WPCode → CSS snippet › No page condition
   Priority: 10 › Auto Insert: Header
   ============================================================ */


/* ── Base ── */
html {
  font-size: 18px;
  scroll-snap-type: none !important;
}


/* ── Design Tokens ─────────────────────────────────────────── */
:root {
  --nh-blue:  #002868;
  --nh-red:   #BF0A30;
  --nh-white: #ffffff;
  --nh-dark:  #111827;
  --nh-slate: #374151;
  --nh-line:  rgba(0,0,0,.10);

  /* Override Elementor's secondary color to match brand red */
  --e-global-color-secondary: #BF0A30;
}

/* Belt-and-suspenders: re-declare per widget in case Elementor
   re-injects its own value at component level */
.elementor-widget *,
.elementor-section * {
  --nh-red: #BF0A30;
}


/* ── Page title — hide hello-elementor default ─────────────── */
.entry-header {
  display: none;
}


/* ── Buttons ───────────────────────────────────────────────── */
.nh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
  border: 2px solid transparent;
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.nh-btn:hover,
.nh-btn:focus {
  text-decoration: none;
}

/* Primary — Red fill → white fill on hover */
.nh-btn-primary {
  background: var(--nh-red);
  color: var(--nh-white);
  border-color: var(--nh-red);
}

.nh-btn-primary:hover,
.nh-btn-primary:focus {
  background: var(--nh-white);
  color: var(--nh-red);
  border-color: var(--nh-red);
}

/* Secondary — Blue fill → white fill on hover */
.nh-btn-secondary {
  background: var(--nh-blue);
  color: var(--nh-white);
  border-color: var(--nh-blue);
}

.nh-btn-secondary:hover,
.nh-btn-secondary:focus {
  background: var(--nh-white);
  color: var(--nh-blue);
  border-color: var(--nh-blue);
}


/* ── Eyebrow pill ──────────────────────────────────────────── */
/* Self-centers via margin: 0 auto. Use a <div>, not <span>.   */
.nh-eyebrow {
  display: block;
  width: fit-content;
  margin: 0 auto 16px;
  background: var(--nh-blue);
  color: #e8edff;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 9px 28px;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

/* ── Page H1 pill + AEO answer line ────────────────────────── */
/* Output by [nh_h1] / [nh_answer] shortcodes (WPCode PHP).
   Same pill treatment as .nh-eyebrow so the H1 reads as a label,
   not a headline. .nh-answer is the one-line direct answer under
   the H1 on the homepage only. Both visible by default; add
   .nh-visually-hidden to either element to hide it from users
   while keeping it in the DOM for screen readers and crawlers.
   Contexts: default = blue pill / blue text on light bg.
             .nh-hero or .nh-bg-blue = white pill / white text.
             .nh-bg-red = white pill with red text / white text. */
h1.nh-h1 {
  display: block !important;
  width: fit-content !important;
  margin: 0 auto 16px !important;
  padding: 9px 28px !important;
  background: var(--nh-blue) !important;
  color: #e8edff !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: .1em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  border-radius: 999px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
}

.nh-answer {
  max-width: 34em;
  margin: 0 auto 20px;
  text-align: center;
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--nh-blue);
}
.nh-answer strong { font-weight: 900; }

/* Blue / hero context — white pill, white sentence, left-aligned in hero */
.nh-hero h1.nh-h1,
.nh-bg-blue h1.nh-h1 {
  background: var(--nh-white) !important;
  color: var(--nh-blue) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.25) !important;
}
.nh-hero h1.nh-h1 {
  margin: 0 0 14px !important;
}
.nh-hero .nh-answer,
.nh-bg-blue .nh-answer {
  color: rgba(255,255,255,.92);
}
.nh-hero .nh-answer {
  max-width: none;
  margin: 6px 0 22px;
  text-align: left;
  font-size: 1.12rem;
  line-height: 1.55;
}
.nh-hero .nh-answer strong,
.nh-bg-blue .nh-answer strong { color: var(--nh-white); }

/* Red context */
.nh-bg-red h1.nh-h1 {
  background: var(--nh-white) !important;
  color: var(--nh-red) !important;
}
.nh-bg-red .nh-answer { color: var(--nh-white); }

@media (max-width: 500px) {
  h1.nh-h1 { padding: 8px 20px !important; font-size: .92rem !important; }
  .nh-hero .nh-answer { font-size: 1rem; margin-bottom: 18px; }
}

/* Accessibility-safe hide (NOT display:none). Use sparingly. */
.nh-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ── Section separators ────────────────────────────────────── */
/* Usage:
     <div class="nh-sep"></div>              navy fade, between most sections
     <div class="nh-sep nh-sep-red"></div>   red fade, before Pricing / key CTA
   Max 2× red separators per page.           */
.nh-sep {
  width: 100%;
  height: 5px;
  border-radius: 2px;
  background: linear-gradient(
    to right,
    transparent,
    var(--nh-blue) 20%,
    var(--nh-blue) 80%,
    transparent
  );
  margin: 5px 0;
}

.nh-sep.nh-sep-red {
  background: linear-gradient(
    to right,
    transparent,
    var(--nh-red) 20%,
    var(--nh-red) 80%,
    transparent
  );
}


/* ── Section h2 override ───────────────────────────────────── */
/* Elementor injects its own heading styles at high specificity.
   Apply .nh-section-h2 to any section headline that needs
   consistent brand treatment regardless of Elementor theme.   */
.nh-section-h2 {
  font-size: 2rem !important;
  font-weight: 900 !important;
  color: var(--nh-blue) !important;
  line-height: 1.15 !important;
  margin: 8px 0 10px !important;
}

@media (max-width: 500px) {
  .nh-section-h2 {
    font-size: 1.65rem !important;
  }
}


/* ── Card container ────────────────────────────────────────── */
.nh-card {
  border-radius: 14px;
  padding: 18px;
  max-width: 100%;
  color: var(--nh-white);
  background: var(--nh-blue);
  border: 1px solid rgba(255,255,255,.10);
}

@media (max-width: 640px) {
  .nh-card { padding: 14px; }
}

/* Background context modifiers */
.nh-card.nh-bg-blue,
.nh-bg-blue {
  background: var(--nh-blue);
  color: var(--nh-white);
}

.nh-card.nh-bg-red,
.nh-bg-red {
  background: var(--nh-red);
  color: var(--nh-white);
}

.nh-card.nh-bg-white,
.nh-bg-white {
  background: var(--nh-white);
  color: var(--nh-dark);
  border: 1px solid rgba(0,0,0,.10);
}


/* ── Links by background context ───────────────────────────── */
/*
  New behavior: text color stays constant; only the underline
  color changes on hover. Uses text-decoration-color to signal
  interactivity without disrupting legibility.

  White bg:  blue text  → underline turns red on hover
  Blue bg:   white text → underline turns blue on hover
  Red bg:    blue text  → underline turns white on hover
  Inline red text: underline turns blue on hover
*/

/* White bg — blue text, underline turns red on hover */
a[style*="color:#002868"],
.nh-bg-white a:not(.nh-btn),
.nh-modal-link-blue {
  color: #002868 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(0,40,104,.3) !important;
  text-underline-offset: 3px !important;
  transition: text-decoration-color .15s ease !important;
}
a[style*="color:#002868"]:hover,
.nh-bg-white a:not(.nh-btn):hover,
.nh-modal-link-blue:hover {
  color: #002868 !important;
  text-decoration-color: #BF0A30 !important;
}

/* Blue bg — white text, underline turns blue on hover */
.nh-bg-blue a:not(.nh-btn),
.nh-modal-link-white {
  color: #ffffff !important;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.35);
  text-underline-offset: 3px;
  transition: text-decoration-color .15s ease;
}
.nh-bg-blue a:not(.nh-btn):hover,
.nh-modal-link-white:hover {
  color: #ffffff !important;
  text-decoration-color: #002868;
}

/* Red bg — blue text, underline turns white on hover */
.nh-bg-red a:not(.nh-btn) {
  color: #002868 !important;
  text-decoration: underline;
  text-decoration-color: rgba(0,40,104,.3);
  text-underline-offset: 3px;
  transition: text-decoration-color .15s ease;
}
.nh-bg-red a:not(.nh-btn):hover {
  color: #002868 !important;
  text-decoration-color: rgba(255,255,255,.75);
}

/* Inline red text links (modal onclick links use style="color:#BF0A30")
   underline turns blue on hover, text stays red */
a[style*="color:#BF0A30"],
.nh-modal-link-red {
  color: #BF0A30 !important;
  text-decoration: underline;
  text-decoration-color: rgba(191,10,48,.3);
  text-underline-offset: 3px;
  transition: text-decoration-color .15s ease;
}
a[style*="color:#BF0A30"]:hover,
.nh-modal-link-red:hover {
  color: #BF0A30 !important;
  text-decoration-color: #002868;
}


/* ── Buttons by background context ─────────────────────────── */

/* Blue bg — secondary override */
.nh-bg-blue .nh-btn-secondary {
  background: var(--nh-white);
  color: var(--nh-blue);
  border-color: var(--nh-white);
}
.nh-bg-blue .nh-btn-secondary:hover,
.nh-bg-blue .nh-btn-secondary:focus {
  background: var(--nh-blue);
  color: var(--nh-white);
  border-color: rgba(255,255,255,.4);
}

/* Red bg — primary override */
.nh-bg-red .nh-btn-primary {
  background: var(--nh-blue);
  color: var(--nh-white);
  border-color: var(--nh-blue);
}
.nh-bg-red .nh-btn-primary:hover,
.nh-bg-red .nh-btn-primary:focus {
  background: var(--nh-white);
  color: var(--nh-blue);
  border-color: var(--nh-blue);
}

/* Red bg — secondary override */
.nh-bg-red .nh-btn-secondary {
  background: var(--nh-white);
  color: var(--nh-red);
  border-color: var(--nh-white);
}
.nh-bg-red .nh-btn-secondary:hover,
.nh-bg-red .nh-btn-secondary:focus {
  background: var(--nh-red);
  color: var(--nh-white);
  border-color: rgba(255,255,255,.4);
}


/* ── CTA row ───────────────────────────────────────────────── */
.nh-cta-row {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}


/* ── Typography helpers ────────────────────────────────────── */
.nh-center { text-align: center; margin: 0 0 8px 0; color: var(--nh-white); }
.nh-muted  { line-height: 1.65; margin: 0; color: rgba(255,255,255,.88); font-size: 1.03rem; }
.nh-lead   { margin: 0 0 10px 0; line-height: 1.8; font-size: 1.12rem; color: var(--nh-white); }
.nh-lead strong { font-weight: 900; }
.nh-note   { margin-top: 10px; font-size: 1.02rem; color: rgba(255,255,255,.88); }
.nh-mt     { margin-top: 16px; }


/* ── Checklist ─────────────────────────────────────────────── */
.nh-checklist {
  list-style: none;
  padding: 0;
  margin: 10px 0 12px 0;
  display: grid;
  gap: 10px;
}

.nh-checklist li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  line-height: 1.55;
  color: var(--nh-white);
}

.nh-check {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: rgba(191,10,48,.12);
  border: 1px solid rgba(191,10,48,.35);
  display: grid;
  place-items: center;
  font-weight: 900;
  color: var(--nh-red);
  margin-top: 2px;
}


/* ── Mini cards ────────────────────────────────────────────── */
.nh-mini         { border: 1px solid rgba(255,255,255,.18); border-radius: 14px; padding: 14px; background: rgba(0,0,0,.18); }
.nh-mini--soft   { background: rgba(255,255,255,.08); }
.nh-mini--dark   { background: rgba(0,0,0,.22); }
.nh-mini__title  { font-weight: 900; margin: 0 0 6px 0; font-size: 1.05rem; color: var(--nh-white); }
.nh-mini__text   { margin: 0; color: rgba(255,255,255,.88); line-height: 1.6; font-size: 1.05rem; }


/* ── Bullet lists ──────────────────────────────────────────── */
.nh-bullets    { margin: 8px 0 0 18px; padding: 0; color: rgba(255,255,255,.88); line-height: 1.6; }
.nh-bullets li { margin: 6px 0; }


/* ── Dark-context FAQ accordion (card widget) ──────────────── */
/* NOTE: This is for blue-background card accordions only.      */
/* The standalone FAQ page uses .nh-faq-* classes scoped inside */
/* its own HTML widget — no conflict.                           */
.nh-faq {
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(0,0,0,.18);
}

.nh-faq summary {
  cursor: pointer;
  font-weight: 900;
  color: var(--nh-white);
  font-size: 1.05rem;
}

.nh-faq__body {
  margin-top: 10px;
  color: rgba(255,255,255,.88);
  line-height: 1.65;
  font-size: 1rem;
}


/* ── Layout helpers ────────────────────────────────────────── */
.nh-two-col {
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 820px) {
  .nh-two-col { grid-template-columns: 1fr; }
}

.nh-includes-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 980px) {
  .nh-includes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .nh-includes-grid { grid-template-columns: 1fr; }
}


/* ── Size grid + cards ─────────────────────────────────────── */
.nh-size-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-width: 100%;
}

@media (min-width: 1080px) { .nh-size-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .nh-size-grid { grid-template-columns: 1fr; } }

.nh-size-card  { background: var(--nh-white); color: var(--nh-blue); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; overflow: hidden; min-width: 0; box-shadow: 0 1px 0 rgba(0,0,0,.04); }
.nh-size-head  { padding: 14px 14px 12px; background: linear-gradient(to bottom, rgba(0,40,104,.08), rgba(0,40,104,.03)); border-bottom: 1px solid var(--nh-line); }
.nh-size-title { margin: 0; font-size: 1.25rem; font-weight: 900; letter-spacing: .2px; color: var(--nh-blue); }
.nh-size-sub   { margin: 6px 0 0; font-size: 1.15rem; color: var(--nh-slate); line-height: 1.4; }
.nh-size-row   { padding: 10px 14px; border-top: 1px solid rgba(0,0,0,.08); display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; font-size: 1.02rem; }
.nh-size-row:nth-child(even) { background: rgba(0,0,0,.02); }
.nh-k { min-width: 128px; font-weight: 900; color: #111827; font-size: 1.2rem; }
.nh-v { color: #1f2937; font-size: 1.02rem; }


/* ── Featured variant + badge ──────────────────────────────── */
.nh-featured { border: 2px solid rgba(191,10,48,.35); }
.nh-featured .nh-size-head { background: linear-gradient(to bottom, rgba(191,10,48,.12), rgba(191,10,48,.05)); }

.nh-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 900;
  background: rgba(191,10,48,.12);
  border: 1px solid rgba(191,10,48,.25);
  color: var(--nh-red);
  vertical-align: middle;
}


/* ── Pricing grid + cards ──────────────────────────────────── */
.nh-price-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 100%;
  margin-top: 14px;
}

@media (max-width: 980px) { .nh-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .nh-price-grid { grid-template-columns: 1fr; } }

.nh-price-card       { border-radius: 14px; overflow: hidden; min-width: 0; border: 1px solid rgba(255,255,255,.20); background: rgba(0,0,0,.22); }
.nh-price-head       { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 16px 14px; }
.nh-price-title      { margin: 0; font-size: 1.20rem; font-weight: 900; letter-spacing: .2px; line-height: 1.15; color: var(--nh-white); }
.nh-title-link       { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; font-weight: 900; }
.nh-price-sub        { margin: 10px 0 0 0; font-size: 1.05rem; line-height: 1.35; color: rgba(255,255,255,.88); }
.nh-price-list       { list-style: none; margin: 0; padding: 0; }
.nh-price-row        { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; align-items: center; border-top: 1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.16); }
.nh-price-row:nth-child(even) { background: rgba(255,255,255,.06); }
.nh-price-label      { font-weight: 800; color: rgba(255,255,255,.86); font-size: 1.02rem; }
.nh-price-value      { font-weight: 900; font-size: 1.25rem; letter-spacing: .2px; color: rgba(255,255,255,.95); }
.nh-price-note       { margin-top: 16px; font-size: 1rem; line-height: 1.6; color: rgba(255,255,255,.88); }

.nh-price-card.nh-featured { border: 2px solid rgba(255,255,255,.18); box-shadow: 0 0 0 2px rgba(191,10,48,.55), 0 18px 40px rgba(0,0,0,.18); }
.nh-price-card.nh-featured .nh-price-head { background: linear-gradient(to bottom, rgba(191,10,48,.38), rgba(0,0,0,.10)); }


/* ── Advice Center Post Cards ──────────────────────────────── */
.elementor-posts--skin-cards .elementor-post__card {
  border-radius: 18px !important;
  overflow: hidden !important;
  border: 1px solid rgba(0,40,104,.08) !important;
  box-shadow: 0 4px 16px rgba(0,40,104,.07) !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
  background: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.elementor-posts--skin-cards .elementor-post__card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 10px 28px rgba(0,40,104,.13) !important;
}

.elementor-posts--skin-cards .elementor-post__card::before {
  content: '';
  display: block;
  height: 3px;
  background: #BF0A30;
  width: 100%;
  flex-shrink: 0;
}

.elementor-posts--skin-cards .elementor-post__thumbnail__link {
  overflow: hidden !important;
  display: block !important;
}

.elementor-posts--skin-cards .elementor-post__thumbnail__link img {
  transition: transform .3s ease !important;
  width: 100% !important;
  display: block !important;
}

.elementor-posts--skin-cards .elementor-post__card:hover .elementor-post__thumbnail__link img {
  transform: scale(1.04) !important;
}

.elementor-posts--skin-cards .elementor-post__text {
  padding: 18px 20px 12px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.elementor-posts--skin-cards .elementor-post__title {
  margin: 0 0 10px !important;
  line-height: 1.35 !important;
}

.elementor-posts--skin-cards .elementor-post__title a {
  font-size: 1rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  text-decoration: none !important;
  transition: color .15s !important;
}

.elementor-posts--skin-cards .elementor-post__title a:hover {
  color: #BF0A30 !important;
}

.elementor-posts--skin-cards .elementor-post__excerpt {
  flex: 1 !important;
}

.elementor-posts--skin-cards .elementor-post__excerpt p {
  font-size: .92rem !important;
  color: #374151 !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

.elementor-posts--skin-cards .elementor-post__read-more {
  display: inline-block !important;
  margin-top: 12px !important;
  font-size: .85rem !important;
  font-weight: 700 !important;
  color: #BF0A30 !important;
  text-decoration: none !important;
}

.elementor-posts--skin-cards .elementor-post__read-more:hover {
  text-decoration: underline !important;
}

.elementor-posts--skin-cards .elementor-post__meta-data {
  padding: 10px 20px 16px !important;
  border-top: 1px solid rgba(0,40,104,.07) !important;
  margin-top: auto !important;
}

.elementor-posts--skin-cards .elementor-post-date {
  font-size: .78rem !important;
  color: #9ca3af !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}

.elementor-pagination {
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
  margin-top: 32px !important;
  flex-wrap: wrap !important;
}

.elementor-pagination .page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  font-size: .9rem !important;
  text-decoration: none !important;
  border: 2px solid rgba(0,40,104,.15) !important;
  color: #002868 !important;
  background: #fff !important;
  transition: background .15s, color .15s, border-color .15s !important;
}

.elementor-pagination .page-numbers:hover {
  background: #002868 !important;
  color: #fff !important;
  border-color: #002868 !important;
}

.elementor-pagination .page-numbers.current {
  background: #002868 !important;
  color: #fff !important;
  border-color: #002868 !important;
}


/* ── FAQ trigger width fix (Hello theme button { width: auto } override) ── */
button.nh-faq-trigger {
  width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  min-width: 0 !important;
  text-align: left !important;
}
.nh-faq-trigger .nh-faq-question,
.nh-cv__faq .nh-faq-question {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: calc(100% - 44px) !important;
  overflow-wrap: break-word !important;
  word-break: break-word !important;
}
.nh-faq-trigger .nh-faq-icon,
.nh-cv__faq .nh-faq-icon {
  flex-shrink: 0 !important;
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
}


/* ════════════════════════════════════════════════════
   NH — Shared Product Modal CSS (.nh-pm__*)
   Moved from Universal Modal Shell (snippet 3293)
   Used by: 12yd, 17yd, 21yd, 25yd, Equipter, Rolliskate
   ════════════════════════════════════════════════════ */

/* ── Two-column layout ── */
.nh-pm__layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 70vh;
}

/* ── Left: hero image ── */
.nh-pm__img-col {
  position: sticky;
  top: 0;
  height: 100%;
  overflow: hidden;
  background: #002868;
}
.nh-pm__hero {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* ── Right: content ── */
.nh-pm__detail {
  padding: 36px 32px 40px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* ── Eyebrow pill ── */
.nh-pm__eyebrow {
  display: inline-block;
  background: #002868;
  color: #e8edff;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 999px;
}

/* ── Name + tagline ── */
.nh-pm__name {
  font-size: 2rem;
  font-weight: 900;
  color: #002868 !important;
  margin: 10px 0 4px;
  line-height: 1.1;
}
.nh-pm__tagline {
  font-size: 1.05rem;
  color: #374151;
  margin: 0;
  line-height: 1.6;
}

/* ── Spec grid ── */
.nh-pm__specs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.nh-pm__spec {
  background: #f4f6f9;
  border-radius: 10px;
  padding: 10px 14px;
}
.nh-pm__spec-label {
  font-size: .74rem;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 3px;
}
.nh-pm__spec-value {
  font-size: .97rem;
  font-weight: 900;
  color: #002868 !important;
  line-height: 1.3;
}

/* ── Section label ── */
.nh-pm__section-label {
  font-size: .76rem;
  font-weight: 900;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 8px;
}

/* ── Uses / includes checklist ── */
.nh-pm__uses {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nh-pm__uses li {
  font-size: .97rem;
  color: #374151;
  padding-left: 20px;
  position: relative;
  line-height: 1.5;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
}
.nh-pm__uses li::before {
  content: '\2713';
  position: absolute;
  left: 0;
  color: #002868;
  font-weight: 900;
  font-size: .85rem;
  top: 1px;
}

/* ── Red-border callout ── */
.nh-pm__callout {
  background: linear-gradient(160deg, rgba(0,40,104,.04) 0%, rgba(0,40,104,.07) 100%);
  border-left: 3px solid #BF0A30;
  border-radius: 0 10px 10px 0;
  padding: 12px 16px;
  font-size: .95rem;
  color: #374151;
  line-height: 1.6;
}
.nh-pm__callout strong { color: #002868; }

/* ── CTA row ── */
.nh-pm__cta-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.nh-pm__cta-row .nh-btn {
  flex: 1;
  min-width: 120px;
  text-align: center;
  padding: 13px 20px;
}

/* ── Pricing note ── */
.nh-pm__note {
  font-size: .88rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
  border: none !important;
  background: none !important;
}
.nh-pm__note strong { color: #002868; }

/* ── Mobile: stack product modals ── */
@media (max-width: 700px) {
  .nh-pm__layout       { grid-template-columns: 1fr; }
  .nh-pm__img-col      { position: relative; height: 220px; }
  .nh-pm__detail       { padding: 22px 18px 28px; max-height: none; }
  .nh-pm__name         { font-size: 1.6rem; }
  .nh-pm__cta-row      { flex-direction: column; }
}

/* ── Modal content link fallback ── */
/* Catches any link inside modal content not already covered by
   a .nh-bg-* context rule — e.g. comparison footer, legal sections */
#nhModalContent a:not(.nh-btn) {
  color: #002868 !important;
  text-decoration: underline;
  text-decoration-color: rgba(0,40,104,.3);
  text-underline-offset: 3px;
  transition: text-decoration-color .15s ease;
}
#nhModalContent a:not(.nh-btn):hover {
  color: #002868 !important;
  text-decoration-color: #BF0A30;
}

/* ── Elementor text widget link override ── */
html body .nh-modal-link-blue {
  color: #002868 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(0,40,104,.3) !important;
  text-underline-offset: 3px !important;
  transition: text-decoration-color .15s ease !important;
}
html body .nh-modal-link-blue:hover {
  color: #002868 !important;
  text-decoration-color: #BF0A30 !important;
}

/* ════════════════════════════════════════════════
   NH — Roofing Calculator Modal (.nh-rc__*)
   ════════════════════════════════════════════════ */

/* ── Widen panel for calculator ── */
#nhModalPanel:has(.nh-rc) {
  max-width: 860px;
  width: 96vw;
}

/* ── Calculator interior styles ── */
.nh-rc {
  padding: 32px 32px 40px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (max-width: 600px) {
  .nh-rc { padding: 22px 16px 32px; }
}

.nh-rc__eyebrow {
  display: inline-block;
  background: #002868;
  color: #e8edff;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.nh-rc__title {
  font-size: 1.7rem;
  font-weight: 900;
  color: #002868 !important;
  margin: 0 0 6px;
  line-height: 1.15;
}
.nh-rc__sub {
  font-size: .97rem;
  color: #374151;
  margin: 0;
  line-height: 1.6;
}

/* Steps bar */
.nh-rc__steps {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.nh-rc__step {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .85rem;
  color: #374151;
  font-weight: 600;
}
.nh-rc__step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #002868;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  flex-shrink: 0;
}
.nh-rc__step-divider {
  color: rgba(0,40,104,.3);
  font-size: 1.1rem;
  line-height: 1;
}

/* Input grid */
.nh-rc__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
}
@media (max-width: 640px) {
  .nh-rc__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 400px) {
  .nh-rc__grid { grid-template-columns: 1fr; }
}
.nh-rc__grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: .82rem;
  font-weight: 700;
  color: #374151;
}
.nh-rc__grid input,
.nh-rc__grid select {
  padding: 9px 12px;
  border: 1.5px solid rgba(0,40,104,.2);
  border-radius: 8px;
  font-size: .95rem;
  color: #111827;
  background: #fff;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .15s;
}
.nh-rc__grid input:focus,
.nh-rc__grid select:focus {
  outline: none;
  border-color: #002868;
}
.nh-rc__calc-btn {
  padding: 10px 20px;
  border-radius: 999px;
  background: #BF0A30;
  color: #fff;
  border: none;
  font-weight: 900;
  font-size: .92rem;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}
.nh-rc__calc-btn:hover { background: #a00826; }

/* Add-ons */
.nh-rc__addons {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: rgba(0,40,104,.03);
  border: 1px solid rgba(0,40,104,.08);
  border-radius: 12px;
  padding: 14px 16px;
}
.nh-rc__addon {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.nh-rc__addon input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: #002868;
  cursor: pointer;
}
.nh-rc__addon-name {
  font-size: .92rem;
  font-weight: 700;
  color: #002868;
}
.nh-rc__addon-price {
  font-size: .8rem;
  color: #6b7280;
  margin-top: 2px;
}
.nh-rc__addon-badge {
  margin-left: auto;
  background: rgba(0,40,104,.08);
  color: #002868;
  font-size: .7rem;
  font-weight: 900;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.nh-rc__addon-note {
  font-size: .78rem;
  color: #9ca3af;
  padding-top: 4px;
  border-top: 1px solid rgba(0,40,104,.08);
  margin-top: 4px;
}

/* Results */
.nh-rc__results {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nh-rc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.nh-rc-table thead th {
  font-size: .72rem;
  font-weight: 900;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 6px 10px 8px;
  text-align: left;
  border-bottom: 2px solid rgba(0,40,104,.10);
}
.nh-rc-table tbody tr {
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.nh-rc-table tbody tr:last-child { border-bottom: none; }
.nh-rc-table tbody td {
  padding: 10px 10px;
  color: #374151;
  vertical-align: middle;
}
.nh-rc-table tbody td:first-child { color: #6b7280; font-size: .82rem; }
.nh-rc-table tfoot td {
  padding: 10px 10px;
  font-weight: 900;
  color: #002868;
  border-top: 2px solid rgba(0,40,104,.12);
  font-size: .95rem;
}
.nh-rc-summary {
  background: rgba(0,40,104,.03);
  border-left: 3px solid #002868;
  border-radius: 0 8px 8px 0;
  padding: 12px 16px;
  font-size: .88rem;
  color: #374151;
  line-height: 1.65;
}
.nh-rc-summary strong { color: #002868; }
.nh-rc__book-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.nh-rc__book-row .nh-btn {
  flex: 1;
  min-width: 140px;
  text-align: center;
  padding: 13px 20px;
}

/* Divider */
.nh-rc__divider {
  height: 1px;
  background: rgba(0,40,104,.10);
  margin: 0;
}

/* Quick reference table */
.nh-rc__ref-h3 {
  font-size: .82rem;
  font-weight: 900;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin: 0 0 10px;
}
.nh-rc-reftable {
  width: 100%;
  border-collapse: collapse;
  font-size: .85rem;
}
.nh-rc-reftable thead th {
  font-size: .72rem;
  font-weight: 900;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 5px 10px 7px;
  text-align: left;
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.nh-rc-reftable tbody tr { border-bottom: 1px solid rgba(0,0,0,.05); }
.nh-rc-reftable tbody tr:last-child { border-bottom: none; }
.nh-rc-reftable tbody td {
  padding: 8px 10px;
  color: #374151;
  vertical-align: top;
  line-height: 1.4;
}
.nh-rc__ref-note {
  font-size: .78rem;
  color: #9ca3af;
  margin: 10px 0 0;
  line-height: 1.6;
}

html, body {
  overflow-x: hidden;
	
/* ════════════════════════════════════════════════════════════════
   IS THAT ALLOWED? PAGE  (.nh-ia-*)  — Sep 2026
   Rendered by the [nh_is_that_allowed] shortcode. Mobile-first:
   most visitors arrive by scanning the QR code on the bin.
   ════════════════════════════════════════════════════════════════ */

.nh-ia {
  background: #fff;
  color: #1f2937;
  font-size: 1rem;
  line-height: 1.55;
}

/* ── Header band (inner-page pattern) ── */
.nh-ia-head {
  background: var(--nh-blue, #002868);
  border-bottom: 3px solid var(--nh-red, #BF0A30);
  padding: 90px 1.1rem 2rem;
  text-align: center;
}

.nh-ia-head__eyebrow {
  margin: 0 0 .35rem;
  color: rgba(255,255,255,.8);
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nh-ia-head__title {
  margin: 0;
  color: #fff;
  font-size: clamp(2.1rem, 9vw, 3.2rem);
  font-weight: 900;
  line-height: 1.1;
}

.nh-ia-head__sub {
  margin: .6rem auto 0;
  max-width: 30rem;
  color: rgba(255,255,255,.9);
  font-size: 1.05rem;
}

/* ── Agent box (full-width take on the chat bubble) ── */
.nh-ia-ask,
.nh-ia-bar {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
}

.nh-ia-ask {
  max-width: 32rem;
  margin: 1.4rem auto 0;
}

.nh-ia-ask__logo {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  padding: 3px;
  border: 2.5px solid var(--nh-blue, #002868);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  overflow: hidden;
  box-sizing: border-box;
}

.nh-ia-ask__logo img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.nh-ia-ask__label {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-height: 52px;
  margin-left: -14px;
  padding: 0 1.1rem 0 1.5rem;
  border: 2.5px solid #fff;
  border-left: none;
  border-radius: 0 999px 999px 0;
  background: #fff;
  color: var(--nh-blue, #002868);
  font-size: 1rem;
  font-weight: 900;
  box-sizing: border-box;
  transition: background .15s, color .15s, border-color .15s;
}

.nh-ia-ask__arrow {
  color: var(--nh-red, #BF0A30);
  font-size: 1.2rem;
  transition: color .15s;
}

.nh-ia-ask:hover .nh-ia-ask__label,
.nh-ia-ask:focus-visible .nh-ia-ask__label {
  background: var(--nh-red, #BF0A30);
  border-color: var(--nh-red, #BF0A30);
  color: #fff;
}

.nh-ia-ask:hover .nh-ia-ask__arrow,
.nh-ia-ask:focus-visible .nh-ia-ask__arrow {
  color: #fff;
}

.nh-ia-ask:focus-visible,
.nh-ia-bar:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
  border-radius: 999px;
}

/* ── Jump chips ── */
.nh-ia-chips {
  display: flex;
  gap: .5rem;
  padding: 1rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.nh-ia-chips::-webkit-scrollbar { display: none; }

.nh-ia-chip {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 1rem;
  border: 2px solid var(--nh-blue, #002868);
  border-radius: 999px;
  background: #fff;
  color: var(--nh-blue, #002868) !important;
  font-size: .9rem;
  font-weight: 800;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .15s, color .15s;
}

.nh-ia-chip:hover,
.nh-ia-chip:focus-visible {
  background: var(--nh-blue, #002868);
  color: #fff !important;
}

.nh-ia-note {
  margin: 0 auto;
  padding: 0 1rem;
  max-width: 760px;
  color: #4b5563;
  font-size: .9rem;
  text-align: center;
}

/* ── Sections ── */
.nh-ia-sec {
  max-width: 760px;
  margin: 0 auto;
  padding: 1.5rem 1rem .5rem;
  scroll-margin-top: 90px;
}

.nh-ia-sec__h {
  margin: 0 0 .25rem;
  padding-left: .65rem;
  border-left: 5px solid var(--nh-red, #BF0A30);
  color: var(--nh-blue, #002868);
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1.2;
}

/* ── Question cards ── */
.nh-ia-card {
  margin-top: .8rem;
  padding: 1rem 1.1rem 1.05rem;
  border: 1px solid rgba(0,40,104,.14);
  border-radius: var(--nh-radius, 18px);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,40,104,.06);
}

.nh-ia-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.nh-ia-card__q {
  flex: 1;
  margin: 0;
  color: var(--nh-blue, #002868);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.3;
}

.nh-ia-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: .25rem .75rem;
  border: 2px solid transparent;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 900;
  line-height: 1.3;
  white-space: nowrap;
}

.nh-ia-badge--yes   { background: var(--nh-blue, #002868); color: #fff; }
.nh-ia-badge--no    { background: var(--nh-red, #BF0A30);  color: #fff; }
.nh-ia-badge--limit { background: #fff; color: var(--nh-red, #BF0A30); border-color: var(--nh-red, #BF0A30); }

.nh-ia-card__a {
  margin: .5rem 0 0;
  font-size: 1rem;
}

.nh-ia-link {
  color: var(--nh-blue, #002868) !important;
  font-weight: 700;
  text-decoration: underline !important;
  text-decoration-color: rgba(0,40,104,.4) !important;
  text-underline-offset: 2px;
}

.nh-ia-link:hover { text-decoration-color: var(--nh-red, #BF0A30) !important; }

.nh-ia-fee {
  display: inline-block;
  margin: .65rem 0 0;
  padding: .3rem .75rem;
  border-radius: 10px;
  background: rgba(191,10,48,.08);
  color: var(--nh-red, #BF0A30);
  font-size: .9rem;
  font-weight: 800;
}

.nh-ia-fee--free {
  background: rgba(0,40,104,.08);
  color: var(--nh-blue, #002868);
}

/* ── Footer band ── */
.nh-ia-foot {
  margin-top: 2rem;
  padding: 2.2rem 1.1rem 6.5rem;   /* room for the floating agent bar */
  background: var(--nh-blue, #002868);
  border-top: 3px solid var(--nh-red, #BF0A30);
  color: #fff;
  text-align: center;
}

.nh-ia-foot__h {
  margin: 0;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 900;
}

.nh-ia-foot__p {
  margin: .4rem 0 0;
  color: rgba(255,255,255,.9);
}

.nh-ia-foot__btns {
  display: flex;
  flex-direction: column;
  gap: .7rem;
  max-width: 22rem;
  margin: 1.3rem auto 0;
}

.nh-ia-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 1.2rem;
  border: 2px solid transparent;
  border-radius: 999px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 900;
  text-decoration: none !important;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}

.nh-ia-btn--red   { background: var(--nh-red, #BF0A30); color: #fff !important; }
.nh-ia-btn--red:hover,
.nh-ia-btn--red:focus-visible { background: #fff; color: var(--nh-red, #BF0A30) !important; border-color: #fff; }

.nh-ia-btn--white { background: #fff; color: var(--nh-blue, #002868) !important; }
.nh-ia-btn--white:hover,
.nh-ia-btn--white:focus-visible { background: transparent; color: #fff !important; border-color: #fff; }

.nh-ia-foot__terms {
  margin: 1.3rem 0 0;
  color: rgba(255,255,255,.85);
  font-size: .9rem;
}

.nh-ia-foot__link {
  color: #fff !important;
  text-decoration: underline !important;
}

.nh-ia-foot__link:hover,
.nh-ia-foot__link:focus-visible { color: var(--nh-red, #BF0A30) !important; }

/* ── Floating agent bar (JS drives transform/visibility inline) ── */
.nh-ia-bar {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 9980;   /* under the chat panel (9991) */
  max-width: 30rem;
  margin: 0 auto;
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}

.nh-ia-ask__logo--sm {
  width: 50px;
  height: 50px;
  border-width: 2px;
}

.nh-ia-bar__label {
  flex: 1;
  display: flex;
  align-items: center;
  min-height: 44px;
  margin-left: -12px;
  padding: 0 1.1rem 0 1.4rem;
  border: 2px solid var(--nh-blue, #002868);
  border-left: none;
  border-radius: 0 999px 999px 0;
  background: var(--nh-blue, #002868);
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
  box-shadow: 0 6px 18px rgba(0,40,104,.3);
  box-sizing: border-box;
}

.nh-ia-bar:hover .nh-ia-bar__label { background: var(--nh-red, #BF0A30); border-color: var(--nh-red, #BF0A30); }

/* ── Tablet / desktop ── */
@media (min-width: 768px) {
  .nh-ia-chips { justify-content: center; }
  .nh-ia-foot__btns { flex-direction: row; max-width: 30rem; }
  .nh-ia-foot__btns .nh-ia-btn { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .nh-ia-bar { transition: none; }
}	
	/* ════════════════════════════════════════════════════════════════
   TERMS PAGES  (.nh-tc-*)  — Sep 2026
   Rendered by [nh_terms] (/terms/) and [nh_sms_terms] (/sms-terms/).
   ════════════════════════════════════════════════════════════════ */

.nh-tc {
  background: #fff;
  color: #1f2937;
  font-size: 1rem;
  line-height: 1.65;
}

/* ── Header band (inner-page pattern) ── */
.nh-tc-head {
  background: var(--nh-blue, #002868);
  border-bottom: 3px solid var(--nh-red, #BF0A30);
  padding: 90px 1.1rem 2rem;
  text-align: center;
}

.nh-tc-head__eyebrow {
  margin: 0 0 .35rem;
  color: rgba(255,255,255,.8);
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nh-tc-head__title {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 8vw, 3rem);
  font-weight: 900;
  line-height: 1.1;
}

.nh-tc-head__sub {
  margin: .6rem auto 0;
  max-width: 34rem;
  color: rgba(255,255,255,.9);
  font-size: 1rem;
}

/* ── Body ── */
.nh-tc-body {
  max-width: 760px;
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
}

/* ── Table of contents ── */
.nh-tc-toc {
  margin: 0 0 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(0,40,104,.14);
  border-radius: var(--nh-radius, 18px);
  background: rgba(0,40,104,.03);
}

.nh-tc-toc ol {
  margin: 0;
  padding-left: 1.4rem;
  columns: 2;
  column-gap: 1.5rem;
}

.nh-tc-toc li {
  margin: 0 0 .3rem;
  color: var(--nh-blue, #002868);
  font-size: .9rem;
  font-weight: 700;
  break-inside: avoid;
}

.nh-tc-toc a {
  color: var(--nh-blue, #002868) !important;
  text-decoration: none !important;
}

.nh-tc-toc a:hover,
.nh-tc-toc a:focus-visible {
  color: var(--nh-red, #BF0A30) !important;
  text-decoration: underline !important;
}

/* ── Sections ── */
.nh-tc-sec {
  padding: 1.25rem 0;
  border-top: 1px solid rgba(0,40,104,.10);
  scroll-margin-top: 90px;
}

.nh-tc-sec:first-of-type { border-top: none; }

.nh-tc-sec h2 {
  margin: 0 0 .6rem;
  color: var(--nh-blue, #002868);
  font-size: 1.3rem;
  font-weight: 900;
  line-height: 1.25;
}

.nh-tc-sec h3 {
  margin: 1rem 0 .4rem;
  color: var(--nh-blue, #002868);
  font-size: 1rem;
  font-weight: 800;
}

.nh-tc-sec p {
  margin: 0 0 .7rem;
}

.nh-tc-sec ul {
  margin: 0 0 .7rem;
  padding-left: 1.3rem;
}

.nh-tc-sec li {
  margin: 0 0 .35rem;
}

.nh-tc-sec a {
  color: var(--nh-blue, #002868) !important;
  font-weight: 700;
  text-decoration: underline !important;
  text-decoration-color: rgba(0,40,104,.4) !important;
  text-underline-offset: 2px;
}

.nh-tc-sec a:hover { text-decoration-color: var(--nh-red, #BF0A30) !important; }

.nh-tc-sec--contact {
  color: #4b5563;
  font-size: .95rem;
}

/* ── Fee rows ── */
.nh-tc-rows {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  margin: .4rem 0 .9rem;
}

.nh-tc-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .9rem;
  padding: .55rem .8rem;
  border-radius: 10px;
  background: rgba(0,40,104,.04);
  font-size: .95rem;
}

.nh-tc-row span:first-child { color: #1f2937; }

.nh-tc-row span:last-child {
  flex-shrink: 0;
  max-width: 55%;
  color: var(--nh-blue, #002868);
  font-weight: 900;
  text-align: right;
}

.nh-tc-row--no span:last-child { color: var(--nh-red, #BF0A30); }
.nh-tc-row--free { background: rgba(0,40,104,.07); }

@media (max-width: 520px) {
  .nh-tc-toc ol { columns: 1; }
  .nh-tc-row { flex-direction: column; gap: .15rem; }
  .nh-tc-row span:last-child { max-width: none; text-align: left; }
}
	/* ── Product pages: restore .nh-btn fills stripped by each page's blanket reset.
   Temporary until the 10/15/20/25 Yard pages move to PHP (phase 2). ── */
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-primary {
  background: var(--nh-red) !important;
  border: 2px solid var(--nh-red) !important;
  color: #fff !important;
}
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-primary:hover,
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-primary:focus {
  background: #fff !important;
  color: var(--nh-red) !important;
}
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-secondary {
  background: var(--nh-blue) !important;
  border: 2px solid var(--nh-blue) !important;
  color: #fff !important;
}
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-secondary:hover,
:is(.nh-12yd, .nh-17yd, .nh-21yd, .nh-25yd) .nh-btn-secondary:focus {
  background: #fff !important;
  color: var(--nh-blue) !important;
}
}

/* ── neighborly-site ── */
/* ============================================================
   Neighborly — header, footer, post layout
   Measurements taken from the live Elementor header (template 84),
   footer (109) and single-post template (24) on staging, Sep 30 2026.
   Brand: --nh-blue #002868 · --nh-red #BF0A30 · white
   ============================================================ */

/* ── Page shell ─────────────────────────────────────────────── */
/* Hello's theme.css caps .site-main at 1140px on non-Elementor pages.
   NH pages are full-bleed and size their own sections, so undo that
   for our pages and posts. */
html body .site-main.nh-page {
  max-width: none;
  width: 100%;
  padding-inline: 0;
  margin-inline: 0;
}


/* ── Header ─────────────────────────────────────────────────── */
.nh-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: #002868;
}
.admin-bar .nh-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .nh-header { top: 46px; }
}
@media (max-width: 600px) {
  .admin-bar .nh-header { top: 0; }   /* WP admin bar scrolls away on phones */
}

.nh-header img { box-shadow: none; }

/* Desktop bar: 38% | 18% | 40%, centered — same split as the Elementor containers */
.nh-header__desk {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  background: #002868;
}
.nh-header__col {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: 10px;
}
.nh-header__col--left  { width: 38%; justify-content: flex-end; }
.nh-header__col--logo  { width: 18%; justify-content: center; }
.nh-header__col--right { width: 40%; justify-content: flex-start; }

.nh-header__logo,
.nh-header__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.nh-menu {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nh-menu li {
  margin: 0;
  padding: 0;
}
.nh-header__desk .nh-menu a {
  position: relative;
  display: block;
  padding: 15px 1em;
  color: #fff;
  font-size: .8rem;          /* 14.4px on the 18px base */
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: color .3s;
}
/* Underline pointer (3px, fades in) */
.nh-header__desk .nh-menu a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: #BF0A30;
  opacity: 0;
  transition: opacity .3s cubic-bezier(.58, .3, .005, 1);
}
.nh-header__desk .nh-menu a:hover,
.nh-header__desk .nh-menu a:focus-visible {
  color: #BF0A30;
}
/* Current page: white text + red bar (red text on navy was 2.2:1, below WCAG AA). */
.nh-header__desk .nh-menu .current-menu-item > a {
  color: #fff;
}
.nh-header__desk .nh-menu a:hover::after,
.nh-header__desk .nh-menu a:focus-visible::after,
.nh-header__desk .nh-menu .current-menu-item > a::after {
  opacity: 1;
}

/* BOOK NOW — red button, white fill on hover */
.nh-header__desk .nh-menu .open-booking > a {
  padding: .8em 1.2em;
  background: #BF0A30;
  color: #fff;
  border-radius: 0;
  transition: background-color .3s, color .3s;
}
.nh-header__desk .nh-menu .open-booking > a::after { display: none; }
.nh-header__desk .nh-menu .open-booking > a:hover,
.nh-header__desk .nh-menu .open-booking > a:focus-visible {
  background: #fff;
  color: #BF0A30;
}

/* Tablet / mobile bar */
.nh-header__mob {
  display: none;
  position: relative;
  justify-content: center;
  align-items: center;
  padding: 5px 0;
  background: #002868;
}
.nh-header__mlogo,
.nh-header__mlogo img {
  display: block;
  height: 49px;
  width: auto;
}
.nh-header .nh-header__toggle {
  position: absolute;
  top: 5px;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 49px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: color .2s;
}
.nh-header .nh-header__toggle:hover,
.nh-header .nh-header__toggle:focus-visible,
.nh-header .nh-header__toggle[aria-expanded="true"] {
  color: #BF0A30;
  background: transparent;
}
.nh-header__toggle svg {
  width: 27px;
  height: 27px;
  fill: currentColor;
}

.nh-header__mnav {
  display: none;
  position: absolute;
  top: 54px;
  left: 0;
  right: 0;
  padding-bottom: 11px;
  background: #002868;
}
.nh-header.is-open .nh-header__mnav { display: block; }
.nh-header__mnav .nh-menu {
  display: block;
}
.nh-header__mnav .nh-menu a {
  display: block;
  padding: 2px 21px;
  color: #fff;
  font-size: 1.5rem;         /* 27px */
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: color .2s, background-color .2s;
}
.nh-header__mnav .nh-menu a:hover,
.nh-header__mnav .nh-menu a:focus-visible {
  background: #fff;
  color: #1A315D;
}

@media (max-width: 1024px) {
  .nh-header__desk { display: none; }
  .nh-header__mob  { display: flex; }
}


/* ── Footer ─────────────────────────────────────────────────── */
.nh-footer {
  background: #002868;
  color: #fff;
  padding: 10px 5px 5px;
}
.nh-footer__inner {
  display: flex;
  max-width: 1220px;
  margin: 0 auto;
}
.nh-footer__col {
  width: 33.333%;
  box-sizing: border-box;
  padding: 0 12px;
}
.nh-footer__col--brand { padding: 0 40px 0 0; }

.nh-footer__logo {
  display: block;
  margin-bottom: 20px;
}
.nh-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.nh-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nh-footer__social li { margin: 0; padding: 0; }
.nh-footer__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  background: #002868;
  color: #fff;
  transition: opacity .3s;
}
.nh-footer__social a:hover { opacity: .9; }
.nh-footer__social svg {
  width: 25px;
  height: 25px;
  fill: currentColor;
}

.nh-footer .nh-footer__heading {
  margin: 0 0 20px;
  color: #fff;
  font-size: 1.1rem;         /* 19.8px */
  font-weight: 500;
  line-height: 1;
}
.nh-footer .nh-footer__heading--members,
.nh-footer__col--contact .nh-footer__heading { margin-bottom: 15px; }

.nh-footer__contact {
  display: flow-root;        /* keep the last <p> margin inside, like the Elementor widget */
  margin-bottom: 20px;
  font-family: Jost, sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}
.nh-footer__contact p { margin: 0 0 .9rem; }
.nh-footer__contact a {
  color: #fff;
  text-decoration: none;
}
.nh-footer__contact a:hover { color: #fff; text-decoration: underline; }

.nh-footer-legal {
  font-size: 1.1rem;
  line-height: 1.5;
}
.nh-footer-legal p { margin: 0 0 .9rem; }
.nh-footer-legal a {
  color: #fff !important;
  text-decoration: underline !important;
  transition: color .15s ease;
}
.nh-footer-legal a:hover,
.nh-footer-legal a:focus {
  color: #BF0A30 !important;
}
.nh-footer-legal a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.nh-footer__badges {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: 10px;
  align-items: start;
}
.nh-footer__badge img {
  max-width: 100%;
  height: auto;
}
.nh-footer__badge--bbb img { border: 0; }
.nh-footer__badge--chamber { text-align: center; }
.nh-footer__badge--chamber img { width: 100%; }

@media (max-width: 767px) {
  .nh-footer { padding-top: 15px; }
  .nh-footer__inner { flex-direction: column; }
  .nh-footer__col--contact .nh-footer__heading { margin-bottom: 20px; }
  .nh-footer__contact { font-size: 1.3rem; }   /* Kit text size on phones */
  .nh-footer__col,
  .nh-footer__col--brand { width: 100%; padding: 0; }
  .nh-footer__col--brand { text-align: center; }
  .nh-footer__social { justify-content: center; margin-top: -10px; padding-bottom: 10px; }
  .nh-footer .nh-footer__heading { text-align: center; }
  .nh-footer__col--members { padding-top: 20px; }
  .nh-footer__badges { grid-template-columns: 1fr; }
}


/* ── Blog post (was Elementor single-post template 24) ──────── */
/* Hero sits 10px under the sticky header (30px on phones), as the
   template's -100px margin / 90px (70px) padding did. */
.nh-post__hero { margin-top: -10px; }
@media (max-width: 768px) {
  .nh-post__hero { margin-top: -30px; }
}
.nh-post__body {
  max-width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}
.nh-post__body > .nh-sep { margin-bottom: 25px; }
.nh-post__cta-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 10px;
  box-sizing: border-box;
}
.nh-post__body:last-child { padding: 0 0 5px; }

/* Template 24 custom CSS, re-scoped from .elementor-widget-theme-post-content
   to .nh-post__content (same specificity, same !important). */
/* ── Featured image hero ── */
.single .nh-post__hero {
  width: 100%;
  max-height: 480px;
  overflow: hidden;
  position: relative;
}
.single .nh-post__hero img {
  width: 100% !important;
  height: 480px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: 0 !important;
}
@media (max-width: 768px) {
  .single .nh-post__hero img {
    height: 260px !important;
  }
}

/* (Template 24's "content wrapper" rule targeted .elementor-widget-container,
   which Elementor's optimized markup no longer outputs, so it never applied.
   Left out on purpose to keep the layout identical.) */

/* ── Heading hierarchy ── */
.nh-post__content h1 {
  font-size: 2.2rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  line-height: 1.15 !important;
  margin: 0 0 24px !important;
  letter-spacing: -.01em !important;
}
@media (max-width: 600px) {
  .nh-post__content h1 { font-size: 1.7rem !important; }
}

.nh-post__content h2 {
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 48px 0 14px !important;
  line-height: 1.2 !important;
  padding-bottom: 10px !important;
  border-bottom: 3px solid rgba(0,40,104,.12) !important;
  clear: both !important;
}

.nh-post__content h3 {
  font-size: 1.25rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 36px 0 10px !important;
  clear: both !important;
}

.nh-post__content h4 {
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  color: #BF0A30 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  margin: 28px 0 8px !important;
}

/* ── Lead paragraph — first p after h1 gets larger treatment ── */
.nh-post__content h1 + p,
.nh-post__content h1 + .p3 {
  font-size: 1.15rem !important;
  color: #374151 !important;
  line-height: 1.85 !important;
  margin: 0 0 24px !important;
}

/* ── Body text ── */
.nh-post__content p,
.nh-post__content .p3,
.nh-post__content .p4 {
  color: #374151 !important;
  line-height: 1.8 !important;
  margin: 0 0 18px !important;
  font-size: 1rem !important;
}

/* ── Links ── */
.nh-post__content a:not(.nh-btn):not(.open-booking) {
  color: #002868 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  transition: color .15s !important;
}
.nh-post__content a:not(.nh-btn):not(.open-booking):hover {
  color: #BF0A30 !important;
}

/* ── Lists ── */
.nh-post__content ul,
.nh-post__content ol {
  margin: 0 0 22px 0 !important;
  padding-left: 24px !important;
  color: #374151 !important;
}
.nh-post__content li {
  margin-bottom: 8px !important;
  line-height: 1.75 !important;
}
.nh-post__content li p,
.nh-post__content li .p1 {
  margin: 0 !important;
}

/* ── HR ── */
.nh-post__content hr {
  border: none !important;
  border-top: 2px solid rgba(0,40,104,.10) !important;
  margin: 40px 0 !important;
  clear: both !important;
}

/* ── Inline span junk from Word paste ── */
.nh-post__content .s1,
.nh-post__content .s2,
.nh-post__content .s3 {
  color: inherit !important;
}

/* ── All images: default centered, rounded ── */
.nh-post__content img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 12px !important;
  display: block !important;
}

/* ── Standard centered figure ── */
.nh-post__content .wp-caption,
.nh-post__content figure {
  max-width: 100% !important;
  margin: 28px auto !important;
  text-align: center !important;
}
.nh-post__content .wp-caption-text,
.nh-post__content figcaption {
  font-size: .82rem !important;
  color: #6b7280 !important;
  margin-top: 10px !important;
  line-height: 1.5 !important;
  font-style: italic !important;
}

/* ── Float left — text wraps right ── */
.nh-post__content .alignleft,
.nh-post__content figure.alignleft {
  float: left !important;
  width: 46% !important;
  margin: 6px 28px 20px 0 !important;
  text-align: left !important;
}

/* ── Float right — text wraps left ── */
.nh-post__content .alignright,
.nh-post__content figure.alignright {
  float: right !important;
  width: 46% !important;
  margin: 6px 0 20px 28px !important;
  text-align: right !important;
}

/* ── Wide / full-bleed image ── */
.nh-post__content .alignwide,
.nh-post__content figure.alignwide {
  width: calc(100% + 64px) !important;
  max-width: none !important;
  margin-left: -32px !important;
  margin-right: -32px !important;
  border-radius: 0 !important;
}
.nh-post__content .alignwide img {
  border-radius: 0 !important;
  width: 100% !important;
}

/* ── Mobile: all images full width ── */
@media (max-width: 680px) {
  .nh-post__content .alignleft,
  .nh-post__content .alignright,
  .nh-post__content figure.alignleft,
  .nh-post__content figure.alignright {
    float: none !important;
    width: 100% !important;
    margin: 20px 0 !important;
  }
  .nh-post__content .alignwide {
    width: calc(100% + 36px) !important;
    margin-left: -18px !important;
    margin-right: -18px !important;
  }
}

/* ── Red accent callout ── */
.nh-post__content .nh-callout {
  background: linear-gradient(160deg, rgba(0,40,104,.04) 0%, rgba(0,40,104,.08) 100%) !important;
  border-left: 4px solid #BF0A30 !important;
  border-radius: 0 12px 12px 0 !important;
  padding: 16px 20px !important;
  margin: 28px 0 !important;
  color: #111827 !important;
  font-size: 1.02rem !important;
  line-height: 1.7 !important;
  clear: both !important;
}
.nh-post__content .nh-callout strong {
  color: #002868 !important;
}

/* ── Navy highlight box ── */
.nh-post__content .nh-highlight {
  background: #002868 !important;
  border-radius: 14px !important;
  padding: 24px 28px !important;
  margin: 32px 0 !important;
  color: rgba(255,255,255,.92) !important;
  line-height: 1.75 !important;
  clear: both !important;
}
.nh-post__content .nh-highlight strong {
  color: #fff !important;
}
.nh-post__content .nh-highlight a {
  color: #fca5a5 !important;
}

/* ── Pull quote ── */
.nh-post__content .nh-pullquote,
.nh-post__content blockquote {
  font-size: 1.35rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  line-height: 1.45 !important;
  border-left: none !important;
  border-top: 3px solid #BF0A30 !important;
  border-bottom: 3px solid #BF0A30 !important;
  padding: 20px 0 !important;
  margin: 36px 16px !important;
  text-align: center !important;
  font-style: normal !important;
  background: none !important;
  clear: both !important;
}

/* ── Stat / big number callout ── */
.nh-post__content .nh-stat {
  text-align: center !important;
  padding: 28px 20px !important;
  background: linear-gradient(135deg, rgba(0,40,104,.06) 0%, rgba(0,40,104,.03) 100%) !important;
  border-radius: 14px !important;
  margin: 28px 0 !important;
  clear: both !important;
}
.nh-post__content .nh-stat strong {
  display: block !important;
  font-size: 3rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  line-height: 1 !important;
  margin-bottom: 8px !important;
}


/* ── Post CTA (was the HTML widget in template 24) ──────────── */
.nh-post-cta {
  max-width: 780px;
  margin: 0 auto 60px;
  padding: 0 24px;
  box-sizing: border-box;
}

.nh-post-cta__inner {
  background: #002868;
  border-radius: 18px;
  padding: 36px 32px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.nh-post-cta__inner::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: #BF0A30;
}

.nh-post-cta__eyebrow {
  display: inline-block;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 12px;
}

.nh-post-cta__title {
  font-size: 1.5rem !important;
  font-weight: 900 !important;
  color: #fff !important;
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
}

.nh-post-cta__sub {
  font-size: .97rem !important;
  color: rgba(255,255,255,.78) !important;
  margin: 0 0 24px !important;
  line-height: 1.6 !important;
}

.nh-post-cta__btns {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

.nh-post-cta__btns .nh-btn {
  min-width: 160px;
}

/* ── Back to advice link ── */
.nh-post-back-wrap {
  max-width: 780px;
  margin: 0 auto 16px;
  padding: 0 24px;
}
.nh-post-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .85rem;
  font-weight: 700;
  color: #6b7280;
  text-decoration: none;
}
.nh-post-back:hover { color: #002868; }

@media (max-width: 600px) {
  .nh-post-cta__inner { padding: 28px 20px; }
  .nh-post-cta__title { font-size: 1.25rem !important; }
  .nh-post-cta__btns { flex-direction: column; align-items: center; }
  .nh-post-cta { padding: 0 16px; }
}


/* ── Archive / search / 404 fallback ────────────────────────── */
.nh-archive__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 20px;
  color: #111827;
}
.nh-archive__title {
  color: #002868;
  font-weight: 900;
  font-size: 2rem;
  margin: 0 0 24px;
}
.nh-archive p { color: #374151; }
.nh-archive a { color: #002868; text-decoration: underline; }
.nh-archive a:hover { color: #BF0A30; }
.nh-archive__list { list-style: none; margin: 0; padding: 0; }
.nh-archive__list li { padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.nh-archive__list li > a { font-weight: 700; font-size: 1.1rem; }
.nh-archive__list p { margin: 6px 0 0; }

/* The base reset (from Hello) sets white-space:nowrap on every <button>. In page
   content, buttons are accordion triggers holding full questions, which then ran
   off the edge on phones. Let them wrap. */
.page-content button { white-space: normal; }

/* ── nh-city ── */
/* ============================================================
   NH — City pages + shared sections
   Loaded only on pages that use [nh_city_page] / [nh_home].
   Sections: layout · Global Hero · answer intro · final CTA ·
             city blocks (.nh-cv, moved verbatim from the Elementor
             widgets, both size-grid variants supported)
   Brand: #002868 / #BF0A30 / white
   ============================================================ */

/* ── Layout (replaces the Elementor boxed containers: 1200px) ── */
.nh-sec { width: 100%; box-sizing: border-box; }
.nh-sec--boxed { max-width: 1200px; margin-inline: auto; }
@media (max-width: 767px) {
  .nh-sec--pad-m { padding-inline: 10px; }
}


/* ── Global Hero (was Elementor template 3766) ──────────────── */
.nh-gh {
  position: relative;
  display: flex;
  flex-direction: column;
  /* Fill the screen below the header, so the Difference card is always above the
     fold (was a fixed 896px, which pushed it off shorter screens). */
  min-height: clamp(600px, calc(100svh - 87px), 896px);
  background-color: #002868;
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  color: #fff;
  overflow: hidden;
}
.nh-gh img { box-shadow: none; }
.nh-gh__shape {
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 20.5px;
  line-height: 0;
  pointer-events: none;
  z-index: 1;
}
.nh-gh__shape svg { display: block; width: 100%; height: 100%; }
.nh-gh__shape path { fill: #fff; }
.nh-gh__h1 { padding-top: 20px; position: relative; z-index: 2; }

/* Overlay card: bottom-right, navy 75% behind the text */
.nh-gh__card {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 43%;
  box-sizing: border-box;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2;
}
.nh-gh__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #002868;
  opacity: .75;
  z-index: -1;
}

/* "The Neighborly Difference" + drawn red underline */
.nh-gh .nh-gh__headline {
  margin: 9px 0 18px;
  padding-bottom: 10px;
  color: #fff;
  font-size: 35px;
  font-weight: 500;
  font-style: oblique;
  line-height: 42px;
  text-align: center;
}
.nh-gh__hl { position: relative; display: inline-block; font-weight: 700; }
.nh-gh__hl svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(100% + 20px);
  height: calc(100% + 8px);
  transform: translate(-50%, -50%);
  overflow: visible;
  pointer-events: none;
}
.nh-gh__hl path {
  fill: none;
  stroke: #BF0A30;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-dasharray: 1500;
  stroke-dashoffset: 1500;
  animation: nh-gh-draw 1.2s ease-out .3s forwards;
}
@keyframes nh-gh-draw { to { stroke-dashoffset: 0; } }

/* -39px came from Elementor, whose underline never drew; the underline now draws,
   so the list starts just below it instead of under it. */
.nh-gh__list { list-style: none; margin: -26px 0 0; padding: 0; }
.nh-gh__list li { display: flex; align-items: center; margin: 0; padding: 0; }
.nh-gh__list svg {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  margin-right: 7px;
  fill: #fff;
}
.nh-gh__list .nh-gh__ico { display: flex; padding-right: 9.9px; }
.nh-gh__list .nh-gh__txt {
  padding-left: 5px;
  color: #fff;
  font-size: 26px;
  line-height: 1.5;
}

/* Rent With Us — slides in from the right once, as designed */
.nh-gh__cta { margin-top: 20px; }
.nh-gh .nh-gh__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 100px;
  background: #BF0A30;
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  border-radius: 0;
  box-shadow: 4px 3px 10px 4px rgba(0,0,0,.5);
  transition: background-color .3s, color .3s;
  animation: nh-gh-slide 1s ease-out .2s both;
}
.nh-gh .nh-gh__btn:hover,
.nh-gh .nh-gh__btn:focus-visible { background: #fff; color: #BF0A30; }
.nh-gh__btn svg { width: 1em; height: 1em; fill: currentColor; }
@keyframes nh-gh-slide {
  from { opacity: 0; transform: translateX(80px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nh-gh__hl path { animation: none; stroke-dashoffset: 0; }
  .nh-gh .nh-gh__btn { animation: none; }
}

/* Tablet (768–1024) */
@media (max-width: 1024px) {
  .nh-gh__card { width: 52%; }
  .nh-gh .nh-gh__headline { font-size: 1.6em; }
  .nh-gh__list { margin: -20px 0 -11px; }
  .nh-gh__list .nh-gh__txt { font-size: 1.2em; }
  .nh-gh .nh-gh__btn { font-size: 37px; padding: 10px 40px; }
}

/* Phone (<768): navy block, H1 pill on top, everything fits (no photo, no clipping) */
@media (max-width: 767px) {
  .nh-gh {
    min-height: 0;
    background-image: none !important;
    padding: 0 0 24px;
  }
  .nh-gh__shape { display: none; }
  .nh-gh__h1 { padding: 20px 16px 0; }   /* keep the pill off the screen edges */
  .nh-gh__card {
    position: static;
    width: 100%;
    padding: 0 16px;
  }
  .nh-gh__card::before { display: none; }
  .nh-gh .nh-gh__headline { font-size: 1.8em; line-height: 1.2; margin: 14px 0 18px; }
  .nh-gh__list { margin: 0; }
  .nh-gh__list li { padding: 3px 0; }
  .nh-gh__list .nh-gh__txt { font-size: 1.2em; line-height: 1.3; }  /* wrapped lines stay together */
  .nh-gh__cta { display: none; }   /* the sticky Book Now bar covers this on phones */
}


/* ── Answer-first intro (new: short city answer above the dumpsters) ── */
.nh-cv__answer-wrap { padding: 32px 24px 8px; }
.nh-cv p.nh-cv__answer {          /* beats the .nh-cv p reset below */
  max-width: 1020px;
  margin: 0 auto;
  padding: 18px 22px;
  border: none !important;
  border-left: 4px solid #BF0A30 !important;
  border-radius: 0 12px 12px 0;
  background: rgba(0,40,104,.04) !important;
  color: #111827;
  font-size: 1.05rem;
  line-height: 1.65;
}
.nh-cv__answer strong { color: #002868; }
.nh-cv__answer a { color: #002868; font-weight: 700; text-decoration: underline; }
.nh-cv__answer a:hover { color: #BF0A30; }
@media (max-width: 600px) {
  .nh-cv__answer-wrap { padding: 24px 16px 4px; }
  .nh-cv p.nh-cv__answer { font-size: 1rem; padding: 14px 16px; }
}


/* ── Final call to action ─────────────────────────────────────── */
.nh-cv__cta {
  max-width: 1020px;
  margin: 40px auto;
  padding: 28px 24px;
  border-radius: 18px;
  background: #002868;
  color: #fff;
  text-align: center;
}
.nh-cv .nh-cv__cta h2 { margin: 0 0 8px; color: #fff !important; font-size: 1.5rem; font-weight: 900; }
.nh-cv .nh-cv__cta p { margin: 0 0 18px; color: rgba(255,255,255,.9) !important; }
.nh-cv__cta-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.nh-cv .nh-cv__cta-btns .nh-btn { text-decoration: none !important; }   /* buttons, not links — match the pricing buttons */
@media (max-width: 600px) {
  .nh-cv__cta { margin: 28px 10px 32px; padding: 24px 16px; }
}
@media (max-width: 767px) {
  .nh-cv__cta { display: none; }              /* the sticky Ask a Question / Book Now bar covers this on phones */
  .nh-cv__lower--faq { margin-bottom: 28px; } /* keep breathing room above the footer */
}


/* ── Split city blocks: sizes and FAQ are now separate rounded panels ── */
.nh-cv__intro--local { padding-top: 24px !important; }


/* ── City intro + areas block (was the first Elementor HTML widget) ── */
.nh-cv h2, .nh-cv h3, .nh-cv p, .nh-cv ul, .nh-cv li, .nh-cv a:not(.nh-btn) {
  border: none !important;
  border-left: none !important;
  background: none !important;
  box-shadow: none !important;
  list-style: none !important;
}
.nh-cv__intro {
  background: #fff;
  padding: 48px 24px 40px;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 600px) {
  .nh-cv__intro { padding: 32px 16px 28px; }
}
.nh-cv__intro-inner {
  max-width: 1020px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}
.nh-cv__eyebrow {
  display: inline-block;
  background: rgba(0,40,104,.08);
  color: #002868;
  font-size: .76rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  padding: 5px 14px !important;
  border-radius: 999px !important;
  margin-bottom: 14px !important;
}
.nh-cv__title {
  font-size: 1.75rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 0 0 16px !important;
  line-height: 1.2 !important;
}
@media (max-width: 600px) {
  .nh-cv__title { font-size: 1.4rem !important; }
}
.nh-cv__lead {
  font-size: 1.05rem !important;
  color: #374151 !important;
  line-height: 1.8 !important;
  margin: 0 0 24px !important;
  max-width: 1020px !important;
}
.nh-cv__lead strong { color: #002868 !important; }
.nh-cv__lead a {
  color: #002868 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
.nh-cv__lead a:hover { color: #BF0A30 !important; }
.nh-cv__neighborhoods {
  background: #002868;
  padding: 28px 32px;
  border-radius: 14px;
  position: relative;
  overflow: hidden;
}
.nh-cv__neighborhoods::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: #BF0A30;
}
.nh-cv__neighborhoods h3 {
  font-size: .82rem !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,.65) !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  margin: 0 0 8px !important;
}
.nh-cv__neighborhoods p {
  font-size: .97rem !important;
  color: rgba(255,255,255,.85) !important;
  line-height: 1.75 !important;
  margin: 0 0 10px !important;
}
.nh-cv__neighborhoods p:last-child { margin-bottom: 0 !important; }
.nh-cv__neighborhoods strong { color: #fff !important; }
.nh-cv__neighborhoods a {
  color: rgba(255,255,255,.85) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
@media (max-width: 600px) {
  .nh-cv__neighborhoods { padding: 20px 18px; }
}

/* ── Size guide + FAQ block (was the second Elementor HTML widget) ── */
.nh-cv h2, .nh-cv h3, .nh-cv p, .nh-cv ul, .nh-cv li, .nh-cv a:not(.nh-btn), .nh-cv button {
  border: none !important;
  border-left: none !important;
  background: none !important;
  box-shadow: none !important;
  list-style: none !important;
}
.nh-cv__lower {
  background: linear-gradient(to bottom, rgba(0,40,104,.07) 0%, rgba(0,40,104,.15) 100%);
  border-radius: 24px;              /* same corners as the pricing panel */
  padding: 48px 24px 40px;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .nh-cv__lower { border-radius: 18px; }
}
@media (max-width: 600px) {
  .nh-cv__lower { padding: 32px 16px 28px; border-radius: 14px; }
}
.nh-cv__lower-inner {
  max-width: 1020px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.nh-cv__section-title {
  font-size: 1.3rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 0 0 16px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid rgba(0,40,104,.12) !important;
}
.nh-cv__section-title a {
  font-size: .8rem !important;
  font-weight: 700 !important;
  color: #BF0A30 !important;
  text-decoration: underline !important;
  vertical-align: middle !important;
}
.nh-cv__sizes {
  background: #fff;
  border-radius: 18px;
  padding: 24px;
  border: 1px solid rgba(0,40,104,.09);
  box-shadow: 0 2px 10px rgba(0,40,104,.04);
}
.nh-cv__size-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
@media (max-width: 560px) {
  .nh-cv__size-grid { grid-template-columns: 1fr; }
}
.nh-cv__size-item {
  background: rgba(0,40,104,.04);
  border-radius: 10px;
  padding: 14px 16px;
  border-left: 3px solid rgba(0,40,104,.18);
}
.nh-cv__size-item a {
  display: block !important;
  font-size: .97rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  text-decoration: none !important;
  margin-bottom: 2px !important;
  cursor: pointer !important;
}
.nh-cv__size-item a:hover { color: #BF0A30 !important; }
.nh-cv__size-true {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  color: rgba(0,40,104,.75);   /* same "Really X cu yd" line as the pricing table — AA contrast */
  margin-bottom: 5px;
}
.nh-cv__size-item:not(.has-true) a { margin-bottom: 5px !important; }  /* pages without the true-size line */
.nh-cv__size-item span.nh-cv__size-desc {
  font-size: max(16px, .88rem);   /* body copy floor */
  color: #374151;
  line-height: 1.5;
}
.nh-cv__size-note {
  font-size: max(16px, .88rem) !important;
  color: #374151 !important;
  margin: 0 !important;
  line-height: 1.7 !important;
}
.nh-cv__size-note a {
  color: #002868 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
.nh-cv__faq {
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(0,40,104,.09);
  box-shadow: 0 2px 10px rgba(0,40,104,.04);
  overflow: hidden;
}
.nh-cv__faq-header {
  padding: 20px 24px 14px;
  border-bottom: 2px solid rgba(0,40,104,.08);
}
.nh-cv__faq-header h2,
.nh-cv__faq-header h3 {
  font-size: 1rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 0 !important;
}
.nh-cv__faq .nh-faq-trigger {
  background: #ffffff !important;
  color: #002868 !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 18px 24px !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  cursor: pointer !important;
  text-align: left !important;
  min-width: 0 !important;
  height: auto !important;
  line-height: 1.4 !important;
  white-space: normal !important;   /* theme reset makes buttons nowrap; long questions must wrap on phones */
  transition: background .15s ease !important;
}
.nh-cv__faq .nh-faq-trigger:hover,
.nh-cv__faq .nh-faq-trigger:focus,
.nh-cv__faq .nh-faq-trigger[aria-expanded="true"] {
  background: #f8f9fc !important;
  outline: none !important;
}
.nh-cv__faq .nh-faq-trigger[aria-expanded="true"] .nh-faq-icon {
  background: #BF0A30 !important;
  transform: rotate(45deg) !important;
}
.nh-cv__faq .nh-faq-icon {
  flex-shrink: 0 !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 50% !important;
  background: #002868 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: transform .2s ease, background .15s ease !important;
}
.nh-cv__faq .nh-faq-icon svg {
  width: 14px !important;
  height: 14px !important;
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
}
.nh-cv__faq .nh-faq-question {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  word-break: break-word !important;
  color: #002868 !important;
}
.nh-cv__faq .nh-faq-body {
  display: none;
  padding: 0 24px 20px !important;
  background: #f8f9fc !important;
}
.nh-cv__faq .nh-faq-body.is-open { display: block !important; }
.nh-cv__faq .nh-faq-answer {
  font-size: .97rem !important;
  line-height: 1.7 !important;
  color: #374151 !important;
  margin: 0 !important;
  padding-top: 4px !important;
}
.nh-cv__faq .nh-faq-answer + .nh-faq-answer { padding-top: 12px !important; }   /* multi-paragraph answers */
.nh-cv__faq .nh-faq-answer a {
  color: #002868 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}
.nh-cv__faq .nh-faq-item { border-bottom: 1px solid rgba(0,0,0,.07); }
.nh-cv__faq .nh-faq-item:last-child { border-bottom: none; }

/* ── Contrast fixes on navy ───────────────────────────────────── */
@media (max-width: 767px) {
  .nh-gh h1.nh-h1 {                      /* same treatment as .nh-bg-blue h1.nh-h1 */
    background: #fff !important;
    color: #002868 !important;
  }
}
.nh-cv__cta .nh-btn-secondary { background: #fff; color: #002868; border-color: #fff; }
.nh-cv__cta .nh-btn-secondary:hover,
.nh-cv__cta .nh-btn-secondary:focus { background: #002868; color: #fff; border-color: #fff; }


/* ============================================================
   Service area (was Elementor template 3773) — styles unchanged
   ============================================================ */
/* ── Wrapper ── */
.nh-areas {
  width: 100%;
  box-sizing: border-box;
}

/* ── Blanket Hello theme reset ── */
.nh-areas h2,
.nh-areas p,
.nh-areas ul,
.nh-areas li,
.nh-areas a {
  border: none !important;
  border-left: none !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  list-style: none !important;
}

/* ── Panel ── */
.nh-areas__panel {
  background: linear-gradient(160deg, rgba(0,40,104,.07) 0%, rgba(0,40,104,.15) 100%);
  border-radius: 24px;
  padding: 40px 40px 36px;
}
@media (max-width: 600px) {
  .nh-areas__panel { padding: 40px 20px 24px; border-radius: 16px; }
}

/* ── Header ── */
.nh-areas__header {
  text-align: center;
  margin-bottom: 28px !important;
}
/* eyebrow uses global .nh-eyebrow class */
.nh-areas__eyebrow {
  margin-bottom: 12px !important;
}
.nh-areas__title {
  font-size: 1.75rem !important;
  font-weight: 900 !important;
  color: #002868 !important;
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
}
.nh-areas__sub {
  color: #374151 !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

/* ── Two-column body ── */
.nh-areas__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 768px) {
  .nh-areas__body { grid-template-columns: 1fr 320px; align-items: start; }
}

/* ── Map ── */
.nh-areas__map {
  height: 500px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0,40,104,.12);
  box-shadow: 0 4px 16px rgba(0,40,104,.08);
}
@media (max-width: 767px) {
  .nh-areas__map { height: 280px; }
}

/* ── City list sidebar ── */
.nh-areas__sidebar {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nh-areas__sidebar-title {
  font-weight: 900 !important;
  color: #6b7280 !important;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin: 0 0 2px !important;
}
.nh-areas__cities {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@media (min-width: 768px) {
  .nh-areas__cities {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
  }
}

/* ── City link ── */
.nh-areas__city {
  display: inline-flex !important;
  align-items: center;
  gap: 7px;
  padding: 7px 12px !important;
  background: #fff !important;
  border: 1px solid rgba(0,40,104,.10) !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  color: #002868 !important;
  text-decoration: none !important;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.nh-areas__city::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: #BF0A30;
  flex-shrink: 0;
}
.nh-areas__city:hover {
  background: #002868 !important;
  border-color: #002868 !important;
  color: #fff !important;
}
.nh-areas__city:hover::before { background: #fff; }

/* ── Footer note ── */
.nh-areas__note {
  text-align: center;
  color: #374151 !important;
  margin: 20px 0 0 !important;
  line-height: 1.6 !important;
}
.nh-areas { margin: 12px 0; }

/* ============================================================
   About Us (was Elementor template 3762) — styles unchanged
   except the callout rule: #B31942 → brand red #BF0A30
   ============================================================ */
/* ── Layout ── */
.nh-about {
  margin: 12px 0;
}

.nh-about-header {
  text-align: center;
  margin-bottom: 36px;
}


.nh-about-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

@media (max-width: 820px) {
  .nh-about-inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .nh-about-photo-wrap { order: -1; }
  .nh-about-content {
    padding: 0 16px;
  }
}

/* ── Left: body copy ── */
.nh-about-lead {
  font-size: 1.05rem;
  line-height: 1.7;
  color: #374151;
  margin: 0 0 12px 0;
}

.nh-about-sub {
  font-size: 1rem;
  color: #374151;
  margin: 0 0 10px 0;
}

.nh-about-list {
  margin: 0 0 20px 0;
  padding-left: 20px;
  line-height: 1.65;
  color: #374151;
}

.nh-about-list li {
  margin: 7px 0;
  font-size: .97rem;
}

.nh-about-list li strong {
  color: #002868;
}

.nh-about-callout {
  border-left: 4px solid #BF0A30;
  background: #f8f9fc;
  border-radius: 0 12px 12px 0;
  padding: 14px 18px;
  margin: 0 0 20px 0;
}

.nh-about-callout p {
  margin: 0;
  font-size: .97rem;
  line-height: 1.65;
  color: #374151;
}

.nh-about-callout strong {
  color: #002868;
}

.nh-about-proof {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .97rem;
  color: #374151;
  font-weight: 600;
}

.nh-about-stars {
  color: #f5a623;
  font-size: 1.1rem;
  letter-spacing: 1px;
  flex-shrink: 0;
}

.nh-about-lead a,
.nh-about-list a,
.nh-about-callout a {
  color: #002868 !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color .15s ease;
}
.nh-about-lead a:hover,
.nh-about-lead a:focus,
.nh-about-list a:hover,
.nh-about-list a:focus,
.nh-about-callout a:hover,
.nh-about-callout a:focus {
  color: #BF0A30 !important;
}

/* ── Right: photo ── */
.nh-about-photo-wrap {
  position: relative;
}

.nh-about-photo {
  width: 100%;
  height: auto;
  border-radius: 18px;
  display: block;
  box-shadow: 0 12px 40px rgba(0,40,104,.15);
}

.nh-about-caption {
  position: absolute;
  bottom: 16px;
  left: 16px;
  background: rgba(0,40,104,.88);
  color: #fff;
  font-size: .82rem;
  padding: 6px 14px;
  border-radius: 999px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  line-height: 1.4;
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
}

.nh-about-caption strong {
  color: #fff;
}

/* ============================================================
   Elementor container stand-ins for asset-backed pages
   (same box model the Elementor containers had: 1200px inner,
   10px side padding, 20px gap between blocks)
   ============================================================ */
.nh-econ { display: flex; flex-direction: column; padding: 0 10px; box-sizing: border-box; }
.nh-econ__inner { width: 100%; max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; padding: 10px 0; box-sizing: border-box; }
.nh-econ--full { padding: 0; }
.nh-econ--full > .nh-econ__inner { max-width: none; padding: 0; }
.nh-econ--navy { background: #002868; }
.nh-econ--pt100 { padding: 0; }
.nh-econ--pt100 > .nh-econ__inner { padding: 100px 0 0; }
.nh-econ--p50 { padding: 0 50px; }
.nh-econ--p50 > .nh-econ__inner { padding: 50px 0; }
@media (max-width: 767px) {
  .nh-econ--fb-m > .nh-econ__inner { padding-top: 5px; }
  .nh-econ--fb-m { margin-top: 41px; }
}
.nh-econ__img { text-align: center; line-height: 0; }
.nh-econ__img img { width: 40%; height: auto; display: inline-block; vertical-align: middle; }
.nh-econ--advice { padding: 0; }
.nh-econ--advice > .nh-econ__inner { padding: 25px 0 0; }

/* ── reviews ── */
/* NH reviews section — moved out of sections/reviews.html (unchanged).
   Served inside the cached CSS bundle (nh-asset-bundle.php); printed inline if the bundle isn't used. */
/* ── Reviews wrapper ── */
.nh-rv {
  max-width: 1100px;
  margin: 0 auto;
  padding: 48px 24px;
}

/* ── Header ── */
.nh-rv__header {
  text-align: center;
  margin-bottom: 32px;
}

/* ── Rating badge ── */
.nh-rv__rating {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: var(--nh-blue);
  border-radius: 999px;
  padding: 10px 20px;
  margin-bottom: 16px;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease;
}
.nh-rv__rating:hover,
.nh-rv__rating:focus {
  background: #001c4d;
}
.nh-rv__score {
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}
.nh-rv__stars {
  display: inline-flex;
  gap: 3px;
}
.nh-rv__stars svg {
  width: 18px;
  height: 18px;
}
.nh-rv__count {
  font-size: .85rem;
  color: rgba(255,255,255,.75);
  white-space: nowrap;
}

/* ── Title + sub ── */
.nh-rv__title {
  font-size: 1.75rem !important;
  font-weight: 900 !important;
  color: var(--nh-blue) !important;
  margin: 0 0 8px !important;
  line-height: 1.2 !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}
.nh-rv__sub {
  font-size: 1rem;
  font-weight: 400;
  color: var(--nh-slate);
  margin: 0 !important;
  line-height: 1.6;
  padding: 0 !important;
  background: none !important;
  border: none !important;
}
.nh-rv__sub a {
  color: #002868 !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color .15s ease;
}
.nh-rv__sub a:hover,
.nh-rv__sub a:focus {
  color: #BF0A30 !important;
}

/* ── Grid ── */
.nh-rv__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 28px;
}
@media (min-width: 640px) {
  .nh-rv__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .nh-rv__grid { grid-template-columns: repeat(3, 1fr); }
}

/* Hide 3rd+ reviews below desktop */
@media (max-width: 1023px) {
  .nh-rv__grid .nh-rv__card:nth-child(n+3) { display: none; }
}

/* ── Card ── */
.nh-rv__card {
  background: #fff;
  border: 1px solid rgba(0,40,104,.08);
  border-top: 3px solid var(--nh-red);
  border-radius: 18px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 4px 16px rgba(0,40,104,.08);
  transition: transform .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}
.nh-rv__card::before {
  content: '\201C';
  position: absolute;
  bottom: -20px;
  right: 12px;
  font-size: 9rem;
  line-height: 1;
  font-weight: 900;
  color: var(--nh-red);
  opacity: .07;
  pointer-events: none;
  font-family: Georgia, serif;
}
.nh-rv__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0,40,104,.13);
}

/* ── Card top: avatar + name ── */
.nh-rv__top {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nh-rv__avatar {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid rgba(0,40,104,.10);
  flex-shrink: 0;
}
.nh-rv__name {
  font-weight: 900;
  font-size: .97rem;
  color: var(--nh-blue);
  margin: 0 0 2px;
  line-height: 1.2;
}
.nh-rv__meta {
  font-size: .82rem;
  color: var(--nh-slate);
  margin: 0;
}
.nh-rv__card-stars {
  display: flex;
  gap: 2px;
  margin-top: 4px;
}
.nh-rv__card-stars svg {
  width: 14px;
  height: 14px;
}

/* ── Quote ── */
.nh-rv__quote {
  font-size: .95rem;
  color: var(--nh-dark);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.nh-rv__quote::before { content: '\201C'; }
.nh-rv__quote::after  { content: '\201D'; }

/* ── Card link ── */
.nh-rv__link {
  font-size: .82rem;
  font-weight: 700;
  color: var(--nh-red);
  text-decoration: none;
}
.nh-rv__link:hover { text-decoration: underline; }

/* ── CTA ── */
.nh-rv__cta {
  display: flex;
  justify-content: center;
}

/* ── Mobile: rating badge only ──
   Below the 640px grid breakpoint, hide title, sub,
   card grid, and CTA. Just the badge stays. */
@media (max-width: 639px) {
  .nh-rv__header { margin-bottom: 0; }
  .nh-rv__rating { margin-bottom: 0; max-width: 100%; padding: 10px 14px; gap: 8px; }  /* fits a 375px screen */
  .nh-rv__title,
  .nh-rv__sub,
  .nh-rv__grid,
  .nh-rv__cta {
    display: none !important;
  }
}

/* ── pg-widget ── */
/* NH products widget (pricing cards + mobile table) — carried over unchanged from template 3759 (v13).
   Served inside the cached CSS bundle on section pages (nh-asset-bundle.php); printed inline elsewhere. */
/* ── Tokens ── */
.nh-pg-wrap {
  --nh-blue:     #002868;
  --nh-blue-mid: #003a8c;
  --nh-red:      #BF0A30;
  --nh-slate:    #374151;
  --nh-border:   rgba(0,0,0,.08);
  --sh-sm:  0 2px 8px rgba(0,0,0,.08);
  --sh-md:  0 6px 24px rgba(0,0,0,.11);
  --sh-lg:  0 12px 40px rgba(0,40,104,.18);
}
.nh-pg-wrap { padding: 0; }

/* ── Entry panel ── */
.nh-pg-panel {
  background: linear-gradient(160deg, rgba(0,40,104,.04) 0%, rgba(0,40,104,.07) 100%);
  border-top: 3px solid #BF0A30;
  border-radius: 24px;
  padding: 48px 40px;
  margin: 12px 0;
  display: flex;
  flex-direction: column;
}
@media (max-width: 900px) {
  .nh-pg-panel { padding: 36px 24px; border-radius: 18px; }
}
@media (max-width: 500px) {
  .nh-pg-panel { padding: 28px 16px; border-radius: 14px; }
}

/* ── Section header ── */
.nh-pg-header {
  text-align: center;
  margin-bottom: 32px;
}
.nh-pg-header .nh-eyebrow {
  margin: 0 auto 14px;
}
.nh-pg-header h2 {
  font-size: 2rem;
  font-weight: 900;
  color: var(--nh-blue);
  margin: 0 0 8px;
  line-height: 1.15;
}
.nh-pg-header p {
  font-size: 1.02rem;
  color: var(--nh-slate);
  margin: 0;
}

/* ── 4-column dumpster grid ── */
.nh-pg-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch;
}
@media (max-width: 1000px) {
  .nh-pg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  .nh-pg-grid { grid-template-columns: 1fr; gap: 12px; }
}

/* ── Mobile compact table (replaces card grid below 601px) ── */
.nh-pg-table-wrap { display: none; }
@media (max-width: 600px) {
  .nh-pg-table-wrap { display: block; order: 3; margin-bottom: 16px; }
  .nh-pg-grid { display: none !important; }
  .nh-pg-specialty-row { display: none !important; }
}
.nh-pg-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--nh-border);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--sh-sm);
}
.nh-pg-table thead th {
  background: var(--nh-blue);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 10px 12px;
  text-align: left;
}
.nh-pg-table thead th:not(:first-child) { text-align: center; }
.nh-pg-table tbody tr {
  border-top: 1px solid rgba(0,0,0,.06);
  transition: background .15s ease;
}
.nh-pg-table tbody tr:active,
.nh-pg-table tbody tr:hover { background: rgba(0,40,104,.05); }
.nh-pg-table td {
  padding: 0;
  font-size: 1rem;
  line-height: 1.3;
}
.nh-pg-table td > a {
  display: block;
  padding: 14px 12px;
  color: inherit !important;
  text-decoration: none !important;
}
.nh-pg-table td:first-child > a { font-weight: 900; color: var(--nh-blue) !important; white-space: nowrap; }
.nh-pg-table td:not(:first-child) > a { text-align: center; font-weight: 700; color: var(--nh-slate) !important; }
.nh-pg-table__true {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  color: rgba(0,40,104,.75);   /* 6.6:1 on white — passes WCAG AA */
  white-space: nowrap;
  margin-top: 2px;
}
.nh-pg-table__badge {
  display: inline-block;
  background: var(--nh-red);
  color: #fff;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 999px;
  margin-left: 6px;
  vertical-align: middle;
  white-space: nowrap;
}
.nh-pg-table__hint {
  text-align: center;
  font-size: .82rem;
  color: var(--nh-slate);
  margin: 10px 0 0;
}

/* ── Specialty pricing band — single card, full width ── */
.nh-pg-specialty-row { display: contents; }

/* Mobile order: header → construction → dumpsters → add-ons */
.nh-pg-header            { order: 1; }
.nh-pg-specialty-bulky   { order: 2; margin-bottom: 16px; }
.nh-pg-grid              { order: 3; }
.nh-pg-sizelinks         { order: 4; }
.nh-pg-addon-label       { order: 5; }
.nh-pg-addon-grid        { order: 6; }
.nh-pg-actions           { order: 7; }
.nh-pg-note              { order: 8; }

/* Desktop: full-width single card between header and grid */
@media (min-width: 601px) {
  .nh-pg-specialty-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    order: 2;
    margin-bottom: 16px;
  }
  .nh-pg-specialty-bulky { order: unset; margin: 0; }
  .nh-pg-header      { order: 1; }
  .nh-pg-grid        { order: 3; }
  .nh-pg-sizelinks   { order: 4; }
  .nh-pg-addon-label { order: 5; }
  .nh-pg-addon-grid  { order: 6; }
  .nh-pg-actions     { order: 7; }
  .nh-pg-note        { order: 8; }
}

.nh-pg-specialty-card {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0,40,104,.10);
  border-left: 4px solid #BF0A30;
  border-radius: 14px;
  padding: 20px 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: var(--sh-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.nh-pg-specialty-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-md);
}
.nh-pg-specialty-card::after {
  content: attr(data-icon);
  position: absolute;
  top: 10px;
  right: 14px;
  font-size: 3rem;
  line-height: 1;
  opacity: .13;
  pointer-events: none;
  user-select: none;
}
.nh-pg-specialty-eyebrow {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #BF0A30;
}
.nh-pg-specialty-title {
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--nh-blue);
  line-height: 1.2;
  margin: 0;
}
.nh-pg-specialty-desc {
  font-size: .87rem;
  color: var(--nh-slate);
  line-height: 1.55;
  margin: 0;
}
.nh-pg-specialty-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.nh-pg-specialty-chip {
  background: rgba(0,40,104,.07);
  color: var(--nh-blue);
  font-size: .82rem;
  font-weight: 700;
  padding: 4px 11px;
  border-radius: 999px;
}
.nh-pg-specialty-rates {
  font-size: .78rem;
  color: #6b7280;
  line-height: 1.55;
}
.nh-pg-specialty-cta {
  margin-top: 4px;
}
.nh-pg-specialty-cta .nh-btn {
  font-size: .88rem !important;
  padding: 11px 16px !important;
}

/* ── Single-card add-on layout (inert — no add-ons currently shown) ── */
.nh-pg-addon-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin: 0 auto 28px;
  max-width: 420px;
  width: 100%;
}
@media (max-width: 500px) {
  .nh-pg-addon-grid { gap: 12px; max-width: none; }
}

/* ── Add-on section label (inert — no add-ons currently shown) ── */
.nh-pg-addon-label {
  text-align: center;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(0,40,104,.4);
  margin: 4px 0 12px;
}

/* ── Crawlable size-page link row ── */
.nh-pg-sizelinks {
  text-align: center;
  font-size: .88rem;
  color: var(--nh-slate);
  margin: 4px 0 18px;
  line-height: 1.8;
}
.nh-pg-sizelinks a {
  color: var(--nh-blue) !important;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(0,40,104,.3);
  text-underline-offset: 2px;
  transition: text-decoration-color .15s ease;
}
.nh-pg-sizelinks a:hover { text-decoration-color: var(--nh-red) !important; }

/* ── Card base ── */
.nh-pg-card {
  background: #fff;
  border: 1px solid var(--nh-border);
  border-radius: 18px;
  overflow: visible;
  display: flex;
  flex-direction: column;
  box-shadow: var(--sh-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.nh-pg-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-md);
}

/* ── Blue header ── */
.nh-pg-head {
  min-height: 152px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, var(--nh-blue) 55%, var(--nh-blue-mid));
  color: #fff;
  padding: 16px 14px 14px;
  text-align: center;
  border-radius: 17px 17px 0 0;
  text-decoration: none !important;
}
.nh-pg-mini .nh-pg-head { min-height: 110px; }

/* ── Clickable head ── */
a.nh-pg-head {
  cursor: pointer;
  transition: filter .18s ease;
  color: #fff !important;
}
a.nh-pg-head:hover  { filter: brightness(1.12); color: #fff !important; }
a.nh-pg-head:focus-visible {
  outline: 3px solid rgba(255,255,255,.6);
  outline-offset: -3px;
}
.nh-pg-info-hint {
  font-size: .67rem;
  color: rgba(255,255,255,.52);
  letter-spacing: .04em;
  margin-top: 8px;
  text-transform: uppercase;
}

/* ── Header typography ── */
.nh-pg-yards {
  font-size: 1.55rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.nh-pg-mini .nh-pg-yards { font-size: 1.15rem; }

/* ── Size equivalency sub-label ── */
.nh-pg-equiv {
  font-size: .78rem;
  font-weight: 600;
  color: rgba(255,255,255,.62);
  line-height: 1.3;
  margin: 6px 4px 0;
}

.nh-pg-badge {
  display: inline-block;
  background: var(--nh-red);
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .04em;
  padding: 3px 9px;
  border-radius: 999px;
  margin-left: 5px;
  vertical-align: middle;
  box-shadow: 0 2px 6px rgba(191,10,48,.4);
}

.nh-pg-starting {
  font-size: .68rem;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 10px 0 2px;
}

.nh-pg-price {
  font-size: 1.35rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.05;
}
.nh-pg-mini .nh-pg-price { font-size: 1.2rem; }

.nh-pg-sub {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: 5px;
}
.nh-pg-sub span {
  display: block;
  font-size: .76rem;
  color: rgba(255,255,255,.7);
  line-height: 1.4;
}

/* ── Upgrade nudge on 25yd ── */
.nh-pg-upgrade {
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: rgba(255,255,255,.9);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 2px 8px;
  border-radius: 999px;
  margin-top: 6px;
}

/* ── Pricing rows ── */
.nh-pg-detail { flex-shrink: 0; padding: 2px 0; }
.nh-pg-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 16px;
  border-bottom: 1px solid rgba(0,0,0,.055);
  font-size: .92rem;
  gap: 8px;
}
.nh-pg-row:last-child { border-bottom: none; }
.nh-pg-row span:first-child { color: var(--nh-slate); }
.nh-pg-row span:last-child { font-weight: 900; color: var(--nh-blue); white-space: nowrap; }
.nh-pg-row--divider { border-top: 1px dashed rgba(0,40,104,.15); margin-top: 2px; }

/* ── Image wrapper ── */
.nh-pg-img-wrap {
  flex: 1;
  min-height: 60px;
  overflow: hidden;
  border-top: 1px solid var(--nh-border);
  border-bottom: 1px solid var(--nh-border);
  display: block;
}
a.nh-pg-img-wrap { cursor: pointer; }
a.nh-pg-img-wrap:hover img { filter: brightness(1.06); transition: filter .18s ease; }
.nh-pg-img-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* ── Spacer (inert — was used by removed PolyJohn add-on card) ── */
.nh-pg-spacer {
  flex: 1;
  min-height: 40px;
  background: linear-gradient(to bottom, #f4f6f9, #edf0f4);
  border-top: 1px solid var(--nh-border);
  border-bottom: 1px solid var(--nh-border);
}

@media (max-width: 1000px) {
  .nh-pg-img-wrap, .nh-pg-spacer { display: none; }
}

/* ── Book Now footer ── */
.nh-pg-book {
  flex-shrink: 0;
  padding: 14px;
  border-top: 1px solid rgba(0,0,0,.07);
}
.nh-pg-mini .nh-pg-book { padding: 11px 14px; }
.nh-pg-book .nh-btn { width: 100%; }

/* ── Bottom CTAs ── */
.nh-pg-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 8px;
}
.nh-pg-actions .nh-btn { padding: 14px 28px; }
@media (max-width: 500px) {
  .nh-pg-actions { flex-direction: column; align-items: stretch; padding: 0 16px; }
  .nh-pg-actions .nh-btn { text-align: center; }
}

/* ── Fine print ── */
.nh-pg-note {
  text-align: center;
  margin-top: 20px;
  font-size: .88rem;
  color: var(--nh-slate);
  line-height: 1.65;
}
@media (max-width: 500px) { .nh-pg-note { padding: 0 16px; } }
.nh-pg-note strong { color: var(--nh-blue); }
.nh-pg-note a {
  color: var(--nh-blue) !important;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(0,40,104,.3);
  text-underline-offset: 2px;
  cursor: pointer;
  transition: text-decoration-color .15s ease;
}
.nh-pg-note a:hover { color: var(--nh-blue) !important; text-decoration-color: var(--nh-red) !important; }

/* ── Rolliskate inline link ── */
.nh-driveway-link {
  color: var(--nh-blue) !important;
  text-decoration: underline;
  text-decoration-color: rgba(0,40,104,.3);
  text-decoration-style: solid;
  text-underline-offset: 3px;
  cursor: pointer;
  font-weight: 700;
  transition: text-decoration-color .15s ease;
}
.nh-driveway-link:hover { color: var(--nh-blue) !important; text-decoration-color: var(--nh-red) !important; }

/* ── Specialty card equal height fix ── */
.nh-pg-specialty-row { align-items: stretch; }
.nh-pg-specialty-bulky { display: flex; flex-direction: column; }
.nh-pg-specialty-card { flex: 1; }
.nh-pg-specialty-cta { margin-top: auto !important; padding-top: 12px; }

/* ── chat ── */
/* ══════════════════════════════════════════════
   NH CHAT WIDGET
   Desktop: bubble bottom-left → panel above
   Mobile:  split bar bottom → full-screen chat
   ══════════════════════════════════════════════ */

/* ─────────────────────────────────────────────
   DESKTOP BUBBLE
   ───────────────────────────────────────────── */
.nh-cw-bubble {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 9990;
  display: flex;
  align-items: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s ease, transform .2s;
}

.nh-cw-bubble.nh-cw-bubble--visible {
  opacity: 1;
  pointer-events: auto;
}

.nh-cw-bubble:hover {
  transform: translateY(-3px);
}

@media (max-width: 767px) {
  .nh-cw-bubble { display: none !important; }
}

/* Circle — white bg, blue border, sits on top */
.nh-cw-bubble__circle {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #fff;
  border: 2.5px solid #002868;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  box-shadow: -3px 3px 12px rgba(0,40,104,.22), 0 -3px 10px rgba(0,40,104,.15);
  overflow: hidden;
  padding: 3px;
}

.nh-cw-bubble__circle img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: block;
  object-fit: cover;
}

/* Rectangular label — white bg, blue border, animates out from circle */
.nh-cw-bubble__label {
  background: #fff;
  color: #002868;
  font-weight: 900;
  font-size: .88rem;
  padding: 0 20px 0 18px;
  height: 40px;
  display: flex;
  align-items: center;
  border-radius: 0 999px 999px 0;
  border: 2.5px solid #002868;
  border-left: none;
  margin-left: -10px;
  white-space: nowrap;
  letter-spacing: .01em;
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  box-shadow: 3px 3px 12px rgba(0,40,104,.18), 0 -3px 10px rgba(0,40,104,.12);
  /* Expand animation */
  max-width: 0;
  overflow: hidden;
  padding-left: 14px;
  padding-right: 0;
  opacity: 0;
  transition: max-width .45s cubic-bezier(.4,0,.2,1),
              padding-right .45s cubic-bezier(.4,0,.2,1),
              opacity .3s ease .15s;
}

.nh-cw-bubble.nh-cw-bubble--visible .nh-cw-bubble__label {
  max-width: 200px;
  padding-right: 20px;
  opacity: 1;
}

.nh-cw-bubble:hover .nh-cw-bubble__label,
.nh-cw-bubble:focus .nh-cw-bubble__label {
  background: #002868;
  color: #fff;
  border-color: #002868;
}

.nh-cw-bubble:hover .nh-cw-bubble__circle {
  background: #f0f4ff;
}

/* ─────────────────────────────────────────────
   CHAT PANEL (shared desktop + mobile)
   ───────────────────────────────────────────── */
.nh-cw-panel {
  position: fixed;
  bottom: 92px;
  left: 24px;
  width: 360px;
  height: 500px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 12px 48px rgba(0,0,0,.18);
  z-index: 9991;
  display: none;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.06);
}

.nh-cw-panel.nh-cw-panel--open {
  display: flex;
}

@media (max-width: 767px) {
  .nh-cw-panel {
    bottom: 0;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    box-shadow: none;
    border: none;
  }
  /* When chat is open, split bar is hidden — panel fills full screen */
  body.nh-cw-open .nh-cw-panel {
    bottom: 0 !important;
  }
}

/* Panel header */
.nh-cw-panel__head {
  background: #002868;
  padding: 14px 16px;
  padding-right: 72px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  position: relative;
}

.nh-cw-panel__head-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nh-cw-panel__head-icon svg {
  width: 22px;
  height: 22px;
}

.nh-cw-panel__head-text {
  flex: 1;
  min-width: 0;
}

.nh-cw-panel__head-name {
  color: #fff;
  font-weight: 900;
  font-size: .95rem;
  line-height: 1.2;
}

.nh-cw-panel__head-sub {
  color: rgba(255,255,255,.65);
  font-size: .76rem;
  line-height: 1.4;
  margin-top: 1px;
}

.nh-cw-panel__close {
  position: absolute;
  top: 14px;
  right: 18px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: none;
  background: #ffffff;
  color: #BF0A30;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  transition: background .25s ease, color .25s ease, transform .25s ease;
  padding: 0;
  font-weight: 900;
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}

.nh-cw-panel__close:hover {
  background: #002868;
  color: #ffffff;
  transform: scale(1.08);
}

/* Messages area */
.nh-cw-panel__msgs {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #f8f9fc;
  -webkit-overflow-scrolling: touch;
}

/* Individual messages */
.nh-cw-msg {
  max-width: 86%;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: .875rem;
  line-height: 1.65;
  word-break: break-word;
}

.nh-cw-msg--agent {
  background: #fff;
  color: #374151;
  border: 1px solid rgba(0,0,0,.08);
  align-self: flex-start;
  border-bottom-left-radius: 4px;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}

#nhCwMsgs .nh-cw-msg--agent a,
#nhCwMsgs .nh-cw-msg--agent a:link,
#nhCwMsgs .nh-cw-msg--agent a:visited,
#nhCwMsgs a.nh-cw-modal-link {
  color: #002868 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(0,40,104,.4) !important;
  text-underline-offset: 2px !important;
  transition: text-decoration-color .15s !important;
  display: inline !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#nhCwMsgs .nh-cw-msg--agent a:hover,
#nhCwMsgs .nh-cw-msg--agent a:active,
#nhCwMsgs a.nh-cw-modal-link:hover {
  color: #002868 !important;
  text-decoration-color: #BF0A30 !important;
}

.nh-cw-msg--user {
  background: #002868;
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 4px;
}

/* Typing indicator */
.nh-cw-typing {
  align-self: flex-start;
  display: flex;
  gap: 5px;
  padding: 12px 16px;
  background: #fff;
  border-radius: 14px;
  border-bottom-left-radius: 4px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}

.nh-cw-typing span {
  width: 7px;
  height: 7px;
  background: #9ca3af;
  border-radius: 50%;
  animation: nh-cw-bounce .9s infinite;
}

.nh-cw-typing span:nth-child(2) { animation-delay: .15s; }
.nh-cw-typing span:nth-child(3) { animation-delay: .30s; }

@keyframes nh-cw-bounce {
  0%, 60%, 100% { transform: translateY(0); }
  30%           { transform: translateY(-6px); }
}

/* Input row */
.nh-cw-panel__input-row {
  display: flex;
  gap: 8px;
  padding: 12px 14px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.08);
  flex-shrink: 0;
  align-items: flex-end;
}

.nh-cw-panel__input {
  flex: 1;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 12px;
  padding: 9px 14px;
  font-size: .9rem;
  outline: none;
  resize: none;
  font-family: inherit;
  transition: border-color .15s;
  line-height: 1.45;
  min-height: 38px;
  max-height: 100px;
  overflow-y: auto;
}

.nh-cw-panel__input:focus { border-color: #002868; }

.nh-cw-panel__input:disabled {
  background: #f3f4f6;
  color: #9ca3af;
}

.nh-cw-panel__send {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: opacity .15s, transform .15s;
  overflow: hidden;
  padding: 0;
}

.nh-cw-panel__send:hover:not(:disabled) { opacity: .85; transform: scale(1.06); }
.nh-cw-panel__send:disabled             { opacity: .35; cursor: default; }

/* ─────────────────────────────────────────────
   MOBILE SPLIT BAR
   ───────────────────────────────────────────── */
.nh-cw-splitbar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100vw;
  max-width: 100vw;
  z-index: 9990;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  background: #fff;
  border-top: 2px solid rgba(0,40,104,.10);
  box-shadow: 0 -2px 12px rgba(0,0,0,.10);
  box-sizing: border-box;
  margin: 0;
  overflow: hidden;
}

@media (max-width: 767px) {
  .nh-cw-splitbar { display: flex; }
}

/* Hide split bar when chat is open */
body.nh-cw-open .nh-cw-splitbar {
  display: none !important;
}

.nh-cw-splitbar__ask,
.nh-cw-splitbar__book {
  flex: 1;
  min-width: 0;
  height: 54px;
  min-height: 54px;
  overflow: hidden;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-weight: 900;
  font-size: .9rem;
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
}

.nh-cw-splitbar__ask {
  background: #002868;
  color: #fff;
  border-right: 1px solid rgba(255,255,255,.15);
  transition: background .15s, color .15s, border-color .15s;
  border: 2px solid transparent;
  box-sizing: border-box;
}

.nh-cw-splitbar__ask:hover,
.nh-cw-splitbar__ask:active {
  background: #fff;
  color: #002868;
  border-color: #002868;
}

.nh-cw-splitbar__ask:hover svg,
.nh-cw-splitbar__ask:active svg {
  stroke: #002868;
}

.nh-cw-splitbar__book {
  background: #BF0A30;
  color: #fff;
  transition: background .15s, color .15s;
  border: 2px solid transparent;
  box-sizing: border-box;
}

.nh-cw-splitbar__book:hover,
.nh-cw-splitbar__book:active {
  background: #fff;
  color: #BF0A30;
  border-color: #BF0A30;
}

.nh-cw-splitbar__book:hover svg,
.nh-cw-splitbar__book:active svg {
  stroke: #BF0A30;
}
