/* ============================================================================
   NOBLE BLINDS PRODUCTION DESIGN SYSTEM
   Version: 1.1.0

   PURPOSE
   -------
   One production stylesheet for all approved Noble Blinds section recipes,
   theme surfaces, reusable content components and approved composition rules.

   IMPORTANT DESIGN-FIDELITY RULE
   ------------------------------
   Shared tokens and components may be maintained globally. Recipe geometry
   (grid proportions, aspect ratios, spacing, hero heights and breakpoints)
   must not be changed unless the approved reference and changelog are updated.

   REQUIRED HTML SCOPE
   -------------------
   Each copied section uses this pattern:

   <div class="nb-component-scope nb-scope--primary">
     <div class="nb-lib-work">
       <section data-nb-section="WK-01">...</section>
     </div>
   </div>

   Available theme scopes:
   - .nb-scope--primary   Warm Ivory #F7F4EC
   - .nb-scope--secondary Soft Stone #E8E0D3
   - .nb-scope--dark      Heritage Green #24352D

   TABLE OF CONTENTS
   -----------------
   01. Global design tokens
   02. Theme scopes
   03. Composition-safe content components
   04. Approved locked section modules
   05. Accessibility and interaction support
   ============================================================================ */

/* 01. GLOBAL DESIGN TOKENS -------------------------------------------------- */
:root {
  --nb-color-heritage-green: #24352D;
  --nb-color-forest-green: #192820;
  --nb-color-antique-gold: #B08D57;
  --nb-color-bronze: #8B6535;
  --nb-color-bronze-hover: #6F4E27;
  --nb-color-gold-light: #D3AE69;
  --nb-color-gold-light-hover: #E2C58E;
  --nb-color-warm-ivory: #F7F4EC;
  --nb-color-soft-stone: #E8E0D3;
  --nb-color-text: #202421;
  --nb-color-muted: #5B625D;
  --nb-color-white: #FFFFFF;
  --nb-color-soft-white: #FFFFE6;

  --nb-font-heading: "DM Serif Display", Georgia, serif;
  --nb-font-body: "DM Sans", Arial, sans-serif;

  --nb-container-main: 77.5rem;
  --nb-container-wide: 90rem;
  --nb-container-narrow: 60rem;
  --nb-gutter: clamp(1rem, 4vw, 2.5rem);

  --nb-space-section: clamp(4rem, 8vw, 6.5rem);
  --nb-space-section-compact: clamp(3rem, 6vw, 5rem);
  --nb-radius-sm: .25rem;
  --nb-radius-md: .5rem;
  --nb-transition: 180ms ease;
}

.nb-component-scope,
.nb-component-scope *,
.nb-component-scope *::before,
.nb-component-scope *::after {
  box-sizing: border-box;
}

.nb-component-scope {
  color: var(--nb-c-text);
  background: var(--nb-c-bg);
  font-family: var(--nb-font-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.nb-component-scope img,
.nb-component-scope svg {
  display: block;
  max-width: 100%;
}

.nb-component-scope a {
  color: inherit;
  text-decoration: none;
}

.nb-component-scope button,
.nb-component-scope input,
.nb-component-scope select,
.nb-component-scope textarea {
  font: inherit;
}

.nb-component-scope :focus-visible {
  outline: 3px solid var(--nb-c-focus);
  outline-offset: 4px;
}

/* 02. THEME SCOPES --------------------------------------------------------- */
.nb-scope--primary {
  --nb-c-bg: #F7F4EC;
  --nb-c-surface: #FFFFFF;
  --nb-c-surface-alt: #E8E0D3;
  --nb-c-text: #202421;
  --nb-c-muted: #5B625D;
  --nb-c-border: rgba(32, 36, 33, .14);
  --nb-c-border-strong: rgba(36, 53, 45, .24);
  --nb-c-accent: #8B6535;
  --nb-c-accent-soft: rgba(139, 101, 53, .10);
  --nb-c-button-bg: #8B6535;
  --nb-c-button-text: #FFFFFF;
  --nb-c-button-hover: #6F4E27;
  --nb-c-focus: #B08D57;
}

.nb-scope--secondary {
  --nb-c-bg: #E8E0D3;
  --nb-c-surface: #F7F4EC;
  --nb-c-surface-alt: #FFFFFF;
  --nb-c-text: #202421;
  --nb-c-muted: #5B625D;
  --nb-c-border: rgba(32, 36, 33, .16);
  --nb-c-border-strong: rgba(36, 53, 45, .24);
  --nb-c-accent: #8B6535;
  --nb-c-accent-soft: rgba(139, 101, 53, .11);
  --nb-c-button-bg: #8B6535;
  --nb-c-button-text: #FFFFFF;
  --nb-c-button-hover: #6F4E27;
  --nb-c-focus: #B08D57;
}

.nb-scope--dark {
  --nb-c-bg: #24352D;
  --nb-c-surface: #31463C;
  --nb-c-surface-alt: #192820;
  --nb-c-text: #FFFFFF;
  --nb-c-muted: rgba(255, 255, 255, .76);
  --nb-c-border: rgba(255, 255, 255, .18);
  --nb-c-border-strong: rgba(255, 255, 255, .24);
  --nb-c-accent: #D3AE69;
  --nb-c-accent-soft: rgba(211, 174, 105, .14);
  --nb-c-button-bg: #D3AE69;
  --nb-c-button-text: #192820;
  --nb-c-button-hover: #E2C58E;
  --nb-c-focus: #D3AE69;
}

/* 03. COMPOSITION-SAFE CONTENT COMPONENTS ---------------------------------
   Use these components when an approved heading or supporting element needs
   to be combined with the body of another compatible section. Do not copy
   section-specific CSS between recipes. See the composition guide. */
.nb-c-container {
  width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container-main));
  margin-inline: auto;
}

.nb-c-section-head {
  max-width: 49rem;
  margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.nb-c-section-head--split {
  max-width: none;
}

.nb-c-section-head--center {
  margin-inline: auto;
  text-align: center;
}

.nb-c-section-head--rail {
  padding-left: 1.25rem;
  border-left: 3px solid var(--nb-c-accent);
}

.nb-c-eyebrow {
  margin: 0 0 .75rem;
  color: var(--nb-c-accent);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nb-c-display,
.nb-c-page-title,
.nb-c-section-title,
.nb-c-card-title,
.nb-c-subtitle {
  margin: 0;
  color: var(--nb-c-text);
  font-family: var(--nb-font-heading);
  font-weight: 400;
  text-wrap: balance;
}

.nb-c-display { font-size: clamp(2.75rem, 2.05rem + 2.8vw, 5rem); line-height: 1.02; letter-spacing: -.027em; }
.nb-c-page-title { font-size: clamp(2.5rem, 2rem + 2vw, 4.25rem); line-height: 1.04; letter-spacing: -.025em; }
.nb-c-section-title { max-width: 24ch; font-size: clamp(2rem, 1.65rem + 1.35vw, 3rem); line-height: 1.08; letter-spacing: -.022em; }
.nb-c-card-title { font-size: clamp(1.35rem, 1.2rem + .55vw, 1.75rem); line-height: 1.14; }
.nb-c-subtitle { font-family: var(--nb-font-body); font-size: 1.1rem; font-weight: 700; line-height: 1.35; }

.nb-c-section-head--center .nb-c-section-title,
.nb-c-section-head--center .nb-c-description { margin-inline: auto; }

.nb-c-description {
  max-width: 66ch;
  margin: 1rem 0 0;
  color: var(--nb-c-muted);
  font-size: clamp(1rem, .96rem + .18vw, 1.1rem);
  line-height: 1.72;
  text-wrap: pretty;
}

.nb-c-body { margin: 0; color: var(--nb-c-muted); font-size: 1rem; line-height: 1.72; }
.nb-c-small { margin: 0; color: var(--nb-c-muted); font-size: .84rem; line-height: 1.6; }

.nb-c-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.nb-c-button {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .78rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--nb-radius-sm);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.25;
  transition: transform var(--nb-transition), background var(--nb-transition), color var(--nb-transition), border-color var(--nb-transition);
}
.nb-c-button:hover { transform: translateY(-2px); }
.nb-c-button--primary { color: var(--nb-c-button-text); background: var(--nb-c-button-bg); }
.nb-c-button--primary:hover { background: var(--nb-c-button-hover); }
.nb-c-button--secondary { color: var(--nb-c-text); background: transparent; border-color: color-mix(in srgb, var(--nb-c-text) 28%, transparent); }
.nb-c-button--secondary:hover { background: color-mix(in srgb, var(--nb-c-text) 7%, transparent); border-color: color-mix(in srgb, var(--nb-c-text) 44%, transparent); }
.nb-scope--dark .nb-c-button--secondary { color: #FFFFE6; border-color: color-mix(in srgb, #FFFFE6 28%, transparent); }
.nb-scope--dark .nb-c-button--secondary:hover { color: #FFFFE6; background: color-mix(in srgb, #FFFFE6 8%, transparent); border-color: color-mix(in srgb, #FFFFE6 44%, transparent); }

.nb-c-text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--nb-c-accent); font-size: .9rem; font-weight: 700; }
.nb-c-text-link::after { content: "→"; transition: transform var(--nb-transition); }
.nb-c-text-link:hover::after { transform: translateX(4px); }

.nb-c-chip,
.nb-c-badge { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--nb-c-border); font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.nb-c-chip { min-height: 1.8rem; padding: .3rem .58rem; border-radius: 999px; color: var(--nb-c-muted); background: var(--nb-c-surface-alt); }
.nb-c-badge { padding: .38rem .62rem; border-radius: 3px; color: var(--nb-c-button-text); background: var(--nb-c-button-bg); border-color: transparent; }
.nb-c-status { display: inline-flex; align-items: center; gap: .45rem; color: var(--nb-c-muted); font-size: .84rem; font-weight: 700; }
.nb-c-status::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; }
.nb-c-status--yes { color: #2F7155; }
.nb-scope--dark .nb-c-status--yes { color: #A9D9C1; }
.nb-c-status--limited { color: var(--nb-c-accent); }

.nb-c-breadcrumb { margin: 0; color: var(--nb-c-muted); font-size: .8rem; }
.nb-c-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.nb-c-breadcrumb li { display: inline-flex; gap: .4rem; }
.nb-c-breadcrumb li:not(:last-child)::after { content: "/"; opacity: .55; }
.nb-c-breadcrumb [aria-current="page"] { color: var(--nb-c-text); font-weight: 700; }

.nb-c-feature-list,
.nb-c-step-list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.nb-c-feature-list li { position: relative; padding-left: 1.5rem; color: var(--nb-c-muted); }
.nb-c-feature-list li::before { content: ""; position: absolute; left: 0; top: .63em; width: .55rem; height: .55rem; border: 2px solid var(--nb-c-accent); border-radius: 50%; }
.nb-c-step-list { counter-reset: nb-c-step; }
.nb-c-step-list li { counter-increment: nb-c-step; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: .8rem; padding-top: .85rem; border-top: 1px solid var(--nb-c-border); }
.nb-c-step-list li::before { content: counter(nb-c-step, decimal-leading-zero); color: var(--nb-c-accent); font-family: var(--nb-font-heading); font-size: 1.45rem; line-height: 1; }
.nb-c-step-list strong { display: block; color: var(--nb-c-text); }
.nb-c-step-list span { display: block; margin-top: .2rem; color: var(--nb-c-muted); font-size: .88rem; }

.nb-c-quote { margin: 0; padding: 1.25rem 1.4rem; border-left: 3px solid var(--nb-c-accent); background: var(--nb-c-accent-soft); }
.nb-c-quote p { margin: 0; color: var(--nb-c-text); font-family: var(--nb-font-heading); font-size: clamp(1.25rem, 2.5vw, 1.7rem); line-height: 1.35; }
.nb-c-quote footer { margin-top: .8rem; color: var(--nb-c-muted); font-size: .8rem; font-weight: 700; }
.nb-c-callout { padding: 1.25rem; border: 1px solid var(--nb-c-border); border-left: 4px solid var(--nb-c-accent); border-radius: var(--nb-radius-sm); background: var(--nb-c-surface); }
.nb-c-callout__label { margin: 0 0 .45rem; color: var(--nb-c-accent); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nb-c-callout h3 { margin: 0; color: var(--nb-c-text); font-size: 1.05rem; }
.nb-c-callout p:last-child { margin: .5rem 0 0; color: var(--nb-c-muted); }

.nb-c-field { display: grid; gap: .42rem; }
.nb-c-field label { color: var(--nb-c-text); font-size: .8rem; font-weight: 700; }
.nb-c-control { width: 100%; min-height: 3rem; padding: .75rem .875rem; border: 1px solid var(--nb-c-border); border-radius: var(--nb-radius-sm); color: var(--nb-c-text); background: var(--nb-c-bg); outline: none; }
.nb-c-control:focus { border-color: var(--nb-c-accent); box-shadow: 0 0 0 4px var(--nb-c-accent-soft); }
textarea.nb-c-control { min-height: 7rem; resize: vertical; }
.nb-c-form { display: grid; gap: 1rem; }

.nb-c-faq-item { overflow: hidden; border: 1px solid var(--nb-c-border); border-radius: var(--nb-radius-sm); background: var(--nb-c-surface); }
.nb-c-faq-item summary { position: relative; min-height: 3.75rem; display: flex; align-items: center; padding: 1rem 3.5rem 1rem 1.1rem; color: var(--nb-c-text); font-weight: 700; cursor: pointer; list-style: none; }
.nb-c-faq-item summary::-webkit-details-marker { display: none; }
.nb-c-faq-item summary::after { content: "+"; position: absolute; right: 1.1rem; top: 50%; width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border: 1px solid var(--nb-c-border); border-radius: 50%; color: var(--nb-c-accent); transform: translateY(-50%); }
.nb-c-faq-item[open] summary::after { content: "−"; }
.nb-c-faq-item__answer { padding: 0 1.1rem 1.1rem; color: var(--nb-c-muted); }
.nb-c-faq-item__answer p { margin: 0; }

.nb-c-card { overflow: hidden; border: 1px solid var(--nb-c-border); border-radius: var(--nb-radius-sm); background: var(--nb-c-surface); }
.nb-c-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--nb-c-surface-alt); }
.nb-c-card__media img { width: 100%; height: 100%; object-fit: cover; }
.nb-c-card__body { padding: 1.25rem; }
.nb-c-card__body .nb-c-card-title { margin-bottom: .55rem; }
.nb-c-card__footer { margin-top: 1rem; }

@media (min-width: 48rem) {
  .nb-c-section-head--split {
    display: grid;
    grid-template-columns: minmax(0, .72fr) minmax(18rem, .28fr);
    gap: 3rem;
    align-items: end;
  }
  .nb-c-section-head--split .nb-c-description { margin-top: 0; }
}

/* 04. APPROVED LOCKED SECTION MODULES ------------------------------------- */
/* ===== FUTURE LEAD COMPONENTS MODULE — SOURCE GEOMETRY PRESERVED ===== */
/* =========================================================
   NOBLE BLINDS — FUTURE LEAD SECTION COMPONENTS
   Mobile-first reusable CSS. Theme changes are applied through:
   .nb-surface-primary, .nb-surface-secondary and .nb-theme-dark
   ========================================================= */
.nb-lib-future{
  --nb-primary: #24352D;
  --nb-primary-dark: #192820;
  --nb-accent: #B08D57;
  --nb-accent-dark: #8B6535;
  --nb-accent-light: #D3AE69;
  --nb-bg-primary: #F7F4EC;
  --nb-bg-secondary: #E8E0D3;
  --nb-text: #202421;
  --nb-muted: #5B625D;
  --nb-white: #FFFFFF;

  --nb-font-heading: "DM Serif Display", Georgia, serif;
  --nb-font-body: "DM Sans", Arial, sans-serif;

  --nb-container: 77.5rem;
  --nb-container-narrow: 60rem;
  --nb-gutter: clamp(1rem, 4vw, 2.5rem);
  --nb-section-space: clamp(4rem, 8vw, 7rem);
  --nb-section-space-compact: clamp(3rem, 6vw, 5rem);
  --nb-gap-1: .5rem;
  --nb-gap-2: .75rem;
  --nb-gap-3: 1rem;
  --nb-gap-4: 1.5rem;
  --nb-gap-5: 2rem;
  --nb-gap-6: 3rem;
  --nb-radius-sm: .25rem;
  --nb-radius-md: .5rem;
  --nb-radius-lg: .75rem;
  --nb-shadow-soft: 0 1rem 2.5rem rgba(25, 40, 32, .10);
  --nb-shadow-lift: 0 1.25rem 3rem rgba(25, 40, 32, .18);
  --nb-transition: 220ms ease;
}
.nb-lib-future *,
.nb-lib-future *::before,
.nb-lib-future *::after{
  box-sizing: border-box;
}
.nb-lib-future{
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}
.nb-lib-future{
  margin: 0;
  color: var(--nb-text);
  background: var(--nb-bg-primary);
  font-family: var(--nb-font-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.nb-lib-future img{
  display: block;
  width: 100%;
  max-width: 100%;
}
.nb-lib-future a{
  color: inherit;
  text-decoration: none;
}
.nb-lib-future button,
.nb-lib-future input,
.nb-lib-future textarea,
.nb-lib-future select{
  font: inherit;
}
.nb-lib-future :focus-visible{
  outline: 3px solid var(--nb-focus, var(--nb-accent));
  outline-offset: 4px;
}
/* ------------------------------
   Theme and surfaces
   ------------------------------ */
.nb-lib-future .nb-section{
  --nb-current-bg: var(--nb-bg-primary);
  --nb-current-surface: var(--nb-white);
  --nb-current-surface-alt: var(--nb-bg-secondary);
  --nb-current-text: var(--nb-text);
  --nb-current-muted: var(--nb-muted);
  --nb-current-border: rgba(32, 36, 33, .14);
  --nb-current-accent: var(--nb-accent-dark);
  --nb-current-accent-soft: rgba(139, 101, 53, .10);
  --nb-current-button-bg: var(--nb-accent-dark);
  --nb-current-button-text: var(--nb-white);
  --nb-current-button-hover: #6F4E27;
  --nb-current-overlay: linear-gradient(180deg, rgba(18, 29, 23, 0) 28%, rgba(18, 29, 23, .22) 56%, rgba(18, 29, 23, .88) 100%);
  --nb-focus: var(--nb-accent-dark);

  position: relative;
  overflow: hidden;
  color: var(--nb-current-text);
  background: var(--nb-current-bg);
}
.nb-lib-future .nb-surface-primary{
  --nb-current-bg: var(--nb-bg-primary);
  --nb-current-surface: var(--nb-white);
  --nb-current-surface-alt: var(--nb-bg-secondary);
}
.nb-lib-future .nb-surface-secondary{
  --nb-current-bg: var(--nb-bg-secondary);
  --nb-current-surface: var(--nb-bg-primary);
  --nb-current-surface-alt: var(--nb-white);
}
.nb-lib-future .nb-theme-dark{
  --nb-current-bg: var(--nb-primary);
  --nb-current-surface: rgba(255, 255, 255, .065);
  --nb-current-surface-alt: rgba(255, 255, 255, .10);
  --nb-current-text: var(--nb-white);
  --nb-current-muted: rgba(255, 255, 255, .76);
  --nb-current-border: rgba(255, 255, 255, .18);
  --nb-current-accent: var(--nb-accent-light);
  --nb-current-accent-soft: rgba(211, 174, 105, .14);
  --nb-current-button-bg: var(--nb-accent-light);
  --nb-current-button-text: var(--nb-primary-dark);
  --nb-current-button-hover: #E2C58E;
  --nb-focus: var(--nb-accent-light);
}
.nb-lib-future .nb-container{
  width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container));
  margin-inline: auto;
}
.nb-lib-future .nb-container--narrow{
  max-width: var(--nb-container-narrow);
}
.nb-lib-future .nb-section__inner{
  padding-block: var(--nb-section-space);
}
.nb-lib-future .nb-section__inner--compact{
  padding-block: var(--nb-section-space-compact);
}
/* ------------------------------
   Shared section heading
   ------------------------------ */
.nb-lib-future .nb-section-head{
  max-width: 49rem;
  margin-bottom: clamp(1.75rem, 4vw, 3rem);
}
.nb-lib-future .nb-section-head--center{
  margin-inline: auto;
  text-align: center;
}
.nb-lib-future .nb-section-head--split{
  max-width: none;
}
.nb-lib-future .nb-eyebrow{
  margin: 0 0 .75rem;
  color: var(--nb-current-accent);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.nb-lib-future .nb-section-title{
  max-width: 18ch;
  margin: 0;
  color: var(--nb-current-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(2rem, 1.65rem + 1.35vw, 3rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.022em;
  text-wrap: balance;
}
.nb-lib-future .nb-section-head--center .nb-section-title{
  margin-inline: auto;
}
.nb-lib-future .nb-section-summary{
  max-width: 66ch;
  margin: 1rem 0 0;
  color: var(--nb-current-muted);
  font-size: clamp(1rem, .96rem + .18vw, 1.1rem);
  line-height: 1.72;
  text-wrap: pretty;
}
.nb-lib-future .nb-section-head--center .nb-section-summary{
  margin-inline: auto;
}
@media (min-width: 48rem){.nb-lib-future .nb-section-head--split{
    display: grid;
    grid-template-columns: minmax(0, .68fr) minmax(18rem, .32fr);
    gap: var(--nb-gap-6);
    align-items: end;
  }
.nb-lib-future .nb-section-head--split .nb-section-summary{
    margin-top: 0;
  }}
/* ------------------------------
   Buttons and small labels
   ------------------------------ */
.nb-lib-future .nb-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
}
.nb-lib-future .nb-button{
  min-height: 2.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .75rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--nb-radius-sm);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.2;
  transition: background var(--nb-transition), color var(--nb-transition), border-color var(--nb-transition), transform var(--nb-transition);
}
.nb-lib-future .nb-button:hover{
  transform: translateY(-2px);
}
.nb-lib-future .nb-button--primary{
  color: var(--nb-current-button-text);
  background: var(--nb-current-button-bg);
}
.nb-lib-future .nb-button--primary:hover{
  background: var(--nb-current-button-hover);
}
.nb-lib-future .nb-button--secondary{
  color: var(--nb-current-text);
  border-color: var(--nb-current-border);
  background: transparent;
}
.nb-lib-future .nb-button--secondary:hover{
  border-color: var(--nb-current-accent);
  background: var(--nb-current-accent-soft);
}
.nb-lib-future .nb-tag{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 1.75rem;
  padding: .3rem .55rem;
  border: 1px solid var(--nb-current-border);
  border-radius: 999px;
  color: var(--nb-current-muted);
  background: var(--nb-current-surface);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
/* =========================================================
   01. FEATURED MOSAIC GRID
   ========================================================= */
.nb-lib-future .nb-mosaic-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(.75rem, 1.5vw, 1rem);
}
.nb-lib-future .nb-overlay-card{
  position: relative;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  display: block;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  background: var(--nb-primary-dark);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  transform: translateY(0);
  transition: transform var(--nb-transition), border-color var(--nb-transition), box-shadow var(--nb-transition);
}
.nb-lib-future .nb-overlay-card__image{
  height: 100%;
  object-fit: cover;
  transition: transform 520ms cubic-bezier(.2, .7, .2, 1);
}
.nb-lib-future .nb-overlay-card::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--nb-current-overlay);
}
.nb-lib-future .nb-overlay-card__content{
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: clamp(1rem, 2vw, 1.3rem);
  color: var(--nb-white);
}
.nb-lib-future .nb-overlay-card__title{
  margin: 0;
  color: var(--nb-white);
  font-size: clamp(1.05rem, 1rem + .25vw, 1.25rem);
  font-weight: 700;
  line-height: 1.25;
}
.nb-lib-future .nb-overlay-card__summary{
  max-width: 36ch;
  margin: .25rem 0 0;
  color: rgba(255, 255, 255, .88);
  font-size: .83rem;
  line-height: 1.5;
}
.nb-lib-future .nb-overlay-card:hover,
.nb-lib-future .nb-overlay-card:focus-visible{
  z-index: 2;
  transform: translateY(-4px);
  border-color: var(--nb-current-accent);
  box-shadow: var(--nb-shadow-lift);
}
.nb-lib-future .nb-overlay-card:hover .nb-overlay-card__image,
.nb-lib-future .nb-overlay-card:focus-visible .nb-overlay-card__image{
  transform: scale(1.045);
}
@media (min-width: 36rem){.nb-lib-future .nb-mosaic-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
.nb-lib-future .nb-overlay-card{
    aspect-ratio: 3 / 2;
  }
.nb-lib-future .nb-overlay-card--featured{
    grid-column: 1 / -1;
    aspect-ratio: 16 / 8.5;
  }}
