/* PACKAGES.CSS */

/* Container - EXATO do Vite React */
/* Corresponde a: container mx-auto px-4 */
.container { 
    width: 100%; 
    margin-left: auto; 
    margin-right: auto; 
    padding-left: 1rem; /* px-4 */
    padding-right: 1rem; /* px-4 */
}

@media (min-width: 640px) { .container { max-width: 640px; }}
@media (min-width: 768px) { .container { max-width: 768px; }}
@media (min-width: 1024px) { .container { max-width: 1024px; }}
@media (min-width: 1280px) { .container { max-width: 1280px; }}

/* Header - text-center mb-20 max-w-4xl mx-auto */
.text-center { text-align: center; }
.mb-20 { margin-bottom: 5rem; } /* mb-20 = 80px = 5rem */
.max-w-4xl { max-width: 56rem; } /* max-w-4xl = 896px = 56rem */

/* Headline - wedding-headline text-4xl md:text-6xl mb-8 text-foreground */
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; } /* text-4xl */
.mb-8 { margin-bottom: 2rem; } /* mb-8 = 32px = 2rem */
.text-foreground { color: hsl(var(--foreground)); }

/* md breakpoint (min-width: 768px) */
@media (min-width: 768px) {
    .md\:text-6xl { font-size: 3.75rem; line-height: 1; } /* md:text-6xl */
    .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; } /* md:text-xl */
}

/* Description - elegant-text text-lg md:text-xl leading-relaxed text-muted-foreground */
.text-lg { font-size: 1.125rem; line-height: 1.75rem; } /* text-lg */
.leading-relaxed { line-height: 1.625; }
/* Grid layout - EXATO do Vite React */
/* Corresponde a: grid lg:grid-cols-3 gap-8 max-w-7xl mx-auto mb-16 */
.grid { display: grid; }
.lg\:grid-cols-3 { grid-template-columns: 1fr; } /* Mobile: 1 coluna */
.gap-8 { gap: 2rem; } /* gap-8 = 32px = 2rem - FIXO para todos breakpoints */
.max-w-7xl { max-width: 80rem; } /* max-w-7xl = 1280px = 80rem */
.mx-auto { margin-left: auto; margin-right: auto; }
.mb-16 { margin-bottom: 4rem; } /* mb-16 = 64px = 4rem */

/* lg breakpoint (min-width: 1024px) */
@media (min-width: 1024px) {
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, 1fr); /* lg:grid-cols-3 */
    }
}
/* Card component - EXATO do shadcn/ui */
/* Corresponde a: rounded-lg border bg-card text-card-foreground shadow-sm */
.rounded-lg { border-radius: calc(var(--radius) - 2px); } /* rounded-lg */
.border { border-width: 1px; }
.bg-card { background-color: hsl(var(--card)); }
.text-card-foreground { color: hsl(var(--card-foreground)); }
.shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); }

