/* =====================================================================
   PAGE: PRODUCT · O2P — public/assets/css/pages/product-o2p.css (step 11.9)
   From design/product-o2p-preview.html. Shared product rules: product.css; colours: product-skins.css (.pd-p--o2p).
   Rules identical to product.css are left out; similar ones (.pd-mark, .pd-proof, .pd-hero__grid, .pd-cta__act, .pd-cta__small …)
   stay here with their media queries. Only --fv-* tokens and --pd-* skin variables; every class starts with "pd-".
   Temporary typographic mark .pd-mark (until o2p-logo.svg); mockups .pd-ui = sample data in English like the real screens.
   ===================================================================== */

/* temporary typographic mark (until O2P has a logo file) */
.pd-mark{display:inline-flex;align-items:center;gap:10px;font-family:var(--fv-font-display);font-weight:500;font-size:30px;line-height:1;color:var(--fv-ink);letter-spacing:.01em;direction:ltr}
.pd-mark::before{content:"";width:13px;height:13px;background:var(--pd-accent);flex-shrink:0}
.pd-tag{display:block;margin-top:22px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--pd-accent)}
[dir=rtl] .pd-tag{letter-spacing:0;font-size:13px}

/* sample label + caption with the file that will replace the mockup */
.pd-sample{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fv-muted);padding:3px 8px;border:1px dashed var(--fv-line);background:var(--fv-paper)}
[dir=rtl] .pd-sample{letter-spacing:0;font-size:12px}
.pd-fig{margin:0;min-width:0}
.pd-fig__top{display:flex;justify-content:flex-end;margin-bottom:10px}
.pd-cap{display:grid;gap:4px;margin-top:14px;font-size:13px;color:var(--fv-muted)}
.pd-cap code{font-family:var(--fv-font-body);font-size:12px;color:var(--pd-accent);direction:ltr;unicode-bidi:isolate;word-break:break-all}

/* mockup UI (sample data, English like the real product screens) */
.pd-ui{direction:ltr;text-align:left;font-family:var(--fv-font-body);color:var(--fv-ink)}
.pd-ui__k{display:block;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fv-muted)}
.pd-ui__logo{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600}
.pd-ui__logo::before{content:"";width:9px;height:9px;background:var(--pd-accent)}
.pd-code{font-size:11.5px;font-weight:600;color:var(--pd-accent);background:var(--pd-accent-soft);padding:3px 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pd-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:600;border:1px solid var(--fv-line);background:var(--fv-white);white-space:nowrap}
.pd-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fv-muted)}
.pd-pill--ok{color:var(--fv-green);border-color:var(--fv-green)}
.pd-pill--ok::before{background:var(--fv-green)}
.pd-pill--wait{color:var(--pd-accent);border-color:var(--pd-accent)}
.pd-pill--wait::before{background:transparent;border:1.5px solid var(--pd-accent)}
.pd-pill--auto{color:var(--fv-white);background:var(--pd-accent);border-color:var(--pd-accent)}
.pd-pill--auto::before{background:var(--fv-white)}
.pd-shot__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--fv-line)}
.pd-scroll{overflow-x:auto}
.pd-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.pd-tbl th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fv-muted);padding:9px 14px;border-bottom:1px solid var(--fv-line);background:var(--fv-paper);white-space:nowrap}
.pd-tbl td{padding:10px 14px;border-bottom:1px solid var(--fv-line);white-space:nowrap}
.pd-tbl tr:last-child td{border-bottom:0}
.pd-tbl .pd-r{text-align:right;font-variant-numeric:tabular-nums}
.pd-tbl .pd-dim{color:var(--fv-muted)}
.pd-tbl .pd-flag{color:var(--pd-accent);font-weight:600}
.pd-wh{font-size:11px;font-weight:600;padding:2px 7px;border:1px solid var(--fv-line);color:var(--fv-muted)}
.pd-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--fv-line);background:var(--fv-paper)}
.pd-btnui{font-size:12.5px;font-weight:600;color:var(--fv-white);background:var(--fv-green);padding:8px 14px}

/* 1 hero */
.pd-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.pd-hero .fv-h1{font-size:clamp(38px,4.1vw,58px);margin-block:18px 24px}
.pd-hero .fv-lead{max-width:56ch}
.pd-proof{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:8px 40px;margin-top:44px;padding-block:18px;border-block:1px solid var(--fv-line)}
.pd-proof div{display:grid;gap:6px}
.pd-proof .fv-num{font-size:34px;color:var(--pd-accent);white-space:nowrap}
[dir=rtl] .pd-proof .fv-num{font-size:28px}
.pd-proof span:not(.fv-num){font-size:14px;color:var(--fv-muted)}