@media (min-width: 64rem){.nb-lib-future .nb-mosaic-grid{
    grid-template-columns: 1.15fr .85fr .85fr;
    grid-template-rows: auto auto;
    align-items: stretch;
  }
.nb-lib-future .nb-overlay-card--featured{
    grid-column: auto;
    grid-row: 1 / 3;
    height: 100%;
    aspect-ratio: auto;
  }
.nb-lib-future .nb-mosaic-grid--featured-right .nb-overlay-card--featured{
    grid-column: 3;
  }}
/* =========================================================
   02. NEED SELECTOR CARDS
   ========================================================= */
.nb-lib-future .nb-need-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
.nb-lib-future .nb-need-card{
  min-width: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  color: var(--nb-current-text);
  background: var(--nb-current-surface);
  transition: transform var(--nb-transition), border-color var(--nb-transition), box-shadow var(--nb-transition);
}
.nb-lib-future .nb-need-card:hover,
.nb-lib-future .nb-need-card:focus-visible{
  transform: translateY(-4px);
  border-color: var(--nb-current-accent);
  box-shadow: var(--nb-shadow-soft);
}
.nb-lib-future .nb-need-card__icon{
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  margin-bottom: 1.15rem;
  border-radius: 50%;
  color: var(--nb-current-accent);
  background: var(--nb-current-accent-soft);
}
.nb-lib-future .nb-need-card__icon svg{
  width: 1.3rem;
  height: 1.3rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.nb-lib-future .nb-need-card__title{
  margin: 0;
  color: var(--nb-current-text);
  font-size: 1.08rem;
  line-height: 1.3;
}
.nb-lib-future .nb-need-card__summary{
  margin: .55rem 0 1rem;
  color: var(--nb-current-muted);
  font-size: .92rem;
  line-height: 1.62;
}
.nb-lib-future .nb-need-card__link{
  margin-top: auto;
  color: var(--nb-current-accent);
  font-size: .88rem;
  font-weight: 700;
}
.nb-lib-future .nb-need-card__link::after{
  content: " →";
}
@media (min-width: 36rem){.nb-lib-future .nb-need-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }}
@media (min-width: 64rem){.nb-lib-future .nb-need-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }}
/* =========================================================
   03. SUITABILITY MATRIX
   ========================================================= */
.nb-lib-future .nb-table-shell{
  overflow-x: auto;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  background: var(--nb-current-surface);
  box-shadow: var(--nb-shadow-soft);
}
.nb-lib-future .nb-comparison-table{
  width: 100%;
  min-width: 46rem;
  border-collapse: collapse;
  color: var(--nb-current-text);
}
.nb-lib-future .nb-comparison-table th,
.nb-lib-future .nb-comparison-table td{
  padding: 1rem;
  border-bottom: 1px solid var(--nb-current-border);
  text-align: left;
  vertical-align: middle;
}
.nb-lib-future .nb-comparison-table th{
  color: var(--nb-current-text);
  background: var(--nb-current-surface-alt);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.nb-lib-future .nb-comparison-table td{
  color: var(--nb-current-muted);
  font-size: .9rem;
}
.nb-lib-future .nb-comparison-table td:first-child{
  color: var(--nb-current-text);
  font-weight: 700;
}
.nb-lib-future .nb-comparison-table tr:last-child td{
  border-bottom: 0;
}
.nb-lib-future .nb-status{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .82rem;
  font-weight: 700;
  white-space: nowrap;
}
.nb-lib-future .nb-status::before{
  content: "";
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: currentColor;
}
.nb-lib-future .nb-status--yes{
  color: #2F7155;
}
.nb-lib-future .nb-theme-dark .nb-status--yes{
  color: #A9D9C1;
}
.nb-lib-future .nb-status--selected{
  color: var(--nb-current-accent);
}
.nb-lib-future .nb-status--no{
  color: var(--nb-current-muted);
}
.nb-lib-future .nb-table-note{
  margin: 1rem 0 0;
  color: var(--nb-current-muted);
  font-size: .82rem;
}
/* =========================================================
   04. KEY SPECIFICATION LIST
   ========================================================= */
.nb-lib-future .nb-spec-layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.nb-lib-future .nb-spec-intro{
  max-width: 34rem;
}
.nb-lib-future .nb-spec-intro__title{
  margin: 0;
  color: var(--nb-current-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(1.7rem, 1.45rem + .8vw, 2.25rem);
  font-weight: 400;
  line-height: 1.1;
}
.nb-lib-future .nb-spec-intro__text{
  margin: 1rem 0 0;
  color: var(--nb-current-muted);
}
.nb-lib-future .nb-spec-list{
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  background: var(--nb-current-surface);
}
.nb-lib-future .nb-spec-list__row{
  display: grid;
  grid-template-columns: minmax(8rem, .42fr) minmax(0, .58fr);
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--nb-current-border);
}
.nb-lib-future .nb-spec-list__row:last-child{
  border-bottom: 0;
}
.nb-lib-future .nb-spec-list__label,
.nb-lib-future .nb-spec-list__value{
  margin: 0;
}
.nb-lib-future .nb-spec-list__label{
  color: var(--nb-current-text);
  font-size: .84rem;
  font-weight: 700;
}
.nb-lib-future .nb-spec-list__value{
  color: var(--nb-current-muted);
  font-size: .9rem;
  text-align: right;
}
@media (min-width: 48rem){.nb-lib-future .nb-spec-layout{
    grid-template-columns: minmax(0, .42fr) minmax(0, .58fr);
  }}
/* =========================================================
   05. TRUST STRIP
   ========================================================= */
.nb-lib-future .nb-trust-strip{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-block: 1px solid var(--nb-current-border);
}
.nb-lib-future .nb-trust-item{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .85rem;
  align-items: start;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--nb-current-border);
}
.nb-lib-future .nb-trust-item:last-child{
  border-bottom: 0;
}
.nb-lib-future .nb-trust-item__mark{
  width: 1.8rem;
  height: 1.8rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--nb-current-border);
  border-radius: 50%;
  color: var(--nb-current-accent);
  background: var(--nb-current-surface);
  font-size: .8rem;
  font-weight: 800;
}
.nb-lib-future .nb-trust-item__title{
  margin: 0;
  color: var(--nb-current-text);
  font-size: .95rem;
  line-height: 1.35;
}
.nb-lib-future .nb-trust-item__text{
  margin: .2rem 0 0;
  color: var(--nb-current-muted);
  font-size: .8rem;
  line-height: 1.5;
}
@media (min-width: 36rem){.nb-lib-future .nb-trust-strip{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
.nb-lib-future .nb-trust-item:nth-child(odd){
    padding-right: 1rem;
  }
.nb-lib-future .nb-trust-item:nth-child(even){
    padding-left: 1rem;
    border-left: 1px solid var(--nb-current-border);
  }
.nb-lib-future .nb-trust-item:nth-last-child(-n + 2){
    border-bottom: 0;
  }}
@media (min-width: 64rem){.nb-lib-future .nb-trust-strip{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
.nb-lib-future .nb-trust-item,
.nb-lib-future .nb-trust-item:nth-child(odd),
.nb-lib-future .nb-trust-item:nth-child(even){
    padding: 1.2rem 1.25rem;
    border-bottom: 0;
    border-left: 1px solid var(--nb-current-border);
  }
.nb-lib-future .nb-trust-item:first-child{
    padding-left: 0;
    border-left: 0;
  }
.nb-lib-future .nb-trust-item:last-child{
    padding-right: 0;
  }}
/* =========================================================
   06. INFORMATION CALLOUTS
   ========================================================= */
.nb-lib-future .nb-callout-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
.nb-lib-future .nb-callout{
  position: relative;
  min-height: 100%;
  padding: 1.25rem 1.25rem 1.25rem 1.4rem;
  border: 1px solid var(--nb-current-border);
  border-left: .25rem solid var(--nb-current-accent);
  border-radius: var(--nb-radius-sm);
  background: var(--nb-current-surface);
}
.nb-lib-future .nb-callout--soft{
  background: var(--nb-current-accent-soft);
}
.nb-lib-future .nb-callout__label{
  margin: 0 0 .45rem;
  color: var(--nb-current-accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nb-lib-future .nb-callout__title{
  margin: 0;
  color: var(--nb-current-text);
  font-size: 1rem;
  line-height: 1.35;
}
.nb-lib-future .nb-callout__text{
  margin: .55rem 0 0;
  color: var(--nb-current-muted);
  font-size: .9rem;
  line-height: 1.62;
}
@media (min-width: 48rem){.nb-lib-future .nb-callout-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }}
/* =========================================================
   07. TESTIMONIAL PROOF PANEL
   ========================================================= */
.nb-lib-future .nb-proof-panel{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  background: var(--nb-current-surface);
  box-shadow: var(--nb-shadow-soft);
}
.nb-lib-future .nb-proof-panel__media{
  min-height: 16rem;
}
.nb-lib-future .nb-proof-panel__media img{
  height: 100%;
  object-fit: cover;
}
.nb-lib-future .nb-proof-panel__content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 5vw, 3rem);
}
.nb-lib-future .nb-proof-panel__quote{
  margin: 0;
  color: var(--nb-current-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(1.55rem, 1.25rem + 1vw, 2.15rem);
  font-weight: 400;
  line-height: 1.25;
}
.nb-lib-future .nb-proof-panel__quote::before{
  content: "“";
  display: block;
  height: 2rem;
  color: var(--nb-current-accent);
  font-size: 3.5rem;
  line-height: .9;
}
.nb-lib-future .nb-proof-panel__meta{
  margin-top: 1.25rem;
  color: var(--nb-current-muted);
  font-size: .86rem;
}
.nb-lib-future .nb-proof-panel__meta strong{
  display: block;
  color: var(--nb-current-text);
  font-size: .92rem;
}
.nb-lib-future .nb-proof-panel__tags{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}
@media (min-width: 48rem){.nb-lib-future .nb-proof-panel{
    grid-template-columns: minmax(0, .44fr) minmax(0, .56fr);
  }}
/* =========================================================
   08. RELATED CONTENT CARDS
   ========================================================= */
.nb-lib-future .nb-related-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}
.nb-lib-future .nb-related-card{
  min-height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  color: var(--nb-current-text);
  background: var(--nb-current-surface);
  transition: transform var(--nb-transition), border-color var(--nb-transition), box-shadow var(--nb-transition);
}
.nb-lib-future .nb-related-card:hover,
.nb-lib-future .nb-related-card:focus-visible{
  transform: translateY(-4px);
  border-color: var(--nb-current-accent);
  box-shadow: var(--nb-shadow-soft);
}
.nb-lib-future .nb-related-card__type{
  margin: 0 0 .65rem;
  color: var(--nb-current-accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nb-lib-future .nb-related-card__title{
  margin: 0;
  color: var(--nb-current-text);
  font-size: clamp(1.15rem, 1.05rem + .35vw, 1.4rem);
  line-height: 1.3;
}
.nb-lib-future .nb-related-card__summary{
  margin: .65rem 0 1.2rem;
  color: var(--nb-current-muted);
  font-size: .9rem;
}
.nb-lib-future .nb-related-card__link{
  margin-top: auto;
  color: var(--nb-current-accent);
  font-size: .88rem;
  font-weight: 700;
}
.nb-lib-future .nb-related-card__link::after{
  content: " →";
}
@media (min-width: 42rem){.nb-lib-future .nb-related-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }}
/* =========================================================
   09. LOCATION / SERVICE AREA LINK GRID
   ========================================================= */
.nb-lib-future .nb-location-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
}
.nb-lib-future .nb-location-link{
  min-height: 4.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-sm);
  color: var(--nb-current-text);
  background: var(--nb-current-surface);
  transition: transform var(--nb-transition), border-color var(--nb-transition), background var(--nb-transition);
}
.nb-lib-future .nb-location-link:hover,
.nb-lib-future .nb-location-link:focus-visible{
  transform: translateY(-2px);
  border-color: var(--nb-current-accent);
  background: var(--nb-current-accent-soft);
}
.nb-lib-future .nb-location-link__title{
  display: block;
  font-size: .95rem;
  font-weight: 700;
}
.nb-lib-future .nb-location-link__meta{
  display: block;
  margin-top: .15rem;
  color: var(--nb-current-muted);
  font-size: .76rem;
}
.nb-lib-future .nb-location-link__arrow{
  flex: 0 0 auto;
  color: var(--nb-current-accent);
  font-size: 1.1rem;
}
@media (min-width: 36rem){.nb-lib-future .nb-location-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }}
@media (min-width: 64rem){.nb-lib-future .nb-location-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }}
/* =========================================================
   10. MOBILE CONSULTATION / COVERAGE LEAD PANEL
   ========================================================= */
.nb-lib-future .nb-mobile-service{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--nb-current-border);
  border-radius: var(--nb-radius-md);
  background: var(--nb-current-surface);
  box-shadow: var(--nb-shadow-soft);
}
.nb-lib-future .nb-mobile-service__content{
  padding: clamp(1.5rem, 5vw, 3rem);
}
.nb-lib-future .nb-mobile-service__title{
  max-width: 17ch;
  margin: 0;
  color: var(--nb-current-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(2rem, 1.65rem + 1.2vw, 2.8rem);
  font-weight: 400;
  line-height: 1.08;
}
.nb-lib-future .nb-mobile-service__text{
  max-width: 58ch;
  margin: 1rem 0 0;
  color: var(--nb-current-muted);
}
.nb-lib-future .nb-mobile-service__points{
  display: grid;
  gap: .7rem;
  margin: 1.35rem 0 0;
  padding: 0;
  list-style: none;
}
.nb-lib-future .nb-mobile-service__point{
  position: relative;
  padding-left: 1.55rem;
  color: var(--nb-current-text);
  font-size: .9rem;
  font-weight: 600;
}
.nb-lib-future .nb-mobile-service__point::before{
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--nb-current-accent);
  font-weight: 800;
}
.nb-lib-future .nb-mobile-service__aside{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 5vw, 2.5rem);
  border-top: 1px solid var(--nb-current-border);
  background: var(--nb-current-accent-soft);
}
.nb-lib-future .nb-mobile-service__aside-title{
  margin: 0;
  color: var(--nb-current-text);
  font-size: 1.05rem;
}
.nb-lib-future .nb-mobile-service__aside-text{
  margin: .55rem 0 0;
  color: var(--nb-current-muted);
  font-size: .9rem;
}
@media (min-width: 48rem){.nb-lib-future .nb-mobile-service{
    grid-template-columns: minmax(0, .64fr) minmax(17rem, .36fr);
  }
.nb-lib-future .nb-mobile-service__aside{
    border-top: 0;
    border-left: 1px solid var(--nb-current-border);
  }}
/* ------------------------------
   Motion safety
   ------------------------------ */
@media (hover: none){.nb-lib-future .nb-overlay-card:hover,
.nb-lib-future .nb-need-card:hover,
.nb-lib-future .nb-related-card:hover,
.nb-lib-future .nb-location-link:hover,
.nb-lib-future .nb-button:hover{
    transform: none;
  }}
