/* Line 16160 (google-path-public-16160-r1): the business directory (/businesses) and a business's storefront
   (/businesses/{business}) on the Google path, loaded only while ai.features.google_path_public_16160 is on
   (App\Support\Marketplace\BusinessesGooglePath), after css/ns-tokens.css and after the page's own sheets
   (agentic-business-surface.css, business-pages-light-dark.css). The body carries .ns-gp .ns-biz-gp: .ns-gp is the
   canonical token set of ns-tokens.css (Google's surface greys, #202124 ink, NetShow gold; light by default, dark under
   prefers-color-scheme: dark). This sheet points the storefront's own words (the design-system --ns-* names the --ab-*
   aliases read) at those tokens, so the palette lives in one file, and adds nothing else:
     one type scale (DESIGN-GOOGLE-PATH-20260928 section 2.3, big text light, not bold), sentence-case labels;
     flat cards and panels (no gradients, glows or lift), 12 px radius from --ns-radius;
     actions round and 48 px tall; gold as a fill only on the page's one primary next step, gold as ink only through
     --ns-gold-light (#b06000 on white, #fdd663 on dark); the filter Apply and each Featured "Meet" read as tonal steps;
     tabular figures on counts, census and pagination.
   The only literal colours are the design system's focus rings (#00639b light, #a8c7fa dark). */

body.ns-biz-gp {
    /* Display 48/56 (phone 28/36), Title L 28/36 (phone 24/32), Title 22/28, Title S 16/24, Body 16/24, Label 12/16. */
    --gp-h1: clamp(1.75rem, 1.3rem + 2vw, 3rem);
    --gp-h2: clamp(1.5rem, 1.35rem + .5vw, 1.75rem);
    --gp-h3: 1.375rem;
    --gp-title-s: 1rem;
    --gp-body: 1rem;
    --gp-label: .75rem;
    --gp-focus: #00639b;

    /* The storefront's design-system words, pointed at the Google-path tokens. */
    --ns-bg-void: var(--ns-bg);
    --ns-bg-primary: var(--ns-bg);
    --ns-bg-secondary: var(--ns-bg-deep);
    --ns-bg-tertiary: var(--ns-surface);
    --ns-bg-elevated: var(--ns-card);
    --ns-text-primary: var(--ns-text);
    --ns-text-secondary: var(--ns-text-2);
    --ns-text-muted: var(--ns-text-2);
    --ns-border-subtle: var(--ns-border);
    --ns-accent: var(--ns-gold-light);
    --ns-accent-hover: var(--ns-gold-deep);
    --ns-accent-subtle: color-mix(in srgb, var(--ns-gold) 12%, transparent);
    --ns-font-sans: var(--ns-font);
    --ns-shadow-sm: none;
    --ns-shadow-xl: none;
    --landing-glow: none;

    background: var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-font);
}
@media (prefers-color-scheme: dark) {
    body.ns-biz-gp { --gp-focus: #a8c7fa; }
}

/* The landing chrome around the page (the top menu, when lit, reads the same tokens through <html data-ns-tokens>). */
.ns-biz-gp :is(.landing-bg, .landing-main) { background: var(--ns-bg); color: var(--ns-text); }
.ns-biz-gp .landing-header { background: var(--ns-bg); color: var(--ns-text); border-bottom-color: var(--ns-border); }
.ns-biz-gp :is(.landing-brand, .landing-link-btn) { color: var(--ns-text); font-family: var(--ns-font); }
.ns-biz-gp .landing-link-btn { min-height: 48px; display: inline-flex; align-items: center; border-radius: 999px; font-weight: 500; }
.ns-biz-gp .landing-link-btn:hover { background: var(--ns-surface); color: var(--ns-text); }
.ns-biz-gp .landing-footer { background: var(--ns-bg-deep); color: var(--ns-text-2); border-top-color: var(--ns-border); }
.ns-biz-gp .landing-footer :is(a, p, div) { color: var(--ns-text-2) !important; }

/* The page: flat ground, one type family. */
.ns-biz-gp .ab-surface {
    background: var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-font);
    font-size: var(--gp-body);
    line-height: 1.5;
}

