/*
Theme Name: Ihab Rehan HR Consulting
Description: Professional HR consulting website theme with modern design
Version: 1.0
Author: Your Name
*/
:root {
--primary-navy: #1E3A8A;
--pure-white: #FFFFFF;
--soft-gold: #F59E0B;
--light-gray: #F3F4F6;
--dark-gray: #374151;
--card-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Roboto', sans-serif;
line-height: 1.6;
color: var(--dark-gray);
background-color: var(--pure-white);
}
/* Header Styles */
.site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
background: var(--pure-white);
box-shadow: var(--card-shadow);
z-index: 1000;
padding: 1rem 0;
}
.nav-container {
max-width: 1200px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 2rem;
}
.site-logo img {
height: 50px;
}
.main-navigation ul {
display: flex;
list-style: none;
gap: 2rem;
align-items: center;
margin: 0;
}
.main-navigation a {
text-decoration: none;
color: var(--dark-gray);
font-weight: 500;
transition: color 0.3s ease;
}
.main-navigation a:hover {
color: var(--primary-navy);
}
.cta-button {
background: var(--primary-navy);
color: var(--pure-white) !important;
padding: 0.75rem 1.5rem;
border-radius: 6px;
text-decoration: none;
font-weight: 500;
transition: background-color 0.3s ease;
}
.cta-button:hover {
background: #1E40AF;
}
.mobile-menu-toggle {
display: none;
background: none;
border: none;
font-size: 1.5rem;
color: var(--primary-navy);
cursor: pointer;
}
/* Hero Section */
.hero-section {
min-height: 100vh;
display: flex;
align-items: center;
background: linear-gradient(135deg, var(--light-gray) 0%, var(--pure-white) 100%);
padding: 8rem 2rem 4rem;
}
.hero-container {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
}
.hero-content h1 {
font-family: 'Lato', sans-serif;
font-size: 3rem;
font-weight: 700;
color: var(--primary-navy);
margin-bottom: 1rem;
line-height: 1.2;
}
.hero-subtitle {
font-family: 'Lato', sans-serif;
font-size: 1.5rem;
font-weight: 500;
color: var(--dark-gray);
margin-bottom: 1.5rem;
}
.hero-description {
font-size: 1.125rem;
margin-bottom: 2rem;
line-height: 1.7;
}
.hero-image {
text-align: center;
}
.hero-image img {
width: 400px;
height: 400px;
border-radius: 50%;
object-fit: cover;
box-shadow: var(--card-shadow);
}
/* Services Section */
.services-section {
padding: 6rem 2rem;
background: var(--pure-white);
}
.services-container {
max-width: 1200px;
margin: 0 auto;
}
.section-title {
font-family: 'Lato', sans-serif;
font-size: 2.5rem;
font-weight: 700;
color: var(--primary-navy);
text-align: center;
margin-bottom: 3rem;
}
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.service-card {
background: var(--pure-white);
padding: 2.5rem;
border-radius: 12px;
box-shadow: var(--card-shadow);
text-align: center;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.service-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}
.service-icon {
width: 64px;
height: 64px;
margin: 0 auto 1.5rem;
}
.service-card h3 {
font-family: 'Lato', sans-serif;
font-size: 1.5rem;
font-weight: 700;
color: var(--primary-navy);
margin-bottom: 1rem;
}
.service-card p {
margin-bottom: 1.5rem;
line-height: 1.6;
}
.learn-more {
color: var(--primary-navy);
text-decoration: none;
font-weight: 500;
border-bottom: 2px solid transparent;
transition: border-color 0.3s ease;
}
.learn-more:hover {
border-color: var(--primary-navy);
}
/* About Section */
.about-section {
padding: 6rem 2rem;
background: var(--light-gray);
}
.about-container {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 2fr;
gap: 4rem;
align-items: center;
}
.about-image img {
width: 100%;
border-radius: 12px;
box-shadow: var(--card-shadow);
}
.about-content h2 {
font-family: 'Lato', sans-serif;
font-size: 2.5rem;
font-weight: 700;
color: var(--primary-navy);
margin-bottom: 1.5rem;
}
.about-content p {
font-size: 1.125rem;
margin-bottom: 1.5rem;
line-height: 1.7;
}
.credentials {
background: var(--pure-white);
padding: 1.5rem;
border-radius: 8px;
margin-top: 2rem;
}
.credentials h4 {
font-family: 'Lato', sans-serif;
color: var(--primary-navy);
margin-bottom: 0.5rem;
}
/* Testimonials Section */
.testimonials-section {
padding: 6rem 2rem;
background: var(--pure-white);
}
.testimonials-container {
max-width: 1200px;
margin: 0 auto;
}
.testimonials-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.testimonial-card {
background: var(--pure-white);
padding: 2rem;
border-radius: 12px;
box-shadow: var(--card-shadow);
position: relative;
}
.testimonial-card::before {
content: '"';
font-size: 4rem;
color: var(--soft-gold);
position: absolute;
top: -10px;
left: 20px;
font-family: serif;
}
.testimonial-text {
font-style: italic;
margin-bottom: 1.5rem;
padding-top: 1rem;
}
.testimonial-author {
font-weight: 500;
color: var(--primary-navy);
}
.testimonial-company {
font-size: 0.9rem;
color: var(--dark-gray);
}
/* Blog Section */
.blog-section {
padding: 6rem 2rem;
background: var(--light-gray);
}
.blog-container {
max-width: 1200px;
margin: 0 auto;
}
.blog-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.blog-card {
background: var(--pure-white);
border-radius: 12px;
overflow: hidden;
box-shadow: var(--card-shadow);
transition: transform 0.3s ease;
}
.blog-card:hover {
transform: translateY(-5px);
}
.blog-image {
height: 200px;
background: var(--light-gray);
display: flex;
align-items: center;
justify-content: center;
color: var(--dark-gray);
}
.blog-content {
padding: 1.5rem;
}
.blog-card h3 {
font-family: 'Lato', sans-serif;
color: var(--primary-navy);
margin-bottom: 0.5rem;
}
.blog-date {
font-size: 0.9rem;
color: var(--dark-gray);
margin-bottom: 1rem;
}
.blog-excerpt {
margin-bottom: 1rem;
}
/* Contact Section */
.contact-section {
padding: 6rem 2rem;
background: var(--pure-white);
}
.contact-container {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
}
.contact-form {
background: var(--light-gray);
padding: 2rem;
border-radius: 12px;
}
.form-group {
margin-bottom: 1.5rem;
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
color: var(--primary-navy);
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 0.75rem;
border: 1px solid #D1D5DB;
border-radius: 6px;
font-size: 1rem;
}
.form-group textarea {
height: 120px;
resize: vertical;
}
.submit-button {
background: var(--primary-navy);
color: var(--pure-white);
padding: 0.75rem 2rem;
border: none;
border-radius: 6px;
font-size: 1rem;
font-weight: 500;
cursor: pointer;
transition: background-color 0.3s ease;
}
.submit-button:hover {
background: #1E40AF;
}
.contact-info h3 {
font-family: 'Lato', sans-serif;
color: var(--primary-navy);
margin-bottom: 1rem;
}
.contact-item {
margin-bottom: 1.5rem;
}
.contact-item strong {
color: var(--primary-navy);
}
/* Footer */
.site-footer {
background: var(--primary-navy);
color: var(--pure-white);
padding: 3rem 2rem 1rem;
}
.footer-container {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.footer-section h4 {
font-family: 'Lato', sans-serif;
margin-bottom: 1rem;
}
.footer-section a {
color: var(--pure-white);
text-decoration: none;
display: block;
margin-bottom: 0.5rem;
transition: color 0.3s ease;
}
.footer-section a:hover {
color: var(--soft-gold);
}
.footer-bottom {
text-align: center;
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid rgba(255,255,255,0.2);
}
/* Responsive Design */
@media (max-width: 768px) {
.main-navigation ul {
display: none;
position: absolute;
top: 100%;
left: 0;
right: 0;
background: var(--pure-white);
flex-direction: column;
padding: 1rem;
box-shadow: var(--card-shadow);
}
.main-navigation ul.active {
display: flex;
}
.mobile-menu-toggle {
display: block;
}
.hero-container {
grid-template-columns: 1fr;
text-align: center;
}
.hero-content h1 {
font-size: 2rem;
}
.hero-subtitle {
font-size: 1.25rem;
}
.hero-image img {
width: 300px;
height: 300px;
}
.about-container {
grid-template-columns: 1fr;
}
.contact-container {
grid-template-columns: 1fr;
}
.section-title {
font-size: 2rem;
}
}
@media (max-width: 480px) {
.nav-container {
padding: 0 1rem;
}
.hero-section {
padding: 6rem 1rem 2rem;
}
.services-section,
.about-section,
.testimonials-section,
.blog-section,
.contact-section {
padding: 4rem 1rem;
}
.hero-content h1 {
font-size: 1.75rem;
}
.hero-image img {
width: 250px;
height: 250px;
}
}
/* Smooth scrolling */
html {
scroll-behavior: smooth;
}
/* Animation for cards */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.service-card,
.testimonial-card,
.blog-card {
animation: fadeInUp 0.6s ease-out;
}
esc_html__('Primary Menu', 'ihab-hr'),
));
}
add_action('after_setup_theme', 'ihab_hr_theme_setup');
// Enqueue scripts and styles
function ihab_hr_scripts() {
wp_enqueue_style('ihab-hr-style', get_stylesheet_uri());
wp_enqueue_style('google-fonts', 'https://fonts.googleapis.com/css2?family=Lato:wght@400;700&family=Roboto:wght@400;500&display=swap');
wp_enqueue_script('ihab-hr-script', get_template_directory_uri() . '/assets/js/theme.js', array('jquery'), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'ihab_hr_scripts');
// Register widget areas
function ihab_hr_widgets_init() {
register_sidebar(array(
'name' => esc_html__('Sidebar', 'ihab-hr'),
'id' => 'sidebar-1',
'description' => esc_html__('Add widgets here.', 'ihab-hr'),
'before_widget' => '
',
'before_title' => '
',
));
}
add_action('widgets_init', 'ihab_hr_widgets_init');
// Custom post type for testimonials
function create_testimonial_post_type() {
register_post_type('testimonial',
array(
'labels' => array(
'name' => __('Testimonials'),
'singular_name' => __('Testimonial')
),
'public' => true,
'has_archive' => false,
'supports' => array('title', 'editor'),
'menu_icon' => 'dashicons-format-quote',
)
);
}
add_action('init', 'create_testimonial_post_type');
// Custom post type for services
function create_service_post_type() {
register_post_type('service',
array(
'labels' => array(
'name' => __('Services'),
'singular_name' => __('Service')
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail'),
'menu_icon' => 'dashicons-businessman',
)
);
}
add_action('init', 'create_service_post_type');
// Add custom fields for testimonials
function add_testimonial_meta_boxes() {
add_meta_box(
'testimonial-details',
'Testimonial Details',
'testimonial_meta_box_callback',
'testimonial'
);
}
add_action('add_meta_boxes', 'add_testimonial_meta_boxes');
function testimonial_meta_box_callback($post) {
wp_nonce_field('save_testimonial_data', 'testimonial_nonce');
$author = get_post_meta($post->ID, '_testimonial_author', true);
$company = get_post_meta($post->ID, '_testimonial_company', true);
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '
';
}
function save_testimonial_data($post_id) {
if (!isset($_POST['testimonial_nonce']) || !wp_verify_nonce($_POST['testimonial_nonce'], 'save_testimonial_data')) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (isset($_POST['testimonial_author'])) {
update_post_meta($post_id, '_testimonial_author', sanitize_text_field($_POST['testimonial_author']));
}
if (isset($_POST['testimonial_company'])) {
update_post_meta($post_id, '_testimonial_company', sanitize_text_field($_POST['testimonial_company']));
}
}
add_action('save_post', 'save_testimonial_data');
// Theme customizer
function ihab_hr_customize_register($wp_customize) {
// Contact Information Section
$wp_customize->add_section('contact_info', array(
'title' => __('Contact Information', 'ihab-hr'),
'priority' => 30,
));
// Contact Email
$wp_customize->add_setting('contact_email', array(
'default' => '
[email protected]',
'sanitize_callback' => 'sanitize_email',
));
$wp_customize->add_control('contact_email', array(
'label' => __('Contact Email', 'ihab-hr'),
'section' => 'contact_info',
'type' => 'email',
));
// Contact Phone
$wp_customize->add_setting('contact_phone', array(
'default' => '+1 (555) 123-4567',
'sanitize_callback' => 'sanitize_text_field',
));
$wp_customize->add_control('contact_phone', array(
'label' => __('Contact Phone', 'ihab-hr'),
'section' => 'contact_info',
'type' => 'text',
));
// LinkedIn URL
$wp_customize->add_setting('linkedin_url', array(
'default' => '#',
'sanitize_callback' => 'esc_url_raw',
));
$wp_customize->add_control('linkedin_url', array(
'label' => __('LinkedIn URL', 'ihab-hr'),
'section' => 'contact_info',
'type' => 'url',
));
// Twitter URL
$wp_customize->add_setting('twitter_url', array(
'default' => '#',
'sanitize_callback' => 'esc_url_raw',
));
$wp_customize->add_control('twitter_url', array(
'label' => __('Twitter URL', 'ihab-hr'),
'section' => 'contact_info',
'type' => 'url',
));
// Hero Section
$wp_customize->add_section('hero_section', array(
'title' => __('Hero Section', 'ihab-hr'),
'priority' => 31,
));
// Hero Title
$wp_customize->add_setting('hero_title', array(
'default' => 'HR Solutions That Drive Results',
'sanitize_callback' => 'sanitize_text_field',
));
$wp_customize->add_control('hero_title', array(
'label' => __('Hero Title', 'ihab-hr'),
'section' => 'hero_section',
'type' => 'text',
));
// Hero Subtitle
$wp_customize->add_setting('hero_subtitle', array(
'default' => 'Recruitment • Compliance • Training',
'sanitize_callback' => 'sanitize_text_field',
));
$wp_customize->add_control('hero_subtitle', array(
'label' => __('Hero Subtitle', 'ihab-hr'),
'section' => 'hero_section',
'type' => 'text',
));
// Hero Description
$wp_customize->add_setting('hero_description', array(
'default' => 'With over 10 years of experience in HR consulting, I help businesses optimize their human resources strategy, ensure compliance, and develop their most valuable asset - their people.',
'sanitize_callback' => 'sanitize_textarea_field',
));
$wp_customize->add_control('hero_description', array(
'label' => __('Hero Description', 'ihab-hr'),
'section' => 'hero_section',
'type' => 'textarea',
));
}
add_action('customize_register', 'ihab_hr_customize_register');
// Handle newsletter signup
function handle_newsletter_signup() {
if (!isset($_POST['newsletter_nonce']) || !wp_verify_nonce($_POST['newsletter_nonce'], 'newsletter_signup')) {
wp_die('Security check failed');
}
$email = sanitize_email($_POST['newsletter_email']);
if (!is_email($email)) {
wp_redirect(add_query_arg('newsletter', 'invalid', wp_get_referer()));
exit;
}
// Here you would typically integrate with an email service like MailChimp
// For now, we'll just store it in the database
global $wpdb;
$table_name = $wpdb->prefix . 'newsletter_subscribers';
$wpdb->insert(
$table_name,
array(
'email' => $email,
'date_subscribed' => current_time('mysql')
)
);
wp_redirect(add_query_arg('newsletter', 'success', wp_get_referer()));
exit;
}
add_action('admin_post_newsletter_signup', 'handle_newsletter_signup');
add_action('admin_post_nopriv_newsletter_signup', 'handle_newsletter_signup');
// Create newsletter table on theme activation
function create_newsletter_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'newsletter_subscribers';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
email varchar(100) NOT NULL,
date_subscribed datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY email (email)
) $charset_collate;";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
add_action('after_switch_theme', 'create_newsletter_table');
// Contact form shortcode
function contact_form_shortcode() {
ob_start();
?>
'testimonial',
'posts_per_page' => $limit,
'post_status' => 'publish'
));
return $testimonials;
}
// Get services
function get_services($limit = 3) {
$services = get_posts(array(
'post_type' => 'service',
'posts_per_page' => $limit,
'post_status' => 'publish'
));
return $services;
}
?>