/* 2 problem: break points */
.pd-prob__head{max-width:800px;margin-bottom:48px}
.pd-brk{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;border-top:1px solid var(--fv-ink)}
.pd-brk li{position:relative;padding:22px 22px 24px 0;border-inline-end:1px dashed var(--fv-line)}
.pd-brk li + li{padding-inline-start:22px}
.pd-brk li:last-child{border-inline-end:0}
[dir=rtl] .pd-brk li{padding:22px 0 24px 22px}
[dir=rtl] .pd-brk li + li{padding-inline-start:22px}
.pd-brk h3{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fv-ink);margin-bottom:10px}
[dir=rtl] .pd-brk h3{letter-spacing:0;font-size:14.5px}
.pd-brk p{font-size:15px;color:var(--fv-muted)}
.pd-brk__x{display:block;width:18px;height:2px;background:var(--pd-accent);margin-bottom:16px}

/* 3 purchase path schematic (7 stations) */
.pd-path__head{max-width:800px;margin-bottom:56px}
.pd-path{position:relative}
.pd-path__rail{position:absolute;inset-inline:0;top:0;width:100%;height:64px;color:var(--pd-accent);overflow:visible}
[dir=rtl] .pd-path__rail{transform:scaleX(-1)}
.pd-path__st{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));list-style:none;counter-reset:st}
.pd-path__st li{counter-increment:st;position:relative;padding:88px 10px 0;text-align:center}
.pd-path__st li::before{content:"";position:absolute;top:24px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--fv-surface);border:2.5px solid var(--pd-accent)}
.pd-path__st li:first-child::before,.pd-path__st li:last-child::before{background:var(--pd-accent)}
.pd-path__n{display:block;font-family:var(--fv-font-display);font-size:14px;color:var(--pd-accent);margin-bottom:6px}
.pd-path__n::before{content:counter(st,decimal-leading-zero)}
[dir=rtl] .pd-path__n{font-family:var(--fv-font-fa)}
[dir=rtl] .pd-path__n::before{content:counter(st,persian)}
.pd-path__st h3{font-family:var(--fv-font-display);font-weight:500;font-size:22px;line-height:1.15;margin-bottom:8px}
[dir=rtl] .pd-path__st h3{font-family:var(--fv-font-fa);font-weight:700;font-size:18px}
.pd-path__who{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--pd-accent);background:var(--pd-accent-soft);padding:3px 8px;margin-bottom:12px}
[dir=rtl] .pd-path__who{letter-spacing:0;font-size:12px}
.pd-path__st p{font-size:14px;color:var(--fv-muted);text-align:start}
.pd-status{margin-top:48px;padding-top:20px;border-top:2px dashed var(--pd-accent)}
.pd-status__k{display:block;font-size:13px;font-weight:600;margin-bottom:14px;color:var(--fv-ink)}
.pd-status ol{display:flex;flex-wrap:wrap;gap:10px 8px;list-style:none;align-items:center}
.pd-status li{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;padding:6px 12px;background:var(--fv-white);border:1px solid var(--fv-line)}
.pd-status li + li::before{content:"→";color:var(--pd-accent);margin-inline-end:4px;font-weight:600}
[dir=rtl] .pd-status li + li::before{content:"←"}
.pd-status li:last-child{border-color:var(--fv-green);color:var(--fv-green)}

/* 4 two ways to order */
.pd-mode__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.pd-ways{display:grid;gap:14px;list-style:none;margin-top:32px}
.pd-ways li{background:var(--fv-white);border:1px solid var(--fv-line);border-inline-start:3px solid var(--pd-accent);padding:18px 20px}
.pd-ways li + li{border-inline-start-color:var(--fv-ink)}
.pd-ways h3{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
[dir=rtl] .pd-ways h3{letter-spacing:0;font-size:14.5px}
.pd-ways p{font-size:15px;color:var(--fv-muted)}
.pd-close{margin-top:28px;font-size:var(--fv-fs-small);color:var(--fv-ink);padding-inline-start:16px;border-inline-start:3px solid var(--pd-accent)}
.pd-close--ok{border-color:var(--fv-green);font-size:var(--fv-fs-lead)}
.pd-grp{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--fv-line);background:var(--fv-paper);font-size:12px;color:var(--fv-muted)}
.pd-grp__tabs{display:flex;gap:4px;margin-inline-start:auto}
.pd-grp__tabs span{font-size:11.5px;font-weight:600;padding:3px 9px;border:1px solid var(--fv-line);background:var(--fv-white);color:var(--fv-muted)}
.pd-grp__tabs span.pd-on{color:var(--fv-white);background:var(--fv-ink);border-color:var(--fv-ink)}

/* 5 receipt and match */
.pd-match__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:center}
.pd-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--fv-line)}
.pd-tabs span{display:grid;gap:2px;padding:10px 14px;font-size:11px;font-weight:600;color:var(--fv-muted);border-bottom:2px solid transparent}
.pd-tabs b{font-size:16px;color:var(--fv-ink);font-variant-numeric:tabular-nums}
.pd-tabs span.pd-on{border-bottom-color:var(--pd-accent);color:var(--pd-accent)}
.pd-tabs span.pd-on b{color:var(--pd-accent)}
.pd-inv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 18px;border-bottom:1px solid var(--fv-line)}
.pd-inv strong{display:block;font-size:13px;font-weight:600;margin-top:2px}