/* One type scale, Google weights: big text light, labels medium, no negative tracking. */
.ns-biz-gp .ab-surface :is(.ab-hero h1, .ab-detail-hero h1) {
    font-size: var(--gp-h1);
    line-height: 1.1667;
    font-weight: 400;
    letter-spacing: 0;
}
.ns-biz-gp .ab-surface :is(.ab-section-head h2, .ab-panel h2, .ab-next h2) {
    font-size: var(--gp-h2);
    line-height: 1.2857;
    font-weight: 400;
    letter-spacing: 0;
}
.ns-biz-gp .ab-surface .ab-agent-door h2 { font-size: var(--gp-h3); line-height: 1.2727; font-weight: 400; letter-spacing: 0; }
.ns-biz-gp .ab-surface :is(.ab-card h3, .ab-featured__card h3, .ab-empty h3) {
    font-size: var(--gp-title-s);
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: .00625rem;
}
.ns-biz-gp .ab-surface .ab-panel h3 { font-size: var(--gp-title-s); line-height: 1.5; font-weight: 500; color: var(--ns-text); }
.ns-biz-gp .ab-surface :is(.ab-lede, .ab-detail-hero__lede) { font-size: 1.125rem; line-height: 1.5556; color: var(--ns-text-2); }
.ns-biz-gp .ab-surface :is(.ab-card__copy, .ab-featured__line, .ab-panel p, .ab-agent-door > p, .ab-next p) { font-size: .875rem; line-height: 1.4286; color: var(--ns-text-2); }
.ns-biz-gp .ab-surface .ab-eyebrow {
    color: var(--ns-gold-light);
    font-size: var(--gp-label);
    line-height: 1.3333;
    font-weight: 500;
    letter-spacing: .03125rem;
    text-transform: none;
}
.ns-biz-gp .ab-surface :is(.ab-field, .ab-card__topline, .ab-card__agent, .ab-breadcrumb, .ab-section-head p) { font-size: var(--gp-label); line-height: 1.3333; font-weight: 500; }
.ns-biz-gp .ab-surface :is(.ab-state, .ab-domain, .ab-proofline, .ab-agent-door code) {
    font-family: var(--ns-font);
    text-transform: none;
    letter-spacing: 0;
}
.ns-biz-gp .ab-surface .ab-state { font-size: .6875rem; line-height: 1.4545; font-weight: 500; padding: 2px 10px; }

/* The AI line: a quiet note, not a gold slab. */
.ns-biz-gp .ab-surface .ab-truthline {
    padding: 12px 16px;
    border-left: 0;
    border-radius: var(--ns-radius);
    background: var(--ns-surface);
    color: var(--ns-text-2);
    font-size: .875rem;
    line-height: 1.4286;
}
.ns-biz-gp .ab-surface .ab-truthline a { color: var(--ns-gold-light); text-decoration: underline; text-underline-offset: 2px; }

/* Flat surfaces: no radial glow, no gradient cards, no lift. */
.ns-biz-gp .ab-surface :is(.ab-card, .ab-featured__card, .ab-panel, .ab-agent-door, .ab-empty) {
    background: var(--ns-card);
    border: 1px solid var(--ns-border);
    border-radius: var(--ns-radius);
    box-shadow: none;
}
.ns-biz-gp .ab-surface .ab-card:hover { border-color: var(--ns-border-strong); transform: none; }
.ns-biz-gp .ab-surface .ab-featured__card { border-color: var(--ns-gold-border); }
.ns-biz-gp .ab-surface .ab-agent-door { border-color: var(--ns-gold-border); }
.ns-biz-gp .ab-surface .ab-controls-wrap { background: var(--ns-bg-deep); border-color: var(--ns-border); }
.ns-biz-gp .ab-surface .ab-next { background: var(--ns-surface); border-color: var(--ns-border); border-radius: var(--ns-radius); }
.ns-biz-gp .ab-surface :is(.ab-monogram, .ab-featured__face) { border-color: var(--ns-gold-border); background: var(--ns-surface); color: var(--ns-gold-light); }
.ns-biz-gp .ab-surface .ab-agent-door__orbit { box-shadow: none; border-color: var(--ns-gold-border); }
.ns-biz-gp .ab-surface .ab-agent-door__pulse { border-color: var(--ns-card); background: var(--ns-gold); }

