/* * Netresearch Brand Styles * Complete CSS template following brand guidelines */ /* ============================================ CSS CUSTOM PROPERTIES ============================================ */ :root { /* Brand Colors */ --color-primary: #2F99A4; --color-primary-rgb: 47, 153, 164; --color-primary-dark: #257880; --color-accent: #FF4D00; --color-accent-rgb: 255, 77, 0; --color-accent-dark: #CC3D00; /* Neutral Colors */ --color-text-primary: #585961; --color-text-secondary: #8A8B93; --color-background: #FFFFFF; --color-background-alt: #F5F5F5; --color-border: #CCCDCC; --color-border-light: #E5E5E5; /* Typography */ --font-headline: 'Raleway', sans-serif; --font-body: 'Open Sans', sans-serif; /* Font Sizes */ --font-size-xs: 12px; --font-size-sm: 14px; --font-size-base: 16px; --font-size-lg: 18px; --font-size-xl: 20px; --font-size-2xl: 24px; --font-size-3xl: 28px; --font-size-4xl: 36px; --font-size-5xl: 48px; --font-size-6xl: 56px; /* Spacing */ --spacing-xs: 8px; --spacing-sm: 12px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --spacing-xxl: 48px; --spacing-3xl: 64px; --spacing-4xl: 96px; /* Shadows */ --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08); --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12); --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16); } /* ============================================ RESET & BASE STYLES ============================================ */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: var(--font-body); font-size: var(--font-size-base); line-height: 1.6; color: var(--color-text-primary); background-color: var(--color-background); } /* ============================================ TYPOGRAPHY ============================================ */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-headline); font-weight: 700; line-height: 1.2; color: var(--color-text-primary); } h1 { font-size: var(--font-size-5xl); margin-bottom: var(--spacing-lg); } h2 { font-size: var(--font-size-4xl); margin-bottom: var(--spacing-lg); } h3 { font-size: var(--font-size-3xl); font-weight: 600; margin-bottom: var(--spacing-md); } h4 { font-size: var(--font-size-2xl); font-weight: 600; margin-bottom: var(--spacing-sm); } p { margin-bottom: var(--spacing-md); } .lead { font-size: var(--font-size-xl); font-weight: 400; line-height: 1.6; } a { color: var(--color-primary); text-decoration: none; transition: all 0.3s ease; } a:hover { color: var(--color-primary-dark); } /* ============================================ LAYOUT ============================================ */ .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-lg); } .section { padding: var(--spacing-4xl) 0; } .section-alt { background-color: var(--color-background-alt); } .section-title { text-align: center; margin-bottom: var(--spacing-md); } .section-subtitle { text-align: center; font-size: var(--font-size-xl); color: var(--color-text-secondary); margin-bottom: var(--spacing-xxl); } .two-column { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-xl); align-items: center; } .three-column { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-lg); } /* ============================================ NAVIGATION ============================================ */ .navbar { position: sticky; top: 0; z-index: 1000; background: var(--color-background); box-shadow: var(--shadow-sm); padding: var(--spacing-md) 0; } .navbar-container { display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-lg); } .navbar-logo { height: 48px; } .navbar-menu { display: flex; gap: var(--spacing-lg); list-style: none; } .navbar-link { font-family: var(--font-headline); font-size: var(--font-size-base); font-weight: 400; color: var(--color-text-primary); padding: var(--spacing-xs) var(--spacing-md); transition: all 0.3s ease; } .navbar-link:hover, .navbar-link.active { color: var(--color-primary); font-weight: 600; } .navbar-toggle { display: none; flex-direction: column; gap: 4px; background: none; border: none; cursor: pointer; } .navbar-toggle span { display: block; width: 24px; height: 3px; background: var(--color-primary); transition: all 0.3s ease; } /* ============================================ HERO SECTION ============================================ */ .hero { position: relative; display: flex; align-items: center; justify-content: center; min-height: 600px; padding: var(--spacing-4xl) var(--spacing-lg); background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); color: var(--color-background); text-align: center; } .hero-content { max-width: 800px; z-index: 1; } .hero-title { color: var(--color-background); margin-bottom: var(--spacing-lg); } .hero-subtitle { font-size: var(--font-size-xl); line-height: 1.6; margin-bottom: var(--spacing-xl); opacity: 0.95; } .hero-cta { display: flex; gap: var(--spacing-md); justify-content: center; flex-wrap: wrap; } /* ============================================ BUTTONS ============================================ */ .btn-primary, .btn-secondary, .btn-outline { display: inline-block; font-family: var(--font-headline); font-size: var(--font-size-base); font-weight: 600; line-height: 1; text-align: center; text-decoration: none; padding: 12px 32px; border: none; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; } .btn-primary { background-color: var(--color-primary); color: var(--color-background); } .btn-primary:hover { background-color: var(--color-primary-dark); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(47, 153, 164, 0.3); } .btn-secondary { background-color: var(--color-accent); color: var(--color-background); } .btn-secondary:hover { background-color: var(--color-accent-dark); box-shadow: 0 4px 12px rgba(255, 77, 0, 0.3); } .btn-outline { background-color: transparent; color: var(--color-background); border: 2px solid var(--color-background); } .btn-outline:hover { background-color: var(--color-background); color: var(--color-primary); } .btn-large { padding: 16px 48px; font-size: var(--font-size-lg); } .btn-small { padding: 8px 24px; font-size: var(--font-size-sm); } /* ============================================ CARDS ============================================ */ .card { background: var(--color-background); border-radius: 8px; box-shadow: var(--shadow-sm); overflow: hidden; transition: all 0.3s ease; height: 100%; } .card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); } .card-image { width: 100%; height: 240px; object-fit: cover; } .card-content { padding: var(--spacing-lg); } .card-title { font-size: var(--font-size-2xl); font-weight: 600; margin-bottom: var(--spacing-sm); } .card-text { font-size: var(--font-size-base); line-height: 1.6; color: var(--color-text-primary); margin-bottom: var(--spacing-md); } .card-footer { padding: var(--spacing-md) var(--spacing-lg); border-top: 1px solid var(--color-border-light); background-color: var(--color-background-alt); } .card-meta { font-size: var(--font-size-sm); color: var(--color-text-secondary); } /* ============================================ LINKS ============================================ */ .link-standalone { font-family: var(--font-headline); font-weight: 600; display: inline-flex; align-items: center; gap: 8px; color: var(--color-primary); } .link-standalone::after { content: '→'; transition: transform 0.3s ease; } .link-standalone:hover::after { transform: translateX(4px); } /* ============================================ FORMS ============================================ */ .form-group { margin-bottom: var(--spacing-lg); } .form-label { display: block; font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text-primary); margin-bottom: var(--spacing-xs); } .form-input, .form-textarea { width: 100%; font-family: var(--font-body); font-size: var(--font-size-base); color: var(--color-text-primary); padding: 12px 16px; border: 1px solid var(--color-border); border-radius: 4px; background: var(--color-background); transition: all 0.3s ease; } .form-input:focus, .form-textarea:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(47, 153, 164, 0.1); } .form-input::placeholder, .form-textarea::placeholder { color: var(--color-text-secondary); } .form-textarea { min-height: 120px; resize: vertical; } /* ============================================ FOOTER ============================================ */ .footer { background-color: var(--color-text-primary); color: var(--color-background); padding: var(--spacing-4xl) 0 var(--spacing-lg); } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-xl); max-width: 1200px; margin: 0 auto; padding: 0 var(--spacing-lg); margin-bottom: var(--spacing-xl); } .footer-section h4 { font-size: var(--font-size-lg); font-weight: 600; color: var(--color-background); margin-bottom: var(--spacing-md); } .footer-section ul { list-style: none; padding: 0; margin: 0; } .footer-section li { margin-bottom: var(--spacing-sm); } .footer-section a { color: rgba(255, 255, 255, 0.8); text-decoration: none; transition: color 0.3s ease; } .footer-section a:hover { color: var(--color-primary); } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: var(--spacing-lg); text-align: center; } .footer-bottom p { color: rgba(255, 255, 255, 0.6); font-size: var(--font-size-sm); margin: 0; } /* ============================================ RESPONSIVE DESIGN ============================================ */ /* Tablet (768px and below) */ @media (max-width: 1024px) { .three-column { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { /* Typography */ h1 { font-size: var(--font-size-4xl); } h2 { font-size: var(--font-size-3xl); } h3 { font-size: var(--font-size-2xl); } /* Layout */ .two-column, .three-column { grid-template-columns: 1fr; } /* Hero */ .hero { min-height: 400px; padding: var(--spacing-xxl) var(--spacing-lg); } .hero-title { font-size: var(--font-size-4xl); } .hero-subtitle { font-size: var(--font-size-lg); } .hero-cta { flex-direction: column; } /* Navigation */ .navbar-toggle { display: flex; } .navbar-menu { position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; background: var(--color-background); padding: var(--spacing-lg); box-shadow: var(--shadow-md); transform: translateY(-100%); opacity: 0; visibility: hidden; transition: all 0.3s ease; } .navbar-menu.active { transform: translateY(0); opacity: 1; visibility: visible; } /* Sections */ .section { padding: var(--spacing-xxl) 0; } } /* Mobile (600px and below) */ @media (max-width: 600px) { h1 { font-size: var(--font-size-3xl); } h2 { font-size: var(--font-size-2xl); } .hero { min-height: 300px; } .btn-large { padding: 12px 32px; font-size: var(--font-size-base); } } /* ============================================ UTILITIES ============================================ */ .text-center { text-align: center; } .mb-0 { margin-bottom: 0; } .mb-sm { margin-bottom: var(--spacing-sm); } .mb-md { margin-bottom: var(--spacing-md); } .mb-lg { margin-bottom: var(--spacing-lg); } .mb-xl { margin-bottom: var(--spacing-xl); }