/* Phone layer for the public pages.
   Loaded after nova.css and home.css / pages.css with media="(max-width:768px)",
   so nothing here can touch the desktop or tablet layout. The aim: the same
   content at a phone's scale, and shorter. Smaller type and spacing, compact
   cards, one sentence under each heading, swipe rows for the heavy sections
   (what we do, plans, what the audit checks), a compact comparison table and
   a "Show all" button under long task lists.
   Text keeps a 11px floor and body copy stays at 13.5 to 16px. */

/* ---------- Shared ---------- */
.nova .container{width:min(100% - 32px,1180px)}
.nv-section{padding:32px 0}
.nv-section-head{gap:10px;margin-bottom:18px}
.nv-section-head h2{margin-top:10px;font-size:26px;line-height:1.12}
/* Same spacing as before with the kicker on its own grid line (see nova.css). */
@supports(display:contents){
  .nv-section-head{gap:0}
  .nv-section-head>div>.nv-kicker{margin-bottom:19px}
  .nv-section-head>.nv-head-note{margin-top:10px}
}
.nv-tour-copy h2,.nv-check-copy h2,.nv-process-head h2,.nv-commercial-copy h2{font-size:26px;line-height:1.12}
.nv-head-note{padding-left:12px;font-size:14px;line-height:1.55}
.nv-kicker::before{width:22px}
.nv-title{font-size:26px;line-height:1.12}
.nv-eyebrow{margin-bottom:14px;padding:6px 10px}
.nv-button{min-height:48px;gap:14px;padding:0 16px;border-radius:12px}
.nv-button b{width:26px;height:26px}
/* The two buttons at the top of a page sit side by side, labels only. */
.nv-hero-actions,.nv-page-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.nv-hero-actions .nv-button,.nv-page-actions .nv-button{width:auto;min-width:0;min-height:46px;justify-content:center;gap:8px;padding:0 8px;font-size:13.5px;white-space:nowrap}
.nv-hero-actions .nv-button b,.nv-page-actions .nv-button b{display:none}
.nv-text-link{font-size:14px}
.nova .audit-form{gap:10px;padding:14px}
/* 16px inputs: iPhones zoom the whole page in when a smaller field gets focus. */
.nova .audit-form input[type=url],.nova .audit-form input[name=website],.nova .audit-form input[type=email],.nv-search-field input{font-size:16px}
.nova .audit-form input[type=url],.nova .audit-form input[name=website],.nova .audit-form input[type=email]{height:46px}
.nova .audit-form .btn{min-height:48px}
.nv-fineprint{font-size:12.5px}

/* Swipe rows (what we do, plans, what the audit checks): one card at a time
   with the next one peeking in. main.js moves them on and keeps the dots. */