@media (prefers-reduced-motion: reduce){.nb-lib-future *,
.nb-lib-future *::before,
.nb-lib-future *::after{
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }}
/* Preview-only interface. Do not copy these .nb-preview classes into Elementor. */
/* ===== PROFESSIONAL HEROES MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-hero{
  /* Approved Noble Heritage theme */
  --nb-primary: #24352D;
  --nb-primary-deep: #192820;
  --nb-secondary: #B08D57;
  --nb-background: #F7F4EC;
  --nb-surface: #E8E0D3;
  --nb-text: #202421;
  --nb-muted: #6D746F;
  --nb-cta: #8B6535;
  --nb-cta-hover: #6F4E27;
  --nb-white: #FFFFFF;

  /* Supporting tokens */
  --nb-border: rgba(32, 36, 33, 0.13);
  --nb-border-strong: rgba(36, 53, 45, 0.24);
  --nb-border-dark: rgba(255, 255, 255, 0.18);
  --nb-shadow-sm: 0 8px 24px rgba(22, 28, 24, 0.08);
  --nb-shadow-md: 0 18px 48px rgba(22, 28, 24, 0.12);
  --nb-shadow-lg: 0 28px 72px rgba(22, 28, 24, 0.18);

  /* Typography */
  --nb-font-heading: "DM Serif Display", Georgia, serif;
  --nb-font-body: "DM Sans", Arial, sans-serif;

  /* Layout */
  --nb-container: 1240px;
  --nb-gutter: clamp(1rem, 4vw, 2.5rem);
  --nb-section-y: clamp(4rem, 8vw, 7rem);
  --nb-column-gap: clamp(2.5rem, 6vw, 6.5rem);

  /* Shape and motion */
  --nb-radius-button: 3px;
  --nb-radius-card: 4px;
  --nb-transition: 180ms ease;
}
.nb-lib-hero *,
.nb-lib-hero *::before,
.nb-lib-hero *::after{
  box-sizing: border-box;
}
.nb-lib-hero{
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}
.nb-lib-hero{
  margin: 0;
  color: var(--nb-text);
  background: var(--nb-background);
  font-family: var(--nb-font-body);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.nb-lib-hero img,
.nb-lib-hero svg{
  display: block;
  max-width: 100%;
}
.nb-lib-hero a{
  color: inherit;
  text-decoration: none;
}
.nb-lib-hero button,
.nb-lib-hero input,
.nb-lib-hero select,
.nb-lib-hero textarea{
  font: inherit;
}
.nb-lib-hero :focus-visible{
  outline: 3px solid var(--nb-secondary);
  outline-offset: 4px;
}
/* =========================================================
   MOBILE-FIRST HERO FOUNDATION
   Width is controlled by the grid columns—not by text elements.
   ========================================================= */
.nb-lib-hero .nb-hero{
  --hero-bg: var(--nb-background);
  --hero-text: var(--nb-text);
  --hero-muted: var(--nb-muted);
  --hero-eyebrow: var(--nb-primary);
  --hero-rule: var(--nb-secondary);
  --breadcrumb-text: color-mix(in srgb, var(--hero-text) 70%, transparent);
  --breadcrumb-current: var(--hero-text);

  --form-bg: var(--nb-surface);
  --form-text: var(--nb-text);
  --form-label: var(--nb-primary);
  --form-control-bg: var(--nb-background);
  --form-control-text: var(--nb-text);
  --form-border: var(--nb-border-strong);

  position: relative;
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  color: var(--hero-text);
  background: var(--hero-bg);
}
.nb-lib-hero .nb-hero__container{
  position: relative;
  z-index: 2;
  width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container));
  margin-inline: auto;
  padding-block: var(--nb-section-y);
}
.nb-lib-hero .nb-hero__grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2rem, 8vw, 3.5rem);
}
.nb-lib-hero .nb-hero__content{
  min-width: 0;
}
.nb-lib-hero .nb-hero__form-column{
  min-width: 0;
}
/* Breadcrumb */
.nb-lib-hero .nb-breadcrumb{
  margin: 0 0 1.15rem;
  color: var(--breadcrumb-text);
  font-size: clamp(.74rem, 1.6vw, .8rem);
  line-height: 1.4;
}
.nb-lib-hero .nb-breadcrumb__list{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nb-lib-hero .nb-breadcrumb__item{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.nb-lib-hero .nb-breadcrumb__item:not(:last-child)::after{
  content: "/";
  color: color-mix(in srgb, var(--breadcrumb-text) 55%, transparent);
}
.nb-lib-hero .nb-breadcrumb a{
  color: inherit;
  text-decoration: none;
}
.nb-lib-hero .nb-breadcrumb a:hover{
  color: var(--breadcrumb-current);
}
.nb-lib-hero .nb-breadcrumb [aria-current="page"]{
  color: var(--breadcrumb-current);
  font-weight: 600;
}
/* Eyebrow */
.nb-lib-hero .nb-hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .9rem;
  color: var(--hero-eyebrow);
  font-size: clamp(.72rem, 1.6vw, .8rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.nb-lib-hero .nb-hero__eyebrow::before{
  content: "";
  width: 1.65rem;
  height: 2px;
  flex: 0 0 auto;
  background: var(--hero-rule);
}
/* Typography — no width/max-width on text elements */
.nb-lib-hero .nb-hero__title{
  margin: 0;
  color: var(--hero-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(2.55rem, 10.25vw, 3.65rem);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.nb-lib-hero .nb-hero__description{
  margin: 1.15rem 0 0;
  color: var(--hero-muted);
  font-size: clamp(1rem, 2.8vw, 1.08rem);
  line-height: 1.72;
  text-wrap: pretty;
}
.nb-lib-hero .nb-hero__actions{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
  margin-top: 1.65rem;
}
.nb-lib-hero .nb-btn{
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .78rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--nb-radius-button);
  color: #fff;
  background: var(--nb-cta);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  transition:
    transform var(--nb-transition),
    background var(--nb-transition),
    color var(--nb-transition),
    border-color var(--nb-transition),
    box-shadow var(--nb-transition);
}
.nb-lib-hero .nb-btn:hover{
  background: var(--nb-cta-hover);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
}
.nb-lib-hero .nb-btn--secondary{
  color: var(--hero-text);
  background: transparent;
  border-color: color-mix(in srgb, var(--hero-text) 26%, transparent);
}
.nb-lib-hero .nb-btn--secondary:hover{
  color: var(--hero-text);
  background: color-mix(in srgb, var(--hero-text) 7%, transparent);
  border-color: color-mix(in srgb, var(--hero-text) 42%, transparent);
  box-shadow: none;
}
/* Empty Fluent Forms host */
.nb-lib-hero .nb-hero__form-shell{
  min-width: 0;
  min-height: clamp(21rem, 58vw, 29rem);
  display: grid;
  align-items: center;
  padding: clamp(1.25rem, 4.5vw, 1.75rem);
  color: var(--form-text);
  background: var(--form-bg);
  border: 1px solid var(--form-border);
  border-radius: var(--nb-radius-card);
  box-shadow: var(--nb-shadow-md);
}
.nb-lib-hero .nb-fluent-slot{
  width: 100%;
  min-width: 0;
}
/* Visible only in combined review library */
/* =========================================================
   FLUENT FORMS — SCOPED AUTO-STYLING
   ========================================================= */
.nb-lib-hero .nb-hero__form-shell .fluentform,
.nb-lib-hero .nb-hero__form-shell form[class*="fluent_form"]{
  width: 100%;
  color: var(--form-text);
  font-family: var(--nb-font-body);
}
.nb-lib-hero .nb-hero__form-shell .ff-el-group{
  margin-bottom: 1rem;
}
.nb-lib-hero .nb-hero__form-shell .ff-el-input--label{
  margin-bottom: .42rem;
}
.nb-lib-hero .nb-hero__form-shell .ff-el-input--label label{
  color: var(--form-label);
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.4;
}
.nb-lib-hero .nb-hero__form-shell .ff-el-form-control{
  width: 100%;
  min-height: 3rem;
  padding: .75rem .875rem;
  border: 1px solid var(--form-border);
  border-radius: var(--nb-radius-button);
  color: var(--form-control-text);
  background: var(--form-control-bg);
  box-shadow: none;
  outline: none;
  transition:
    border-color var(--nb-transition),
    box-shadow var(--nb-transition),
    background var(--nb-transition);
}
.nb-lib-hero .nb-hero__form-shell textarea.ff-el-form-control{
  min-height: 6.75rem;
  resize: vertical;
}
.nb-lib-hero .nb-hero__form-shell .ff-el-form-control:focus{
  border-color: var(--nb-secondary);
  box-shadow: 0 0 0 4px rgba(176, 141, 87, .18);
}
.nb-lib-hero .nb-hero__form-shell .ff-btn-submit,
.nb-lib-hero .nb-hero__form-shell .ff_submit_btn_wrapper button,
.nb-lib-hero .nb-hero__form-shell button[type="submit"]{
  min-height: 3rem;
  padding: .75rem 1.25rem;
  border: 1px solid var(--nb-cta);
  border-radius: var(--nb-radius-button);
  color: #fff;
  background: var(--nb-cta);
  font-weight: 700;
  cursor: pointer;
  transition:
    transform var(--nb-transition),
    background var(--nb-transition),
    border-color var(--nb-transition),
    box-shadow var(--nb-transition);
}
.nb-lib-hero .nb-hero__form-shell .ff-btn-submit:hover,
.nb-lib-hero .nb-hero__form-shell .ff_submit_btn_wrapper button:hover,
.nb-lib-hero .nb-hero__form-shell button[type="submit"]:hover{
  border-color: var(--nb-cta-hover);
  background: var(--nb-cta-hover);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0,0,0,.15);
}
.nb-lib-hero .nb-hero__form-shell .ff-el-is-error .ff-el-form-control{
  border-color: #A84842;
}
.nb-lib-hero .nb-hero__form-shell .error.text-danger,
.nb-lib-hero .nb-hero__form-shell .ff-el-is-error .text-danger{
  color: #A84842;
  font-size: .76rem;
}
.nb-lib-hero .nb-hero__form-shell .ff-message-success{
  padding: 1rem;
  border: 1px solid rgba(57,115,84,.28);
  border-radius: var(--nb-radius-card);
  color: #245038;
  background: #E5F1E9;
}
/* =========================================================
   TEN VARIATIONS
   ========================================================= */
/* 01 — Warm Editorial */
/* 02 — Full Image */
.nb-lib-hero .nb-hero--02{
  --hero-text: #fff;
  --hero-muted: rgba(255,255,255,.78);
  --hero-eyebrow: #fff;
  --breadcrumb-text: rgba(255,255,255,.68);
  --breadcrumb-current: #fff;
  --form-bg: rgba(247,244,236,.97);
  --form-text: var(--nb-text);
  --form-label: var(--nb-primary);
  --form-control-bg: #fff;
  --form-control-text: var(--nb-text);
  background:
    linear-gradient(180deg, rgba(25,40,32,.88), rgba(25,40,32,.72)),
    url("https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=1800&q=86")
    center / cover no-repeat;
}
/* 03 — Deep Heritage */
/* 04 — Stone Architecture */
/* 05 — Framed Heritage */
.nb-lib-hero .nb-hero--05{
  --hero-bg: var(--nb-background);
}
.nb-lib-hero .nb-hero--05 .nb-hero__container{
  width: min(calc(100% - 18px), 1380px);
  padding-block: .55rem;
}
.nb-lib-hero .nb-hero--05 .nb-hero__grid{
  padding: clamp(2.5rem, 8vw, 4rem) 1.25rem 1.25rem;
  border: 1px solid rgba(36,53,45,.20);
  background:
    linear-gradient(180deg, rgba(247,244,236,.97), rgba(247,244,236,.82)),
    url("https://images.unsplash.com/photo-1615874694520-474822394e73?auto=format&fit=crop&w=1800&q=86")
    center / cover no-repeat;
  box-shadow: var(--nb-shadow-md);
}
.nb-lib-hero .nb-hero--05 .nb-hero__form-shell{
  --form-bg: rgba(232,224,211,.97);
}
/* 06 — Diagonal Bronze */
/* 07 — Minimal Numbered */
/* 08 — Soft Image Wash */
/* 09 — True Split */
/* 10 — Layered Window Light */
.nb-lib-hero .nb-hero--10{
  --hero-text: var(--nb-text);
  --hero-muted: var(--nb-muted);
  --form-bg: rgba(25,40,32,.94);
  --form-text: #fff;
  --form-label: #fff;
  --form-control-bg: rgba(255,255,255,.08);
  --form-control-text: #fff;
  --form-border: rgba(255,255,255,.20);
  background:
    linear-gradient(180deg, rgba(247,244,236,.96), rgba(247,244,236,.78)),
    url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=1800&q=86")
    center / cover no-repeat;
}
.nb-lib-hero .nb-hero--10 .nb-hero__form-shell{
  border-left: 4px solid var(--nb-secondary);
}
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width: 36rem){.nb-lib-hero .nb-hero__actions{
    grid-template-columns: repeat(2, auto);
    justify-content: start;
  }
.nb-lib-hero .nb-btn{
    min-height: 3.15rem;
    padding-inline: 1.45rem;
  }
.nb-lib-hero .nb-hero__form-shell{
    padding: 1.65rem;
  }
.nb-lib-hero .nb-hero--05 .nb-hero__grid{
    padding-inline: 2rem;
  }}
@media (min-width: 48rem){.nb-lib-hero .nb-hero__title{
    font-size: clamp(3.15rem, 6vw, 4.1rem);
  }
.nb-lib-hero .nb-hero__description{
    font-size: clamp(1.03rem, 1.8vw, 1.12rem);
  }
.nb-lib-hero .nb-hero__form-shell{
    min-height: 27rem;
    padding: 1.9rem;
  }}
@media (min-width: 64rem){.nb-lib-hero .nb-hero{
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    align-items: center;
  }
.nb-lib-hero .nb-hero__grid{
    grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .92fr);
    align-items: center;
    gap: var(--nb-column-gap);
  }
.nb-lib-hero .nb-hero__content{
    padding-right: clamp(.5rem, 1.8vw, 1.75rem);
  }
.nb-lib-hero .nb-hero__title{
    font-size: clamp(3.5rem, 4.1vw, 4.5rem);
    line-height: 1.05;
  }
.nb-lib-hero .nb-hero__description{
    margin-top: 1.25rem;
    font-size: 1.08rem;
    line-height: 1.72;
  }
.nb-lib-hero .nb-hero__actions{
    margin-top: 1.8rem;
  }
.nb-lib-hero .nb-hero__form-shell{
    min-height: clamp(29rem, 58vh, 37rem);
    padding: clamp(1.9rem, 2.7vw, 2.55rem);
  }
.nb-lib-hero .nb-hero--02{
    background:
      linear-gradient(90deg, rgba(25,40,32,.94) 0%, rgba(25,40,32,.75) 50%, rgba(25,40,32,.34) 100%),
      url("https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=2100&q=86")
      center / cover no-repeat;
  }
.nb-lib-hero .nb-hero--05 .nb-hero__grid{
    min-height: calc(100svh - 1.1rem);
    padding: clamp(3rem, 5vw, 4.75rem);
  }
.nb-lib-hero .nb-hero--10{
    background:
      linear-gradient(90deg, rgba(247,244,236,.98) 0%, rgba(247,244,236,.88) 49%, rgba(247,244,236,.20) 100%),
      url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2100&q=86")
      center / cover no-repeat;
  }}
@media (min-width: 80rem){.nb-lib-hero .nb-hero__grid{
    grid-template-columns: minmax(0, 1.1fr) minmax(24rem, .9fr);
  }
.nb-lib-hero .nb-hero__title{
    font-size: clamp(3.75rem, 4vw, 4.5rem);
  }
.nb-lib-hero .nb-hero__form-shell{
    min-height: clamp(31rem, 60vh, 39rem);
  }}
/* Short laptop heights */
@media (min-width: 64rem) and (max-height: 46rem){.nb-lib-hero .nb-hero__container{
    padding-block: 3rem;
  }
.nb-lib-hero .nb-hero__title{
    font-size: clamp(3.1rem, 3.8vw, 3.95rem);
  }
.nb-lib-hero .nb-hero__description{
    font-size: 1rem;
  }
.nb-lib-hero .nb-hero__form-shell{
    min-height: 27rem;
    padding: 1.75rem;
  }}
/* Accessibility */
@media (prefers-reduced-motion: reduce){.nb-lib-hero *,
.nb-lib-hero *::before,
.nb-lib-hero *::after{
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }}
/* Review library navigation */
.nb-lib-hero .hero-library-nav{
  position: fixed;
  top: .75rem;
  left: 50%;
  z-index: 100;
  max-width: calc(100% - 1.5rem);
  display: flex;
  gap: .25rem;
  padding: .35rem;
  overflow-x: auto;
  border: 1px solid rgba(36,53,45,.16);
  border-radius: 4px;
  background: rgba(247,244,236,.95);
  box-shadow: 0 8px 26px rgba(22,28,24,.12);
  transform: translateX(-50%);
  backdrop-filter: blur(12px);
  scrollbar-width: none;
}
.nb-lib-hero .hero-library-nav::-webkit-scrollbar{
  display: none;
}
.nb-lib-hero .hero-library-nav a{
  min-width: 2.1rem;
  min-height: 2rem;
  display: grid;
  place-items: center;
  padding-inline: .55rem;
  border-radius: 3px;
  color: var(--nb-primary);
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.nb-lib-hero .hero-library-nav a:hover{
  color: #fff;
  background: var(--nb-primary);
}
.nb-lib-hero .library-label{
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  z-index: 8;
  padding: .35rem .5rem;
  border: 1px solid rgba(36,53,45,.16);
  border-radius: 3px;
  color: var(--nb-primary);
  background: rgba(247,244,236,.92);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
/* ===== INTERACTIVE PROJECT COMPARISON MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-compare{
      --nb-primary: #24352D;
      --nb-primary-deep: #192820;
      --nb-secondary: #B08D57;
      --nb-secondary-light: #D3AE69;
      --nb-background: #F7F4EC;
      --nb-surface: #E8E0D3;
      --nb-text: #202421;
      --nb-muted: #5B625D;
      --nb-white: #FFFFFF;
      --nb-border: rgba(32, 36, 33, .14);
      --nb-shadow-sm: 0 10px 30px rgba(22, 28, 24, .08);
      --nb-shadow-md: 0 22px 55px rgba(22, 28, 24, .14);
      --nb-font-heading: "DM Serif Display", Georgia, serif;
      --nb-font-body: "DM Sans", Arial, sans-serif;
      --nb-container: 1240px;
      --nb-gutter: clamp(1rem, 4vw, 2.5rem);
      --nb-section-y: clamp(4rem, 8vw, 6.5rem);
      --nb-grid-gap: clamp(1rem, 2.4vw, 1.5rem);
      --nb-radius: 10px;
      --nb-transition: 180ms ease;
    }
.nb-lib-compare *,
.nb-lib-compare *::before,
.nb-lib-compare *::after{
      box-sizing: border-box;
    }
.nb-lib-compare{
      scroll-behavior: smooth;
      text-size-adjust: 100%;
    }
.nb-lib-compare{
      margin: 0;
      color: var(--nb-text);
      background: var(--nb-background);
      font-family: var(--nb-font-body);
      line-height: 1.65;
      -webkit-font-smoothing: antialiased;
    }
.nb-lib-compare img{
      display: block;
      width: 100%;
      max-width: 100%;
    }
.nb-lib-compare input{
      font: inherit;
    }
.nb-lib-compare :focus-visible{
      outline: 3px solid var(--nb-secondary);
      outline-offset: 4px;
    }
/* =========================================================
       SECTION FOUNDATION
       ========================================================= */
.nb-lib-compare .nb-project-comparisons{
      color: var(--nb-text);
      background:
        radial-gradient(circle at 100% 0%, rgba(176, 141, 87, .10), transparent 30rem),
        var(--nb-surface);
    }
.nb-lib-compare .nb-project-comparisons__container{
      width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container));
      margin-inline: auto;
      padding-block: var(--nb-section-y);
    }
.nb-lib-compare .nb-project-comparisons__header{
      margin-bottom: clamp(2rem, 5vw, 3.25rem);
    }
.nb-lib-compare .nb-eyebrow{
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      margin: 0 0 .8rem;
      color: var(--nb-primary);
      font-size: clamp(.72rem, 1.4vw, .8rem);
      font-weight: 700;
      line-height: 1.3;
      letter-spacing: .11em;
      text-transform: uppercase;
    }
.nb-lib-compare .nb-eyebrow::before{
      content: "";
      width: 1.65rem;
      height: 2px;
      flex: 0 0 auto;
      background: var(--nb-secondary);
    }
.nb-lib-compare .nb-section-title{
      margin: 0;
      color: var(--nb-text);
      font-family: var(--nb-font-heading);
      font-size: clamp(2rem, 1.65rem + 1.35vw, 3rem);
      font-weight: 400;
      line-height: 1.08;
      letter-spacing: -.022em;
      text-wrap: balance;
    }
.nb-lib-compare .nb-section-summary{
      margin: 1rem 0 0;
      color: var(--nb-muted);
      font-size: clamp(1rem, .96rem + .2vw, 1.1rem);
      line-height: 1.72;
      text-wrap: pretty;
    }
.nb-lib-compare .nb-comparison-grid{
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: var(--nb-grid-gap);
    }
/* =========================================================
       PROJECT CARD
       ========================================================= */
.nb-lib-compare .nb-comparison-card{
      min-width: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      border: 1px solid var(--nb-border);
      border-radius: var(--nb-radius);
      background: rgba(247, 244, 236, .86);
      box-shadow: var(--nb-shadow-sm);
      transition:
        transform var(--nb-transition),
        border-color var(--nb-transition),
        box-shadow var(--nb-transition);
    }
.nb-lib-compare .nb-comparison-card:hover{
      transform: translateY(-3px);
      border-color: color-mix(in srgb, var(--nb-secondary) 58%, var(--nb-border));
      box-shadow: var(--nb-shadow-md);
    }
.nb-lib-compare .nb-comparison-card__body{
      flex: 1;
      padding: clamp(1rem, 2.5vw, 1.35rem);
    }
.nb-lib-compare .nb-comparison-card__meta{
      display: flex;
      flex-wrap: wrap;
      gap: .4rem .7rem;
      margin: 0 0 .55rem;
      color: var(--nb-muted);
      font-size: .7rem;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
    }
.nb-lib-compare .nb-comparison-card__meta span + span::before{
      content: "•";
      margin-right: .7rem;
      color: var(--nb-secondary);
    }
.nb-lib-compare .nb-comparison-card__title{
      margin: 0;
      color: var(--nb-text);
      font-family: var(--nb-font-heading);
      font-size: clamp(1.35rem, 1.18rem + .55vw, 1.7rem);
      font-weight: 400;
      line-height: 1.14;
      letter-spacing: -.012em;
    }
.nb-lib-compare .nb-comparison-card__text{
      margin: .55rem 0 0;
      color: var(--nb-muted);
      font-size: .88rem;
      line-height: 1.62;
    }
/* =========================================================
       INTERACTIVE BEFORE / AFTER

       Direction:
       - Divider always follows the pointer.
       - Drag left  = reveal more AFTER.
       - Drag right = reveal more BEFORE.
       ========================================================= */
.nb-lib-compare .nb-compare{
      --nb-compare-position: 50%;

      position: relative;
      overflow: hidden;
      aspect-ratio: 4 / 3;
      min-height: 15rem;
      background: var(--nb-primary-deep);
      cursor: ew-resize;
      user-select: none;
      touch-action: pan-y;
      isolation: isolate;
    }
.nb-lib-compare .nb-compare__image,
.nb-lib-compare .nb-compare__after{
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }
.nb-lib-compare .nb-compare__image{
      object-fit: cover;
      object-position: center center;
      pointer-events: none;
    }
/* The before image remains visible beneath the after layer. */
.nb-lib-compare .nb-compare__image--before{
      z-index: 1;
      filter: none;
    }
/*
     * The after layer remains on the RIGHT of the divider.
     * A divider at 0% reveals the complete after image.
     * A divider at 100% reveals the complete before image.
     */
.nb-lib-compare .nb-compare__after{
      z-index: 2;
      clip-path: inset(0 0 0 var(--nb-compare-position));
    }
.nb-lib-compare .nb-compare__after .nb-compare__image{
      position: absolute;
      inset: 0;
    }
.nb-lib-compare .nb-compare__shade{
      position: absolute;
      inset: 0;
      z-index: 3;
      pointer-events: none;
      background: linear-gradient(180deg, rgba(25, 40, 32, .03), rgba(25, 40, 32, .16));
    }
.nb-lib-compare .nb-compare__label{
      position: absolute;
      top: .75rem;
      z-index: 5;
      display: inline-flex;
      align-items: center;
      min-height: 1.9rem;
      padding: .4rem .62rem;
      border: 1px solid rgba(255, 255, 255, .25);
      border-radius: 999px;
      color: var(--nb-white);
      background: rgba(25, 40, 32, .72);
      box-shadow: 0 5px 18px rgba(0, 0, 0, .16);
      font-size: .68rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: .08em;
      text-transform: uppercase;
      backdrop-filter: blur(8px);
    }
.nb-lib-compare .nb-compare__label--before{
      left: .75rem;
    }
.nb-lib-compare .nb-compare__label--after{
      right: .75rem;
      color: var(--nb-primary-deep);
      background: rgba(211, 174, 105, .94);
      border-color: rgba(255, 255, 255, .44);
    }
.nb-lib-compare .nb-compare__divider{
      position: absolute;
      top: 0;
      bottom: 0;
      left: var(--nb-compare-position);
      z-index: 4;
      width: 3px;
      background: var(--nb-white);
      box-shadow:
        0 0 0 1px rgba(25, 40, 32, .20),
        0 0 18px rgba(0, 0, 0, .22);
      transform: translateX(-50%);
      pointer-events: none;
    }
.nb-lib-compare .nb-compare__handle{
      position: absolute;
      top: 50%;
      left: 50%;
      width: 3.25rem;
      height: 3.25rem;
      display: grid;
      place-items: center;
      border: 2px solid var(--nb-white);
      border-radius: 50%;
      color: var(--nb-primary-deep);
      background: linear-gradient(145deg, #E0BD7D, var(--nb-secondary));
      box-shadow:
        0 12px 28px rgba(0, 0, 0, .30),
        inset 0 1px 0 rgba(255, 255, 255, .45);
      transform: translate(-50%, -50%);
      transition: transform var(--nb-transition);
    }
.nb-lib-compare .nb-compare__handle::before,
.nb-lib-compare .nb-compare__handle::after{
      content: "";
      position: absolute;
      top: 50%;
      width: .46rem;
      height: .46rem;
      border-top: 2px solid currentColor;
      border-right: 2px solid currentColor;
    }
.nb-lib-compare .nb-compare__handle::before{
      left: .72rem;
      transform: translateY(-50%) rotate(-135deg);
    }
.nb-lib-compare .nb-compare__handle::after{
      right: .72rem;
      transform: translateY(-50%) rotate(45deg);
    }
/* The transparent range provides mouse, touch and keyboard control. */
.nb-lib-compare .nb-compare__range{
      position: absolute;
      inset: 0;
      z-index: 6;
      width: 100%;
      height: 100%;
      margin: 0;
      opacity: 0;
      cursor: ew-resize;
      appearance: none;
      touch-action: pan-y;
    }
.nb-lib-compare .nb-compare:has(.nb-compare__range:focus-visible){
      box-shadow:
        inset 0 0 0 3px var(--nb-secondary-light),
        0 0 0 3px var(--nb-background),
        0 0 0 6px var(--nb-secondary);
    }
.nb-lib-compare .nb-comparison-card__hint{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: .75rem 1rem;
      border-top: 1px solid var(--nb-border);
      color: var(--nb-muted);
      background: rgba(232, 224, 211, .48);
      font-size: .74rem;
      line-height: 1.4;
    }
.nb-lib-compare .nb-comparison-card__hint strong{
      color: var(--nb-primary);
      font-weight: 700;
    }
.nb-lib-compare .nb-comparison-card__hint span:last-child{
      white-space: nowrap;
    }
@media (min-width: 40rem){.nb-lib-compare .nb-comparison-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }}
@media (min-width: 48rem){.nb-lib-compare .nb-project-comparisons__header{
        display: grid;
        grid-template-columns: minmax(0, .72fr) minmax(0, .28fr);
      }
.nb-lib-compare .nb-project-comparisons__header-content{
        grid-column: 1;
      }}
@media (min-width: 64rem){.nb-lib-compare .nb-comparison-grid{
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
.nb-lib-compare .nb-compare{
        min-height: 17rem;
      }}
@media (hover: hover){.nb-lib-compare .nb-compare:hover .nb-compare__handle{
        transform: translate(-50%, -50%) scale(1.06);
      }}
@media (hover: none){.nb-lib-compare .nb-comparison-card:hover{
        transform: none;
        box-shadow: var(--nb-shadow-sm);
      }}
@media (prefers-reduced-motion: reduce){.nb-lib-compare *,
.nb-lib-compare *::before,
.nb-lib-compare *::after{
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
      }}
/* ===== OUR APPROACH MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-approach{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-cta:#8B6535;
  --nb-cta-hover:#6F4E27;
  --nb-white:#FFFFFF;

  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.17);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);
  --nb-shadow-md:0 18px 48px rgba(22,28,24,.12);

  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;

  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);
  --nb-section-y:clamp(4rem,8vw,6.5rem);
  --nb-gap:clamp(1.25rem,3vw,2rem);
  --nb-column-gap:clamp(2rem,5vw,5rem);

  --nb-radius:4px;
  --nb-transition:180ms ease;
}
.nb-lib-approach *,
.nb-lib-approach *::before,
.nb-lib-approach *::after{box-sizing:border-box}
.nb-lib-approach{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-approach{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-approach img{
  display:block;
  width:100%;
  max-width:100%;
}
.nb-lib-approach a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-approach :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   SHARED OUR-APPROACH FOUNDATION
   ========================================================= */
.nb-lib-approach .nb-approach{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-rule:var(--nb-secondary);
  --section-border:var(--nb-border);

  --step-bg:var(--nb-white);
  --step-text:var(--nb-text);
  --step-muted:var(--nb-muted);
  --step-border:var(--nb-border);

  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-approach .nb-approach__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-approach .nb-approach__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-column-gap);
  align-items:start;
}
.nb-lib-approach .nb-approach__header,
.nb-lib-approach .nb-approach__steps{
  min-width:0;
}
.nb-lib-approach .nb-approach__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .8rem;
  color:var(--section-eyebrow);
  font-size:clamp(.72rem,1.6vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nb-lib-approach .nb-approach__eyebrow::before{
  content:"";
  width:1.65rem;
  height:2px;
  flex:0 0 auto;
  background:var(--section-rule);
}
.nb-lib-approach .nb-approach__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,3.2rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
}
.nb-lib-approach .nb-approach__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.7vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
/* Shared steps */
.nb-lib-approach .nb-approach__steps{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-gap);
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:approach-step;
}
.nb-lib-approach .nb-approach-step{
  counter-increment:approach-step;
  min-width:0;
  position:relative;
  height:100%;
  color:var(--step-text);
  background:var(--step-bg);
  border:1px solid var(--step-border);
  border-radius:var(--nb-radius);
}
.nb-lib-approach .nb-approach-step__inner{
  height:100%;
  display:flex;
  flex-direction:column;
  padding:clamp(1.25rem,4vw,1.75rem);
}
.nb-lib-approach .nb-approach-step__number{
  width:2.75rem;
  height:2.75rem;
  display:grid;
  place-items:center;
  margin-bottom:1.2rem;
  border:1px solid color-mix(in srgb,var(--nb-secondary) 52%,transparent);
  border-radius:50%;
  color:var(--nb-primary);
  background:color-mix(in srgb,var(--nb-secondary) 16%,var(--step-bg));
  font-size:.78rem;
  font-weight:700;
}
.nb-lib-approach .nb-approach-step__number::before{
  content:counter(approach-step,decimal-leading-zero);
}
.nb-lib-approach .nb-approach-step__heading{
  margin:0;
  color:var(--step-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(1.55rem,5vw,2rem);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-.012em;
  text-wrap:balance;
}
.nb-lib-approach .nb-approach-step__description{
  margin:.75rem 0 0;
  color:var(--step-muted);
  font-size:.95rem;
  line-height:1.68;
  text-wrap:pretty;
}
.nb-lib-approach .nb-approach-step__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:1rem;
}
.nb-lib-approach .nb-approach-step__meta span{
  padding:.32rem .5rem;
  border:1px solid color-mix(in srgb,var(--nb-primary) 17%,transparent);
  border-radius:3px;
  color:var(--nb-primary);
  background:color-mix(in srgb,var(--nb-surface) 58%,transparent);
  font-size:.72rem;
  font-weight:600;
}
/* Media */
/* Supporting panel */
/* =========================================================
   VARIATIONS
   ========================================================= */
