/* General Reset & Base Styles (Assume some global styles exist, but these are good additions) */ :root { /* Define your brand colors */ --primary-color: #0056b3; /* A deep blue for Bridgeman Accessible */ --secondary-color: #28a745; /* A complementary green */ --accent-color: #ffc107; /* A bright accent color */ --text-color: light-dark(#333, #f8f9fa); /* Dark text for light mode, light text for dark mode */ --light-text-color: #f8f9fa; --background-light: light-dark(#f4f7f6, #343a40); /* Light background for light mode, dark for dark mode */ --background-dark: light-dark(#e9ecef, #212529); /* Dark background for dark mode */ --border-color: light-dark(#ced4da, #495057); /* Light border for light mode, dark for dark mode */ /* Font sizes (adjust as needed) */ --font-size-base: 1rem; --font-size-large: 1.25rem; --font-size-xl: 2rem; --font-size-xxl: 2.5rem; /* Spacing */ --spacing-xs: 0.5rem; --spacing-sm: 1rem; --spacing-md: 1.5rem; --spacing-lg: 2rem; --spacing-xl: 3rem; /* Border Radius */ --border-radius: 8px; /* Shadow */ --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } body { font-family: 'Arial', sans-serif; /* Or your preferred brand font */ line-height: 1.6; color: var(--text-color); background-color: var(--background-light); margin: 0; padding: 0; } /* --- Section Styling --- */ .contact-hero { background: linear-gradient(to right, var(--primary-color), #003366); /* Darker blue blend */ color: var(--light-text-color); padding: var(--spacing-xl) var(--spacing-sm); text-align: center; box-shadow: var(--box-shadow); margin-bottom: var(--spacing-lg); } .contact-hero-content { max-width: 800px; margin: 0 auto; } .contact-hero h1 { font-size: var(--font-size-xxl); margin-bottom: var(--spacing-sm); text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); } .contact-hero p { font-size: var(--font-size-large); opacity: 0.9; } .contact-details-section, .feedback-section { padding: var(--spacing-xl) var(--spacing-sm); background-color: var(--background-light); } .contact-details-container { display: flex; flex-wrap: wrap; /* Allows wrapping on smaller screens */ gap: var(--spacing-xl); /* Space between blocks */ max-width: 1000px; margin: 0 auto; justify-content: center; /* Center blocks when they wrap */ } .contact-info-block, .newsletter-block { flex: 1; /* Allows blocks to grow and shrink */ min-width: 300px; /* Minimum width before wrapping */ background-color: light-dark(#fff, #343a40); padding: var(--spacing-lg); border-radius: var(--border-radius); box-shadow: var(--box-shadow); display: flex; flex-direction: column; } .feedback-container { max-width: 700px; margin: 0 auto; background-color: light-dark(#fff, #343a40); padding: var(--spacing-lg); border-radius: var(--border-radius); box-shadow: var(--box-shadow); } /* --- Headings --- */ h2 { color: var(--primary-color); font-size: var(--font-size-xl); margin-bottom: var(--spacing-md); border-bottom: 2px solid var(--accent-color); /* Underline effect */ padding-bottom: var(--spacing-xs); } /* --- Contact Information Styles --- */ .contact-info-block .contact-item { font-size: var(--font-size-large); margin-bottom: var(--spacing-md); display: flex; /* For icon alignment */ align-items: center; } .contact-info-block .icon-link { display: flex; align-items: center; color: var(--primary-color); text-decoration: none; transition: color 0.3s ease; } .contact-info-block .icon-link:hover, .contact-info-block .icon-link:focus { color: var(--secondary-color); outline: 2px solid var(--secondary-color); /* Accessibility focus */ outline-offset: 2px; } .contact-info-block .icon { margin-right: var(--spacing-sm); font-size: var(--font-size-large); color: var(--accent-color); } /* --- Form Styles --- */ .form-group { margin-bottom: var(--spacing-md); } .form-group label { display: block; margin-bottom: var(--spacing-xs); font-weight: bold; color: var(--text-color); } .form-group input[type="text"], .form-group input[type="email"], .form-group textarea { width: 100%; padding: var(--spacing-xs) var(--spacing-sm); border: 1px solid var(--border-color); border-radius: var(--border-radius); font-size: var(--font-size-base); color: var(--text-color); box-sizing: border-box; /* Include padding in width */ transition: border-color 0.3s ease, box-shadow 0.3s ease; } .form-group input[type="text"]:focus, .form-group input[type="email"]:focus, .form-group textarea:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.2); /* Focus ring */ outline: none; /* Remove default outline */ } .form-group textarea { resize: vertical; /* Allow vertical resizing */ min-height: 100px; } .required { color: #dc3545; /* Red for required indicator */ font-weight: normal; font-size: 0.85em; } /* --- Button Styles --- */ .button { display: inline-block; padding: var(--spacing-sm) var(--spacing-md); border: none; border-radius: var(--border-radius); font-size: var(--font-size-large); font-weight: bold; cursor: pointer; text-align: center; text-decoration: none; transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease; } .primary-button { background-color: var(--primary-color); color: var(--light-text-color); } .primary-button:hover, .primary-button:focus { background-color: #004494; /* Darker primary */ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); outline: 2px solid var(--accent-color); /* Accessible focus */ outline-offset: 2px; } .secondary-button { background-color: var(--secondary-color); color: var(--light-text-color); margin-top: var(--spacing-md); /* Space below forms */ } .secondary-button:hover, .secondary-button:focus { background-color: #218838; /* Darker secondary */ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); outline: 2px solid var(--accent-color); /* Accessible focus */ outline-offset: 2px; } /* --- Responsive Adjustments --- */ @media (max-width: 768px) { .contact-details-container { flex-direction: column; /* Stack blocks vertically on smaller screens */ gap: var(--spacing-lg); } .contact-info-block, .newsletter-block { min-width: unset; /* Remove min-width to allow full width */ width: 100%; /* Take full width */ } .contact-hero h1 { font-size: var(--font-size-xl); } .contact-hero p { font-size: var(--font-size-base); } .contact-details-section, .feedback-section { padding: var(--spacing-lg) var(--spacing-sm); } } @media (max-width: 480px) { .contact-hero { padding: var(--spacing-lg) var(--spacing-xs); } .contact-hero h1 { font-size: var(--font-size-large); } .contact-hero p { font-size: 0.9rem; } h2 { font-size: var(--font-size-large); } .button { width: 100%; /* Full width buttons on very small screens */ padding: var(--spacing-sm) var(--spacing-xs); } }