# PhorteCourseDetail

> Cursos Livres (E-commerce) — fora do catálogo. Peça de produto do fluxo de cursos livres: não é uma das 81 peças do kit, não tem estado de promoção e não foi feita para reuso. Segue as mesmas regras de cor e acessibilidade.

Página de detalhe do curso.

- Mora em: `app/components/organisms/cursos-phorte/PhorteCourseDetail.tsx`
- Página: [https://phorte-design-system.vercel.app/styleguide/cursos-livres/PhorteCourseDetail](https://phorte-design-system.vercel.app/styleguide/cursos-livres/PhorteCourseDetail)
- Ficha: `stories/cursos-livres/phorte-course-detail.stories.tsx` (no Storybook local — fora do catálogo publicado)
- Prévia ao vivo, sozinha: [https://phorte-design-system.vercel.app/previa/PhorteCourseDetail/0](https://phorte-design-system.vercel.app/previa/PhorteCourseDetail/0)
- Todas as peças: [https://phorte-design-system.vercel.app/llms.txt](https://phorte-design-system.vercel.app/llms.txt)

## Como usar no código

```tsx
import { PhorteCourseDetail } from '@/app/components/organisms/cursos-phorte/PhorteCourseDetail';

<PhorteCourseDetail course={…} />
```

O `…` marca as props obrigatórias — ver *Propriedades*.

## Uso

### Variantes na ficha

1. [Padrão](https://phorte-design-system.vercel.app/previa/PhorteCourseDetail/0)

_Peça fora do catálogo: tem o resumo e o papel, e não texto de uso completo (decisão da E89). O resto desta página vem do código._

## Especificação

### Propriedades

| Prop | Tipo | Padrão | Obrigatória | Descrição |
| --- | --- | --- | --- | --- |
| `course` | `PhorteCourse` | — | sim |  |
| `hrefDaMatricula` | `string` | — | não | Repassados ao cartão de matrícula (E77): sem eles, os CTAs dele não aparecem (E74). |
| `hrefDoConsultor` | `string` | — | não |  |

### Tokens de cor

| Token | Valor | Usado como |
| --- | --- | --- |
| `--foreground` | #1A1A1A | `bg-ink`, `text-ink` |
| `--primary` | #D42B2B | `bg-primary`, `text-primary` |
| `--background` | #FAFAFA | `bg-background` |
| `--border` | #E5E5E5 | `border-border` |
| `--card` | #FFFFFF | `bg-card` |
| `--ink-inverse` | #FAFAFA | `text-ink-inverse` |
| `--ink-inverse-muted` | #C7C7C7 | `text-ink-inverse-muted` |
| `--muted` | #F4F6F9 | `bg-muted/70` |
| `--muted-foreground` | #595959 | `text-muted-foreground` |
| `--primary-foreground` | #FFFFFF | `text-primary-foreground` |
| `--success` | #2E844A | `text-success` |

## Acessibilidade

Sem estado de promoção: a peça está fora do catálogo. O axe roda nas variantes da ficha em `npm run test`; contraste abaixo de AA vira exceção declarada na própria ficha, com a conta.

## Status e recursos

| Tipo | Recurso | Status |
| --- | --- | --- |
| Código | `app/components/organisms/cursos-phorte/PhorteCourseDetail.tsx` | Disponível |
| Ficha | `stories/cursos-livres/phorte-course-detail.stories.tsx` | Storybook local |
| Teste de acessibilidade | axe em `npm run test` | No gate de todo commit |
| Design | Figma | Desativado até a Fase 2 |

### Histórico

- `251416b` 2026-10-01 — E159: Testimonials — o vídeo toca dentro do cartão, YouTube e Vimeo
- Histórico completo no GitHub: https://github.com/srbunnie/Pos-Phorte-Design-System/commits/main/app/components/organisms/cursos-phorte/PhorteCourseDetail.tsx
