.header { text-align: center; max-width: 800px; margin: 0 auto 4rem; } .subTitle { background: transparent; -webkit-background-clip: unset; -webkit-text-fill-color: unset; background-clip: unset; color: #0072b1; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; font-size: 0.875rem; margin-bottom: 1rem; } .badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: var(--background-secondary); border-radius: 2rem; font-size: 0.9rem; font-weight: 600; margin-bottom: 1.5rem; color: var(--primary); } .title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem; color: var(--foreground); } .subtitle { font-size: 1.1rem; color: var(--foreground-secondary); line-height: 1.6; margin-bottom: 2rem; } .toggle { display: flex; align-items: center; justify-content: center; gap: 1rem; font-weight: 600; color: var(--foreground-secondary); } .toggleButton { position: relative; width: 60px; height: 30px; background: #f1f5f9; border: none; border-radius: 2rem; cursor: pointer; transition: all 0.3s ease; } .toggleSlider { position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; background: var(--gradient-primary); border-radius: 50%; transition: all 0.3s ease; } .toggleSlider.annual { transform: translateX(30px); } .active { color: var(--primary); } .saveBadge { display: inline-block; margin-left: 0.5rem; padding: 0.25rem 0.5rem; background: var(--gradient-primary); color: white; border-radius: 0.5rem; font-size: 0.75rem; font-weight: 700; } .pricingGrid { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-bottom: 3rem; } @media (min-width: 900px) { .pricingGrid { grid-template-columns: repeat(3, 1fr); } } .pricingCard { border-radius: 30px; /* More rounded */ padding: 2.5rem 2rem 1.5rem; /* Less padding bottom to accommodate footer */ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; position: relative; display: flex; flex-direction: column; color: white; overflow: hidden; /* For clipping */ min-height: 500px; /* Variants defined below */ } .pricingCard:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } /* Gradients */ /* Card 1: Blue (#1255d8) / Pink (#ec4899) */ .cardVariant1 { background: linear-gradient(135deg, #ec4899 0%, #1255d8 100%); } /* Card 2: Yellow (#f9cd35) / Pink (#ec4899) */ .cardVariant2 { background: linear-gradient(135deg, #f9cd35 0%, #ec4899 100%); } /* Card 3: Blue (#1255d8) / Green (#6cb655) */ .cardVariant3 { background: linear-gradient(135deg, #1255d8 0%, #6cb655 100%); } /* Decorative circles in background */ .pricingCard::before { content: ''; position: absolute; top: -50px; right: -50px; width: 200px; height: 200px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; pointer-events: none; } .pricingCard::after { content: ''; position: absolute; bottom: -50px; left: -50px; width: 200px; height: 200px; background: rgba(255, 255, 255, 0.05); border-radius: 50%; pointer-events: none; } .planHeader { margin-bottom: 2rem; position: relative; z-index: 1; } .planName { font-size: 2rem; font-weight: 800; margin: 0; color: #fff; } .planDescription { margin-top: 6px; font-size: 0.95rem; color: rgba(255, 255, 255, 0.65); line-height: 1.4; } .features { display: flex; flex-direction: column; gap: 0.8rem; flex-grow: 1; margin-bottom: 3rem; position: relative; z-index: 1; } .feature { display: flex; align-items: center; gap: 0.75rem; color: rgba(255, 255, 255, 0.9); font-size: 0.95rem; font-weight: 500; } .checkIcon { font-weight: 900; color: white; /* Simple tick */ } /* Footer Section */ .cardFooter { display: flex; justify-content: space-between; align-items: flex-end; margin-top: auto; /* To handle the button cutout loop, we might need absolute positioning for button */ position: relative; padding-top: 1rem; z-index: 2; } .priceInfo { display: flex; flex-direction: column; } .priceAmount { font-size: 3rem; font-weight: 800; line-height: 1; display: flex; align-items: flex-start; } .currency { font-size: 1.5rem; margin-top: 5px; margin-right: 2px; } .period { font-size: 0.9rem; opacity: 0.8; margin-top: 5px; font-style: italic; } /* Button Styling - Specific "inset" look */ .signupBtn { /* We want it flush with bottom right corner */ position: absolute; bottom: -1.5rem; /* Bleed into padding area */ right: -2rem; /* Bleed to edge */ background: #0072b1; /* Updated to requested Dark Blue #0072b1 */ color: white; padding: 0.8rem 2rem 1.2rem 1.5rem; /* Extra padding bottom right */ border-top-left-radius: 30px; /* The cutout shape */ font-weight: 600; display: flex; align-items: center; gap: 0.5rem; transition: all 0.3s; text-decoration: none; box-shadow: -5px -5px 20px rgba(0, 0, 0, 0.1); } .signupBtn:hover { background: #0072b1; /* Keep dark hover or update? Let's keep dark fallback for hover state */ padding-right: 2.2rem; /* Animate slightly */ } .btnArrow { font-size: 0.8rem; } .guarantee { text-align: center; padding: 1rem; padding-bottom: 1px; background: var(--background-secondary); border-radius: var(--radius-xl); color: var(--foreground); margin-top: 1rem; }