/* 01 — Standard four-step cards */
/* 02 — Warm stone cards */
/* 03 — Dark heritage process */
.nb-lib-approach .nb-approach--03{
  --section-bg:var(--nb-primary);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-eyebrow:var(--nb-white);
  --section-border:var(--nb-border-dark);

  --step-bg:rgba(255,255,255,.055);
  --step-text:var(--nb-white);
  --step-muted:rgba(255,255,255,.70);
  --step-border:var(--nb-border-dark);
}
.nb-lib-approach .nb-approach--03 .nb-approach-step__number{
  color:var(--nb-primary-deep);
  background:color-mix(in srgb,var(--nb-secondary) 82%,white);
}
.nb-lib-approach .nb-approach--03 .nb-approach-step__meta span{
  color:var(--nb-white);
  border-color:rgba(255,255,255,.17);
  background:rgba(255,255,255,.06);
}
/* 04 — Split intro and steps */
/* 05 — Vertical timeline */
/* 06 — Image left, process right */
/* 07 — Alternating editorial rows */
/* 08 — Featured first step */
/* 09 — Approach values */
/* 10 — Sticky introduction */
/* 11 — Compact process strip */
/* 12 — Image and values panel */
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-approach .nb-approach__heading{
    font-size:clamp(2.5rem,6.5vw,3.5rem);
  }
.nb-lib-approach .nb-approach__description{
    font-size:clamp(1rem,2vw,1.1rem);
  }
.nb-lib-approach .nb-approach__steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (min-width:48rem){.nb-lib-approach .nb-approach__heading{
    font-size:clamp(2.75rem,5vw,3.75rem);
  }}
@media (min-width:64rem){.nb-lib-approach .nb-approach__heading{
    font-size:clamp(3rem,3.6vw,3.75rem);
  }
.nb-lib-approach .nb-approach__description{
    font-size:1.08rem;
  }
.nb-lib-approach .nb-approach--03 .nb-approach__steps{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }}
@media (prefers-reduced-motion:reduce){.nb-lib-approach *,
.nb-lib-approach *::before,
.nb-lib-approach *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }}
/* Light counterpart reuses the exact process structure. */
.nb-lib-approach .nb-approach--03.nb-theme--light{--section-bg:var(--nb-background);--section-text:var(--nb-text);--section-muted:var(--nb-muted);--section-eyebrow:var(--nb-primary);--section-border:var(--nb-border);--step-bg:var(--nb-white);--step-text:var(--nb-text);--step-muted:var(--nb-muted);--step-border:var(--nb-border)}
.nb-lib-approach .nb-approach--03.nb-theme--light .nb-approach-step__number{color:var(--nb-primary);background:color-mix(in srgb,var(--nb-secondary) 16%,var(--step-bg))}
.nb-lib-approach .nb-approach--03.nb-theme--light .nb-approach-step__meta span{color:var(--nb-primary);border-color:color-mix(in srgb,var(--nb-primary) 17%,transparent);background:color-mix(in srgb,var(--nb-surface) 58%,transparent)}
.nb-lib-approach .nb-approach--03.nb-theme--dark{--section-bg:var(--nb-primary);--section-text:var(--nb-white);--section-muted:rgba(255,255,255,.74);--section-eyebrow:var(--nb-white);--section-border:var(--nb-border-dark);--step-bg:rgba(255,255,255,.055);--step-text:var(--nb-white);--step-muted:rgba(255,255,255,.70);--step-border:var(--nb-border-dark)}
/* ===== CASE STUDIES MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-work{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-cta:#8B6535;
  --nb-cta-hover:#6F4E27;
  --nb-white:#FFFFFF;

  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.17);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);
  --nb-shadow-md:0 18px 48px rgba(22,28,24,.12);

  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;

  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);
  --nb-section-y:clamp(4rem,8vw,6.5rem);
  --nb-grid-gap:clamp(1rem,3vw,1.5rem);
  --nb-column-gap:clamp(2rem,5vw,5rem);

  --nb-radius-button:3px;
  --nb-radius-card:4px;
  --nb-transition:180ms ease;
}
.nb-lib-work *,
.nb-lib-work *::before,
.nb-lib-work *::after{box-sizing:border-box}
.nb-lib-work{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-work{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-work img,
.nb-lib-work svg{
  display:block;
  max-width:100%;
}
.nb-lib-work img{width:100%}
.nb-lib-work a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-work button{font:inherit}
.nb-lib-work :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   SHARED CASE-STUDY SECTION FOUNDATION
   ========================================================= */
.nb-lib-work .nb-work{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-rule:var(--nb-secondary);
  --section-border:var(--nb-border);

  --card-bg:var(--nb-white);
  --card-text:var(--nb-text);
  --card-muted:var(--nb-muted);
  --card-border:var(--nb-border);

  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-work .nb-work__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-work .nb-work__header{
  margin-bottom:clamp(2rem,5vw,3.25rem);
}
.nb-lib-work .nb-work__grid{min-width:0}
.nb-lib-work .nb-work__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .8rem;
  color:var(--section-eyebrow);
  font-size:clamp(.72rem,1.6vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nb-lib-work .nb-work__eyebrow::before{
  content:"";
  width:1.65rem;
  height:2px;
  flex:0 0 auto;
  background:var(--section-rule);
}
.nb-lib-work .nb-work__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,3.2rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
}
.nb-lib-work .nb-work__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.7vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
.nb-lib-work .nb-work__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-grid-gap);
}
/* Shared project card */
.nb-lib-work .nb-project{
  min-width:0;
  height:100%;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  color:var(--card-text);
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:var(--nb-radius-card);
  transition:
    transform var(--nb-transition),
    border-color var(--nb-transition),
    box-shadow var(--nb-transition);
}
.nb-lib-work .nb-project:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--nb-secondary) 55%,var(--card-border));
  box-shadow:var(--nb-shadow-md);
}
.nb-lib-work .nb-project__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--nb-surface);
}
.nb-lib-work .nb-project__media img{
  height:100%;
  object-fit:cover;
  transition:transform 420ms ease;
}
.nb-lib-work .nb-project:hover .nb-project__media img{
  transform:scale(1.035);
}
.nb-lib-work .nb-project__badge{
  position:absolute;
  top:.75rem;
  left:.75rem;
  z-index:2;
  padding:.35rem .55rem;
  border-radius:3px;
  color:var(--nb-primary-deep);
  background:color-mix(in srgb,var(--nb-secondary) 82%,white);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.nb-lib-work .nb-project__body{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  padding:clamp(1.25rem,4vw,1.75rem);
}
.nb-lib-work .nb-project__meta{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem .75rem;
  margin:0 0 .75rem;
  color:var(--card-muted);
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.nb-lib-work .nb-project__meta span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}
.nb-lib-work .nb-project__meta span + span::before{
  content:"";
  width:.3rem;
  height:.3rem;
  border-radius:50%;
  background:var(--nb-secondary);
}
.nb-lib-work .nb-project__heading{
  margin:0;
  color:var(--card-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(1.55rem,5vw,2rem);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-.012em;
  text-wrap:balance;
}
.nb-lib-work .nb-project__description{
  margin:.75rem 0 0;
  color:var(--card-muted);
  font-size:.95rem;
  line-height:1.68;
  text-wrap:pretty;
}
.nb-lib-work .nb-project__link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:auto;
  padding-top:1.25rem;
  color:var(--nb-primary);
  font-size:.84rem;
  font-weight:700;
}
.nb-lib-work .nb-project__link::after{
  content:"→";
  color:var(--nb-secondary);
  transition:transform var(--nb-transition);
}
.nb-lib-work .nb-project:hover .nb-project__link::after{
  transform:translateX(4px);
}
/* Metrics */
/* Buttons and filters */
/* Equal-height split */
/* Before and after */
/* Gallery */
/* Testimonial */
/* Timeline */
/* =========================================================
   20 VARIATIONS
   ========================================================= */
/* 01 Standard grid */
.nb-lib-work .nb-work--01{--section-bg:var(--nb-background)}
/* 02 Warm grid */
/* 03 Dark overlay cards */
/* 04 Large two-up */
.nb-lib-work .nb-work--04 .nb-project__media{aspect-ratio:16/10}
/* 05 Featured */
/* 06 Horizontal */
.nb-lib-work .nb-work--06 .nb-project{display:grid;grid-template-columns:minmax(7.5rem,34%) minmax(0,1fr)}
.nb-lib-work .nb-work--06 .nb-project__media{height:100%;aspect-ratio:auto}
/* 07 Split image left */
/* 08 Split image right dark */
/* 09 Before after */
/* 10 Mosaic */
/* 11 Results-led */
/* 12 Editorial list */
/* 13 Scroll snap */
.nb-lib-work .nb-work--13{--section-bg:var(--nb-surface);--card-bg:var(--nb-background)}
.nb-lib-work .nb-work--13 .nb-work__grid{grid-auto-flow:column;grid-auto-columns:minmax(82%,1fr);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;padding-bottom:.5rem}
.nb-lib-work .nb-work--13 .nb-work__grid::-webkit-scrollbar{display:none}
.nb-lib-work .nb-work--13 .nb-project{scroll-snap-align:start}
/* 14 Filter grid */
/* 15 Location cards */
/* 16 Testimonial case */
/* 17 Timeline */
/* 18 Minimal no image */
/* 19 Dark showcase */
/* 20 Gallery + details */
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-work .nb-work__heading{font-size:clamp(2.5rem,6.5vw,3.5rem)}
.nb-lib-work .nb-work__description{font-size:clamp(1rem,2vw,1.1rem)}
.nb-lib-work .nb-work__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.nb-lib-work .nb-work--06 .nb-work__grid{grid-template-columns:minmax(0,1fr)}
.nb-lib-work .nb-work--13 .nb-work__grid{grid-template-columns:none;grid-auto-columns:minmax(20rem,70%)}}
@media (min-width:48rem){.nb-lib-work .nb-work__heading{font-size:clamp(2.75rem,5vw,3.75rem)}}
@media (min-width:64rem){.nb-lib-work .nb-work__heading{font-size:clamp(3rem,3.6vw,3.75rem)}
.nb-lib-work .nb-work__description{font-size:1.08rem}
.nb-lib-work .nb-work__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-lib-work .nb-work--01 .nb-work__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-lib-work .nb-work--04 .nb-work__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.nb-lib-work .nb-work--06 .nb-work__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.nb-lib-work .nb-work--13 .nb-work__grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;overflow:visible;padding-bottom:0}
.nb-lib-work .nb-work--13 .nb-project{scroll-snap-align:none}}
@media (prefers-reduced-motion:reduce){.nb-lib-work *,
.nb-lib-work *::before,
.nb-lib-work *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* Shared dark presentation for approved project layouts. */
.nb-lib-work .nb-work.nb-theme--light{--section-bg:var(--nb-background);--section-text:var(--nb-text);--section-muted:var(--nb-muted);--section-eyebrow:var(--nb-primary);--section-border:var(--nb-border);--card-bg:var(--nb-white);--card-text:var(--nb-text);--card-muted:var(--nb-muted);--card-border:var(--nb-border)}
.nb-lib-work .nb-work.nb-theme--dark{--section-bg:var(--nb-primary);--section-text:var(--nb-white);--section-muted:rgba(255,255,255,.74);--section-eyebrow:var(--nb-white);--section-border:var(--nb-border-dark);--card-bg:rgba(255,255,255,.055);--card-text:var(--nb-white);--card-muted:rgba(255,255,255,.70);--card-border:var(--nb-border-dark)}
.nb-lib-work .nb-work.nb-theme--dark .nb-project__link{color:var(--nb-white)}
/* Work 06: equal grid tracks and equal card dimensions at every breakpoint. */
.nb-lib-work .nb-work--06 .nb-work__grid{grid-auto-rows:1fr;align-items:stretch}
.nb-lib-work .nb-work--06 .nb-project{width:100%;height:100%;grid-template-columns:minmax(7.5rem,34%) minmax(0,1fr)}
.nb-lib-work .nb-work--06 .nb-project__media{width:100%;height:100%}
/* ===== BLIND TYPE CARDS MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-types{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-white:#FFFFFF;

  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.17);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);
  --nb-shadow-md:0 18px 48px rgba(22,28,24,.12);

  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;

  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);
  --nb-section-y:clamp(4rem,8vw,6.5rem);
  --nb-gap:clamp(1rem,3vw,1.5rem);

  --nb-radius:4px;
  --nb-transition:180ms ease;
}
.nb-lib-types *,
.nb-lib-types *::before,
.nb-lib-types *::after{box-sizing:border-box}
.nb-lib-types{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-types{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-types img{
  display:block;
  width:100%;
  max-width:100%;
}
.nb-lib-types a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-types :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   SHARED BLIND-TYPE SECTION FOUNDATION
   ========================================================= */
.nb-lib-types .nb-types{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-rule:var(--nb-secondary);

  --card-bg:var(--nb-white);
  --card-text:var(--nb-text);
  --card-muted:var(--nb-muted);
  --card-border:var(--nb-border);

  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-types .nb-types__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-types .nb-types__header{
  margin-bottom:clamp(2rem,5vw,3.25rem);
}
.nb-lib-types .nb-types__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .8rem;
  color:var(--section-eyebrow);
  font-size:clamp(.72rem,1.6vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nb-lib-types .nb-types__eyebrow::before{
  content:"";
  width:1.65rem;
  height:2px;
  flex:0 0 auto;
  background:var(--section-rule);
}
.nb-lib-types .nb-types__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,3.2rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
}
.nb-lib-types .nb-types__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.7vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
.nb-lib-types .nb-types__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-gap);
}
/* Shared blind card */
.nb-lib-types .nb-type-card{
  min-width:0;
  height:100%;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  color:var(--card-text);
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:var(--nb-radius);
  transition:
    transform var(--nb-transition),
    border-color var(--nb-transition),
    box-shadow var(--nb-transition);
}
.nb-lib-types .nb-type-card:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--nb-secondary) 55%,var(--card-border));
  box-shadow:var(--nb-shadow-md);
}
.nb-lib-types .nb-type-card__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--nb-surface);
}
.nb-lib-types .nb-type-card__media img{
  height:100%;
  object-fit:cover;
  transition:transform 420ms ease;
}
.nb-lib-types .nb-type-card:hover .nb-type-card__media img{
  transform:scale(1.035);
}
.nb-lib-types .nb-type-card__badge{
  position:absolute;
  top:.75rem;
  left:.75rem;
  z-index:2;
  padding:.35rem .55rem;
  border-radius:3px;
  color:var(--nb-primary-deep);
  background:color-mix(in srgb,var(--nb-secondary) 82%,white);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.nb-lib-types .nb-type-card__body{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  padding:clamp(1.25rem,4vw,1.75rem);
}
.nb-lib-types .nb-type-card__heading{
  margin:0;
  color:var(--card-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(1.55rem,5vw,2rem);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-.012em;
  text-wrap:balance;
}
.nb-lib-types .nb-type-card__description{
  margin:.75rem 0 0;
  color:var(--card-muted);
  font-size:.95rem;
  line-height:1.68;
  text-wrap:pretty;
}
.nb-lib-types .nb-type-card__features{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin:1rem 0 0;
  padding:0;
  list-style:none;
}
.nb-lib-types .nb-type-card__features li{
  padding:.32rem .5rem;
  border:1px solid color-mix(in srgb,var(--nb-primary) 17%,transparent);
  border-radius:3px;
  color:var(--nb-primary);
  background:color-mix(in srgb,var(--nb-surface) 58%,transparent);
  font-size:.72rem;
  font-weight:600;
  line-height:1.25;
}
.nb-lib-types .nb-type-card__link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:auto;
  padding-top:1.25rem;
  color:var(--nb-primary);
  font-size:.84rem;
  font-weight:700;
}
.nb-lib-types .nb-type-card__link::after{
  content:"→";
  color:var(--nb-secondary);
  transition:transform var(--nb-transition);
}
.nb-lib-types .nb-type-card:hover .nb-type-card__link::after{
  transform:translateX(4px);
}
/* =========================================================
   SECTION VARIATIONS
   ========================================================= */
/* 01 — Standard image grid */
.nb-lib-types .nb-types--01{
  --section-bg:var(--nb-background);
  --card-bg:var(--nb-white);
}
/* 02 — Warm stone grid */
/* 03 — Dark heritage cards */
.nb-lib-types .nb-types--03{
  --section-bg:var(--nb-primary);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-eyebrow:var(--nb-white);
  --card-bg:rgba(255,255,255,.055);
  --card-text:var(--nb-white);
  --card-muted:rgba(255,255,255,.70);
  --card-border:var(--nb-border-dark);
}
.nb-lib-types .nb-types--03 .nb-type-card__features li{
  color:var(--nb-white);
  border-color:rgba(255,255,255,.17);
  background:rgba(255,255,255,.06);
}
.nb-lib-types .nb-types--03 .nb-type-card__link{
  color:var(--nb-white);
}
/* 04 — Image overlay */
/* 05 — Horizontal type cards */
/* 06 — Featured blind type */
/* 07 — Editorial list */
/* 08 — Compact no-image cards */
/* 09 — Mobile scroll-snap */
/* 10 — Large two-up cards */
/* 11 — Category strip */
/* 12 — Comparison-focused cards */
.nb-lib-types .nb-types--12{
  --section-bg:var(--nb-surface);
  --card-bg:var(--nb-background);
}
.nb-lib-types .nb-types--12 .nb-type-card{
  border-top:3px solid var(--nb-secondary);
}
.nb-lib-types .nb-type-card__meta{
  display:grid;
  gap:.6rem;
  margin:1rem 0 0;
  padding-top:1rem;
  border-top:1px solid color-mix(in srgb,var(--card-text) 12%,transparent);
}
.nb-lib-types .nb-type-card__meta-row{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  color:var(--card-muted);
  font-size:.78rem;
}
.nb-lib-types .nb-type-card__meta-row strong{
  color:var(--card-text);
  font-weight:700;
}
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-types .nb-types__heading{
    font-size:clamp(2.5rem,6.5vw,3.5rem);
  }
.nb-lib-types .nb-types__description{
    font-size:clamp(1rem,2vw,1.1rem);
  }
.nb-lib-types .nb-types__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (min-width:48rem){.nb-lib-types .nb-types__heading{
    font-size:clamp(2.75rem,5vw,3.75rem);
  }}
@media (min-width:64rem){.nb-lib-types .nb-types__heading{
    font-size:clamp(3rem,3.6vw,3.75rem);
  }
.nb-lib-types .nb-types__description{
    font-size:1.08rem;
  }
.nb-lib-types .nb-types__grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
.nb-lib-types .nb-types--01 .nb-types__grid,
.nb-lib-types .nb-types--03 .nb-types__grid,
.nb-lib-types .nb-types--12 .nb-types__grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }}
@media (prefers-reduced-motion:reduce){.nb-lib-types *,
.nb-lib-types *::before,
.nb-lib-types *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }}
/* Approved dark comparison-card treatment. */
.nb-lib-types .nb-types--12.nb-theme--light{--section-bg:var(--nb-surface);--section-text:var(--nb-text);--section-muted:var(--nb-muted);--section-eyebrow:var(--nb-primary);--card-bg:var(--nb-background);--card-text:var(--nb-text);--card-muted:var(--nb-muted);--card-border:var(--nb-border)}
.nb-lib-types .nb-types--12.nb-theme--dark{--section-bg:var(--nb-primary);--section-text:var(--nb-white);--section-muted:rgba(255,255,255,.74);--section-eyebrow:var(--nb-white);--card-bg:rgba(255,255,255,.055);--card-text:var(--nb-white);--card-muted:rgba(255,255,255,.70);--card-border:var(--nb-border-dark)}
.nb-lib-types .nb-types--12.nb-theme--dark .nb-type-card__features li{color:var(--nb-white);border-color:rgba(255,255,255,.17);background:rgba(255,255,255,.06)}
.nb-lib-types .nb-types--12.nb-theme--dark .nb-type-card__link{color:var(--nb-white)}
/* ===== INSPIRED SECTIONS MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-inspired{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-surface-soft:#EFE9DD;
  --nb-card:#F4EFE6;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-white:#FFFFFF;
  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.14);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);
  --nb-shadow-md:0 16px 44px rgba(22,28,24,.11);
  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;
  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);
  --nb-section-y:clamp(3.75rem,8vw,6.5rem);
  --nb-gap:clamp(1rem,2vw,1.5rem);
  --nb-gap-lg:clamp(1.5rem,4vw,3rem);
  --nb-radius:4px;
  --nb-radius-lg:18px;
  --nb-transition:180ms ease;
}
.nb-lib-inspired *,
.nb-lib-inspired *::before,
.nb-lib-inspired *::after{box-sizing:border-box}
.nb-lib-inspired{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-inspired{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-inspired img{
  display:block;
  width:100%;
  max-width:100%;
}
.nb-lib-inspired a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-inspired :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   FOUNDATION
   ========================================================= */
