/* ============================================================
         HOMEPAGE — managed IT positioning
         Section-scoped styles. Brand tokens come from the global
         [data-theme] blocks at the top of this file.
         ============================================================ */
      .nv-page {
        --nv-line: color-mix(in srgb, var(--accent2-color) 16%, transparent);
        --nv-muted: color-mix(in srgb, var(--accent2-color) 74%, transparent);
        /* Small uppercase labels. The periwinkle only has 1.74:1 on the sand
           background, so light mode uses the deeper brand indigo instead. */
        --nv-label: var(--title-color);
        --nv-panel: var(--secondary-background-color);
      }

      /* Shiny Button Styles */
      :root {
        --shiny-cta-bg: #1a1a1a;
        --shiny-cta-bg-subtle: #333333;
        --shiny-cta-fg: #9f9f9f;
        --shiny-cta-highlight: #8b8b8b;
        --shiny-cta-highlight-subtle: #7e7e7e;
      }

      @property --gradient-angle {
        syntax: "<angle>";
        initial-value: 0deg;
        inherits: false;
      }

      @property --gradient-angle-offset {
        syntax: "<angle>";
        initial-value: 0deg;
        inherits: false;
      }

      @property --gradient-percent {
        syntax: "<percentage>";
        initial-value: 5%;
        inherits: false;
      }

      @property --gradient-shine {
        syntax: "<color>";
        initial-value: rgb(129, 129, 129);
        inherits: false;
      }

      .shiny-cta {
        --animation: gradient-angle linear infinite;
        --duration: 3s;
        --shadow-size: 2px;
        isolation: isolate;
        position: relative;
        overflow: hidden;
        cursor: pointer;
        outline-offset: 4px;
        /* Keep original properties */
        background-color: #1a1a1a;
        border: none;
        padding: 12px 12px 12px 24px;
        border-radius: 15px;
        font-size: 16px;
        color: var(--accent2-color);
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        margin: 20px auto;
        display: flex;
        align-items: center;
        /* Add shiny effect background */
        background: linear-gradient(var(--secondary-background-color), var(--secondary-background-color)) padding-box,
          conic-gradient(from calc(var(--gradient-angle) - var(--gradient-angle-offset)),
            transparent,
            var(--shiny-cta-highlight) var(--gradient-percent),
            var(--gradient-shine) calc(var(--gradient-percent) * 2),
            var(--shiny-cta-highlight) calc(var(--gradient-percent) * 3),
            transparent calc(var(--gradient-percent) * 4)) border-box;
        border: 1px solid transparent;
        box-shadow: inset 0 0 0 1px var(--accent-color);
      }

      .shiny-cta::before,
      .shiny-cta::after,
      .shiny-cta span::before {
        content: "";
        pointer-events: none;
        position: absolute;
        inset-inline-start: 50%;
        inset-block-start: 50%;
        translate: -50% -50%;
        z-index: -1;
      }

      .shiny-cta:active {
        translate: 0 1px;
      }

      /* Dots pattern */
      .shiny-cta::before {
        --size: calc(100% - var(--shadow-size) * 3);
        --position: 2px;
        --space: calc(var(--position) * 2);
        width: var(--size);
        height: var(--size);
        background: radial-gradient(circle at var(--position) var(--position),
            white calc(var(--position) / 4),
            transparent 0) padding-box;
        background-size: var(--space) var(--space);
        background-repeat: space;
        mask-image: conic-gradient(from calc(var(--gradient-angle) + 45deg),
            black,
            transparent 10% 90%,
            black);
        border-radius: inherit;
        opacity: 0.4;
        z-index: -2;
      }

      /* Inner shimmer */
      .shiny-cta::after {
        --animation: shimmer linear infinite;
        width: 100%;
        aspect-ratio: 1;
        background: linear-gradient(-50deg,
            transparent,
            var(--shiny-cta-highlight),
            transparent);
        mask-image: radial-gradient(circle at bottom, transparent 40%, black);
        opacity: 0.6;
        z-index: -1;
      }

      .shiny-cta span {
        z-index: 10;
      }

      .shiny-cta span::before {
        --size: calc(100% + 1rem);
        width: var(--size);
        height: var(--size);
        box-shadow: inset 0 -1ex 2rem 4px var(--shiny-cta-highlight);
        opacity: 0;
      }

      /* Animate */
      .shiny-cta {
        --transition: 800ms cubic-bezier(0.25, 1, 0.5, 1);
        transition: var(--transition);
        transition-property: --gradient-angle-offset, --gradient-percent,
          --gradient-shine;
      }

      .shiny-cta,
      .shiny-cta::before,
      .shiny-cta::after {
        animation: var(--animation) var(--duration),
          var(--animation) calc(var(--duration) / 0.4) reverse paused;
        animation-composition: add;
      }

      .shiny-cta span::before {
        transition: opacity var(--transition);
        animation: calc(var(--duration) * 1.5) breathe linear infinite;
      }

      .shiny-cta:is(:hover, :focus-visible) {
        --gradient-percent: 20%;
        --gradient-angle-offset: 95deg;
        --gradient-shine: var(--shiny-cta-highlight-subtle);
      }

      .shiny-cta:is(:hover, :focus-visible),
      .shiny-cta:is(:hover, :focus-visible)::before,
      .shiny-cta:is(:hover, :focus-visible)::after {
        animation-play-state: running;
      }

      .shiny-cta:is(:hover, :focus-visible) span::before {
        opacity: 1;
      }

      .shiny-cta img {
        height: 20px;
        margin-left: 10px;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        filter: invert(var(--no-invert-color));
      }

      .shiny-cta:hover {
        background-color: #363636;
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
      }

      .shiny-cta:hover img {
        transform: rotate(45deg) scale(1.1);
        margin-left: 15px;
      }

      @keyframes gradient-angle {
        to {
          --gradient-angle: 360deg;
        }
      }

      @keyframes shimmer {
        to {
          rotate: 360deg;
        }
      }

      @keyframes breathe {

        from,
        to {
          scale: 1;
        }

        50% {
          scale: 1.2;
        }
      }



      /* Section bands: alternating tone so each block reads as its own panel */
      .nv-page .nv-section {
        background: transparent;
      }

      .nv-page .nv-section.nv-tint {
        background: color-mix(in srgb, var(--accent2-color) 6%, var(--background-color));
      }

      .nv-page .nv-section.nv-tint-accent {
        background: linear-gradient(180deg,
            color-mix(in srgb, var(--accent-rule) 10%, var(--background-color)),
            color-mix(in srgb, var(--background-elements) 14%, var(--background-color)));
        border-top: 1px solid color-mix(in srgb, var(--accent-rule) 18%, transparent);
        border-bottom: 1px solid color-mix(in srgb, var(--accent-rule) 18%, transparent);
      }


      .nv-page .serviceHighlight {
        position: relative;
        padding: 10vh 0;
      }

      .nv-page .serviceHighlight-sticky-wrapper {
        position: relative;
        height: max-content;
        /* Force enough height for sticky behavior */
        max-width: 1200px;
        margin: 0 auto;
      }

      .nv-page .serviceHighlight-title-section {
        position: sticky;
        position: -webkit-sticky;
        top: 50vh;
        left: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        padding: 0 40px;
        backdrop-filter: blur(0px);
      }

      .nv-page .serviceHighlight-title {
        font-size: 4rem;
        font-weight: 300;
        color: var(--accent2-color);
        line-height: 1.1;
        letter-spacing: -0.02em;
        margin: 0;
        position: fixed;
        top: 50%;
        left: 40px;
        transform: translateY(-50%);
        max-width: 40%;
        transition: opacity 0.6s ease, transform 0.6s ease;
      }

      .nv-page .serviceHighlight-title.changing {
        opacity: 0.5;
        transform: translateY(-50%) scale(0.95);
      }

      .nv-page .serviceHighlight-content {
        width: 50%;
        margin-left: auto;
      }

      .nv-page .serviceHighlight-item {
        margin-bottom: 120px;
        padding: 40px 0;
        opacity: 0;
        transform: translateY(60px);
        transition: all 0.8s ease;
        position: relative;
      }

      /* One accent rule for every item, themed by --accent-rule.
         Replaces the previous per-group cyan/green/tan, which was off-palette
         and sat under 2:1 against the light background. */
      .nv-page .serviceHighlight-item::before {
        content: '';
        position: absolute;
        top: 50%;
        width: 2px;
        height: 0;
        background: var(--accent-rule);
        transform: translateY(-50%);
        transition: height 0.6s ease;
      }

      .nv-page .serviceHighlight-item.visible {
        opacity: 1;
        transform: translateY(0);
      }

      .nv-page .serviceHighlight-item.visible::before {
        height: 80px;
      }

      .nv-page .serviceHighlight-item p {
        font-size: 1.6rem;
        line-height: 1.6;
        color: var(--accent2-color);
        margin: 0;
        font-weight: 300;
        padding-left: 20px;
      }

      @media (max-width: 768px) {
      .nv-page .serviceHighlight-sticky-wrapper {
          height: auto;
        }

      .nv-page .serviceHighlight-title-section {
          position: relative;
          top: 0;

        }

      .nv-page .serviceHighlight-title {
          font-size: 2.5rem;
          position: static;
          transform: none;
          max-width: 100%;
          text-align: center;
          margin: 20px 0;
        }

      .nv-page .serviceHighlight-content {
          position: static;
          width: fit-content;
          padding: 120px 20px 40px;
          margin-top: 0;
        }

      .nv-page .serviceHighlight-item {
          margin-bottom: 80px;
          padding: 30px 0;
        }

      .nv-page .serviceHighlight-item p {
          font-size: 1.3rem;
          padding-left: 15px;
        }

      .nv-page .serviceHighlight-item::before {
          left: -20px;
        }
      }

      .nv-page .nv-cta-inline {
        margin: 56px auto 0;
        padding: 34px 36px;
        max-width: 920px;
        text-align: center;
        border-radius: 25px;
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
      }

      .nv-page .nv-cta-inline p {
        margin: 0 0 20px;
        font-size: 1.02rem;
        line-height: 1.6;
      }

      .nv-page .nv-cta-inline .nv-cta-row {
        justify-content: center;
        margin: 0;
      }



      .nv-page .nv-choice {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 14px;
        margin-bottom: 26px;
      }

      .nv-page .nv-choice-opt {
        text-align: left;
        padding: 18px 20px;
        border-radius: 15px;
        cursor: pointer;
        font-family: inherit;
        color: inherit;
        background: color-mix(in srgb, var(--background-color) 70%, transparent);
        border: 1px solid color-mix(in srgb, var(--accent2-color) 18%, transparent);
        transition: border-color 0.2s ease, background 0.2s ease;
      }

      .nv-page .nv-choice-opt.is-on {
        border-color: var(--accent-rule);
        background: color-mix(in srgb, var(--accent-rule) 10%, transparent);
      }

      .nv-page .nv-choice-opt b {
        display: block;
        font-size: 0.98rem;
        margin-bottom: 6px;
      }

      .nv-page .nv-choice-opt span {
        display: block;
        font-size: 0.85rem;
        line-height: 1.55;
        color: var(--nv-muted);
      }

      .nv-page .nv-form .nv-next {
        margin: 14px 0 0;
        max-width: none;
        font-size: 0.86rem;
        color: var(--nv-muted);
      }

      @media (max-width: 600px) {
        .nv-page .nv-choice { grid-template-columns: 1fr; }
      }

      .nv-page .nv-form {
        margin-top: 34px;
        text-align: left;
      }

      .nv-page .nv-hp {
        position: absolute;
        left: -9999px;
        opacity: 0;
        height: 0;
        width: 0;
      }

      .nv-page .nv-form-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px 20px;
      }

      .nv-page .nv-form label,
      .nv-page .nv-form-full {
        display: block;
        font-size: 0.78rem;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--nv-muted);
      }

      .nv-page .nv-form label span {
        text-transform: none;
        letter-spacing: 0;
        opacity: 0.7;
      }

      .nv-page .nv-form-full {
        margin-top: 16px;
      }

      .nv-page .nv-form input,
      .nv-page .nv-form textarea {
        display: block;
        width: 100%;
        box-sizing: border-box;
        margin-top: 7px;
        padding: 13px 14px;
        font-family: inherit;
        font-size: 0.95rem;
        color: var(--accent2-color);
        background: color-mix(in srgb, var(--background-color) 70%, transparent);
        border: 1px solid color-mix(in srgb, var(--accent2-color) 18%, transparent);
        border-radius: 12px;
        text-transform: none;
        letter-spacing: 0;
      }

      .nv-page .nv-form input:focus,
      .nv-page .nv-form textarea:focus {
        outline: none;
        border-color: var(--accent-rule);
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-rule) 18%, transparent);
      }

      .nv-page .nv-btn.shiny-cta.nv-form-submit {
        margin-top: 38px;
      }

      .nv-page .nv-form-status {
        margin: 14px 0 0;
        font-size: 0.9rem;
        min-height: 1.2em;
      }

      .nv-page .nv-form-status.is-err { color: #c0392b; }

      @media (max-width: 600px) {
        .nv-page .nv-form-grid { grid-template-columns: 1fr; }
      }


      .nv-page .nv-cases {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
        gap: 24px;
        margin-top: 46px;
        text-align: left;
      }


      .nv-page .nv-case-fig {
        display: block;
        width: 100%;
        height: auto;
        margin-bottom: 18px;
        color: var(--accent2-color);
        border-radius: 14px;
        padding: 10px 6px;
        background: color-mix(in srgb, var(--background-color) 55%, transparent);
        border: 1px solid var(--nv-line);
      }

      .nv-page .nv-case {
        padding: 30px 28px;
        border-radius: 25px;
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
      }

      .nv-page .nv-case:hover {
        transform: translateY(-4px);
      }

      .nv-page .nv-case h3 {
        margin: 0 0 4px;
        font-size: 1.08rem;
      }

      .nv-page .nv-case-kicker {
        margin: 0 0 14px;
        font-size: 0.76rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--nv-label);
      }

      .nv-page .nv-case p:last-child {
        margin: 0;
        font-size: 0.95rem;
        line-height: 1.7;
        color: var(--nv-muted);
      }

      .nv-page .nv-case-foot {
        margin: 40px auto 0;
        max-width: 920px;
        font-size: 1rem;
        line-height: 1.7;
      }


      .nv-page .nv-signs {
        list-style: none;
        margin: 34px auto 0;
        padding: 0;
        max-width: 900px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
        text-align: left;
      }

      .nv-page .nv-signs li {
        padding: 18px 20px 18px 42px;
        position: relative;
        border-radius: 15px;
        font-size: 0.95rem;
        line-height: 1.6;
        background: color-mix(in srgb, var(--accent2-color) 4%, transparent);
        border: 1px solid var(--nv-line);
      }

      .nv-page .nv-signs li::before {
        content: '';
        position: absolute;
        left: 20px;
        top: 25px;
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--nv-label);
        opacity: 0.7;
      }

      .nv-page .nv-problem p.nv-turn {
        margin: 44px auto 0;
        font-size: clamp(1.45rem, 3vw, 2rem);
        font-weight: 500;
        letter-spacing: -0.01em;
      }

      .nv-page .nv-questions {
        margin: 32px auto 0;
        max-width: 760px;
      }

      .nv-page .nv-questions-lead {
        margin: 0 0 16px;
        font-size: 0.78rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--nv-label);
      }

      .nv-page .nv-questions ul {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0 36px;
        text-align: left;
      }

      .nv-page .nv-questions li {
        display: flex;
        align-items: center;
        min-height: 48px;
        padding: 9px 0 9px 24px;
        position: relative;
        font-size: 0.95rem;
        line-height: 1.5;
        border-bottom: 1px solid var(--nv-line);
      }

      .nv-page .nv-questions li::before {
        content: '?';
        position: absolute;
        left: 4px;
        top: 50%;
        transform: translateY(-50%);
        color: var(--nv-label);
        font-weight: 600;
      }

      .nv-page .nv-problem p.nv-resolve {
        margin: 42px auto 0;
        max-width: 820px;
        font-size: 1.08rem;
        line-height: 1.7;
        font-weight: 500;
        color: var(--accent2-color);
      }

      @media (max-width: 760px) {
        .nv-page .nv-signs,
        .nv-page .nv-questions ul { grid-template-columns: 1fr; }
        .nv-page .nv-signs { gap: 10px; }
      }

      .nv-page .nv-problem {
        box-sizing: border-box;
        padding-top: 56px;
        padding-bottom: 56px;
        min-height: 100vh;
        min-height: 100svh;
        display: flex;
        align-items: center;
      }

      .nv-page .nv-problem > .nv-wrap {
        width: 100%;
      }

      @media (max-width: 760px) {
        .nv-page .nv-problem {
          min-height: 0;
          display: block;
        }
      }


      .nv-page .nv-quotes {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        margin-top: 46px;
        text-align: left;
      }

      .nv-page .nv-quote {
        margin: 0;
        padding: 28px 30px;
        border-radius: 25px;
        display: flex;
        flex-direction: column;
        background: color-mix(in srgb, var(--background-color) 55%, transparent);
        border: 1px solid var(--nv-line);
      }

      .nv-page .nv-quote-lead {
        grid-column: 1 / -1;
        padding: 32px 34px;
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border-color: rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
      }

      .nv-page .nv-quote-top {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 16px;
      }

      .nv-page .nv-quote-job {
        margin: 0;
        font-size: 0.7rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--nv-label);
      }

      .nv-page .nv-quote-mark {
        font-size: 2rem;
        line-height: 0.7;
        color: var(--nv-label);
        opacity: 0.45;
      }

      .nv-page .nv-quote > .nv-quote-mark {
        margin-bottom: 14px;
      }

      .nv-page .nv-quote blockquote {
        margin: 18px 0 24px;
        font-size: 1rem;
        line-height: 1.65;
        flex: 1;
      }

      .nv-page .nv-quote-lead blockquote {
        font-size: clamp(1.1rem, 2vw, 1.35rem);
        line-height: 1.55;
        margin: 18px 0 28px;
        max-width: 48ch;
      }

      .nv-page .nv-quote figcaption {
        display: flex;
        align-items: center;
        gap: 14px;
        padding-top: 18px;
        border-top: 1px solid var(--nv-line);
      }

      .nv-page .nv-quote-avatar {
        width: 44px;
        height: 44px;
        flex: none;
        border-radius: 12px;
        background: color-mix(in srgb, var(--accent2-color) 8%, transparent);
        border: 1px solid var(--nv-line);
      }

      .nv-page .nv-quote-id {
        display: flex;
        flex-direction: column;
        gap: 2px;
        flex: 1;
      }

      .nv-page .nv-quote-name {
        font-weight: 500;
        font-size: 0.96rem;
      }

      .nv-page .nv-quote-role {
        font-size: 0.84rem;
        color: var(--nv-muted);
      }

      .nv-page .nv-quote-tag {
        flex: none;
        padding: 7px 14px;
        border-radius: 999px;
        font-size: 0.76rem;
        color: var(--nv-muted);
        background: color-mix(in srgb, var(--accent2-color) 7%, transparent);
        border: 1px solid var(--nv-line);
      }

      /* Delete this rule and the is-placeholder classes once real quotes land. */
      .nv-page .nv-quote.is-placeholder blockquote,
      .nv-page .nv-quote.is-placeholder figcaption {
        opacity: 0.55;
        font-style: italic;
      }

      .nv-page .nv-quotes-foot {
        margin: 36px auto 0;
        max-width: 820px;
        font-size: 1rem;
      }

      @media (max-width: 860px) {
        .nv-page .nv-quotes { grid-template-columns: 1fr; }
        .nv-page .nv-quote-tag { display: none; }
      }

      .nv-page .floating-particles {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        overflow: hidden;
        z-index: 1;
      }

      .nv-page .particle {
        position: absolute;
        background: var(--secondary-background-color);
        border-radius: 50%;
        animation: floatParticle 8s ease-in-out infinite;
      }

      .nv-page .particle-1 { width: 4px; height: 4px; top: 20%; left: 10%; animation-delay: 0s; }
      .nv-page .particle-2 { width: 6px; height: 6px; top: 60%; right: 15%; animation-delay: 2s; }
      .nv-page .particle-3 { width: 3px; height: 3px; bottom: 30%; left: 80%; animation-delay: 4s; }
      .nv-page .particle-4 { width: 5px; height: 5px; top: 35%; left: 46%; animation-delay: 1s; }

      .nv-page .nv-section h2 b,
      .nv-page .nv-hero h1 b {
        font-weight: 400;
        background: linear-gradient(45deg, var(--accent2-color), var(--grad-cool), var(--grad-warm), var(--accent2-color), var(--grad-cool));
        background-size: 300% 300%;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        animation: gradientShift 3s ease-in-out infinite;
      }

      [data-theme="light"] .nv-page {
        --nv-label: var(--accent-rule);
      }

      .nv-page .nv-wrap {
        box-sizing: border-box;
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 20px;
      }

      .nv-page .nv-section {
        padding: 96px 0;
        position: relative;
        z-index: 2;
      }

      .nv-page .nv-eyebrow {
        font-size: 0.75rem;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--nv-label);
        margin: 0 0 18px;
      }

      .nv-page .nv-section h2 {
        font-size: clamp(1.75rem, 3.4vw, 2.6rem);
        line-height: 1.18;
        margin: 0 0 22px;
        font-weight: 600;
      }

      .nv-page .nv-lede {
        font-size: 1.05rem;
        line-height: 1.75;
        color: var(--nv-muted);
        max-width: 920px;
      }

      /* ---------- Hero ---------- */
      .nv-page .nv-hero {
        box-sizing: border-box;
        min-height: 100vh;
        min-height: 100svh;
        display: flex;
        align-items: center;
        padding: 104px 0 56px;
        margin: 0;
        position: relative;
        overflow: hidden;
        z-index: 10;
      }

      .nv-page .nv-hero > .nv-wrap {
        width: 100%;
      }

      .nv-page .nv-hero .nv-wrap {
        text-align: center;
      }

      .nv-page .nv-hero .nv-cta-row {
        justify-content: center;
      }

      .nv-page .nv-hero .nv-band {
        margin: 0 auto;
        max-width: 760px;
        border: 1px solid color-mix(in srgb, var(--accent-rule) 25%, transparent);
      }


      .nv-page .nv-hero h1 {
        animation: titleSlideUp 1s ease-out both;
        font-size: clamp(32px, 5.2vw, 57px);
        line-height: 1.15;
        margin: 0 auto 24px;
        font-weight: 300;
        max-width: 1000px;
        background: linear-gradient(200deg, var(--grad-cool), var(--accent2-color));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        color: transparent;
      }

      .nv-page .nv-hero-sub {
        animation: subtitleSlideUp 1s ease-out 0.45s both;
        font-size: clamp(1rem, 1.6vw, 1.15rem);
        line-height: 1.7;
        color: var(--nv-muted);
        max-width: 64ch;
        margin: 0 auto 36px;
      }

      .nv-page .nv-cta-row {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        margin-bottom: 34px;
      }

      .nv-page .nv-btn {
        font-family: inherit;
        font-size: 1rem;
        font-weight: 500;
        padding: 16px 28px;
        border-radius: 15px;
        border: 1px solid var(--accent-color);
        cursor: pointer;
        transition: all 0.4s ease;
        text-decoration: none;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        position: relative;
        overflow: hidden;
      }

      .nv-page .nv-btn.shiny-cta {
        margin: 0;
        border-radius: 15px;
        padding: 16px 28px;
        justify-content: center;
        font-family: inherit;
        font-size: 1rem;
      }

      .nv-page .nv-btn.shiny-cta::after {
        content: none;
      }

      .nv-page .nv-btn::after {
        content: '\2197';
        font-size: 0.9em;
        transition: transform 0.3s ease;
      }

      .nv-page .nv-btn:hover::after {
        transform: translate(3px, -3px);
      }

      .nv-page .nv-btn:hover {
        transform: translateY(-2px) scale(1.05);
      }

      .nv-page .nv-accent {
        color: var(--text-accent);
      }

      .nv-page .nv-btn-primary {
        background: var(--accent-rule);
        color: #fff;
        border-color: var(--accent-rule);
        box-shadow: 0 10px 30px color-mix(in srgb, var(--accent-rule) 30%, transparent);
        animation: buttonSlideUp 1s ease-out 0.9s both, buttonPulse 2s ease-in-out 2s infinite;
      }

      .nv-page .nv-btn-primary:hover {
        box-shadow: 0 15px 40px color-mix(in srgb, var(--accent-rule) 40%, transparent);
      }

      .nv-page .nv-btn-ghost {
        background: linear-gradient(135deg, var(--secondary-background-color), var(--background-color));
        color: var(--accent2-color);
        border-color: var(--accent-color);
        animation: buttonSlideUp 1s ease-out 1.05s both;
      }

      /* Pricing band */
      .nv-page .nv-band {
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border-left: 3px solid var(--accent-rule);
        border-radius: 25px;
        padding: 24px 32px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
        max-width: 640px;
      }

      .nv-page .nv-band p.nv-band-label {
        font-size: 0.72rem;
        letter-spacing: 0.16em;
        text-transform: uppercase;
        color: var(--nv-muted);
        margin: 0 0 10px;
      }

      .nv-page .nv-band p.nv-band-price {
        font-size: clamp(1.5rem, 3.6vw, 2.1rem);
        font-weight: 600;
        margin: 0 0 12px;
      }

      .nv-page .nv-band p.nv-band-price span {
        font-size: 0.9rem;
        font-weight: 400;
        color: var(--nv-muted);
      }

      .nv-page .nv-band p {
        margin: 0;
        font-size: 0.92rem;
        line-height: 1.6;
        color: var(--nv-muted);
      }

      .nv-page .nv-trust {
        margin-top: 26px;
        font-size: 0.8rem;
        letter-spacing: 0.08em;
        color: var(--nv-muted);
      }

      /* ---------- Problem ---------- */
      .nv-page .nv-problem > .nv-wrap > p:not([class]) {
        font-size: 1.05rem;
        line-height: 1.8;
        max-width: 920px;
        margin: 0 auto 22px;
      }

      .nv-page .nv-problem > .nv-wrap > p:not([class]):last-child {
        color: var(--accent2-color);
        font-weight: 500;
      }

      /* ---------- Promises ---------- */
      .nv-page .nv-grid-2 {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 34px 48px;
        margin-top: 46px;
      }

      .nv-page .nv-promise h3 {
        font-size: 1.05rem;
        margin: 0 0 10px;
        font-weight: 600;
      }

      .nv-page .nv-promise p {
        margin: 0;
        line-height: 1.7;
        color: var(--nv-muted);
        font-size: 0.95rem;
      }

      /* ---------- Calculator ---------- */
      .nv-page .nv-calc {
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border-radius: 25px;
        box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
        padding: 40px;
        margin-top: 42px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px;
      }

      @media (max-width: 820px) {
        .nv-page .nv-calc {
          grid-template-columns: 1fr;
          padding: 26px;
        }
      }

      .nv-page .nv-calc-label {
        font-size: 0.78rem;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--nv-muted);
        display: block;
        margin-bottom: 14px;
      }

      .nv-page .nv-count {
        font-size: 2rem;
        font-weight: 600;
        margin-bottom: 6px;
      }

      .nv-page input[type="range"] {
        width: 100%;
        accent-color: var(--accent-rule);
        margin: 10px 0 28px;
      }

      .nv-page .nv-tiers {
        display: flex;
        flex-direction: column;
        gap: 10px;
      }

      .nv-page .nv-tier {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 15px;
        padding: 16px 18px;
        cursor: pointer;
        background: color-mix(in srgb, var(--background-elements) 6%, transparent);
        backdrop-filter: blur(10px);
        color: inherit;
        font-family: inherit;
        font-size: 0.92rem;
        text-align: left;
        transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
      }

      .nv-page .nv-tier:hover {
        transform: translateY(-1px);
      }

      .nv-page .nv-tier b {
        display: block;
      }

      .nv-page .nv-tier i {
        display: block;
        margin-top: 3px;
        font-style: normal;
        font-size: 0.74rem;
        letter-spacing: 0.04em;
        color: var(--nv-muted);
      }

      .nv-page .nv-tier[data-tier="fortify"] {
        background: color-mix(in srgb, var(--accent-rule) 9%, transparent);
      }

      .nv-page .nv-tier:hover {
        border-color: var(--accent-rule);
      }

      .nv-page .nv-tier[aria-pressed="true"] {
        border-color: var(--accent-rule);
        border-width: 2px;
        padding: 13px 15px;
      }

      .nv-page .nv-tier b {
        font-weight: 600;
      }

      .nv-page .nv-tier em {
        font-style: normal;
        font-size: 0.68rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--nv-label);
        display: block;
        margin-top: 3px;
      }

      .nv-page .nv-tier-rate {
        white-space: nowrap;
        color: var(--nv-muted);
        font-size: 0.85rem;
      }

      .nv-page .nv-out-total {
        font-size: clamp(3rem, 7vw, 4.6rem);
        font-weight: 600;
        line-height: 1;
        letter-spacing: -0.02em;
        margin: 4px 0 6px;
      }

      .nv-page .nv-out-total span {
        font-size: 0.26em;
        font-weight: 400;
        letter-spacing: 0.04em;
        color: var(--nv-muted);
      }

      .nv-page .nv-out-total span {
        font-size: 1rem;
        font-weight: 400;
        color: var(--nv-muted);
      }

      .nv-page .nv-out-annual {
        color: var(--nv-muted);
        font-size: 0.92rem;
        margin: 0 0 18px;
      }

      .nv-page .nv-out-note {
        font-size: 0.88rem;
        line-height: 1.6;
        color: var(--nv-muted);
        border-top: 1px solid var(--nv-line);
        padding-top: 16px;
        margin: 0 0 18px;
        min-height: 3.2em;
      }

      .nv-page .nv-out-note b {
        color: var(--accent2-color);
        font-weight: 600;
      }

      .nv-page .nv-included {
        margin: 26px 0 0;
        padding: 0;
        list-style: none;
        font-size: 0.9rem;
        color: var(--nv-muted);
      }

      .nv-page .nv-included li {
        padding: 7px 0 7px 26px;
        position: relative;
        line-height: 1.6;
      }

      .nv-page .nv-inc-base {
        padding-left: 0 !important;
        font-weight: 500;
        color: var(--accent2-color);
        border-bottom: 1px solid var(--nv-line);
        padding-bottom: 12px !important;
      }

      .nv-page .nv-inc-head {
        padding-left: 0 !important;
        margin-top: 14px;
        font-size: 0.74rem;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--nv-label);
      }

      .nv-page .nv-inc-add::before {
        content: '+';
        position: absolute;
        left: 4px;
        top: 7px;
        font-weight: 600;
        color: var(--accent-rule);
      }

      .nv-page .nv-included li.nv-inc-add::before {
        content: "+";
        position: absolute;
        left: 4px;
        top: 7px;
        font-weight: 600;
        color: var(--accent-rule);
      }

      .nv-page .nv-inc-base::before,
      .nv-page .nv-inc-head::before {
        content: none !important;
      }

      .nv-page .nv-calc-foot {
        margin-top: 26px;
        font-size: 0.85rem;
        color: var(--nv-muted);
        line-height: 1.6;
      }

      /* ---------- Commitments ---------- */
      .nv-page .nv-commit {
        border-top: 1px solid var(--nv-line);
        padding: 28px 0;
        display: grid;
        grid-template-columns: 56px 1fr;
        gap: 22px;
      }

      .nv-page .nv-commit:last-of-type {
        border-bottom: 1px solid var(--nv-line);
      }

      .nv-page .nv-commit-num {
        font-size: 1.6rem;
        font-weight: 600;
        color: var(--accent-rule);
        line-height: 1;
      }

      .nv-page .nv-commit h3 {
        margin: 0 0 10px;
        font-size: 1.1rem;
        font-weight: 600;
      }

      .nv-page .nv-commit p {
        margin: 0;
        line-height: 1.75;
        color: var(--nv-muted);
        font-size: 0.95rem;
      }

      .nv-page details.nv-scope {
        margin-top: 16px;
      }

      .nv-page details.nv-scope summary {
        cursor: pointer;
        font-size: 0.88rem;
        color: var(--text-accent);
        padding: 6px 0;
      }

      .nv-page .nv-scope-table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 14px;
        font-size: 0.86rem;
      }

      .nv-page .nv-scope-table th,
      .nv-page .nv-scope-table td {
        text-align: left;
        padding: 10px 12px 10px 0;
        border-bottom: 1px solid var(--nv-line);
        vertical-align: top;
        line-height: 1.5;
      }

      .nv-page .nv-scope-table th {
        font-weight: 600;
        font-size: 0.74rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--nv-muted);
      }

      .nv-page .nv-scope-yes {
        color: var(--accent-rule);
        font-weight: 600;
        white-space: nowrap;
      }

      .nv-page .nv-scope-proj {
        color: var(--nv-muted);
        white-space: nowrap;
      }

      /* ---------- Exit pull-quote ---------- */
      .nv-page .nv-pull {
        background: linear-gradient(135deg, color-mix(in srgb, var(--accent-rule) 10%, transparent), color-mix(in srgb, var(--background-elements) 10%, transparent));
        border: 1px solid rgba(255, 255, 255, 0.1);
        backdrop-filter: blur(10px);
        border-top: 3px solid var(--accent-rule);
        border-radius: 25px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
        padding: 40px 44px;
        margin: 56px auto 0;
        max-width: none;
        text-align: center;
      }

      .nv-page .nv-pull strong {
        display: block;
        font-size: 1.15rem;
        margin-bottom: 10px;
      }

      .nv-page .nv-pull p {
        margin: 0;
        line-height: 1.75;
        color: var(--nv-muted);
      }

      /* ---------- Steps ---------- */
      .nv-page .nv-steps {
        counter-reset: nvstep;
        margin-top: 42px;
      }

      .nv-page .nv-step {
        counter-increment: nvstep;
        display: grid;
        grid-template-columns: 150px 1fr;
        gap: 30px;
        align-items: start;
        padding: 30px 0;
        border-top: 1px solid var(--nv-line);
      }

      .nv-page .nv-step:last-child {
        border-bottom: 1px solid var(--nv-line);
      }

      /* Oversized two-digit numerals. Swap decimal-leading-zero for
         decimal (1, 2, 3) or upper-roman (I, II, III) if you change your mind. */
      .nv-page .nv-step::before {
        content: counter(nvstep, decimal-leading-zero);
        font-size: clamp(3.2rem, 6.5vw, 5rem);
        font-weight: 100;
        line-height: 1;
        color: var(--text-muted);
        opacity: 0.5;
        text-align: left;
        transition: opacity 0.3s ease;
      }

      .nv-page .nv-step:hover::before {
        opacity: 0.8;
      }

      .nv-page .nv-step h3 {
        margin: 0 0 10px;
        font-size: 1.1rem;
        font-weight: 600;
      }

      .nv-page .nv-step p {
        margin: 0;
        line-height: 1.7;
        color: var(--nv-muted);
        font-size: 0.93rem;
      }

      /* ---------- Closing CTA ---------- */
      .nv-page .nv-close {
        border: 1px solid var(--nv-line);
        border-radius: 14px;
        background: var(--nv-panel);
        padding: 48px 40px;
        text-align: center;
      }

      .nv-page .nv-close h2 {
        margin-bottom: 16px;
      }

      .nv-page .nv-close p {
        color: var(--nv-muted);
        line-height: 1.7;
        max-width: 56ch;
        margin: 0 auto 30px;
      }

      .nv-page .nv-close .nv-cta-row {
        justify-content: center;
        margin-bottom: 20px;
      }

      .nv-page .nv-close small {
        display: block;
        color: var(--nv-muted);
        font-size: 0.85rem;
        line-height: 1.6;
      }

      @media (max-width: 600px) {
        .nv-page .nv-section {
          padding: 68px 0;
        }

        .nv-page .nv-hero {
          padding: 104px 0 56px;
          margin-top: 0;
          align-items: flex-start;
        }

        .nv-page .nv-cta-row {
          flex-direction: column;
          align-items: stretch;
        }

        .nv-page .nv-btn {
          justify-content: center;
          width: auto;
          box-sizing: border-box;
        }

        .nv-page .nv-band,
        .nv-page .nv-pull,
        .nv-page .nv-cta-inline {
          padding: 24px 20px;
        }

        .nv-page .nv-scope-table {
          font-size: 0.82rem;
        }

        .nv-page .nv-commit {
          grid-template-columns: 1fr;
          gap: 10px;
        }

        .nv-page .nv-step {
          grid-template-columns: 1fr;
          gap: 6px;
          padding: 24px 0;
        }

        .nv-page .nv-step::before {
          font-size: 2.4rem;
        }

        .nv-page .nv-close {
          padding: 34px 22px;
        }
      }
          /* Section composition: centred headers, centred reading column (site convention) */
      .nv-page .nv-section > .nv-wrap {
        text-align: center;
      }

      .nv-page .nv-section h2 {
        max-width: 1000px;
        margin-inline: auto;
      }

      .nv-page .nv-lede {
        margin-inline: auto;
      }

      .nv-page .nv-problem p {
        margin-inline: auto;
      }

      /* content blocks stay left-aligned inside the centred column */
      .nv-page .nv-grid-2,
      .nv-page .nv-calc,
      .nv-page .nv-commit,
      .nv-page .nv-step,
      .nv-page .nv-scope {
        text-align: left;
      }

      .nv-page .nv-close {
        text-align: center;
      }

      .nv-page .nv-close h2 {
        max-width: 22ch;
      }

      .nv-page .nv-close > p {
        max-width: 62ch;
        margin-inline: auto;
      }