/* 6 supplier record */
.pd-rec__head{max-width:800px;margin-bottom:44px}
.pd-rec__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start}
.pd-trio{list-style:none;display:grid;border-top:1px solid var(--fv-line)}
.pd-trio li{padding-block:18px;border-bottom:1px solid var(--fv-line)}
.pd-trio h3{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--pd-accent);margin-bottom:6px}
[dir=rtl] .pd-trio h3{letter-spacing:0;font-size:14.5px}
.pd-trio small{font-size:11px;letter-spacing:.06em;color:var(--fv-muted);border:1px solid var(--fv-line);padding:1px 7px}
[dir=rtl] .pd-trio small{letter-spacing:0;font-size:12px}
.pd-trio p{font-size:15px;color:var(--fv-muted)}
.pd-bar{display:flex;align-items:center;gap:8px}
.pd-bar i{display:block;width:64px;height:6px;background:var(--fv-surface);position:relative}
.pd-bar i::after{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:var(--w);background:var(--pd-accent)}
.pd-bar--lo i::after{background:var(--fv-muted)}

/* 7 roles */
.pd-roles__head{max-width:760px;margin-bottom:44px}
.pd-roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;border-top:1px solid var(--fv-line);border-inline-start:1px solid var(--fv-line)}
.pd-roles li{padding:22px 22px 24px;border-inline-end:1px solid var(--fv-line);border-bottom:1px solid var(--fv-line);background:var(--fv-white)}
.pd-roles h3{font-size:15.5px;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.pd-roles h3::before{content:"";width:8px;height:8px;background:var(--pd-accent);flex-shrink:0}
.pd-roles p{font-size:14px;color:var(--fv-muted)}
.pd-roles li.pd-roles__note{background:var(--pd-accent-soft);display:flex;align-items:center}
.pd-roles li.pd-roles__note p{color:var(--fv-ink);font-weight:600;font-size:15px}

/* 8 story (ink) + before / after */
.pd-story__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:end}
.pd-story__txt p{color:var(--fv-on-ink);font-size:var(--fv-fs-lead);max-width:60ch}
.pd-ba{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--fv-line-ink)}
.pd-ba div{padding:22px 0 0;display:grid;gap:8px;align-content:start}
.pd-ba div + div{padding-inline-start:28px;border-inline-start:1px solid var(--fv-line-ink)}
.pd-ba__k{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fv-on-ink-muted)}
[dir=rtl] .pd-ba__k{letter-spacing:0;font-size:13px}
.pd-ba .fv-num{font-size:clamp(44px,5vw,68px);color:var(--fv-on-ink-muted);white-space:nowrap}
.pd-ba__now .fv-num,.pd-ba__now .pd-ba__k{color:var(--pd-accent-on-ink)}
.pd-ba p{font-size:14.5px;color:var(--fv-on-ink-muted)}
.pd-ba__now p{color:var(--fv-on-ink)}
.pd-ba__more{margin-top:18px;font-size:14px;color:var(--fv-on-ink-muted)}

/* 9 fit (live box) + cta */
.pd-live{margin-top:36px;padding:20px 22px;background:var(--pd-accent-soft);border-inline-start:3px solid var(--pd-accent)}
.pd-live b{display:block;font-family:var(--fv-font-display);font-weight:500;font-size:26px;color:var(--pd-accent);margin-bottom:4px}
[dir=rtl] .pd-live b{font-family:var(--fv-font-fa);font-weight:700;font-size:21px}
.pd-live p{font-size:15px;color:var(--fv-ink)}
.pd-cta__act{display:grid;gap:14px;justify-items:start}
.pd-cta__small{font-size:13px;color:var(--fv-muted)}

@media (max-width:1080px){
  .pd-hero__grid,.pd-mode__grid,.pd-match__grid,.pd-rec__grid,.pd-story__grid,.pd-fit__grid,.pd-cta__grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .pd-brk{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-brk li,.pd-brk li + li,[dir=rtl] .pd-brk li,[dir=rtl] .pd-brk li + li{padding:20px 20px 22px 0;border-inline-end:0;border-bottom:1px dashed var(--fv-line)}
  .pd-roles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-path__rail{display:none}
  .pd-path__st{grid-template-columns:minmax(0,1fr);border-inline-start:2px solid var(--pd-accent);margin-inline-start:8px}
  .pd-path__st li{padding:0 0 28px 28px;text-align:start}
  [dir=rtl] .pd-path__st li{padding:0 28px 28px 0}
  .pd-path__st li::before{top:4px;left:auto;inset-inline-start:-9px;margin:0}
  .pd-path__st li:last-child{padding-bottom:0}
}
@media (max-width:600px){
  .pd-proof{grid-template-columns:repeat(2,auto);gap:14px 28px}
  .pd-brk,.pd-roles{grid-template-columns:minmax(0,1fr)}
  .pd-inv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-grp__tabs{margin-inline-start:0}
  .pd-ba{grid-template-columns:minmax(0,1fr)}
  .pd-ba div + div{padding-inline-start:0;border-inline-start:0;border-top:1px solid var(--fv-line-ink);margin-top:22px}
}