.nb-lib-inspired .nb-section{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-card:var(--nb-card);
  --section-border:var(--nb-border);
  --section-hero:var(--nb-surface);
  --section-link:var(--nb-primary);
  --section-button-bg:var(--nb-primary);
  --section-button-text:var(--nb-white);

  position:relative;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-inspired .nb-section--dark{
  --section-bg:linear-gradient(90deg,#153127 0%, #203F33 100%);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-card:rgba(255,255,255,.06);
  --section-border:rgba(255,255,255,.13);
  --section-hero:rgba(255,255,255,.05);
  --section-link:#E8C27F;
  --section-button-bg:#C49A58;
  --section-button-text:#10221B;
}
.nb-lib-inspired .nb-section__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-inspired .nb-section__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .85rem;
  color:var(--nb-secondary);
  font-size:clamp(.72rem,1.4vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.nb-lib-inspired .nb-section--dark .nb-section__eyebrow{color:#D3AE69}
.nb-lib-inspired .nb-section__eyebrow::before{
  content:"";
  width:1.5rem;
  height:2px;
  flex:0 0 auto;
  background:currentColor;
}
.nb-lib-inspired .nb-section__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,4rem);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.024em;
  text-wrap:balance;
}
.nb-lib-inspired .nb-section__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.3vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
.nb-lib-inspired .nb-section__link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-top:1rem;
  color:var(--section-link);
  font-size:.88rem;
  font-weight:700;
}
.nb-lib-inspired .nb-section__button{
  min-height:3rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.82rem 1.2rem;
  border-radius:4px;
  color:var(--section-button-text);
  background:var(--section-button-bg);
  font-size:.88rem;
  font-weight:700;
  text-align:center;
  transition:transform var(--nb-transition),opacity var(--nb-transition);
}
.nb-lib-inspired .nb-section__button:hover{
  transform:translateY(-2px);
  opacity:.95;
}
.nb-lib-inspired .nb-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--section-border);
  border-radius:var(--nb-radius);
  background:var(--section-card);
  box-shadow:var(--nb-shadow-sm);
}
.nb-lib-inspired .nb-section--dark .nb-card{box-shadow:none}
.nb-lib-inspired .nb-card__media{
  position:relative;
  overflow:hidden;
  background:var(--section-hero);
}
.nb-lib-inspired .nb-card__media img{
  height:100%;
  min-height:12rem;
  object-fit:cover;
}
.nb-lib-inspired .nb-card__body{
  padding:1rem;
}
.nb-lib-inspired .nb-card__title{
  margin:0;
  color:var(--section-text);
  font-size:clamp(1.05rem,2vw,1.15rem);
  font-weight:700;
  line-height:1.34;
}
.nb-lib-inspired .nb-card__text{
  margin:.45rem 0 0;
  color:var(--section-muted);
  font-size:.88rem;
  line-height:1.6;
}
.nb-lib-inspired .nb-card__meta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  margin-bottom:.8rem;
  border:1px solid color-mix(in srgb,var(--section-text) 15%,transparent);
  border-radius:50%;
  color:var(--nb-secondary);
  font-size:.8rem;
  font-weight:700;
}
.nb-lib-inspired .nb-card__footer{
  margin-top:1rem;
}
.nb-lib-inspired .nb-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-gap);
}
.nb-lib-inspired .nb-split{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-gap-lg);
  align-items:start;
}
.nb-lib-inspired .nb-hero-image{
  overflow:hidden;
  border-radius:var(--nb-radius-lg);
  background:var(--section-hero);
  border:1px solid var(--section-border);
}
.nb-lib-inspired .nb-hero-image img{
  height:100%;
  min-height:18rem;
  object-fit:cover;
}
.nb-lib-inspired .nb-overlay{
  position:absolute;
  inset:auto 0 0 0;
  padding:1rem;
  color:#fff;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));
}
.nb-lib-inspired .nb-kicker-row{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  align-items:end;
  justify-content:space-between;
  margin-bottom:1.75rem;
}
.nb-lib-inspired .nb-tight > * + *{
  margin-top:1rem;
}
/* =========================================================
   SECTION-SPECIFIC VARIANTS
   ========================================================= */
.nb-lib-inspired .nb-template--01 .nb-grid{margin-top:2rem}
.nb-lib-inspired .nb-template--01 .nb-card__media{aspect-ratio:4/3}
.nb-lib-inspired .nb-template--03 .nb-grid{margin-top:2rem}
.nb-lib-inspired .nb-template--03 .nb-card__media{aspect-ratio:3/5}
.nb-lib-inspired .nb-template--03 .nb-overlay{padding:1rem .9rem .9rem}
.nb-lib-inspired .nb-template--04 .nb-grid{margin-top:2rem}
.nb-lib-inspired .nb-template--04 .nb-card__body{padding:1rem 1rem 1.1rem}
.nb-lib-inspired .nb-template--04 .nb-card__media{aspect-ratio:16/10}
.nb-lib-inspired .nb-template--07 .nb-split{align-items:center}
.nb-lib-inspired .nb-template--07 .nb-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--nb-gap);
  margin-top:1.5rem;
}
.nb-lib-inspired .nb-template--07 .nb-stat{
  padding:1rem 0;
  border-top:1px solid var(--section-border);
}
.nb-lib-inspired .nb-template--07 .nb-stat strong{
  display:block;
  color:var(--section-text);
  font-size:.95rem;
}
.nb-lib-inspired .nb-template--07 .nb-stat span{
  display:block;
  margin-top:.25rem;
  color:var(--section-muted);
  font-size:.84rem;
  line-height:1.5;
}
.nb-lib-inspired .nb-template--08 .nb-kicker-row{align-items:flex-start}
.nb-lib-inspired .nb-template--08 .nb-grid{margin-top:1.5rem}
.nb-lib-inspired .nb-template--08 .nb-card{padding:1.25rem}
.nb-lib-inspired .nb-template--08 .nb-card__footer{margin-top:1.1rem}
.nb-lib-inspired .nb-template--11 .nb-kicker-row{margin-bottom:1.5rem}
.nb-lib-inspired .nb-template--11 .nb-grid{margin-top:1.2rem}
.nb-lib-inspired .nb-template--11 .nb-card{padding:1.2rem}
.nb-lib-inspired .nb-template--12 .nb-kicker-row{align-items:flex-end}
.nb-lib-inspired .nb-template--12 .nb-grid{margin-top:1.5rem}
.nb-lib-inspired .nb-template--12 .nb-card{padding:1.25rem}
.nb-lib-inspired .nb-template--13 .nb-grid{margin-top:2rem}
.nb-lib-inspired .nb-template--13 .nb-card{padding:1.15rem}
.nb-lib-inspired .nb-template--13 .nb-card__title{font-size:1rem}
.nb-lib-inspired .nb-template--16 .nb-grid{margin-top:2rem}
.nb-lib-inspired .nb-template--16 .nb-card{padding:1.2rem}
.nb-lib-inspired .nb-template--16 .nb-card__footer{margin-top:1.25rem}
/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (min-width:36rem){.nb-lib-inspired .nb-template--08 .nb-grid,
.nb-lib-inspired .nb-template--11 .nb-grid,
.nb-lib-inspired .nb-template--12 .nb-grid,
.nb-lib-inspired .nb-template--13 .nb-grid,
.nb-lib-inspired .nb-template--16 .nb-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
.nb-lib-inspired .nb-template--01 .nb-grid,
.nb-lib-inspired .nb-template--03 .nb-grid,
.nb-lib-inspired .nb-template--04 .nb-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (min-width:48rem){.nb-lib-inspired .nb-section__heading{
    font-size:clamp(2.75rem,5vw,4.25rem);
  }
.nb-lib-inspired .nb-split{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:center;
  }}
@media (min-width:64rem){.nb-lib-inspired .nb-section__heading{
    font-size:clamp(3rem,3.8vw,4.5rem);
  }
.nb-lib-inspired .nb-template--01 .nb-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-lib-inspired .nb-template--03 .nb-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-lib-inspired .nb-template--04 .nb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-lib-inspired .nb-template--08 .nb-grid,
.nb-lib-inspired .nb-template--11 .nb-grid,
.nb-lib-inspired .nb-template--12 .nb-grid,
.nb-lib-inspired .nb-template--13 .nb-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-lib-inspired .nb-template--16 .nb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-lib-inspired .nb-template--07 .nb-split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}
@media (prefers-reduced-motion:reduce){.nb-lib-inspired *,
.nb-lib-inspired *::before,
.nb-lib-inspired *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }}
/* =========================================================
   PROFESSIONAL REFINEMENT LAYER V2
   Aligns these inspired layouts with the approved Noble Blinds
   FAQ, service-card, blind-type and image-content libraries.
   ========================================================= */
.nb-lib-inspired .nb-section{
  --section-card-hover:color-mix(in srgb,var(--section-card) 94%,var(--nb-white));
  --section-hover-border:color-mix(in srgb,var(--nb-secondary) 60%,var(--section-border));
  --section-hover-shadow:0 18px 46px rgba(22,28,24,.14);
}
.nb-lib-inspired .nb-section--dark{
  --section-card-hover:rgba(255,255,255,.085);
  --section-hover-border:rgba(232,194,127,.42);
  --section-hover-shadow:0 20px 48px rgba(0,0,0,.20);
}
/* Restrained type scale used in the approved production libraries. */
.nb-lib-inspired .nb-section__heading{
  font-size:clamp(2.15rem,7.4vw,3.2rem);
  line-height:1.08;
  letter-spacing:-.022em;
}
.nb-lib-inspired .nb-section__description{
  font-size:clamp(1rem,2.5vw,1.08rem);
  line-height:1.72;
}
.nb-lib-inspired .nb-card__title{
  font-size:clamp(1.02rem,2.2vw,1.16rem);
  line-height:1.38;
}
.nb-lib-inspired .nb-card__text{
  font-size:.9rem;
  line-height:1.65;
}
/* Equal-height card structure. */
.nb-lib-inspired .nb-card{
  height:100%;
  display:flex;
  flex-direction:column;
  position:relative;
  isolation:isolate;
  transform:translateY(0);
  transition:
    transform 240ms ease,
    border-color 240ms ease,
    background-color 240ms ease,
    box-shadow 240ms ease;
  will-change:transform;
}
.nb-lib-inspired .nb-card__media{
  flex:0 0 auto;
}
.nb-lib-inspired .nb-card__media img{
  transform:scale(1);
  transition:transform 520ms cubic-bezier(.2,.7,.2,1);
}
.nb-lib-inspired .nb-card__body{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  padding:1.1rem;
}
.nb-lib-inspired .nb-card__footer{
  margin-top:auto;
  padding-top:1rem;
}
.nb-lib-inspired .nb-card:hover,
.nb-lib-inspired .nb-card:focus-within{
  z-index:2;
  transform:translateY(-5px);
  border-color:var(--section-hover-border);
  background:var(--section-card-hover);
  box-shadow:var(--section-hover-shadow);
}
.nb-lib-inspired .nb-card:hover .nb-card__media img,
.nb-lib-inspired .nb-card:focus-within .nb-card__media img{
  transform:scale(1.045);
}
.nb-lib-inspired .nb-card:hover .nb-section__link,
.nb-lib-inspired .nb-card:focus-within .nb-section__link{
  color:var(--nb-secondary);
}
.nb-lib-inspired .nb-section__link{
  position:relative;
  transition:color 180ms ease,transform 180ms ease;
}
.nb-lib-inspired .nb-section__link:hover,
.nb-lib-inspired .nb-section__link:focus-visible{
  color:var(--nb-secondary);
  transform:translateX(3px);
}
.nb-lib-inspired .nb-section__button{
  border:1px solid transparent;
  box-shadow:none;
  transition:
    transform 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    opacity 180ms ease;
}
.nb-lib-inspired .nb-section__button:hover,
.nb-lib-inspired .nb-section__button:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(22,28,24,.16);
}
/* Image and mosaic surfaces receive the same restrained interaction language. */
.nb-lib-inspired .nb-hero-image{
  position:relative;
  transform:translateY(0);
  transition:
    transform 260ms ease,
    border-color 260ms ease,
    box-shadow 260ms ease;
}
.nb-lib-inspired .nb-hero-image img{
  transform:scale(1);
  transition:transform 560ms cubic-bezier(.2,.7,.2,1);
}
.nb-lib-inspired .nb-hero-image:hover,
.nb-lib-inspired .nb-hero-image:focus-within{
  transform:translateY(-4px);
  border-color:var(--section-hover-border);
  box-shadow:var(--section-hover-shadow);
}
.nb-lib-inspired .nb-hero-image:hover img,
.nb-lib-inspired .nb-hero-image:focus-within img{
  transform:scale(1.035);
}
/* More legible image overlays, matching the supplied reference layouts. */
.nb-lib-inspired .nb-overlay{
  padding:clamp(1rem,3vw,1.35rem);
  background:
    linear-gradient(
      180deg,
      rgba(14,25,21,0) 0%,
      rgba(14,25,21,.32) 36%,
      rgba(14,25,21,.88) 100%
    );
}
.nb-lib-inspired .nb-overlay .nb-card__title{
  font-family:var(--nb-font-heading);
  font-size:clamp(1.25rem,3vw,1.75rem);
  font-weight:400;
  line-height:1.12;
}
.nb-lib-inspired .nb-overlay .nb-card__text{
  margin-top:.3rem;
  font-size:.8rem;
  line-height:1.5;
}
/* Remove double padding from numbered/text-only card templates. */
.nb-lib-inspired .nb-template--08 .nb-card,
.nb-lib-inspired .nb-template--11 .nb-card,
.nb-lib-inspired .nb-template--12 .nb-card,
.nb-lib-inspired .nb-template--13 .nb-card,
.nb-lib-inspired .nb-template--14 .nb-card{
  padding:0;
}
.nb-lib-inspired .nb-template--08 .nb-card__body,
.nb-lib-inspired .nb-template--11 .nb-card__body,
.nb-lib-inspired .nb-template--12 .nb-card__body,
.nb-lib-inspired .nb-template--13 .nb-card__body,
.nb-lib-inspired .nb-template--14 .nb-card__body{
  padding:clamp(1.15rem,3vw,1.45rem);
}
/* Template 01 — compact catalogue cards, similar to the first reference. */
.nb-lib-inspired .nb-template--01 .nb-card{
  border-radius:14px;
}
.nb-lib-inspired .nb-template--01 .nb-card__media{
  aspect-ratio:4/3;
}
.nb-lib-inspired .nb-template--01 .nb-card__body{
  padding:1rem 1rem 1.05rem;
}
.nb-lib-inspired .nb-template--01 .nb-card__title{
  font-size:1.05rem;
}
.nb-lib-inspired .nb-template--01 .nb-card__text{
  font-size:.84rem;
}
/* Template 02 — one large room tile and a true two-by-two mosaic. */
/* Template 03 — tall editorial collection cards. */
.nb-lib-inspired .nb-template--03 .nb-card{
  border-radius:16px;
}
.nb-lib-inspired .nb-template--03 .nb-card__media{
  aspect-ratio:3/5;
}
.nb-lib-inspired .nb-template--03 .nb-overlay .nb-card__title{
  font-size:clamp(1.45rem,3.2vw,1.9rem);
}
/* Template 04 — clean three-card product category row. */
.nb-lib-inspired .nb-template--04 .nb-card{
  border-radius:4px;
  box-shadow:none;
}
.nb-lib-inspired .nb-template--04 .nb-card:hover,
.nb-lib-inspired .nb-template--04 .nb-card:focus-within{
  box-shadow:var(--section-hover-shadow);
}
/* Template 05 — story split remains editorial; bubble gets restrained movement. */
/* Template 06 — accurate numbered reasons. */
/* Template 07 — commercial feature split. */
.nb-lib-inspired .nb-template--07 .nb-stat{
  min-height:7.25rem;
  transition:transform 180ms ease,border-color 180ms ease;
}
.nb-lib-inspired .nb-template--07 .nb-stat:hover{
  transform:translateY(-2px);
  border-color:var(--nb-secondary);
}
/* Template 08 — exactly a two-by-two feature grid beside the image. */
.nb-lib-inspired .nb-template--08 .nb-card{
  border-radius:12px;
}
.nb-lib-inspired .nb-template--08 .nb-card__meta{
  margin-bottom:1rem;
}
/* Template 09 — six recommendations form a 3 x 2 desktop grid. */
/* Template 10 — wide four-stage process strip. */
/* Template 11 — result-first cards. */
.nb-lib-inspired .nb-template--11 .nb-card{
  border-radius:10px;
  min-height:13rem;
}
/* Template 12 — centred mission and values treatment. */
.nb-lib-inspired .nb-template--12 .nb-card{
  border-radius:12px;
  min-height:14.5rem;
}
/* Template 13 — six expertise cards form a 3 x 2 layout. */
.nb-lib-inspired .nb-template--13 .nb-card{
  min-height:13.5rem;
  border-radius:10px;
}
/* Template 14 — four equal 'who it helps' cards. */
.nb-lib-inspired .nb-template--14 .nb-card{
  min-height:12rem;
  border-radius:10px;
}
/* Template 15 — true curved CTA banner layout. */
/* Template 16 — framed image cards, four across on desktop. */
.nb-lib-inspired .nb-template--16 .nb-card{
  padding:.65rem;
  border-color:color-mix(in srgb,var(--nb-secondary) 58%,var(--section-border));
  box-shadow:none;
}
.nb-lib-inspired .nb-template--16 .nb-card__body{
  padding:1rem .2rem .25rem;
}
.nb-lib-inspired .nb-template--16 .nb-card__media{
  aspect-ratio:16/9;
}
/* Template 17 — four-process cards with clear circular markers. */
/* Template 18 — compact need-based service cards. */
/* Correct responsive column counts to mirror the supplied layouts. */
@media (min-width:36rem){.nb-lib-inspired .nb-template--14 .nb-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (min-width:48rem){.nb-lib-inspired .nb-section__heading{
    font-size:clamp(2.65rem,5vw,3.55rem);
  }}
@media (min-width:64rem){.nb-lib-inspired .nb-section__heading{
    font-size:clamp(2.9rem,3.35vw,3.75rem);
  }
.nb-lib-inspired .nb-template--08 .nb-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
.nb-lib-inspired .nb-template--13 .nb-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
.nb-lib-inspired .nb-template--14 .nb-grid,
.nb-lib-inspired .nb-template--16 .nb-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }}
/* Mobile interaction: cards do not jump under a finger, but retain feedback. */
@media (hover:none){.nb-lib-inspired .nb-card:hover,
.nb-lib-inspired .nb-hero-image:hover{
    transform:none;
  }
.nb-lib-inspired .nb-card:active,
.nb-lib-inspired .nb-hero-image:active{
    transform:scale(.992);
  }}
/* The final motion rule must follow the refinement layer. */
@media (prefers-reduced-motion:reduce){.nb-lib-inspired .nb-card,
.nb-lib-inspired .nb-card__media img,
.nb-lib-inspired .nb-hero-image,
.nb-lib-inspired .nb-hero-image img,
.nb-lib-inspired .nb-section__button,
.nb-lib-inspired .nb-section__link,
.nb-lib-inspired .nb-template--07 .nb-stat{
    transition:none!important;
    transform:none!important;
  }}
/* Standard Noble section typography. */
.nb-lib-inspired .nb-section__heading{font-size:clamp(2.2rem,8vw,3.2rem);line-height:1.08;letter-spacing:-.022em}
@media (min-width:36rem){.nb-lib-inspired .nb-section__heading{font-size:clamp(2.5rem,6.5vw,3.5rem)}}
@media (min-width:48rem){.nb-lib-inspired .nb-section__heading{font-size:clamp(2.75rem,5vw,3.75rem)}
/* Sections 08 and 16: row height is content-led; imagery fills the same row. */
.nb-lib-inspired .nb-template--08 .nb-split,
.nb-lib-inspired .nb-template--16 .nb-split{align-items:stretch}
.nb-lib-inspired .nb-template--08 .nb-hero-image,
.nb-lib-inspired .nb-template--16 .nb-hero-image{position:relative;min-height:0;height:auto}
.nb-lib-inspired .nb-template--08 .nb-hero-image img,
.nb-lib-inspired .nb-template--16 .nb-hero-image img{position:absolute;inset:0;min-height:0;height:100%;object-fit:cover}}
@media (min-width:64rem){.nb-lib-inspired .nb-section__heading{font-size:clamp(3rem,3.6vw,3.75rem)}}
/* ===== COMPACT PAGE HEROES MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-compact{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-white:#FFFFFF;

  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.18);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);

  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;

  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);

  /*
   * The target visual height is 30vh.
   * A practical mobile minimum prevents breadcrumb/title clipping.
   */
  --nb-compact-hero-height:30svh;
  --nb-compact-hero-min:13.5rem;

  --nb-radius:4px;
  --nb-transition:180ms ease;
}
.nb-lib-compact *,
.nb-lib-compact *::before,
.nb-lib-compact *::after{box-sizing:border-box}
.nb-lib-compact{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-compact{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-compact a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-compact :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   SHARED COMPACT 30VH HERO FOUNDATION
   Visible content: breadcrumb + heading only.
   ========================================================= */
.nb-lib-compact .nb-compact-hero{
  --hero-bg:var(--nb-background);
  --hero-text:var(--nb-text);
  --breadcrumb-text:color-mix(in srgb,var(--hero-text) 68%,transparent);
  --breadcrumb-current:var(--hero-text);
  --hero-rule:var(--nb-secondary);

  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:max(var(--nb-compact-hero-min),var(--nb-compact-hero-height));
  display:grid;
  align-items:center;
  color:var(--hero-text);
  background:var(--hero-bg);
}
.nb-lib-compact .nb-compact-hero__container{
  position:relative;
  z-index:2;
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:clamp(2.25rem,5vw,4rem);
}
.nb-lib-compact .nb-compact-hero__content{
  min-width:0;
}
/* Breadcrumb */
.nb-lib-compact .nb-compact-breadcrumb{
  margin:0 0 .9rem;
  color:var(--breadcrumb-text);
  font-size:clamp(.74rem,1.6vw,.8rem);
  line-height:1.4;
}
.nb-lib-compact .nb-compact-breadcrumb__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.4rem;
  margin:0;
  padding:0;
  list-style:none;
}
.nb-lib-compact .nb-compact-breadcrumb__item{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.nb-lib-compact .nb-compact-breadcrumb__item:not(:last-child)::after{
  content:"/";
  color:color-mix(in srgb,var(--breadcrumb-text) 55%,transparent);
}
.nb-lib-compact .nb-compact-breadcrumb a{
  color:inherit;
}
.nb-lib-compact .nb-compact-breadcrumb a:hover{
  color:var(--breadcrumb-current);
}
.nb-lib-compact .nb-compact-breadcrumb [aria-current="page"]{
  color:var(--breadcrumb-current);
  font-weight:600;
}
/* Heading — no width or max-width on the text element */
.nb-lib-compact .nb-compact-hero__heading{
  margin:0;
  color:var(--hero-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.35rem,9vw,3.6rem);
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.024em;
  text-wrap:balance;
}
/* =========================================================
   12 COMPACT HERO VARIATIONS
   ========================================================= */
/* 01 — Warm parchment */
/* 02 — Deep Heritage */
/* 03 — Warm stone */
/* 04 — Full background image */
.nb-lib-compact .nb-compact-hero--04{
  --hero-text:var(--nb-white);
  --breadcrumb-text:rgba(255,255,255,.68);
  --breadcrumb-current:var(--nb-white);
  background:
    linear-gradient(90deg,rgba(25,40,32,.90),rgba(25,40,32,.48)),
    url("https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=2000&q=86")
    center/cover no-repeat;
}
/* 05 — Image wash right */
/* 06 — Image wash left */
/* 07 — Framed panel */
/* 08 — Split tone */
/* 09 — Bronze top rule */
/* 10 — Centred */
/* 11 — Minimal dark line */
.nb-lib-compact .nb-compact-hero--11{
  --hero-bg:var(--nb-primary-deep);
  --hero-text:var(--nb-white);
  --breadcrumb-text:rgba(255,255,255,.66);
  --breadcrumb-current:var(--nb-white);
}
.nb-lib-compact .nb-compact-hero--11 .nb-compact-hero__content{
  padding-left:clamp(1rem,2.5vw,2rem);
  border-left:2px solid var(--nb-secondary);
}
/* 12 — Soft image background */
.nb-lib-compact .nb-compact-hero--12{
  --hero-text:var(--nb-text);
  background:
    linear-gradient(90deg,rgba(247,244,236,.97),rgba(247,244,236,.77)),
    url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2000&q=86")
    center/cover no-repeat;
}
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-compact .nb-compact-hero__heading{
    font-size:clamp(2.75rem,6.5vw,4rem);
  }}
@media (min-width:48rem){.nb-lib-compact{
    --nb-compact-hero-min:14.5rem;
  }
.nb-lib-compact .nb-compact-hero__heading{
    font-size:clamp(3rem,5vw,4.25rem);
  }}
@media (min-width:64rem){.nb-lib-compact{
    --nb-compact-hero-height:30vh;
    --nb-compact-hero-min:15rem;
  }
.nb-lib-compact .nb-compact-hero__heading{
    font-size:clamp(3.25rem,4vw,4.5rem);
  }}
@media (max-height:40rem) and (min-width:64rem){.nb-lib-compact{
    --nb-compact-hero-min:13rem;
  }
.nb-lib-compact .nb-compact-hero__container{
    padding-block:2rem;
  }
.nb-lib-compact .nb-compact-hero__heading{
    font-size:clamp(2.9rem,3.7vw,3.8rem);
  }}
@media (prefers-reduced-motion:reduce){.nb-lib-compact *,
.nb-lib-compact *::before,
.nb-lib-compact *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }}
/* Review navigation */
/* ===== FAQ SECTIONS MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-faq{
  --nb-primary:#24352D;
  --nb-primary-deep:#192820;
  --nb-secondary:#B08D57;
  --nb-background:#F7F4EC;
  --nb-surface:#E8E0D3;
  --nb-text:#202421;
  --nb-muted:#6D746F;
  --nb-white:#FFFFFF;

  --nb-border:rgba(32,36,33,.13);
  --nb-border-strong:rgba(36,53,45,.22);
  --nb-border-dark:rgba(255,255,255,.17);
  --nb-shadow-sm:0 8px 24px rgba(22,28,24,.08);

  --nb-font-heading:"DM Serif Display",Georgia,serif;
  --nb-font-body:"DM Sans",Arial,sans-serif;

  --nb-container:1240px;
  --nb-gutter:clamp(1rem,4vw,2.5rem);
  --nb-section-y:clamp(4rem,8vw,6.5rem);
  --nb-column-gap:clamp(1rem,3vw,1.5rem);

  --nb-radius:4px;
  --nb-transition:180ms ease;
}
.nb-lib-faq *,
.nb-lib-faq *::before,
.nb-lib-faq *::after{box-sizing:border-box}
.nb-lib-faq{
  scroll-behavior:smooth;
  text-size-adjust:100%;
}
.nb-lib-faq{
  margin:0;
  color:var(--nb-text);
  background:var(--nb-background);
  font-family:var(--nb-font-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.nb-lib-faq a{
  color:inherit;
  text-decoration:none;
}
.nb-lib-faq :focus-visible{
  outline:3px solid var(--nb-secondary);
  outline-offset:4px;
}
/* =========================================================
   SHARED DUAL-COLUMN FAQ FOUNDATION
   Both content columns always contain FAQ accordions.
   ========================================================= */
