/* ===========================================================================
   partner-profile.css — the V1 "Card family" profile system, live.
   Ported from the design lab (profile-lab.css + profile-*.html) after the owner
   picked V1 over V3 "Calm". Shared .pf-* vocabulary for all five kinds; the
   template (app/views/pages/partner.php) arranges the blocks per kind.

   Six profile-only values the app tokens don't carry are inlined here (star gold,
   sand chip, halal chip, open/closed) rather than pushed into global tokens.
   ======================================================================== */

.pf { padding: 0 0 40px; }
.pf * { box-sizing: border-box; }

/* top bar: back + share, no cover image */
.pf-top { display:flex; align-items:center; justify-content:space-between; padding:16px var(--gutter) 0; }
.pf-round { width:40px; height:40px; border-radius:var(--r-pill); background:#fff;
  border:1px solid var(--hairline); display:grid; place-items:center; color:var(--teal);
  box-shadow:0 1px 2px rgba(0,0,0,.04); cursor:pointer; }
.pf-round svg { width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.pf-top__set { display:flex; gap:9px; }

/* identity block — replaces the cover photo */
.pf-id { padding:22px var(--gutter) 0; display:flex; gap:15px; align-items:flex-start; }
.pf-id__disc { width:76px; height:76px; border-radius:22px; background:#fff; flex:none;
  border:1px solid var(--hairline-2); overflow:hidden; display:grid; place-items:center;
  box-shadow:0 6px 16px -12px rgba(20,40,45,.7); }
.pf-id__disc img { width:100%; height:100%; object-fit:cover; }
.pf-id__disc--round { border-radius:var(--r-pill); }
.pf-id__mono { font-size:24px; font-weight:700; color:var(--teal); background:var(--teal-surface);
  width:100%; height:100%; display:grid; place-items:center; }
.pf-id__txt { min-width:0; padding-top:2px; }
.pf-eyebrow { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em;
  color:var(--label); margin:0 0 5px; }
.pf-name { font-size:22px; font-weight:700; letter-spacing:-.02em; line-height:1.2; margin:0;
  color:var(--ink); overflow-wrap:anywhere; }
.pf-sub { font-size:13px; line-height:1.5; color:var(--body); margin:6px 0 0; }
.pf-proof { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:8px; font-size:13px; }
.pf-star { color:var(--ink); font-weight:700; display:inline-flex; align-items:center; gap:4px; }
.pf-star::before { content:"\2605"; color:#e8a33d; font-size:1.05em; line-height:1; }
.pf-rev { color:var(--muted); font-weight:500; }
.pf-dot { color:var(--muted-2); }
.pf-area { color:var(--body); font-weight:500; }

/* open / closed state line (venue) */
.pf-state { display:inline-flex; align-items:center; gap:7px; margin-top:9px; font-size:12.5px; }
.pf-state__d { width:8px; height:8px; border-radius:50%; background:#1f8b4d; }
.pf-state__d--shut { background:#b4423a; }
.pf-state__s { font-weight:700; color:#1f8b4d; }
.pf-state__s--shut { color:#b4423a; }
.pf-state__t { color:var(--body); }

/* verified / licence badge */
.pf-badge { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700;
  padding:4px 10px; border-radius:var(--r-pill); background:var(--teal-surface); color:var(--teal);
  margin-top:10px; }
.pf-badge svg { width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2.4;
  stroke-linecap:round; stroke-linejoin:round; }
.pf-badge--quiet { background:var(--app-bg); color:var(--body); font-weight:600; }

/* chips */
.pf-chips { display:flex; flex-wrap:wrap; gap:6px; padding:14px var(--gutter) 0; }
.pf-chip { font-size:11.5px; font-weight:600; color:var(--body); background:#fff;
  border:1px solid var(--hairline); border-radius:var(--r-pill); padding:5px 11px; white-space:nowrap; }
.pf-chip--halal { background:#e8f3ec; color:#1f6b41; border-color:transparent; font-weight:700; }
.pf-chip--food { background:#f7f2ea; color:#7d6234; border-color:transparent; }
.pf-chip--teal { background:var(--teal-surface); color:var(--teal); border-color:transparent; font-weight:700; }

/* action bar — Call primary, WhatsApp/email secondary, the rest a quiet 2-col grid */
.pf-act { padding:20px var(--gutter) 0; }
.pf-act__main { display:flex; gap:10px; }
.pf-btn { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:50px; border-radius:var(--r-lg); font-size:14.5px; font-weight:700; border:none;
  cursor:pointer; font-family:inherit; text-decoration:none;
  transition:background var(--dur) var(--ease), transform 140ms var(--ease); }
.pf-btn:active { transform:scale(.985); }
.pf-btn svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; }
.pf-btn--call { background:var(--teal); color:#fff; }
.pf-btn--call:hover { background:var(--teal-press); }
.pf-btn--wa { background:#fff; color:var(--teal); border:1px solid var(--hairline); }
.pf-btn--wa:hover { background:var(--teal-surface); }
.pf-act__more { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.pf-mini { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px;
  border-radius:var(--r-lg); background:#fff; border:1px solid var(--hairline);
  font-size:13px; font-weight:600; color:var(--body); text-decoration:none; cursor:pointer; }
.pf-mini:hover { border-color:var(--teal); color:var(--teal); }
.pf-mini svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }

/* section heading */
.pf-h { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  color:var(--label); margin:0; padding:30px var(--gutter) 11px; display:flex; align-items:baseline; gap:8px; }
.pf-h__n { font-size:12px; font-weight:600; color:var(--muted); text-transform:none; letter-spacing:0; }

/* card */
.pf-card { margin:0 var(--gutter); background:#fff; border:1px solid var(--hairline);
  border-radius:var(--r-card); overflow:hidden; }
.pf-card--pad { padding:16px 17px; }
.pf-card--pad p { margin:0; font-size:13.5px; line-height:1.6; color:var(--body); }
.pf-rate { font-size:22px; font-weight:700; letter-spacing:-.03em; color:var(--ink); }
.pf-rate__note { margin-top:9px !important; font-size:12.5px !important; color:var(--body); }

/* fact rows inside a card */
.pf-row { display:flex; align-items:center; gap:12px; padding:13px 16px;
  border-bottom:1px solid var(--hairline-2); text-decoration:none; }
.pf-row:last-child { border-bottom:0; }
.pf-row__ic { width:34px; height:34px; border-radius:11px; background:var(--app-bg); flex:none;
  display:grid; place-items:center; color:var(--teal); }
.pf-row__ic svg { width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.pf-row__txt { min-width:0; flex:1; }
.pf-row__l { display:block; font-size:11.5px; color:var(--label); font-weight:600; margin:0 0 2px; }
.pf-row__v { display:block; font-size:13.5px; color:var(--ink); font-weight:600; margin:0; overflow-wrap:anywhere; }
.pf-row__go { color:var(--muted-2); flex:none; }
.pf-row__go svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; }

/* spec grid (guide vehicle) */
.pf-specs { display:grid; grid-template-columns:1fr 1fr; }
.pf-sp { padding:14px 16px; border-bottom:1px solid var(--hairline-2); }
.pf-sp:nth-child(odd) { border-right:1px solid var(--hairline-2); }
.pf-sp__l { font-size:11px; color:var(--label); font-weight:600; margin:0 0 3px; text-transform:uppercase; letter-spacing:.04em; }
.pf-sp__v { font-size:14px; color:var(--ink); font-weight:700; margin:0; }

/* service / works-on rows */
.pf-item { padding:14px 16px; border-bottom:1px solid var(--hairline-2); }
.pf-item:last-child { border-bottom:0; }
.pf-item__t { font-size:13.5px; font-weight:700; color:var(--ink); margin:0; }
.pf-item__d { font-size:12.5px; line-height:1.55; color:var(--body); margin:5px 0 0; }

/* disclosure (week hours, faq) */
.pf-more > summary { list-style:none; cursor:pointer; display:flex; align-items:center;
  justify-content:space-between; gap:8px; padding:13px 16px; font-size:13px; font-weight:600;
  color:var(--teal); border-top:1px solid var(--hairline-2); }
.pf-more > summary::-webkit-details-marker { display:none; }
.pf-more > summary svg { width:16px; height:16px; transition:transform var(--dur) var(--ease);
  stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pf-more[open] > summary svg { transform:rotate(180deg); }

/* socials */
.pf-soc { display:flex; gap:9px; padding:0 var(--gutter); }
.pf-soc__a { width:44px; height:44px; border-radius:var(--r-lg); background:#fff;
  border:1px solid var(--hairline); display:grid; place-items:center; color:var(--body); }
.pf-soc__a:hover { color:var(--teal); border-color:var(--teal); }
.pf-soc__a svg { width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }

/* honesty note + placeholder-identity notice */
.pf-note { margin:26px var(--gutter) 0; font-size:11.5px; line-height:1.6; color:var(--muted); }
.pf-note b { color:var(--body); }
.pf-mock { margin:14px var(--gutter) 0; background:#fffaf2; border:1px solid #f0e2cc;
  border-radius:12px; padding:10px 12px; font-size:11.5px; line-height:1.55; color:#7d6234; }
.pf-eyebrow{display:block;}
.pf-lead{margin:8px 0 0;font-size:14.5px;line-height:1.55;color:var(--c-muted);}
