# Component Rules
Per-element rules. Apply when designing or reviewing the corresponding component.
---
## Buttons
**Primary**
- Gradient gold: `bg-gradient-to-r from-gold-light via-gold to-gold-deep`
- Text: `text-obsidian` (dark on gold for contrast)
- Shape: `rounded-full px-7 py-3.5 text-sm font-medium tracking-wide`
- Shadow: `shadow-[0_10px_40px_-12px_rgba(212,164,55,0.6)]`
- Hover shadow only: `hover:shadow-[0_18px_50px_-12px_rgba(242,194,91,0.8)]`
- Optional `magnetic` wrapper for cursor pull effect on desktop.
**Outline**
- `border border-bone/20 text-bone hover:border-gold/60 hover:text-gold-light`
- Same shape as primary.
**Ghost**
- `text-bone hover:text-gold-light` — no border, no fill.
**Forbidden**
- Bright red CTA buttons (unless brand color is red).
- Square corners on action buttons.
- Solid `#000` or `#fff` backgrounds.
- Loading text inside button that breaks layout — use a spinner icon + word swap with fixed min-width.
- Success/error message **inside** button — render outside as a banner.
---
## Cards
**Standard card**
```tsx
{/* hover amber glow (decorative) */}
{/* content */}
{/* gold underline sweep at bottom */}
```
**Premium / featured card** (used for cert card, sale card, hero CTA)
- `border-gold/25`
- `bg-gradient-to-br from-[#1a1407] via-[#0c0a06] to-[#1e1409]`
- `shadow-[0_30px_120px_-30px_rgba(212,164,55,0.45)]`
- Often has animated `shimmer` hairline on top edge.
**Grid layout**
- `grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-N gap-4 md:gap-5`
- Apply `cardGrid` + `cardCell` variants for staggered entry.
**Inside the card**
- Top row: small icon disc (`size-11 glass-gold`) + optional mono micro-label.
- Heading: `font-display text-2xl md:text-3xl`.
- Body: `text-sm text-mist leading-relaxed`.
- Bottom: optional "Learn more" link or gold underline sweep.
---
## Section heading
```tsx
{/* or items-start for left-aligned */}
Section name
Plain words and a{" "}
gold accent phrase.
One refined sentence describing the section.
```
**Rules**
- Always `text-balance` on h2 for clean wrapping.
- `text-pretty` on subtitle.
- Use SectionLabel with sequential index per page (01, 02, 03…). No mono font.
- One gold-accent phrase max per heading — overdoing gold cheapens it.
---
## Navbar
- Fixed top: `fixed inset-x-0 top-0 z-50`.
- Logo left, nav center/right, primary CTA + WhatsApp icon right.
- Scrolled state: `backdrop-blur-xl bg-obsidian/70 border-b border-bone/5`.
- Nav links: `text-sm font-medium tracking-[0.005em] text-bone/85 hover:text-gold-light`.
- Active state via `usePathname()` → `text-gold-light` + full-width underline + `aria-current="page"`.
- Mobile: hamburger right, menu drawer below, links close on click.
---
## Footer
**Layout — 4 columns, no duplication**
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| Brand + contact | Navigation | Services | Legal & App |
| Logo, tagline, phone, email, WhatsApp, Instagram | Home + all top-level routes | Specific service items | Privacy Policy + 2 store badges |
**Rules**
- No page link appears in two columns.
- Privacy Policy lives only under Legal.
- App badges only in Legal & App column (footer) — official SVGs at 132 px width, 8 px gap.
- External links open in new tab with rel attrs.
- Background: `bg-obsidian` with subtle "LUXAM"-style watermark behind content (translate-y-[18%], opacity 0.025).
- Bottom row: `© YYYY {brand}. All rights reserved.` + tagline + agency credit (subtle, gold-underlined on hover).
---
## Forms
- Field wrapper: `