/* Live aslanbuilt.com only. header.php limits this layer to <=1024px;
   desktop and both domains' preview skins keep their existing cascade. */
body.next-v3 {
    --nx-y: clamp(40px, 6vw, 56px);
    --nx-gap: 20px;
    --nx-head-gap: 24px;
    --mobile-header-height: calc(68px + env(safe-area-inset-top, 0px));
    --mobile-gutter: 20px;
    --control-min: 44px;
}

body.next-v3 .container {
    padding-left: max(var(--mobile-gutter), env(safe-area-inset-left));
    padding-right: max(var(--mobile-gutter), env(safe-area-inset-right));
}
body.next-v3 :is(.nx-hero-grid, .nx-path, .nx-faces, .nx-story-grid, .nx-why2-grid, .next-footer-grid) > * { min-width: 0; }
body.next-v3 .nx-head h2 { font-size: clamp(30px, 7.8vw, 40px); line-height: 1.06; }
body.next-v3 .nx-head p { font-size: 16px; }
body.next-v3 .nx-head-split > .nx-link { margin-top: 8px; margin-bottom: 0; }
body.next-v3 .nx-link { min-height: var(--control-min); }
body.next-v3 :is(.nx-lead, .nx-row-line, .nx-service-list span) { font-size: 16px; }

/* The headline spans the phone; intro and lion share the row beneath it.
   The original image stays opaque, unfiltered and in the first viewport. */
body.next-v3 .nx-hero { padding-top: calc(var(--mobile-header-height) + 28px); }
body.next-v3 .nx-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 20px 0; }
body.next-v3 .nx-hero-copy { display: contents; }
body.next-v3 .nx-hero h1 {
    grid-column: 1 / -1; grid-row: 1;
    font-size: clamp(30px, 9.8vw, 56px); line-height: 1.02;
    letter-spacing: -.05em; margin: 0; text-wrap: balance;
}
body.next-v3 .nx-hero h1 .nx-rotate { white-space: normal; text-wrap: balance; }
body.next-v3 .nx-hero .nx-lead {
    grid-column: 1; grid-row: 2; align-self: center;
    margin: 0; line-height: 1.5; text-wrap: pretty;
}
body.next-v3 .nx-hero-lion {
    grid-column: 2; grid-row: 2; order: 0; align-self: center; justify-self: end;
    width: 112%; max-width: none; margin: 0 -8px 0 0;
}
body.next-v3 .nx-hero .nx-actions {
    grid-column: 1 / -1; grid-row: 3;
    display: grid; grid-template-columns: 1fr; gap: 4px; justify-items: start;
}
body.next-v3 .nx-hero .nx-actions .btn { width: 100%; min-height: 52px; padding: 14px 20px; }
body.next-v3 .nx-hero .nx-actions .nx-link { padding-block: 8px; }
body.next-v3 .nx-trades { margin-top: 24px; padding-block: 18px; font-size: 14px; line-height: 1.55; text-wrap: pretty; }

/* Service illustrations belong beside their title; chips use the full row. */
body.next-v3 .nx-path {
    grid-template-columns: 88px minmax(0, 1fr); gap: 16px;
    padding-block: 24px; min-height: 0;
}
body.next-v3 .nx-path-art { grid-column: 1; grid-row: 1; max-width: none; }
body.next-v3 .nx-path-body { display: contents; }
body.next-v3 .nx-path h3 { grid-column: 2; grid-row: 1; font-size: clamp(21px, 5.4vw, 27px); line-height: 1.12; margin: 0; }
body.next-v3 .nx-path .nx-chips { grid-column: 1 / -1; gap: 8px; }
body.next-v3 .nx-chips a { min-height: var(--control-min); padding: 8px 12px; font-size: 14px; line-height: 1.35; }

