/* =====================================================================
   PAGE: PRODUCTS HUB — public/assets/css/pages/products.css
   (from design/products-preview.html, step 11.4). Only --fv-* tokens and --pd-* skin variables;
   every class starts with "pd-"; fv- components only scoped under pd-.
   ===================================================================== */

/* Product skins (--pd-<product>*) and the .pd-p--<product> accent classes live in product-skins.css
   (step 11.5: shared with the product pages). Only the hub's "coming soon" card is defined here. */
.pd-p--soon{--pd-accent:var(--fv-muted);--pd-accent-soft:var(--fv-surface)}

/* product mark (temporary typographic logo until each product's real logo arrives) */
.pd-mark{display:inline-flex;align-items:center;gap:10px;font-family:var(--fv-font-display);font-weight:500;font-size:28px;line-height:1;color:var(--fv-ink);letter-spacing:.01em}
.pd-mark::before{content:"";width:12px;height:12px;background:var(--pd-accent);flex-shrink:0}
[dir=rtl] .pd-mark{font-family:var(--fv-font-display)}

/* 1 hero */
.pd-hero{padding-block:104px 88px}
.pd-hero .fv-h1{margin-block:24px 28px;max-width:14ch}
[dir=rtl] .pd-hero .fv-h1{max-width:20ch}
.pd-hero .fv-lead{max-width:60ch}
.pd-hero__own{margin-top:28px;font-size:var(--fv-fs-small);color:var(--fv-muted);padding-inline-start:16px;border-inline-start:2px solid var(--fv-green);max-width:60ch}

/* 2 cards */
.pd-list__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:end;margin-bottom:56px}
.pd-list .fv-h2{margin-top:22px}
.pd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pd-card{display:flex;flex-direction:column;background:var(--fv-white);border:1px solid var(--fv-line);border-top:3px solid var(--pd-accent);padding:28px 28px 24px;transition:box-shadow var(--fv-ease)}
a.pd-card:hover{box-shadow:var(--fv-shadow)}
a.pd-card:focus-visible{outline:2px solid var(--fv-green);outline-offset:3px}
.pd-card__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}
.pd-card__tag{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--pd-accent);background:var(--pd-accent-soft);padding:5px 9px}
[dir=rtl] .pd-card__tag{letter-spacing:0;font-size:12.5px}
.pd-card__rows{flex:1;display:grid;align-content:start}
.pd-card__row{padding-block:14px;border-top:1px solid var(--fv-line)}
.pd-card__k{display:block;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--fv-muted);margin-bottom:6px}
[dir=rtl] .pd-card__k{letter-spacing:0;font-size:12.5px}
.pd-card__v{font-size:var(--fv-fs-small);line-height:1.55}
.pd-card__row--res{border-top:1px solid var(--fv-ink)}
.pd-card__n{display:block;font-size:34px;color:var(--pd-accent)}
[dir=rtl] .pd-card__n{font-size:28px}
.pd-card__nl{display:block;font-size:13px;color:var(--fv-muted);margin-top:6px}
.pd-card__sub{display:block;margin-top:12px;padding-top:10px;border-top:1px dashed var(--fv-line);font-size:13px;color:var(--fv-muted)}
.pd-card__sub b{font-size:18px;font-weight:500;color:var(--pd-accent);margin-inline-end:6px}
.pd-card__foot{display:flex;align-items:center;gap:8px;margin-top:18px;font-weight:600;font-size:15px;color:var(--fv-green)}
.pd-card__soon{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:13px;font-weight:600;color:var(--fv-muted)}
.pd-card__soon::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px dashed var(--fv-muted)}
.pd-card--soon{background:transparent;border-style:dashed;border-top-style:solid}
.pd-card--soon .pd-card__v{color:var(--fv-muted)}
.pd-list__note{margin-top:32px;font-size:var(--fv-fs-small);color:var(--fv-muted)}

/* 3 how a product is born */
.pd-born__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:start}
.pd-born .fv-h2{margin-block:22px 20px}
.pd-born__steps{list-style:none;counter-reset:pd;border-top:1px solid var(--fv-ink)}
.pd-born__step{display:grid;grid-template-columns:56px minmax(0,1fr);gap:20px;padding-block:22px;border-bottom:1px solid var(--fv-line)}
.pd-born__step::before{counter-increment:pd;content:"0" counter(pd);font-family:var(--fv-font-display);font-size:22px;color:var(--fv-green);line-height:1.2}
[dir=rtl] .pd-born__step::before{font-family:var(--fv-font-fa);content:counter(pd,persian)}
.pd-born__step strong{display:block;font-size:17px;font-weight:600;margin-bottom:4px}
.pd-born__step p{font-size:var(--fv-fs-small);color:var(--fv-muted)}
.pd-born__step--no::before{color:var(--fv-muted)}
.pd-born__more{margin-top:28px}

/* 4 cta */
.pd-cta__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:64px;align-items:end}
.pd-cta .fv-h2{margin-block:22px 20px}
.pd-cta p{color:var(--fv-on-ink-muted);max-width:52ch}
.pd-cta__act{display:grid;gap:14px;justify-items:start}
.pd-cta__act small{font-size:13px;color:var(--fv-on-ink-muted)}

@media (max-width:1080px){
  .pd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-list__head,.pd-born__grid,.pd-cta__grid{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media (max-width:600px){
  .pd-hero{padding-block:72px 64px}
  .pd-grid{grid-template-columns:minmax(0,1fr)}
  .pd-card{padding:24px 20px 20px}
  .pd-cta__act,.pd-cta__act .fv-btn{width:100%}
}
