283 lines
4.8 KiB
CSS

/* Channels Page Styles */
.channelsPage {
background: var(--background);
}
/* 1. About/Intro Section (Ref Image 1) */
.introSection {
padding: 4rem 0;
background: white;
overflow: hidden;
}
.introContainer {
display: grid;
grid-template-columns: 1fr;
gap: 4rem;
align-items: center;
}
/* Left Image Structure */
.introImageWrapper {
position: relative;
padding: 2rem;
display: flex;
justify-content: center;
}
.introFrame {
position: absolute;
left: 20px;
bottom: 20px;
width: 90%;
height: 95%;
border: 4px solid #ec4899;
/* Pink Border */
border-radius: 20px;
z-index: 0;
transform: none;
/* Reset rotation */
margin: 0;
}
.introImgContainer {
position: relative;
z-index: 1;
border-radius: 20px;
overflow: hidden;
transform: translate(20px, -20px);
/* Move image up-right relative to frame */
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 450px;
}
.introImg {
width: 100%;
height: auto;
display: block;
object-fit: cover;
}
/* Right Content */
.introContent h2 {
font-size: 2.5rem;
font-weight: 800;
margin-bottom: 1.5rem;
background: var(--gradient-primary);
/* reusing variable or hardcoded gradient */
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
line-height: 1.2;
}
.introContent p {
color: var(--text-secondary);
font-size: 1.05rem;
line-height: 1.7;
margin-bottom: 2rem;
}
.learnMoreBtn {
background: #2563eb;
color: white;
border: none;
padding: 1rem 2rem;
border-radius: 50px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
}
.learnMoreBtn:hover {
background: #1d4ed8;
transform: translateY(-2px);
}
/* 2. Process/Learning Section (Ref Image 2 - Grid of 4) */
.processSection {
padding: 4rem 0;
background: #F8FAFC;
/* Light gray bg */
text-align: center;
}
.processHeader {
max-width: 700px;
margin: 0 auto 4rem;
}
.processHeader h2 {
font-size: 2.5rem;
font-weight: 800;
margin-bottom: 1rem;
color: var(--foreground);
}
.processGrid {
display: grid;
grid-template-columns: 1fr;
gap: 3rem;
}
.processCard {
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
}
.processIcon {
width: 60px;
height: 60px;
background: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #2563eb;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
margin-bottom: 0.5rem;
font-size: 1.25rem;
}
.processCard h3 {
font-size: 1.1rem;
font-weight: 700;
color: var(--foreground);
}
.processCard p {
font-size: 0.9rem;
color: var(--text-secondary);
line-height: 1.5;
}
/* 3. Testimonial Section (Left Slider, Right Image) */
.testimonialSection {
padding: 4rem 0;
background: white;
}
.testimonialGrid {
display: grid;
grid-template-columns: 1fr;
gap: 5rem;
align-items: center;
}
/* Right Image */
.testimonialImageWrapper {
position: relative;
order: -1;
/* Mobile first: image top? Or default to bottom. Lets check desktop media query */
}
.testimonialImg {
border-radius: 20px;
box-shadow: 0 20px 40px rgba(37, 99, 235, 0.15);
width: 100%;
height: auto;
}
/* Left Content Slider */
.testimonialContent {
position: relative;
overflow: hidden;
padding-bottom: 3rem;
/* Space for dots */
}
.testimonialSlide {
display: none;
animation: fadeIn 0.5s ease-in-out;
}
.testimonialSlide.active {
display: block;
}
.quoteIcon {
font-size: 3rem;
color: #ec4899;
opacity: 0.2;
margin-bottom: 1rem;
}
.quoteText {
font-size: 1.5rem;
font-weight: 600;
line-height: 1.4;
color: var(--foreground);
margin-bottom: 2rem;
font-style: italic;
}
.author h4 {
font-size: 1.1rem;
font-weight: 700;
color: #2563eb;
}
.author p {
font-size: 0.9rem;
color: var(--text-secondary);
}
/* Dots */
.dots {
display: flex;
gap: 0.5rem;
margin-top: 2rem;
}
.dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: #cbd5e1;
cursor: pointer;
transition: background 0.3s;
}
.dot.active {
background: #2563eb;
width: 24px;
border-radius: 10px;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive */
@media (min-width: 900px) {
.introContainer {
grid-template-columns: 1fr 1fr;
}
.processGrid {
grid-template-columns: repeat(4, 1fr);
}
.testimonialGrid {
grid-template-columns: 1fr 1fr;
}
.testimonialImageWrapper {
order: -1;
/* Image on Left */
}
}