576 lines
10 KiB
CSS

/* About Page Styles */
.aboutPage {
background: var(--background);
}
/* Hero Section */
.hero {
background: var(--background-secondary);
padding: 8rem 0 8rem;
position: relative;
border-bottom: 1px solid var(--border-color);
}
.heroContent {
text-align: center;
max-width: 800px;
margin: 0 auto;
}
.heroTitle {
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 800;
margin-bottom: 1rem;
background: var(--gradient-primary);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.breadcrumb {
color: var(--text-secondary);
font-size: 0.95rem;
}
.breadcrumb a {
color: var(--text-secondary);
text-decoration: none;
transition: color 0.2s;
}
.breadcrumb a:hover {
color: var(--primary);
}
.breadcrumb span {
color: var(--primary);
font-weight: 600;
}
/* 1. Story Section (Image 3 Style) */
.storySection {
padding: 4rem 0;
background: white;
overflow: hidden;
}
.storyGrid {
display: grid;
grid-template-columns: 1fr;
gap: 4rem;
align-items: center;
}
.storyImageContainer {
position: relative;
padding: 2rem;
/* Space for frame */
}
/* The decorative frame behind the image */
.storyFrame {
position: absolute;
inset: 0;
border: 3px solid #ec4899;
/* Primary Pink */
border-radius: 20px;
transform: rotate(-3deg);
z-index: 0;
width: 90%;
height: 90%;
margin: auto;
}
.storyImageWrapper {
position: relative;
z-index: 1;
border-radius: 20px;
overflow: hidden;
box-shadow: var(--shadow-xl);
transform: rotate(2deg);
/* Counter tilt */
}
.storyImg {
width: 100%;
height: auto;
display: block;
}
.storyContent {
padding-left: 2rem;
}
.storyTitle {
color: #ec4899;
/* Pink Title */
font-size: 1.1rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 1rem;
}
.storyHeading {
font-size: 2rem;
font-weight: 700;
color: var(--foreground);
margin-bottom: 1.5rem;
line-height: 1.3;
}
.storyText {
color: var(--text-secondary);
margin-bottom: 1.5rem;
font-size: 1rem;
line-height: 1.7;
}
.storyBtn {
background: #ec4899;
color: white;
border: none;
padding: 1rem 2rem;
font-weight: 600;
border-radius: 8px;
cursor: pointer;
font-size: 1rem;
transition: all 0.3s ease;
box-shadow: 0 4px 14px 0 rgba(236, 72, 153, 0.39);
}
.storyBtn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(236, 72, 153, 0.23);
background: #db2777;
}
/* 2. Why Choose Us (Image 1 Style) */
.whyChooseSection {
padding: 4rem 0 4rem;
background: var(--background-secondary);
}
.whyHeader {
text-align: center;
max-width: 700px;
margin: 0 auto 4rem;
}
.sectionTitle {
font-size: 2.5rem;
font-weight: 800;
margin-bottom: 1rem;
color: var(--foreground);
}
.sectionSubtitle {
color: var(--text-secondary);
font-size: 1.1rem;
}
.cardsGrid {
display: grid;
grid-template-columns: 1fr;
gap: 2rem;
}
.card {
padding: 2.5rem 1.5rem;
border-radius: 24px;
text-align: center;
transition: transform 0.3s ease;
border: 1px solid transparent;
}
.card:hover {
transform: translateY(-10px);
}
.cardIconWrapper {
width: 64px;
height: 64px;
border-radius: 50%;
background: white;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 1.5rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.card h3 {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 1rem;
color: var(--foreground);
}
.card p {
font-size: 0.95rem;
color: var(--text-secondary);
line-height: 1.5;
}
/* Card Variants */
/* Purple */
.cardPurple {
background: #F3E8FF;
border-color: #E9D5FF;
}
.cardPurple .cardIconWrapper {
color: #9333EA;
}
/* Orange */
.cardOrange {
background: #FFEDD5;
/* Peach/Orange */
border-color: #FED7AA;
}
.cardOrange .cardIconWrapper {
color: #F97316;
}
/* Pink */
.cardPink {
background: #FCE7F3;
border-color: #FBCFE8;
}
.cardPink .cardIconWrapper {
color: #EC4899;
}
/* Green */
.cardGreen {
background: #DCFCE7;
border-color: #BBF7D0;
}
.cardGreen .cardIconWrapper {
color: #16A34A;
/* Updated green for better contrast on light bg, slightly darker than accent */
}
/* 3. Feature Set Section (Image 2 Style) */
.featureSetSection {
padding: 4rem 0;
background: white;
overflow: hidden;
}
.featureSetGrid {
display: grid;
grid-template-columns: 1fr;
gap: 4rem;
align-items: center;
}
.featureSetTitle {
font-size: 2.5rem;
font-weight: 800;
margin-bottom: 3rem;
line-height: 1.2;
color: var(--foreground);
}
.featureList {
display: flex;
flex-direction: column;
gap: 2rem;
}
.featureListItem {
display: flex;
gap: 1.5rem;
align-items: flex-start;
}
.featureListIcon {
width: 50px;
height: 50px;
border-radius: 12px;
background: var(--background-secondary);
color: var(--primary);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.featureListText h4 {
font-size: 1.1rem;
font-weight: 700;
margin-bottom: 0.5rem;
color: var(--foreground);
}
.featureListText p {
font-size: 0.95rem;
color: var(--text-secondary);
line-height: 1.5;
}
/* Mockup Side */
.mockupWrapper {
position: relative;
background: #F8FAFC;
/* Subtle bg blob? */
border-radius: 40px;
padding: 2rem;
/* Center the image */
display: flex;
justify-content: center;
align-items: center;
}
.mockupWrapper::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at center, #F1F5F9 0%, transparent 70%);
z-index: 0;
}
.mockupImg {
position: relative;
z-index: 1;
width: 100%;
height: auto;
filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
}
.floatCard {
position: absolute;
background: white;
padding: 1rem 1.5rem;
border-radius: 16px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
z-index: 2;
display: flex;
flex-direction: column;
gap: 0.25rem;
animation: float 4s ease-in-out infinite;
}
.floatCard1 {
top: 10%;
right: 5%;
animation-delay: 0s;
}
.floatCard2 {
bottom: 15%;
right: 10%;
animation-delay: 1.5s;
}
.floatCard span {
font-weight: 600;
color: var(--foreground);
font-size: 0.9rem;
}
.floatCard small {
color: var(--text-secondary);
font-size: 0.8rem;
}
.floatCard strong {
color: var(--primary);
font-size: 1.2rem;
}
/* Responsive */
@media (min-width: 900px) {
.storyGrid {
grid-template-columns: 1fr 1fr;
}
.cardsGrid {
grid-template-columns: repeat(4, 1fr);
}
.featureSetGrid {
grid-template-columns: 1fr 1fr;
}
}
/* 4. Ready CTA Section (Image Bottom Style) */
.readySection {
padding: 4rem 0 4rem;
/* Padding bottom mainly, card has internal padding */
background: white;
}
.readyCard {
background: linear-gradient(135deg, #2563eb 0%, #ec4899 100%);
/* Primary Gradient Blue->Pink */
border-radius: 40px;
padding: 4rem 4rem 0;
/* No bottom padding, content aligns to bottom */
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
position: relative;
overflow: hidden;
color: white;
box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.4);
}
.readyContent {
max-width: 600px;
text-align: center;
margin-bottom: 3rem;
position: relative;
z-index: 2;
}
.readyTitle {
font-size: clamp(2rem, 5vw, 3rem);
font-weight: 800;
margin-bottom: 1.5rem;
line-height: 1.2;
color: white;
}
.whiteGradientText {
color: #fff;
text-shadow: 0 0 20px rgba(255, 255, 255, 0.5);
}
.readyText {
font-size: 1.05rem;
line-height: 1.6;
margin-bottom: 2.5rem;
opacity: 0.9;
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.readyBtn {
background: white;
color: #ec4899;
/* Pink text */
border: none;
padding: 1rem 2.5rem;
border-radius: 50px;
font-weight: 700;
font-size: 1rem;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.readyBtn:hover {
transform: translateY(-2px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
}
.readyImageWrapper {
position: relative;
z-index: 1;
width: 100%;
display: flex;
justify-content: center;
margin-bottom: -50px;
/* Let it bleed out slightly if we want, or just sit at bottom */
}
/* Phone Mockup */
.phoneFrame {
position: relative;
width: 300px;
height: auto;
transform: rotate(-10deg) translateX(-20px);
/* Tilted left like ref */
transition: transform 0.3s ease;
}
.phoneFrame:hover {
transform: rotate(0deg) translateX(0);
}
.phoneScreen {
width: 100%;
height: auto;
border-radius: 30px;
border: 8px solid #1e293b;
/* Dark Frame */
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
background: white;
/* Fallback */
}
.phoneOverlayCard {
position: absolute;
top: 20%;
right: -40px;
background: white;
color: #0f172a;
padding: 1rem 1.5rem;
border-radius: 16px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
display: flex;
flex-direction: column;
gap: 0.5rem;
animation: float 5s ease-in-out infinite reverse;
}
.overlayItem {
font-size: 0.85rem;
background: #f1f5f9;
padding: 0.5rem;
border-radius: 8px;
font-weight: 500;
}
/* Desktop Layout */
@media (min-width: 900px) {
.readyCard {
flex-direction: row;
align-items: center;
text-align: left;
padding: 4rem 4rem 4rem 6rem;
/* Left padding for image space */
overflow: visible;
/* Allow image to pop out if needed */
/* Space for pop out */
}
.readyContent {
max-width: 50%;
text-align: left;
order: 2;
/* Text on right */
margin-bottom: 0;
}
.readyText {
margin-left: 0;
margin-right: 0;
}
.readyImageWrapper {
order: 1;
/* Image on left */
width: 40%;
justify-content: flex-start;
margin-bottom: 0;
position: relative;
left: -20px;
}
.phoneFrame {
width: 280px;
transform: rotate(-12deg) translateY(20px) scale(1.1);
}
}