/* ════════════════════════════════════════════════════════════════
   PRESNSE — SERVICE · GOOGLE BUSINESS PROFILE  ·  per-page module layer
   ----------------------------------------------------------------
   Archetype: SERVICE (ranking). Copy source of truth:
   project/handoff/seo-page-packs/05-service-gbp-page-pack.md.
   Structure follows homepage/wireframe-service-gbp.html. Service-page
   FAMILY grammar, but the signature is a simulated LOCAL MAP + ranked
   local-pack (modelled on home.css .mapfig) rendered as the dark band.
   Map paints a *simulated* Google Map (foundation --map-* / --rk-* / --rival
   simulacra tokens), not a PRESNSE surface. No fabricated ratings.
   Consumes tokens from foundation.css ONLY — no raw colour.
   ════════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────────────────────────
   M01 · HERO  [INVENTED — mini local-pack rank list leads right]
   ─────────────────────────────────────────────────────────────── */
.gbp-hero{padding-top:clamp(20px,3vw,40px);}
.gbp-hero .mod-body{padding-block:clamp(var(--sp-xl),4vw,var(--sp-4xl));}
.gbp-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:start;}
.gbp-hero h1{font-size:clamp(2.1rem,4.3vw,3.7rem);line-height:1.04;letter-spacing:-.035em;font-weight:600;margin-top:20px;}
.gbp-hero h1 .sym{font-family:var(--serif);font-style:italic;font-weight:400;}
.gbp-hero .lede{margin-top:22px;max-width:52ch;font-size:clamp(1rem,1.15vw,1.14rem);line-height:1.6;color:var(--ink-soft);}
.gbp-hero .lede.two{margin-top:14px;font-size:.98rem;color:var(--muted);}
.gbp-hero .lede .zh{font-family:"Noto Sans HK","PingFang HK",var(--sans);}
.gbp-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}

/* mini local-pack: rivals hold the pack, the clinic is off-pack */
.packmini{border:1px dashed var(--line-em);background:var(--paper-card);box-shadow:var(--shadow-card);}
.packmini-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 18px;border-bottom:1px dashed var(--line-dash);
  font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.packmini-head .q{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:500;text-transform:none;letter-spacing:.02em;}
.packmini-head .q .mag{width:13px;height:13px;color:var(--faint);}
.prow{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;
  padding:13px 18px;border-bottom:1px dashed var(--line-soft);}
.prow:last-of-type{border-bottom:none;}
.prow .pin{width:13px;height:13px;color:var(--rival);flex:0 0 auto;}
.prow .rk{font-family:var(--mono);font-size:.72rem;font-weight:600;color:var(--faint);}
.prow .nm{font-size:.92rem;color:var(--ink);}
.prow .nm .zh{font-family:"Noto Sans HK","PingFang HK",var(--sans);}
.prow .tier{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--lime-ink);white-space:nowrap;}
.prow.top .pin{color:var(--rk-strong);}
.prow.you{background:var(--amber-veil);}
.prow.you .pin{color:var(--rk-weak);}
.prow.you .rk{color:var(--amber);}
.prow.you .tier{color:var(--amber);}
.packmini-foot{padding:11px 18px;border-top:1px dashed var(--line-dash);
  font-family:var(--mono);font-size:var(--label-xs);letter-spacing:.05em;color:var(--faint);display:flex;align-items:center;gap:8px;}
.packmini-foot .d{width:5px;height:5px;border-radius:50%;background:var(--faint);flex:0 0 auto;}

/* ───────────────────────────────────────────────────────────────
   M02 · SME ANGLE  [INVENTED — fragments + two-situation rail]
   ─────────────────────────────────────────────────────────────── */
.gbp-sme{border-top:1px dashed var(--line-dash);}
.gbp-sme .mod-body{padding-block:clamp(40px,6vw,80px);}
.gbp-cap{font-family:var(--mono);font-size:var(--label);letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);display:inline-flex;align-items:center;gap:9px;}
.gbp-cap .d{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px var(--lime-glow);}
.gbp-sme h2{font-size:var(--h2);font-weight:600;letter-spacing:var(--tr-display);line-height:var(--lead-display);max-width:22ch;margin-top:18px;}
.gbp-sme h2 .sym{font-family:var(--serif);font-style:italic;font-weight:400;}
.gbp-sme-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4.5vw,60px);margin-top:clamp(28px,3.5vw,44px);align-items:start;}
.gbp-lead{border-top:2px solid var(--ink);padding-top:20px;}
.gbp-lead p{font-size:1rem;line-height:1.62;color:var(--ink-soft);margin-top:14px;max-width:56ch;}
.gbp-lead p:first-of-type{margin-top:0;}
.gbp-lead .big{font-size:clamp(1.18rem,1.9vw,1.5rem);line-height:1.32;color:var(--ink);font-weight:500;letter-spacing:-.01em;max-width:30ch;}
.gbp-lead .big .sym{font-family:var(--serif);font-style:italic;font-weight:400;}
.gbp-lead .risk{margin-top:18px;font-family:var(--mono);font-size:var(--label-md);color:var(--muted);
  border-left:2px solid var(--lime);padding-left:16px;max-width:54ch;line-height:1.55;text-transform:none;letter-spacing:.01em;}
