.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; } }