.nb-lib-faq .nb-dual-faq{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-rule:var(--nb-secondary);
  --section-border:var(--nb-border);

  --column-bg:transparent;
  --column-border:transparent;

  --item-bg:transparent;
  --item-text:var(--nb-text);
  --item-muted:var(--nb-muted);
  --item-border:var(--nb-border);

  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-faq .nb-dual-faq__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-faq .nb-dual-faq__header{
  margin-bottom:clamp(2rem,5vw,3.25rem);
}
.nb-lib-faq .nb-dual-faq__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .8rem;
  color:var(--section-eyebrow);
  font-size:clamp(.72rem,1.6vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nb-lib-faq .nb-dual-faq__eyebrow::before{
  content:"";
  width:1.65rem;
  height:2px;
  flex:0 0 auto;
  background:var(--section-rule);
}
.nb-lib-faq .nb-dual-faq__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,3.2rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
}
.nb-lib-faq .nb-dual-faq__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.7vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
.nb-lib-faq .nb-dual-faq__columns{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-column-gap);
  align-items:start;
}
.nb-lib-faq .nb-dual-faq__column{
  min-width:0;
  padding:var(--column-padding,0);
  border:1px solid var(--column-border);
  border-radius:var(--nb-radius);
  background:var(--column-bg);
}
.nb-lib-faq .nb-dual-faq__list{
  display:grid;
  gap:.75rem;
}
/* Native accordion */
.nb-lib-faq .nb-faq-item{
  color:var(--item-text);
  background:var(--item-bg);
  border:1px solid var(--item-border);
  border-radius:var(--nb-radius);
  overflow:hidden;
}
.nb-lib-faq .nb-faq-item summary{
  position:relative;
  min-height:3.75rem;
  display:flex;
  align-items:center;
  padding:1rem 3.5rem 1rem 1.1rem;
  color:var(--item-text);
  font-size:clamp(.98rem,2.5vw,1.06rem);
  font-weight:700;
  line-height:1.45;
  cursor:pointer;
  list-style:none;
}
.nb-lib-faq .nb-faq-item summary::-webkit-details-marker{display:none}
.nb-lib-faq .nb-faq-item summary::after{
  content:"+";
  position:absolute;
  top:50%;
  right:1.1rem;
  width:1.75rem;
  height:1.75rem;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--item-text) 22%,transparent);
  border-radius:50%;
  color:var(--nb-secondary);
  font-size:1.08rem;
  font-weight:500;
  line-height:1;
  transform:translateY(-50%);
  transition:background var(--nb-transition);
}
.nb-lib-faq .nb-faq-item[open] summary::after{
  content:"−";
  background:color-mix(in srgb,var(--nb-secondary) 13%,transparent);
}
.nb-lib-faq .nb-faq-item summary:hover{
  background:color-mix(in srgb,var(--item-text) 4%,transparent);
}
.nb-lib-faq .nb-faq-item__answer{
  padding:0 1.1rem 1.1rem;
  color:var(--item-muted);
  font-size:.96rem;
  line-height:1.72;
}
.nb-lib-faq .nb-faq-item__answer p{margin:0}
/* Category chips */
/* =========================================================
   12 VARIATIONS
   ========================================================= */
/* 01 — Standard dual accordions */
.nb-lib-faq .nb-dual-faq--01{
  --section-bg:var(--nb-background);
}
/* 02 — Warm stone, light accordions */
/* 03 — Dark Heritage */
.nb-lib-faq .nb-dual-faq--03{
  --section-bg:var(--nb-primary);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-eyebrow:var(--nb-white);
  --section-border:var(--nb-border-dark);

  --item-bg:rgba(255,255,255,.05);
  --item-text:var(--nb-white);
  --item-muted:rgba(255,255,255,.72);
  --item-border:var(--nb-border-dark);
}
/* 04 — Two framed FAQ panels */
.nb-lib-faq .nb-dual-faq--04{
  --section-bg:var(--nb-background);
  --column-bg:var(--nb-surface);
  --column-border:var(--nb-border-strong);
  --column-padding:clamp(1.25rem,4vw,2rem);
  --item-bg:var(--nb-background);
}
/* 05 — Minimal divider columns */
/* 06 — Alternate open items */
/* 07 — Categories above dual columns */
/* 08 — Contrasting columns */
.nb-lib-faq .nb-dual-faq--08{
  --section-bg:var(--nb-background);
}
.nb-lib-faq .nb-dual-faq--08 .nb-dual-faq__column:first-child{
  --column-bg:var(--nb-primary);
  --column-border:var(--nb-primary);
  --item-bg:rgba(255,255,255,.05);
  --item-text:var(--nb-white);
  --item-muted:rgba(255,255,255,.72);
  --item-border:rgba(255,255,255,.17);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.72);
  padding:clamp(1.25rem,4vw,2rem);
}
.nb-lib-faq .nb-dual-faq--08 .nb-dual-faq__column:last-child{
  padding:clamp(1.25rem,4vw,2rem);
  border:1px solid var(--nb-border-strong);
  background:var(--nb-surface);
  --item-bg:var(--nb-background);
}
/* 09 — Compact dual FAQ */
/* 10 — Strong category panels */
/* 11 — Gold top-rule columns */
/* 12 — Editorial question groups */
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-faq .nb-dual-faq__heading{
    font-size:clamp(2.5rem,6.5vw,3.5rem);
  }
.nb-lib-faq .nb-dual-faq__description{
    font-size:clamp(1rem,2vw,1.1rem);
  }}