/* Keep portraits legible and the fifth person part of a complete row. */
body.next-v3 .nx-people-grid { gap: 24px; }
body.next-v3 .nx-faces { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
body.next-v3 .nx-faces strong { font-size: 16px; line-height: 1.35; }
body.next-v3 .nx-faces span:not(.nx-portrait) { font-size: 14px; }
body.next-v3 .nx-faces > li:last-child:nth-child(odd) {
    grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 16px; align-content: center;
}
body.next-v3 .nx-faces > li:last-child:nth-child(odd) .nx-portrait { grid-row: 1 / span 2; margin: 0; }
body.next-v3 .nx-faces > li:last-child:nth-child(odd) strong { align-self: end; }

body.next-v3 .nx-story-grid { gap: 16px; }
body.next-v3 .nx-story-card { padding: 20px; gap: 8px; }
body.next-v3 .nx-story-card .nx-story-meta { margin: 0 0 4px; }
body.next-v3 .nx-story-meta { font-size: 14px; letter-spacing: 0; text-transform: none; gap: 8px; flex-wrap: wrap; }
body.next-v3 .nx-story-meta > span:nth-child(2) { white-space: normal; overflow: visible; }
body.next-v3 .nx-story-status { font-size: 14px; }
body.next-v3 .nx-story-icon { width: 28px; height: 28px; }
body.next-v3 .nx-story-card .nx-story-title { font-size: 24px; margin: 0; }
body.next-v3 .nx-story-line { font-size: 16px; margin: 0; }
body.next-v3 .nx-story-card .nx-link { padding-top: 8px; font-size: 16px; }

/* The dark band's facts become compact icon/text rows, not four tall tiles. */
body.next-v3 .nx-why2-grid { gap: 28px; }
body.next-v3 .nx-why2 h2 { font-size: clamp(30px, 7.8vw, 42px); line-height: 1.07; }
body.next-v3 .nx-why2-copy p { font-size: 16px; margin-bottom: 20px; text-wrap: pretty; }
body.next-v3 .nx-why2-tiles { gap: 12px; }
body.next-v3 .nx-why2-tiles > div { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 4px 14px; padding: 18px; }
body.next-v3 .nx-why2-icon { grid-row: 1 / span 2; width: 40px; height: 40px; margin: 0; border-radius: var(--radius-md); }
body.next-v3 .nx-why2-tiles dt { font-size: 18px; margin: 0; }
body.next-v3 .nx-why2-tiles dd { grid-column: 2; font-size: 16px; }
/* Edited/new CMS facts can omit the legacy icon. */
body.next-v3 .nx-why2-tiles > div:not(:has(> .nx-why2-icon)) { grid-template-columns: minmax(0, 1fr); }
body.next-v3 .nx-why2-tiles > div:not(:has(> .nx-why2-icon)) dd { grid-column: 1; }

body.next-v3 .nx-step { padding-left: 60px; padding-bottom: 24px; }
body.next-v3 .nx-step-mark { width: 40px; height: 40px; font-size: 16px; }
body.next-v3 .nx-step:not(:last-child)::after,
body.next-v3 .nx-step:nth-child(2)::after { top: 40px; left: 19px; width: 2px; }
body.next-v3 .nx-step-when { padding-top: 0; font-size: 14px; letter-spacing: .025em; }
body.next-v3 .nx-step h3 { font-size: 23px; }
body.next-v3 .nx-step p:last-child { font-size: 16px; }
body.next-v3 .nx-rows a { padding-block: 16px; }
body.next-v3 .nx-row-title { font-size: 20px; }

body.next-v3 .nx-cta { padding-block: var(--nx-y); }
body.next-v3 .nx-cta h2 { font-size: clamp(34px, 8vw, 48px); max-width: 16ch; }
body.next-v3 .nx-cta p { font-size: 16px; }
body.next-v3 .nx-cta-actions { gap: 4px; }
body.next-v3 .nx-cta-actions .btn { width: 100%; }
body.next-v3 .nx-cta-phone { display: inline-flex; align-items: center; min-height: var(--control-min); font-size: 16px; }
body.next-v3 .nx-cta::after { width: 260px; right: -50px; }

/* CMS-added home proof uses the same spacing as the authored sections. */
body.next-v3 .nx-section .section-header { margin-bottom: var(--nx-head-gap); }
body.next-v3 .nx-section figure.card { margin: 0; padding: 20px; }
body.next-v3 .nx-section figure.card :is(blockquote, figcaption) { font-size: 16px; }
body.next-v3 .nx-section figure.card figcaption span { display: block; margin-top: 4px; }
body.next-v3 .nx-section .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Footer navigation stays grouped; all links remain available on a phone. */
body.next-v3 .footer { padding-top: 32px; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
body.next-v3 .next-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 28px 20px; margin-bottom: 28px; }
body.next-v3 .footer-brand, body.next-v3 .footer-contact { grid-column: 1 / -1; }
body.next-v3 .footer-brand p { font-size: 16px; max-width: 34rem; }
body.next-v3 .footer-heading { font-size: 14px; letter-spacing: .08em; margin-bottom: 10px; }
body.next-v3 .footer-links li { margin: 0; }
body.next-v3 .footer-links a { display: flex; align-items: center; min-height: var(--control-min); font-size: 16px; }
body.next-v3 .footer-contact p { font-size: 16px; margin-bottom: 8px; }
body.next-v3 .footer-contact a { display: inline-flex; align-items: center; min-height: var(--control-min); overflow-wrap: anywhere; }
body.next-v3 .footer-bottom { align-items: flex-start; gap: 8px; padding-top: 20px; text-align: left; }
body.next-v3 .footer-bottom p, body.next-v3 .footer-legal a { font-size: 14px; }
body.next-v3 .footer-legal a { display: inline-flex; align-items: center; min-height: var(--control-min); }

/* Inner pages share the new rhythm, without changing their content or forms. */
body.next-v3 .nx-page-hero { padding-top: calc(var(--mobile-header-height) + 28px); padding-bottom: 32px; }
body.next-v3 .nx-page-hero h1 { font-size: clamp(36px, 9vw, 52px); }
body.next-v3 .nx-page-hero-grid { gap: 24px; }
body.next-v3 .nx-hc-text span, body.next-v3 .nx-hero-card-label { font-size: 14px; }
body.next-v3 .nx-group-top { grid-template-columns: 88px minmax(0, 1fr); gap: 16px; }
body.next-v3 .nx-group-top h2 { font-size: clamp(24px, 6vw, 36px); }
body.next-v3 .nx-book { padding-top: calc(var(--mobile-header-height) + 28px); }
body.next-v3 .nx-book-card { padding: 20px; }
body.next-v3 .nx-book-note, body.next-v3 .nx-story-beats dd { font-size: 16px; }

@media (min-width: 601px) {
    body.next-v3 { --mobile-gutter: 28px; }
    body.next-v3 .nx-hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 24px; }
    body.next-v3 .nx-hero-copy { display: block; }
    body.next-v3 .nx-hero h1 { font-size: clamp(40px, 5.8vw, 60px); margin-bottom: 20px; }
    body.next-v3 .nx-hero .nx-lead { margin-bottom: 24px; }
    body.next-v3 .nx-hero-lion { grid-column: 2; grid-row: 1; width: 112%; margin: 0; }
    body.next-v3 .nx-hero .nx-actions { display: flex; gap: 8px 20px; }
    body.next-v3 .nx-hero .nx-actions .btn { width: auto; }
    body.next-v3 .nx-path { grid-template-columns: 160px minmax(0, 1fr); gap: 24px; }
    body.next-v3 .nx-path-body { display: block; }
    body.next-v3 .nx-path h3 { margin-bottom: 12px; }
    body.next-v3 .nx-faces { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    body.next-v3 .nx-faces > li:last-child:nth-child(odd) { display: block; grid-column: auto; }
    body.next-v3 .nx-faces > li:last-child:nth-child(odd) .nx-portrait { margin-bottom: .6rem; }
    body.next-v3 .nx-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.next-v3 .nx-why2-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.next-v3 .nx-why2-tiles > div { display: block; }
    body.next-v3 .nx-why2-icon { margin-bottom: 12px; }
    body.next-v3 .nx-why2-tiles dt { margin-bottom: 8px; }
    body.next-v3 .nx-cta-actions .btn { width: auto; }
    body.next-v3 .footer-brand, body.next-v3 .footer-contact { grid-column: auto; }
    body.next-v3 .next-footer-grid { gap: 32px; }
    body.next-v3 .nx-group-top { grid-template-columns: 160px minmax(0, 1fr); gap: 24px; }
}

@media (min-width: 769px) {
    body.next-v3 { --mobile-header-height: 76px; }
    body.next-v3 .nx-step { padding-left: 0; }
    body.next-v3 .nx-step:not(:last-child)::after { top: 19px; left: 40px; width: auto; height: 2px; }
    body.next-v3 .nx-step:nth-child(2)::after { display: none; }
}