.nv-xp,.nv-plans,.nv-review-grid{position:relative;display:flex;align-items:stretch;margin:0 -16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nv-xp::-webkit-scrollbar,.nv-plans::-webkit-scrollbar,.nv-review-grid::-webkit-scrollbar{display:none}
.nv-snap-dots{display:flex;justify-content:center;gap:6px;margin-top:-6px}
.nv-snap-dots i{position:relative;overflow:hidden;width:7px;height:7px;border-radius:50%;background:#c9d6d0;transition:width .25s,background-color .25s}
.nv-snap-dots i.is-on{width:20px;border-radius:99px;background:var(--nv-green-d)}
/* While a row moves by itself, the dot of the card on show fills up until the
   next card slides in (main.js sets .is-auto and .is-moving). */
.nv-snap-dots i.is-on::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--nv-green-d);transform-origin:left}
.nv-snap-dots.is-auto i.is-on,.nv-snap-dots.is-moving i.is-on{background:#b3e0cf}
.nv-snap-dots.is-auto i.is-on::after{animation:nvSnapFill var(--nv-snap-step,4.5s) linear both}
.nv-snap-dots.is-moving i.is-on::after{transform:scaleX(0)}
@keyframes nvSnapFill{from{transform:scaleX(0)}}

/* Footer */
.nova .footer{padding-top:24px}
.nova .footer-grid{gap:16px 14px}
.nova .footer-logo{height:28px;margin-bottom:10px}
.nova .footer-brand p{max-width:none;font-size:12.5px;line-height:1.6}
.nova .footer-col .footer-title{margin-bottom:8px;font-size:11px}
.nova .footer-col a{margin-bottom:6px;font-size:13px}
/* The legal links run on as one wrapped line. */
.nova .footer-col:last-child{display:flex;flex-wrap:wrap;gap:2px 16px}
.nova .footer-col:last-child .footer-title{flex-basis:100%}
.nova .footer-bottom{flex-direction:column;align-items:flex-start;gap:4px;margin-top:14px;padding:12px 0 16px;font-size:12px}
.nova .footer-bottom span:last-child{display:none}

/* ---------- Homepage hero: short and simple ----------
   Phones get the heading, one sentence, the two buttons and the three
   promises. The status board is for wider screens. */
.nv-hero{padding:30px 0 34px}
.nv-hero .nv-eyebrow{margin-bottom:16px;padding:6px 10px;gap:8px;letter-spacing:.11em}
.nv-hero h1{font-size:34px;line-height:1.08}
.nv-hero-lead{margin:14px 0 24px;font-size:16px;line-height:1.55}
.nv-hero-actions .nv-button{min-height:50px}
.nv-trust-row{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:18px;font-size:12.5px}
.nv-orbit-stage{display:none}
.nv-ticker span{padding:11px 0 11px 20px;gap:20px}

/* ---------- Why it matters: the two sites side by side ---------- */
.nv-drift{border-radius:16px}
.nv-drift-bar{gap:10px;padding:12px 14px 8px}
.nv-drift-play{width:36px;height:36px}
.nv-drift-now{padding:6px 12px;font-size:12px}
.nv-drift-ticks li{font-size:11px}
.nv-drift-sites{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.nv-drift-site figcaption{gap:7px;margin-bottom:8px}
.nv-drift-site figcaption i{width:8px;height:8px;box-shadow:0 0 0 3px rgba(229,72,77,.14)}
.nv-drift-site.is-care figcaption i{box-shadow:0 0 0 3px rgba(0,139,97,.14)}
.nv-drift-site figcaption b{font-size:13px}
.nv-drift-site figcaption span{display:none}
.nv-browser{border-radius:10px;box-shadow:0 10px 24px rgba(24,45,67,.1)}
.nv-browser-bar{height:22px;gap:6px;padding:0 6px}
.nv-browser-dots{display:none}
.nv-browser-url{max-width:100%;overflow:hidden;padding:1px 6px;font-size:9px;white-space:nowrap}
.nv-browser-url svg{width:8px;height:8px}
.nv-browser-warn{gap:3px;padding:8px}
.nv-browser-warn svg{width:18px;height:18px;margin-bottom:0}
.nv-browser-warn b{font-size:11.5px;line-height:1.2}
.nv-browser-warn span{font-size:9.5px;line-height:1.3}
.nv-browser-warn em{display:none}
.nv-drift-news{min-height:52px;gap:7px;padding:7px 8px;font-size:12px;line-height:1.3}
.nv-drift-news-icon{width:18px;height:18px}
.nv-drift-stats{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:8px}
.nv-drift-stats div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:5px 8px;border-radius:8px}
.nv-drift-stats dt{font-size:11px}
.nv-drift-stats dd{margin:0;font-size:15px}
.nv-drift-foot{gap:8px;padding:12px 14px;font-size:12.5px}
.nv-drift-foot a{font-size:13px}

/* ---------- What we do: the five areas in a swipe row ----------
   Every card is open. main.js slides the next card in every few seconds (the
   bar along the foot of the card shows the time) and stops for a while when
   the visitor swipes or taps. */
.nv-xp{gap:10px;padding:2px 16px 12px}
.nv-xp-item{display:flex;flex:0 0 86%;flex-direction:column;border-radius:16px;scroll-snap-align:center}
.nv-xp-trigger{padding:12px 14px}
.nv-xp-head,.nv-xp-wrap.is-ready .nv-xp-head{grid-template-columns:36px minmax(0,1fr) auto;gap:10px}
.nv-xp-wrap.is-ready .nv-xp-head::after{display:none}
.nv-xp-head .nv-xp-icon{width:36px;height:36px;border-radius:10px}
.nv-xp-head .nv-xp-icon svg{width:19px;height:19px}
.nv-xp-name{font-size:16px}
.nv-xp-name small{margin-top:3px;font-size:11.5px}
.nv-xp-count{gap:3px}
.nv-xp-count b{font-size:22px}
.nv-xp-panel,.nv-xp-wrap.is-ready .nv-xp-item:not(.is-active) .nv-xp-panel,.nv-xp-wrap.is-ready .nv-xp-item.is-active .nv-xp-panel{display:flex;flex:1;flex-direction:column;min-height:0;padding:0 14px 18px}
.nv-xp-lead{line-height:1.5}
.nv-xp-tasks,.nv-xp-wrap.is-ready .nv-xp-item.is-active .nv-xp-tasks{flex:none;grid-template-columns:minmax(0,1fr);gap:7px;margin:12px 0 14px;padding-top:12px}
.nv-xp-tasks li{font-size:13.5px}
.nv-xp-tasks li:nth-child(n+4){display:none}
.nv-xp-more,.nv-xp-wrap.is-ready .nv-xp-item.is-active .nv-xp-more{align-self:flex-start;margin-top:auto;font-size:13.5px}
.nv-svc-foot{gap:8px;margin-top:8px;font-size:14px}

/* ---------- A normal month: smaller calendar, one line per job ---------- */
.nv-month{border-radius:16px}
.nv-month-cal{padding:12px 14px}
.nv-month-cal>header b{font-size:17px}
.nv-month-cal>header span{font-size:12px}
.nv-month-week{margin-top:10px;font-size:10px}
.nv-month-week,.nv-month-days{gap:3px}
.nv-month-days{margin-top:6px}
.nv-month-days li{aspect-ratio:auto;height:28px;border-radius:8px;font-size:12px}
.nv-month-days .has-job i{bottom:2px;gap:2px}
.nv-month-days .has-job i b{width:4px;height:4px}
.nv-month-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;padding-top:8px}
.nv-month-legend li{gap:6px;font-size:12px}
.nv-month-legend i{width:8px;height:8px}
.nv-month-legend b{margin-left:2px}
.nv-month-bar{padding-top:10px}
.nv-month-bar p{margin-top:6px;font-size:11px}
.nv-month-log>header{padding:10px 14px}
.nv-month-log>header b{font-size:15px}
.nv-month-log>header span{font-size:12px}
.nv-month-log>header em{padding:5px 10px;font-size:11.5px}
.nv-month-log ol{padding:2px 6px 4px}
.nv-month-log li{grid-template-columns:44px 18px minmax(0,1fr);gap:0 8px;padding:5px 8px;border-radius:10px}
.nv-month-log time{font-size:12px;white-space:nowrap}
.nv-month-log li>i{width:18px;height:18px}
.nv-month-log li>i svg{width:10px;height:10px}
.nv-month-log .nv-log-tag{display:none}
.nv-month-log li p{grid-column:3}
.nv-month-log li p b{font-size:13.5px;line-height:1.3}
.nv-month-log li.nv-log-today{gap:8px;padding:3px 8px}
.nv-month-log li.nv-log-today time{padding:2px 9px;font-size:11.5px}

