/* vendor-profile page styles: static, so they're served as a cached file instead of inline in every page (was marketplace/vendors/profile/_styles.ejs). */
  .vp, .vp-dlg{ --orange:#fe5c0e; --orange-2:#e14f0c; --orange-soft:#fff2ec; --ink:#0f1220; --body:#3b3f4a; --muted:#6b7280; --line:#e9e6e1; --soft:#f6f4f1; --bg:#fbfaf8; --blue:#1d9bf0;
    color:var(--ink); font-family:Manrope, system-ui, sans-serif; -webkit-font-smoothing:antialiased; }
  .vp{ background:var(--bg); }
  .vp *, .vp *::before, .vp *::after, .vp-dlg *{ box-sizing:border-box; }
  .vp-dlg{ position:fixed; }  /* the dialog sits outside .vp, so it gets the same tokens above */
  .vp a{ color:inherit; }
  .vp-wrap{ max-width:76rem; margin:0 auto; padding:0 20px; }
  @media (min-width:768px){ .vp-wrap{ padding:0 32px; } }
  .vp-i{ width:18px; height:18px; flex:none; }
  .vp a:focus-visible, .vp button:focus-visible, .vp summary:focus-visible{ outline:3px solid var(--orange); outline-offset:2px; border-radius:8px; }

  /* ---------- header ---------- */
  .vp-crumbs{ display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:24px 0 0; list-style:none; font-size:13px; color:var(--muted); }
  .vp-crumbs li + li::before{ content:"›"; margin-right:6px; color:#c4c0ba; }
  .vp-crumbs a{ text-decoration:none; } .vp-crumbs a:hover{ color:var(--ink); text-decoration:underline; }
  .vp-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 24px; padding:14px 0 22px; }
  .vp-title{ display:flex; align-items:center; gap:10px; margin:0; font-size:clamp(28px,4vw,42px); font-weight:780; letter-spacing:-.03em; line-height:1.1; }
  .vp-badge{ width:26px; height:26px; flex:none; }
  .vp-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:12px; font-size:14.5px; color:var(--muted); }
  .vp-meta > span{ display:inline-flex; align-items:center; gap:6px; }
  .vp-chip{ padding:5px 11px; border-radius:999px; background:#fff; border:1px solid var(--line); font-size:13px; font-weight:650; color:var(--body); }
  .vp-chip.feat{ background:var(--orange-soft); border-color:#ffd9c6; color:var(--orange-2); }
  .vp-rate b{ color:var(--ink); } .vp-rate .vp-i{ color:#f5a524; fill:#f5a524; }
  .vp-new{ color:#15803d; font-weight:650; }
  .vp-tools{ display:flex; gap:8px; }
  .vp-tool{ display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 14px; border:1px solid var(--line); border-radius:999px; background:#fff; font:inherit; font-size:14px; font-weight:650; color:var(--ink); cursor:pointer; text-decoration:none; }
  .vp-tool:hover{ border-color:#cfc9c1; }

  /* ---------- layout ---------- */
  .vp-grid{ display:grid; gap:28px; padding-bottom:40px; }
  @media (min-width:1024px){ .vp-grid{ grid-template-columns:minmax(0,1fr) 360px; gap:48px; } }

  .vp-media{ position:relative; overflow:hidden; border-radius:24px; background:var(--soft); aspect-ratio:4/3; }
  @media (min-width:1024px){ .vp-media{ aspect-ratio:16/10; } }
  .vp-media img{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; display:block; }
  .vp-fallback{ position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(135deg,#fff2ec,#f3ece4); font-size:clamp(56px,10vw,96px); font-weight:780; letter-spacing:-.04em; color:#d9b8a5; }
  .vp-media img ~ .vp-fallback{ display:none; }
  .vp-media.is-broken img{ display:none; } .vp-media.is-broken .vp-fallback{ display:grid; }

  /* photo mosaic (2+ photos): main photo + up to 4; phones show the main photo only */
  .vp-mosaic{ position:relative; display:grid; gap:8px; overflow:hidden; border-radius:24px; aspect-ratio:4/3; }
  @media (min-width:768px){
    .vp-mosaic{ aspect-ratio:16/10; grid-template-rows:1fr 1fr; }
    .vp-mosaic.n2{ grid-template-columns:2fr 1fr; grid-template-rows:1fr; }
    .vp-mosaic.n3{ grid-template-columns:2fr 1fr; }
    .vp-mosaic.n4, .vp-mosaic.n5{ grid-template-columns:2fr 1fr 1fr; }
    .vp-mosaic .vp-cell:first-child{ grid-row:1 / span 2; }
    .vp-mosaic.n2 .vp-cell:first-child{ grid-row:auto; }
    .vp-mosaic.n4 .vp-cell:nth-child(4){ grid-column:3; grid-row:1 / span 2; }
  }
  .vp-cell{ position:relative; display:block; width:100%; height:100%; min-height:0; padding:0; border:0; overflow:hidden; background:var(--soft); cursor:zoom-in; }
  .vp-cell img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; display:block; transition:transform .5s ease, filter .2s ease; }
  .vp-cell:hover img{ transform:scale(1.03); filter:brightness(.94); }
  .vp-cell.is-broken img{ visibility:hidden; }
  @media (max-width:767px){ .vp-mosaic .vp-cell:not(:first-child){ display:none; } }
  .vp-all{ position:absolute; right:14px; bottom:14px; z-index:2; display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 14px; border:0; border-radius:999px; background:#fff; color:var(--ink); font:inherit; font-size:14px; font-weight:750; box-shadow:0 10px 24px -10px rgba(15,18,32,.5); cursor:pointer; }
  .vp-all:hover{ background:var(--soft); }
  .vp-all .vp-i{ width:16px; height:16px; }
  .vp-media .vp-zoom{ position:absolute; inset:0; z-index:1; width:100%; height:100%; padding:0; border:0; background:none; cursor:zoom-in; }

  /* lightbox */
  .vp-lb{ width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:0; border:0; background:#0b0d16; color:#fff; font-family:Manrope, system-ui, sans-serif; overscroll-behavior:contain; }
  .vp-lb::backdrop{ background:#0b0d16; }
  .vp-lb[open]{ display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
  .vp-lb-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; }
  .vp-lb-count{ font-size:14px; font-weight:700; color:rgba(255,255,255,.8); }
  .vp-lb-x{ display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:24px; cursor:pointer; }
  .vp-lb-x:hover{ background:rgba(255,255,255,.2); }
  .vp-lb-stage{ position:relative; display:grid; place-items:center; min-height:0; padding:0 8px; touch-action:pan-y; user-select:none; }
  /* sized against the screen itself (a % of the grid row doesn't resolve), so tall and wide photos always fit:
     full width minus the side padding; full height minus the top bar (68px) and caption (~76px) */
  .vp-lb-stage img{ display:block; width:auto; height:auto; max-width:calc(100vw - 16px); max-height:calc(100dvh - 144px); object-fit:contain; border-radius:6px; transition:transform .25s ease, opacity .2s ease; }
  @supports not (height:100dvh){ .vp-lb-stage img{ max-height:calc(100vh - 144px); } }
  .vp-lb-stage img.is-loading{ opacity:.35; }
  .vp-lb-nav{ position:absolute; top:50%; translate:0 -50%; display:grid; place-items:center; width:48px; height:48px; border:0; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; }
  .vp-lb-nav:hover{ background:rgba(255,255,255,.26); }
  .vp-lb-nav[disabled]{ opacity:.25; cursor:default; }
  .vp-lb-nav.prev{ left:14px; } .vp-lb-nav.next{ right:14px; }
  .vp-lb-nav .vp-i{ width:22px; height:22px; }
  @media (max-width:640px){ .vp-lb-nav{ display:none; } }
  .vp-lb-cap{ min-height:52px; margin:0; padding:12px 20px calc(16px + env(safe-area-inset-bottom)); text-align:center; font-size:14.5px; line-height:1.5; color:rgba(255,255,255,.85); }
  .vp-lb :focus-visible{ outline:3px solid var(--orange, #fe5c0e); outline-offset:2px; }

  .vp-facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px; }
  @media (min-width:640px){ .vp-facts{ grid-template-columns:repeat(4,1fr); } }
  .vp-fact{ padding:14px 16px; border-radius:16px; background:#fff; border:1px solid var(--line); }
  .vp-fact small{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .vp-fact b{ display:block; margin-top:4px; font-size:15.5px; font-weight:720; line-height:1.3; }

  .vp-sec{ margin-top:36px; }
  .vp-sec > h2{ margin:0 0 14px; font-size:22px; font-weight:740; letter-spacing:-.02em; }
  .vp-about{ font-size:16px; line-height:1.75; color:var(--body); }
  .vp-about p{ margin:0 0 12px; } .vp-about a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--orange); }
  .vp-about.is-clamped{ max-height:12.5em; overflow:hidden; -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent); mask-image:linear-gradient(180deg,#000 70%,transparent); }
  .vp-more{ margin-top:6px; padding:0; border:0; background:none; font:inherit; font-size:14.5px; font-weight:700; color:var(--ink); text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:3px; cursor:pointer; }

  .vp-socials{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .vp-soc{ display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:13.5px; font-weight:650; text-decoration:none; }
  .vp-soc:hover{ border-color:#cfc9c1; }

  /* services */
  .vp-svcs{ display:grid; gap:14px; }
  @media (min-width:640px){ .vp-svcs{ grid-template-columns:1fr 1fr; } }
  .vp-svc{ display:flex; flex-direction:column; padding:22px; border-radius:20px; background:#fff; border:1px solid var(--line); transition:border-color .2s ease, box-shadow .2s ease; }
  .vp-svc:hover{ border-color:#ddd8d1; box-shadow:0 20px 40px -32px rgba(15,18,32,.4); }
  .vp-svc h3{ margin:0; font-size:17px; font-weight:720; }
  .vp-svc .from{ margin-top:8px; font-size:12.5px; color:var(--muted); }
  .vp-svc .amt{ font-size:24px; font-weight:780; letter-spacing:-.02em; }
  .vp-svc ul{ display:grid; gap:8px; margin:16px 0 18px; padding:16px 0 0; border-top:1px solid var(--line); list-style:none; }
  .vp-svc li{ display:flex; gap:9px; font-size:14.5px; line-height:1.45; color:var(--body); }
  .vp-svc li .vp-i{ width:16px; height:16px; margin-top:2px; color:#16a34a; }
  .vp-svc .ask{ margin-top:auto; align-self:flex-start; padding:0; border:0; background:none; font:inherit; font-size:14.5px; font-weight:700; color:var(--orange-2); cursor:pointer; }
  .vp-svc .ask:hover{ text-decoration:underline; text-underline-offset:3px; }
  .vp-note{ margin-top:14px; padding:14px 16px; border-radius:16px; background:var(--soft); font-size:13.5px; line-height:1.6; color:var(--muted); }

  /* reviews */
  .vp-empty{ display:flex; align-items:center; gap:16px; padding:22px; border-radius:20px; background:#fff; border:1px dashed var(--line); }
  .vp-empty .ic{ display:grid; place-items:center; width:46px; height:46px; flex:none; border-radius:14px; background:#fff7e6; color:#f5a524; }
  .vp-empty b{ display:block; font-size:15.5px; } .vp-empty span{ display:block; margin-top:2px; font-size:14px; color:var(--muted); }
  .vp-empty a{ color:var(--ink); font-weight:700; text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:3px; }
  a.vp-rate{ text-decoration:none; } a.vp-rate:hover b{ text-decoration:underline; }
  .vp-rev-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin-bottom:14px; }
  .vp-rev-head h2{ margin:0; font-size:22px; font-weight:740; letter-spacing:-.02em; } .vp-rev-head h2 span{ color:var(--muted); font-weight:650; }
  .vp-stars{ display:inline-flex; gap:2px; vertical-align:middle; }
  .vp-stars svg{ width:16px; height:16px; fill:#e4dfd8; } .vp-stars svg.on{ fill:#f5a524; } .vp-stars svg.half{ fill:url(#vpHalfStar); }
  .vp-rev-sum{ display:grid; gap:18px; padding:20px; border-radius:20px; background:#fff; border:1px solid var(--line); }
  @media (min-width:640px){ .vp-rev-sum{ grid-template-columns:150px minmax(0,1fr); align-items:center; gap:28px; } }
  .vp-rev-avg b{ display:block; font-size:44px; font-weight:800; letter-spacing:-.04em; line-height:1; }
  .vp-rev-avg .vp-stars{ margin-top:8px; } .vp-rev-avg .vp-stars svg{ width:19px; height:19px; }
  .vp-rev-avg small{ display:block; margin-top:6px; font-size:13px; color:var(--muted); }
  .vp-dist{ display:grid; gap:7px; margin:0; padding:0; list-style:none; }
  .vp-dist li{ display:grid; grid-template-columns:52px minmax(0,1fr) 28px; align-items:center; gap:10px; font-size:13px; color:var(--body); }
  .vp-dist li > i{ display:block; height:8px; border-radius:0 4px 4px 0; }
  .vp-dist li > i > i{ display:block; height:8px; border-radius:0 4px 4px 0; background:#f5a524; }
  .vp-dist .n{ text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
  .vp-revs{ display:grid; gap:12px; margin:12px 0 0; padding:0; list-style:none; }
  .vp-rev{ padding:20px; border-radius:20px; background:#fff; border:1px solid var(--line); }
  .vp-rev[hidden]{ display:none; }
  .vp-rev-top{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
  .vp-booked{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:#15803d; }
  .vp-booked .vp-i{ width:14px; height:14px; }
  .vp-rev h3{ margin:10px 0 0; font-size:16px; font-weight:740; }
  .vp-rev-body{ margin:8px 0 0; font-size:15px; line-height:1.7; color:var(--body); white-space:pre-line; overflow-wrap:anywhere; }
  .vp-rev-by{ margin:12px 0 0; font-size:13.5px; color:var(--muted); } .vp-rev-by b{ color:var(--ink); }
  .vp-rev-reply{ margin-top:14px; padding:14px 16px; border-left:3px solid var(--orange); border-radius:0 14px 14px 0; background:var(--soft); }
  .vp-rev-reply b{ font-size:13.5px; } .vp-rev-reply p{ margin:4px 0 0; font-size:14.5px; line-height:1.65; color:var(--body); white-space:pre-line; overflow-wrap:anywhere; }
  .vp-rev-more{ max-width:280px; margin:14px 0 0; }

  /* safety + claim */
  .vp-safe{ display:flex; gap:12px; padding:16px 18px; border-radius:18px; background:#fffbeb; border:1px solid #fde68a; font-size:14px; line-height:1.55; color:#78350f; }
  .vp-safe .vp-i{ color:#d97706; margin-top:2px; }
  .vp-claim{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; padding:22px; border-radius:20px; background:var(--ink); color:#fff; }
  .vp-claim b{ display:block; font-size:17px; } .vp-claim span{ display:block; margin-top:3px; font-size:14px; color:rgba(255,255,255,.65); }
  .vp-claim a{ display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border-radius:999px; background:#fff; color:var(--ink); font-size:14.5px; font-weight:750; text-decoration:none; }
  .vp-verified{ display:flex; gap:12px; padding:16px 18px; border-radius:18px; background:#eff8ff; border:1px solid #cfe8fd; font-size:14px; line-height:1.55; color:#0c4a6e; }
  .vp-verified .vp-i{ color:var(--blue); margin-top:2px; }
  .vp-report{ display:inline-flex; align-items:center; gap:6px; margin-top:18px; padding:0; border:0; background:none; font:inherit; font-size:13.5px; color:var(--muted); cursor:pointer; }
  .vp-report:hover{ color:#b91c1c; text-decoration:underline; }
  .vp-managed{ display:flex; gap:12px; padding:16px 18px; border-radius:18px; background:#fff; border:1px solid var(--line); font-size:14px; line-height:1.55; color:var(--body); }
  .vp-managed .vp-i{ color:var(--ink); margin-top:2px; }

  /* ---------- contact card (sticky on desktop) ---------- */
  .vp-aside{ align-self:start; }
  @media (min-width:1024px){ .vp-aside{ position:sticky; top:88px; } }
  .vp-card{ padding:22px; border-radius:24px; background:#fff; border:1px solid var(--line); box-shadow:0 30px 60px -44px rgba(15,18,32,.45); }
  .vp-card .from{ font-size:13px; color:var(--muted); } .vp-card .amt{ font-size:28px; font-weight:800; letter-spacing:-.03em; }
  .vp-card .amt-none{ font-size:17px; font-weight:720; }
  .vp-btn{ display:flex; align-items:center; justify-content:center; gap:9px; width:100%; height:50px; margin-top:12px; border:0; border-radius:999px;
    background:var(--orange); color:#fff; font:inherit; font-size:15.5px; font-weight:750; text-decoration:none; cursor:pointer; box-shadow:0 14px 28px -14px rgba(254,92,14,.8); transition:background .15s ease, transform .15s ease; }
  .vp-btn:hover{ background:var(--orange-2); transform:translateY(-1px); }
  .vp-btn.ghost{ background:#fff; color:var(--ink); box-shadow:inset 0 0 0 1.5px var(--line); }
  .vp-btn.ghost:hover{ box-shadow:inset 0 0 0 1.5px #cfc9c1; }
  .vp-btn.wa{ margin-top:0; background:#fff; color:#0f1220; box-shadow:inset 0 0 0 1.5px #25D366; }
  .vp-btn.wa:hover{ background:#f0fdf4; box-shadow:inset 0 0 0 2px #1ebe5a; }
  .vp-wa-logo{ width:22px; height:22px; }
  .vp-reveal{ display:grid; gap:8px; margin-top:12px; }
  .vp-reveal[hidden]{ display:none; }
  .vp-line{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:14px; background:var(--soft); font-size:15px; font-weight:650; text-decoration:none; }
  .vp-line:hover{ background:#efebe5; } .vp-line.off{ color:var(--muted); font-weight:500; }
  .vp-trust{ display:flex; gap:8px; margin-top:14px; font-size:12.5px; line-height:1.5; color:var(--muted); }
  .vp-trust .vp-i{ width:15px; height:15px; margin-top:1px; color:var(--blue); }
  .vp-trust.warn .vp-i{ color:#d97706; }
  .vp-reply{ display:flex; align-items:center; gap:7px; margin-top:8px; font-size:13.5px; font-weight:700; color:#15803d; }
  .vp-reply .vp-i{ width:16px; height:16px; }
  .vp-fhint{ display:block; margin-top:6px; padding:8px 10px; border-radius:10px; background:#fffbeb; font-size:12.5px; line-height:1.45; color:#92400e; }
  .vp-fhint[hidden]{ display:none; }

  /* mobile bottom bar */
  .vp-bar{ position:fixed; left:0; right:0; bottom:0; z-index:40; display:flex; align-items:center; gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96); backdrop-filter:blur(10px); border-top:1px solid var(--line); }
  .vp-bar .p{ flex:1; min-width:0; font-size:12.5px; color:var(--muted); } .vp-bar .p b{ display:block; font-size:16px; color:var(--ink); }
  .vp-bar .vp-btn{ width:auto; height:46px; margin:0; padding:0 20px; }
  @media (min-width:1024px){ .vp-bar{ display:none; } }
  @media (max-width:1023px){ body{ padding-bottom:76px; } }

  /* ad (unclaimed listings only) */
  .vp-ad{ position:relative; max-width:728px; margin:8px auto 40px; padding:30px 12px 12px; border:1px solid #ece8e2; border-radius:18px; background:#faf8f5; text-align:center; }
  .vp-ad-label{ position:absolute; top:10px; left:0; right:0; font:600 10.5px/1 system-ui, sans-serif; letter-spacing:.18em; text-transform:uppercase; color:#a8a29e; }
  .vp-ad ins.adsbygoogle{ min-height:120px; }
  .vp-ad:has(ins[data-ad-status="unfilled"]){ display:none; }

  /* related */
  .vp-rel{ padding:24px 0 72px; }
  .vp-rel-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; }
  .vp-rel-head h2{ margin:0; font-size:24px; font-weight:760; letter-spacing:-.02em; } .vp-rel-head p{ margin:4px 0 0; font-size:14px; color:var(--muted); }
  .vp-rel-head a{ font-size:14.5px; font-weight:700; text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:3px; white-space:nowrap; }
  .vp-rel-grid{ display:grid; gap:16px; grid-template-columns:repeat(2,1fr); }
  @media (min-width:1024px){ .vp-rel-grid{ grid-template-columns:repeat(4,1fr); } }
  .vp-rv{ display:block; overflow:hidden; border-radius:20px; background:#fff; border:1px solid var(--line); text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
  .vp-rv:hover{ transform:translateY(-3px); box-shadow:0 24px 44px -32px rgba(15,18,32,.45); }
  .vp-rv .im{ position:relative; aspect-ratio:4/3; background:var(--soft); overflow:hidden; }
  .vp-rv img{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; transition:transform .5s ease; display:block; }
  .vp-rv:hover img{ transform:scale(1.05); }
  .vp-rv .im .fb{ position:absolute; inset:0; display:grid; place-items:center; font-size:32px; font-weight:780; color:#d9b8a5; background:linear-gradient(135deg,#fff2ec,#f3ece4); }
  .vp-rv .im img + .fb{ display:none; }
  .vp-rv .im.is-broken img{ display:none; } .vp-rv .im.is-broken .fb{ display:grid; }
  .vp-rv .tx{ padding:14px 16px 16px; } .vp-rv b{ display:block; font-size:15.5px; line-height:1.3; } .vp-rv small{ display:block; margin-top:3px; font-size:13px; color:var(--muted); }

  /* dialogs */
  .vp-dlg{ width:min(520px, calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:0; border:0; border-radius:24px; background:#fff; color:var(--ink); font-family:Manrope, system-ui, sans-serif; box-shadow:0 40px 100px -30px rgba(15,18,32,.6); }
  .vp-dlg::backdrop{ background:rgba(15,18,32,.55); backdrop-filter:blur(3px); }
  .vp-dlg form{ padding:24px; }
  .vp-dlg h2{ margin:0; font-size:21px; font-weight:760; letter-spacing:-.02em; }
  .vp-dlg .sub{ margin:4px 0 18px; font-size:14px; color:var(--muted); }
  .vp-x{ position:absolute; top:14px; right:14px; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:50%; background:var(--soft); font-size:20px; cursor:pointer; }
  .vp-f{ margin-bottom:12px; }
  .vp-f label{ display:block; margin-bottom:6px; font-size:13px; font-weight:700; color:var(--body); }
  .vp-f input, .vp-f textarea, .vp-f select{ width:100%; padding:12px 14px; border:0; border-bottom:2px solid transparent; border-radius:12px; background:var(--soft); font:inherit; font-size:16px; color:var(--ink); }
  .vp-f input:focus, .vp-f textarea:focus, .vp-f select:focus{ outline:0; background:#fff; border-bottom-color:var(--orange); box-shadow:0 0 0 1px var(--line); }
  .vp-f textarea{ min-height:110px; resize:vertical; }
  .vp-row2{ display:grid; gap:12px; } @media (min-width:520px){ .vp-row2{ grid-template-columns:1fr 1fr; } } .vp-row2 .vp-f{ margin-bottom:0; } .vp-row2{ margin-bottom:12px; }
  .vp-fine{ margin:10px 0 0; text-align:center; font-size:12px; line-height:1.5; color:var(--muted); }
  .vp-fine a{ color:inherit; }
  .vp-f input[aria-invalid="true"], .vp-f textarea[aria-invalid="true"], .vp-f select[aria-invalid="true"]{ border-bottom-color:#dc2626; }
  .vp-ferr{ display:block; margin-top:5px; font-size:12.5px; font-weight:600; color:#b91c1c; }
  .vp-ferr:empty{ display:none; }
  .vp-alert{ margin:0 0 14px; padding:12px 14px; border-radius:14px; background:#fef2f2; border:1px solid #fecaca; font-size:14px; line-height:1.5; color:#991b1b; }
  .vp-alert[hidden]{ display:none; }
  .vp-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
  .vp-btn[disabled]{ opacity:.7; cursor:progress; transform:none; }
  .vp-done{ padding:34px 24px 26px; text-align:center; }
  .vp-done[hidden]{ display:none; }
  .vp-done .ok{ display:grid; place-items:center; width:56px; height:56px; margin:0 auto 14px; border-radius:50%; background:#dcfce7; color:#15803d; }
  .vp-done .ok .vp-i{ width:26px; height:26px; }
  .vp-done p{ margin:8px auto 0; max-width:380px; font-size:14.5px; line-height:1.6; color:var(--body); }
  .vp-done .vp-btn{ max-width:260px; margin:20px auto 0; }

  @media (prefers-reduced-motion:reduce){ .vp-btn, .vp-rv, .vp-rv img, .vp-svc{ transition:none; } }