/* Card states */
.group { /* Para hover effects */ }
.relative { position: relative; }
.overflow-hidden { overflow: hidden; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
.duration-300 { transition-duration: 300ms; }

/* Hover effects */
.hover\:luxury-shadow:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.hover\:scale-105:hover { transform: scale(1.05); }

/* Card variants */
.ring-2 { box-shadow: 0 0 0 2px var(--tw-ring-color); }
.ring-primary\/20 { --tw-ring-color: hsl(var(--primary) / 0.2); }
.border-primary\/30 { border-color: hsl(var(--primary) / 0.3); }
.luxury-shadow { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.border-border\/50 { border-color: hsl(var(--border) / 0.5); }
.hover\:border-primary\/30:hover { border-color: hsl(var(--primary) / 0.3); }

/* Card subcomponents - EXATO do shadcn/ui */

/* CardHeader - flex flex-col space-y-1.5 p-6 text-center pt-8/pt-12 */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.space-y-1\.5 > * + * { margin-top: 0.375rem; } /* space-y-1.5 */
.p-6 { padding: 1.5rem; } /* p-6 = 24px = 1.5rem */
.p-12 { padding: 3rem; } /* p-12 = 48px = 3rem (highlighted card) */
.text-center { text-align: center; }
.pt-8 { padding-top: 2rem; } /* pt-8 = 32px = 2rem */
.pt-12 { padding-top: 3rem; } /* pt-12 = 48px = 3rem (highlighted card) */

/* Icon wrapper - flex justify-center mb-4 */
.justify-center { justify-content: center; }
.mb-4 { margin-bottom: 1rem; } /* mb-4 = 16px = 1rem */

/* Icon circle - p-4 rounded-full bg-primary/10 group-hover:bg-primary/20 transition-colors duration-300 */
.p-4 { padding: 1rem; } /* p-4 = 16px = 1rem */
.rounded-full { border-radius: 9999px; }
.bg-primary\/10 { background-color: hsl(var(--primary) / 0.1); }
.group-hover\:bg-primary\/20:hover { background-color: hsl(var(--primary) / 0.2); }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

/* Icon size - h-8 w-8 text-primary */
.h-8 { height: 2rem; } /* h-8 = 32px = 2rem */
.w-8 { width: 2rem; } /* w-8 = 32px = 2rem */
.text-primary { color: hsl(var(--primary)); }

/* CardContent - p-6 pt-0 px-8 */
.pt-0 { padding-top: 0; }
.px-8 { padding-left: 2rem; padding-right: 2rem; } /* px-8 = 32px = 2rem */

/* CardFooter - flex items-center p-6 pt-0 px-8 pb-8 */
.items-center { align-items: center; }
.pb-8 { padding-bottom: 2rem; } /* pb-8 = 32px = 2rem */

/* Typography classes */

/* CardTitle - font-semibold tracking-tight wedding-headline text-2xl mb-2 group-hover:text-primary transition-colors duration-300 */
.font-semibold { font-weight: 600; }
.tracking-tight { letter-spacing: -0.025em; }
.wedding-headline { font-family: 'Playfair Display', serif; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; } /* text-2xl */
.mb-2 { margin-bottom: 0.5rem; } /* mb-2 = 8px = 0.5rem */
.group-hover\:text-primary { transition: color 0.3s ease; }
.group:hover .group-hover\:text-primary { color: hsl(var(--primary)); }

/* Price - wedding-headline text-3xl text-primary */
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; } /* text-3xl */

/* Description - elegant-text text-muted-foreground */
.elegant-text { font-family: Inter, sans-serif; font-weight: 300; letter-spacing: 0.025em; }
.text-muted-foreground { color: hsl(var(--muted-foreground)); }

/* List - space-y-3 */
.space-y-3 > * + * { margin-top: 0.75rem; } /* space-y-3 = 12px = 0.75rem */

/* List item - flex items-start gap-3 */
.items-start { align-items: flex-start; }
.gap-3 { gap: 0.75rem; } /* gap-3 = 12px = 0.75rem */

/* Check icon - h-5 w-5 text-primary flex-shrink-0 mt-0.5 */
.h-5 { height: 1.25rem; } /* h-5 = 20px = 1.25rem */
.w-5 { width: 1.25rem; } /* w-5 = 20px = 1.25rem */
.flex-shrink-0 { flex-shrink: 0; }
.mt-0\.5 { margin-top: 0.125rem; } /* mt-0.5 = 2px = 0.125rem */

/* Feature text - elegant-text text-sm text-muted-foreground */
.text-sm { font-size: 0.875rem; line-height: 1.25rem; } /* text-sm */

/* Badge - absolute top-0 left-0 right-0 gold-gradient text-secondary text-center py-2 text-sm font-semibold */
.absolute { position: absolute; }
.top-0 { top: 0; }
.left-0 { left: 0; }
.right-0 { right: 0; }
.gold-gradient { background: var(--gradient-gold); }
.text-secondary { color: hsl(var(--secondary)); }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } /* py-2 = 8px = 0.5rem */
.package-card:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,hsl(var(--primary)/.12),transparent);opacity:0;transition:.6s;}
.package-card:hover:before{opacity:1;}
.package-card:hover{transform:scale(1.05);box-shadow:var(--shadow-luxury);border-color:hsl(var(--primary)/.3);}
.package-highlighted{box-shadow:0 0 0 2px hsl(var(--primary)/.2),var(--shadow-luxury);border-color:hsl(var(--primary)/.35);}
.package-ribbon{position:absolute;top:0;left:0;right:0;padding:.55rem .75rem;text-align:center;font-size:.75rem;font-weight:600;letter-spacing:.08em;color:hsl(var(--secondary));background:var(--gradient-gold);}
.package-icon-wrapper{width:4.5rem;height:4.5rem;margin:0 auto 1.25rem;border-radius:50%;background:hsl(var(--primary)/.12);display:flex;align-items:center;justify-content:center;transition:.4s;}
.package-card:hover .package-icon-wrapper{background:hsl(var(--primary)/.2);transform:scale(1.08);}
.package-title{font-family:'Playfair Display',serif;font-size:1.6rem;margin:0 0 .75rem;text-align:center;color:hsl(var(--foreground));letter-spacing:-.01em;transition:.3s;}
.package-card:hover .package-title{color:hsl(var(--primary));}
.package-price{font-family:'Playfair Display',serif;font-size:2rem;text-align:center;color:hsl(var(--primary));margin:0 0 1rem;}
.package-description{font-size:.95rem;text-align:center;color:hsl(var(--muted-foreground));margin:0 0 1.75rem;line-height:1.6;}
.package-features{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:.65rem;}
.package-feature-item{display:flex;align-items:flex-start;gap:.65rem;font-size:.85rem;line-height:1.4;color:hsl(var(--muted-foreground));}
.package-feature-item svg{flex-shrink:0;color:hsl(var(--primary));}
.package-button{display:block;text-align:center;text-decoration:none;font-weight:600;padding:.95rem 1.25rem;border-radius:.9rem;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));transition:.4s;box-shadow:var(--shadow-gentle);}
.package-button:hover{transform:scale(1.04);}
.package-button-highlighted{background:var(--gradient-gold);color:hsl(var(--secondary));}
.package-button-highlighted:hover{transform:scale(1.05);}
.packages-bottom-cta{text-align:center;max-width:56rem;margin:0 auto;}
.packages-bottom-text{font-size:1.05rem;color:hsl(var(--muted-foreground));margin:0 0 1.25rem;}
.packages-bottom-button{display:inline-block;text-decoration:none;padding:1rem 2.25rem;border-radius:1rem;font-weight:600;letter-spacing:.02em;background:var(--gradient-gold);color:hsl(var(--secondary));box-shadow:var(--shadow-elegant);transition:.4s;}
.packages-bottom-button:hover{transform:scale(1.05);}
@media (min-width:768px){.packages-headline{font-size:3.5rem}}
