/* --- Global Styles & Variables --- */ :root { --primary-color: #333333; /* Dark Charcoal */ --secondary-color: #6c757d; /* Muted Grey */ --background-light: #f4f4f4; /* Light Grey */ --background-dark: #e9e8e6; /* From your doc, a warmer light grey */ --text-light: #ffffff; --font-family: 'Poppins', sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-family); line-height: 1.6; color: var(--primary-color); background-color: var(--background-light); } .container { max-width: 1100px; margin: 0 auto; padding: 0 2rem; } h1, h2, h3, h4 { line-height: 1.2; margin-bottom: 1rem; font-weight: 700; } h2 { font-size: 2.5rem; text-align: center; margin-bottom: 2rem; text-transform: uppercase; letter-spacing: 2px; } p { margin-bottom: 1rem; } a { text-decoration: none; color: var(--primary-color); } .intro-text { max-width: 800px; margin: 0 auto 2rem auto; text-align: center; font-size: 1.1rem; color: var(--secondary-color); } /* --- Header & Navigation --- */ header { background-color: rgba(255, 255, 255, 0.9); position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; box-shadow: 0 2px 5px rgba(0,0,0,0.1); backdrop-filter: blur(5px); } header .container { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; padding-bottom: 1rem; } .logo { display: block; } .logo img { height: 2.5rem; /* This matches the original font-size to maintain the height */ width: auto; /* This preserves your logo's aspect ratio */ vertical-align: middle; /* Good practice for image alignment */ } header nav ul { list-style: none; display: flex; gap: 1.5rem; } header nav a { font-weight: 500; transition: color 0.3s ease; } header nav a:hover { color: var(--secondary-color); } /* --- Hero Section --- */ .hero { height: 100vh; display: flex; justify-content: center; align-items: center; text-align: center; color: var(--text-light); /* IMPORTANT: Replace with your hero image */ background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('images/hero-background.jpg') no-repeat center center/cover; } .hero-content { max-width: 800px; } .hero h1 { font-size: 3.5rem; font-weight: 700; } .hero p { font-size: 1.2rem; font-weight: 300; margin-bottom: 2rem; } .cta-button { display: inline-block; padding: 0.8rem 2rem; background-color: var(--text-light); color: var(--primary-color); border: 2px solid var(--text-light); border-radius: 5px; font-weight: 700; transition: all 0.3s ease; } .cta-button:hover { background-color: transparent; color: var(--text-light); } /* --- Content Sections --- */ .content-section { padding: 6rem 0; } .content-section-dark { padding: 6rem 0; background-color: var(--background-dark); } /* About Section Grids */ .about-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin: 3rem 0; } .about-card { background: #fff; padding: 2rem; border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); } .values-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; } .value-item { font-size: 0.95rem; color: var(--secondary-color); } .value-item strong { color: var(--primary-color); font-weight: 700; } /* --- Product Grid --- */ .product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 2rem; } .product-card { background-color: #fff; border-radius: 5px; overflow: hidden; text-align: center; box-shadow: 0 5px 15px rgba(0,0,0,0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; } .product-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .product-card img { width: 100%; height: 220px; object-fit: cover; } .product-card h4 { padding: 1.5rem; margin: 0; font-weight: 500; } /* --- Logo Grids (Partners & Clients) --- */ .logo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 2rem; align-items: center; justify-items: center; margin-top: 3rem; } .logo-grid img { max-width: 150px; filter: grayscale(100%); opacity: 0.7; transition: all 0.3s ease; } .logo-grid img:hover { filter: grayscale(0%); opacity: 1; } /* --- Contact Section --- */ .contact-details { text-align: center; font-size: 1.2rem; margin-top: 2rem; } .contact-details a { font-weight: 700; } .contact-details a:hover { text-decoration: underline; } /* --- Footer --- */ footer { background-color: var(--primary-color); color: var(--background-dark); text-align: center; padding: 2rem 0; } .location iframe { display: block; margin: 30px auto; } footer p { margin: 0; font-size: 0.9rem; } footer p:first-child { margin-bottom: 0.5rem; } /* --- Responsive Design --- */ @media(max-width: 768px) { h2 { font-size: 2rem; } .hero h1 { font-size: 2.5rem; } header .container { flex-direction: column; gap: 0.5rem; align-items: flex-start; } .about-grid, .values-grid { grid-template-columns: 1fr; } .content-section, .content-section-dark { padding: 4rem 0; } header nav ul { flex-direction: column; width: 100%; gap: 1rem; } header nav li { width: 100%; } header nav a { display: block; width: 100%; } } .css-slider-container { max-width: 900px; /* Matches your image width */ margin: 2rem auto 0 auto; position: relative; } /* 1. Hide the actual radio buttons */ .css-slider-container input[type="radio"] { display: none; } /* 2. Style the slider viewport and wrapper */ .slider-viewport { width: 100%; overflow: hidden; /* This hides the slides that are off-screen */ border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.12); } .slider-wrapper { display: flex; /* Lines up slides in a row */ width: 500%; /* 100% for each of the 5 slides */ transition: transform 0.6s ease-in-out; /* The slide animation */ } .slide { width: 20%; /* Each slide takes up 1/5th of the wrapper width */ } .slide img { width: 100%; height: 60vh; max-height: 500px; object-fit: cover; display: block; } /* 3. Style the navigation dots (which are labels) */ .slider-nav { text-align: center; padding-top: 1rem; } .slider-nav label { display: inline-block; width: 12px; height: 12px; background-color: #c4c4c4; border-radius: 50%; margin: 0 5px; cursor: pointer; transition: background-color 0.3s ease; } /* 4. The Magic: Connect the radio buttons to the slider position */ /* When a radio button is :checked, move the .slider-wrapper using the general sibling selector (~) */ #slide-1:checked ~ .slider-viewport .slider-wrapper { transform: translateX(0%); } #slide-2:checked ~ .slider-viewport .slider-wrapper { transform: translateX(-20%); } #slide-3:checked ~ .slider-viewport .slider-wrapper { transform: translateX(-40%); } #slide-4:checked ~ .slider-viewport .slider-wrapper { transform: translateX(-60%); } #slide-5:checked ~ .slider-viewport .slider-wrapper { transform: translateX(-80%); } /* 5. Highlight the active navigation dot */ /* When a radio is :checked, style its corresponding label */ #slide-1:checked ~ .slider-nav label[for="slide-1"] { background-color: var(--primary-color); } #slide-2:checked ~ .slider-nav label[for="slide-2"] { background-color: var(--primary-color); } #slide-3:checked ~ .slider-nav label[for="slide-3"] { background-color: var(--primary-color); } #slide-4:checked ~ .slider-nav label[for="slide-4"] { background-color: var(--primary-color); } #slide-5:checked ~ .slider-nav label[for="slide-5"] { background-color: var(--primary-color); }