@media (min-width:48rem){.nb-lib-faq .nb-dual-faq__heading{
    font-size:clamp(2.75rem,5vw,3.75rem);
  }
.nb-lib-faq .nb-dual-faq__columns{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (min-width:64rem){.nb-lib-faq .nb-dual-faq__heading{
    font-size:clamp(3rem,3.6vw,3.75rem);
  }
.nb-lib-faq .nb-dual-faq__description{
    font-size:1.08rem;
  }
.nb-lib-faq .nb-dual-faq--08 .nb-dual-faq__columns{
    gap:0;
  }
.nb-lib-faq .nb-dual-faq--08 .nb-dual-faq__column:first-child{
    border-radius:var(--nb-radius) 0 0 var(--nb-radius);
  }
.nb-lib-faq .nb-dual-faq--08 .nb-dual-faq__column:last-child{
    border-left:0;
    border-radius:0 var(--nb-radius) var(--nb-radius) 0;
  }}
@media (prefers-reduced-motion:reduce){.nb-lib-faq *,
.nb-lib-faq *::before,
.nb-lib-faq *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }}
/* ===== CALLS TO ACTION MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-cta{--p:#24352D;--pd:#192820;--g:#B08D57;--bg:#F7F4EC;--s:#E8E0D3;--t:#202421;--m:#6D746F;--c:#8B6535;--ch:#6F4E27;--w:#fff;--b:rgba(32,36,33,.13);--bs:rgba(36,53,45,.22);--bd:rgba(255,255,255,.17);--sh:0 18px 48px rgba(22,28,24,.12);--fh:"DM Serif Display",Georgia,serif;--fb:"DM Sans",Arial,sans-serif;--mw:1240px;--gut:clamp(1rem,4vw,2.5rem);--sy:clamp(3.5rem,7vw,6rem);--gap:clamp(1.5rem,4vw,4rem);--r:4px;--tr:180ms ease}
.nb-lib-cta *,
.nb-lib-cta *::before,
.nb-lib-cta *::after{box-sizing:border-box}
.nb-lib-cta{scroll-behavior:smooth;text-size-adjust:100%}
.nb-lib-cta{margin:0;color:var(--t);background:var(--bg);font-family:var(--fb);line-height:1.65;-webkit-font-smoothing:antialiased}
.nb-lib-cta img{display:block;width:100%;max-width:100%}
.nb-lib-cta a{color:inherit;text-decoration:none}
.nb-lib-cta :focus-visible{outline:3px solid var(--g);outline-offset:4px}
.nb-lib-cta .nb-cta{--sb:var(--bg);--st:var(--t);--sm:var(--m);--se:var(--p);--sr:var(--g);--sbd:var(--b);position:relative;isolation:isolate;overflow:hidden;color:var(--st);background:var(--sb)}
.nb-lib-cta .nb-cta__container{width:min(calc(100% - (var(--gut)*2)),var(--mw));margin-inline:auto;padding-block:var(--sy)}
.nb-lib-cta .nb-cta__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);align-items:center}
.nb-lib-cta .nb-cta__content,
.nb-lib-cta .nb-cta__actions{min-width:0}
.nb-lib-cta .nb-cta__eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 .8rem;color:var(--se);font-size:clamp(.72rem,1.6vw,.8rem);font-weight:700;line-height:1.3;letter-spacing:.11em;text-transform:uppercase}
.nb-lib-cta .nb-cta__eyebrow::before{content:"";width:1.65rem;height:2px;flex:0 0 auto;background:var(--sr)}
.nb-lib-cta .nb-cta__heading{margin:0;color:var(--st);font-family:var(--fh);font-size:clamp(2.1rem,7.5vw,3rem);font-weight:400;line-height:1.08;letter-spacing:-.022em;text-wrap:balance}
.nb-lib-cta .nb-cta__description{margin:1rem 0 0;color:var(--sm);font-size:clamp(1rem,2.6vw,1.08rem);line-height:1.72;text-wrap:pretty}
.nb-lib-cta .nb-cta__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin-top:1.5rem}
.nb-lib-cta .nb-btn{min-height:3rem;display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.3rem;border:1px solid transparent;border-radius:3px;color:var(--w);background:var(--c);font-size:.9rem;font-weight:700;line-height:1.25;text-align:center;transition:transform var(--tr),background var(--tr),color var(--tr),border-color var(--tr),box-shadow var(--tr)}
.nb-lib-cta .nb-btn:hover{background:var(--ch);transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.15)}
.nb-lib-cta .nb-btn--secondary{color:var(--st);background:transparent;border-color:color-mix(in srgb,var(--st) 25%,transparent)}
.nb-lib-cta .nb-btn--secondary:hover{color:var(--st);background:color-mix(in srgb,var(--st) 7%,transparent);border-color:color-mix(in srgb,var(--st) 42%,transparent);box-shadow:none}
.nb-lib-cta .nb-cta--02{--sb:var(--s)}
.nb-lib-cta .nb-cta--02 .nb-cta__container{width:min(calc(100% - (var(--gut)*2)),960px)}
.nb-lib-cta .nb-cta--02 .nb-cta__content{text-align:center}
.nb-lib-cta .nb-cta--02 .nb-cta__eyebrow{justify-content:center}
.nb-lib-cta .nb-cta--02 .nb-cta__actions{justify-content:center}
.nb-lib-cta .nb-cta--12{--sb:var(--p);--st:var(--w);--sm:rgba(255,255,255,.74);--se:var(--w);--sbd:var(--bd)}
.nb-lib-cta .nb-cta--12 .nb-btn--secondary{color:var(--w);border-color:rgba(255,255,255,.28)}
.nb-lib-cta .nb-cta--12::before{content:"";position:absolute;inset:0 auto 0 0;width:.35rem;background:var(--g)}
@media (min-width:36rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(2.4rem,6vw,3.35rem)}
.nb-lib-cta .nb-cta__actions{grid-template-columns:repeat(2,auto);justify-content:start}
.nb-lib-cta .nb-cta--02 .nb-cta__actions{justify-content:center}}
@media (min-width:48rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(2.6rem,4.8vw,3.5rem)}
.nb-lib-cta .nb-cta__description{font-size:clamp(1.03rem,1.8vw,1.1rem)}
.nb-lib-cta .nb-cta--12 .nb-cta__layout{grid-template-columns:minmax(0,1fr) auto}
.nb-lib-cta .nb-cta--12 .nb-cta__actions{margin-top:0;justify-content:end}}
@media (min-width:64rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(2.85rem,3.3vw,3.5rem)}
.nb-lib-cta .nb-cta__description{font-size:1.08rem}}
@media (prefers-reduced-motion:reduce){.nb-lib-cta *,
.nb-lib-cta *::before,
.nb-lib-cta *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* Standard section typography and approved centred CTA theme pair. */
.nb-lib-cta .nb-cta__heading{font-size:clamp(2.2rem,8vw,3.2rem)}
.nb-lib-cta .nb-cta--02.nb-theme--light{--sb:var(--s);--st:var(--t);--sm:var(--m);--se:var(--p);--sbd:var(--b)}
.nb-lib-cta .nb-cta--02.nb-theme--dark{--sb:var(--p);--st:var(--w);--sm:rgba(255,255,255,.74);--se:var(--w);--sbd:var(--bd)}
.nb-lib-cta .nb-cta--02.nb-theme--dark .nb-btn--secondary{color:var(--w);border-color:rgba(255,255,255,.28)}
@media (min-width:36rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(2.5rem,6.5vw,3.5rem)}}
@media (min-width:48rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(2.75rem,5vw,3.75rem)}}
@media (min-width:64rem){.nb-lib-cta .nb-cta__heading{font-size:clamp(3rem,3.6vw,3.75rem)}}
/* ===== HEADING CONTENT MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-heading{
  /* Approved Noble Heritage theme */
  --nb-primary: #24352D;
  --nb-primary-deep: #192820;
  --nb-secondary: #B08D57;
  --nb-background: #F7F4EC;
  --nb-surface: #E8E0D3;
  --nb-text: #202421;
  --nb-muted: #6D746F;
  --nb-white: #FFFFFF;

  --nb-border: rgba(32, 36, 33, 0.13);
  --nb-border-strong: rgba(36, 53, 45, 0.22);
  --nb-border-dark: rgba(255, 255, 255, 0.17);

  --nb-shadow-sm: 0 8px 24px rgba(22, 28, 24, 0.08);
  --nb-shadow-md: 0 18px 48px rgba(22, 28, 24, 0.12);

  --nb-font-heading: "DM Serif Display", Georgia, serif;
  --nb-font-body: "DM Sans", Arial, sans-serif;

  --nb-container: 1240px;
  --nb-gutter: clamp(1rem, 4vw, 2.5rem);
  --nb-section-y: clamp(4rem, 8vw, 6.5rem);
  --nb-gap: clamp(2rem, 5vw, 5rem);

  --nb-radius-card: 4px;
  --nb-transition: 180ms ease;
}
.nb-lib-heading *,
.nb-lib-heading *::before,
.nb-lib-heading *::after{
  box-sizing: border-box;
}
.nb-lib-heading{
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}
.nb-lib-heading{
  margin: 0;
  color: var(--nb-text);
  background: var(--nb-background);
  font-family: var(--nb-font-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.nb-lib-heading img{
  display: block;
  width: 100%;
  max-width: 100%;
}
.nb-lib-heading a{
  color: inherit;
  text-decoration: none;
}
.nb-lib-heading :focus-visible{
  outline: 3px solid var(--nb-secondary);
  outline-offset: 4px;
}
/* =========================================================
   SHARED SECTION FOUNDATION
   Width is controlled by containers and columns, not text tags.
   ========================================================= */
.nb-lib-heading .nb-intro{
  --section-bg: var(--nb-background);
  --section-text: var(--nb-text);
  --section-muted: var(--nb-muted);
  --section-eyebrow: var(--nb-primary);
  --section-rule: var(--nb-secondary);
  --section-border: var(--nb-border);

  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--section-text);
  background: var(--section-bg);
}
.nb-lib-heading .nb-intro__container{
  width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container));
  margin-inline: auto;
  padding-block: var(--nb-section-y);
}
.nb-lib-heading .nb-intro__layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 5vw, 3rem);
}
.nb-lib-heading .nb-intro__content,
.nb-lib-heading .nb-intro__media{
  min-width: 0;
}
.nb-lib-heading .nb-intro__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .8rem;
  color: var(--section-eyebrow);
  font-size: clamp(.72rem, 1.6vw, .8rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.nb-lib-heading .nb-intro__eyebrow::before{
  content: "";
  width: 1.65rem;
  height: 2px;
  flex: 0 0 auto;
  background: var(--section-rule);
}
.nb-lib-heading .nb-intro__heading{
  margin: 0;
  color: var(--section-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(2.2rem, 8vw, 3.2rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.022em;
  text-wrap: balance;
}
.nb-lib-heading .nb-intro__description{
  margin: 1rem 0 0;
  color: var(--section-muted);
  font-size: clamp(1rem, 2.7vw, 1.08rem);
  line-height: 1.72;
  text-wrap: pretty;
}
.nb-lib-heading .nb-intro__media{
  overflow: hidden;
  border-radius: var(--nb-radius-card);
  background: var(--nb-surface);
}
.nb-lib-heading .nb-intro__media img{
  height: 100%;
  min-height: 17rem;
  object-fit: cover;
}
/* Image and content become equal height in the shared grid row */
.nb-lib-heading .nb-intro--image .nb-intro__layout{
  align-items: stretch;
}
.nb-lib-heading .nb-intro--image .nb-intro__content,
.nb-lib-heading .nb-intro--image .nb-intro__media{
  height: 100%;
}
.nb-lib-heading .nb-intro--image .nb-intro__content{
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* =========================================================
   TEXT-ONLY VARIATIONS
   ========================================================= */
/* 01 — Left Editorial */
/* 02 — Centred */
/* 03 — Heading and description split */
/* 04 — Dark band */
/* 05 — Bordered panel */
/* 06 — Gold rule */
/* =========================================================
   IMAGE-LED VARIATIONS
   Images match content height at side-by-side breakpoints.
   ========================================================= */
/* 07 — Image right */
/* 08 — Image left */
/* 09 — Dark content, image right */
/* 10 — Inset image card */
/* 11 — Full-width stone split */
/* 12 — Soft image wash */
.nb-lib-heading .nb-intro--12{
  --section-bg: var(--nb-background);
}
.nb-lib-heading .nb-intro--12 .nb-intro__content{
  padding: clamp(1.5rem, 5vw, 3rem);
  border: 1px solid var(--nb-border);
  background: rgba(247,244,236,.94);
  backdrop-filter: blur(10px);
}
.nb-lib-heading .nb-intro--12 .nb-intro__layout{
  position: relative;
}
.nb-lib-heading .nb-intro--12 .nb-intro__media{
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .36;
}
.nb-lib-heading .nb-intro--12 .nb-intro__media img{
  min-height: 100%;
}
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width: 36rem){.nb-lib-heading .nb-intro__heading{
    font-size: clamp(2.5rem, 6.5vw, 3.5rem);
  }
.nb-lib-heading .nb-intro__description{
    font-size: clamp(1rem, 2vw, 1.1rem);
  }}
@media (min-width: 48rem){.nb-lib-heading .nb-intro__heading{
    font-size: clamp(2.75rem, 5vw, 3.75rem);
  }}
@media (min-width: 64rem){.nb-lib-heading .nb-intro__heading{
    font-size: clamp(3rem, 3.6vw, 3.75rem);
  }
.nb-lib-heading .nb-intro__description{
    font-size: 1.08rem;
  }
.nb-lib-heading .nb-intro--image .nb-intro__layout{
    grid-template-columns: minmax(0, 1fr) minmax(22rem, .92fr);
    gap: var(--nb-gap);
  }
.nb-lib-heading .nb-intro--12 .nb-intro__layout{
    min-height: 31rem;
    grid-template-columns: minmax(0, .95fr) minmax(22rem, 1.05fr);
    align-items: center;
  }
.nb-lib-heading .nb-intro--12 .nb-intro__content{
    grid-column: 1;
  }
.nb-lib-heading .nb-intro--12 .nb-intro__media{
    position: absolute;
    inset: 0 0 0 45%;
    opacity: 1;
  }}
@media (min-width: 80rem){.nb-lib-heading .nb-intro--image .nb-intro__layout{
    grid-template-columns: minmax(0, 1.08fr) minmax(24rem, .92fr);
  }}
/* Accessibility */
@media (prefers-reduced-motion: reduce){.nb-lib-heading *,
.nb-lib-heading *::before,
.nb-lib-heading *::after{
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }}
/* Review library navigation */
/* Approved light/dark presentation for the same reusable structure. */
.nb-lib-heading .nb-intro--12.nb-theme--light{
  --section-bg:var(--nb-background);--section-text:var(--nb-text);--section-muted:var(--nb-muted);--section-eyebrow:var(--nb-primary);--section-border:var(--nb-border)
}
.nb-lib-heading .nb-intro--12.nb-theme--dark{
  --section-bg:var(--nb-primary);--section-text:var(--nb-white);--section-muted:rgba(255,255,255,.74);--section-eyebrow:var(--nb-white);--section-border:var(--nb-border-dark)
}
.nb-lib-heading .nb-intro__media{margin:0}
.nb-lib-heading .nb-intro--12.nb-theme--dark .nb-intro__content{background:rgba(25,40,32,.91);border-color:var(--nb-border-dark)}
.nb-lib-heading .nb-intro--12.nb-theme--dark .nb-intro__media{filter:saturate(.82) brightness(.72)}
/* ===== INTRO AND IMAGE CONTENT MODULE — SOURCE GEOMETRY PRESERVED ===== */
.nb-lib-intro{
  /* Approved Noble Heritage theme */
  --nb-primary: #24352D;
  --nb-primary-deep: #192820;
  --nb-secondary: #B08D57;
  --nb-background: #F7F4EC;
  --nb-surface: #E8E0D3;
  --nb-text: #202421;
  --nb-muted: #6D746F;
  --nb-white: #FFFFFF;

  --nb-border: rgba(32, 36, 33, 0.13);
  --nb-border-strong: rgba(36, 53, 45, 0.22);
  --nb-border-dark: rgba(255, 255, 255, 0.16);

  --nb-font-heading: "DM Serif Display", Georgia, serif;
  --nb-font-body: "DM Sans", Arial, sans-serif;

  --nb-container: 1240px;
  --nb-gutter: clamp(1rem, 4vw, 2.5rem);
  --nb-section-y: clamp(4rem, 8vw, 6.5rem);
  --nb-column-gap: clamp(2rem, 5vw, 5rem);

  --nb-radius-card: 4px;
  --nb-shadow-sm: 0 8px 24px rgba(22, 28, 24, 0.08);
  --nb-shadow-md: 0 18px 48px rgba(22, 28, 24, 0.12);
}
.nb-lib-intro *,
.nb-lib-intro *::before,
.nb-lib-intro *::after{
  box-sizing: border-box;
}
.nb-lib-intro{
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}
.nb-lib-intro{
  margin: 0;
  color: var(--nb-text);
  background: var(--nb-background);
  font-family: var(--nb-font-body);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
.nb-lib-intro img{
  display: block;
  max-width: 100%;
}
.nb-lib-intro a{
  color: inherit;
  text-decoration: none;
}
.nb-lib-intro :focus-visible{
  outline: 3px solid var(--nb-secondary);
  outline-offset: 4px;
}
/* =========================================================
   REUSABLE INTRO / SECTION-HEADING FOUNDATION
   Mobile-first. Text width is controlled by layout columns,
   not by the heading, eyebrow, or description themselves.
   ========================================================= */
.nb-lib-intro .nb-intro{
  --section-bg: var(--nb-background);
  --section-text: var(--nb-text);
  --section-muted: var(--nb-muted);
  --section-eyebrow: var(--nb-primary);
  --section-rule: var(--nb-secondary);

  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--section-text);
  background: var(--section-bg);
}
.nb-lib-intro .nb-intro__container{
  position: relative;
  z-index: 2;
  width: min(calc(100% - (var(--nb-gutter) * 2)), var(--nb-container));
  margin-inline: auto;
  padding-block: var(--nb-section-y);
}
.nb-lib-intro .nb-intro__layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--nb-column-gap);
}
.nb-lib-intro .nb-intro__content{
  min-width: 0;
}
.nb-lib-intro .nb-intro__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .9rem;
  color: var(--section-eyebrow);
  font-size: clamp(.72rem, 1.6vw, .8rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.nb-lib-intro .nb-intro__eyebrow::before{
  content: "";
  width: 1.65rem;
  height: 2px;
  flex: 0 0 auto;
  background: var(--section-rule);
}
.nb-lib-intro .nb-intro__title{
  margin: 0;
  color: var(--section-text);
  font-family: var(--nb-font-heading);
  font-size: clamp(2.25rem, 8.8vw, 3.4rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.023em;
  text-wrap: balance;
}
.nb-lib-intro .nb-intro__description{
  margin: 1.05rem 0 0;
  color: var(--section-muted);
  font-size: clamp(1rem, 2.6vw, 1.08rem);
  line-height: 1.72;
  text-wrap: pretty;
}
/* Equal-height image system */
.nb-lib-intro .nb-intro__media{
  position: relative;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--nb-radius-card);
  background: var(--nb-surface);
  box-shadow: var(--nb-shadow-sm);
}
.nb-lib-intro .nb-intro__media img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nb-lib-intro .nb-intro__media--soft img{
  filter: saturate(.88) contrast(.98);
}
/* =========================================================
   TEXT-ONLY VARIATIONS
   ========================================================= */
/* 01 — Left Editorial */
/* 02 — Centred Editorial */
/* 03 — Split Heading / Description */
/* 04 — Dark Heritage */
.nb-lib-intro .nb-intro--04{
  --section-bg: var(--nb-primary);
  --section-text: #FFFFFF;
  --section-muted: rgba(255,255,255,.74);
  --section-eyebrow: #FFFFFF;
}
.nb-lib-intro .nb-intro--04::before{
  content: "";
  position: absolute;
  width: 20rem;
  height: 20rem;
  top: -13rem;
  right: -11rem;
  z-index: -1;
  border: 1px solid rgba(176,141,87,.24);
  border-radius: 50%;
  box-shadow:
    0 0 0 3rem rgba(176,141,87,.03),
    0 0 0 6rem rgba(176,141,87,.015);
}
/* 05 — Framed Content */
/* 06 — Accent Rail */
.nb-lib-intro .nb-intro--06{
  --section-bg: var(--nb-surface);
}
.nb-lib-intro .nb-intro--06 .nb-intro__content{
  padding-left: 1.25rem;
  border-left: 3px solid var(--nb-secondary);
}
/* =========================================================
   IMAGE VARIATIONS
   Images match content height at desktop.
   ========================================================= */
/* 07 — Image Left */
.nb-lib-intro .nb-intro--07{
  --section-bg: var(--nb-background);
}
/* 08 — Image Right */
.nb-lib-intro .nb-intro--08{
  --section-bg: var(--nb-surface);
}
/* 09 — Dark Content + Image */
/* 10 — Framed Image Right */
.nb-lib-intro .nb-intro--10{
  --section-bg: var(--nb-background);
}
.nb-lib-intro .nb-intro--10 .nb-intro__content{
  padding: clamp(1.5rem, 5vw, 3rem);
  border: 1px solid var(--nb-border-strong);
  background: var(--nb-surface);
}
/* 11 — Image Wash + Text Panel */
.nb-lib-intro .nb-intro--11{
  --section-bg: var(--nb-surface);
}
.nb-lib-intro .nb-intro--11 .nb-intro__content{
  padding: clamp(1.5rem, 5vw, 3rem);
  background: rgba(247,244,236,.94);
  border: 1px solid var(--nb-border);
  box-shadow: var(--nb-shadow-sm);
}
/* 12 — Minimal Image Pair */
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width: 36rem){.nb-lib-intro .nb-intro__container{
    width: min(calc(100% - 40px), var(--nb-container));
  }
.nb-lib-intro .nb-intro__title{
    font-size: clamp(2.6rem, 7vw, 3.8rem);
  }
.nb-lib-intro .nb-intro__description{
    font-size: clamp(1.02rem, 2vw, 1.12rem);
  }}
@media (min-width: 48rem){/* Centred content gets a middle layout column, not a text width */
/* Split heading/description */
.nb-lib-intro .nb-intro__media{
    aspect-ratio: 16 / 10;
  }}
@media (min-width: 64rem){.nb-lib-intro .nb-intro__title{
    font-size: clamp(3rem, 3.9vw, 4.25rem);
    line-height: 1.06;
  }
.nb-lib-intro .nb-intro__description{
    font-size: 1.1rem;
  }
/* Left editorial uses a layout column to control measure */
/* Framed and rail variants */
.nb-lib-intro .nb-intro--06 .nb-intro__layout{
    grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
  }
.nb-lib-intro .nb-intro--06 .nb-intro__content{
    grid-column: 1;
  }
/* Equal-height image sections */
.nb-lib-intro .nb-intro--07 .nb-intro__layout,
.nb-lib-intro .nb-intro--08 .nb-intro__layout,
.nb-lib-intro .nb-intro--10 .nb-intro__layout,
.nb-lib-intro .nb-intro--11 .nb-intro__layout{
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    align-items: stretch;
  }
.nb-lib-intro .nb-intro--08 .nb-intro__layout,
.nb-lib-intro .nb-intro--10 .nb-intro__layout{
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  }
.nb-lib-intro .nb-intro--08 .nb-intro__media,
.nb-lib-intro .nb-intro--10 .nb-intro__media{
    grid-column: 2;
    grid-row: 1;
  }
.nb-lib-intro .nb-intro--08 .nb-intro__content,
.nb-lib-intro .nb-intro--10 .nb-intro__content{
    grid-column: 1;
    grid-row: 1;
  }
.nb-lib-intro .nb-intro__media{
    aspect-ratio: auto;
    min-height: 0;
    align-self: stretch;
  }
.nb-lib-intro .nb-intro--07 .nb-intro__content,
.nb-lib-intro .nb-intro--08 .nb-intro__content,
.nb-lib-intro .nb-intro--10 .nb-intro__content,
.nb-lib-intro .nb-intro--11 .nb-intro__content{
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 25rem;
  }}
@media (min-width: 80rem){.nb-lib-intro .nb-intro--07 .nb-intro__layout,
.nb-lib-intro .nb-intro--11 .nb-intro__layout{
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  }
.nb-lib-intro .nb-intro--08 .nb-intro__layout,
.nb-lib-intro .nb-intro--10 .nb-intro__layout{
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  }}
@media (prefers-reduced-motion: reduce){.nb-lib-intro *,
.nb-lib-intro *::before,
.nb-lib-intro *::after{
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }}
/* Preview library navigation */
/* =========================================================
   SHARED IMAGE + CONTENT FOUNDATION
   ========================================================= */
.nb-lib-intro .nb-image-content{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-rule:var(--nb-secondary);
  --section-border:var(--nb-border);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--section-text);
  background:var(--section-bg);
}
.nb-lib-intro .nb-image-content__container{
  width:min(calc(100% - (var(--nb-gutter)*2)),var(--nb-container));
  margin-inline:auto;
  padding-block:var(--nb-section-y);
}
.nb-lib-intro .nb-image-content__layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--nb-column-gap);
  align-items:stretch;
}
.nb-lib-intro .nb-image-content__media,
.nb-lib-intro .nb-image-content__content{min-width:0}
.nb-lib-intro .nb-image-content__media{
  overflow:hidden;
  border-radius:var(--nb-radius-card);
  background:var(--nb-surface);
}
.nb-lib-intro .nb-image-content__media img{
  height:100%;
  min-height:20rem;
  object-fit:cover;
}
.nb-lib-intro .nb-image-content__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.nb-lib-intro .nb-image-content__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .8rem;
  color:var(--section-eyebrow);
  font-size:clamp(.72rem,1.6vw,.8rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nb-lib-intro .nb-image-content__eyebrow::before{
  content:"";
  width:1.65rem;
  height:2px;
  flex:0 0 auto;
  background:var(--section-rule);
}
.nb-lib-intro .nb-image-content__heading{
  margin:0;
  color:var(--section-text);
  font-family:var(--nb-font-heading);
  font-size:clamp(2.2rem,8vw,3.2rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.022em;
  text-wrap:balance;
}
.nb-lib-intro .nb-image-content__description{
  margin:1rem 0 0;
  color:var(--section-muted);
  font-size:clamp(1rem,2.7vw,1.08rem);
  line-height:1.72;
  text-wrap:pretty;
}
.nb-lib-intro .nb-image-content__body{
  margin-top:1rem;
  color:var(--section-muted);
  font-size:.96rem;
  line-height:1.72;
}
.nb-lib-intro .nb-image-content__body p{margin:0}
.nb-lib-intro .nb-image-content__body p+p{margin-top:.85rem}
.nb-lib-intro .nb-image-content__actions{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.75rem;
  margin-top:1.5rem;
}
.nb-lib-intro .nb-button{
  min-height:3rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.78rem 1.25rem;
  border:1px solid transparent;
  border-radius:var(--nb-radius-button);
  color:var(--nb-white);
  background:var(--nb-cta);
  font-size:.9rem;
  font-weight:700;
  text-align:center;
  transition:background var(--nb-transition),transform var(--nb-transition),box-shadow var(--nb-transition);
}
.nb-lib-intro .nb-button:hover{
  background:var(--nb-cta-hover);
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(0,0,0,.14);
}
.nb-lib-intro .nb-button--secondary{
  color:var(--section-text);
  background:transparent;
  border-color:color-mix(in srgb,var(--section-text) 25%,transparent);
}
.nb-lib-intro .nb-image-content__quote{
  margin:1.4rem 0 0;
  padding:1.15rem 1.25rem;
  border-left:2px solid var(--nb-secondary);
  color:var(--section-muted);
  background:color-mix(in srgb,var(--section-bg) 88%,var(--nb-white));
  font-size:.96rem;
  line-height:1.7;
}
.nb-lib-intro .nb-image-content__quote footer{
  margin-top:.65rem;
  color:var(--section-text);
  font-size:.76rem;
  font-weight:700;
}
.nb-lib-intro .nb-image-content__steps{
  display:grid;
  gap:.8rem;
  margin:1.35rem 0 0;
  padding:0;
  list-style:none;
  counter-reset:content-step;
}
.nb-lib-intro .nb-image-content__step{
  counter-increment:content-step;
  display:grid;
  grid-template-columns:2.4rem minmax(0,1fr);
  gap:.8rem;
  align-items:start;
  padding-top:.8rem;
  border-top:1px solid color-mix(in srgb,var(--section-text) 13%,transparent);
}
.nb-lib-intro .nb-image-content__step::before{
  content:counter(content-step,decimal-leading-zero);
  color:var(--nb-secondary);
  font-family:var(--nb-font-heading);
  font-size:1.4rem;
  line-height:1;
}
.nb-lib-intro .nb-image-content__step strong{
  display:block;
  color:var(--section-text);
  font-size:.9rem;
}
.nb-lib-intro .nb-image-content__step span{
  display:block;
  margin-top:.25rem;
  color:var(--section-muted);
  font-size:.85rem;
  line-height:1.55;
}
/* =========================================================
   16 VARIATIONS
   ========================================================= */
/* 01 — Image left */
/* 02 — Image right */
.nb-lib-intro .nb-image-content--02{--section-bg:var(--nb-background)}
/* 03 — Warm stone */
/* 04 — Dark Heritage */
/* 05 — Full bleed image */
/* 06 — Framed image */
/* 07 — Inset content card */
/* 08 — Image with feature list */
/* 09 — Image with stats */
/* 10 — Image with quote */
.nb-lib-intro .nb-image-content--10{--section-bg:var(--nb-surface)}
.nb-lib-intro .nb-image-content--10 .nb-image-content__quote{background:var(--nb-background)}
/* 11 — Image with steps */
.nb-lib-intro .nb-image-content--11{--section-bg:var(--nb-background)}
/* 12 — Soft image wash */
.nb-lib-intro .nb-image-content--12{
  min-height:38rem;
  display:grid;
  align-items:center;
  background:
    linear-gradient(90deg,rgba(247,244,236,.98),rgba(247,244,236,.80)),
    url("https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=2000&q=86")
    center/cover no-repeat;
}
.nb-lib-intro .nb-image-content--12 .nb-image-content__layout{grid-template-columns:minmax(0,1fr)}
.nb-lib-intro .nb-image-content--12 .nb-image-content__media{display:none}
/* 13 — Dark image overlay */
/* 14 — Editorial minimal */
/* 15 — Small image large content */
/* 16 — Large image compact content */
/* =========================================================
   RESPONSIVE ENHANCEMENT
   ========================================================= */
@media (min-width:36rem){.nb-lib-intro .nb-image-content__heading{font-size:clamp(2.5rem,6.5vw,3.5rem)}
.nb-lib-intro .nb-image-content__description{font-size:clamp(1rem,2vw,1.1rem)}
.nb-lib-intro .nb-image-content__actions{grid-template-columns:repeat(2,auto);justify-content:start}}
@media (min-width:48rem){.nb-lib-intro .nb-image-content__heading{font-size:clamp(2.75rem,5vw,3.75rem)}}
@media (min-width:64rem){.nb-lib-intro .nb-image-content__heading{font-size:clamp(3rem,3.6vw,3.75rem)}
.nb-lib-intro .nb-image-content__description{font-size:1.08rem}
.nb-lib-intro .nb-image-content__layout{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.nb-lib-intro .nb-image-content--10 .nb-image-content__media,
.nb-lib-intro .nb-image-content--12 .nb-image-content__media{order:-1}
.nb-lib-intro .nb-image-content--02 .nb-image-content__media,
.nb-lib-intro .nb-image-content--11 .nb-image-content__media{order:2}
.nb-lib-intro .nb-image-content--12 .nb-image-content__layout{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}}
/* =========================================================
   APPROVED THEME PAIRS + STANDARD TYPOGRAPHY
   Theme modifiers only change presentation; structural classes stay reusable.
   ========================================================= */
.nb-lib-intro .nb-intro.nb-theme--light{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
}
.nb-lib-intro .nb-intro.nb-theme--dark{
  --section-bg:var(--nb-primary);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-eyebrow:var(--nb-white);
}
.nb-lib-intro .nb-intro--04.nb-theme--light::before{border-color:rgba(36,53,45,.18);box-shadow:0 0 0 3rem rgba(36,53,45,.025),0 0 0 6rem rgba(36,53,45,.012)}
.nb-lib-intro .nb-intro--08.nb-theme--light{--section-bg:#F7F4EC}
.nb-lib-intro .nb-intro--10.nb-theme--dark .nb-intro__content,
.nb-lib-intro .nb-intro--11.nb-theme--dark .nb-intro__content{border-color:var(--nb-border-dark);background:rgba(255,255,255,.055);box-shadow:none}
.nb-lib-intro .nb-intro--10.nb-theme--light .nb-intro__content{background:var(--nb-surface)}
.nb-lib-intro .nb-intro__media,
.nb-lib-intro .nb-image-content__media{margin:0}
.nb-lib-intro .nb-intro__title{font-size:clamp(2.2rem,8vw,3.2rem);line-height:1.08;letter-spacing:-.022em}
.nb-lib-intro .nb-intro__eyebrow{margin-bottom:.8rem}
.nb-lib-intro .nb-intro__description{margin-top:1rem;font-size:clamp(1rem,2.7vw,1.08rem)}
.nb-lib-intro .nb-image-content.nb-theme--light{
  --section-bg:var(--nb-background);
  --section-text:var(--nb-text);
  --section-muted:var(--nb-muted);
  --section-eyebrow:var(--nb-primary);
  --section-border:var(--nb-border);
}
.nb-lib-intro .nb-image-content.nb-theme--dark{
  --section-bg:var(--nb-primary);
  --section-text:var(--nb-white);
  --section-muted:rgba(255,255,255,.74);
  --section-eyebrow:var(--nb-white);
  --section-border:var(--nb-border-dark);
}
.nb-lib-intro .nb-image-content.nb-theme--dark .nb-button--secondary{color:var(--nb-white);border-color:rgba(255,255,255,.28)}
.nb-lib-intro .nb-image-content--10.nb-theme--light{--section-bg:#F7F4EC}
.nb-lib-intro .nb-image-content--10.nb-theme--dark .nb-image-content__quote{background:rgba(255,255,255,.055)}
.nb-lib-intro .nb-image-content--12.nb-theme--light{
  background:linear-gradient(90deg,rgba(247,244,236,.98),rgba(247,244,236,.80)),url("https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat;
}
.nb-lib-intro .nb-image-content--12.nb-theme--dark{
  background:linear-gradient(90deg,rgba(25,40,32,.97),rgba(25,40,32,.76)),url("https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat;
}
@media (min-width:36rem){.nb-lib-intro .nb-intro__title{font-size:clamp(2.5rem,6.5vw,3.5rem)}
.nb-lib-intro .nb-intro__description{font-size:clamp(1rem,2vw,1.1rem)}}
@media (min-width:48rem){.nb-lib-intro .nb-intro__title{font-size:clamp(2.75rem,5vw,3.75rem)}}
@media (min-width:64rem){.nb-lib-intro .nb-intro__title{font-size:clamp(3rem,3.6vw,3.75rem)}
.nb-lib-intro .nb-intro__description{font-size:1.08rem}
/* Section 11: the content controls row height; the image fills that exact height. */
.nb-lib-intro .nb-image-content--11 .nb-image-content__layout{align-items:stretch}
.nb-lib-intro .nb-image-content--11 .nb-image-content__media{position:relative;min-height:0;height:auto}
.nb-lib-intro .nb-image-content--11 .nb-image-content__media img{position:absolute;inset:0;min-height:0;height:100%}
/* Section 12: approved wider desktop content measure. */
.nb-lib-intro .nb-image-content--12 .nb-image-content__layout{grid-template-columns:min(50vw,100%) minmax(0,1fr)}}
/* Common source tokens */
.nb-scope--primary [class^="nb-lib-"],.nb-scope--primary [class*=" nb-lib-"]{--nb-background:#F7F4EC;--nb-surface:#E8E0D3;--nb-text:#202421;--nb-muted:#6D746F;--nb-border:rgba(32,36,33,.13);--nb-border-strong:rgba(36,53,45,.22);--nb-border-dark:rgba(255,255,255,.17);--nb-secondary:#B08D57;--nb-cta:#8B6535;--nb-cta-hover:#6F4E27;--nb-bg-primary:#F7F4EC;--nb-bg-secondary:#E8E0D3;--bg:#F7F4EC;--s:#E8E0D3;--t:#202421;--m:#6D746F;--b:rgba(32,36,33,.13);--bs:rgba(36,53,45,.22);--bd:rgba(255,255,255,.17);--c:#8B6535;--ch:#6F4E27}
.nb-scope--secondary [class^="nb-lib-"],.nb-scope--secondary [class*=" nb-lib-"]{--nb-background:#E8E0D3;--nb-surface:#F7F4EC;--nb-text:#202421;--nb-muted:#5B625D;--nb-border:rgba(32,36,33,.16);--nb-border-strong:rgba(36,53,45,.24);--nb-border-dark:rgba(255,255,255,.17);--nb-secondary:#B08D57;--nb-cta:#8B6535;--nb-cta-hover:#6F4E27;--nb-bg-primary:#E8E0D3;--nb-bg-secondary:#F7F4EC;--bg:#E8E0D3;--s:#F7F4EC;--t:#202421;--m:#5B625D;--b:rgba(32,36,33,.16);--bs:rgba(36,53,45,.24);--bd:rgba(255,255,255,.17);--c:#8B6535;--ch:#6F4E27}
.nb-scope--dark [class^="nb-lib-"],.nb-scope--dark [class*=" nb-lib-"]{--nb-background:#24352D;--nb-surface:#31463C;--nb-text:#FFFFFF;--nb-muted:rgba(255,255,255,.76);--nb-border:rgba(255,255,255,.18);--nb-border-strong:rgba(255,255,255,.24);--nb-border-dark:rgba(255,255,255,.18);--nb-secondary:#D3AE69;--nb-cta:#D3AE69;--nb-cta-hover:#E2C58E;--nb-bg-primary:#24352D;--nb-bg-secondary:#31463C;--bg:#24352D;--s:#31463C;--t:#FFFFFF;--m:rgba(255,255,255,.76);--b:rgba(255,255,255,.18);--bs:rgba(255,255,255,.24);--bd:rgba(255,255,255,.18);--c:#D3AE69;--ch:#E2C58E}

/* Future components */
.nb-scope--primary .nb-lib-future .nb-section{--nb-current-bg:#F7F4EC;--nb-current-surface:#FFFFFF;--nb-current-surface-alt:#E8E0D3;--nb-current-text:#202421;--nb-current-muted:#5B625D;--nb-current-border:rgba(32,36,33,.14);--nb-current-accent:#8B6535;--nb-current-accent-soft:rgba(139,101,53,.10);--nb-current-button-bg:#8B6535;--nb-current-button-text:#FFFFFF;--nb-current-button-hover:#6F4E27}
.nb-scope--secondary .nb-lib-future .nb-section{--nb-current-bg:#E8E0D3;--nb-current-surface:#F7F4EC;--nb-current-surface-alt:#FFFFFF;--nb-current-text:#202421;--nb-current-muted:#5B625D;--nb-current-border:rgba(32,36,33,.16);--nb-current-accent:#8B6535;--nb-current-accent-soft:rgba(139,101,53,.11);--nb-current-button-bg:#8B6535;--nb-current-button-text:#FFFFFF;--nb-current-button-hover:#6F4E27}
.nb-scope--dark .nb-lib-future .nb-section{--nb-current-bg:#24352D;--nb-current-surface:rgba(255,255,255,.065);--nb-current-surface-alt:rgba(255,255,255,.10);--nb-current-text:#FFFFFF;--nb-current-muted:rgba(255,255,255,.76);--nb-current-border:rgba(255,255,255,.18);--nb-current-accent:#D3AE69;--nb-current-accent-soft:rgba(211,174,105,.14);--nb-current-button-bg:#D3AE69;--nb-current-button-text:#192820;--nb-current-button-hover:#E2C58E}

/* Shared semantic colour variables. Geometry remains source-controlled. */
.nb-scope--primary :is(.nb-lib-approach .nb-approach,.nb-lib-work .nb-work,.nb-lib-types .nb-types,.nb-lib-faq .nb-dual-faq,.nb-lib-heading .nb-intro,.nb-lib-intro .nb-intro,.nb-lib-intro .nb-image-content){--section-bg:#F7F4EC;--section-text:#202421;--section-muted:#6D746F;--section-eyebrow:#24352D;--section-rule:#B08D57;--section-border:rgba(32,36,33,.13)}
.nb-scope--secondary :is(.nb-lib-approach .nb-approach,.nb-lib-work .nb-work,.nb-lib-types .nb-types,.nb-lib-faq .nb-dual-faq,.nb-lib-heading .nb-intro,.nb-lib-intro .nb-intro,.nb-lib-intro .nb-image-content){--section-bg:#E8E0D3;--section-text:#202421;--section-muted:#5B625D;--section-eyebrow:#24352D;--section-rule:#B08D57;--section-border:rgba(32,36,33,.16)}
.nb-scope--dark :is(.nb-lib-approach .nb-approach,.nb-lib-work .nb-work,.nb-lib-types .nb-types,.nb-lib-faq .nb-dual-faq,.nb-lib-heading .nb-intro,.nb-lib-intro .nb-intro,.nb-lib-intro .nb-image-content){--section-bg:#24352D;--section-text:#FFFFFF;--section-muted:rgba(255,255,255,.76);--section-eyebrow:#D3AE69;--section-rule:#D3AE69;--section-border:rgba(255,255,255,.18)}

.nb-scope--primary .nb-lib-approach .nb-approach{--step-bg:#FFFFFF;--step-text:#202421;--step-muted:#6D746F;--step-border:rgba(32,36,33,.13)}
.nb-scope--secondary .nb-lib-approach .nb-approach{--step-bg:#F7F4EC;--step-text:#202421;--step-muted:#5B625D;--step-border:rgba(32,36,33,.16)}
.nb-scope--dark .nb-lib-approach .nb-approach{--step-bg:rgba(255,255,255,.055);--step-text:#FFFFFF;--step-muted:rgba(255,255,255,.70);--step-border:rgba(255,255,255,.17)}
.nb-scope--primary :is(.nb-lib-work .nb-work,.nb-lib-types .nb-types){--card-bg:#FFFFFF;--card-text:#202421;--card-muted:#6D746F;--card-border:rgba(32,36,33,.13)}
.nb-scope--secondary :is(.nb-lib-work .nb-work,.nb-lib-types .nb-types){--card-bg:#F7F4EC;--card-text:#202421;--card-muted:#5B625D;--card-border:rgba(32,36,33,.16)}
.nb-scope--dark :is(.nb-lib-work .nb-work,.nb-lib-types .nb-types){--card-bg:rgba(255,255,255,.055);--card-text:#FFFFFF;--card-muted:rgba(255,255,255,.70);--card-border:rgba(255,255,255,.17)}

/* Inspired section family */
.nb-scope--primary .nb-lib-inspired .nb-section{--section-bg:#F7F4EC;--section-text:#202421;--section-muted:#6D746F;--section-card:#F4EFE6;--section-border:rgba(32,36,33,.13);--section-hero:#E8E0D3;--section-link:#24352D;--section-button-bg:#24352D;--section-button-text:#FFFFFF}
.nb-scope--secondary .nb-lib-inspired .nb-section{--section-bg:#E8E0D3;--section-text:#202421;--section-muted:#5B625D;--section-card:#F7F4EC;--section-border:rgba(32,36,33,.16);--section-hero:#F7F4EC;--section-link:#24352D;--section-button-bg:#24352D;--section-button-text:#FFFFFF}
.nb-scope--dark .nb-lib-inspired .nb-section{--section-bg:#24352D;--section-text:#FFFFFF;--section-muted:rgba(255,255,255,.74);--section-card:rgba(255,255,255,.06);--section-border:rgba(255,255,255,.14);--section-hero:rgba(255,255,255,.05);--section-link:#E8C27F;--section-button-bg:#C49A58;--section-button-text:#10221B}

/* FAQ items and panels */
.nb-scope--primary .nb-lib-faq .nb-dual-faq{--column-bg:transparent;--column-border:transparent;--item-bg:transparent;--item-text:#202421;--item-muted:#6D746F;--item-border:rgba(32,36,33,.13)}
.nb-scope--secondary .nb-lib-faq .nb-dual-faq{--column-bg:transparent;--column-border:transparent;--item-bg:#F7F4EC;--item-text:#202421;--item-muted:#5B625D;--item-border:rgba(32,36,33,.16)}
.nb-scope--dark .nb-lib-faq .nb-dual-faq{--column-bg:transparent;--column-border:transparent;--item-bg:rgba(255,255,255,.05);--item-text:#FFFFFF;--item-muted:rgba(255,255,255,.72);--item-border:rgba(255,255,255,.17)}

/* CTA semantic colours */
.nb-scope--primary .nb-lib-cta .nb-cta{--sb:#F7F4EC;--st:#202421;--sm:#6D746F;--se:#24352D;--sr:#B08D57;--sbd:rgba(32,36,33,.13);--c:#8B6535;--ch:#6F4E27;--w:#FFFFFF}
.nb-scope--secondary .nb-lib-cta .nb-cta{--sb:#E8E0D3;--st:#202421;--sm:#5B625D;--se:#24352D;--sr:#B08D57;--sbd:rgba(32,36,33,.16);--c:#8B6535;--ch:#6F4E27;--w:#FFFFFF}
.nb-scope--dark .nb-lib-cta .nb-cta{--sb:#24352D;--st:#FFFFFF;--sm:rgba(255,255,255,.74);--se:#D3AE69;--sr:#D3AE69;--sbd:rgba(255,255,255,.17);--c:#D3AE69;--ch:#E2C58E;--w:#192820}

/* Project comparison: colour-only adaptation. */
.nb-scope--primary .nb-lib-compare .nb-project-comparisons{color:#202421;background:radial-gradient(circle at 100% 0%,rgba(176,141,87,.10),transparent 30rem),#E8E0D3}
.nb-scope--secondary .nb-lib-compare .nb-project-comparisons{color:#202421;background:radial-gradient(circle at 100% 0%,rgba(176,141,87,.10),transparent 30rem),#E8E0D3}
.nb-scope--dark .nb-lib-compare .nb-project-comparisons{color:#FFFFFF;background:radial-gradient(circle at 100% 0%,rgba(211,174,105,.10),transparent 30rem),#24352D}
.nb-scope--secondary .nb-lib-compare .nb-comparison-card{background:#F7F4EC;border-color:rgba(32,36,33,.16)}
.nb-scope--dark .nb-lib-compare .nb-comparison-card{color:#FFFFFF;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.17);box-shadow:none}
.nb-scope--dark .nb-lib-compare :is(.nb-section-title,.nb-comparison-card__title){color:#FFFFFF}
.nb-scope--dark .nb-lib-compare :is(.nb-section-summary,.nb-comparison-card__meta,.nb-comparison-card__text,.nb-comparison-card__hint){color:rgba(255,255,255,.74)}
.nb-scope--dark .nb-lib-compare .nb-comparison-card__hint{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.17)}
.nb-scope--dark .nb-lib-compare .nb-comparison-card__hint strong{color:#D3AE69}

/* Heroes keep their approved image/gradient compositions. Only readable theme colours change. */
.nb-scope--primary .nb-lib-hero .nb-hero:not(.nb-hero--02){--hero-bg:#F7F4EC;--hero-text:#202421;--hero-muted:#6D746F;--hero-eyebrow:#24352D;--hero-rule:#B08D57;--breadcrumb-text:rgba(32,36,33,.68);--breadcrumb-current:#202421;--form-bg:#E8E0D3;--form-text:#202421;--form-label:#24352D;--form-control-bg:#F7F4EC;--form-control-text:#202421;--form-border:rgba(36,53,45,.24)}
.nb-scope--secondary .nb-lib-hero .nb-hero:not(.nb-hero--02){--hero-bg:#E8E0D3;--hero-text:#202421;--hero-muted:#5B625D;--hero-eyebrow:#24352D;--hero-rule:#B08D57;--breadcrumb-text:rgba(32,36,33,.68);--breadcrumb-current:#202421;--form-bg:#F7F4EC;--form-text:#202421;--form-label:#24352D;--form-control-bg:#FFFFFF;--form-control-text:#202421;--form-border:rgba(36,53,45,.24)}
.nb-scope--dark .nb-lib-hero .nb-hero:not(.nb-hero--02){--hero-bg:#24352D;--hero-text:#FFFFFF;--hero-muted:rgba(255,255,255,.76);--hero-eyebrow:#D3AE69;--hero-rule:#D3AE69;--breadcrumb-text:rgba(255,255,255,.68);--breadcrumb-current:#FFFFFF;--form-bg:#31463C;--form-text:#FFFFFF;--form-label:#FFFFFF;--form-control-bg:#24352D;--form-control-text:#FFFFFF;--form-border:rgba(255,255,255,.20)}
.nb-scope--secondary .nb-lib-hero .nb-hero--05 .nb-hero__grid{background:linear-gradient(180deg,rgba(232,224,211,.97),rgba(232,224,211,.84)),url("https://images.unsplash.com/photo-1615874694520-474822394e73?auto=format&fit=crop&w=1800&q=86") center/cover no-repeat}
.nb-scope--dark .nb-lib-hero .nb-hero--05 .nb-hero__grid{background:linear-gradient(180deg,rgba(25,40,32,.96),rgba(25,40,32,.84)),url("https://images.unsplash.com/photo-1615874694520-474822394e73?auto=format&fit=crop&w=1800&q=86") center/cover no-repeat;border-color:rgba(255,255,255,.18)}
.nb-scope--secondary .nb-lib-hero .nb-hero--10{background:linear-gradient(90deg,rgba(232,224,211,.96),rgba(232,224,211,.78)),url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat}
.nb-scope--dark .nb-lib-hero .nb-hero--10{background:linear-gradient(90deg,rgba(36,53,45,.98),rgba(36,53,45,.82)),url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat}

/* Compact heroes retain their exact 30vh geometry. */
.nb-scope--primary .nb-lib-compact .nb-compact-hero:not(.nb-compact-hero--04){--hero-bg:#F7F4EC;--hero-text:#202421;--breadcrumb-text:rgba(32,36,33,.68);--breadcrumb-current:#202421;--hero-rule:#B08D57}
.nb-scope--secondary .nb-lib-compact .nb-compact-hero:not(.nb-compact-hero--04){--hero-bg:#E8E0D3;--hero-text:#202421;--breadcrumb-text:rgba(32,36,33,.68);--breadcrumb-current:#202421;--hero-rule:#B08D57}
.nb-scope--dark .nb-lib-compact .nb-compact-hero:not(.nb-compact-hero--04){--hero-bg:#24352D;--hero-text:#FFFFFF;--breadcrumb-text:rgba(255,255,255,.68);--breadcrumb-current:#FFFFFF;--hero-rule:#D3AE69}
.nb-scope--secondary .nb-lib-compact .nb-compact-hero--12{background:linear-gradient(90deg,rgba(232,224,211,.97),rgba(232,224,211,.77)),url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat}
.nb-scope--dark .nb-lib-compact .nb-compact-hero--12{background:linear-gradient(90deg,rgba(36,53,45,.97),rgba(36,53,45,.76)),url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=2000&q=86") center/cover no-repeat}

/* Fixed light overlays receive colour-only dark counterparts. */
.nb-scope--secondary .nb-lib-heading .nb-intro--12 .nb-intro__content,.nb-scope--secondary .nb-lib-intro .nb-intro--11 .nb-intro__content{background:rgba(247,244,236,.94);border-color:rgba(32,36,33,.16)}
.nb-scope--dark .nb-lib-heading .nb-intro--12 .nb-intro__content,.nb-scope--dark .nb-lib-intro .nb-intro--11 .nb-intro__content{background:rgba(25,40,32,.91);border-color:rgba(255,255,255,.17)}
.nb-scope--dark .nb-lib-heading .nb-intro--12 .nb-intro__media,.nb-scope--dark .nb-lib-intro .nb-intro--11 .nb-intro__media{filter:saturate(.82) brightness(.72)}
.nb-scope--secondary .nb-lib-intro .nb-intro--10 .nb-intro__content{background:#F7F4EC;border-color:rgba(36,53,45,.24)}
.nb-scope--dark .nb-lib-intro .nb-intro--10 .nb-intro__content{background:#31463C;border-color:rgba(255,255,255,.18)}

/* =========================================================
   USER-APPROVED CORRECTIONS — AUGUST 2026
   These rules intentionally do not alter unrelated recipes.
   ========================================================= */

/* Give the split headings shown in FL-01 and FL-03–FL-06 more useful measure. */
@media (min-width:48rem){
  .nb-lib-future .nb-section-head--split{
    grid-template-columns:minmax(0,.72fr) minmax(18rem,.28fr);
  }
  .nb-lib-future .nb-section-head--split .nb-section-title{
    max-width:24ch;
  }
}

/* Dark FQ-08: warm-stone first panel, with the same row geometry as column two. */
.nb-scope--dark .nb-lib-faq [data-nb-section="FQ-08"] .nb-dual-faq__column:first-child{
  --column-bg:#E8E0D3;
  --column-border:rgba(36,53,45,.22);
  --item-bg:#F7F4EC;
  --item-text:#202421;
  --item-muted:#5B625D;
  --item-border:rgba(32,36,33,.14);
  --section-text:#202421;
  --section-muted:#5B625D;
  padding:clamp(1.25rem,4vw,2rem);
  background:#E8E0D3;
  border-color:rgba(36,53,45,.22);
}
.nb-scope--dark .nb-lib-faq [data-nb-section="FQ-08"] .nb-dual-faq__column:last-child{
  padding:clamp(1.25rem,4vw,2rem);
}
.nb-scope--dark .nb-lib-faq [data-nb-section="FQ-08"] .nb-dual-faq__column .nb-faq-item summary{
  min-height:3.75rem;
  padding:1rem 3.5rem 1rem 1.1rem;
}
.nb-scope--dark .nb-lib-faq [data-nb-section="FQ-08"] .nb-dual-faq__column .nb-faq-item__answer{
  padding:0 1.1rem 1.1rem;
}

/* Dark CT-02 and CT-12 secondary actions match CT-01's outlined Book Consultation action. */
.nb-scope--dark .nb-lib-cta :is([data-nb-section="CT-02"],[data-nb-section="CT-12"]) .nb-btn--secondary{
  color:#FFFFE6;
  background:transparent;
  border-color:color-mix(in srgb,#FFFFE6 28%,transparent);
  box-shadow:none;
}
.nb-scope--dark .nb-lib-cta :is([data-nb-section="CT-02"],[data-nb-section="CT-12"]) .nb-btn--secondary:hover,
.nb-scope--dark .nb-lib-cta :is([data-nb-section="CT-02"],[data-nb-section="CT-12"]) .nb-btn--secondary:focus-visible{
  color:#FFFFE6;
  background:color-mix(in srgb,#FFFFE6 8%,transparent);
  border-color:color-mix(in srgb,#FFFFE6 44%,transparent);
  box-shadow:none;
}

/* Warm Ivory and Soft Stone CT-12 secondary action matches CT-02's Order Free Samples action. */
.nb-scope--primary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary,
.nb-scope--secondary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary{
  color:#202421;
  background:transparent;
  border-color:color-mix(in srgb,#202421 25%,transparent);
  box-shadow:none;
}
.nb-scope--primary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary:hover,
.nb-scope--primary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary:focus-visible,
.nb-scope--secondary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary:hover,
.nb-scope--secondary .nb-lib-cta [data-nb-section="CT-12"] .nb-btn--secondary:focus-visible{
  color:#202421;
  background:color-mix(in srgb,#202421 7%,transparent);
  border-color:color-mix(in srgb,#202421 42%,transparent);
  box-shadow:none;
}


/* =========================================================
   FL-11 · GOOGLE REVIEW CAROUSEL
   Responsive 1 / 2 / 3-card carousel with manual controls.
   Autoplay timing and behaviour are controlled by the global JS.
   ========================================================= */
.nb-lib-future .nb-review-carousel{
  --nb-review-slides-per-view:1;
  --nb-review-gap:1rem;
  position:relative;
}
.nb-lib-future .nb-review-carousel__topline{
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:1.25rem;
}
.nb-lib-future .nb-review-carousel__rating{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem 1rem;
  color:var(--nb-current-text);
}
.nb-lib-future .nb-review-carousel__score{
  display:inline-flex;
  align-items:baseline;
  gap:.35rem;
  font-family:var(--nb-font-heading);
  font-size:clamp(1.45rem,1.2rem + .8vw,2rem);
  line-height:1;
}
.nb-lib-future .nb-review-carousel__score strong{
  font-weight:400;
}
.nb-lib-future .nb-review-carousel__stars,
.nb-lib-future .nb-review-card__stars{
  display:inline-flex;
  align-items:center;
  gap:.16rem;
  color:var(--nb-current-accent);
  letter-spacing:.02em;
}
.nb-lib-future .nb-review-carousel__stars{
  font-size:1rem;
}
.nb-lib-future .nb-review-card__stars{
  margin:.85rem 0 0;
  font-size:.96rem;
}
.nb-lib-future .nb-review-carousel__meta{
  margin:0;
  color:var(--nb-current-muted);
  font-size:.88rem;
}
.nb-lib-future .nb-review-carousel__controls{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
}
.nb-lib-future .nb-review-carousel__button{
  width:2.75rem;
  height:2.75rem;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  padding:0;
  border:1px solid var(--nb-current-border);
  border-radius:50%;
  color:var(--nb-current-text);
  background:var(--nb-current-surface);
  cursor:pointer;
  transition:transform var(--nb-transition),border-color var(--nb-transition),background var(--nb-transition),color var(--nb-transition);
}
.nb-lib-future .nb-review-carousel__button:hover,
.nb-lib-future .nb-review-carousel__button:focus-visible{
  transform:translateY(-2px);
  border-color:var(--nb-current-accent);
  background:var(--nb-current-accent-soft);
}
.nb-lib-future .nb-review-carousel__button svg{
  width:1.15rem;
  height:1.15rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nb-lib-future .nb-review-carousel__button[data-state="playing"] .nb-review-carousel__icon-play,
.nb-lib-future .nb-review-carousel__button[data-state="paused"] .nb-review-carousel__icon-pause{
  display:none;
}
.nb-lib-future .nb-review-carousel__status{
  min-width:9.5rem;
  margin:0 .25rem 0 0;
  color:var(--nb-current-muted);
  font-size:.82rem;
  font-weight:700;
}
.nb-lib-future .nb-review-carousel__viewport{
  position:relative;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
.nb-lib-future .nb-review-carousel__viewport::-webkit-scrollbar{
  display:none;
}
.nb-lib-future .nb-review-carousel__track{
  display:flex;
  gap:var(--nb-review-gap);
  min-width:100%;
}
.nb-lib-future .nb-review-card{
  flex:0 0 calc((100% - ((var(--nb-review-slides-per-view) - 1) * var(--nb-review-gap))) / var(--nb-review-slides-per-view));
  min-width:0;
  min-height:20rem;
  display:flex;
  flex-direction:column;
  padding:clamp(1.2rem,2.5vw,1.6rem);
  scroll-snap-align:start;
  border:1px solid var(--nb-current-border);
  border-radius:var(--nb-radius-md);
  color:var(--nb-current-text);
  background:var(--nb-current-surface);
  box-shadow:var(--nb-shadow-soft);
}
.nb-lib-future .nb-review-card__header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:.8rem;
  align-items:center;
}
.nb-lib-future .nb-review-card__avatar{
  width:3rem;
  height:3rem;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--nb-current-border);
  border-radius:50%;
  color:var(--nb-current-text);
  background:var(--nb-current-accent-soft);
  font-size:.95rem;
  font-weight:800;
}
.nb-lib-future .nb-review-card__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.nb-lib-future .nb-review-card__name{
  margin:0;
  overflow-wrap:anywhere;
  color:var(--nb-current-text);
  font-size:1rem;
  line-height:1.3;
}
.nb-lib-future .nb-review-card__date{
  margin:.15rem 0 0;
  color:var(--nb-current-muted);
  font-size:.78rem;
}
.nb-lib-future .nb-review-card__source{
  width:1.35rem;
  height:1.35rem;
  display:grid;
  place-items:center;
  color:var(--nb-current-accent);
  font-size:1rem;
  font-weight:800;
}
.nb-lib-future .nb-review-card__quote{
  margin:1rem 0 0;
  color:var(--nb-current-text);
  font-size:.95rem;
  line-height:1.7;
}
.nb-lib-future .nb-review-card__footer{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem .75rem;
  margin-top:auto;
  padding-top:1.15rem;
  color:var(--nb-current-muted);
  font-size:.78rem;
}
.nb-lib-future .nb-review-card__verified{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  color:var(--nb-current-accent);
  font-weight:700;
}
.nb-lib-future .nb-review-card__verified::before{
  content:"";
  width:.48rem;
  height:.48rem;
  border-radius:50%;
  background:currentColor;
}
.nb-lib-future .nb-review-carousel__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.5rem;
}
@media (min-width:40rem){
  .nb-lib-future .nb-review-carousel{
    --nb-review-slides-per-view:2;
  }
  .nb-lib-future .nb-review-carousel__topline{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .nb-lib-future .nb-review-carousel__controls{
    justify-content:flex-end;
  }
}
@media (min-width:64rem){
  .nb-lib-future .nb-review-carousel{
    --nb-review-slides-per-view:3;
  }
}
@media (prefers-reduced-motion:reduce){
  .nb-lib-future .nb-review-carousel__viewport{
    scroll-behavior:auto;
  }
}

/* 05. ACCESSIBILITY AND INTERACTION SUPPORT ------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .nb-component-scope *,
  .nb-component-scope *::before,
  .nb-component-scope *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