/* the two clinic situations as labelled cells */
.gbp-situ{align-self:start;border:1px dashed var(--line-rule);background:var(--bg);}
.gbp-situ .sc{padding:20px 22px;border-bottom:1px dashed var(--line-dash);}
.gbp-situ .sc:last-child{border-bottom:none;}
.gbp-situ .seg-lbl{font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--lime-ink);display:flex;align-items:center;gap:9px;}
.gbp-situ .seg-lbl .ico{width:16px;height:16px;color:var(--ink);}
.gbp-situ h3{font-size:1.02rem;font-weight:600;margin-top:12px;letter-spacing:-.01em;}
.gbp-situ p{font-size:.88rem;color:var(--ink-soft);line-height:1.55;margin-top:8px;}

/* ───────────────────────────────────────────────────────────────
   M03 · DEFINITION CARD  [INVENTED — AI-extractable]
   ─────────────────────────────────────────────────────────────── */
.gbp-def{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(28px,4vw,56px);
  margin-top:40px;border:1px solid var(--line-mid);border-top:2px solid var(--ink);
  background:var(--paper-card);padding:clamp(26px,3.4vw,48px);align-items:start;}
.gbp-def .qmark{font-family:var(--serif);font-size:3.4rem;line-height:.6;color:var(--lime-deep);display:block;}
.gbp-def blockquote{font-size:clamp(1.1rem,1.65vw,1.45rem);line-height:1.34;letter-spacing:-.01em;font-weight:500;color:var(--ink);margin-top:8px;}
.gbp-def blockquote .sym{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--lime-ink);}
.gbp-def .also{font-size:.95rem;color:var(--ink-soft);line-height:1.6;margin-top:18px;max-width:54ch;}
.gbp-record{align-self:start;border:1px dashed var(--line-soft);background:var(--bg);padding:22px 24px;}
.gbp-record .gl{font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:14px;}
.gbp-record ul{list-style:none;display:flex;flex-direction:column;gap:0;}
.gbp-record li{font-size:.86rem;color:var(--ink);padding:9px 0;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:10px;}
.gbp-record li:last-child{border-bottom:none;}
.gbp-record li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);flex:0 0 auto;box-shadow:0 0 0 3px var(--lime-glow);}

/* ───────────────────────────────────────────────────────────────
   M04 · SIGNATURE — LOCAL MAP + RANKED PACK  [dark premium moment]
   motif: the one mid-page dark band (10a) — the simulated local map +
   pack glows on the substrate (13b); the map panel stays light (13d).
   ─────────────────────────────────────────────────────────────── */
.lp-wrap{display:grid;grid-template-columns:1.35fr 1fr;gap:0;margin-top:44px;
  border:1px solid var(--line-on-mid);box-shadow:var(--shadow-card);}
.lp-map{position:relative;background:var(--map-bg);min-height:380px;}
.lp-map svg{display:block;width:100%;height:100%;}
.lp-map .mlabel{position:absolute;top:14px;left:16px;font-family:var(--mono);font-size:var(--label-xs);
  letter-spacing:.08em;text-transform:uppercase;color:var(--map-bldg-line);background:var(--paper-veil);
  padding:5px 9px;border-radius:var(--radius-chip);}
.pin-t{transition:transform .25s var(--ease);}
.pin-you-pulse{transform-box:fill-box;transform-origin:center;animation:omnia-pulse 2s infinite;}
/* the ranked pack panel */
.lp-panel{background:var(--paper-card);display:flex;flex-direction:column;}
.lp-cap{padding:14px 20px;border-bottom:1px dashed var(--line-dash);
  font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:9px;}
.lp-cap .d{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px var(--lime-glow);}
.lp-row{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:center;
  padding:14px 20px;border-bottom:1px dashed var(--line-soft);}