/* Inputs: Google outlined fields, 48 px. */
.ns-biz-gp .ab-surface :is(.ab-field input, .ab-field select) {
    min-height: 48px;
    border: 1px solid var(--ns-border-strong);
    border-radius: 8px;
    background: var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-font);
}
.ns-biz-gp .ab-surface :is(.ab-field input, .ab-field select):focus { border-color: var(--ns-gold-light); box-shadow: none; outline: 2px solid var(--gp-focus); outline-offset: 1px; }
.ns-biz-gp .ab-surface .ab-field input::placeholder { color: var(--ns-text-2); }

/* Actions: round and 48 px. The one filled step is the page's primary next step; everything else is outlined or tonal. */
.ns-biz-gp .ab-surface .ab-button {
    min-height: 48px;
    padding: 0 24px;
    border-radius: 999px;
    font-family: var(--ns-font);
    font-size: .875rem;
    font-weight: 500;
    letter-spacing: .00625rem;
}
.ns-biz-gp .ab-surface .ab-button--primary,
.ns-biz-gp .ab-surface a.ab-button--primary:is(:link, :visited) { background: var(--ns-gold); border-color: var(--ns-gold); color: var(--ns-on-accent); }
.ns-biz-gp .ab-surface .ab-button--primary:is(:hover, :focus-visible),
.ns-biz-gp .ab-surface a.ab-button--primary:is(:hover, :focus-visible) { background: var(--ns-gold-deep); border-color: var(--ns-gold-deep); color: var(--ns-on-accent); }
.ns-biz-gp .ab-surface .ab-button--quiet { background: transparent; border-color: var(--ns-border-strong); color: var(--ns-text); }
.ns-biz-gp .ab-surface .ab-button--quiet:is(:hover, :focus-visible) { background: var(--ns-surface); border-color: var(--ns-border-strong); }
/* Apply filters and each Featured "Meet ..." sit beside the hero's step: tonal, so the first screen keeps one fill. */
.ns-biz-gp .ab-surface :is(.ab-controls .ab-button--primary, .ab-featured__meet),
.ns-biz-gp .ab-surface a:is(.ab-controls .ab-button--primary, .ab-featured__meet):is(:link, :visited) {
    background: var(--ns-surface);
    border-color: transparent;
    color: var(--ns-text);
}
.ns-biz-gp .ab-surface :is(.ab-controls .ab-button--primary, .ab-featured__meet):is(:hover, :focus-visible),
.ns-biz-gp .ab-surface a:is(.ab-controls .ab-button--primary, .ab-featured__meet):is(:hover, :focus-visible) {
    background: var(--ns-elevated);
    border-color: transparent;
    color: var(--ns-text);
}
.ns-biz-gp .ab-surface :is(.ab-lane-nav a, .ab-lane-nav span, .ab-pagination a, .ab-pagination span, .ab-agent-door__links a) {
    border-radius: 999px;
    border-color: var(--ns-border-strong);
    font-weight: 500;
}
.ns-biz-gp .ab-surface .ab-lane-nav span[aria-current] { background: var(--ns-surface); border-color: var(--ns-border-strong); color: var(--ns-text); }
.ns-biz-gp .ab-surface :is(.ab-card__link, .ab-agent-door__links a) { color: var(--ns-gold-light); font-weight: 500; }
.ns-biz-gp .ab-surface .ab-breadcrumb a:is(:hover, :focus-visible) { color: var(--ns-gold-light); }

/* Tabular figures on every count. */
.ns-biz-gp .ab-surface :is(.ab-census dd, .ab-facts dd, .ab-inventory strong, .ab-section-head, .ab-pagination) {
    font-variant-numeric: tabular-nums;
}
.ns-biz-gp .ab-surface :is(.ab-census dd, .ab-facts dd, .ab-inventory strong) { font-family: var(--ns-font); font-weight: 400; }

.ns-biz-gp :is(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--gp-focus); outline-offset: 2px; }

/* 375 px first: the headline takes the phone size, the first actions stack full width (the page's own rule). */
@media (max-width: 620px) {
    .ns-biz-gp .ab-surface :is(.ab-hero h1, .ab-detail-hero h1) { font-size: 1.75rem; line-height: 1.2857; }
    .ns-biz-gp .ab-surface :is(.ab-section-head h2, .ab-panel h2, .ab-next h2) { font-size: 1.5rem; line-height: 1.3333; }
    .ns-biz-gp .ab-surface :is(.ab-lede, .ab-detail-hero__lede) { font-size: 1rem; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
    .ns-biz-gp .ab-surface :is(.ab-card, .ab-button) { transition: none; }
}
