/* Theme Name: Navier Instruments Theme URI: https://navier-instruments.com Author: Navier Instruments Author URI: https://navier-instruments.com Description: Thème WordPress sur mesure pour Navier Instruments - Spécialiste du prélèvement d'air en milieu industriel et laboratoire. Design moderne inspiré de l'innovation, la qualité et l'éco-responsabilité. Version: 1.0.0 Requires at least: 6.0 Tested up to: 6.4 Requires PHP: 8.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: navier-instruments Tags: corporate, technology, industrial, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready Navier Instruments - Innovation, Qualité, Éco-responsabilité Basé à Senlis, France */ /* ========================================================================== CSS Variables - Palette de couleurs Navier Instruments ========================================================================== */ :root { /* Couleurs principales */ --navier-primary: #0A4D8C; /* Bleu profond - confiance, technologie */ --navier-primary-dark: #083A6A; --navier-primary-light: #1565A8; --navier-secondary: #2ECC71; /* Vert éco-responsable */ --navier-secondary-dark: #27AE60; --navier-secondary-light: #58D68D; --navier-accent: #00B4D8; /* Bleu cyan - innovation, air */ /* Couleurs neutres */ --navier-dark: #1A1A2E; --navier-gray-900: #2D2D44; --navier-gray-700: #4A4A5A; --navier-gray-500: #6B6B7B; --navier-gray-300: #B8B8C8; --navier-gray-100: #F4F4F8; --navier-white: #FFFFFF; /* Couleurs fonctionnelles */ --navier-success: #2ECC71; --navier-warning: #F39C12; --navier-error: #E74C3C; --navier-info: #3498DB; /* Typographie */ --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --font-heading: 'Montserrat', var(--font-primary); /* Espacements */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; --spacing-3xl: 4rem; --spacing-4xl: 6rem; /* Bordures et ombres */ --border-radius-sm: 4px; --border-radius-md: 8px; --border-radius-lg: 12px; --border-radius-xl: 20px; --border-radius-full: 9999px; --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* Transitions */ --transition-fast: 150ms ease; --transition-base: 250ms ease; --transition-slow: 350ms ease; /* Container */ --container-max: 1200px; --container-padding: 1.5rem; } /* ========================================================================== Reset & Base Styles ========================================================================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-primary); font-size: 16px; line-height: 1.6; color: var(--navier-gray-700); background-color: var(--navier-white); overflow-x: hidden; } /* ========================================================================== Typography ========================================================================== */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 700; line-height: 1.2; color: var(--navier-dark); margin-bottom: var(--spacing-md); } h1 { font-size: clamp(2.5rem, 5vw, 3.5rem); letter-spacing: -0.02em; } h2 { font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: -0.01em; } h3 { font-size: clamp(1.5rem, 3vw, 2rem); } h4 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); } h5 { font-size: 1.125rem; } h6 { font-size: 1rem; } p { margin-bottom: var(--spacing-md); } a { color: var(--navier-primary); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--navier-primary-dark); } img { max-width: 100%; height: auto; display: block; } /* ========================================================================== Layout ========================================================================== */ .container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-padding); } .section { padding: var(--spacing-4xl) 0; } .section--alt { background-color: var(--navier-gray-100); } /* ========================================================================== Buttons ========================================================================== */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--spacing-sm); padding: 0.875rem 1.75rem; font-family: var(--font-primary); font-size: 1rem; font-weight: 600; line-height: 1; text-decoration: none; border: none; border-radius: var(--border-radius-md); cursor: pointer; transition: all var(--transition-base); } .btn--primary { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-primary-dark) 100%); color: var(--navier-white); box-shadow: 0 4px 14px rgba(10, 77, 140, 0.3); } .btn--primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(10, 77, 140, 0.4); color: var(--navier-white); } .btn--secondary { background: var(--navier-white); color: var(--navier-primary); border: 2px solid var(--navier-primary); } .btn--secondary:hover { background: var(--navier-primary); color: var(--navier-white); } .btn--eco { background: linear-gradient(135deg, var(--navier-secondary) 0%, var(--navier-secondary-dark) 100%); color: var(--navier-white); box-shadow: 0 4px 14px rgba(46, 204, 113, 0.3); } .btn--eco:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(46, 204, 113, 0.4); color: var(--navier-white); } .btn--large { padding: 1.125rem 2.25rem; font-size: 1.125rem; } .btn--small { padding: 0.625rem 1.25rem; font-size: 0.875rem; } /* ========================================================================== Header ========================================================================== */ .site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: all var(--transition-base); border-bottom: 1px solid transparent; } .site-header.scrolled { background: rgba(255, 255, 255, 0.98); border-bottom-color: var(--navier-gray-100); box-shadow: var(--shadow-md); } .site-header.hidden { transform: translateY(-100%); } .header-inner { display: flex; align-items: center; justify-content: space-between; height: 80px; } .site-logo { display: flex; align-items: center; gap: var(--spacing-sm); } .site-logo img { height: 45px; width: auto; } .site-logo-text { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; color: var(--navier-primary); } .site-logo-text span { color: var(--navier-secondary); } /* Navigation principale */ .main-navigation { display: flex; align-items: center; } .nav-menu { display: flex; align-items: center; gap: var(--spacing-xl); list-style: none; } .nav-menu li { position: relative; } .nav-menu a { display: flex; align-items: center; gap: var(--spacing-xs); padding: var(--spacing-sm) 0; font-weight: 500; color: var(--navier-gray-700); transition: color var(--transition-fast); } .nav-menu a:hover, .nav-menu .current-menu-item > a { color: var(--navier-primary); } /* Sous-menu */ .sub-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(10px); min-width: 220px; padding: var(--spacing-md); background: var(--navier-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-xl); list-style: none; opacity: 0; visibility: hidden; transition: all var(--transition-base); } .nav-menu li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); } .sub-menu a { display: block; padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--border-radius-sm); } .sub-menu a:hover { background: var(--navier-gray-100); } /* Header Actions (Language + CTA) */ .header-actions { display: flex; align-items: center; gap: var(--spacing-md); } /* Header CTA */ .header-cta { display: flex; align-items: center; gap: var(--spacing-md); } /* Mobile Menu Toggle */ .menu-toggle { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 30px; height: 30px; background: none; border: none; cursor: pointer; } .menu-toggle span { display: block; width: 100%; height: 2px; background: var(--navier-dark); border-radius: 2px; transition: all var(--transition-fast); } /* ========================================================================== Hero Section ========================================================================== */ .hero { position: relative; min-height: 100vh; display: flex; align-items: center; padding-top: 80px; background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-white) 50%, rgba(0, 180, 216, 0.05) 100%); overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; right: 0; width: 50%; height: 100%; background: url('assets/images/hero-pattern.svg') no-repeat center; background-size: cover; opacity: 0.1; pointer-events: none; } .hero-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; } .hero-content { position: relative; z-index: 2; } .hero-badge { display: inline-flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); margin-bottom: var(--spacing-lg); background: rgba(46, 204, 113, 0.1); color: var(--navier-secondary-dark); border-radius: var(--border-radius-full); font-size: 0.875rem; font-weight: 600; } .hero-badge svg { width: 16px; height: 16px; } .hero-title { margin-bottom: var(--spacing-lg); } .hero-title span { color: var(--navier-primary); } .hero-description { font-size: 1.25rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xl); max-width: 540px; } .hero-buttons { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } .hero-stats { display: flex; gap: var(--spacing-2xl); margin-top: var(--spacing-3xl); padding-top: var(--spacing-2xl); border-top: 1px solid var(--navier-gray-300); } .hero-stat { text-align: left; } .hero-stat-value { font-family: var(--font-heading); font-size: 2.5rem; font-weight: 700; color: var(--navier-primary); line-height: 1; } .hero-stat-label { font-size: 0.875rem; color: var(--navier-gray-500); margin-top: var(--spacing-xs); } .hero-image { position: relative; z-index: 1; } .hero-image img { width: 100%; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-xl); } .hero-image::before { content: ''; position: absolute; top: -20px; right: -20px; width: 100%; height: 100%; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-xl); z-index: -1; opacity: 0.1; } /* ========================================================================== Features Section ========================================================================== */ .features { background: var(--navier-white); } .section-header { text-align: center; max-width: 700px; margin: 0 auto var(--spacing-3xl); } .section-badge { display: inline-flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); margin-bottom: var(--spacing-md); background: rgba(10, 77, 140, 0.1); color: var(--navier-primary); border-radius: var(--border-radius-full); font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .section-title { margin-bottom: var(--spacing-md); } .section-description { font-size: 1.125rem; color: var(--navier-gray-500); } .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .feature-card { position: relative; padding: var(--spacing-2xl); background: var(--navier-white); border: 1px solid var(--navier-gray-100); border-radius: var(--border-radius-lg); transition: all var(--transition-base); } .feature-card:hover { transform: translateY(-5px); border-color: transparent; box-shadow: var(--shadow-xl); } .feature-icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: var(--spacing-lg); background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-md); color: var(--navier-white); } .feature-icon svg { width: 32px; height: 32px; } .feature-card--eco .feature-icon { background: linear-gradient(135deg, var(--navier-secondary) 0%, var(--navier-secondary-dark) 100%); } .feature-title { margin-bottom: var(--spacing-sm); } .feature-description { color: var(--navier-gray-500); margin-bottom: 0; } /* ========================================================================== About Section ========================================================================== */ .about { background: var(--navier-gray-100); } .about-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .about-image { position: relative; } .about-image img { border-radius: var(--border-radius-xl); box-shadow: var(--shadow-xl); } .about-badge { position: absolute; bottom: -20px; right: -20px; padding: var(--spacing-lg); background: var(--navier-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-lg); text-align: center; } .about-badge-value { font-family: var(--font-heading); font-size: 2rem; font-weight: 700; color: var(--navier-primary); } .about-badge-label { font-size: 0.875rem; color: var(--navier-gray-500); } .about-content .section-badge { margin-bottom: var(--spacing-md); } .about-list { list-style: none; margin: var(--spacing-xl) 0; } .about-list li { display: flex; align-items: flex-start; gap: var(--spacing-md); padding: var(--spacing-md) 0; border-bottom: 1px solid var(--navier-gray-300); } .about-list li:last-child { border-bottom: none; } .about-list-icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; background: var(--navier-secondary); border-radius: var(--border-radius-full); color: var(--navier-white); } .about-list-icon svg { width: 14px; height: 14px; } /* ========================================================================== Products Section ========================================================================== */ .products { background: var(--navier-white); } .products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .product-card { position: relative; background: var(--navier-white); border-radius: var(--border-radius-lg); overflow: hidden; box-shadow: var(--shadow-md); transition: all var(--transition-base); } .product-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); } .product-image { position: relative; padding-top: 75%; background: var(--navier-gray-100); overflow: hidden; } .product-image img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .product-card:hover .product-image img { transform: scale(1.05); } .product-tag { position: absolute; top: var(--spacing-md); left: var(--spacing-md); padding: var(--spacing-xs) var(--spacing-sm); background: var(--navier-secondary); color: var(--navier-white); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; border-radius: var(--border-radius-sm); } .product-content { padding: var(--spacing-lg); } .product-title { margin-bottom: var(--spacing-sm); } .product-description { color: var(--navier-gray-500); font-size: 0.9375rem; margin-bottom: var(--spacing-md); } .product-link { display: inline-flex; align-items: center; gap: var(--spacing-xs); font-weight: 600; color: var(--navier-primary); } .product-link svg { width: 16px; height: 16px; transition: transform var(--transition-fast); } .product-link:hover svg { transform: translateX(4px); } /* ========================================================================== Values Section (Eco-responsabilité) ========================================================================== */ .values { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-primary-dark) 100%); color: var(--navier-white); } .values .section-header { color: var(--navier-white); } .values .section-badge { background: rgba(255, 255, 255, 0.2); color: var(--navier-white); } .values .section-title { color: var(--navier-white); } .values .section-description { color: rgba(255, 255, 255, 0.8); } .values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-xl); } .value-card { padding: var(--spacing-xl); background: rgba(255, 255, 255, 0.1); border-radius: var(--border-radius-lg); text-align: center; backdrop-filter: blur(10px); transition: all var(--transition-base); } .value-card:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-5px); } .value-icon { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin: 0 auto var(--spacing-lg); background: rgba(255, 255, 255, 0.2); border-radius: var(--border-radius-full); } .value-icon svg { width: 36px; height: 36px; color: var(--navier-secondary-light); } .value-title { color: var(--navier-white); margin-bottom: var(--spacing-sm); } .value-description { color: rgba(255, 255, 255, 0.8); font-size: 0.9375rem; margin-bottom: 0; } /* ========================================================================== Testimonials Section ========================================================================== */ .testimonials { background: var(--navier-gray-100); } .testimonials-slider { position: relative; } .testimonial-card { padding: var(--spacing-2xl); background: var(--navier-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-md); } .testimonial-content { font-size: 1.125rem; font-style: italic; color: var(--navier-gray-700); margin-bottom: var(--spacing-xl); position: relative; } .testimonial-content::before { content: '"'; font-family: var(--font-heading); font-size: 4rem; color: var(--navier-primary); opacity: 0.2; position: absolute; top: -20px; left: -10px; line-height: 1; } .testimonial-author { display: flex; align-items: center; gap: var(--spacing-md); } .testimonial-avatar { width: 56px; height: 56px; border-radius: var(--border-radius-full); object-fit: cover; } .testimonial-name { font-weight: 600; color: var(--navier-dark); margin-bottom: 0; } .testimonial-role { font-size: 0.875rem; color: var(--navier-gray-500); } /* ========================================================================== CTA Section ========================================================================== */ .cta { background: var(--navier-white); } .cta-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; padding: var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-gray-100) 0%, rgba(0, 180, 216, 0.05) 100%); border-radius: var(--border-radius-xl); } .cta-content .section-title { margin-bottom: var(--spacing-md); } .cta-description { font-size: 1.125rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xl); } .cta-buttons { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } .cta-image img { border-radius: var(--border-radius-lg); box-shadow: var(--shadow-lg); } /* ========================================================================== Contact Section ========================================================================== */ .contact { background: var(--navier-white); } .contact-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); } .contact-info h3 { margin-bottom: var(--spacing-xl); } .contact-item { display: flex; align-items: flex-start; gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .contact-item-icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: var(--navier-gray-100); border-radius: var(--border-radius-md); color: var(--navier-primary); } .contact-item-icon svg { width: 24px; height: 24px; } .contact-item-label { font-size: 0.875rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xs); } .contact-item-value { font-weight: 600; color: var(--navier-dark); } .contact-form { padding: var(--spacing-2xl); background: var(--navier-gray-100); border-radius: var(--border-radius-lg); } .form-group { margin-bottom: var(--spacing-lg); } .form-label { display: block; margin-bottom: var(--spacing-sm); font-weight: 500; color: var(--navier-dark); } .form-input, .form-textarea { width: 100%; padding: var(--spacing-md); font-family: var(--font-primary); font-size: 1rem; color: var(--navier-dark); background: var(--navier-white); border: 1px solid var(--navier-gray-300); border-radius: var(--border-radius-md); transition: all var(--transition-fast); } .form-input:focus, .form-textarea:focus { outline: none; border-color: var(--navier-primary); box-shadow: 0 0 0 3px rgba(10, 77, 140, 0.1); } .form-textarea { resize: vertical; min-height: 150px; } /* ========================================================================== Footer ========================================================================== */ .site-footer { background: var(--navier-dark); color: var(--navier-gray-300); } .footer-main { padding: var(--spacing-4xl) 0; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--spacing-3xl); } .footer-brand { max-width: 300px; } .footer-logo { display: flex; align-items: center; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); } .footer-logo img { height: 40px; } .footer-logo-text { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; color: var(--navier-white); } .footer-logo-text span { color: var(--navier-secondary); } .footer-brand p { font-size: 0.9375rem; line-height: 1.7; margin-bottom: var(--spacing-lg); } .footer-social { display: flex; gap: var(--spacing-md); } .footer-social a { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--navier-gray-900); border-radius: var(--border-radius-md); color: var(--navier-gray-300); transition: all var(--transition-fast); } .footer-social a:hover { background: var(--navier-primary); color: var(--navier-white); } .footer-social svg { width: 20px; height: 20px; } .footer-column h4 { color: var(--navier-white); margin-bottom: var(--spacing-lg); } .footer-menu { list-style: none; } .footer-menu li { margin-bottom: var(--spacing-sm); } .footer-menu a { color: var(--navier-gray-300); transition: color var(--transition-fast); } .footer-menu a:hover { color: var(--navier-secondary); } .footer-bottom { padding: var(--spacing-lg) 0; border-top: 1px solid var(--navier-gray-900); } .footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--spacing-md); } .copyright { font-size: 0.875rem; } .footer-legal { display: flex; gap: var(--spacing-lg); list-style: none; } .footer-legal a { font-size: 0.875rem; color: var(--navier-gray-300); } .footer-legal a:hover { color: var(--navier-secondary); } /* ========================================================================== Page Templates ========================================================================== */ .page-header { padding: calc(80px + var(--spacing-4xl)) 0 var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-white) 100%); text-align: center; } .page-header .container { max-width: 800px; } .page-content { padding: var(--spacing-4xl) 0; } .page-content .container { max-width: 800px; } .page-content h2, .page-content h3, .page-content h4 { margin-top: var(--spacing-2xl); } .page-content ul, .page-content ol { margin-bottom: var(--spacing-md); padding-left: var(--spacing-xl); } .page-content li { margin-bottom: var(--spacing-sm); } /* ========================================================================== Blog / Archive ========================================================================== */ .archive-header { padding: calc(80px + var(--spacing-4xl)) 0 var(--spacing-3xl); background: var(--navier-gray-100); text-align: center; } .posts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); padding: var(--spacing-4xl) 0; } .post-card { background: var(--navier-white); border-radius: var(--border-radius-lg); overflow: hidden; box-shadow: var(--shadow-md); transition: all var(--transition-base); } .post-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); } .post-thumbnail { position: relative; padding-top: 60%; background: var(--navier-gray-100); } .post-thumbnail img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } .post-card-content { padding: var(--spacing-lg); } .post-meta { display: flex; align-items: center; gap: var(--spacing-md); margin-bottom: var(--spacing-sm); font-size: 0.875rem; color: var(--navier-gray-500); } .post-category { color: var(--navier-primary); font-weight: 500; } .post-card-title { margin-bottom: var(--spacing-sm); } .post-card-title a { color: var(--navier-dark); } .post-card-title a:hover { color: var(--navier-primary); } .post-excerpt { color: var(--navier-gray-500); font-size: 0.9375rem; margin-bottom: var(--spacing-md); } .read-more { display: inline-flex; align-items: center; gap: var(--spacing-xs); font-weight: 600; color: var(--navier-primary); } /* Single Post */ .single-post-header { padding: calc(80px + var(--spacing-3xl)) 0 var(--spacing-2xl); background: var(--navier-gray-100); } .single-post-header .container { max-width: 800px; } .single-post-meta { display: flex; align-items: center; gap: var(--spacing-lg); margin-bottom: var(--spacing-lg); font-size: 0.9375rem; color: var(--navier-gray-500); } .post-author { display: flex; align-items: center; gap: var(--spacing-sm); } .post-author img { width: 32px; height: 32px; border-radius: var(--border-radius-full); } .single-post-content { padding: var(--spacing-3xl) 0 var(--spacing-4xl); } .single-post-content .container { max-width: 800px; } /* Pagination */ .pagination { display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); padding: var(--spacing-2xl) 0 var(--spacing-4xl); } .pagination a, .pagination span { display: flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 var(--spacing-sm); background: var(--navier-white); border: 1px solid var(--navier-gray-300); border-radius: var(--border-radius-md); font-weight: 500; color: var(--navier-gray-700); transition: all var(--transition-fast); } .pagination a:hover { background: var(--navier-primary); border-color: var(--navier-primary); color: var(--navier-white); } .pagination .current { background: var(--navier-primary); border-color: var(--navier-primary); color: var(--navier-white); } /* ========================================================================== WordPress Core Styles ========================================================================== */ .alignleft { float: left; margin-right: var(--spacing-lg); margin-bottom: var(--spacing-md); } .alignright { float: right; margin-left: var(--spacing-lg); margin-bottom: var(--spacing-md); } .aligncenter { display: block; margin-left: auto; margin-right: auto; margin-bottom: var(--spacing-lg); } .wp-caption { max-width: 100%; margin-bottom: var(--spacing-lg); } .wp-caption-text { font-size: 0.875rem; color: var(--navier-gray-500); padding-top: var(--spacing-sm); } .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .gallery-item { margin: 0; } .gallery-icon img { border-radius: var(--border-radius-md); } /* Comments */ .comments-area { padding-top: var(--spacing-3xl); border-top: 1px solid var(--navier-gray-300); } .comments-title { margin-bottom: var(--spacing-xl); } .comment-list { list-style: none; padding: 0; } .comment { margin-bottom: var(--spacing-xl); padding-bottom: var(--spacing-xl); border-bottom: 1px solid var(--navier-gray-100); } .comment-body { display: grid; grid-template-columns: 56px 1fr; gap: var(--spacing-md); } .comment-author img { border-radius: var(--border-radius-full); } .comment-author .fn { font-weight: 600; color: var(--navier-dark); } .comment-metadata { font-size: 0.875rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-sm); } .comment-content { grid-column: 2; } .comment-reply-link { font-size: 0.875rem; font-weight: 600; } .comment-respond { margin-top: var(--spacing-2xl); } /* ========================================================================== Animations ========================================================================== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } .animate { opacity: 0; } .animate.animated { animation-duration: 0.8s; animation-fill-mode: both; } .animate-fade-up.animated { animation-name: fadeInUp; } .animate-fade-left.animated { animation-name: fadeInLeft; } .animate-fade-right.animated { animation-name: fadeInRight; } .animate-scale.animated { animation-name: scaleIn; } .animate-delay-1 { animation-delay: 0.1s; } .animate-delay-2 { animation-delay: 0.2s; } .animate-delay-3 { animation-delay: 0.3s; } .animate-delay-4 { animation-delay: 0.4s; } /* ========================================================================== Language Switcher ========================================================================== */ .language-switcher { position: relative; } .lang-toggle { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: var(--navier-white); border: 1.5px solid var(--navier-gray-300); border-radius: var(--border-radius-full); cursor: pointer; transition: all var(--transition-fast); font-family: var(--font-primary); font-size: 0.8125rem; font-weight: 600; color: var(--navier-dark); } .lang-toggle:hover { border-color: var(--navier-primary); background: rgba(10, 77, 140, 0.04); box-shadow: 0 2px 8px rgba(10, 77, 140, 0.1); } .lang-toggle:focus { outline: none; border-color: var(--navier-primary); box-shadow: 0 0 0 3px rgba(10, 77, 140, 0.15); } .lang-flag-current { font-size: 1.125rem; line-height: 1; } .lang-code { font-weight: 700; color: var(--navier-dark); letter-spacing: 0.02em; } .lang-arrow { transition: transform var(--transition-fast); color: var(--navier-gray-500); margin-left: 2px; } .lang-toggle[aria-expanded="true"] .lang-arrow { transform: rotate(180deg); } .lang-dropdown { position: absolute; top: calc(100% + 8px); right: 0; min-width: 160px; background: var(--navier-white); border: 1px solid var(--navier-gray-100); border-radius: var(--border-radius-lg); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 10px rgba(0, 0, 0, 0.08); opacity: 0; visibility: hidden; transform: translateY(-8px) scale(0.96); transform-origin: top right; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); z-index: 1001; overflow: hidden; padding: 6px; } .lang-toggle[aria-expanded="true"] + .lang-dropdown { opacity: 1; visibility: visible; transform: translateY(0) scale(1); } .lang-option { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; background: transparent; border: none; border-radius: var(--border-radius-md); cursor: pointer; font-family: var(--font-primary); font-size: 0.875rem; font-weight: 500; color: var(--navier-gray-700); text-align: left; transition: all var(--transition-fast); } .lang-option:hover { background: var(--navier-gray-100); color: var(--navier-dark); } .lang-option.active { background: rgba(10, 77, 140, 0.08); color: var(--navier-primary); font-weight: 600; } .lang-option .lang-flag { font-size: 1.25rem; line-height: 1; } .lang-check { margin-left: auto; opacity: 0; color: var(--navier-primary); transition: opacity var(--transition-fast); } .lang-option.active .lang-check { opacity: 1; } /* ========================================================================== Products Page ========================================================================== */ .page-hero { padding: calc(80px + var(--spacing-4xl)) 0 var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-white) 100%); text-align: center; } .page-hero-content { max-width: 700px; margin: 0 auto; } .page-hero-title { font-size: clamp(2.5rem, 5vw, 3.5rem); margin-bottom: var(--spacing-md); color: var(--navier-dark); } .page-hero-description { font-size: 1.125rem; color: var(--navier-gray-500); max-width: 600px; margin: 0 auto; } /* Products Filter */ .products-filter-section { padding: var(--spacing-xl) 0; background: var(--navier-white); border-bottom: 1px solid var(--navier-gray-100); } .products-filter { display: flex; justify-content: center; gap: var(--spacing-sm); flex-wrap: wrap; } .filter-btn { padding: var(--spacing-sm) var(--spacing-lg); font-family: var(--font-primary); font-size: 0.9375rem; font-weight: 500; color: var(--navier-gray-700); background: var(--navier-white); border: 1.5px solid var(--navier-gray-300); border-radius: var(--border-radius-full); cursor: pointer; transition: all var(--transition-fast); } .filter-btn:hover { border-color: var(--navier-primary); color: var(--navier-primary); } .filter-btn.active { background: var(--navier-primary); border-color: var(--navier-primary); color: var(--navier-white); } /* Products Page Grid */ .products-page { background: var(--navier-gray-100); } .products-grid-full { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } /* Product Card Enhanced */ .product-card { background: var(--navier-white); border-radius: var(--border-radius-lg); overflow: hidden; box-shadow: var(--shadow-md); transition: all var(--transition-base); } .product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } .product-image { position: relative; height: 220px; overflow: hidden; } .product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .product-card:hover .product-image img { transform: scale(1.05); } .product-image-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-gray-300) 100%); display: flex; align-items: center; justify-content: center; } .product-image-placeholder svg { opacity: 0.3; } .product-tag { position: absolute; top: var(--spacing-md); left: var(--spacing-md); padding: var(--spacing-xs) var(--spacing-md); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--navier-white); background: var(--navier-primary); border-radius: var(--border-radius-full); } .product-content { padding: var(--spacing-lg); } .product-title { font-size: 1.25rem; margin-bottom: var(--spacing-sm); color: var(--navier-dark); } .product-description { font-size: 0.9375rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-md); line-height: 1.6; } .product-features { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); margin-bottom: var(--spacing-md); } .product-feature { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; font-size: 0.75rem; font-weight: 500; color: var(--navier-primary); background: rgba(10, 77, 140, 0.08); border-radius: var(--border-radius-full); } .product-feature svg { color: var(--navier-secondary); } .product-link { display: inline-flex; align-items: center; gap: var(--spacing-xs); font-weight: 600; color: var(--navier-primary); transition: gap var(--transition-fast); } .product-link:hover { gap: var(--spacing-sm); } /* Form Select */ .form-input select, select.form-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234A4A5A' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right var(--spacing-md) center; padding-right: var(--spacing-2xl); } /* ========================================================================== Responsive Design ========================================================================== */ @media (max-width: 1200px) { .values-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 992px) { .hero-inner { grid-template-columns: 1fr; text-align: center; } .hero-description { margin-left: auto; margin-right: auto; } .hero-buttons { justify-content: center; } .hero-stats { justify-content: center; } .hero-image { order: -1; max-width: 500px; margin: 0 auto; } .features-grid, .products-grid, .products-grid-full, .posts-grid { grid-template-columns: repeat(2, 1fr); } .about-inner, .cta-inner, .contact-inner { grid-template-columns: 1fr; } .about-image { order: -1; } .footer-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { :root { --spacing-4xl: 4rem; } .header-inner { height: 70px; } .main-navigation, .header-cta { display: none; } .header-actions { gap: var(--spacing-sm); } .language-switcher { order: 1; } .lang-toggle { padding: 6px 10px; border-radius: var(--border-radius-md); } .lang-code { display: none; } .lang-arrow { display: none; } .lang-dropdown { right: -50px; } .menu-toggle { display: flex; order: 2; } /* Mobile Menu */ .main-navigation.active { display: block; position: fixed; top: 70px; left: 0; right: 0; bottom: 0; background: var(--navier-white); padding: var(--spacing-xl); overflow-y: auto; } .main-navigation.active .nav-menu { flex-direction: column; align-items: stretch; gap: 0; } .main-navigation.active .nav-menu a { padding: var(--spacing-md); border-bottom: 1px solid var(--navier-gray-100); } .main-navigation.active .sub-menu { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; padding-left: var(--spacing-lg); } .products-filter { gap: var(--spacing-xs); } .filter-btn { padding: var(--spacing-xs) var(--spacing-md); font-size: 0.875rem; } .features-grid, .products-grid, .products-grid-full, .values-grid, .posts-grid { grid-template-columns: 1fr; } .hero-stats { flex-direction: column; gap: var(--spacing-lg); } .footer-grid { grid-template-columns: 1fr; gap: var(--spacing-2xl); } .footer-bottom-inner { flex-direction: column; text-align: center; } .footer-legal { flex-wrap: wrap; justify-content: center; } } @media (max-width: 480px) { :root { --container-padding: 1rem; } .btn { width: 100%; } .hero-buttons { flex-direction: column; } .cta-buttons { flex-direction: column; } .pagination { flex-wrap: wrap; } } /* ========================================================================== Single Product Page ========================================================================== */ /* Product Hero Section */ .product-hero { padding: calc(80px + var(--spacing-3xl)) 0 var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-white) 50%, rgba(0, 180, 216, 0.05) 100%); overflow: hidden; } .product-hero-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; } .product-hero-content { position: relative; z-index: 2; } .product-hero-badge { display: inline-flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); margin-bottom: var(--spacing-lg); background: rgba(46, 204, 113, 0.1); color: var(--navier-secondary-dark); border-radius: var(--border-radius-full); font-size: 0.875rem; font-weight: 600; } .product-hero-badge svg { width: 16px; height: 16px; } .product-hero-title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: var(--spacing-md); color: var(--navier-dark); } .product-hero-subtitle { font-size: 1.25rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xl); max-width: 500px; } .product-highlights { display: flex; flex-wrap: wrap; gap: var(--spacing-lg); margin-bottom: var(--spacing-xl); } .highlight-item { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-md) var(--spacing-lg); background: var(--navier-white); border-radius: var(--border-radius-md); box-shadow: var(--shadow-sm); transition: all var(--transition-base); } .highlight-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } .highlight-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-sm); color: var(--navier-white); } .highlight-icon svg { width: 20px; height: 20px; } .highlight-text { font-size: 0.9375rem; font-weight: 500; color: var(--navier-gray-700); } .product-hero-buttons { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } .product-hero-image { position: relative; z-index: 1; } .product-hero-image img { width: 100%; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-xl); } .product-hero-image::before { content: ''; position: absolute; top: -20px; right: -20px; width: 100%; height: 100%; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-xl); z-index: -1; opacity: 0.1; } /* Product Features Grid */ .product-features-section { background: var(--navier-white); } .product-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .product-feature-card { position: relative; padding: var(--spacing-2xl); background: var(--navier-white); border: 1px solid var(--navier-gray-100); border-radius: var(--border-radius-lg); text-align: center; transition: all var(--transition-base); } .product-feature-card:hover { transform: translateY(-5px); border-color: transparent; box-shadow: var(--shadow-xl); } .product-feature-icon { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin: 0 auto var(--spacing-lg); background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-lg); color: var(--navier-white); } .product-feature-icon svg { width: 36px; height: 36px; } .product-feature-title { font-size: 1.125rem; margin-bottom: var(--spacing-sm); color: var(--navier-dark); } .product-feature-text { color: var(--navier-gray-500); margin-bottom: 0; } /* Product Description Section */ .product-description-section { background: var(--navier-gray-100); } .product-description-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .product-description-image { position: relative; } .product-description-image img { width: 100%; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-xl); } .product-description-content h2 { margin-bottom: var(--spacing-lg); } .product-description-content p { font-size: 1.0625rem; line-height: 1.8; color: var(--navier-gray-700); margin-bottom: var(--spacing-lg); } .product-description-content p:last-child { margin-bottom: 0; } /* Specifications Table Section */ .specifications-section { background: var(--navier-white); } .specifications-wrapper { max-width: 900px; margin: 0 auto; } .specifications-table { width: 100%; background: var(--navier-white); border-radius: var(--border-radius-lg); overflow: hidden; box-shadow: var(--shadow-md); } .spec-row { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--navier-gray-100); transition: background var(--transition-fast); } .spec-row:last-child { border-bottom: none; } .spec-row:hover { background: var(--navier-gray-100); } .spec-label { padding: var(--spacing-lg); font-weight: 600; color: var(--navier-dark); background: rgba(10, 77, 140, 0.03); display: flex; align-items: center; gap: var(--spacing-sm); } .spec-label svg { width: 18px; height: 18px; color: var(--navier-primary); } .spec-value { padding: var(--spacing-lg); color: var(--navier-gray-700); display: flex; align-items: center; } /* Advantages Section */ .advantages-section { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-primary-dark) 100%); color: var(--navier-white); } .advantages-section .section-header { color: var(--navier-white); } .advantages-section .section-badge { background: rgba(255, 255, 255, 0.2); color: var(--navier-white); } .advantages-section .section-title { color: var(--navier-white); } .advantages-section .section-description { color: rgba(255, 255, 255, 0.8); } .advantages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .advantage-item { padding: var(--spacing-xl); background: rgba(255, 255, 255, 0.1); border-radius: var(--border-radius-lg); text-align: center; backdrop-filter: blur(10px); transition: all var(--transition-base); } .advantage-item:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-5px); } .advantage-icon { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin: 0 auto var(--spacing-lg); background: rgba(255, 255, 255, 0.2); border-radius: var(--border-radius-full); } .advantage-icon svg { width: 36px; height: 36px; color: var(--navier-secondary-light); } .advantage-title { font-size: 1.125rem; color: var(--navier-white); margin-bottom: var(--spacing-sm); } .advantage-text { color: rgba(255, 255, 255, 0.8); font-size: 0.9375rem; margin-bottom: 0; } /* Product CTA Section */ .product-cta-section { background: var(--navier-white); } .product-cta-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; padding: var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-gray-100) 0%, rgba(0, 180, 216, 0.05) 100%); border-radius: var(--border-radius-xl); } .product-cta-content h2 { margin-bottom: var(--spacing-md); } .product-cta-content p { font-size: 1.125rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xl); } .product-cta-buttons { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } .product-cta-image img { width: 100%; border-radius: var(--border-radius-lg); box-shadow: var(--shadow-lg); } /* Quote Form Section */ .quote-form-section { background: var(--navier-gray-100); } .quote-form-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); } .quote-form-content h2 { margin-bottom: var(--spacing-md); } .quote-form-content > p { font-size: 1.125rem; color: var(--navier-gray-500); margin-bottom: var(--spacing-xl); } .quote-form-features { list-style: none; } .quote-form-features li { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-md) 0; border-bottom: 1px solid var(--navier-gray-300); } .quote-form-features li:last-child { border-bottom: none; } .quote-form-features li svg { flex-shrink: 0; width: 24px; height: 24px; padding: 4px; background: var(--navier-secondary); border-radius: var(--border-radius-full); color: var(--navier-white); } .quote-form-wrapper { background: var(--navier-white); padding: var(--spacing-2xl); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-md); } .quote-form-wrapper h3 { margin-bottom: var(--spacing-lg); } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-md); } /* Related Products Section */ .related-products-section { background: var(--navier-white); } .related-products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .related-products-grid .product-card { background: var(--navier-white); border-radius: var(--border-radius-lg); overflow: hidden; box-shadow: var(--shadow-md); transition: all var(--transition-base); } .related-products-grid .product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } .related-products-grid .product-image { height: 200px; } .related-products-grid .product-content { padding: var(--spacing-lg); } .related-products-grid .product-title { font-size: 1.125rem; margin-bottom: var(--spacing-sm); } .related-products-grid .product-description { font-size: 0.875rem; margin-bottom: var(--spacing-md); } /* Product Description Highlights */ .product-description-content .product-highlights { list-style: none; margin: var(--spacing-xl) 0; padding: 0; } .product-description-content .product-highlights li { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-sm) 0; } .product-description-content .product-highlights .highlight-icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: var(--navier-secondary); border-radius: var(--border-radius-full); color: var(--navier-white); flex-shrink: 0; } .product-description-content .product-highlights .highlight-icon svg { width: 14px; height: 14px; } /* Product Description Placeholder */ .product-description-placeholder, .product-hero-placeholder { width: 100%; height: 400px; background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-gray-300) 100%); border-radius: var(--border-radius-xl); display: flex; align-items: center; justify-content: center; } .product-hero-placeholder { height: 450px; } /* Specifications Download */ .specifications-download { margin-top: var(--spacing-xl); text-align: center; padding: var(--spacing-xl); background: var(--navier-gray-100); border-radius: var(--border-radius-lg); } .specifications-download p { margin-bottom: var(--spacing-md); color: var(--navier-gray-500); } /* Product Advantages */ .product-advantages { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-primary-dark) 100%); } .product-advantages .section-header { text-align: center; } .product-advantages .section-badge { background: rgba(255, 255, 255, 0.2); color: var(--navier-white); } .product-advantages .section-title { color: var(--navier-white); } .advantage-label { display: block; font-size: 0.9375rem; font-weight: 500; color: var(--navier-white); margin-top: var(--spacing-sm); } /* CTA Image Content */ .cta-image-content { display: flex; align-items: center; justify-content: center; height: 300px; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-lg); } /* Quick Highlights in Hero */ .product-quick-highlights { display: flex; gap: var(--spacing-md); margin-bottom: var(--spacing-xl); flex-wrap: wrap; } .quick-highlight { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); background: rgba(10, 77, 140, 0.08); border-radius: var(--border-radius-full); } .quick-highlight-icon { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--navier-primary); border-radius: var(--border-radius-full); color: var(--navier-white); } .quick-highlight-icon svg { width: 16px; height: 16px; } .quick-highlight-text { font-weight: 600; color: var(--navier-primary); font-size: 0.9375rem; } /* Product Banner Section */ .product-banner { background: var(--navier-gray-100); } .product-banner-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .product-banner--reverse .product-banner-inner { direction: rtl; } .product-banner--reverse .product-banner-inner > * { direction: ltr; } .product-banner-content { max-width: 500px; } .product-banner-content p { font-size: 1.0625rem; line-height: 1.8; color: var(--navier-gray-700); margin-bottom: var(--spacing-lg); } .product-banner-list { list-style: none; padding: 0; margin: var(--spacing-lg) 0 0 0; } .product-banner-list li { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-sm) 0; color: var(--navier-gray-700); } .product-banner-list li svg { flex-shrink: 0; color: var(--navier-secondary); } .product-banner-visual { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--spacing-3xl); background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-xl); color: var(--navier-white); min-height: 350px; } .product-banner-visual svg { opacity: 0.5; } .banner-label { margin-top: var(--spacing-lg); font-size: 1.5rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; } .product-banner-visual--battery { position: relative; } .battery-indicator { position: absolute; bottom: var(--spacing-2xl); font-size: 2rem; font-weight: 800; color: var(--navier-secondary-light); } /* Battery Features */ .battery-features { display: flex; gap: var(--spacing-xl); margin-top: var(--spacing-xl); padding-top: var(--spacing-lg); border-top: 1px solid var(--navier-gray-300); } .battery-feature { text-align: center; } .battery-feature-value { display: block; font-size: 1.5rem; font-weight: 700; color: var(--navier-primary); } .battery-feature-label { display: block; font-size: 0.8125rem; color: var(--navier-gray-500); margin-top: var(--spacing-xs); } /* Protection Section */ .product-protection { background: var(--navier-white); } .protection-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); } .protection-item { text-align: center; padding: var(--spacing-2xl); background: var(--navier-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-md); transition: all var(--transition-base); } .protection-item:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } .protection-icon { display: flex; align-items: center; justify-content: center; width: 100px; height: 100px; margin: 0 auto var(--spacing-lg); border-radius: var(--border-radius-full); transition: transform var(--transition-base); } .protection-item:hover .protection-icon { transform: scale(1.1); } .protection-icon--water { background: linear-gradient(135deg, #00B4D8 0%, #0077B6 100%); color: var(--navier-white); } .protection-icon--dust { background: linear-gradient(135deg, #8B5A2B 0%, #D2691E 100%); color: var(--navier-white); } .protection-icon--shock { background: linear-gradient(135deg, #F39C12 0%, #E67E22 100%); color: var(--navier-white); } .protection-title { font-size: 1.25rem; font-weight: 700; color: var(--navier-dark); margin-bottom: var(--spacing-sm); } .protection-text { color: var(--navier-gray-500); font-size: 0.9375rem; margin-bottom: 0; } /* Temperature Section */ .product-temperature { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-primary-dark) 100%); color: var(--navier-white); } .temperature-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .temperature-content .section-badge { background: rgba(255, 255, 255, 0.2); color: var(--navier-white); } .temperature-content .section-title { color: var(--navier-white); } .temperature-content p { color: rgba(255, 255, 255, 0.8); font-size: 1.0625rem; line-height: 1.8; } .temperature-gauge { padding: var(--spacing-2xl); background: rgba(255, 255, 255, 0.1); border-radius: var(--border-radius-xl); backdrop-filter: blur(10px); } .temperature-range { display: flex; align-items: center; gap: var(--spacing-md); } .temp-cold, .temp-hot { font-size: 1.25rem; font-weight: 700; white-space: nowrap; } .temp-cold { color: #00B4D8; } .temp-hot { color: #F39C12; } .temp-bar { flex: 1; height: 20px; background: linear-gradient(90deg, #00B4D8 0%, #2ECC71 50%, #F39C12 100%); border-radius: var(--border-radius-full); position: relative; overflow: hidden; } .temp-bar-fill { position: absolute; top: 0; left: 0; width: 0; height: 100%; background: rgba(255, 255, 255, 0.3); animation: tempFill 2s ease-out forwards; } @keyframes tempFill { to { width: 100%; } } /* Product Benefits List */ .product-benefits { list-style: none; margin: var(--spacing-xl) 0 0 0; padding: 0; } .product-benefits li { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-sm) 0; } .benefit-icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: var(--navier-secondary); border-radius: var(--border-radius-full); color: var(--navier-white); flex-shrink: 0; } .benefit-icon svg { width: 14px; height: 14px; } /* Contact Direct */ .contact-direct { margin-top: var(--spacing-xl); padding-top: var(--spacing-lg); border-top: 1px solid var(--navier-gray-300); } .contact-direct h4 { margin-bottom: var(--spacing-md); color: var(--navier-dark); } .contact-direct p { margin-bottom: var(--spacing-sm); } .contact-direct a { display: inline-flex; align-items: center; gap: var(--spacing-sm); color: var(--navier-primary); font-weight: 500; transition: color var(--transition-fast); } .contact-direct a:hover { color: var(--navier-primary-dark); } .contact-direct a svg { flex-shrink: 0; } /* CTA Visual */ .product-cta-visual { display: flex; align-items: center; justify-content: center; } .cta-icon-container { display: flex; align-items: center; justify-content: center; width: 200px; height: 200px; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-full); color: var(--navier-white); opacity: 0.8; } /* Single Product Responsive */ @media (max-width: 992px) { .product-hero-inner, .product-description-inner, .product-cta-inner, .quote-form-inner, .product-banner-inner, .temperature-inner { grid-template-columns: 1fr; } .product-hero-content { text-align: center; } .product-highlights, .product-quick-highlights { justify-content: center; } .product-hero-buttons { justify-content: center; } .product-hero-image { order: -1; max-width: 500px; margin: 0 auto; } .product-features-grid, .advantages-grid, .related-products-grid, .protection-grid { grid-template-columns: repeat(2, 1fr); } .product-description-image { order: -1; } .product-banner--reverse .product-banner-inner { direction: ltr; } .product-banner-image { order: -1; } .product-banner-visual { min-height: 250px; } .battery-features { justify-content: center; } .temperature-content { text-align: center; } .product-cta-visual { display: none; } } @media (max-width: 768px) { .product-features-grid, .advantages-grid, .related-products-grid, .protection-grid { grid-template-columns: 1fr; } .spec-row { grid-template-columns: 1fr; } .spec-label { border-bottom: none; padding-bottom: var(--spacing-sm); } .spec-value { padding-top: 0; padding-bottom: var(--spacing-lg); } .form-row { grid-template-columns: 1fr; } .product-highlights, .product-quick-highlights { flex-direction: column; } .highlight-item, .quick-highlight { width: 100%; justify-content: center; } .battery-features { flex-direction: column; gap: var(--spacing-md); } .temperature-range { flex-direction: column; gap: var(--spacing-sm); } .temp-bar { width: 100%; height: 16px; } } /* ========================================================================== Advanced Product Page Styles ========================================================================== */ /* Hero Fullscreen */ .product-hero--fullscreen { min-height: 100vh; display: flex; align-items: center; position: relative; overflow: hidden; } .product-hero-bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; } .product-hero-bg-gradient { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, var(--navier-gray-100) 0%, var(--navier-white) 30%, rgba(0, 180, 216, 0.05) 70%, rgba(46, 204, 113, 0.05) 100%); } .product-hero-title { display: flex; flex-direction: column; gap: var(--spacing-sm); } .product-hero-title .title-main { font-size: clamp(3rem, 6vw, 5rem); font-weight: 800; background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .product-hero-title .title-tagline { font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 400; color: var(--navier-gray-600); } /* Hero Image Effects */ .product-hero-image-wrapper { position: relative; } .product-main-image { width: 100%; max-width: 500px; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-2xl); transition: transform 0.3s ease; } .product-main-image:hover { transform: scale(1.02); } .product-hero-glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 120%; height: 120%; background: radial-gradient(circle, rgba(0, 180, 216, 0.15) 0%, transparent 70%); pointer-events: none; z-index: -1; } /* Floating Badges */ .floating-badge { position: absolute; background: var(--navier-white); padding: var(--spacing-md) var(--spacing-lg); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-xl); display: flex; flex-direction: column; align-items: center; gap: var(--spacing-xs); animation: float 3s ease-in-out infinite; } .floating-badge--1 { top: 10%; right: -10%; animation-delay: 0s; } .floating-badge--2 { bottom: 30%; right: -15%; animation-delay: 0.5s; } .floating-badge--3 { bottom: 10%; left: -10%; animation-delay: 1s; } .badge-value { font-size: 1.5rem; font-weight: 800; color: var(--navier-primary); } .badge-unit { font-size: 0.75rem; color: var(--navier-gray-500); text-transform: uppercase; } .badge-icon { font-size: 1.5rem; } .badge-icon svg { color: var(--navier-accent); } .badge-text { font-size: 0.8125rem; font-weight: 600; color: var(--navier-dark); } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } /* Scroll Indicator */ .scroll-indicator { position: absolute; bottom: var(--spacing-2xl); left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: var(--spacing-sm); color: var(--navier-gray-500); font-size: 0.875rem; } .scroll-arrow { animation: bounce 2s infinite; } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(10px); } 60% { transform: translateY(5px); } } /* Button Glow Effect */ .btn--glow { position: relative; overflow: visible; } .btn--glow::before { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(135deg, var(--navier-primary), var(--navier-accent), var(--navier-secondary)); border-radius: inherit; z-index: -1; opacity: 0; transition: opacity 0.3s ease; filter: blur(10px); } .btn--glow:hover::before { opacity: 0.6; } /* Feature Images */ .product-feature-icon-wrapper { display: flex; align-items: center; justify-content: center; margin-bottom: var(--spacing-lg); } .feature-image { width: 80px; height: 80px; object-fit: contain; transition: transform 0.3s ease; } .product-feature-card:hover .feature-image { transform: scale(1.1) rotate(5deg); } /* Fullwidth Banner */ .product-fullwidth-banner { position: relative; min-height: 500px; display: flex; align-items: center; background-size: cover; background-position: center; background-attachment: fixed; } .banner-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(26, 26, 46, 0.7); } .banner-overlay--gradient { background: linear-gradient(135deg, rgba(10, 77, 140, 0.9) 0%, rgba(0, 180, 216, 0.8) 100%); } .banner-content { position: relative; z-index: 1; max-width: 700px; } .banner-content--center { max-width: 100%; text-align: center; } .section-title--light { color: var(--navier-white); } .section-title--large { font-size: clamp(2rem, 4vw, 3.5rem); } .section-badge--light { background: rgba(255, 255, 255, 0.2); color: var(--navier-white); } .banner-text { color: rgba(255, 255, 255, 0.9); font-size: 1.125rem; line-height: 1.8; margin-bottom: var(--spacing-xl); } .banner-text--large { font-size: 1.375rem; } .banner-features { list-style: none; padding: 0; margin: 0 0 var(--spacing-xl) 0; } .banner-features li { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-sm) 0; color: var(--navier-white); font-size: 1.0625rem; } .banner-features li svg { flex-shrink: 0; color: var(--navier-secondary-light); } /* Protection Section with Images */ .protection-grid--images .protection-item { background: var(--navier-white); border-radius: var(--border-radius-xl); padding: var(--spacing-2xl); box-shadow: var(--shadow-lg); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .protection-grid--images .protection-item:hover { transform: translateY(-15px) scale(1.02); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } .protection-image { display: flex; align-items: center; justify-content: center; margin-bottom: var(--spacing-lg); } .protection-image img { width: 120px; height: 120px; object-fit: contain; transition: transform 0.4s ease; } .protection-item:hover .protection-image img { transform: scale(1.15) rotate(5deg); } /* Nomad Section */ .section--dark { background: linear-gradient(135deg, var(--navier-dark) 0%, #2a2a4a 100%); color: var(--navier-white); } .nomad-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .nomad-text { color: rgba(255, 255, 255, 0.85); font-size: 1.0625rem; line-height: 1.8; margin-bottom: var(--spacing-xl); } .nomad-features { display: flex; gap: var(--spacing-xl); flex-wrap: wrap; } .nomad-feature { display: flex; align-items: center; gap: var(--spacing-md); padding: var(--spacing-md); background: rgba(255, 255, 255, 0.1); border-radius: var(--border-radius-lg); backdrop-filter: blur(10px); transition: all 0.3s ease; } .nomad-feature:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-3px); } .nomad-feature-image img { width: 50px; height: 50px; object-fit: contain; } .nomad-feature-value { display: block; font-size: 1.25rem; font-weight: 700; color: var(--navier-secondary-light); } .nomad-feature-label { display: block; font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); } .nomad-visual { display: flex; align-items: center; justify-content: center; } .nomad-product-image { max-width: 400px; width: 100%; border-radius: var(--border-radius-xl); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); } /* Temperature Section Enhancements */ .temp-indicator { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-xs); } .temp-icon { font-size: 2rem; } .temp-bar-track { position: relative; height: 24px; background: rgba(255, 255, 255, 0.2); border-radius: var(--border-radius-full); overflow: hidden; } .temp-bar-fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; background: linear-gradient(90deg, #00B4D8 0%, #2ECC71 50%, #F39C12 100%); border-radius: var(--border-radius-full); transition: width 2s cubic-bezier(0.4, 0, 0.2, 1); } .temp-bar-fill.animate { width: 100% !important; } .temp-bar-marker { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; background: var(--navier-white); border-radius: 50%; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } 50% { box-shadow: 0 2px 20px rgba(255, 255, 255, 0.5); } } .temp-bar-labels { display: flex; justify-content: space-between; margin-top: var(--spacing-sm); font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); } /* Modes Section */ .modes-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--spacing-xl); } .mode-card { text-align: center; padding: var(--spacing-3xl); background: var(--navier-white); border-radius: var(--border-radius-xl); box-shadow: var(--shadow-lg); transition: all 0.3s ease; } .mode-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-2xl); } .mode-icon { display: inline-flex; align-items: center; justify-content: center; width: 100px; height: 100px; margin-bottom: var(--spacing-lg); background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); border-radius: var(--border-radius-full); color: var(--navier-white); } .mode-title { font-size: 1.5rem; margin-bottom: var(--spacing-md); color: var(--navier-dark); } .mode-text { color: var(--navier-gray-500); font-size: 1rem; line-height: 1.7; } /* Services Section */ .services-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--spacing-lg); } .service-card { text-align: center; padding: var(--spacing-xl); background: var(--navier-white); border-radius: var(--border-radius-lg); box-shadow: var(--shadow-md); transition: all 0.3s ease; } .service-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-xl); } .service-icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: var(--spacing-md); background: rgba(10, 77, 140, 0.1); border-radius: var(--border-radius-lg); color: var(--navier-primary); } .service-card h4 { font-size: 1rem; margin-bottom: var(--spacing-sm); color: var(--navier-dark); } .service-card p { font-size: 0.875rem; color: var(--navier-gray-500); margin: 0; } /* Gradient Section */ .section--gradient { background: linear-gradient(135deg, var(--navier-primary) 0%, var(--navier-accent) 100%); color: var(--navier-white); } .product-cta-inner { text-align: center; max-width: 800px; margin: 0 auto; } .section--gradient .product-cta-content p { color: rgba(255, 255, 255, 0.9); } /* Outline Light Button */ .btn--outline-light { background: transparent; border: 2px solid rgba(255, 255, 255, 0.5); color: var(--navier-white); } .btn--outline-light:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--navier-white); } /* Data Reveal Animations */ [data-reveal] { opacity: 0; transition: opacity 0.6s ease, transform 0.6s ease; } [data-reveal="fade-up"] { transform: translateY(40px); } [data-reveal="fade-down"] { transform: translateY(-40px); } [data-reveal="fade-left"] { transform: translateX(40px); } [data-reveal="fade-right"] { transform: translateX(-40px); } [data-reveal="zoom-in"] { transform: scale(0.8); } [data-reveal="scale"] { transform: scale(0.9); } [data-reveal].revealed { opacity: 1; transform: translateY(0) translateX(0) scale(1); } /* Fallback - Reveal all elements after 3 seconds if JS doesn't work */ @keyframes revealFallback { to { opacity: 1; transform: translateY(0) translateX(0) scale(1); } } /* Apply fallback animation with delay */ body:not(.loaded) [data-reveal] { animation: revealFallback 0.6s ease forwards; animation-delay: 0.5s; } /* When body has loaded class, JS is working - no fallback needed */ body.loaded [data-reveal] { /* JS will handle animations via .revealed class */ } /* Float Animation for Images */ [data-float] { animation: floatImage 6s ease-in-out infinite; } @keyframes floatImage { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(1deg); } 75% { transform: translateY(10px) rotate(-1deg); } } /* ========================================================================== Features Row - 5 Icons ========================================================================== */ .product-features-row { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--spacing-lg); flex-wrap: wrap; } .product-feature-item { flex: 1; min-width: 150px; text-align: center; padding: var(--spacing-lg); } .product-feature-item .product-feature-icon-wrapper { width: 120px; height: 120px; margin: 0 auto var(--spacing-md); display: flex; align-items: center; justify-content: center; } .product-feature-item .feature-image { max-width: 100%; max-height: 100%; object-fit: contain; } .product-feature-item .product-feature-title { font-size: 0.95rem; font-weight: 600; color: var(--navier-dark); } /* ========================================================================== Banner Content Grid ========================================================================== */ .banner-content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-3xl); align-items: center; } .banner-text-content { max-width: 600px; } .banner-title { font-size: 2.5rem; font-weight: 800; color: white; margin-bottom: var(--spacing-lg); } .banner-features-list { list-style: none; padding: 0; margin: var(--spacing-xl) 0; } .banner-features-list li { display: flex; align-items: center; gap: var(--spacing-md); color: white; margin-bottom: var(--spacing-md); font-size: 1.1rem; } .banner-features-list svg { flex-shrink: 0; color: var(--navier-secondary); } /* ========================================================================== Device Scroll Animation Section ========================================================================== */ .product-device-scroll { background: linear-gradient(135deg, var(--navier-dark) 0%, #2d2d44 100%); overflow: hidden; } .device-scroll-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .device-scroll-content { color: white; } .device-scroll-text { color: rgba(255, 255, 255, 0.8); font-size: 1.1rem; line-height: 1.8; margin-bottom: var(--spacing-md); } .device-scroll-visual { display: flex; justify-content: center; align-items: center; } /* Device Mockup - Scroll Triggered Animation */ .device-mockup-scroll { position: relative; width: 320px; perspective: 1500px; } .device-frame-scroll { background: linear-gradient(145deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 40px; padding: 12px; box-shadow: 0 50px 100px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.3); transform: rotateY(-8deg) rotateX(5deg); transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1); position: relative; } .device-frame-scroll:hover { transform: rotateY(-3deg) rotateX(2deg); } .device-notch { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 80px; height: 24px; background: #0d0d1a; border-radius: 0 0 15px 15px; z-index: 10; } .device-notch::before { content: ''; position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 8px; height: 8px; background: #2a2a3a; border-radius: 50%; } .device-screen-scroll { background: linear-gradient(180deg, #111 0%, #1a1a2e 100%); border-radius: 30px; height: 450px; overflow: hidden; position: relative; } .screen-scroll-content { position: relative; width: 100%; height: 100%; } .screen-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transform: translateY(30px) scale(0.95); transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; } .screen-slide.active { opacity: 1; transform: translateY(0) scale(1); } .screen-slide img { max-width: 100%; max-height: 350px; object-fit: contain; filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.3)); } .screen-slide-caption { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; color: var(--navier-secondary); font-size: 0.9rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; opacity: 0; transform: translateY(10px); transition: all 0.4s ease 0.3s; } .screen-slide.active .screen-slide-caption { opacity: 1; transform: translateY(0); } .device-home-button { width: 50px; height: 50px; background: linear-gradient(145deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 50%; margin: 10px auto 0; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3), 0 1px 0 rgba(255, 255, 255, 0.1); } .device-reflection { position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, transparent 100%); border-radius: 40px 40px 0 0; pointer-events: none; } /* Scroll Progress Indicator */ .scroll-progress-indicator { margin-top: var(--spacing-2xl); display: flex; flex-direction: column; align-items: flex-start; gap: var(--spacing-md); } .scroll-progress-dots { display: flex; gap: var(--spacing-sm); } .scroll-dot { width: 12px; height: 12px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); border: 2px solid rgba(255, 255, 255, 0.3); transition: all 0.3s ease; cursor: pointer; } .scroll-dot.active { background: var(--navier-secondary); border-color: var(--navier-secondary); transform: scale(1.2); } .scroll-hint { color: rgba(255, 255, 255, 0.5); font-size: 0.85rem; display: flex; align-items: center; gap: var(--spacing-sm); } /* Scroll Trigger Area */ .scroll-trigger-area { display: none; } /* Make device section have proper height */ .product-device-scroll { position: relative; min-height: 100vh; display: flex; align-items: center; } /* ========================================================================== Temperature Section Updated ========================================================================== */ .product-temperature .temperature-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .temperature-visual { display: flex; justify-content: center; } .temperature-product-image { max-width: 100%; max-height: 400px; object-fit: contain; border-radius: var(--border-radius-xl); } .temperature-content .temperature-gauge { margin-top: var(--spacing-xl); } .temperature-range { display: flex; align-items: center; gap: var(--spacing-md); } .temp-indicator { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-xs); } .temp-icon { font-size: 2rem; } .temp-value { font-weight: 700; font-size: 1.2rem; color: var(--navier-primary); } .temp-bar { flex: 1; } .temp-bar-track { height: 12px; background: linear-gradient(to right, #3498db, #2ecc71, #f39c12, #e74c3c); border-radius: 6px; overflow: hidden; position: relative; } .temp-bar-fill { height: 100%; width: 0; background: rgba(255, 255, 255, 0.3); transition: width 2s ease-out; } .temp-bar-fill.animate { width: 100%; } /* ========================================================================== Battery Section ========================================================================== */ .product-battery { background: var(--navier-gray-100); } .battery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-2xl); } .battery-item { text-align: center; padding: var(--spacing-xl); background: white; border-radius: var(--border-radius-xl); box-shadow: var(--shadow-md); transition: transform 0.3s ease, box-shadow 0.3s ease; } .battery-item:hover { transform: translateY(-5px); box-shadow: var(--shadow-xl); } .battery-image { width: 120px; height: 120px; margin: 0 auto var(--spacing-lg); display: flex; align-items: center; justify-content: center; } .battery-image img { max-width: 100%; max-height: 100%; object-fit: contain; } .battery-item h4 { font-size: 1.1rem; font-weight: 700; color: var(--navier-dark); margin-bottom: var(--spacing-sm); } .battery-item p { color: var(--navier-gray-500); font-size: 0.95rem; } /* ========================================================================== Services Grid 3 Columns ========================================================================== */ .services-grid--3 { grid-template-columns: repeat(3, 1fr); } /* ========================================================================== Responsive Updates for New Sections ========================================================================== */ @media (max-width: 992px) { .product-features-row { justify-content: center; } .product-feature-item { flex: 0 0 calc(33.333% - var(--spacing-lg)); } .banner-content-grid { grid-template-columns: 1fr; } .device-scroll-inner { grid-template-columns: 1fr; text-align: center; } .device-scroll-visual { order: -1; margin-bottom: var(--spacing-2xl); } .product-temperature .temperature-inner { grid-template-columns: 1fr; } .temperature-visual { order: -1; margin-bottom: var(--spacing-2xl); } .battery-grid { grid-template-columns: repeat(2, 1fr); } .services-grid--3 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .product-features-row { flex-direction: column; align-items: center; } .product-feature-item { flex: 0 0 100%; max-width: 200px; } .banner-title { font-size: 1.8rem; } .device-mockup { width: 220px; } .device-screen { height: 300px; } .screen-image { height: 300px; } @keyframes screenScroll { 0%, 20% { transform: translateY(0); } 25%, 45% { transform: translateY(-300px); } 50%, 70% { transform: translateY(-600px); } 75%, 95% { transform: translateY(-900px); } 100% { transform: translateY(0); } } .battery-grid { grid-template-columns: 1fr; } .services-grid--3 { grid-template-columns: 1fr; } } /* Responsive for new sections */ @media (max-width: 1200px) { .services-grid { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 992px) { .nomad-inner { grid-template-columns: 1fr; } .nomad-visual { order: -1; } .modes-grid { grid-template-columns: 1fr; } .services-grid { grid-template-columns: repeat(2, 1fr); } .floating-badge { display: none; } .product-fullwidth-banner { background-attachment: scroll; } .scroll-indicator { display: none; } } @media (max-width: 768px) { .product-hero--fullscreen { min-height: auto; padding-top: calc(80px + var(--spacing-3xl)); padding-bottom: var(--spacing-3xl); } .product-hero-title .title-main { font-size: 2.5rem; } .services-grid { grid-template-columns: 1fr; } .nomad-features { flex-direction: column; } .product-fullwidth-banner { min-height: 400px; } } /* ========================================================================== Nomad Section - Un Ordinateur de Poche ========================================================================== */ .product-nomad { background: linear-gradient(135deg, var(--navier-dark) 0%, #1a1a2e 50%, #2d2d44 100%); position: relative; overflow: hidden; } .product-nomad::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(ellipse at 80% 50%, rgba(16, 185, 129, 0.1) 0%, transparent 50%); pointer-events: none; } .nomad-inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-4xl); align-items: center; } .nomad-content { position: relative; z-index: 2; } .nomad-text { color: rgba(255, 255, 255, 0.85); font-size: 1.15rem; line-height: 1.8; margin-bottom: var(--spacing-lg); } .nomad-text strong { color: var(--navier-secondary); } .nomad-stats { display: flex; gap: var(--spacing-2xl); margin-top: var(--spacing-2xl); } .nomad-stat { text-align: center; padding: var(--spacing-lg); background: rgba(255, 255, 255, 0.05); border-radius: var(--border-radius-lg); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; } .nomad-stat:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--navier-secondary); transform: translateY(-5px); } .nomad-stat-value { display: block; font-size: 2.5rem; font-weight: 800; color: var(--navier-secondary); line-height: 1; margin-bottom: var(--spacing-xs); } .nomad-stat-label { display: block; font-size: 0.85rem; color: rgba(255, 255, 255, 0.6); text-transform: uppercase; letter-spacing: 1px; } .nomad-visual { position: relative; display: flex; justify-content: center; align-items: center; } .nomad-image-container { position: relative; z-index: 2; } .nomad-product-image { max-width: 100%; max-height: 500px; object-fit: contain; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.5)); transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1); } .nomad-visual:hover .nomad-product-image { transform: scale(1.05) translateY(-10px); } .nomad-glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 400px; height: 400px; background: radial-gradient(circle, rgba(16, 185, 129, 0.3) 0%, transparent 70%); border-radius: 50%; pointer-events: none; z-index: 1; animation: pulseGlow 3s ease-in-out infinite; } @keyframes pulseGlow { 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.8; } } .nomad-features-float { position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; z-index: 3; } .float-feature { position: absolute; background: rgba(255, 255, 255, 0.95); border-radius: var(--border-radius-lg); padding: var(--spacing-sm); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); transition: transform 0.3s ease; } .float-feature img { width: 60px; height: 60px; object-fit: contain; } .float-feature--1 { top: 10%; right: -10%; animation: floatBadge1 4s ease-in-out infinite; } .float-feature--2 { bottom: 15%; left: -5%; animation: floatBadge2 5s ease-in-out infinite; } @keyframes floatBadge1 { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } } @keyframes floatBadge2 { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20px); } } /* Responsive Nomad */ @media (max-width: 992px) { .nomad-inner { grid-template-columns: 1fr; text-align: center; } .nomad-visual { order: -1; margin-bottom: var(--spacing-2xl); } .nomad-stats { justify-content: center; } .float-feature { display: none; } } @media (max-width: 576px) { .nomad-stats { flex-direction: column; gap: var(--spacing-md); } .nomad-stat-value { font-size: 2rem; } } /* ========================================================================== Print Styles ========================================================================== */ @media print { .site-header, .site-footer, .sidebar, .comments-area, .pagination { display: none; } body { font-size: 12pt; line-height: 1.5; color: #000; background: #fff; } a { color: #000; text-decoration: underline; } .container { max-width: 100%; padding: 0; } }