SocialBuddyMarketingWebsite/components/SocialConnect.module.css
2025-12-18 15:29:45 +05:30

338 lines
6.3 KiB
CSS

.carouselSection {
padding: 4rem 0;
overflow: hidden;
background: #fdfdfd;
}
.container {
max-width: 1200px;
margin: 0 auto;
text-align: center;
padding: 0 1.5rem;
}
.header {
margin-bottom: 4rem;
}
.subTitle {
background: linear-gradient(to right, #2563eb 0%, #ec4899 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 0.875rem;
margin-bottom: 1rem;
}
.subtitle {
display: inline-block;
color: var(--primary);
font-weight: 600;
margin-bottom: 1rem;
position: relative;
padding: 0 1.5rem;
}
/* Dash lines beside subtitle */
.subtitle::before,
.subtitle::after {
content: '';
position: absolute;
top: 50%;
width: 20px;
height: 2px;
background: var(--primary);
}
.subtitle::before {
left: 0;
}
.subtitle::after {
right: 0;
}
.title {
font-size: clamp(2rem, 5vw, 3rem);
font-weight: 800;
margin-bottom: 1.5rem;
line-height: 1.2;
color: var(--text-primary);
}
.description {
max-width: 700px;
margin: 0 auto;
color: var(--text-secondary);
line-height: 1.6;
}
/* Arc Container */
.arcContainer {
position: relative;
height: 470px;
margin-top: 2rem;
width: 100%;
max-width: 900px;
margin-left: auto;
margin-right: auto;
}
/* Dashed Semi-Circle */
.dashedArc {
position: absolute;
top: 50px;
/* Start arch slightly down */
left: 10%;
right: 10%;
height: 400px;
/* Tall enough */
border: 2px dashed #e2e8f0;
border-radius: 50% 50% 0 0;
/* Semi-circle top */
border-bottom: none;
z-index: 0;
}
/* Icon Slots */
.iconWrapper {
position: absolute;
width: 60px;
height: 60px;
transform: translate(-50%, -50%);
transition: all 0.6s cubic-bezier(0.25, 1, 0.5, 1);
cursor: pointer;
z-index: 2;
}
.iconCircle {
width: 100%;
height: 100%;
background: white;
border-radius: 50%;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
display: flex;
align-items: center;
justify-content: center;
color: var(--color);
border: 2px solid transparent;
/* default */
transition: all 0.3s ease;
}
.iconCircle svg {
width: 28px;
height: 28px;
fill: currentColor;
}
/* Slot Positions (Assuming 900px wide container) */
/* Arc approximate path:
Center (Slot 3): 50% X, 50px Y
Mid Right (Slot 4): 80% X, 180px Y
Far Right (Slot 5): 90% X, 350px Y
Mid Left (Slot 2): 20% X, 180px Y
Far Left (Slot 1): 10% X, 350px Y
*/
.slot3 {
/* Center Active */
left: 50%;
top: 50px;
z-index: 10;
/* Active styling logic handled here? No, iconWrapper handles POS */
}
.slot3 .iconCircle {
/* Active item gets a ring or glow? */
border-color: var(--color);
box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.05);
}
.slot4 {
/* Right Mid */
left: 80%;
top: 150px;
}
.slot5 {
/* Right Entry - fully visible, same size */
left: 92%;
top: 300px;
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
.slot2 {
/* Left Mid */
left: 20%;
top: 150px;
}
.slot1 {
/* Left Exit - fully visible, same size */
left: 8%;
top: 300px;
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
.slot0 {
/* Hidden / Exited */
left: 0%;
top: 400px;
opacity: 0;
pointer-events: none;
}
/* Center Content Card */
.centerCard {
position: absolute;
top: 130px;
/* Below arch vertex */
left: 50%;
transform: translateX(-50%);
width: 320px;
text-align: center;
z-index: 5;
background: transparent;
/* Or white if needed? Image shows text floating on bg */
display: flex;
flex-direction: column;
align-items: center;
}
.cardIcon {
font-size: 3rem;
margin-bottom: 1rem;
width: 64px;
height: 64px;
margin: 0 auto 1rem;
}
.cardIcon svg {
width: 100%;
height: 100%;
}
.cardTitle {
font-size: 1.5rem;
margin-bottom: 1rem;
color: var(--text-primary);
}
.cardDesc {
font-size: 0.95rem;
color: var(--text-secondary);
margin-bottom: 2rem;
line-height: 1.6;
}
.brandName {
font-weight: 700;
color: var(--primary);
}
.readMoreBtn {
border: none;
color: white;
padding: 0.75rem 2rem;
border-radius: 50px;
font-weight: 600;
cursor: pointer;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
transition: transform 0.2s;
}
.readMoreBtn:hover {
transform: translateY(-2px);
}
/* Floating More Services Btn - Moved to Bottom Center */
.moreServicesBtn {
position: absolute;
bottom: -20px;
/* Position at bottom */
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 0.5rem;
background: #e0f2fe;
/* Light blue */
padding: 0.5rem 1.5rem;
border-radius: 50px;
cursor: pointer;
color: var(--text-primary);
font-weight: 600;
font-size: 0.9rem;
transition: all 0.3s;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
z-index: 10;
top: auto;
/* Override previous top */
right: auto;
/* Override previous right */
}
.moreServicesBtn:hover {
background: #bae6fd;
transform: translateX(-50%) translateY(-2px);
}
.plusIcon {
background: var(--secondary);
color: white;
width: 24px;
height: 24px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
@media (max-width: 768px) {
.arcContainer {
height: auto;
min-height: 380px;
}
.dashedArc {
display: none;
/* Hide confusing arc on mobile */
}
.iconWrapper {
position: relative;
transform: none;
display: inline-block;
margin: 0.5rem;
left: auto !important;
top: auto !important;
opacity: 1 !important;
}
.centerCard {
position: relative;
top: auto;
left: auto;
transform: none;
margin: 2rem auto;
max-width: 100%;
/* Restrict width */
padding: 0 1rem;
/* Add internal breathing room */
}
.moreServicesBtn {
position: relative;
right: auto;
top: auto;
justify-content: center;
margin-top: 2rem;
}
}