/* ─────────────────────────────────────────────────────────────────────────────
   panel — the floating segmented bar.

   One component, every template. It replaces the three hand-built `.float`
   bars that had drifted to three different corner radii.

   The shape, from the references Pawel picked:
     [ mark ]  [ item ][ item ][ item ][ item ]  [ CTA ]
   — a dark rounded shell, each item its OWN rounded button rather than bare
   text, the current one outlined in the accent, and one solid accent CTA on
   the end. That segmentation is the whole difference: bare text links read as
   a nav, buttons-in-a-shell read as a device.

   Type is deliberately NOT the reference's grotesk — Space Grotesk, ours,
   tighter and squarer than the body Inter so the bar reads as an object
   sitting ON the page rather than part of it.
   ───────────────────────────────────────────────────────────────────────── */

.np{
  /* knobs — override per template, or per instance with a style attribute */
  --np-shell:#232020;             /* the bar itself                         */
  --np-mark:#131111;              /* logo tile, a shade deeper than shell   */
  --np-btn:transparent;           /* resting button fill                    */
  --np-btn-line:#ffffff26;        /* resting button border                  */
  --np-btn-ink:#ffffffc4;
  --np-btn-ink-hi:#fff;
  --np-accent:#E8C468;            /* current + CTA                          */
  --np-accent-ink:#1B1712;        /* text ON the accent                     */
  --np-radius:17px;
  --np-radius-btn:11px;
  --np-gap:5px;

  /* top/right pinned to auto ON PURPOSE. The component is a <nav>, and a host
     template that styles bare `nav { position:fixed; inset:0 0 auto }` — the
     barber does — leaks top:0 and right:0 into it and stretches the shell
     across the page. Never inherit inset from the page you are dropped into. */
  position:fixed;left:50%;right:auto;top:auto;transform:translateX(-50%);
  bottom:24px;z-index:70;
  display:flex;align-items:center;gap:var(--np-gap);
  padding:6px;border-radius:var(--np-radius);
  background:var(--np-shell);
  box-shadow:0 22px 50px -20px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.18);
  font-family:"Space Grotesk","Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  transition:transform .42s cubic-bezier(.2,.8,.3,1), opacity .28s;
  max-width:calc(100vw - 28px);
}

/* the mark */
.np__mark{
  display:flex;align-items:center;justify-content:center;
  min-width:46px;height:40px;padding:0 12px;
  background:var(--np-mark);border-radius:var(--np-radius-btn);
  color:#fff;font-weight:700;font-size:16px;letter-spacing:-.02em;
  text-decoration:none;flex:none;
}

/* the segmented middle */
/* Scroll, never clip. overflow:hidden here sliced "Prices" in half on a phone
   and swallowed "Stylists" with no sign anything was missing. */
.np__items{display:flex;align-items:center;gap:var(--np-gap);min-width:0;
           overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
           scroll-snap-type:x proximity}
.np__items::-webkit-scrollbar{display:none}
.np__items a{scroll-snap-align:start}
.np__items a{
  display:inline-flex;align-items:center;height:40px;padding:0 15px;
  border-radius:var(--np-radius-btn);
  border:1px solid var(--np-btn-line);background:var(--np-btn);
  color:var(--np-btn-ink);text-decoration:none;white-space:nowrap;
  font-size:14px;font-weight:500;letter-spacing:-.005em;
  transition:color .16s, background .16s, border-color .16s;
}
.np__items a:hover{color:var(--np-btn-ink-hi);background:#ffffff14;border-color:#ffffff3d}

/* the one you are looking at */
.np__items a[aria-current]{
  color:var(--np-accent);border-color:var(--np-accent);background:transparent;
}

/* the end CTA */
.np__cta{
  display:inline-flex;align-items:center;height:40px;padding:0 17px;
  border-radius:var(--np-radius-btn);
  background:var(--np-accent);color:var(--np-accent-ink);
  text-decoration:none;white-space:nowrap;flex:none;
  font-size:14px;font-weight:600;letter-spacing:-.005em;
  transition:filter .16s, transform .16s;
}
.np__cta:hover{filter:brightness(1.07)}
.np__cta:active{transform:translateY(1px)}

/* ── position ─────────────────────────────────────────────────────────────
   Two docks. `middle` is the default — the bar floats over the bottom of the
   page, which keeps it clear of the site's own nav. `top` docks it under the
   top edge; on a template that already has a header the two will compete, so
   that is a per-template decision, not a default. */
.np--top{top:16px;bottom:auto;right:auto}

.np.is-tucked{transform:translateX(-50%) translateY(150%);opacity:0;pointer-events:none}
.np--top.is-tucked{transform:translateX(-50%) translateY(-180%);opacity:0;pointer-events:none}

/* ── small ────────────────────────────────────────────────────────────────
   The second bar. A page can run a full one docked top and this one at the
   bottom — the top says where you are, the bottom keeps the action in
   thumb reach on a phone. */
.np--sm{
  --np-radius:14px;
  --np-radius-btn:9px;
  --np-gap:4px;
  padding:5px;
}
.np--sm .np__mark{min-width:38px;height:33px;padding:0 10px;font-size:14px}
.np--sm .np__items a{height:33px;padding:0 12px;font-size:13px}
.np--sm .np__cta{height:33px;padding:0 14px;font-size:13px}

/* ── light shell, for templates that cannot carry a dark object ───────── */
.np--light{
  --np-shell:#F2EEE9;
  --np-mark:#17140F;
  --np-btn-line:#1714201f;
  --np-btn-ink:#4A443E;
  --np-btn-ink-hi:#17140F;
  box-shadow:0 20px 44px -22px rgba(30,24,18,.4), 0 1px 4px rgba(30,24,18,.09);
}
.np--light .np__items a:hover{background:#17140f0a;border-color:#17142033}

/* ── small screens ────────────────────────────────────────────────────────
   The bar keeps the mark and the CTA — the two things that do a job — and
   drops labels marked expendable rather than shrinking everything to
   unreadable. */
@media (max-width:620px){
  .np__cta .np-long{display:none}
  .np{bottom:14px;padding:5px;gap:4px;--np-radius:15px;--np-radius-btn:10px}
  .np__mark{min-width:40px;height:36px;padding:0 10px;font-size:15px}
  .np__items a{height:36px;padding:0 12px;font-size:13px}
  .np__cta{height:36px;padding:0 14px;font-size:13px}
  .np--top{top:10px}
  .np__items a.np-opt{display:none}
}
@media (min-width:621px){
  .np__cta .np-short{display:none}
}
@media (max-width:400px){
  .np__items a{padding:0 10px;font-size:12.5px}
}

/* On a phone the bar and the assistant launcher both want the bottom-right
   corner and were overlapping at 360, 390 and 430. The bar wins the corner;
   the launcher steps up above it. */
@media (max-width:620px){
  body.np-has-dock .nl-fab{bottom:70px}
  body.np-has-dock .nl-teaser{bottom:126px}
}

@media (prefers-reduced-motion:reduce){
  .np{transition:opacity .2s}
  .np.is-tucked,.np--top.is-tucked{transform:translateX(-50%)}
}
