# 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: `