.lp-row .pin{width:14px;height:18px;flex:0 0 auto;color:var(--rk-strong);}
.lp-row .rt{font-family:var(--mono);font-size:.74rem;font-weight:600;color:var(--ink);white-space:nowrap;}
.lp-row .nm{font-size:.92rem;color:var(--ink);}
.lp-row .nm .zh{font-family:"Noto Sans HK","PingFang HK",var(--sans);}
.lp-row .nm small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;margin-top:3px;}
.lp-row.win{background:var(--wash-soft);position:relative;}
.lp-row.win::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--lime);}
.lp-row.win .rt{color:var(--lime-ink);}
.lp-row.mid .pin{color:var(--rk-med);}
.lp-row.you{background:var(--amber-veil);}
.lp-row.you .pin{color:var(--rk-weak);}
.lp-row.you .rt{color:var(--amber);}
.lp-foot{margin-top:auto;padding:12px 20px;border-top:1px dashed var(--line-dash);
  font-family:var(--mono);font-size:var(--label-xs);letter-spacing:.05em;color:var(--faint);}
.lp-note{margin-top:20px;font-family:var(--mono);font-size:var(--label-sm);color:var(--tx-on-60);
  border-left:2px solid var(--lime);padding-left:16px;max-width:72ch;line-height:1.6;letter-spacing:.01em;}

/* ───────────────────────────────────────────────────────────────
   M05 · WHAT WE CHECK FIRST  [INVENTED — 5-row diagnostic checklist]
   ─────────────────────────────────────────────────────────────── */
.gbp-check{margin-top:40px;border:1px solid var(--line-mid);border-top:2px solid var(--ink);background:var(--paper-card);}
.chk{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;
  padding:20px clamp(20px,2.6vw,30px);border-bottom:1px dashed var(--line-soft);}
.chk:last-child{border-bottom:none;}
.chk .cno{font-family:var(--mono);font-size:.78rem;color:var(--lime-ink);padding-top:3px;display:flex;align-items:center;gap:10px;}
.chk .cno .flag{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--amber-glow);}
.chk h3{font-size:1.04rem;font-weight:600;letter-spacing:-.01em;}
.chk p{font-size:.92rem;color:var(--ink-soft);line-height:1.55;margin-top:7px;max-width:74ch;}

/* ───────────────────────────────────────────────────────────────
   M06 · WHAT WE REVIEW & IMPROVE  [INVENTED — 2x2 card grid]
   ─────────────────────────────────────────────────────────────── */
.gbp-improve{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line-mid);margin-top:40px;background:var(--bg);}
.gbp-icard{padding:clamp(26px,3vw,40px);border-right:1px dashed var(--line-soft);border-bottom:1px dashed var(--line-soft);transition:background .2s;}
.gbp-icard:nth-child(2n){border-right:none;}
.gbp-icard:nth-last-child(-n+2){border-bottom:none;}
.gbp-icard:hover{background:var(--wash-soft);}
.gbp-icard .ic-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.gbp-icard .ic-no{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--lime-ink);}
.gbp-icard .ic-glyph{width:28px;height:28px;color:var(--ink);}
.gbp-icard h3{font-size:1.14rem;font-weight:600;letter-spacing:-.01em;margin-top:16px;}
.gbp-icard p{font-size:.9rem;color:var(--ink-soft);line-height:1.55;margin-top:11px;max-width:48ch;}

/* ───────────────────────────────────────────────────────────────
   M07 · COMPARISON  [INVENTED — GBP vs Clinic SEO, 2-col sticky]
   ─────────────────────────────────────────────────────────────── */
.gbp-cmp-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4.5vw,64px);margin-top:40px;align-items:start;}
.gbp-cmp-pin{position:sticky;top:90px;}
.gbp-cmp-pin h2{font-size:var(--h2);font-weight:600;letter-spacing:var(--tr-display);line-height:var(--lead-display);max-width:14ch;}
.gbp-cmp-pin h2 .sym{font-family:var(--serif);font-style:italic;font-weight:400;}
.gbp-cmp-pin .msub{margin-top:18px;}
.gbp-cmp-pin .foot{margin-top:22px;font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.04em;color:var(--muted);border-left:2px solid var(--lime);padding-left:14px;max-width:36ch;line-height:1.55;}
.gctable{border:1px solid var(--line-mid);background:var(--paper-card);}
.gctr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px dashed var(--line-soft);}
.gctr:last-child{border-bottom:none;}
.gctr.head{border-bottom:1px solid var(--ink);}
.gctr .cd{padding:16px 18px;border-right:1px dashed var(--line-soft);font-size:.9rem;line-height:1.5;}
.gctr .cd:last-child{border-right:none;}
.gctr.head .cd{font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:600;}
.gctr .cd.gbp{color:var(--ink);position:relative;background:var(--wash-min);}
.gctr:not(.head) .cd.gbp::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--lime);}
.gctr .cd.seo{color:var(--muted);}