/* ---------- Client portal: tabs as a 2 x 2 grid above the window ---------- */
.nv-tour{gap:18px}
.nv-tour-copy>p{margin-top:10px;font-size:15px}
.nv-tour-tabs{grid-template-columns:1fr 1fr;gap:6px;margin:16px 0 14px}
.nv-tour-tabs [role=tab]{grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px 12px;border-color:#d4e8df;background:rgba(255,255,255,.5)}
.nv-tour-icon{width:30px;height:30px;border-radius:9px}
.nv-tour-icon svg{width:16px;height:16px}
.nv-tour-text b{margin-top:0;font-size:13.5px;line-height:1.25}
.nv-tour-tabs .nv-tab-progress{left:10px;right:10px;bottom:5px}
.nv-tour-foot .nv-button{flex:1}
.nv-app-bar{height:32px;padding:0 10px}
.nv-app-dots i{width:8px;height:8px}
.nv-app-url{padding:3px 10px;font-size:11px}
/* The window grows to its tallest screen, so no screen is cut off at any width.
   All four screens share one grid cell; only the active one is visible. */
.nv-app-body{height:auto}
.nv-app-top{height:46px;padding:0 12px}
.nv-app-screens{display:grid;grid-template-columns:minmax(0,1fr);flex:none}
.nv-app-screen{position:relative;inset:auto;min-width:0;grid-area:1/1;padding:12px 12px 14px}
.nv-scr-head b{font-size:15px}
.nv-rep-feature{margin-top:10px;padding:10px}
.nv-rep-kpis li{padding:7px 10px}
.nv-rep-list li{padding:6px 2px}
.nv-chg li{padding:6px 0}
.nv-tkt{gap:8px;margin-top:10px}
.nv-msg p{padding:8px 11px;font-size:12.5px}
.nv-share{margin-top:10px;padding:12px}
.nv-share-note{margin-top:10px;padding:10px 12px;font-size:12px}

/* ---------- How it works: one card, a row per step ---------- */
.nv-process-head{gap:10px;margin-bottom:16px}
.nv-process-head p{font-size:14px}
.nv-process-orbit{gap:0;overflow:hidden;border:1px solid #d2d8e2;border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(30,42,63,.07)}
.nv-process-orbit li,.nv-process-orbit li:first-child,.nv-process-orbit li:last-child{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0 12px;padding:12px 14px;border:0;border-bottom:1px solid #e3e7ef;border-radius:0}
.nv-process-orbit li:last-child{border-bottom:0}
.nv-process-orbit li>span{margin-top:1px;padding:6px 8px;font-size:11px}
.nv-process-orbit li>div{min-width:0}
.nv-process-orbit small{margin-top:0}
.nv-process-orbit h3{margin:2px 0 3px;font-size:16px}
/* The lit step stays in its row: a bar down its side and a thin bar along its
   foot that fills as its time runs. */
.nv-process-orbit.is-cycling li.is-lit{z-index:auto;transform:none;border-radius:0;box-shadow:inset 3px 0 0 var(--nv-green-d)}
.nv-process-orbit li::after{left:14px;right:14px;bottom:0;height:2px}

/* ---------- Pricing teaser ---------- */
.nv-commercial-grid{gap:22px}
.nv-commercial-copy>p{margin:12px 0;font-size:15px}
.nv-plan-card{padding:18px 16px;border-radius:16px}
.nv-plan-price{margin:14px 0 10px}
.nv-plan-price sup{margin-top:6px;font-size:20px}
.nv-plan-price strong{font-size:52px}
.nv-plan-price span{font-size:13px}
/* The card shows what is included as tags, without the line of promises. */
.nv-plan-assurance{display:none}
.nv-plan-card .nv-plan-includes{grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0 16px}
.nv-plan-assurance{margin:14px 0}
.nv-plan-assurance span{font-size:12px}

/* ---------- Free audit (homepage): a shorter sample report ---------- */
.nv-check{gap:22px}
.nv-check-copy>p{margin-top:12px;font-size:15px}
.nv-check-form{margin-top:16px;padding:12px;border-radius:14px}
.nova .nv-check-form .audit-form{padding:0}
.nv-check-trust{gap:6px 14px;margin-top:12px;font-size:12.5px}
.nv-sheet{padding:14px;border-radius:16px}
.nv-sheet-top span{font-size:14px}
.nv-gauges{gap:6px;margin-top:12px}
.nv-gauge{padding:10px 4px 8px;border-radius:12px}
.nv-gauge svg{width:60px;height:60px}
.nv-gauge b{top:29px;font-size:18px}
.nv-gauge small{margin-top:6px;font-size:11.5px}
.nv-findings{margin-top:8px}
.nv-findings li{grid-template-columns:62px minmax(0,1fr);gap:8px;padding:8px 0}
.nv-findings,.nv-sheet-foot{display:none}
.nv-findings p{font-size:13px}

/* ---------- Inner page heroes ---------- */
.nv-page-hero{padding:20px 0 28px}
.nv-doc-hero{padding:22px 0 28px}
.nv-crumbs{margin-bottom:14px}
.nv-page-shell{gap:26px}
.nv-page-hero h1{font-size:30px;line-height:1.1}
.nv-page-lead{margin-top:12px;font-size:15px;line-height:1.55}
.nv-page-actions{margin-top:18px}
.nv-page-facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:16px}
.nv-page-facts li{gap:7px;font-size:13px}
.nv-page-facts li::before{width:18px;height:18px}
/* Pictures that only decorate (FAQ chat, tasks stack) step aside on phones. */
.nv-chat,.nv-stack{display:none}
/* Pricing: the plans right below show the same three cards, so phones skip the deck. */
.nv-pricing-hero .nv-deck{display:none}

/* ---------- Pricing ---------- */
/* Plans: a swipe row, opening on the best value card (main.js). */
.nv-plans{gap:12px;padding:18px 16px 22px}
.nv-plan,.nv-plan.is-featured{flex:0 0 84%;padding:22px 18px 18px;scroll-snap-align:center}
.nv-plan h3{font-size:19px}
.nv-plan-term{font-size:13px}
.nv-plan-cost{margin:16px 0 10px}
.nv-plan-cost strong{font-size:52px}
.nv-plan-list{margin:16px 0 18px;padding-top:14px}
.nv-plan-list li{padding:5px 0 5px 28px;font-size:13.5px}
.nv-plan-list li::before{top:5px}
.nv-savings{gap:18px;padding:18px 16px;border-radius:16px}
.nv-meter{gap:12px;padding:14px 12px;border-radius:12px}
.nv-meter-row{grid-template-columns:62px 1fr 50px;gap:8px}
.nv-meter-row>span{font-size:12px}
.nv-meter-row>b{font-size:16px}
/* Comparison: ticks and crosses only, one row per topic. The topic sits on
   the left and the three providers are the columns; the cell texts stay on
   wider screens and for screen readers. */
.nv-compare{overflow:hidden;border:1px solid #cad7e3;border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(30,52,82,.07)}
.nv-compare thead{display:block;border-bottom:1px solid #dfe7ee}
.nv-compare thead tr,.nv-compare tbody tr{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
.nv-compare thead td{display:block}
.nv-compare thead th{display:flex;align-items:flex-end;justify-content:center;padding:12px 4px 10px;font-size:12.5px;line-height:1.2;text-align:center}
.nv-compare thead th span:not(.nv-compare-flag),.nv-compare .nv-compare-flag{display:none}
.nv-compare tbody tr{margin:0;border:0;border-top:1px solid #e4eaf0;border-radius:0}
.nv-compare tbody tr:first-child{border-top:0}
.nv-compare tbody th{display:flex;align-items:center;padding:10px 6px 10px 12px;background:none;font-size:11px;line-height:1.3}
.nv-compare tbody tr:hover th{background:none}
.nv-compare tbody td.is-us{grid-column:auto}
.nv-compare td,.nv-compare tbody td,.nv-compare tbody td:not(.is-us){display:grid;place-items:center;padding:8px 4px;line-height:0}
/* The cell text is read out by screen readers, like .nv-sr, but takes no room. */
.nv-compare tbody td .nv-cell-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nv-compare tbody td+td{border-left:1px solid #edf1f5}
.nv-compare tbody td .nv-status{position:static;display:grid;width:24px;height:24px;margin:0;font-size:12px;line-height:1}
.nv-compare td[data-label]::before{display:none}
.nv-compare tfoot{display:block;border-top:1px solid #e4eaf0}
.nv-compare tfoot td.is-us{padding:10px;font-size:14px;line-height:1.4}
.nv-split{gap:20px}
.nv-faq-list{gap:8px}
.nv-faq-item{border-radius:12px}
.nv-faq-item summary{gap:12px;padding:14px;font-size:14.5px}
.nv-faq-toggle{flex-basis:26px;height:26px}
.nv-faq-answer{padding:0 14px 14px;font-size:14px}

/* ---------- Free audit page ---------- */
.nv-form-card-head{padding:12px 14px}
/* What the audit checks: the three cards in a swipe row (main.js). */
.nv-review-grid{gap:10px;padding:2px 16px 12px}
.nv-review-card{display:grid;flex:0 0 86%;grid-template-columns:40px minmax(0,1fr);align-content:start;align-items:center;column-gap:12px;padding:16px 16px 16px 18px;border-radius:14px;scroll-snap-align:center}
.nv-review-icon{grid-row:1/span 2;width:40px;height:40px;border-radius:11px}
.nv-review-icon svg{width:20px;height:20px}
.nv-review-card small{grid-column:2;margin-top:0}
.nv-review-card h3{grid-column:2;margin-top:2px;font-size:17px}
.nv-review-card ul{grid-column:1/-1;margin:10px 0 12px}
.nv-review-card li{padding:6px 0 6px 22px;font-size:13.5px}
.nv-review-card li::before{top:12px;width:7px;height:7px}
.nv-proof-strip{gap:4px;margin-top:14px;padding:12px 14px;font-size:13px}
.nv-proof-strip b{font-size:17px}
.nv-checklist{gap:8px;margin-top:16px}
.nv-checklist li{padding-left:30px;font-size:14px}
.nv-checklist li::before{width:20px;height:20px}
.nv-report{border-radius:14px}
.nv-report-bar{padding:11px 12px}
.nv-report-scores{padding:10px}
.nv-report-scores strong{font-size:22px}
.nv-report-findings li{padding:8px 12px}
.nv-timeline{row-gap:16px}
.nv-timeline li{padding-left:58px}
/* Stacked steps: each stretch of line runs down to the next number
   (100% plus the 16px gap). */
.nv-timeline.is-cycling li:not(:last-child)::after{display:block;left:23px;top:24px;width:2px;height:calc(100% + 16px);background:linear-gradient(180deg,var(--nv-seg-from,#694dd1),var(--nv-seg-to,#557cff)) 0 0/100% calc(var(--nv-seg) * 100%) no-repeat,#dcd8f0}
.nv-timeline h3{font-size:17px}
.nv-assure{gap:10px;margin-top:20px}
.nv-center{margin-top:20px}

/* ---------- FAQ and about ---------- */
.nv-about{gap:20px}
.nv-about-copy>p{margin-top:12px;font-size:15px;line-height:1.65}
.nv-principles{gap:6px;margin-top:16px}
.nv-principles li{padding:7px 12px;font-size:12.5px}
.nv-stats{gap:8px}
.nv-stats>div{padding:14px;border-radius:14px}
.nv-stats dd{font-size:26px}
.nv-stats dd.is-range{font-size:22px}
.nv-stats dt{margin-top:6px;font-size:12.5px}
.nv-faq-layout{gap:16px}
.nv-faq-groups{gap:22px}
.nv-faq-group>h3{margin-bottom:10px;font-size:18px}
.nv-help-card{padding:16px;border-radius:14px}
.nv-help-card h3{font-size:17px}

/* ---------- Tasks page: each list as a two column checklist ---------- */
.nv-tasks-layout{gap:16px}
.nv-task-search{padding:12px;border-radius:14px}
.nv-search-field{height:44px}
.nv-task-groups{gap:12px}
.nv-task-group{padding:16px 14px;border-radius:14px}
.nv-task-group header{grid-template-columns:38px 1fr;gap:12px;margin-bottom:12px;padding-bottom:12px}
.nv-task-icon{width:38px;height:38px;border-radius:11px}
.nv-task-icon svg{width:20px;height:20px}
.nv-task-group h2{font-size:18px}
.nv-task-group header p{margin-top:3px;font-size:13px}
.nv-task-group ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.nv-task-group li{padding:7px 0 7px 21px;font-size:13px;line-height:1.35}
.nv-task-group li::before{top:8px;width:15px;height:15px;border-radius:4px;font-size:9px}
/* Long lists show their first six tasks; the button shows the rest (main.js). */
.nv-task-group.is-collapsed li:nth-child(n+7){display:none}
.nv-task-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:42px;margin-top:12px;padding:0 14px;border:1px solid #d3dfe4;border-radius:11px;background:#fff;color:var(--nv-ink);font:inherit;font-size:13.5px;font-weight:800;cursor:pointer}
.nv-task-more svg{transition:transform .25s}
.nv-task-more[aria-expanded=true] svg{transform:rotate(180deg)}

/* ---------- Legal pages ---------- */
.nv-doc-related{padding:12px}
.nv-doc-related>a{padding:10px 12px;font-size:13.5px}
.nv-doc-meta{gap:6px;margin-top:16px}
.nv-doc-meta li{padding:5px 10px;font-size:12px}
.nv-doc-section{padding:24px 0 36px}
.nv-prose h2{margin-top:28px;padding-top:20px;font-size:18px}
.nv-doc-note{padding:14px;font-size:14px}

/* ---------- Closing call to action, results, 404 ---------- */
.nv-cta-band{padding:30px 0}
.nv-cta-panel{gap:16px;padding:20px 16px;border-radius:16px}
.nv-cta-copy h2{font-size:24px}
.nv-result-section{padding:28px 0}
.nv-result-card{padding:24px 16px}
.nv-lost{padding:28px 0 36px}
.nv-lost-shell{gap:24px}
.nv-lost-monitor svg{height:80px;margin-top:14px}
.nv-lost-monitor strong{font-size:68px}
.nv-lost-copy h1{font-size:30px}

/* ---------- Less to read on phones ----------
   Every section keeps its heading and its picture. The sentences under the
   headings, the long lists and the extra lines stay on wider screens. */
.nv-head-note,.nv-process-head p,.nv-tour-copy>p,.nv-commercial-copy>p,.nv-check-copy>p{display:none}
/* Footer: the paragraph about the company runs the full width. */
.nova .footer-brand .footer-about{max-width:none;font-size:13px;line-height:1.6}
/* Why it matters: the two sites and the line under each */
.nv-drift-stats,.nv-drift-foot p{display:none}
/* What we do: the buttons under the row, without the sentence */
.nv-svc-foot p{display:none}
/* A normal month: the calendar, then the last job done so far, today and
   the next job planned. */
.nv-month-legend,.nv-month-bar,.nv-month-log>header span,.nv-month>figcaption{display:none}
.nv-month-log li{display:none}
.nv-month-log li.is-last-done,.nv-month-log li.is-next{display:grid}
.nv-month-log li.nv-log-today{display:flex}
/* How it works: number, label and title per step */
.nv-process-orbit h3{margin-bottom:0}
/* Free audit page: the checks, the sample report, the steps and three short promises */
.nv-checklist{display:none}
.nv-review-card ul{margin-bottom:0}
/* Task list and legal pages */
.nv-task-group header p{display:none}
.nv-doc-related{display:none}

/* ---------- Small phones ---------- */
@media(max-width:380px){
  .nv-hero h1{font-size:31px}
  .nv-page-hero h1{font-size:28px}
  .nv-section-head h2,.nv-title,.nv-tour-copy h2,.nv-check-copy h2,.nv-process-head h2,.nv-commercial-copy h2{font-size:24px}
  .nv-drift-sites{gap:8px;padding:10px}
  .nv-drift-news{font-size:11.5px}
  .nv-tour-tabs [role=tab]{grid-template-columns:26px minmax(0,1fr);padding:8px 8px 11px}
  .nv-tour-icon{width:26px;height:26px}
}
/* Very narrow phones: the two top buttons stack again. */
@media(max-width:359px){.nv-hero-actions,.nv-page-actions{grid-template-columns:minmax(0,1fr)}}

