/*
 * Truecrest Studio design system on top of WoodMart.
 * Content and layout live in Elementor; this file only styles the nl-* classes
 * set on Elementor widgets and containers (Advanced > CSS Classes).
 * Type scale: 13 · 15 · 17 · 20 · 24 · 32/40 · 44 · 56/64 (fluid sizes scale with screen width)
 */
:root {
	--nl-ink: #0F1115;
	--nl-paper: #F5F3EE;
	--nl-white: #FFFFFF;
	--nl-line: #E3DFD6;
	--nl-text: #4A4F57;
	--nl-text-strong: #2B2F36;
	--nl-accent: #FF5A1F;
	--nl-accent-hover: #FF7440;
	--nl-accent-text: #B8380F;
	--nl-dark-text: #C9C6BE;
	--nl-dark-muted: #A9A6A0;
	--nl-dark-line: #2C3037;
	--nl-good: #3FB26B;
	--nl-font-head: "Inter Tight", "Inter", system-ui, sans-serif;
	--nl-font-body: "Inter", system-ui, sans-serif;
	--nl-radius: 14px;
}

body { background: var(--nl-paper); }

/* ---------- type ---------- */
.nl-sec .wd-set-mb { margin-bottom: 0; }
.nl-eyebrow p { margin: 0 0 16px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-h1 .title-wrapper .title { margin: 0; font: 700 clamp(40px, 4.2vw, 64px)/1.04 var(--nl-font-head); letter-spacing: -.035em; color: var(--nl-ink); }
.nl-h2 .title-wrapper .title { margin: 0; font: 700 clamp(30px, 2.9vw, 40px)/1.12 var(--nl-font-head); letter-spacing: -.02em; color: var(--nl-ink); }
.nl-h3 .title-wrapper .title { margin: 0; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-stat .title-wrapper .title { margin: 0; font: 700 44px/1 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-ink); }
.nl-lead p { margin: 16px 0 0; max-width: 620px; font: 400 17px/1.65 var(--nl-font-body); color: var(--nl-text); }
.nl-hero-sub p { margin: 20px 0 0; max-width: 540px; font: 400 clamp(17px, 1.35vw, 20px)/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-p p, .nl-card .info-box-inner p, .nl-step .info-box-inner p { margin: 10px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-meta p { margin: 0; font: 500 13px/1.6 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-note p { margin: 28px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-num { font: 600 13px/1.6 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-accent-text); }
.nl-mt-48 { margin-top: 48px; }

/* ---------- layout helpers ---------- */
.nl-sec > .e-con-inner { gap: 0; }
.nl-head-row > .e-con, .nl-head-row > .elementor-widget { width: auto; }
.nl-head { flex: 1 1 520px; }
.nl-center { text-align: center; }
.nl-center .nl-lead p { margin-inline: auto; }
.nl-center .nl-eyebrow p, .nl-center .nl-note p { text-align: center; }
.nl-center .title-wrapper { text-align: center; }
.nl-half { flex: 1 1 460px !important; width: auto !important; min-width: 0; }

/* ---------- buttons ---------- */
.nl-btn { width: auto !important; }
.nl-btn .btn {
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 24px;
	border-radius: 999px; font: 600 15px/1 var(--nl-font-body); text-transform: none; letter-spacing: 0;
	box-shadow: none; transition: background-color .2s, color .2s, border-color .2s;
}
.nl-btn-primary .btn { background: var(--nl-accent); color: var(--nl-ink); border: 0; }
.nl-btn-primary .btn:hover, .nl-btn-primary .btn:focus-visible { background: var(--nl-accent-hover); color: var(--nl-ink); }
.nl-btn-ghost .btn { background: transparent; color: var(--nl-ink); border: 1px solid var(--nl-ink); }
.nl-btn-ghost .btn:hover { background: var(--nl-ink); color: var(--nl-paper); }
.nl-btn-ghost-dark .btn { background: transparent; color: var(--nl-paper); border: 1px solid #5A5F68; }
.nl-btn-ghost-dark .btn:hover { border-color: var(--nl-paper); color: var(--nl-paper); }
.nl-btn-row { margin-top: 36px; }
.nl-process-intro .nl-btn { margin-top: 32px; }

/* ---------- hero ---------- */
.nl-hero-row { align-items: center; }
.nl-hero-copy { flex: 1 1 520px !important; width: auto !important; min-width: 0; }
.nl-trust { list-style: none; padding: 0; margin: 32px 0 0; display: flex; flex-wrap: wrap; gap: 12px 28px; font: 500 15px/1.4 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-trust li { display: flex; gap: 8px; align-items: center; margin: 0; }
.nl-hero-visual { flex: 1 1 460px !important; width: auto !important; min-width: 0; position: relative; height: clamp(400px, 34vw, 480px); }
.nl-hero-visual > .elementor-widget { position: absolute; margin: 0; }
.nl-hero-browser { inset: 0 0 56px 48px; width: auto !important; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: 16px; box-shadow: 0 30px 60px -30px rgba(15, 17, 21, .35); overflow: hidden; padding-top: 35px; }
.nl-hero-browser::before { content: ""; position: absolute; top: 12px; left: 14px; width: 10px; height: 10px; border-radius: 50%; background: var(--nl-line); box-shadow: 16px 0 0 var(--nl-line), 32px 0 0 var(--nl-line); }
.nl-hero-browser::after { content: ""; position: absolute; top: 34px; left: 0; right: 0; border-top: 1px solid #EEEBE4; }
.nl-hero-browser .elementor-widget-container, .nl-hero-browser .wd-image { height: 100%; }
.nl-hero-browser img { width: 100%; height: 100%; object-fit: cover; object-position: top left; display: block; }
.nl-hero-phone { left: 0; bottom: 0; width: clamp(150px, 12vw, 180px) !important; height: clamp(290px, 23vw, 340px); background: var(--nl-ink); border-radius: 30px; padding: 9px; box-sizing: border-box; box-shadow: 0 30px 60px -20px rgba(15, 17, 21, .5); }
.nl-hero-phone .elementor-widget-container, .nl-hero-phone .wd-image { height: 100%; }
.nl-hero-phone img { width: 100%; height: 100%; object-fit: cover; object-position: top; border-radius: 22px; display: block; }
.nl-score { right: 16px; bottom: 20px; width: auto !important; background: var(--nl-ink); color: var(--nl-paper); border-radius: 12px; padding: 14px 18px; }
.nl-score .elementor-widget-container > div:not(.nl-score-ring), .nl-score .wd-text-block { display: flex; gap: 14px; align-items: center; }
.nl-score-ring { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 4px solid var(--nl-good); box-sizing: border-box; display: grid; place-items: center; font: 700 15px/1 var(--nl-font-body); }
.nl-score p { margin: 0; font: 500 13px/1.45 var(--nl-font-body); color: var(--nl-paper); }
.nl-score span { color: var(--nl-dark-muted); }

/* ---------- strip ---------- */
.nl-strip { border-block: 1px solid var(--nl-line); }


/* ---------- cards (WoodMart info box) ---------- */
.nl-card .wd-info-box { height: 100%; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); padding: 28px; box-sizing: border-box; transition: border-color .2s, transform .2s; }
.nl-card .wd-info-box:hover { border-color: #CFC9BC; transform: translateY(-2px); }
.nl-card .box-icon-wrapper { margin-bottom: 20px; }
.nl-card:not(.nl-photo-card) .info-box-icon img, .nl-card .info-svg-wrapper { width: 40px !important; height: 40px !important; }
.nl-card .info-box-title { margin: 0; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-photo-card .wd-info-box { padding: 0; overflow: hidden; }
.nl-photo-card .box-icon-wrapper { margin: 0; width: 100%; }
.nl-photo-card .info-box-icon { width: 100%; }
.nl-photo-card .info-box-icon img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.nl-photo-card .info-box-content { padding: 24px; }
.nl-photo-card .info-box-inner p { margin-top: 0; }
.nl-photo-card .info-box-content { display: flex; flex-direction: column; }
.nl-photo-card .info-box-title { order: 2; margin-top: 2px; }
.nl-photo-card .info-box-inner { order: 3; }

/* ---------- dark sections ---------- */
.nl-dark { color: var(--nl-paper); }
.nl-dark .nl-eyebrow p { color: #FF8A5C; }
.nl-dark .nl-h2 .title-wrapper .title, .nl-dark .nl-h3 .title-wrapper .title { color: var(--nl-paper); }
.nl-dark .nl-lead p, .nl-dark .nl-contact { color: var(--nl-dark-text); }
.nl-contact { margin: 32px 0 0; font: 500 15px/1.8 var(--nl-font-body); }

/* ---------- work cards (project previews linked to Portfolio case studies) ---------- */
.nl-browser { position: relative; border-radius: 14px; overflow: hidden; background: #1A1D22; border: 1px solid #2C3037; padding-top: 30px; }
.nl-browser::before { content: ""; position: absolute; top: 11px; left: 14px; width: 9px; height: 9px; border-radius: 50%; background: #3A3E45; box-shadow: 15px 0 0 #3A3E45, 30px 0 0 #3A3E45; }
.nl-work-img .elementor-widget-container, .nl-work-img .wd-image, .nl-work-img a { display: block; }
.nl-work-img img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; transition: transform .5s ease; }
.nl-work-card:hover .nl-work-img img { transform: scale(1.02); }
.nl-work-caption { align-items: baseline; margin-top: 6px; }
.nl-work-caption > .elementor-widget { width: auto !important; }
.nl-work-body p { margin: 0; }
.nl-work-outcome { font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-work-services { margin-top: 6px !important; font: 500 13px/1.6 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-work-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 15px/1 var(--nl-font-body); color: #FF8A5C; text-decoration: none; }
.nl-work-link:hover { color: var(--nl-paper); }
.nl-dark .nl-head .nl-lead p { margin-top: 12px; }

/* ---------- process ---------- */
.nl-bordered { border-block: 1px solid var(--nl-line); }
.nl-process-intro { flex: 1 1 340px !important; width: auto !important; }
.nl-steps { flex: 1 1 560px !important; width: auto !important; }
.nl-step .wd-info-box { align-items: flex-start; padding: 24px 0; border-bottom: 1px solid var(--nl-line); gap: 24px; }
.nl-step:last-child .wd-info-box { border-bottom: 0; }
.nl-step .box-icon-wrapper { min-width: 32px; margin: 0; }
.nl-step .info-box-icon { font: 600 13px/1.6 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-accent-text); width: auto; height: auto; }
.nl-step .info-box-title { margin: 0; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-ink); }

/* ---------- standards ---------- */
.nl-report-card { background: var(--nl-ink); color: var(--nl-paper); border-radius: 20px; padding: 32px; }
.nl-report-label { margin: 0 0 24px; font: 600 13px/1.6 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-report { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nl-report div { border: 1px solid var(--nl-dark-line); border-radius: 12px; padding: 20px; }
.nl-report strong { display: block; font: 700 32px/1 var(--nl-font-head); color: var(--nl-good); }
.nl-report span { display: block; margin-top: 8px; font: 500 13px/1.45 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-checks { margin-top: 32px; }
.nl-checks .wd-list { gap: 16px; }
.nl-checks li { gap: 12px; align-items: flex-start; }
.nl-checks .wd-list-content { font: 500 17px/1.5 var(--nl-font-body); color: var(--nl-ink); }

/* ---------- pricing (WoodMart pricing tables) ---------- */
.nl-pricing .wd-price-table { text-align: left; background: var(--nl-paper); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); padding: 28px; box-shadow: none; position: relative; }
.nl-pricing .wd-plan, .nl-pricing .wd-plan-inner, .nl-pricing .wd-plan-price { background: transparent !important; padding: 0; border: 0; }
.nl-pricing .wd-plan-name { padding: 0; text-align: left; }
.nl-pricing .wd-plan-title { font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-ink); text-transform: none; }
.nl-pricing .wd-plan-price { justify-content: flex-start; margin: 24px 0 0; padding: 0; border: 0; color: var(--nl-ink) !important; }
.nl-pricing .wd-plan-price * { color: inherit !important; }
.nl-pricing .wd-plan-price .wd-price-currency, .nl-pricing .wd-plan-price .wd-price-value { font: 700 44px/1 var(--nl-font-head) !important; letter-spacing: -.03em; color: inherit; }
.nl-pricing .wd-plan-price .wd-price-suffix { font: 500 15px/1 var(--nl-font-body) !important; margin-left: 6px; text-transform: none; opacity: .8; }
.nl-pricing .wd-plan-features { margin: 24px 0 0; padding: 0; text-align: left; }
.nl-pricing .wd-plan-feature { padding: 0 0 10px; border: 0; font: 400 15px/1.5 var(--nl-font-body); color: var(--nl-text-strong); text-align: left; }
.nl-pricing .wd-plan-footer { padding: 0; margin-top: 18px; }
.nl-pricing .price-plan-btn { display: flex; justify-content: center; align-items: center; width: 100%; min-height: 48px; height: auto !important; padding-block: 14px !important; border-radius: 999px; background: transparent !important; border: 1px solid var(--nl-ink); color: var(--nl-ink) !important; font: 600 15px/1 var(--nl-font-body); text-transform: none; box-shadow: none; }
.nl-pricing .price-plan-btn:hover { background: var(--nl-ink) !important; color: var(--nl-paper) !important; }
/* WoodMart sets button height and type through --btn-* variables with higher specificity. */
.nl-pricing .price-plan-btn, .nl-form [type=submit] { --btn-height: 48px; min-height: 48px !important; font-size: 15px !important; font-weight: 600 !important; line-height: 1.2 !important; text-transform: none !important; }
.nl-pricing .price-highlighted { background: var(--nl-ink); border-color: var(--nl-ink); transform: none; }
.nl-pricing .price-highlighted .wd-plan-title, .nl-pricing .price-highlighted .wd-plan-price { color: var(--nl-paper); }
.nl-pricing .price-highlighted .wd-price-suffix { color: var(--nl-dark-text); }
.nl-pricing .price-highlighted .wd-plan-feature { color: #E6E3DC; }
.nl-pricing .price-highlighted .price-plan-btn { background: var(--nl-accent) !important; border-color: var(--nl-accent); color: var(--nl-ink) !important; }
.nl-pricing .price-highlighted .price-plan-btn:hover { background: var(--nl-accent-hover) !important; }
.nl-pricing .price-highlighted .wd-plan-price { color: var(--nl-paper) !important; }
.nl-pricing .wd-plan-label { position: absolute; top: 20px; right: 20px; left: auto; margin: 0; transform: none; }
.nl-pricing .wd-plan-label span { display: inline-block; width: auto; transform: none; background: var(--nl-accent); color: var(--nl-ink); font: 600 13px/1 var(--nl-font-body); padding: 8px 12px; border-radius: 999px; text-transform: none; box-shadow: none; }
.nl-pricing .wd-plan-label span::before, .nl-pricing .wd-plan-label span::after { display: none; }

/* ---------- FAQ (WoodMart accordion) ---------- */
.nl-faq-head { flex: 1 1 320px !important; width: auto !important; }
.nl-faq-list { flex: 1 1 560px !important; width: auto !important; }
.nl-faq .wd-accordion-item { border-bottom: 1px solid var(--nl-line); }
.nl-faq .wd-accordion-title { min-height: 44px; padding: 20px 0; }
.nl-faq .wd-accordion-title-text span { font: 600 20px/1.4 var(--nl-font-head); color: var(--nl-ink); }
.nl-faq .wd-accordion-content { padding: 0 0 20px; }
.nl-faq .wd-accordion-content p { font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); margin: 0; }

/* ---------- quote form (Contact Form 7) ---------- */
.nl-quote-intro { flex: 1 1 380px !important; width: auto !important; }
.nl-quote-form-col { flex: 1 1 520px !important; width: auto !important; }
.nl-form { display: flex; flex-wrap: wrap; gap: 16px; }
.nl-form .nl-field { flex: 1 1 220px; display: flex; flex-direction: column; gap: 8px; margin: 0; }
.nl-form .nl-field-full { flex-basis: 100%; margin: 0; }
.nl-form label { font: 500 13px/1 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-form input:not([type=submit]), .nl-form select, .nl-form textarea {
	width: 100%; min-height: 48px; padding: 14px; box-sizing: border-box; border-radius: 10px;
	background: #1A1D22; border: 1px solid #3A3E45; color: var(--nl-paper); font: 400 15px/1.4 var(--nl-font-body);
}
.nl-form input::placeholder, .nl-form textarea::placeholder { color: #8E8B85; }
.nl-form input:focus, .nl-form select:focus, .nl-form textarea:focus { border-color: var(--nl-accent); outline: 2px solid rgba(255, 90, 31, .35); outline-offset: 1px; }
.nl-form [type=submit] { min-height: 48px; height: auto !important; padding: 14px 28px !important; border: 0; border-radius: 999px; background: var(--nl-accent) !important; color: var(--nl-ink) !important; font: 600 15px/1 var(--nl-font-body); text-transform: none; box-shadow: none; cursor: pointer; }
.nl-form [type=submit]:hover { background: var(--nl-accent-hover) !important; }
.home .main-page-wrapper, .home .wd-content-layout { padding-top: 0; padding-bottom: 0; }
.home .site-content { margin-bottom: 0; }
.nl-quote-form .wpcf7-response-output { color: var(--nl-paper); border-radius: 10px; margin: 16px 0 0; }
.nl-quote-form .wpcf7-not-valid-tip { color: #FF9B78; font-size: 13px; }

/* ---------- header (WoodMart header builder) ---------- */
.whb-general-header { background: var(--nl-paper); border-bottom: 1px solid var(--nl-line); }
.nl-logo { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--nl-ink) !important; text-decoration: none; }
.nl-logo span { font: 700 20px/1 var(--nl-font-head); letter-spacing: -.02em; white-space: nowrap; }
.whb-header .wd-nav-main > li > a { min-height: 44px; font: 500 15px/1 var(--nl-font-body); text-transform: none; color: var(--nl-ink); }
.whb-header .wd-nav-main > li > a:hover { color: var(--nl-accent-text); }
.nl-hdr-phone, .nl-hdr-wa-old { display: inline-flex; align-items: center; min-height: 44px; font: 500 15px/1 var(--nl-font-body); color: var(--nl-ink); white-space: nowrap; }
.nl-hdr-btn .btn, .whb-header .nl-hdr-btn.btn {
	min-height: 48px; padding: 0 24px; border-radius: 999px; background: var(--nl-accent); color: var(--nl-ink);
	font: 600 15px/1 var(--nl-font-body); text-transform: none; box-shadow: none; display: inline-flex; align-items: center;
}
.nl-hdr-btn .btn:hover, .whb-header .nl-hdr-btn.btn:hover { background: var(--nl-accent-hover); color: var(--nl-ink); }
.whb-header .wd-tools-element.wd-header-mobile-nav > a { min-width: 48px; min-height: 48px; border: 1px solid var(--nl-line); border-radius: 12px; background: var(--nl-white); justify-content: center; }

/* ---------- footer (HTML Block "Site footer") ---------- */
.nl-footer { color: var(--nl-dark-text); }
.nl-foot-about { flex: 1 1 280px !important; max-width: 340px; width: auto !important; }
.nl-foot-col { flex: 0 1 180px !important; width: auto !important; }
.nl-foot-brand { margin: 0 0 14px; font: 700 20px/1 var(--nl-font-head); color: var(--nl-paper); }
.nl-footer p { margin: 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-foot-title { margin: 0 0 4px !important; font-weight: 600 !important; color: var(--nl-paper) !important; }
.nl-foot-links { list-style: none; margin: 0; padding: 0; }
.nl-foot-links li { margin: 0; }
.nl-foot-links a { display: flex; align-items: center; min-height: 44px; font: 400 15px/1.4 var(--nl-font-body); color: var(--nl-dark-text); text-decoration: none; }
.nl-foot-links a:hover { color: var(--nl-paper); }
.nl-foot-copy { margin-top: 40px; padding-top: 24px; border-top: 1px solid #1F2329; }
.nl-foot-copy p { font-size: 13px; color: #8E8B85; }
.website-wrapper .footer-container, .footer-container .main-footer { background: #0A0C0F; padding: 0; }
.footer-container .main-footer > .container { max-width: none; padding: 0; }

/* ---------- small screens ---------- */
@media (max-width: 600px) {
	.nl-hero-sub p { font-size: 17px; margin-top: 18px; }
	.nl-btn-row { margin-top: 28px; }
	.nl-hero-visual { height: 300px; flex-basis: 100% !important; }
	.nl-hero-phone { width: 116px !important; height: 220px; border-radius: 20px; padding: 6px; }
	.nl-hero-phone img { border-radius: 15px; }
	.nl-score { display: none; }
	.nl-report-card { padding: 24px; }
}

/* ---------- mobile side menu (WoodMart burger) ---------- */
.mobile-nav { background: var(--nl-paper); }
.mobile-nav .wd-nav-mobile > li > a {
	min-height: 56px; padding: 0 20px; font: 600 20px/1.2 var(--nl-font-head); text-transform: none;
	color: var(--nl-ink) !important; border-bottom: 1px solid var(--nl-line);
}
.mobile-nav .wd-nav-mobile > li > a:hover { color: var(--nl-accent-text) !important; }
.mobile-nav .wd-nav-mobile > li:last-child > a { margin: 24px 20px 0; min-height: 48px; justify-content: center; border: 0; border-radius: 999px; background: var(--nl-accent); color: var(--nl-ink) !important; font: 600 15px/1 var(--nl-font-body); }

/* ---------- case studies (Portfolio projects) ---------- */
.nl-case { max-width: 1240px; margin: 0 auto; padding: 56px 0 96px; }
.nl-case > p:not(.nl-case-cta), .nl-case > h1 { max-width: 760px; }
.nl-case .nl-case-eyebrow { margin: 0 0 16px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-case .nl-case-title { margin: 0; font: 700 clamp(36px, 4vw, 56px)/1.05 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-ink); }
.nl-case .nl-case-lead { margin: 20px 0 0; font: 400 20px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-case .nl-case-shot { max-width: none; margin: 40px 0 16px; border-radius: 16px; overflow: hidden; border: 1px solid var(--nl-line); box-shadow: 0 30px 60px -30px rgba(15, 17, 21, .35); }
.nl-case .nl-case-shot img { display: block; width: 100%; height: auto; }
.nl-case p, .nl-case li { font: 400 17px/1.65 var(--nl-font-body); color: var(--nl-text); }


.nl-case .nl-case-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding: 32px 40px; border-radius: var(--nl-radius); background: var(--nl-ink); color: var(--nl-paper); font: 600 20px/1.4 var(--nl-font-head); }
.nl-case-cta a { display: inline-flex; align-items: center; min-height: 48px; margin-left: 12px; padding: 0 24px; border-radius: 999px; background: var(--nl-accent); color: var(--nl-ink); font: 600 15px/1 var(--nl-font-body); text-decoration: none; }
.single-portfolio .portfolio-single-footer, .single-portfolio .wd-single-footer { display: none; }

/* ---------- regional pricing switcher ---------- */
.nl-currency { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; font: 500 15px/1 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-center .nl-currency-wrap { text-align: center; }
.nl-currency select { min-height: 44px; width: auto; padding: 0 36px 0 14px; border: 1px solid var(--nl-line); border-radius: 999px; background-color: var(--nl-white); color: var(--nl-ink); font: 500 15px/1 var(--nl-font-body); }
.nl-currency select:focus-visible { outline: 2px solid var(--nl-accent); outline-offset: 2px; }

/* ---------- brand band above the footer (WoodMart Marquee) ---------- */
.nl-band > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }
.nl-marquee .wd-marquee { padding-block: 22px; }
.nl-marquee .wd-marquee-item { display: inline-flex; align-items: center; gap: 28px; margin-right: 28px; font: 700 clamp(20px, 2vw, 28px)/1 var(--nl-font-head); letter-spacing: -.01em; color: var(--nl-ink); white-space: nowrap; }
.nl-marquee .wd-marquee-item::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--nl-ink); }
@media (prefers-reduced-motion: reduce) {
	.nl-marquee .wd-marquee, .nl-marquee .wd-marquee-content { animation: none !important; }
}

/* case study rows: label left, content right */
.nl-case .nl-case-row { display: grid; grid-template-columns: minmax(180px, 280px) minmax(0, 1fr); gap: 24px 48px; max-width: none; padding: 56px 0; border-top: 1px solid var(--nl-line); }
.nl-case .nl-case-label { margin: 0; font: 600 13px/1.6 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-case .nl-case-row > *:not(.nl-case-label) { grid-column: 2; margin: 0; }
.nl-case .nl-case-statement { font: 600 clamp(22px, 2.2vw, 30px)/1.4 var(--nl-font-head); letter-spacing: -.01em; color: var(--nl-ink); }
.nl-case ul.nl-goal-cards, .nl-case ul.nl-built-list, .nl-case ul.nl-design-cards, .nl-case ul.nl-standards { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.nl-goal-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); counter-reset: goal; }
.nl-goal-cards li { counter-increment: goal; margin: 0; padding: 24px; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); font: 500 17px/1.5 var(--nl-font-body) !important; color: var(--nl-ink) !important; }
.nl-goal-cards li::before { content: counter(goal, decimal-leading-zero); display: block; margin-bottom: 14px; font: 600 13px/1 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-accent-text); }
.nl-built-list { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px 32px !important; }
.nl-built-list li { position: relative; margin: 0; padding: 0 0 14px 34px; border-bottom: 1px solid var(--nl-line); }
.nl-built-list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: #FFE3D6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M6.5 11.5l3 3 6-6.5' stroke='%23B8380F' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 22px no-repeat; }
.nl-design-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.nl-design-cards li { margin: 0; padding: 24px; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); }
.nl-design-cards strong, .nl-standards strong { display: block; margin-bottom: 8px; font: 700 20px/1.2 var(--nl-font-head); color: var(--nl-ink); }
.nl-case .nl-swatches { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px !important; }
.nl-swatches span { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 500 13px/1 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-text-strong); }
.nl-swatches span::before { content: ""; width: 28px; height: 28px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(15, 17, 21, .12); }
.nl-case .nl-case-row-dark { margin-top: 24px; padding: 40px; border: 0; border-radius: 20px; background: var(--nl-ink); }
.nl-case-row-dark .nl-case-label { color: #FF8A5C !important; }
.nl-standards { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.nl-standards li { margin: 0; padding: 20px; border: 1px solid var(--nl-dark-line); border-radius: 12px; color: var(--nl-dark-text) !important; font-size: 15px !important; }
.nl-standards strong { color: var(--nl-good); font-size: 28px; }
@media (max-width: 768px) {
	.nl-case .nl-case-row { grid-template-columns: 1fr; padding: 40px 0; }
	.nl-case .nl-case-row > *:not(.nl-case-label) { grid-column: 1; }
	.nl-case .nl-case-row-dark { padding: 28px 20px; }
}

/* case study header: title left, facts card right */
.nl-case .nl-case-head { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 32px 64px; align-items: start; max-width: none; }
.nl-case .nl-case-head-main > * { max-width: 720px; }
.nl-case .nl-case-facts-card { margin: 0; padding: 28px; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); }
.nl-case .nl-case-badge { display: inline-block; margin: 0 0 20px; padding: 7px 12px; border-radius: 999px; background: #FFE3D6; font: 600 13px/1 var(--nl-font-body); color: var(--nl-accent-text); }
.nl-case .nl-case-facts { display: grid; gap: 16px; margin: 0; font: 500 15px/1.5 var(--nl-font-body); color: var(--nl-ink); }
.nl-case-facts span { display: block; padding-bottom: 16px; border-bottom: 1px solid var(--nl-line); }
.nl-case-facts strong { display: block; margin-bottom: 4px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .04em; text-transform: uppercase; color: var(--nl-text); }
.nl-case .nl-case-note { margin: 16px 0 0; font: 400 13px/1.6 var(--nl-font-body); color: var(--nl-text); }
@media (max-width: 900px) { .nl-case .nl-case-head { grid-template-columns: 1fr; } .nl-case { padding-top: 48px; } }

/*
 * v2 (sales) layouts on top of site.css: homepage v2, inner pages, pricing, contact quiz, blog and legal pages.
 * Same rule as site.css: content lives in Elementor, this file only styles nl-* classes.
 */

/* ---------- utilities ---------- */
.nl-mt-20 { margin-top: 20px; } .nl-mt-24 { margin-top: 24px; } .nl-mt-32 { margin-top: 32px; } .nl-mt-36 { margin-top: 36px; }
.nl-mt-40 { margin-top: 40px; } .nl-mt-44 { margin-top: 44px; } .nl-mt-64 { margin-top: 64px; }
.nl-tight p { margin-top: 4px !important; }
.nl-h1-md .title-wrapper .title { font-size: clamp(36px, 3.8vw, 54px); max-width: 860px; }
.nl-h2-sm .title-wrapper .title { font-size: clamp(26px, 2.3vw, 32px); }
.nl-h3-lg .title-wrapper .title { font-size: clamp(22px, 2vw, 26px); }
.nl-h3 .title-wrapper .title a { color: inherit; text-decoration: none; }
.nl-h3 .title-wrapper .title a:hover { color: var(--nl-accent-text); }
.nl-p-lg p { font-size: 17px; }
.nl-label p { margin: 0 0 12px; font: 600 13px/1.6 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-accent-text); }
.nl-label-muted p { color: var(--nl-dark-muted); font-weight: 500; }
.nl-micro p, p.nl-micro { margin: 14px 0 0; font: 400 13px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-note a { color: var(--nl-ink); font-weight: 600; }
.nl-dark .nl-note p { color: var(--nl-dark-text); }
.nl-dark .nl-note a { color: var(--nl-paper); }
.nl-center .nl-micro p { text-align: center; }
.nl-head-row > .nl-head { flex: 1 1 520px; }

/* tick lists (plain HTML lists inside text blocks) */
.nl-ticks, .nl-trust { list-style: none; padding: 0; margin: 20px 0 0; display: flex; flex-direction: column; gap: 10px; font: 400 15px/1.5 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-ticks li, .nl-trust li { position: relative; margin: 0; padding-left: 26px; }
.nl-ticks li::before, .nl-trust li::before { content: ""; position: absolute; left: 4px; top: 4px; width: 6px; height: 10px; border: solid var(--nl-accent); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.nl-trust { flex-direction: row; flex-wrap: wrap; gap: 12px 28px; margin-top: 32px; font-weight: 500; }
.nl-trust-inline { margin-top: 24px; }
.nl-ticks-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; margin-top: 0; }
.nl-ticks-dark, .nl-dark .nl-ticks { color: #E6E3DC; }
@media (max-width: 640px) { .nl-ticks-2 { grid-template-columns: 1fr; } }

/* ---------- extra button variants ---------- */
.nl-btn-ink .btn { background: var(--nl-ink); color: var(--nl-paper); border: 0; }
.nl-btn-ink .btn:hover { background: #2B2F36; color: var(--nl-paper); }
.nl-btn-row-sm { margin-top: 28px; }

/* ---------- generic card (container class nl-box) ---------- */
.nl-box { background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: var(--nl-radius); padding: 28px !important; height: 100%; }
.nl-box-paper { background: var(--nl-paper); }
.nl-box-strong { border: 2px solid var(--nl-ink); padding: 32px !important; }
.nl-box .nl-h3 .title-wrapper .title { font-size: 20px; }
.nl-box-strong .nl-h3 .title-wrapper .title { font-size: 22px; }
.nl-icon-wrap svg { display: block; margin-bottom: 20px; }

/* ---------- hero v2 ---------- */
.nl-pill { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 24px; padding: 8px 14px 8px 10px; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: 999px; font: 500 13px/1 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-pill span { width: 8px; height: 8px; border-radius: 50%; background: var(--nl-good); }
.nl-hero .nl-h1 .title-wrapper .title { font-size: clamp(40px, 4.6vw, 68px); }
.nl-score { top: 72px; bottom: auto; right: 24px; background: var(--nl-white); color: var(--nl-ink); border: 1px solid var(--nl-line); }
.nl-score p { color: var(--nl-ink); }
.nl-score span { color: var(--nl-text); }
.nl-order { right: 16px; bottom: 16px; width: auto !important; background: var(--nl-ink); border-radius: 12px; padding: 14px 18px; box-shadow: 0 20px 40px -20px rgba(15, 17, 21, .6); }
.nl-order p { margin: 0; font: 500 13px/1.45 var(--nl-font-body); color: var(--nl-paper); }
.nl-order span { color: var(--nl-dark-muted); }
.nl-order strong { font: 600 15px/1.4 var(--nl-font-body); }
@media (max-width: 700px) { .nl-order, .nl-score { display: none; } }

/* ---------- inner page hero ---------- */
.nl-page-hero .nl-hero-row { align-items: center; }
.nl-page-hero .nl-hero-copy { flex: 1 1 560px !important; }
.nl-page-hero .nl-hero-row > .e-con:not(.nl-hero-copy) { flex: 1 1 340px; width: auto; min-width: 0; }
.nl-crumbs p, .nl-crumbs .rank-math-breadcrumb p { margin: 0 0 28px; font: 500 13px/1.4 var(--nl-font-body); color: var(--nl-text); }
.nl-crumbs a { color: var(--nl-text); text-decoration: underline; text-underline-offset: 3px; }
.nl-crumbs .separator { margin: 0 6px; }
.nl-page-hero.nl-center .nl-crumbs p, .nl-page-hero.nl-center .nl-currency-wrap { text-align: center; }
.nl-page-hero.nl-center .nl-h1 .title-wrapper { max-width: 860px; margin-inline: auto; }

/* ---------- pain mirror ---------- */
.nl-bridge p { margin: 40px 0 0; font: 600 20px/1.5 var(--nl-font-head); color: var(--nl-ink); }
.nl-bridge span { color: var(--nl-accent-text); }

/* ---------- before / after ---------- */
.nl-ba-label p { margin: 0 0 12px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-text); }
.nl-ba-label-after p { color: var(--nl-accent-text); }
.nl-before { display: flex; flex-direction: column; aspect-ratio: 16 / 11; overflow: hidden; border: 1px solid #D6D2C8; border-radius: 14px; background: #ECEAE4; font-family: Georgia, serif; }
.nl-before-bar { padding: 14px 18px; background: #6B7A8F; color: #FFFFFF; font: 700 18px/1 Georgia, serif; }
.nl-before-body { display: flex; flex: 1; gap: 14px; padding: 18px; }
.nl-before-img { flex: 1; display: grid; place-items: center; border-radius: 4px; background: #CFCBC2; font-size: 13px; color: #5E5A52; }
.nl-before-lines { flex: 1.4; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #4A4740; }
.nl-before-lines i { height: 10px; border-radius: 3px; background: #CFCBC2; }
.nl-before-lines i:nth-child(2) { width: 80%; }
.nl-before-lines i:nth-child(3) { width: 90%; }
.nl-before-lines em { margin-top: auto; color: #8A3B3B; font-style: normal; }
.nl-ba-list { margin-top: 20px; }
.nl-ba-before li { color: var(--nl-text); }
.nl-ba-before li::before { border: 0; width: 10px; height: 2px; top: 10px; left: 2px; background: #8E8B85; transform: none; }

/* image in a light browser frame */
.nl-frame { position: relative; overflow: hidden; border: 1px solid var(--nl-line); border-radius: 14px; background: var(--nl-white); padding-top: 32px; box-shadow: 0 24px 48px -28px rgba(15, 17, 21, .4); }
.nl-frame::before { content: ""; position: absolute; top: 12px; left: 14px; width: 9px; height: 9px; border-radius: 50%; background: var(--nl-line); box-shadow: 15px 0 0 var(--nl-line), 30px 0 0 var(--nl-line); }
.nl-frame::after { content: ""; position: absolute; top: 32px; left: 0; right: 0; border-top: 1px solid #EEEBE4; }
.nl-frame a { display: block; }
.nl-frame img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; transition: transform .5s ease; }
.nl-frame-badge .elementor-widget-container { position: relative; }
.nl-frame-badge .elementor-widget-container::after { content: "Concept design"; position: absolute; left: 12px; top: 12px; padding: 7px 10px; border-radius: 999px; background: var(--nl-ink); color: var(--nl-paper); font: 600 12px/1 var(--nl-font-body); pointer-events: none; }
.nl-work-card:hover .nl-frame img { transform: scale(1.02); }
.nl-work-card .nl-h3 { margin-top: 4px; }

/* ---------- pillars (dark section) ---------- */
.nl-pillar { background: #171A1F; border-color: var(--nl-dark-line); padding: 32px !important; }
.nl-pillar .nl-h3 .title-wrapper .title { color: var(--nl-paper); font-size: 24px; }
.nl-pillar .nl-label p { color: #FF8A5C; }
.nl-pillar .nl-p p { color: var(--nl-dark-text); }
.nl-pillar .nl-ticks { margin-top: 24px; color: #E6E3DC; }
.nl-pillar .nl-p p.nl-pillar-price { margin-top: 28px; }
.nl-pillar-price a { display: inline-flex; align-items: center; min-height: 44px; font: 600 15px/1 var(--nl-font-body); color: var(--nl-paper); text-decoration: none; }
.nl-pillar-price a:hover { color: #FF8A5C; }
.nl-pillar-accent { background: var(--nl-accent); border-color: var(--nl-accent); }
.nl-pillar-accent .nl-h3 .title-wrapper .title, .nl-pillar-accent .nl-label p, .nl-pillar-accent .nl-ticks, .nl-pillar-accent .nl-pillar-price a { color: var(--nl-ink); }
.nl-pillar-accent .nl-p p { color: #2B1A12; }
.nl-pillar-accent .nl-ticks li::before { border-color: var(--nl-ink); }
.nl-pillar-accent .nl-pillar-price a:hover { color: var(--nl-white); }

/* ---------- founder ---------- */
.nl-founder-visual { flex: 1 1 380px !important; width: auto !important; min-width: 0; position: relative; }
.nl-founder-img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 20px; }
.nl-founder-card { position: absolute !important; left: 20px; right: 20px; bottom: 20px; width: auto !important; }
.nl-logo-card { display: flex; gap: 14px; align-items: center; padding: 18px 20px; border-radius: 14px; background: rgba(245, 243, 238, .96); }
.nl-logo-card svg { flex: none; }
.nl-logo-card strong { display: block; font: 700 20px/1.1 var(--nl-font-head); letter-spacing: -.02em; color: var(--nl-ink); }
.nl-logo-card span { display: block; margin-top: 4px; font: 500 13px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-founder-badge { position: absolute !important; right: -12px; top: 28px; width: auto !important; max-width: 220px; padding: 16px 18px; border-radius: 12px; background: var(--nl-ink); }
.nl-founder-badge p { margin: 0; font: 500 13px/1.5 var(--nl-font-body); color: var(--nl-paper); }
.nl-sign p { margin: 20px 0 0; font: 600 15px/1.5 var(--nl-font-body); color: var(--nl-ink); }
.nl-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px; }
.nl-facts-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 28px; }
.nl-facts div { padding-top: 14px; border-top: 2px solid var(--nl-ink); }
.nl-facts strong { display: block; font: 700 28px/1 var(--nl-font-head); color: var(--nl-ink); }
.nl-facts span { display: block; margin-top: 6px; font: 400 15px/1.5 var(--nl-font-body); color: var(--nl-text); }
@media (max-width: 600px) { .nl-facts { grid-template-columns: 1fr; } .nl-founder-badge { right: 12px; } }

/* ---------- process (4 steps) ---------- */
.nl-step-card { background: transparent; border: 0; border-top: 3px solid var(--nl-ink); border-radius: 0; padding: 20px 0 0 !important; }
.nl-step-card.is-first { border-top-color: var(--nl-accent); }
.nl-step-card .nl-label p { margin-bottom: 8px; }

/* ---------- pricing extras ---------- */
.nl-systems-band { padding: 28px 32px !important; border-radius: 16px; background: var(--nl-ink); }
.nl-systems-band .nl-h3 .title-wrapper .title { color: var(--nl-paper); font-size: 22px; }
.nl-systems-band .nl-p p { color: var(--nl-dark-text); }
.nl-band-copy { flex: 1 1 420px !important; width: auto !important; }
.nl-band-cta, .nl-band-cta > .elementor-widget { width: auto !important; }
.nl-band-price { margin: 0; font: 700 36px/1 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-paper); }
.nl-band-price span { font: 500 15px/1 var(--nl-font-body); letter-spacing: 0; color: var(--nl-dark-text); }
.nl-band-note { margin: 6px 0 0; font: 400 13px/1.5 var(--nl-font-body); }
.nl-systems-band .nl-band-note { color: var(--nl-dark-text); }
.nl-systems-accent { background: var(--nl-accent); }
.nl-systems-accent .nl-h3 .title-wrapper .title, .nl-systems-accent .nl-band-price, .nl-systems-accent .nl-label p { color: var(--nl-ink); }
.nl-systems-accent .nl-p p, .nl-systems-accent .nl-band-price span, .nl-systems-accent .nl-band-note { color: #2B1A12; }
.nl-pricing .wd-plan-subtitle { display: block; margin-top: 8px; font: 400 15px/1.5 var(--nl-font-body); color: var(--nl-text); text-transform: none; }
.nl-pricing .price-highlighted .wd-plan-subtitle { color: var(--nl-dark-text); }
.nl-pricing-narrow { max-width: 960px; margin-inline: auto; }
.nl-calc-card { padding: 36px !important; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); }
.nl-calc-copy { flex: 1 1 340px !important; width: auto !important; }
.nl-calc-wrap { flex: 1 1 520px !important; width: auto !important; }
.nl-calc { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; align-items: end; }
.nl-calc-field { margin: 0; }
.nl-calc label { display: block; margin-bottom: 8px; font: 500 13px/1.4 var(--nl-font-body); color: var(--nl-text); }
.nl-calc input { width: 100%; min-height: 52px; padding: 12px 14px; box-sizing: border-box; border: 1px solid var(--nl-line); border-radius: 10px; background: var(--nl-white); font: 600 20px/1 var(--nl-font-head); color: var(--nl-ink); }
.nl-calc input:focus { border-color: var(--nl-accent); outline: 2px solid rgba(255, 90, 31, .35); }
.nl-calc-result { padding: 14px 16px; border-radius: 12px; background: #FFE3D6; }
.nl-calc-result span { display: block; font: 500 13px/1.4 var(--nl-font-body); color: #5A2410; }
.nl-calc-result strong { display: block; margin-top: 4px; font: 700 28px/1.1 var(--nl-font-head); color: var(--nl-ink); }
.nl-price-card { flex: 1 1 340px !important; padding: 32px !important; border-radius: 16px; background: var(--nl-ink); }
.nl-big-price { margin: 12px 0 0; font: 700 44px/1 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-paper); }
.nl-split { margin: 6px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-price-card .nl-btn { width: 100% !important; margin-top: 28px; }
.nl-price-card .nl-btn .btn { width: 100%; justify-content: center; }
.nl-price-card .nl-micro p { color: var(--nl-dark-muted); text-align: center; }
.nl-box p.nl-mid-price { margin: 14px 0 0; font: 700 32px/1 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-ink); }
.nl-mid-price span { font: 500 14px/1 var(--nl-font-body); letter-spacing: 0; color: var(--nl-text); }
.nl-addons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.nl-addons li { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0; padding: 20px 22px; border-radius: 14px; background: var(--nl-paper); }
.nl-addons strong { display: block; font: 600 16px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-addons div span { display: block; margin-top: 4px; font: 400 13px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-addons [data-nl-price] { font: 700 18px/1 var(--nl-font-head); white-space: nowrap; color: var(--nl-ink); }
.nl-guarantee { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; padding: 36px; border-radius: 20px; background: var(--nl-ink); }
.nl-guarantee strong { display: block; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-paper); }
.nl-guarantee span { display: block; margin-top: 10px; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-dark-text); }

/* ---------- tables ---------- */
.nl-tbl-wrap { overflow-x: auto; background: var(--nl-white); border: 1px solid var(--nl-line); border-radius: 16px; }
.nl-tbl { width: 100%; min-width: 680px; margin: 0; border-collapse: collapse; font: 400 15px/1.5 var(--nl-font-body); }
.nl-tbl th, .nl-tbl td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--nl-line); text-align: center; vertical-align: top; color: var(--nl-text-strong); }
.nl-tbl th:first-child, .nl-tbl td:first-child, .nl-tbl-left th, .nl-tbl-left td { text-align: left; }
.nl-tbl thead th { font: 600 16px/1.3 var(--nl-font-head); text-transform: none; letter-spacing: 0; color: var(--nl-ink); background: var(--nl-paper); }
.nl-tbl tbody th { font: 600 15px/1.4 var(--nl-font-body); color: var(--nl-ink); }
.nl-tbl tr:last-child td, .nl-tbl tr:last-child th { border-bottom: 0; }
.nl-tbl .nl-grp td { background: #FAF8F4; font: 600 13px/1 var(--nl-font-body); letter-spacing: .06em; text-transform: uppercase; color: var(--nl-text); text-align: left; }
.nl-tbl .nl-hl { background: #FFF3EC; }
.nl-tbl .nl-y { color: var(--nl-accent-text); font-weight: 600; }
.nl-tbl .nl-n { color: #8E8B85; }

/* numbered steps (care plans, contact) */
.nl-numbered { list-style: none; margin: 0; padding: 0; counter-reset: nlstep; }
.nl-numbered li { counter-increment: nlstep; display: grid; grid-template-columns: 32px 1fr; gap: 2px 16px; margin: 0; padding: 18px 0; border-bottom: 1px solid var(--nl-line); }
.nl-numbered li:last-child { border-bottom: 0; }
.nl-numbered li::before { content: counter(nlstep, decimal-leading-zero); grid-row: span 2; font: 600 13px/1.6 var(--nl-font-body); font-variant-numeric: tabular-nums; color: var(--nl-accent-text); }
.nl-numbered strong { font: 600 18px/1.4 var(--nl-font-head); color: var(--nl-ink); }
.nl-numbered span { font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-numbered-dark li { border-color: var(--nl-dark-line); }
.nl-numbered-dark li::before { color: #FF8A5C; }
.nl-numbered-dark strong { color: var(--nl-paper); }
.nl-numbered-dark span { color: var(--nl-dark-text); }

/* care plans: health report */
.nl-hero-side { flex: 1 1 380px !important; width: auto !important; }
.nl-health { padding: 28px; border-radius: 20px; background: var(--nl-ink); color: var(--nl-paper); }
.nl-health-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 20px; }
.nl-health-top strong { font: 600 15px/1 var(--nl-font-body); }
.nl-health-top span { display: inline-flex; align-items: center; gap: 8px; font: 500 13px/1 var(--nl-font-body); color: #7FD8A0; }
.nl-health-top i { width: 8px; height: 8px; border-radius: 50%; background: var(--nl-good); }
.nl-health .nl-report strong { color: var(--nl-paper); font-size: 26px; }
.nl-health > p { margin: 16px 0 0; font: 400 13px/1.5 var(--nl-font-body); color: var(--nl-dark-muted); }

/* ---------- services list ---------- */
.nl-svc-list > .e-con-inner { padding-bottom: 96px; }
.nl-svc { padding: 40px 0 !important; border-top: 1px solid var(--nl-line); }
.nl-svc-intro { flex: 1 1 320px !important; width: auto !important; }
.nl-svc-detail { flex: 1 1 560px !important; width: auto !important; }
.nl-svc-price p { margin: 20px 0 0; font: 600 15px/1.5 var(--nl-font-body); color: var(--nl-ink); }
.nl-svc-dark { margin-block: 24px; padding: 40px !important; border: 0 !important; border-radius: 20px; background: var(--nl-ink); }
.nl-svc-dark + .nl-svc { border-top: 0; }
.nl-svc-dark .nl-label p { color: #FF8A5C; }
.nl-svc-dark .nl-h2 .title-wrapper .title, .nl-svc-dark .nl-svc-price p { color: var(--nl-paper); }
.nl-svc-dark .nl-p p { color: var(--nl-dark-text); }
.nl-svc-dark .nl-ticks { color: #E6E3DC; }

/* ---------- online stores ---------- */
.nl-pays { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.nl-pays li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 18px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 600 15px/1 var(--nl-font-body); color: var(--nl-ink); }
.nl-pays i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.nl-cells { overflow: hidden; border: 1px solid var(--nl-dark-line); border-radius: 16px; background: var(--nl-dark-line); }
.nl-cell { border: 0; border-radius: 0; background: var(--nl-ink); }
.nl-cell .nl-label p { color: #FF8A5C; }
.nl-cell .nl-h3 .title-wrapper .title { color: var(--nl-paper); }
.nl-cell .nl-p p { color: var(--nl-dark-text); }

/* ---------- about ---------- */
.nl-founder-intro { flex: 1 1 340px !important; width: auto !important; }
.nl-story { flex: 1 1 600px !important; width: auto !important; }
.nl-story p { margin: 0 0 18px; font: 400 17px/1.75 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-story p.nl-pullquote { font: 600 20px/1.5 var(--nl-font-head); color: var(--nl-ink); }
.nl-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.nl-tags li { display: inline-flex; align-items: center; min-height: 36px; margin: 0; padding: 0 14px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 500 14px/1 var(--nl-font-body); color: var(--nl-ink); }

/* ---------- call to action bands ---------- */
.nl-cta-copy { flex: 1 1 520px !important; width: auto !important; }
.nl-cta-btns, .nl-cta-btns > .elementor-widget { width: auto !important; }
.nl-cta-accent .nl-h2 .title-wrapper .title { color: var(--nl-ink); }
.nl-cta-accent .nl-lead p { color: #2B1A12; }
.nl-cta-accent .nl-btn-ghost .btn:hover { background: var(--nl-ink); color: var(--nl-paper); }

/* ---------- forms v2 ---------- */
.nl-form-stack { flex-direction: column; }
.nl-form-stack .nl-field { flex: none; }
.nl-form-card .wpcf7 { padding: 32px; border: 1px solid var(--nl-dark-line); border-radius: 16px; background: #171A1F; }
.nl-form .nl-form-note { flex-basis: 100%; margin: 0; font: 400 13px/1.5 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-form [type=submit] { width: 100%; justify-content: center; }
.nl-form-inline .nl-field { flex: 1 1 100%; }

/* price quiz (Contact Form 7 + site.js) */
.nl-contact-main { flex: 999 1 560px !important; width: auto !important; min-width: 0; }
.nl-contact-side { flex: 1 1 340px !important; width: auto !important; min-width: 0; }
.nl-quiz-card .wpcf7 { padding: 32px; border: 1px solid var(--nl-line); border-radius: 20px; background: var(--nl-white); }
.nl-quiz-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; }
.nl-quiz-count { font: 500 13px/1 var(--nl-font-body); color: var(--nl-text); }
.nl-quiz-back { min-height: 44px; padding: 0 4px; border: 0; background: none; font: 600 14px/1 var(--nl-font-body); color: var(--nl-ink); cursor: pointer; }
.nl-quiz-back[hidden] { display: none; }
.nl-quiz-bar { height: 6px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: #EEEBE4; }
.nl-quiz-bar span { display: block; width: 25%; height: 100%; border-radius: 999px; background: var(--nl-accent); transition: width .3s ease; }
.nl-quiz:not(.is-js) .nl-quiz-bar, .nl-quiz:not(.is-js) .nl-quiz-back, .nl-quiz:not(.is-js) .nl-estimate { display: none; }
.nl-quiz-step { margin: 28px 0 0; padding: 0; border: 0; }
.nl-quiz-step[hidden] { display: none; }
.nl-quiz-step legend { margin: 0 0 20px; padding: 0; font: 700 clamp(24px, 2.4vw, 30px)/1.2 var(--nl-font-head); letter-spacing: -.02em; color: var(--nl-ink); }
.nl-quiz .wpcf7-radio { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.nl-quiz .wpcf7-list-item { margin: 0; }
.nl-quiz .wpcf7-list-item label { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 14px 18px; box-sizing: border-box; border: 1px solid var(--nl-line); border-radius: 12px; background: var(--nl-white); font: 600 16px/1.3 var(--nl-font-head); color: var(--nl-ink); cursor: pointer; transition: border-color .2s, background-color .2s; }
.nl-quiz .wpcf7-list-item label:hover { border-color: var(--nl-ink); }
.nl-quiz .wpcf7-list-item input { width: 18px; height: 18px; margin: 0; accent-color: var(--nl-accent); }
.nl-quiz .wpcf7-list-item label:has(input:checked) { border: 2px solid var(--nl-accent); background: #FFF3EC; }
.nl-quiz .nl-form label { color: var(--nl-text-strong); }
.nl-quiz .nl-form input:not([type=submit]), .nl-quiz .nl-form textarea { background: var(--nl-white); border-color: #CFCAC0; color: var(--nl-ink); }
.nl-quiz .nl-form .nl-form-note { color: var(--nl-text); }
.nl-estimate { margin-bottom: 24px; padding: 24px 28px; border-radius: 16px; background: var(--nl-ink); }
.nl-estimate p { margin: 0; font: 500 13px/1.5 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-estimate strong { display: block; margin: 10px 0 8px; font: 700 clamp(28px, 3vw, 40px)/1.1 var(--nl-font-head); letter-spacing: -.02em; color: var(--nl-paper); }
.nl-quiz-card .wpcf7-response-output { margin: 16px 0 0; border-radius: 10px; }
.nl-reassure { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.nl-reassure div { padding: 22px; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); }
.nl-reassure svg { display: block; width: 32px; height: 32px; margin-bottom: 14px; }
.nl-reassure strong { display: block; font: 600 18px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-reassure span { display: block; margin-top: 8px; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-ways { display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: 20px; background: var(--nl-ink); }
.nl-ways-title, .nl-next-title { margin: 0 0 4px; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-paper); }
.nl-way { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 14px 16px; border: 1px solid var(--nl-dark-line); border-radius: 12px; color: var(--nl-paper); text-decoration: none; }
.nl-way:hover { border-color: #FF8A5C; color: var(--nl-paper); }
.nl-way strong { font: 600 15px/1.3 var(--nl-font-body); }
.nl-way span { margin-top: 2px; font: 400 13px/1.4 var(--nl-font-body); color: var(--nl-dark-muted); }
.nl-next { padding: 28px; border: 1px solid var(--nl-line); border-radius: 20px; background: var(--nl-white); }
.nl-next .nl-next-title { color: var(--nl-ink); }
.nl-next .nl-numbered strong { font: 600 15px/1.4 var(--nl-font-body); }

/* ---------- blog cards ([nl_latest_posts]) ---------- */
.nl-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.nl-post { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); color: var(--nl-ink); text-decoration: none; transition: border-color .2s; }
.nl-post:hover { border-color: var(--nl-ink); color: var(--nl-ink); }
.nl-post-img { aspect-ratio: 16 / 10; overflow: hidden; background: #E9E5DC; }
.nl-post-img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .5s ease; }
.nl-post:hover .nl-post-img img { transform: scale(1.03); }
.nl-post-body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.nl-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; font: 500 13px/1.4 var(--nl-font-body); color: var(--nl-text); }
.nl-tagpill { padding: 6px 10px; border-radius: 999px; background: #FFF3EC; font: 600 12px/1 var(--nl-font-body); color: var(--nl-accent-text); }
.nl-post h3 { margin: 14px 0 0; font: 600 20px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-post-excerpt { margin: 10px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-post-more { margin-top: auto; padding-top: 20px; font: 600 14px/1 var(--nl-font-body); }
.nl-post-featured { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
.nl-post-featured .nl-post-img { flex: 1 1 520px; aspect-ratio: auto; min-height: 340px; }
.nl-post-featured .nl-post-body { flex: 1 1 420px; justify-content: center; padding: 40px; }
.nl-post-featured h3 { font: 700 clamp(26px, 2.6vw, 36px)/1.15 var(--nl-font-head); letter-spacing: -.02em; }
.nl-post-featured .nl-post-excerpt { font-size: 17px; }
.nl-post-featured .nl-post-more { margin-top: 24px; padding-top: 0; }
.nl-topics { display: flex; flex-wrap: wrap; gap: 10px; }
.nl-topics a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 600 14px/1 var(--nl-font-body); color: var(--nl-ink); text-decoration: none; }
.nl-topics a:hover, .nl-topics a.is-active { border-color: var(--nl-ink); background: var(--nl-ink); color: var(--nl-paper); }
.nl-search-wrap { flex: 1 1 340px !important; max-width: 420px; width: auto !important; }
.nl-search label { display: block; margin-bottom: 8px; font: 500 13px/1 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-search input[type=search] { width: 100%; min-height: 52px; padding: 0 20px; box-sizing: border-box; border: 1px solid #CFCAC0; border-radius: 999px; background: var(--nl-white); font: 400 15px/1.4 var(--nl-font-body); color: var(--nl-ink); }
.nl-search input[type=search]:focus { border-color: var(--nl-accent); outline: 2px solid rgba(255, 90, 31, .35); }

/* ---------- single blog post ---------- */
.single-post .entry-content { max-width: 760px; margin-inline: auto; }
.single-post .entry-content > p, .single-post .entry-content li { font: 400 18px/1.75 var(--nl-font-body); color: var(--nl-text-strong); }
.single-post .entry-content h2 { margin: 48px 0 0; font: 700 28px/1.25 var(--nl-font-head); letter-spacing: -.015em; color: var(--nl-ink); scroll-margin-top: 96px; }
.single-post .entry-content h3 { margin: 32px 0 0; font: 600 21px/1.35 var(--nl-font-head); color: var(--nl-ink); }
.nl-answer { margin: 0 0 32px; padding: 28px 32px; border-radius: 16px; background: var(--nl-ink); }
.nl-answer p { margin: 12px 0 0; font: 500 18px/1.65 var(--nl-font-body); color: var(--nl-paper); }
.nl-answer strong { color: var(--nl-paper); }
.nl-answer .nl-answer-label { margin: 0; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: #FF8A5C; }
.nl-answer a { color: #FF8A5C; text-decoration: underline; text-underline-offset: 2px; }
/* "From my work": the author's first-hand experience (written by Site Autopilot, edited by the owner). Light card with an accent rule, so it reads as a personal note next to the dark quick answer and the orange call to action. */
.nl-experience { margin: 32px 0 0; padding: 24px 28px 24px 26px; border: 1px solid var(--nl-line); border-left: 6px solid var(--nl-accent); border-radius: 16px; background: var(--nl-white); }
.nl-experience .nl-experience-label { margin: 0; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-experience p { margin: 12px 0 0; font: 400 17px/1.7 var(--nl-font-body); color: var(--nl-text-strong); overflow-wrap: anywhere; }
.nl-experience ul { margin: 12px 0 0; padding-left: 20px; }
.nl-experience li { font: 400 17px/1.7 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-experience a { color: var(--nl-accent-text); text-decoration: underline; text-underline-offset: 2px; }
/* "Worked example: your numbers" on posts about business systems: the reader's own arithmetic, framed as an example, not a claim. */
.nl-example { margin: 24px 0 0; padding: 22px 26px; border: 1px dashed var(--nl-text); border-radius: 16px; background: var(--nl-paper); }
.nl-example .nl-example-label { margin: 0; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-text-strong); }
.nl-example p, .nl-example li { margin: 10px 0 0; font: 400 17px/1.7 var(--nl-font-body); color: var(--nl-text-strong); overflow-wrap: anywhere; }
.nl-example ul, .nl-example ol { margin: 10px 0 0; padding-left: 20px; }
.nl-example table { width: 100%; margin-top: 12px; border-collapse: collapse; font: 400 15px/1.5 var(--nl-font-body); }
.nl-example th, .nl-example td { padding: 8px 10px; border-bottom: 1px solid var(--nl-line); text-align: left; }
.nl-post-toc { margin: 0 0 8px; padding: 20px 24px; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); }
.nl-post-toc p { margin: 0 0 8px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-text); }
.nl-post-toc ol { margin: 0; padding-left: 20px; }
.nl-post-toc a { display: inline-flex; align-items: center; min-height: 36px; font: 500 15px/1.3 var(--nl-font-body); color: var(--nl-ink); }
.nl-post-table { overflow-x: auto; margin-top: 20px; border: 1px solid var(--nl-line); border-radius: 14px; background: var(--nl-white); }
.nl-post-table table { width: 100%; min-width: 520px; margin: 0; border-collapse: collapse; font: 400 16px/1.5 var(--nl-font-body); }
.nl-post-table th, .nl-post-table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--nl-line); text-align: left; }
.nl-post-table th { background: var(--nl-paper); font: 600 15px/1.3 var(--nl-font-head); text-transform: none; color: var(--nl-ink); }
.nl-inline-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; margin: 36px 0 0; padding: 28px 32px; border-radius: 16px; background: var(--nl-accent); }
.nl-inline-cta p { margin: 8px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: #2B1A12; }
.nl-inline-cta p.nl-inline-cta-title { margin: 0; font: 700 22px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-inline-cta-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: 999px; background: var(--nl-ink); color: var(--nl-paper) !important; font: 600 15px/1 var(--nl-font-body); text-decoration: none; }
.nl-inline-cta-btn:hover { background: #2B2F36; }
.nl-inline-cta-dark { background: var(--nl-ink); }
.nl-inline-cta-dark p.nl-inline-cta-title { color: var(--nl-paper); }
.nl-inline-cta-dark p { color: var(--nl-dark-text); }
.nl-inline-cta-dark .nl-inline-cta-btn { background: var(--nl-accent); color: var(--nl-ink) !important; }
.nl-post-footer { max-width: 760px; margin: 48px auto 0; }
.nl-author { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding: 28px; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); }
.nl-author > div { flex: 1 1 320px; }
.nl-author p { margin: 6px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-author p.nl-author-name { margin: 0; font: 600 17px/1.3 var(--nl-font-head); color: var(--nl-ink); }
.nl-author a { display: inline-flex; align-items: center; min-height: 44px; font: 600 15px/1 var(--nl-font-body); color: var(--nl-ink); }

/* ---------- legal pages ---------- */
.nl-legal { max-width: 1240px; margin: 0 auto; padding: 56px 0 96px; }
.nl-legal .rank-math-breadcrumb p { margin: 0 0 28px; font: 500 13px/1.4 var(--nl-font-body); color: var(--nl-text); }
.nl-legal .nl-legal-eyebrow { margin: 0 0 16px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-legal h1 { margin: 0; font: 700 clamp(38px, 4vw, 52px)/1.05 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-ink); }
.nl-legal .nl-legal-updated { margin: 14px 0 0; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-text); }
.nl-legal-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.nl-legal-tabs a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 600 14px/1 var(--nl-font-body); color: var(--nl-ink); text-decoration: none; }
.nl-legal-tabs a:hover { border-color: var(--nl-ink); }
.nl-legal-grid { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 760px); gap: 56px; margin-top: 48px; align-items: start; }
.nl-legal-toc p { margin: 0 0 12px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-text); }
.nl-legal-toc ol { margin: 0; padding: 0; list-style: none; }
.nl-legal-toc li { margin: 0; }
.nl-legal-toc a { display: flex; align-items: center; min-height: 40px; padding-left: 14px; border-left: 2px solid var(--nl-line); font: 500 14px/1.3 var(--nl-font-body); color: var(--nl-text-strong); text-decoration: none; }
.nl-legal-toc a:hover { border-color: var(--nl-accent); color: var(--nl-accent-text); }
.nl-legal-summary { padding: 24px 28px; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); }
.nl-legal-summary p:first-child { margin: 0; font: 600 17px/1.5 var(--nl-font-head); color: var(--nl-ink); }
.nl-legal article h2 { margin: 44px 0 0; font: 700 24px/1.25 var(--nl-font-head); letter-spacing: -.01em; color: var(--nl-ink); scroll-margin-top: 96px; }
.nl-legal article p, .nl-legal article li { font: 400 16px/1.75 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-legal article a { color: var(--nl-accent-text); }
@media (max-width: 900px) { .nl-legal-grid { grid-template-columns: 1fr; gap: 32px; } .nl-legal { padding-top: 40px; } }

/* ---------- footer v2 + sticky mobile bar ---------- */
.nl-footer p.nl-foot-contact { margin-top: 16px; }
.nl-foot-copy .wd-text-block { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.nl-sticky { display: none; }
@media (max-width: 767px) {
	.nl-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 400; display: flex; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--nl-line); background: rgba(245, 243, 238, .97); }
	.nl-sticky-main { flex: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 999px; background: var(--nl-accent); color: var(--nl-ink) !important; font: 600 15px/1 var(--nl-font-body); text-decoration: none; }
	.nl-sticky-wa { display: inline-flex; align-items: center; justify-content: center; width: 48px; min-height: 48px; border: 1px solid var(--nl-ink); border-radius: 999px; color: var(--nl-ink) !important; }
	.nl-footer { padding-bottom: 96px !important; }
	.scrollToTop { bottom: 88px !important; }
}

/* ---------- small screens ---------- */
@media (max-width: 600px) {
	.nl-box, .nl-pillar, .nl-calc-card, .nl-systems-band, .nl-svc-dark, .nl-price-card { padding: 24px !important; }
	.nl-quiz-card .wpcf7, .nl-form-card .wpcf7 { padding: 22px; }
	.nl-post-featured .nl-post-img { min-height: 220px; }
	.nl-post-featured .nl-post-body, .nl-answer, .nl-inline-cta { padding: 22px; }
	.nl-experience { padding: 20px 20px 20px 18px; }
	.nl-example { padding: 18px 18px; }
	.nl-example p, .nl-example li { font-size: 16px; }
	.nl-experience p, .nl-experience li { font-size: 16px; }
}

/* ---------- fixes after the first browser check ---------- */
/* WoodMart pricing tables: no inner box, label pinned to the card corner. */
.nl-pricing .wd-plan-inner { position: static !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; }
.nl-pricing .wd-price-table { display: flex; flex-direction: column; }
.nl-pricing .wd-plan-inner { display: flex; flex: 1; flex-direction: column; }
.nl-pricing .wd-plan-footer { margin-top: auto; padding-top: 18px; }
.nl-pricing .wd-plan-feature:last-child { padding-bottom: 0; }
.nl-pricing .price-highlighted .wd-plan-inner { outline: 0; }
/* Dark button on the orange band (WoodMart's bordered style sets its own colours). */
.nl-btn-ink .btn.btn-style-bordered { background: var(--nl-ink) !important; border-color: var(--nl-ink) !important; color: var(--nl-paper) !important; }
.nl-btn-ink .btn.btn-style-bordered:hover { background: #2B2F36 !important; }
.nl-currency-wrap.nl-center, .nl-page-hero.nl-center .nl-currency-wrap { text-align: center; }
.nl-pillar-price a { gap: 6px; }
.nl-note.nl-center p { text-align: center; }
.nl-footer p.nl-foot-brand { margin: 0 0 14px; font: 700 20px/1 var(--nl-font-head); color: var(--nl-paper); }

/* archive heading (categories, portfolio, search) printed by nl_archive_head() */
.nl-archive-head { padding-top: 56px; padding-bottom: 8px; }
.nl-archive-head .nl-archive-eyebrow { margin: 0 0 16px; font: 600 13px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-archive-head h1 { margin: 0; font: 700 clamp(36px, 4vw, 52px)/1.05 var(--nl-font-head); letter-spacing: -.03em; color: var(--nl-ink); }
.nl-archive-head .nl-archive-desc p { max-width: 640px; margin: 16px 0 0; font: 400 17px/1.65 var(--nl-font-body); color: var(--nl-text); }
.nl-pricing .nl-cur-code .wd-price-currency { margin-right: 10px; }
/* contrast fixes (Lighthouse) */
.nl-before-bar { background: #56647A; }
.nl-before-img { color: #45413A; }
.nl-lead a, .nl-note a, .nl-dark .nl-note a { text-decoration: underline; text-underline-offset: 3px; }
.single-post .wd-post-cat a { background: var(--nl-ink); color: var(--nl-paper); }
.single-post .wd-post-meta, .single-post .wd-post-meta a, .single-post .wd-post-meta time { color: var(--nl-text); }
/* pricing table description (inside the plan name, see nl_pricing()) */
.nl-pricing .nl-plan-sub { display: block; margin-top: 8px; font: 400 15px/1.5 var(--nl-font-body); letter-spacing: 0; text-transform: none; color: var(--nl-text); }
.nl-pricing .price-highlighted .nl-plan-sub { color: var(--nl-dark-text); }
/* pricing cards: equal tops, full-width feature lists, unclipped label, centred currency switcher */
.nl-pricing .wd-price-table, .nl-pricing .price-highlighted { overflow: visible !important; transform: none !important; margin-top: 0 !important; }
.nl-pricing .wd-plan-features { width: 100%; margin: 24px 0 0 !important; padding: 0 !important; }
.nl-pricing .wd-plan-feature { padding-inline: 0 !important; }
.nl-pricing .wd-plan-label span { white-space: nowrap; }
.nl-pricing .wd-plan-name { padding-right: 112px; }
.nl-center .nl-currency-wrap .wd-text-block, .nl-currency-wrap.nl-center .wd-text-block { text-align: center !important; }
.nl-pricing .price-highlighted { top: 0 !important; }
.nl-pricing .wd-plan-label { top: 20px !important; right: 20px !important; width: auto !important; height: auto !important; overflow: visible !important; }

/* =====================================================================
 * Motion (assets/js/motion.js). Everything is scoped to html.nl-motion, which the script
 * only adds when motion is on and the visitor has not asked for reduced motion.
 * Only opacity and transform move, so the layout never shifts.
 * ===================================================================== */
:root { --nl-ease: cubic-bezier(.2, .7, .2, 1); }

/* reveal on scroll */
/* hiding is instant (no transition), only the reveal animates; otherwise every hidden card would animate out at load */
.nl-motion .nl-reveal { opacity: 0; transform: translateY(24px); }
.nl-motion .nl-reveal.is-in { opacity: 1; transform: none; transition: opacity .7s var(--nl-ease), transform .7s var(--nl-ease); transition-delay: var(--nl-delay, 0ms); }

/* hero entrance: only the small pieces move (phone, speed badge, order card); the large browser image and the text stay still so the first paint is not delayed */
@keyframes nl-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes nl-slide-left { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes nl-pop-in { 0% { opacity: 0; transform: translateY(12px) scale(.92); } 70% { opacity: 1; transform: translateY(-2px) scale(1.02); } 100% { opacity: 1; transform: none; } }
.nl-motion .nl-hero-phone { animation: nl-rise .9s var(--nl-ease) .35s both; }
.nl-motion .nl-score { animation: nl-pop-in .6s var(--nl-ease) .9s both; }
.nl-motion .nl-order { animation: nl-pop-in .6s var(--nl-ease) 1.3s both; }

/* header: soft shadow once the page scrolls */
.nl-motion .whb-general-header { transition: box-shadow .3s ease; }
.nl-motion .whb-general-header.nl-scrolled { box-shadow: 0 8px 24px -16px rgba(15, 17, 21, .35); }

/* cards: lift on hover */
.nl-motion .nl-box, .nl-motion .nl-pillar, .nl-motion .nl-post, .nl-motion .wd-price-table, .nl-motion .nl-work-card .nl-frame { transition: transform .35s var(--nl-ease), box-shadow .35s var(--nl-ease), border-color .2s; }
.nl-motion .nl-box:hover, .nl-motion .nl-pillar:hover, .nl-motion .nl-post:hover, .nl-motion .wd-price-table:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(15, 17, 21, .45); }
.nl-motion .nl-step-card:hover { transform: none; box-shadow: none; }
.nl-motion .nl-work-card:hover .nl-frame { transform: translateY(-6px); box-shadow: 0 36px 60px -30px rgba(15, 17, 21, .5); }
.nl-motion .price-highlighted { box-shadow: 0 30px 60px -30px rgba(15, 17, 21, .6); }

/* buttons: small lift on hover, press on click */
.nl-motion .nl-btn .btn, .nl-motion .price-plan-btn, .nl-motion .nl-form [type=submit], .nl-motion .nl-sticky-main, .nl-motion .nl-inline-cta-btn { transition: transform .2s var(--nl-ease), background-color .2s, box-shadow .2s, color .2s; }
.nl-motion .nl-btn .btn:hover, .nl-motion .nl-form [type=submit]:hover, .nl-motion .nl-inline-cta-btn:hover { transform: translateY(-2px); }
.nl-motion .nl-btn-primary .btn:hover, .nl-motion .nl-form [type=submit]:hover { box-shadow: 0 10px 20px -10px rgba(255, 90, 31, .7); }
.nl-motion .nl-btn .btn:active, .nl-motion .price-plan-btn:active, .nl-motion .nl-form [type=submit]:active, .nl-motion .nl-sticky-main:active { transform: translateY(1px) scale(.98); }
.nl-motion .nl-pillar-price a span, .nl-motion .nl-post-more span, .nl-motion .nl-author a span { display: inline-block; transition: transform .25s var(--nl-ease); }
.nl-motion .nl-pillar-price a:hover span, .nl-motion .nl-post:hover .nl-post-more span, .nl-motion .nl-author a:hover span { transform: translateX(4px); }

/* guarantee icons draw themselves */
.nl-motion .nl-reveal .nl-icon path, .nl-motion .nl-reveal .nl-icon rect { stroke-dasharray: 120; stroke-dashoffset: 120; transition: stroke-dashoffset 1.1s var(--nl-ease) .25s; }
.nl-motion .nl-reveal.is-in .nl-icon path, .nl-motion .nl-reveal.is-in .nl-icon rect { stroke-dashoffset: 0; }

/* process: the line over each step fills in turn */
.nl-motion .nl-step-card { position: relative; border-top-color: var(--nl-line) !important; }
.nl-motion .nl-step-card::before { content: ""; position: absolute; top: -3px; left: 0; right: 0; height: 3px; background: var(--nl-ink); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--nl-ease); transition-delay: calc(var(--nl-delay, 0ms) * 2.5); }
.nl-motion .nl-step-card.is-first::before { background: var(--nl-accent); }
.nl-motion .nl-step-card.is-in::before, .nl-motion .nl-step-card:not(.nl-reveal)::before { transform: none; }

/* changed numbers pop (currency switch, calculator) */
@keyframes nl-pop { 0% { opacity: .2; transform: translateY(6px); } 100% { opacity: 1; transform: none; } }
.nl-motion .nl-pop { display: inline-block; animation: nl-pop .45s var(--nl-ease); }

/* quiz: each question slides in */
@keyframes nl-step-in { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
.nl-motion .nl-quiz.is-js .nl-quiz-step:not([hidden]) { animation: nl-step-in .4s var(--nl-ease); }
.nl-motion .nl-quiz .wpcf7-list-item label { transition: border-color .2s, background-color .2s, transform .2s var(--nl-ease); }
.nl-motion .nl-quiz .wpcf7-list-item label:hover { transform: translateY(-2px); }

/* before / after drag slider (built by motion.js from the two pictures) */
.nl-motion .nl-ba-row-slider .nl-before, .nl-motion .nl-ba-row-slider .nl-ba-after, .nl-motion .nl-ba-row-slider .nl-ba-label { display: none; }
.nl-ba-slider { --nl-split: 50%; position: relative; margin-top: 48px; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--nl-line); border-radius: 18px; background: var(--nl-white); box-shadow: 0 30px 60px -30px rgba(15, 17, 21, .4); touch-action: pan-y; }
.nl-ba-after-layer, .nl-ba-before-layer { position: absolute; inset: 0; }
.nl-ba-after-layer img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.nl-ba-before-layer { clip-path: inset(0 calc(100% - var(--nl-split)) 0 0); }
.nl-ba-before-layer .nl-before { height: 100%; aspect-ratio: auto; border: 0; border-radius: 0; }
.nl-ba-before-layer .nl-before-bar { font-size: clamp(14px, 1.6vw, 22px); }
.nl-ba-handle { position: absolute; top: 0; bottom: 0; left: var(--nl-split); width: 3px; margin-left: -1.5px; background: var(--nl-white); box-shadow: 0 0 0 1px rgba(15, 17, 21, .15); pointer-events: none; }
.nl-ba-handle::after { content: "\2039 \203A"; position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--nl-accent); color: var(--nl-ink); font: 700 18px/1 var(--nl-font-body); transform: translate(-50%, -50%); box-shadow: 0 8px 20px -8px rgba(15, 17, 21, .5); }
.nl-ba-slider input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.nl-ba-slider:focus-within { outline: 3px solid rgba(255, 90, 31, .5); outline-offset: 3px; }
.nl-ba-chip { position: absolute; top: 16px; z-index: 1; padding: 8px 12px; border-radius: 999px; font: 600 12px/1 var(--nl-font-body); letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.nl-ba-chip-before { left: 16px; background: rgba(15, 17, 21, .8); color: var(--nl-paper); }
.nl-ba-chip-after { right: 16px; background: var(--nl-accent); color: var(--nl-ink); }
@media (max-width: 600px) { .nl-ba-slider { aspect-ratio: 4 / 5; } }

/* phone call-to-action bar: hidden over the hero and near the footer */
@media (max-width: 767px) {
	.nl-motion .nl-sticky { transition: transform .35s var(--nl-ease), opacity .35s; }
	.nl-motion .nl-sticky.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
}
.nl-currency[hidden] { display: none; }
/* motion: archive cards (blog categories, Work page) lift on hover too */
.nl-motion .wd-post .wd-post-inner, .nl-motion .portfolio-entry .portfolio-thumbnail { transition: transform .35s var(--nl-ease), box-shadow .35s var(--nl-ease); }
.nl-motion .wd-post:hover .wd-post-inner { transform: translateY(-4px); }
.nl-motion .portfolio-entry:hover .portfolio-thumbnail { transform: translateY(-6px); box-shadow: 0 30px 50px -30px rgba(15, 17, 21, .5); }

/* ---------- Work page ([nl_projects]) ---------- */
.nl-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.nl-filters button { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); color: var(--nl-ink); font: 600 14px/1 var(--nl-font-body); text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: none; }
.nl-filters button:hover, .nl-filters button.is-active { border-color: var(--nl-ink); background: var(--nl-ink); color: var(--nl-paper); }
.nl-projects { display: grid; grid-template-columns: repeat(auto-fit, minmax(440px, 1fr)); gap: 48px 28px; }
.nl-project { display: flex; flex-direction: column; }
.nl-project[hidden] { display: none; }
.nl-project-frame { position: relative; display: block; overflow: hidden; padding-top: 34px; border: 1px solid var(--nl-line); border-radius: 16px; background: var(--nl-white); box-shadow: 0 24px 48px -28px rgba(15, 17, 21, .4); }
.nl-project-frame::before { content: ""; position: absolute; top: 13px; left: 16px; width: 9px; height: 9px; border-radius: 50%; background: var(--nl-line); box-shadow: 15px 0 0 var(--nl-line), 30px 0 0 var(--nl-line); }
.nl-project-frame img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; transition: transform .5s ease; }
.nl-project-badge { position: absolute; top: 46px; left: 14px; z-index: 1; padding: 7px 10px; border-radius: 999px; background: var(--nl-ink); color: var(--nl-paper); font: 600 12px/1 var(--nl-font-body); }
.nl-project:hover .nl-project-frame img { transform: scale(1.02); }
.nl-project-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 16px; margin-top: 22px; }
.nl-project-head h2 { margin: 0; font: 600 22px/1.3 var(--nl-font-head); }
.nl-project-head h2 a { color: var(--nl-ink); text-decoration: none; }
.nl-project-head h2 a:hover { color: var(--nl-accent-text); }
.nl-project-head span { font: 600 13px/1 var(--nl-font-body); letter-spacing: .04em; text-transform: uppercase; color: var(--nl-accent-text); }
.nl-project-goal { margin: 8px 0 0; font: 400 16px/1.6 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-project-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; }
.nl-project-tags li { display: inline-flex; align-items: center; min-height: 28px; margin: 0; padding: 0 10px; border: 1px solid var(--nl-line); border-radius: 999px; background: var(--nl-white); font: 500 13px/1 var(--nl-font-body); color: var(--nl-text-strong); }
.nl-project-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 10px; font: 600 15px/1 var(--nl-font-body); color: var(--nl-ink); text-decoration: none; }
.nl-project-link span { transition: transform .25s; }
.nl-project-link:hover span { transform: translateX(4px); }
.nl-hero-facts { display: flex; flex-wrap: wrap; gap: 28px; }
.nl-hero-facts strong { display: block; font: 700 36px/1 var(--nl-font-head); color: var(--nl-ink); }
.nl-hero-facts span { display: block; margin-top: 6px; font: 400 15px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-dark-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nl-dark-stats div { padding: 22px; border: 1px solid var(--nl-dark-line); border-radius: 14px; }
.nl-dark-stats strong { display: block; font: 700 30px/1 var(--nl-font-head); color: var(--nl-good); }
.nl-dark-stats span { display: block; margin-top: 8px; font: 400 15px/1.6 var(--nl-font-body); color: var(--nl-dark-text); }
.nl-motion .nl-project-frame { transition: transform .35s var(--nl-ease), box-shadow .35s var(--nl-ease); }
.nl-motion .nl-project:hover .nl-project-frame { transform: translateY(-6px); box-shadow: 0 36px 60px -30px rgba(15, 17, 21, .5); }
@media (max-width: 600px) { .nl-projects { grid-template-columns: 1fr; } .nl-dark-stats { grid-template-columns: 1fr; } }

/* ---------- polish pass (2026-10-31) ---------- */
/* Hero: the phone sits on the browser's empty left margin, not over the site's headline. */
.nl-hero-browser { inset: 0 0 56px 132px; }
@media (max-width: 600px) { .nl-hero-browser { inset: 0 0 40px 84px; } }

/* "How we build": the badge sits inside the photo instead of hanging off it. */
.nl-founder-badge { right: 20px; top: 20px; }

/* Pricing cards: one left edge for title, price, list and button; pill buttons like the rest of the site. */
.nl-pricing .wd-plan-name, .nl-pricing .wd-plan-price, .nl-pricing .wd-plan-footer { padding: 0 !important; }
.nl-pricing .wd-plan-name { padding-right: 112px !important; }
.nl-pricing .wd-plan-price { margin: 24px 0 0 !important; }
.nl-pricing .wd-plan-footer { margin-top: auto !important; padding-top: 24px !important; }
.nl-pricing .wd-plan-features { border: 0 !important; }
.nl-pricing .wd-plan-feature { margin: 0 !important; padding: 12px 0 !important; border-bottom: 1px solid var(--nl-line) !important; }
.nl-pricing .price-highlighted .wd-plan-feature { border-color: rgba(255, 255, 255, .12) !important; }
.nl-pricing .price-plan-btn { border: 1px solid var(--nl-ink) !important; border-radius: 999px !important; box-shadow: none !important; }
.nl-pricing .price-highlighted .price-plan-btn { border-color: var(--nl-accent) !important; }
.nl-pricing .wd-plan-price .wd-price-currency, .nl-pricing .wd-plan-price .wd-price-value { white-space: nowrap; font-size: clamp(32px, 9vw, 44px) !important; }
.nl-pricing .wd-plan-price { flex-wrap: nowrap; }

/* "Before" mock: an old-fashioned site, not a failed one. */
.nl-before { font-family: "Times New Roman", Georgia, serif; background: #F4F1E8; }
.nl-before-bar { background: linear-gradient(#3B5BA5, #22397A); color: #FFF36B; text-align: center; font: italic 700 20px/1.2 "Comic Sans MS", "Times New Roman", serif; padding: 12px 16px; }
.nl-before-nav { padding: 6px 12px; background: #DCD6C6; font-size: 13px; color: #1A3FA0; text-align: center; }
.nl-before-body { gap: 16px; padding: 16px; }
.nl-before-img { flex: 1; min-height: 0; border: 3px ridge #B8B0A0; border-radius: 0; background: #CFCBC2 center / cover no-repeat; filter: saturate(.45) contrast(.8) blur(.6px); font-size: 0; }
.nl-before-lines { flex: 1.3; gap: 8px; font-size: 14px; line-height: 1.45; color: #333; }
.nl-before-lines b { font-size: 17px; color: #8B0000; }
.nl-before-lines p { margin: 0; text-align: justify; }
.nl-before-lines span { color: #1A3FA0; text-decoration: underline; }
.nl-before-foot { padding: 6px 12px; border-top: 1px solid #CFC8B6; font-size: 12px; color: #6B6455; text-align: center; }
.nl-ba-chip { top: auto; bottom: 16px; }
.nl-before-body { align-items: flex-start; }
.nl-before-img { flex: 0 0 44%; aspect-ratio: 4 / 3; }

/* ---------- analytics consent ---------- */
.nl-consent { position: fixed; z-index: 9999; left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; padding: 18px 20px; border-radius: 14px; background: var(--nl-ink); color: var(--nl-paper); box-shadow: 0 24px 48px -20px rgba(15, 17, 21, .6); }
.nl-consent[hidden] { display: none; }
.nl-consent p { flex: 1 1 260px; margin: 0; font: 400 14px/1.5 var(--nl-font-body); color: var(--nl-paper); }
.nl-consent a { color: var(--nl-paper); text-decoration: underline; }
.nl-consent-btns { display: flex; gap: 10px; }
.nl-consent button { min-height: 44px; padding: 0 20px; border: 1px solid var(--nl-paper); border-radius: 999px; background: transparent; color: var(--nl-paper); font: 600 14px/1 var(--nl-font-body); cursor: pointer; }
.nl-consent button:hover, .nl-consent button:focus-visible { background: var(--nl-paper); color: var(--nl-ink); }
@media (max-width: 768px) { .nl-consent { bottom: 92px; } }
.nl-turnstile:empty { display: none; }
.nl-consent button { text-transform: none; letter-spacing: 0; }

/* ---------- contact strip above the footer ---------- */
.elementor-page .wd-content-layout { padding-bottom: 0; }
.nl-contact-strip { background: var(--nl-paper); border-top: 1px solid var(--nl-line); }
.nl-cs-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding-block: 28px; }
.nl-cs-lead { margin: 0; font: 400 17px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-cs-lead strong { font: 700 20px/1.3 var(--nl-font-head); color: var(--nl-ink); margin-right: 8px; }
.nl-cs-links { display: flex; flex-wrap: wrap; gap: 12px; }
.nl-cs-btn { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--nl-ink); border-radius: 999px; font: 600 15px/1 var(--nl-font-body); color: var(--nl-ink); text-decoration: none; transition: background .2s, color .2s; }
.nl-cs-btn:hover, .nl-cs-btn:focus-visible { background: var(--nl-ink); color: var(--nl-paper); }
.nl-cs-btn-main { background: var(--nl-accent); border-color: var(--nl-accent); }
.nl-cs-btn-main:hover, .nl-cs-btn-main:focus-visible { background: var(--nl-accent-hover); border-color: var(--nl-accent-hover); color: var(--nl-ink); }
@media (max-width: 768px) { .nl-cs-inner { flex-direction: column; align-items: flex-start; padding-block: 24px; } .nl-cs-links { width: 100%; } .nl-cs-btn { flex: 1 1 auto; justify-content: center; } }

/* ---------- form sent panel and error box ---------- */
.nl-sent { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 40px 24px; text-align: center; border-radius: 16px; background: var(--nl-white); color: var(--nl-ink); outline: none; animation: nl-pop-in .4s var(--nl-ease, ease) both; }
.nl-sent-icon { width: 64px; height: 64px; border-radius: 50%; background: #1F9D55 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 32px no-repeat; box-shadow: 0 0 0 8px rgba(31, 157, 85, .14); }
.nl-sent-title { margin: 10px 0 0; font: 700 26px/1.2 var(--nl-font-head); letter-spacing: -.02em; color: var(--nl-ink); }
.nl-sent-text { margin: 0; max-width: 460px; font: 400 17px/1.55 var(--nl-font-body); color: var(--nl-text-strong, #2B2F36); }
.nl-sent-small { margin: 0; font: 400 14px/1.5 var(--nl-font-body); color: var(--nl-text); }
.nl-sent-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 14px; }
.nl-sent-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: 999px; background: var(--nl-accent); color: var(--nl-ink); font: 600 15px/1 var(--nl-font-body); text-decoration: none; }
.nl-sent-btn:hover, .nl-sent-btn:focus-visible { background: var(--nl-accent-hover); color: var(--nl-ink); }
.nl-sent-again { min-height: 48px; padding: 0 20px; border: 1px solid var(--nl-line); border-radius: 999px; background: transparent; color: var(--nl-ink); font: 600 15px/1 var(--nl-font-body); text-transform: none; cursor: pointer; }
.nl-sent-again:hover { border-color: var(--nl-ink); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output { margin: 16px 0 0; padding: 14px 16px; border: 1px solid #E5484D !important; border-radius: 12px; background: #FDECEC; color: #8E1B1F !important; font: 500 15px/1.5 var(--nl-font-body); }
.wpcf7 form.sent .wpcf7-response-output { display: none; }

/* ---------- WhatsApp in the header and footer ---------- */
.nl-hdr-wa { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px; font: 500 15px/1 var(--nl-font-body); color: var(--nl-ink); text-decoration: none; white-space: nowrap; }
.nl-hdr-wa svg { width: 22px; height: 22px; flex: none; color: #1FAF38; }
.nl-hdr-wa:hover, .nl-hdr-wa:focus-visible { color: var(--nl-accent-text, #C2410C); }
.nl-foot-wa { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- service cards: value anchor and "see everything" ---------- */
.nl-pillar .nl-anchor { display: block; margin-top: 2px; font-size: 13px; color: #FF8A5C; }
.nl-pillar-accent .nl-anchor { color: #2B1A12; }
.nl-pillar .nl-p p.nl-pillar-more { margin-top: 18px; }
.nl-pillar-more a { font: 600 14px/1.4 var(--nl-font-body); color: var(--nl-dark-text); text-decoration: underline; text-underline-offset: 3px; }
.nl-pillar-more a:hover { color: var(--nl-paper); }
.nl-pillar-accent .nl-pillar-more a { color: var(--nl-ink); }
.nl-pillar .nl-ticks li { margin-bottom: 8px; }
.nl-pillar-price a { display: inline-block; line-height: 1.45; }
.nl-pillar-price a [data-nl-price] { white-space: nowrap; }
@media (max-width: 768px) { .nl-sticky-wa { background: #25D366 !important; border-color: #25D366 !important; color: #FFFFFF !important; } }

/* Prices stay hidden for the few milliseconds until site.js shows the visitor's currency (class set in <head> by nl_price_pending). */
.nl-price-pending [data-nl-price], .nl-price-pending [data-nl-split], .nl-price-pending [data-nl-symbol], .nl-price-pending .nl-pricing .wd-price-currency, .nl-price-pending .nl-pricing .wd-price-value { visibility: hidden; }
/* Open mobile menu: the page behind does not scroll. */
html.nl-menu-open, html.nl-menu-open body { overflow: hidden; }