/* ───────────────────────────────────────────────────────────────
   M08 · METHOD  [INVENTED — 4 spec rows]
   ─────────────────────────────────────────────────────────────── */
.gbp-spec{margin-top:40px;border-top:2px solid var(--ink);}
.gsrow{display:grid;grid-template-columns:auto 1.1fr 1fr;gap:clamp(18px,3vw,44px);align-items:start;padding:24px 0;border-bottom:1px dashed var(--line-dash);}
.gsrow:last-child{border-bottom:none;}
.gsrow .cn{font-family:var(--sans);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:700;letter-spacing:-.05em;line-height:.85;color:var(--ink);}
.gsrow .cn .z{color:var(--faint);}
.gsrow .act h3{font-size:1.1rem;font-weight:600;letter-spacing:-.01em;}
.gsrow .act p{font-size:.92rem;color:var(--ink-soft);line-height:1.55;margin-top:9px;max-width:52ch;}
.gsrow .imp{border-left:1px dashed var(--line-rule);padding-left:clamp(18px,3vw,32px);}
.gsrow .imp .seg-lbl{font-family:var(--mono);font-size:var(--label-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--lime-ink);margin-bottom:8px;display:block;}
.gsrow .imp p{font-size:.88rem;color:var(--ink-soft);line-height:1.55;max-width:34ch;}

/* ───────────────────────────────────────────────────────────────
   M09 · PRINCIPLE citation + entity index  [INVENTED]
   ─────────────────────────────────────────────────────────────── */
.principle{margin-top:8px;border:1px solid var(--line-mid);border-left:3px solid var(--lime);
  background:var(--paper-card);padding:clamp(28px,4vw,52px);}
.principle .pl{font-family:var(--mono);font-size:var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:16px;}
.principle blockquote{font-size:clamp(1.3rem,2.2vw,2rem);line-height:1.3;letter-spacing:-.015em;font-weight:500;color:var(--ink);max-width:30ch;}
.principle blockquote .sym{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--lime-ink);}
.principle .after{font-size:.98rem;color:var(--ink-soft);line-height:1.6;margin-top:20px;max-width:64ch;}
.gbp-index{margin-top:clamp(36px,4vw,56px);border-top:1px dashed var(--line-mid);padding-top:clamp(26px,3vw,40px);}
.gbp-index .chip-label{margin-bottom:16px;}
.gix-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));border:1px dashed var(--line-soft);}
.gix{display:flex;align-items:center;gap:10px;padding:13px 16px;border-right:1px dashed var(--line-soft);border-bottom:1px dashed var(--line-soft);
  font-family:var(--mono);font-size:.78rem;color:var(--ink);transition:background .2s,padding-left .2s var(--ease);}
.gix:hover{background:var(--wash-soft);padding-left:22px;}
.gix .ar{color:var(--lime-deep);}

/* ───────────────────────────────────────────────────────────────
   RESPONSIVE
   ─────────────────────────────────────────────────────────────── */
@media(max-width:960px){
  .gbp-hero-grid{grid-template-columns:1fr;gap:36px;}
  .gbp-sme-grid{grid-template-columns:1fr;gap:32px;}
  .gbp-def{grid-template-columns:1fr;gap:28px;}
  .lp-wrap{grid-template-columns:1fr;}
  .lp-map{min-height:300px;}
  .gbp-improve{grid-template-columns:1fr;}
  .gbp-icard{border-right:none;}
  .gbp-icard:nth-last-child(2){border-bottom:1px dashed var(--line-soft);}
  .gbp-cmp-wrap{grid-template-columns:1fr;gap:32px;}
  .gbp-cmp-pin{position:static;}
  .gsrow{grid-template-columns:auto 1fr;gap:18px 22px;}
  .gsrow .imp{grid-column:2;border-left:none;border-top:1px dashed var(--line-rule);padding-left:0;padding-top:14px;margin-top:4px;}
}
@media(max-width:640px){
  .gctr{grid-template-columns:1fr;}
  .gctr .cd{border-right:none;border-bottom:1px dashed var(--line-soft);}
  .gctr .cd:last-child{border-bottom:none;}
  .gctr.head{display:none;}
  .chk{grid-template-columns:1fr;gap:8px;}
}
@media(prefers-reduced-motion:reduce){
  .pin-you-pulse{animation:none;}
}
