:root { /* Color palette */ --color-white: #ffffff; --color-off-white: #f8f8f8; --color-light-gray: #f5f5f5; --color-lighter-gray: #f9f9f9; --color-gray: #dddddd; --color-medium-gray: #cccccc; --color-dark-gray: #7f8c8d; --color-darker-gray: #666666; --color-text-gray: #555555; --color-text-dark: #444444; --color-black: #000000; /* Brand colors */ --color-primary: #ff6f00; --color-primary-dark: #e56200; --color-primary-darker: #d35400; --color-secondary: #e67e22; --color-accent: #2c4b7c; --color-dark-blue: #1f3d6b; --color-dark-text: #333333; --color-heading: #2c3e50; /* UI colors */ --color-shadow: rgba(0, 0, 0, 0.1); --color-modal-bg: rgba(0, 0, 0, 0.9); --color-slider-nav-bg: rgba(255, 255, 255, 0.7); --color-star: goldenrod; /* New Colors from the rest of the CSS */ --color-loading-bg: rgba(255, 255, 255, 0.8); --color-progress-bg: #f0f0f0; --color-progress-bar: #4CAF50; --color-filter-border: #e0e0e0; --color-filter-section-heading: #333; --color-filter-option-border: #eee; --color-green: #1e7b4d; --color-blue: #1a5276; --color-brown: #6e4c1e; --color-rpp-line: #BBBBBB; --color-checked-before-bg: #03337a; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; } body { overflow-x: hidden; } /* Top Info Bar */ .top-info-bar { background-color: var(--color-off-white); display: flex; justify-content: space-between; align-items: center; padding: 5px 20px; font-size: 12px; /* Smaller font size */ color: var(--color-text-gray); flex-wrap: wrap; } .top-info-bar div { display: flex; align-items: center; margin: 3px 10px; } .top-info-bar i { margin-right: 5px; } .star-rating { color: var(--color-star); } /* Container */ .container { max-width: 90%; margin: 0 auto; padding: 0 15px; } /* Header */ header { background-color: var(--color-white); padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 2px 10px var(--color-shadow); position: relative; z-index: 10; } .logo { display: flex; align-items: center; } .logo img { height: 40px; } /* Navigation */ nav { display: flex; align-items: center; } .nav-links { display: flex; list-style: none; } .nav-links li { margin: 0 15px; } .nav-links a { text-decoration: none; color: var(--color-dark-text); font-weight: bold; text-transform: uppercase; font-size: 14px; transition: color 0.3s; } .nav-links a:hover { color: var(--color-primary); } .header-icons { display: flex; align-items: center; } .header-icons a { margin-left: 20px; color: var(--color-dark-text); text-decoration: none; font-size: 18px; position: relative; } .cart-count { background-color: var(--color-primary); color: var(--color-white); font-size: 12px; width: 18px; height: 18px; border-radius: 50%; display: flex; justify-content: center; align-items: center; position: absolute; top: -8px; right: -8px; } /* Hero Section */ .hero { background-image: url('../../custom/assets/comp2.png'); background-size: cover; background-position: center; height: 60vh; display: flex; align-items: center; position: relative; max-width: 90%; /* Match container max-width to constrain image */ margin: 0 auto; /* Center the hero section */ } .hero-content { padding: 0 50px; max-width: 50%; position: relative; z-index: 2; } .hero h1 { color: var(--color-white); font-size: 42px; background: transparent !important; font-weight: 900; text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); filter: brightness(1.5); line-height: 1.2; margin-bottom: 20px; } .hero-btn { background-color: var(--color-primary); color: var(--color-white); text-decoration: none; padding: 12px 24px; display: inline-block; text-transform: uppercase; font-weight: bold; font-size: 14px; border: none; cursor: pointer; transition: background-color 0.3s; } .hero-btn:hover { background-color: var(--color-primary-dark); } /* Store Description */ .store-description { text-align: center; padding: 50px 20px; max-width: 1000px; margin: 0 auto; } .section-footer { text-align: center; margin-top: 20px; } .store-description p { font-size: 20px; line-height: 1.6; color: var(--color-text-dark); margin-bottom: 30px; } .highlighted { font-weight: bold; color: var(--color-accent); /* Updated to dark blue to match the example */ } .orange-text { color: var(--color-primary); font-weight: bold; } /* Mobile Menu */ .hamburger { display: none; cursor: pointer; background: none; border: none; font-size: 24px; } .mobile-menu { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--color-modal-bg); z-index: 100; padding: 20px; flex-direction: column; } .close-menu { align-self: flex-end; color: var(--color-white); font-size: 24px; background: none; border: none; cursor: pointer; margin-bottom: 30px; } .mobile-nav-links { list-style: none; margin-top: 30px; } .mobile-nav-links li { margin: 20px 0; text-align: center; } .mobile-nav-links a { color: var(--color-white); font-size: 20px; text-decoration: none; text-transform: uppercase; font-weight: bold; } .mobile-menu-open { display: flex; animation: fadeIn 0.3s; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Responsive Design */ @media (max-width: 992px) { .nav-links { display: none; } .hamburger { display: block; margin-right: 15px; } .hero-content { max-width: 70%; } .hero h1 { font-size: 36px; } } /* Hide top info bar and products hero on mobile (<993px) */ @media (max-width: 992px) { .top-info-bar, .info-bar, .hero-products { display: none !important; } /* Full width containers on mobile */ .container, .content-wrapper { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; } } @media (max-width: 768px) { .top-info-bar { justify-content: center; } .top-info-bar div { margin: 3px 8px; font-size: 11px; } .hero { height: 400px; } .hero-content { max-width: 100%; padding: 0 20px; text-align: center; } .hero h1 { font-size: 32px; } .store-description p { font-size: 18px; } } @media (max-width: 576px) { header { padding: 10px 15px; } .logo img { height: 30px; } .hero { height: 300px; } .hero h1 { font-size: 28px; } .hero-btn { padding: 10px 20px; font-size: 12px; } .store-description { padding: 30px 15px; } .store-description p { font-size: 16px; } .footer-links { display: flex; gap: 20px; flex-direction: column; } } /* Language Selector */ .language-selector { position: relative; margin-left: 20px; } .language-btn { background: none; border: none; cursor: pointer; display: flex; align-items: center; padding: 0; } .language-btn i { margin-left: 5px; font-size: 12px; color: var(--color-dark-text); } .flag-icon { width: 20px; height: 15px; border-radius: 2px; object-fit: cover; } .language-dropdown { position: absolute; top: 100%; right: 0; background-color: var(--color-white); box-shadow: 0 5px 15px var(--color-shadow); border-radius: 4px; min-width: 140px; display: none; z-index: 20; margin-top: 2px; } .language-dropdown.show { display: block; } .language-dropdown a { display: flex; align-items: center; padding: 10px 15px; text-decoration: none; color: var(--color-dark-text); font-size: 14px; transition: background-color 0.2s; } .language-dropdown a span { margin-left: 8px; } .language-dropdown a:hover { background-color: var(--color-off-white); } .language-dropdown a.active { font-weight: bold; color: var(--color-primary); } /* Show dropdown on hover */ .language-selector:hover .language-dropdown { display: block; } /* Add invisible bridge to prevent dropdown from closing */ .language-selector::before { content: ''; position: absolute; top: 100%; right: 0; width: 100%; height: 4px; z-index: 19; } /* Responsive adjustments */ @media (max-width: 768px) { .language-selector { margin-left: 15px; } .flag-icon { width: 18px; height: 14px; } } .watches-section { max-width: 90%; margin: 0 auto; padding: 20px 15px; background-color: var(--color-lighter-gray); } .section-header { text-align: center; margin-bottom: 40px; } .section-title { font-size: 16px; color: var(--color-heading); font-weight: 600; } .section-subtitle { font-size: 14px; color: var(--color-dark-gray); font-weight: normal; } .product-slider { position: relative; overflow: hidden; padding: 0 30px; } .product-container-slider { display: flex; justify-content: space-between; gap: 20px; transition: transform 0.3s ease; } .product-card-slider { flex: 0 0 calc(25% - 15px); text-align: center; padding: 10px; } .product-card-slider a { text-decoration: none; } .product-image-slider { width: 70%; margin-bottom: 15px; transition: transform 0.3s ease; } .product-image-slider:hover { transform: scale(1.05); } .product-name-slider { font-size: 12px; color: var(--color-heading); margin-bottom: 5px; font-weight: 600; } .product-price-slider { font-size: 12px; color: var(--color-dark-gray); } .price-from{ font-size: 0.8em; opacity: 0.8; } .slider-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; background-color: var(--color-slider-nav-bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; border: 1px solid var(--color-gray); font-size: 20px; z-index: 10; } .prev-btn { left: -10px; } .next-btn { right: -10px; } /* Responsive adjustments */ @media screen and (max-width: 992px) { .product-card-slider { flex: 0 0 calc(33.333% - 15px); } .product-container { flex-wrap: wrap; justify-content: center; } } @media screen and (max-width: 768px) { .product-card-slider { flex: 0 0 calc(50% - 15px); } .section-title { font-size: 24px; } } @media screen and (max-width: 480px) { .product-card-slider { flex: 0 0 100%; } .product-slider {padding: 0 10px; } .slider-nav { width: 30px; height: 30px; } } /* Features section */ .features { padding: 50px 0; } .features-container { display: flex; flex-direction: row; /* Ensure items are in a row on larger screens */ justify-content: space-between; gap: 30px; } .feature-item { flex: 1; padding: 0 0px 10px 10px; padding-bottom: 10px; border-bottom: solid 2px var(--color-dark-blue); margin-top: 5em; height: 12em; margin-bottom: 5em; } .feature-item h2 { color: var(--color-dark-blue); font-size: 1.5rem; margin-bottom: 15px; } .feature-item p { color: var(--color-darker-gray); font-size: 0.9rem; } .feature-divider { width: 100%; height: 2px; background-color: var(--color-dark-blue); margin-top: 15px; } .divider{ width: 100%; height: 2px; background-color: var(--color-white); margin-top: 15px; } .watch-ad-section { display: flex; flex-direction: column; max-width: 90%; margin: 0 auto; } .top-section { position: relative; height: 400px; background-image: url('../../custom/assets/header.jpg'); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; } .watch-image { width: 70%; height: 100%; display: flex; align-items: center; } .watch-image img { max-width: 100%; max-height: 100%; } .top-content { width: 30%; text-align: right; color: var(--color-white); } .top-content h2 { font-size: 2.5rem; background: transparent !important; font-weight: 900; text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); filter: brightness(1.5); margin-bottom: 20px; line-height: 1.2; } .bottom-section { position: relative; height: 350px; background-image: url('../../custom/assets/watchad2.jpg'); background-size: cover; background-position: center; display: flex; align-items: center; padding: 0 40px; } .bottom-content { width: 60%; color: var(--color-white); } .bottom-content h2 { font-size: 2.5rem; line-height: 1.2; margin-bottom: 20px; background: transparent !important; font-weight: 900; text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); filter: brightness(1.5); } .btn { display: inline-block; padding: 10px 20px; background-color: var(--color-primary); color: var(--color-white); text-decoration: none; text-transform: uppercase; font-size: 0.8rem; font-weight: bold; letter-spacing: 1px; } /* Newsletter section */ .newsletter { background-color: var(--color-lighter-gray); padding: 50px 0; } .newsletter-container { display: flex; flex-wrap: wrap; align-items: center; } .newsletter-text { flex: 0 0 30%; padding-right: 30px; } .newsletter-text h2 { color: var(--color-dark-blue); font-size: 2rem; margin-bottom: 15px; } .newsletter-text p { color: var(--color-darker-gray); font-size: 0.9rem; } .newsletter-form { flex: 0 0 70%; display: flex; flex-wrap: wrap; gap: 15px; } .form-group { flex: 1 1 200px; } .form-control { width: 100%; padding: 12px 15px; border: 1px solid var(--color-gray); font-size: 1rem; } .checkbox-group { flex: 0 0 100%; margin: 10px 0; } .btn-submit { background-color: var(--color-secondary); color: var(--color-white); border: none; padding: 12px 25px; font-size: 1rem; cursor: pointer; transition: background-color 0.3s; } .btn-submit:hover { background-color: var(--color-primary-darker); } /* Footer section */ .footer { background-color: var(--color-light-gray); padding: 40px 0; } .footer-container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; } .footer-info { flex: 1 1 300px; } .footer-info h3 { color: var(--color-dark-blue); font-size: 1.5rem; margin-bottom: 10px; } .footer-info p { color: var(--color-darker-gray); font-size: 0.9rem; margin-bottom: 5px; } .social-icons { display: flex; gap: 15px; } .social-icon { color: var(--color-dark-blue); font-size: 1.3rem; } .footer-bottom { margin-top: 30px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding-top: 20px; border-top: 1px solid var(--color-gray); } .copyright { color: var(--color-darker-gray); font-size: 0.8rem; } .footer-links { display: flex; gap: 20px; } .footer-links a { color: var(--color-darker-gray); text-decoration: none; font-size: 0.8rem; } .payment-methods { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; margin-top: 30px; } .payment-method { height: 30px; width: auto; } /* Responsive styles */ @media (max-width: 992px) { .newsletter-text { flex: 0 0 100%; margin-bottom: 30px; padding-right: 0; } .newsletter-form { flex: 0 0 100%; } } @media (max-width: 768px) { .features-container { flex-direction: column; /* Stack vertically on smaller screens */ } .feature-item { margin-bottom: 30px; } .footer-info, .social-icons, .copyright, .footer-links { flex: 0 0 100%; text-align: center; margin-bottom: 15px; } .social-icons { justify-content: center; margin: 20px 0; } .footer-links { justify-content: center; } } .loading-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--color-loading-bg); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; } .loading-container.active { opacity: 1; visibility: visible; } .loading-bar { width: 200px; height: 10px; background-color: var(--color-progress-bg); border-radius: 5px; overflow: hidden; box-shadow: 0 2px 5px var(--color-shadow); } .progress { height: 100%; width: 0%; background-color: var(--color-progress-bar); animation: progressAnimation 2s infinite ease-in-out; } .loading-text { margin-top: 10px; font-size: 14px; color: var(--color-text-dark); } @keyframes progressAnimation { 0% { width: 0%; } 50% { width: 100%; } 100% { width: 0%; } } /* Hide the loading bar when page is loaded */ .loaded .loading-container { display: none; } /* Main Container */ .filtersection { display: flex; margin: 0 auto; box-shadow: 0 1px 3px var(--color-shadow); background: var(--color-white); border-radius: 12px; margin-bottom: 50px; padding: 10px; width: 95%; } /* Filter Section */ .filter-section { width: 250px; padding: 20px; border-right: 1px solid var(--color-filter-border); } .filter-section h2 { margin-bottom: 15px; color: var(--color-filter-section-heading); } .filter-group { margin-bottom: 20px; } .filter-group label { margin-bottom: 10px; } .filter-group input[type="checkbox"] { margin-right: 10px; } /* Responsive Design */ @media (max-width: 768px) { .filtersection { flex-direction: column; text-align: center; } .filter-section { width: 100%; border-right: none; border-bottom: 1px solid var(--color-filter-border); } } .filters-products-container { display: flex; gap: 30px; } .filters { width: 250px; background: var(--color-white); padding: 20px; } .filter-section { margin-bottom: 25px; } .filter-section h3 { font-size: 16px; margin-bottom: 15px; color: var(--color-heading); padding-bottom: 8px; } .filter-options { display: flex; flex-direction: column; gap: 10px; } .filter-option { display: flex; align-items: center; gap: 10px; } .filter-option input { cursor: pointer; } .filter-option label { font-size: 14px; cursor: pointer; } .color-options { display: flex; flex-wrap: wrap; gap: 10px; } .color-option { width: 25px; height: 25px; border-radius: 50%; cursor: pointer; box-shadow: 0 0 3px var(--color-shadow); } .color-green { background-color: var(--color-green); } .color-blue { background-color: var(--color-blue); } .color-black { background-color: var(--color-black); } .color-brown { background-color: var(--color-brown); } .price-range { margin-top: 10px; } .price-inputs { display: flex; justify-content: space-between; margin-top: 10px; gap: 10px; } .price-inputs input { width: 80px; padding: 5px; border: 1px solid var(--color-gray); border-radius: 3px; } .products { flex: 1; } .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 30px; } .product-card { background: var(--color-white); flex: 0 0 calc(25% - 15px); text-align: center; padding: 10px; overflow: hidden; } .product-card a { text-decoration: none; } .product-image { height: 200px; width: 100%; display: flex; justify-content: center; align-items: center; padding: 20px; background: var(--color-lighter-gray); } .product-image img { max-width: 100%; max-height: 100%; } .product-info { padding: 15px; text-align: center; } .product-title { font-size: 16px; font-weight: 500; margin-bottom: 5px; color: var(--color-heading); } .product-description { font-size: 14px; color: var(--color-darker-gray); margin-bottom: 10px; } .product-price { font-weight: 600; color: var(--color-heading); margin-bottom: 15px; } .view-button { display: inline-block; padding: 8px 20px; background-color: var(--color-heading); color: var(--color-white); text-decoration: none; border-radius: 3px; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; transition: background-color 0.3s; } .view-button:hover { background-color: var(--color-dark-blue); } .filter-button { display: none; width: 90%; padding: 10px; background-color: var(--color-heading); color: var(--color-white); border: none; border-radius: 3px; margin-bottom: 20px; cursor: pointer; margin:auto; } @media (max-width: 768px) { .filters-products-container { flex-direction: column; } .filters { width: 100%; margin-bottom: 20px; display: none; } .filters.show { display: block; } .filter-button { display: block; } .product-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 15px; } } .products_name { color: var(--color-text-gray); font-size: 15px; max-width: 169px; word-wrap: break-word; } .products_price { color: var(--color-text-gray); display: block; text-align: center; font-size:15px; } .products_rpp{ color: var(--color-rpp-line); text-decoration: line-through; } :checked+.picture_select { border-color: var(--color-medium-gray); } :checked+.picture_select::before { content: "✓"; background-color: var(--color-checked-before-bg); transform: scale(1); } :checked+.picture_select img { transform: scale(0.9); box-shadow: 0 0 5px var(--color-dark-text); /* Using an existing dark text color for shadow */ } .img_config { border-radius:5px; width: 25px; height: 25px; margin: 1px; } .stock p { font-size: 10px; margin: auto; padding: 5px; width: fit-content; border-radius: 5px; color: var(--color-white); } .stock p:before { content : '\1F4E6'; } .delivery p { font-size: 10px; font-weight: normal; margin: 10px; padding: 0px; } .delivery p:before { content : '\26DF'; } /* Main Product Container */ .product.content-wrapper { max-width: 90%; margin: 2rem auto; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding: 0 1.5rem; background-color: #fff; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); border-radius: 8px; } /* Mobile Header - Hidden on desktop */ .product-mobile-header { display: none; } /* Product Images Section */ .product-imgs { position: relative; padding: 2rem 0; } .product-img-large { margin-bottom: 1.5rem; text-align: center; background-color: #f8f8f8; border-radius: 8px; padding: 1rem; position: relative; overflow: hidden; transition: all 0.3s ease; } .product-img-large img { max-width: 100%; height: auto; display: block; margin: 0 auto; transition: transform 0.3s ease; } .product-img-large:hover img { transform: scale(1.05); } .product-small-imgs { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: flex-start; } .product-img-small { width: calc(25% - 0.75rem); cursor: pointer; position: relative; border-radius: 6px; overflow: hidden; border: 2px solid transparent; transition: all 0.2s ease; } .product-img-small:hover { border-color: #1a3a5f; } .product-img-small img { width: 100%; height: auto; display: block; object-fit: cover; } /* Product Info Section */ .product-wrapper { padding: 2rem 0; } .breadcrum { display: flex; align-items: center; margin-bottom: 1rem; font-size: 0.9rem; color: #777; } .breadcrum a { color: #1a3a5f; text-decoration: none; margin-right: 0.25rem; } .breadcrum a:hover { text-decoration: underline; } .breadcrum p { margin: 0; } h1.name { color: #1a3a5f; font-size: 2.rem; font-weight: 700; margin-bottom: 1.5rem; border-bottom: 1px solid #eee; padding-bottom: 0.75rem; } /* Price & Stock */ .prices { margin-bottom: 1rem; } .price { font-size: 2rem; font-weight: 600; color: #1a3a5f; display: block; } .stock { margin-bottom: 2rem; } .stock p { display: inline-block; background-color: rgba(0, 128, 0, 0.1); border-radius: 4px; font-size: 0.7em; } /* Form Elements */ #product-form { margin-bottom: 2rem; } #product-form label { display: block; font-weight: 600; margin-bottom: 0.75rem; color: #333; font-size: 1.1rem; } .radio-checkbox { display: flex; margin-bottom: 2rem; flex-wrap: wrap; } .picture_select_label > input[type="checkbox"] { display: none; } .picture_select_label > input[type="radio"] { display: none; } .picture_select { display: block; position: relative; margin: 10px; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .picture_select::before { color: white; content: " "; display: block; border-radius: 50%; border: 1px solid #03337a; position: absolute; top: -5px; left: -5px; width: 25px; height: 25px; text-align: center; line-height: 28px; transition-duration: 0.4s; transform: scale(0); z-index:1 } .picture_select img { height: 50px; width: 50px; transition-duration: 0.2s; transform-origin: 50% 50%; } :checked+.picture_select { border-color: #ddd; } .picture_select_label input[type="radio"]:checked + .picture_select { border-color: #1a3a5f; box-shadow: 0 0 0 2px rgba(26, 58, 95, 0.3); } .picture_select_label:hover .picture_select { transform: scale(1.05); } input[type="number"] { width: 100px; padding: 0.75rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; margin-bottom: 2rem; } input[type="submit"].btn { background-color: var(--color-secondary); color: var(--color-white); border: none; padding: 1rem 2rem; border-radius: 4px; cursor: pointer; transition: background-color 0.2s ease; width: 100%; text-transform: uppercase; letter-spacing: 1px; } input[type="submit"].btn:hover { background-color: #0e2a4d; } /* Product Description */ .description { margin-top: 3rem; border-top: 1px solid #eee; padding-top: 2rem; } .description p { margin-bottom: 1.5rem; font-size: 1.1rem; } .description h3 { color: #1a3a5f; font-size: 1.5rem; margin-bottom: 1rem; } .description ul { list-style-position: inside; margin-bottom: 2rem; padding-left: 1rem; } .description li { margin-bottom: 0.5rem; position: relative; padding-left: 0.5rem; } /* Responsive Design */ @media (max-width: 992px) { .product.content-wrapper { display: flex; flex-direction: column; gap: 1rem; } .product-imgs, .carousel-container { order: 1; width: 100%; } .carousel-main, .product-img-large { max-height: 500px; } .product-wrapper { order: 2; } .carousel-thumbnails, .product-small-imgs { display: flex; flex-wrap: nowrap; justify-content: center; overflow-x: auto; gap: 10px; } } /* Note: Product page tablet/mobile styles (< 993px) are handled in product.php inline styles */ @media (max-width: 576px) { .product.content-wrapper { margin: 0; padding: 0; padding-bottom: 70px; } .product-imgs { padding: 0; } .product-wrapper { padding: 1rem; } .radio-checkbox { justify-content: center; } .product-img-small { flex-shrink: 0; width: 50px; height: 50px; } h1.name { font-size: 1.25rem; } } /* Additional Enhancements */ /* Add smooth transition for image gallery */ .product-img-large { position: relative; } .product-img-large::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(to top, rgba(248, 248, 248, 0.5), transparent); pointer-events: none; } /* Style for hover effects on navigation */ .breadcrum a { position: relative; } .breadcrum a::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 1px; background-color: #1a3a5f; transition: width 0.3s ease; } .breadcrum a:hover::after { width: 100%; } /* Add subtle animation to the add to cart button */ input[type="submit"].btn { position: relative; overflow: hidden; } input[type="submit"].btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.5s ease; } input[type="submit"].btn:hover::before { left: 100%; } /* Brand-Specific Luxury Shopping Cart Styles */ /* Global Reset and Base Styles */ .cart.content-wrapper { max-width: 90%; margin: 0 auto; padding: 2rem; color: var(--color-text-dark); background-color: var(--color-white); border: 1px solid var(--color-gray); box-shadow: 0 4px 12px var(--color-shadow); margin-top: 30px; margin-bottom: 30px; } /* Header Styles */ .cart-container { max-width: 90%; margin: 2rem auto; padding: 0 1rem; } .cart-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-color); } .cart-header h1 { font-size: 1.8rem; font-weight: 600; color: var(--primary-color); } .continue-shopping { color: var(--text-color); text-decoration: none; font-size: 0.9rem; padding: 0.5rem 1rem; border-radius: var(--border-radius); background-color: var(--white); border: 1px solid var(--border-color); transition: var(--transition); } .continue-shopping:hover { background-color: var(--light-gray); } /* Table Styles */ .cart table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; border: none; } .cart thead td { font-weight: 500; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 1px; padding: 1rem 0.5rem; color: var(--color-heading); } .cart tbody td { padding: 1.5rem 0.5rem; vertical-align: middle; } /* Product Image */ .cart td.img { width: 90px; } .cart td.img img { width: 80px; height: 80px; object-fit: cover; transition: opacity 0.3s ease; } .cart td.img img:hover { opacity: 0.8; } /* Product Info */ .cart td a { color: var(--color-dark-text); text-decoration: none; font-weight: 400; transition: color 0.3s ease; font-size: 1.1rem; } .cart td a:hover { color: var(--color-primary); } .cart td a.remove { color: var(--color-dark-gray); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; transition: color 0.3s ease; } .cart td a.remove:hover { color: var(--color-primary-darker); } /* Quantity Input */ .cart td.cart_quantity input { width: 60px; height: 40px; padding: 0.5rem; border: 1px solid var(--color-gray); text-align: center; font-size: 0.9rem; transition: border-color 0.3s ease; background-color: var(--color-off-white); } .cart td.cart_quantity input:focus { border-color: var(--color-primary); outline: none; } /* Price Display */ .cart td.cart_price { font-weight: 400; color: var(--color-text-dark); } .cart td.product-total { font-weight: 600; color: var(--color-primary); } .cart .add_product img { min-width: 60px; max-width: 60px !important; height: auto; object-fit: cover; transition: opacity 0.3s ease; } /* Extras Section Layout - 4 items per row on large screens - Version 1 with Centering */ .add_products { background-color: var(--color-lighter-gray); padding: 2rem; margin-bottom: 2rem; border: 1px solid var(--color-gray); border-radius: 8px; text-align: center; /* Center the content */ } .add_products h2 { font-size: 1.5rem; margin-bottom: 1.5rem; color: var(--color-heading); text-align: center; text-transform: uppercase; letter-spacing: 1px; position: relative; } .add_products h2:after { content: ""; display: block; width: 50px; height: 2px; background-color: var(--color-primary); margin: 10px auto 0; } /* Create an inner container to center the floated items */ .add_products { position: relative; } .add_products::before { content: ""; display: table; width: 100%; } .add_products::after { content: ""; display: table; clear: both; } /* Float layout for the product items */ .add_product { display: flex; flex-direction: column; /* Stack content vertically */ align-items: center; /* Center content horizontally */ padding: 1rem; border: 1px solid var(--color-gray); border-radius: 8px; margin-bottom: 1rem; transition: all 0.3s ease; background-color: var(--color-white); box-shadow: 0 2px 4px var(--color-shadow); text-align: center; /* Center text content */ /* Float layout for side-by-side positioning */ float: left; width: calc(25% - 0.75rem); /* 4 items per row */ margin-right: 1rem; } /* Remove margin from every 4th item */ .add_product:nth-child(4n+2) { /* Adjust for h2 being first child */ margin-right: 0; } /* Clear float after every 4th item */ .add_product:nth-child(4n+2)::after { content: ""; display: table; clear: both; } .add_product:hover { background-color: var(--color-light-gray); transform: translateY(-2px); box-shadow: 0 4px 8px var(--color-shadow); } .add_product img { width: 60px; height: 60px; object-fit: cover; margin-bottom: 0.5rem; /* Space below image */ border-radius: 4px; transition: opacity 0.3s ease; } .add_product img:hover { opacity: 0.8; } .add_product form { margin: 0.5rem 0; /* Space above and below form */ flex-shrink: 0; } .add_product input[type="submit"] { width: 30px; height: 30px; background-color: var(--color-primary); color: var(--color-white); font-size: 1.2rem; border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; box-shadow: 0 2px 4px var(--color-shadow); } .add_product input[type="submit"]:hover { background-color: var(--color-primary-dark); transform: scale(1.1); } .add_product .product { text-decoration: none; color: inherit; } .add_name { font-weight: 500; color: var(--color-text-dark); display: block; font-size: 0.9rem; line-height: 1.3; margin-bottom: 0.25rem; text-align: center; /* Center the product name */ } .add_price { font-weight: 600; color: var(--color-primary); font-size: 1rem; display: block; text-align: center; /* Center the price */ } /* Centering logic for different screen sizes */ /* Large screens (1200px+) - 4 items per row centered */ @media (min-width: 1200px) { .add_products { /* Calculate centering: container width minus total items width, divided by 2 */ padding-left: calc((100% - (4 * calc(25% - 0.75rem) + 3rem)) / 2 + 2rem); padding-right: calc((100% - (4 * calc(25% - 0.75rem) + 3rem)) / 2 + 2rem); } .add_product { width: calc(25% - 0.75rem); } .add_product:nth-child(5n+2) { /* h2 + 4 products */ margin-right: 0; } .add_product:nth-child(5n+2)::after { content: ""; display: table; clear: both; } } /* Large screens (992px-1199px) - 4 items per row centered */ @media (max-width: 1199px) and (min-width: 992px) { .add_products { padding-left: calc((100% - (4 * calc(25% - 0.75rem) + 3rem)) / 2 + 2rem); padding-right: calc((100% - (4 * calc(25% - 0.75rem) + 3rem)) / 2 + 2rem); } .add_product { width: calc(25% - 0.75rem); } } /* Medium screens (768px-991px) - 3 items per row centered */ @media (max-width: 991px) and (min-width: 768px) { .add_products { padding-left: calc((100% - (3 * calc(33.33% - 0.67rem) + 2rem)) / 2 + 1.5rem); padding-right: calc((100% - (3 * calc(33.33% - 0.67rem) + 2rem)) / 2 + 1.5rem); } .add_product { width: calc(33.33% - 0.67rem); } .add_product:nth-child(4n+2) { margin-right: 1rem; } .add_product:nth-child(4n+4) { /* h2 + 3 products */ margin-right: 0; } .add_product:nth-child(4n+2)::after { display: none; } .add_product:nth-child(4n+4)::after { content: ""; display: table; clear: both; } } /* Small screens (576px-767px) - 2 items per row centered */ @media (max-width: 767px) and (min-width: 576px) { .add_products { padding-left: calc((100% - (2 * calc(50% - 0.5rem) + 1rem)) / 2 + 1.5rem); padding-right: calc((100% - (2 * calc(50% - 0.5rem) + 1rem)) / 2 + 1.5rem); } .add_product { width: calc(50% - 0.5rem); } .add_product:nth-child(4n+2), .add_product:nth-child(4n+4) { margin-right: 1rem; } .add_product:nth-child(odd) { margin-right: 1rem; } .add_product:nth-child(even) { margin-right: 0; } .add_product:nth-child(4n+2)::after, .add_product:nth-child(4n+4)::after { display: none; } .add_product:nth-child(even)::after { content: ""; display: table; clear: both; } } /* Extra small screens (575px and below) - 1 item per row centered */ @media (max-width: 575px) { .add_product { float: none; width: 100%; margin-right: 0; margin-left: auto; margin-right: auto; flex-direction: column; /* Already set, but keeping for clarity */ text-align: center; padding: 1rem; max-width: 300px; /* Limit width on very small screens */ } .add_product:nth-child(n) { margin-right: 0; } .add_product:nth-child(n)::after { display: none; } .add_product img { margin-bottom: 0.5rem; /* Already set correctly */ } .add_product form { margin: 0.5rem 0; /* Already set correctly */ } .add_name { text-align: center; margin-bottom: 0.25rem; } .add_price { text-align: center; } .add_products { padding: 1rem; } } /* Mobile compact accessories section (<993px) - horizontal scroll */ @media (max-width: 992px) { .add_products { padding: 1rem; margin-bottom: 1rem; display: block; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; white-space: nowrap; } .add_products h2 { font-size: 1rem; margin-bottom: 0.75rem; display: block; width: 100%; white-space: normal; } .add_products h2:after { width: 30px; height: 2px; margin-top: 0.4rem; } .add_products::before, .add_products::after { display: none; } .add_product { float: none; display: inline-flex; flex-direction: column; align-items: center; text-align: center; width: 90px; min-width: 90px; max-width: 90px; padding: 0.5rem; margin: 0 0.4rem 0 0; vertical-align: top; white-space: normal; } .add_product:hover { transform: none; } .add_product img { width: 45px; height: 45px; min-width: 45px; margin-right: 0; margin-bottom: 0.3rem; } .add_product .product { display: flex; flex-direction: column; align-items: center; width: 100%; } .add_product .name { font-size: 0.65rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 0.1rem; max-width: 100%; } .add_product .price { font-size: 0.6rem; margin-bottom: 0.3rem; } .add_product form { margin: 0; width: 100%; display: flex; justify-content: center; } .add_product input[type="submit"] { width: 22px; height: 22px; font-size: 11px; } /* Hide scrollbar on webkit browsers but keep functionality */ .add_products::-webkit-scrollbar { height: 4px; } .add_products::-webkit-scrollbar-track { background: var(--color-lighter-gray); } .add_products::-webkit-scrollbar-thumb { background: var(--color-light-gray); border-radius: 2px; } } /* Cart Totals */ .cart .total { border-top: 2px solid var(--color-dark-text); border-bottom: 2px solid var(--color-dark-text); padding: 1.5rem 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .cart .total .text { font-size: 1.2rem; font-weight: 400; color: var(--color-heading); text-transform: uppercase; letter-spacing: 1px; } .cart .total .cart_price { font-size: 1.3rem; font-weight: 600; color: var(--color-primary); } .cart .total .note { width: 100%; margin-top: 0.8rem; font-size: 0.85rem; color: var(--color-dark-gray); text-align: right; font-style: italic; } /* Buttons */ .cart .buttons { display: flex; justify-content: flex-end; gap: 1rem; margin-bottom: 1.5rem; } .cart .buttons .btn { padding: 0.75rem 1.5rem; font-size: 0.85rem; font-weight: 500; border: 1px solid var(--color-dark-text); background-color: transparent; color: var(--color-dark-text); cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; } .cart .buttons input[type="submit"][name="emptycart"] { color: var(--color-dark-gray); font-size: 1.2rem; border: none; } .cart .buttons input[type="submit"][name="emptycart"]:hover { color: var(--color-dark-text); } .cart .buttons input[type="submit"][name="update"]:hover { background-color: var(--color-accent); border-color: var(--color-accent); color: var(--color-white); } .cart .buttons input[type="submit"][name="checkout"] { background-color: var(--color-primary) !important; border-color: var(--color-primary) !important; color: var(--color-white); } .cart .buttons input[type="submit"][name="checkout"]:hover { background-color: var(--color-primary-dark) !important; border-color: var(--color-primary-dark) !important; } /* Fix for bottom link */ .cart h4 { margin-bottom: 1rem !important; text-align: right; } .cart h4 a { display: inline-block; font-size: 0.85rem !important; padding: 0.6rem 1.2rem !important; background-color: transparent; border: 1px solid var(--color-text-dark); transition: all 0.3s ease; color: var(--color-text-dark) !important; text-transform: uppercase; letter-spacing: 1px; } .cart h4 a:hover { background-color: var(--color-accent); border-color: var(--color-accent); color: var(--color-white) !important; } /* Enhanced Responsive Design */ @media (max-width: 992px) { .cart.content-wrapper { padding: 1.5rem; } .cart h1 { font-size: 1.8rem; } } @media (max-width: 768px) { .rhide { display: none; } .cart td.img { width: 70px; } .cart td.img img { width: 60px; height: 60px; } .cart h1 { font-size: 1.6rem; } .cart tbody td { padding: 1rem 0.4rem; } .cart td a { font-size: 1rem; } .cart .buttons { flex-wrap: wrap; justify-content: center; } .cart .buttons .btn { min-width: 120px; text-align: center; } .cart .total { flex-direction: column; text-align: center; } .cart .total .text, .cart .total .cart_price { margin-bottom: 0.5rem; } .cart .total .note { text-align: center; } .cart h4 { text-align: center; } } @media (max-width: 576px) { .cart.content-wrapper { padding: 1rem; } .cart h1 { font-size: 1.4rem; } .cart thead td { font-size: 0.7rem; padding: 0.75rem 0.3rem; } .cart td.img { width: 50px; } .cart td.img img { width: 45px; height: 45px; } .cart td.cart_quantity input { width: 50px; height: 35px; } .cart .add_product { flex-wrap: wrap; } .cart .add_product img { min-width: 45px; max-width: 45px !important; } .cart .add_name { width: 100%; margin: 0.5rem 0; } .cart .buttons .btn { width: 100%; margin-bottom: 0.5rem; } .cart .add_products { padding: 1rem; } } /* Sticky checkout button on mobile (<993px) */ @media (max-width: 992px) { .cart .buttons { position: relative; padding-bottom: 70px; } .cart .btn-checkout-sticky { position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; z-index: 1000 !important; border-radius: 0 !important; margin: 0 !important; padding: 1rem !important; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15) !important; font-size: 1rem !important; background-color: green !important; color: white !important; border: none !important; } } /* Checkout Page Modernization */ .checkout { font-family: 'Inter', 'Helvetica Neue', sans-serif; color: var(--color-text-dark); margin: 0 auto; padding: 1rem 1rem; } .checkout h1 { color: var(--color-heading); font-size: 2.0rem; font-weight: 600; margin-top: 1rem; margin-bottom: 2.5rem; padding-bottom: 1rem; position: relative; border-bottom: 3px solid var(--color-primary); } .checkout h1::after { content: ''; position: absolute; bottom: -10px; left: 0; width: 0; height: 3px; background-color: var(--color-primary); } .checkout h2 { color: var(--color-dark-blue); font-size: 1.25rem; font-weight: 500; margin: 1.75rem 0 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--color-gray); } .checkout p { margin-bottom: 1.5rem; line-height: 1.6; } .checkout a { color: var(--color-accent); text-decoration: none; transition: color 0.2s ease; } .checkout a:hover { color: var(--color-primary); text-decoration: underline; } .checkout .error { color: #e74c3c; background-color: rgba(231, 76, 60, 0.1); padding: 0.75rem; border-radius: 4px; margin-bottom: 1.5rem; font-size: 0.9rem; } /* Container and layout */ .checkout .container { display: grid; grid-template-columns: 1fr; gap: 2rem; } @media (min-width: 768px) { .checkout .container { grid-template-columns: 3fr 2fr; } } /* Form elements */ .checkout .form-field { width: 100%; padding: 0.875rem 1rem; margin-bottom: 1rem; border: 1px solid var(--color-gray); border-radius: 4px; font-size: 0.95rem; transition: border-color 0.3s, box-shadow 0.3s; background-color: var(--color-white); } .checkout .form-field:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(44, 75, 124, 0.15); outline: none; } .checkout label { display: block; font-size: 0.85rem; font-weight: 500; margin-bottom: 0.5rem; color: var(--color-dark-text); } .checkout select.form-field { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1rem; padding-right: 2.5rem; } /* Inline field rows - use flexbox for better control */ .inline-fields { display: flex; gap: 0.75rem; } .inline-fields > div { flex: 1; min-width: 0; } /* Legacy row1/row2 support - desktop side-by-side */ @media (min-width: 601px) { .row1, .row2 { display: inline-block; width: calc(50% - 0.4rem); vertical-align: top; } .row1 { margin-right: 0.4rem; } .row2 { margin-left: 0.4rem; } } /* Mobile: stack all fields */ @media (max-width: 600px) { .row1, .row2 { display: block; width: 100%; margin: 0; } .inline-fields { flex-direction: column; gap: 0; } } /* Shipping details */ .shipping-details { background-color: var(--color-white); border-radius: 8px; padding: 1.5rem; box-shadow: 0 2px 12px var(--color-shadow); } #dropin-container { margin-bottom: 1.5rem; } /* Payment methods */ .payment-methods { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; } /* Cart details */ .cart-details { background-color: var(--color-white); border-radius: 8px; padding: 1.5rem; box-shadow: 0 2px 12px var(--color-shadow); position: sticky; top: 20px; } .cart-details table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; } .cart-details table td { padding: 0.75rem 0; border-bottom: 1px solid var(--color-gray); } .cart-details table td img { border-radius: 4px; object-fit: cover; border: 1px solid var(--color-light-gray); } .cart-details table td.price { font-weight: 600; text-align: right; color: var(--color-dark-text); } /* Discount code */ .discount-code { display: flex; gap: 0.5rem; margin-bottom: 1.5rem; } .discount-code input { flex: 1; margin-bottom: 0; } .discount-code .result { font-size: 0.9rem; color: var(--color-green); } /* Summary and total */ .summary { margin-bottom: 1rem; } .summary > div { display: flex; justify-content: space-between; margin-bottom: 0.5rem; padding: 0.5rem 0; font-size: 0.95rem; } .total { display: flex; justify-content: space-between; padding: 1rem 0; margin: 1rem 0; border-top: 2px solid var(--color-gray); border-bottom: 2px solid var(--color-gray); font-size: 1.1rem; font-weight: 600; color: var(--color-dark-text); } .total .alt { font-size: 0.8rem; font-weight: normal; color: var(--color-dark-gray); } /* Checkboxes */ .checkout input[type="checkbox"] { margin-right: 0.5rem; position: relative; top: 2px; accent-color: var(--color-accent); } /* Button */ .buttons { margin-top: 1.5rem; } .checkout_btn { background-color: var(--color-primary); color: var(--color-white); border: none; border-radius: 4px; padding: 1rem 1.5rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background-color 0.2s, transform 0.1s; width: 100%; text-align: center; box-shadow: 0 2px 4px rgba(255, 111, 0, 0.25); } .checkout_btn:hover { background-color: var(--color-primary-dark); } .checkout_btn:active { transform: translateY(1px); background-color: var(--color-primary-darker); } /* Responsive adjustments */ @media (max-width: 767px) { .shipping-details, .cart-details { padding: 1.25rem; } .cart-details { position: static; } .checkout h1 { font-size: 1.75rem; } .checkout h2 { font-size: 1.1rem; } } /* Compact checkout on mobile (<993px) */ @media (max-width: 992px) { .checkout { padding: 0.5rem; padding-bottom: 90px; /* Space for sticky button */ } .checkout h1 { font-size: 1.3rem; margin-bottom: 0.75rem; text-align: center; } .checkout h1::after { display: none; } .checkout > p { text-align: center; margin-bottom: 0.5rem; font-size: 0.85rem; } .checkout h2 { font-size: 0.95rem; margin: 0.75rem 0 0.5rem; padding-bottom: 0.25rem; border-bottom: 1px solid #eee; } .checkout .form-field { padding: 0.75rem; margin-bottom: 0.5rem; font-size: 16px; /* Prevents iOS zoom */ border-radius: 6px; } .checkout label { font-size: 0.8rem; margin-bottom: 0.2rem; display: block; } .checkout .container { display: flex; flex-direction: column; gap: 0.75rem; } .shipping-details { padding: 0.75rem; border-radius: 8px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.08); } .cart-details { position: static; padding: 0.75rem; border-radius: 8px; background: #f9f9f9; } .cart-details h2 { margin-top: 0; } .cart-details table { font-size: 0.85rem; } .cart-details table td { padding: 0.4rem 0; } .cart-details table td img { width: 35px !important; height: 35px !important; border-radius: 4px; } .cart-details table td:last-child { text-align: right; white-space: nowrap; } .discount-code { margin: 0.5rem 0; } .discount-code input { padding: 0.6rem; font-size: 0.9rem; } .shipping-methods-container { margin: 0.5rem 0; } .shipping-methods h3 { font-size: 0.85rem; margin-bottom: 0.4rem; } .shipping-method { padding: 0.4rem 0; font-size: 0.85rem; } .summary { border-top: 1px solid #eee; padding-top: 0.5rem; margin-top: 0.5rem; } .summary > div { display: flex; justify-content: space-between; padding: 0.25rem 0; font-size: 0.85rem; } .total { display: flex; justify-content: space-between; padding: 0.6rem 0; margin: 0.5rem 0; font-size: 1.05rem; font-weight: 600; border-top: 2px solid var(--color-primary); } /* Consent checkboxes */ .checkout .summary .subtotal { font-size: 0.75rem; line-height: 1.4; } .checkout .summary .subtotal input[type="checkbox"] { margin-right: 0.4rem; vertical-align: middle; } /* Payment methods compact grid */ .checkout .payment-methods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; margin-bottom: 0.5rem; } .checkout .payment-methods label { height: 45px; width: 100%; margin: 0; font-size: 0.75rem; padding: 0.25rem; } .checkout .payment-methods label img { max-height: 25px; width: auto; } /* Sticky checkout button */ .checkout .buttons { position: fixed; bottom: 0; left: 0; right: 0; margin: 0; padding: 0.75rem; background: #fff; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); z-index: 1000; } .checkout .checkout_btn { width: 100%; padding: 0.9rem; font-size: 1rem; font-weight: 600; border-radius: 8px; } .checkout .error { padding: 0.5rem; margin-bottom: 0.5rem; font-size: 0.8rem; border-radius: 6px; } /* Hide account creation section initially - less overwhelming */ #password-section { background: #f5f5f5; padding: 0.75rem; border-radius: 6px; margin-top: 0.5rem; } } /* Extra compact for small phones (<480px) */ @media (max-width: 480px) { .checkout { padding: 0.35rem; padding-bottom: 85px; } .checkout h1 { font-size: 1.15rem; } .checkout h2 { font-size: 0.9rem; } .checkout .form-field { padding: 0.65rem; } .checkout label { font-size: 0.75rem; } .shipping-details, .cart-details { padding: 0.5rem; } .cart-details table td img { width: 30px !important; height: 30px !important; } .checkout .payment-methods { grid-template-columns: repeat(2, 1fr); gap: 0.35rem; } .checkout .payment-methods label { height: 40px; } .checkout .payment-methods label img { max-height: 20px; } .checkout .buttons { padding: 0.5rem; } .checkout .checkout_btn { padding: 0.75rem; font-size: 0.95rem; } .checkout .summary .subtotal { font-size: 0.7rem; } } .checkout .payment-methods { display: flex; flex-flow: wrap; width: 100%; gap:10px; } .checkout .payment-methods label { text-decoration: none; display: flex; justify-content: center; align-items: center; border: 1px solid #EEEEEE; border-radius: 5px; height: 60px; width: 159px; margin: 10px; font-weight: 500; color: #434f61; padding: 0; cursor: pointer; text-align: center; } .checkout .payment-methods label:nth-child(2), main .checkout .payment-methods label:nth-child(8) { margin-left: 0; } .checkout .payment-methods label:nth-child(3n) { margin-right: 0; } .checkout .payment-methods label:hover { border: 1px solid #d5d5d5; } .checkout .payment-methods input { position: absolute; top: -9999px; left: -9999px; visibility: hidden; } .checkout .payment-methods input:checked + label { border: 2px solid var(--color-primary); } .order-confirmation { width: 100%; max-width: 800px; margin: 2rem auto; padding: 2rem; background-color: var(--color-white); border-radius: 12px; box-shadow: 0 8px 24px var(--color-shadow); } .order-confirmation__container { display: flex; flex-direction: column; align-items: center; text-align: center; } .order-confirmation__icon { color: var(--color-primary); margin-bottom: 1.5rem; animation: fadeInUp 0.6s ease-out; } .order-confirmation__title { color: var(--color-heading); font-size: 1.75rem; font-weight: 700; margin-bottom: 1rem; animation: fadeInUp 0.8s ease-out; } .order-confirmation__message { color: var(--color-text-gray); font-size: 1.125rem; line-height: 1.5; animation: fadeInUp 1s ease-out; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @media (max-width: 768px) { .order-confirmation { padding: 1.5rem; margin: 1rem; } .order-confirmation__title { font-size: 1.5rem; } .order-confirmation__message { font-size: 1rem; } } .content-section { max-width: 90%; margin: 40px auto; line-height: 1.6; } .text-image-block { margin-bottom: 60px; overflow: hidden; position: relative; } .text-content { padding: 30px; } .image-container { width: 40%; border-radius: 8px; overflow: hidden; box-shadow: 0 6px 12px rgba(0,0,0,0.15); } .image-container img { width: 100%; height: auto; display: block; } /* First layout - image on right */ .layout-1 .image-container { float: right; margin: 0 0 20px 30px; shape-outside: margin-box; } /* Second layout - image on left */ .layout-2 .image-container { float: left; margin: 0 30px 20px 0; shape-outside: margin-box; } /* Third layout - image centered with text wrapping */ .layout-3 .image-container { float: right; margin: 0 0 20px 30px; shape-outside: margin-box; } .about_link { display: inline-block; font-size: 0.85rem !important; padding: 0.6rem 1.2rem !important; background-color: transparent; border: 1px solid var(--color-text-dark); transition: all 0.3s ease; color: var(--color-text-dark) !important; text-transform: uppercase; letter-spacing: 1px; margin-top: 20px; } /* Responsive adjustments */ @media (max-width: 768px) { .image-container { width: 50%; float: none; margin: auto; shape-outside: none; } } .myaccount.content-wrapper { max-width: 90%; margin: 3rem auto; padding: 0 1.5rem; } /* Login/Register page layout */ .login-register { display: flex; flex-direction: column; gap: 3rem; max-width: 1100px; margin: 3rem auto; padding: 0 2rem; } @media (min-width: 768px) { .login-register { flex-direction: row; gap: 4rem; } .login, .register { flex: 1; } } /* Login and register cards */ .login, .register { background-color: white; border-radius: 4px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); padding: 3rem 2.5rem; border: 2px solid #e5e7eb; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; } .login:hover, .register:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12); border-color: var(--color-primary); } /* Headings */ .login h1, .register h1 { color: var(--color-dark-text); font-size: 2rem; font-weight: 700; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 3px solid var(--color-primary); position: relative; } /* Form styling */ .login form, .register form { display: flex; flex-direction: column; gap: 1.5rem; } .form-label { display: block; font-weight: 600; margin-bottom: 0.5rem; color: var(--color-dark-text); font-size: 0.95rem; } .form-field { width: 100%; padding: 1rem 1.25rem; border: 2px solid #e5e7eb; border-radius: 8px; background-color: #f9fafb; font-size: 1rem; transition: all 0.3s ease; font-family: inherit; } .form-field:hover { border-color: #d1d5db; } .form-field:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(255, 111, 0, 0.1); background-color: white; } .form-field::placeholder { color: #9ca3af; opacity: 1; } /* Button in login form */ .login .btn, .register .btn { margin-top: 0.5rem; width: 100%; padding: 1.125rem; background: var(--color-primary); color: white; border: none; border-radius: 8px; font-size: 1.05rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; cursor: pointer; transition: all 0.3s ease; } .login .btn:hover, .register .btn:hover { background: var(--color-primary-dark); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(255, 111, 0, 0.3); } .login .btn:active, .register .btn:active { transform: translateY(0); } /* Error messages */ .login .error, .register .error { margin-top: 1rem; padding: 1rem; background: #fee2e2; border: 1px solid #fca5a5; border-radius: 8px; color: #dc2626; font-size: 0.95rem; } /* Password field styling */ input[type="password"] { letter-spacing: 0.15em; } /* Responsive adjustments */ @media (max-width: 767px) { .login-register { margin: 2rem auto; padding: 0 1rem; gap: 2rem; } .login, .register { padding: 2rem 1.5rem; } .login h1, .register h1 { font-size: 1.75rem; } } .myaccount h1 { font-size: 2.25rem; font-weight: 700; color: var(--color-heading); margin-bottom: 2rem; border-bottom: 3px solid var(--color-primary); padding-bottom: 0.75rem; display: inline-block; } /* Layout */ @media (min-width: 992px) { .myaccount.content-wrapper { display: grid; grid-template-columns: 250px 1fr; gap: 2.5rem; } .myaccount h1 { grid-column: 1 / -1; } } /* Menu styles */ .menu { background-color: var(--color-white); border-radius: 8px; box-shadow: 0 2px 8px var(--color-shadow); padding: 1.5rem; margin-bottom: 2rem; position: sticky; top: 1.5rem; align-self: start; } .menu h2 { font-size: 1.25rem; font-weight: 600; color: var(--color-heading); margin: 0 0 1.25rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--color-primary); } .menu-items { display: flex; flex-direction: column; gap: 0.5rem; } .menu-items a { display: block; padding: 0.75rem 1rem; color: var(--color-text-dark); text-decoration: none; border-radius: 6px; transition: all 0.2s ease; font-weight: 500; border-left: 3px solid transparent; } .menu-items a:hover { background-color: var(--color-light-gray); color: var(--color-primary); border-left-color: var(--color-primary); } .menu-items a.active { background-color: var(--color-lighter-gray); color: var(--color-primary); border-left-color: var(--color-primary); font-weight: 600; } /* Orders section */ .myorders { width: 100%; } .myorders h2 { font-size: 1.5rem; font-weight: 600; color: var(--color-heading); margin: 0 0 1.5rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--color-accent); } /* Order item */ .order { background-color: var(--color-white); border-radius: 8px; box-shadow: 0 2px 6px var(--color-shadow); margin-bottom: 1.5rem; overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; } .order:hover { transform: translateY(-3px); box-shadow: 0 4px 12px var(--color-shadow); } /* Order header */ .order-header { display: flex; justify-content: space-between; padding: 1.25rem; background-color: var(--color-lighter-gray); border-bottom: 1px solid var(--color-gray); } .order-header > div { display: flex; flex-direction: column; gap: 0.5rem; } @media (min-width: 576px) { .order-header > div { flex-direction: row; align-items: center; gap: 1.5rem; } } .order-header span { display: block; font-size: 0.75rem; color: var(--color-dark-gray); margin-bottom: 0.15rem; text-transform: uppercase; letter-spacing: 0.5px; } .order-header div > div { margin-right: 1rem; font-weight: 500; } /* Status styling */ .order-header div > div:nth-child(3) { font-weight: 600; } .order-header div > div:nth-child(3):contains("Open") { color: var(--color-status-open); } .order-header div > div:nth-child(3):contains("Betaald") { color: var(--color-status-paid); } .order-header div > div:nth-child(3):contains("Verlopen") { color: var(--color-status-expired); } /* Total price styling */ .order-header > div:last-child > div:last-child { font-weight: 700; font-size: 1.1rem; color: var(--color-dark-text); } /* Order items */ .order-items { padding: 1rem; } .order-items table { width: 100%; border-collapse: collapse; } .order-items tr { border-bottom: 1px solid var(--color-gray); } .order-items tr:last-child { border-bottom: none; } .order-items td { padding: 0.875rem 0.5rem; vertical-align: middle; } .order-items td.img { width: 70px; padding-left: 0; } .order-items td.img img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; border: 1px solid var(--color-gray); background-color: var(--color-white); transition: transform 0.2s ease; } .order-items tr:hover td.img img { transform: scale(1.05); } .order-items td.name { font-weight: 500; color: var(--color-text-dark); } .order-items td.price { text-align: right; font-weight: 600; color: var(--color-text-dark); white-space: nowrap; } /* Responsive styles */ @media (max-width: 767px) { .rhide { display: none; } .order-header { flex-direction: column; gap: 0.875rem; } .order-header > div:last-child { align-self: flex-end; } } @media (max-width: 576px) { .myaccount h1 { font-size: 1.75rem; } .myorders h2, .menu h2 { font-size: 1.35rem; } .order-items td.name { font-size: 0.9rem; } } /* Empty state for no orders */ .myorders:empty::after { content: "No orders found"; display: block; text-align: center; padding: 3rem 1rem; color: var(--color-dark-gray); background-color: var(--color-white); border-radius: 8px; box-shadow: 0 2px 6px var(--color-shadow); font-size: 1.1rem; } /* Animation for new orders */ @keyframes highlight { 0% { background-color: rgba(255, 111, 0, 0.2); } 100% { background-color: var(--color-white); } } .order.new { animation: highlight 2s ease-out; } /* =================================== DEALERS PAGE STYLES =================================== */ /* Dealers Section */ .dealers-section { padding: 80px 0; background-color: var(--color-lighter-gray); } .section-intro { text-align: center; max-width: 800px; margin: 0 auto 60px; } .section-intro h2 { font-size: 2.5rem; font-weight: 600; color: var(--color-heading); margin-bottom: 20px; position: relative; } .section-intro h2::after { content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background-color: var(--color-primary); } .section-intro p { font-size: 1.2rem; line-height: 1.6; color: var(--color-text-gray); } /* Dealers Grid */ .dealers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 30px; max-width: 1200px; margin: 0 auto; } /* Dealer Card */ .dealer-card { background-color: var(--color-white); border-radius: 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); padding: 30px; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; overflow: hidden; } .dealer-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, var(--color-primary), var(--color-secondary)); } .dealer-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12); } /* Dealer Header */ .dealer-header { margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid var(--color-light-gray); } .dealer-header h3 { font-size: 1.5rem; font-weight: 600; color: var(--color-heading); margin-bottom: 5px; } .dealer-location { font-size: 1rem; color: var(--color-primary); font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; } /* Dealer Info */ .dealer-info { margin-bottom: 25px; } .info-item { display: flex; align-items: flex-start; margin-bottom: 15px; gap: 12px; } .info-item:last-child { margin-bottom: 0; } .info-item i { font-size: 1.1rem; color: var(--color-primary); margin-top: 2px; min-width: 20px; } /* Icons using CSS pseudo-elements */ .icon-location::before { content: "📍"; } .icon-phone::before { content: "📞"; } .icon-email::before { content: "✉️"; } .icon-whatsapp::before { content: "💬"; } .info-item div { display: flex; flex-direction: column; } .info-item span { font-size: 0.95rem; color: var(--color-text-gray); line-height: 1.4; } .info-item a { color: var(--color-text-dark); text-decoration: none; font-weight: 500; transition: color 0.3s ease; } .info-item a:hover { color: var(--color-primary); } /* Dealer Actions */ .dealer-actions { display: flex; gap: 10px; } .dealer-actions .btn { flex: 1; text-align: center; padding: 10px 15px; font-size: 0.9rem; font-weight: 500; border-radius: 6px; text-decoration: none; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 5px; } .btn-secondary { background-color: var(--color-primary); color: var(--color-white); border: 1px solid var(--color-primary); } .btn-secondary:hover { background-color: var(--color-primary-dark); border-color: var(--color-primary-dark); } .btn-outline { background-color: transparent; color: var(--color-primary); border: 1px solid var(--color-primary); } .btn-outline:hover { background-color: var(--color-primary); color: var(--color-white); } /* Become a Dealer Section */ .become-dealer-section { padding: 80px 0; background-color: var(--color-white); } .become-dealer-content { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; max-width: 1200px; margin: 0 auto; } .become-dealer-text h2 { font-size: 2.2rem; font-weight: 600; color: var(--color-heading); margin-bottom: 20px; line-height: 1.3; } .become-dealer-text p { font-size: 1.1rem; line-height: 1.6; color: var(--color-text-gray); margin-bottom: 30px; } .contact-options { display: flex; flex-direction: column; gap: 15px; } .contact-options .btn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; font-size: 1rem; font-weight: 500; border-radius: 6px; text-decoration: none; transition: all 0.3s ease; width: fit-content; } .btn-primary { background-color: var(--color-primary); color: var(--color-white); border: 1px solid var(--color-primary); } .btn-primary:hover { background-color: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-2px); } .btn-whatsapp { background-color: #25D366; color: var(--color-white); border: 1px solid #25D366; } .btn-whatsapp:hover { background-color: #128C7E; border-color: #128C7E; transform: translateY(-2px); } .become-dealer-image { display: flex; justify-content: center; align-items: center; } .image-placeholder { width: 100%; height: 300px; background-image: url(../../custom/assets/header.jpg); background-size: cover; background-position: center; border-radius: 12px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; } /* Responsive Design */ @media (max-width: 992px) { .dealers-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 25px; } .become-dealer-content { grid-template-columns: 1fr; gap: 40px; text-align: center; } .section-intro h2 { font-size: 2.2rem; } .become-dealer-text h2 { font-size: 2rem; } } @media (max-width: 768px) { .dealers-section { padding: 60px 0; } .become-dealer-section { padding: 60px 0; } .dealers-grid { grid-template-columns: 1fr; gap: 20px; } .dealer-card { padding: 25px; } .section-intro h2 { font-size: 2rem; } .section-intro p { font-size: 1.1rem; } .become-dealer-text h2 { font-size: 1.8rem; } .contact-options { align-items: center; } .contact-options .btn { width: 100%; justify-content: center; max-width: 300px; } } @media (max-width: 576px) { .dealer-card { padding: 20px; } .dealer-actions { flex-direction: column; } .dealer-actions .btn { width: 100%; } .section-intro h2 { font-size: 1.8rem; } .become-dealer-text h2 { font-size: 1.6rem; } .hero h1 { font-size: 2rem; } .hero p { font-size: 1.1rem; } } /* Animation for cards on scroll */ @media (prefers-reduced-motion: no-preference) { .dealer-card { opacity: 0; transform: translateY(30px); animation: fadeInUp 0.6s ease forwards; } .dealer-card:nth-child(1) { animation-delay: 0.1s; } .dealer-card:nth-child(2) { animation-delay: 0.2s; } .dealer-card:nth-child(3) { animation-delay: 0.3s; } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } } /* Reviews section */ .reviews { padding: 60px 0; background-color: var(--color-light-gray); } .reviews .container { max-width: 90%; margin: 0 auto; } .reviews h2 { text-align: center; color: var(--color-dark-blue); font-size: 2.2rem; margin-bottom: 50px; font-weight: 600; } .reviews-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; max-width: 1200px; margin: 0 auto; } .review-item { background: var(--color-white); padding: 30px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; border-left: 4px solid var(--color-dark-blue); } .review-item:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12); } .review-item .stars { color: var(--color-star); font-size: 1.3rem; margin-bottom: 20px; letter-spacing: 2px; } .review-item p { color: var(--color-text-dark); font-size: 0.8rem; line-height: 1.6; margin-bottom: 20px; font-style: italic; position: relative; } .review-item p::before { content: '"'; font-size: 3rem; color: var(--color-dark-blue); position: absolute; left: -15px; top: -10px; opacity: 0.3; font-family: serif; } .review-item p::after { content: '"'; font-size: 3rem; color: var(--color-dark-blue); position: absolute; right: -10px; bottom: -20px; opacity: 0.3; font-family: serif; } .reviewer { color: var(--color-dark-blue); font-weight: 600; font-size: 1.1rem; text-align: right; position: relative; } .reviewer::before { content: ''; width: 40px; height: 2px; background-color: var(--color-dark-blue); position: absolute; right: 0; top: -10px; } /* Mobile responsiveness for reviews */ @media (max-width: 768px) { .reviews { padding: 40px 0; } .reviews h2 { font-size: 1.8rem; margin-bottom: 30px; } .reviews-container { grid-template-columns: 1fr; gap: 25px; } .review-item { padding: 25px 20px; } .review-item p { font-size: 0.95rem; } .review-item p::before, .review-item p::after { font-size: 2.5rem; } } /* Mobile styles for watch ad section */ @media (max-width: 768px) { .watch-ad-section { max-width: 95%; } .top-section { flex-direction: column; justify-content: center; align-items: center; height: 300px; padding: 20px; } .watch-image { display: none; } .top-content { width: 90%; max-width: 90%; text-align: center; margin: 0 auto; } .top-content h2 { font-size: 1.6rem; line-height: 1.3; word-wrap: break-word; overflow-wrap: break-word; } .bottom-section { flex-direction: column; justify-content: center; align-items: center; height: 300px; padding: 20px; } .bottom-content { width: 90%; max-width: 90%; text-align: center; margin: 0 auto; } .bottom-content h2 { font-size: 1.6rem; line-height: 1.3; word-wrap: break-word; overflow-wrap: break-word; } } /* ============================================ STEP-BY-STEP CHECKOUT WIZARD ============================================ */ /* Progress Steps Indicator */ .progress-steps { display: flex; justify-content: space-between; align-items: center; max-width: 600px; margin: 2rem auto 3rem; position: relative; padding: 0 1rem; } .progress-steps::before { content: ''; position: absolute; top: 20px; left: 15%; right: 15%; height: 2px; background: #e5e7eb; z-index: 0; } .progress-step { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; position: relative; z-index: 1; flex: 1; } .step-number { width: 40px; height: 40px; border-radius: 50%; background: #e5e7eb; color: #9ca3af; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.125rem; transition: all 0.3s ease; } .step-label { font-size: 0.875rem; color: #6b7280; font-weight: 500; text-align: center; transition: color 0.3s ease; } .progress-step.active .step-number { background: #2c4b7c; color: white; box-shadow: 0 0 0 4px rgba(44, 75, 124, 0.2); } .progress-step.active .step-label { color: #2c4b7c; font-weight: 600; } .progress-step.completed .step-number { background:var(--color-primary); color: white; } .progress-step.completed .step-label { color: #10b981; } /* Checkout Steps Container */ .checkout-wizard .container { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-top: 2rem; max-width: 800px; margin-left: auto; margin-right: auto; } .checkout-steps { display: flex; flex-direction: column; gap: 1.5rem; } /* Step Sections */ .step-section { background: white; border: 2px solid #e5e7eb; border-radius: 4px; overflow: hidden; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .step-section.active { border-color: #2c4b7c; box-shadow: 0 4px 12px rgba(44, 75, 124, 0.15); } .step-section.completed { border-color: var(--color-primary); } .step-section.completed .step-header { cursor: pointer; } .step-section.completed .step-header:hover { background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(16, 185, 129, 0.08) 100%); } /* Step Header */ .step-header { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; background: #f9fafb; transition: background 0.3s ease; } .step-section.active .step-header { background: linear-gradient(135deg, rgba(44, 75, 124, 0.1) 0%, rgba(44, 75, 124, 0.05) 100%); } .step-header-content { display: flex; align-items: center; gap: 1rem; } .step-badge { width: 32px; height: 32px; border-radius: 50%; background: #d1d5db; color: #6b7280; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1rem; transition: all 0.3s ease; } .step-section.active .step-badge { background: #2c4b7c; color: white; } .step-section.completed .step-badge { background: var(--color-primary); color: white; } .step-title { margin: 0; font-size: 1.25rem; font-weight: 600; color: #1f2937; } .step-edit { color: #2c4b7c; font-size: 0.9rem; font-weight: 500; opacity: 0; transition: opacity 0.3s ease; } .step-section.completed .step-edit { opacity: 1; } .step-section.completed:hover .step-edit { text-decoration: underline; } /* Step Content */ .step-content { padding: 2rem; max-height: 0; overflow: hidden; opacity: 0; padding-top: 0; padding-bottom: 0; transition: max-height 0.3s ease-out, opacity 0.3s ease-out, padding 0.3s ease-out; } .step-section.active .step-content { max-height: 5000px; opacity: 1; padding-top: 2rem; padding-bottom: 2rem; animation: slideDown 0.3s ease-out; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Step Summary (shown when completed) */ .step-summary { background: #f3f4f6; border-radius: 4px; padding: 1rem; margin-top: 1rem; } .step-section.completed .step-content { max-height: 0; opacity: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; } .step-section.completed .step-summary { display: block !important; padding: 1.5rem; } .summary-item { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; } .summary-label { font-weight: 500; color: #6b7280; } .summary-value { font-weight: 600; color: #1f2937; } /* Step Buttons */ .step-buttons { display: flex; gap: 1rem; margin-top: 2rem; } .btn-continue, .btn-back { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 1rem 2rem; border: none; border-radius: 4px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; } .btn-continue { flex: 1; background: linear-gradient(135deg, #ff6f00 0%, #e56200 100%); color: white; box-shadow: 0 4px 12px rgba(255, 111, 0, 0.3); } .btn-continue:hover { background: linear-gradient(135deg, #e56200 0%, #d35400 100%); box-shadow: 0 6px 16px rgba(255, 111, 0, 0.4); transform: translateY(-2px); } .btn-back { background: white; color: #6b7280; border: 2px solid #e5e7eb; } .btn-back:hover { background: #f9fafb; border-color: #d1d5db; } /* Existing styles from previous checkout */ .payment-methods-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; } .payment-option { position: relative; } .payment-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; } .payment-card { display: block; position: relative; padding: 1.25rem; border: 2px solid #e5e7eb; border-radius: 10px; background: white; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); min-height: 130px; } .payment-card:hover { border-color: #2c4b7c; box-shadow: 0 6px 12px rgba(44, 75, 124, 0.12); transform: translateY(-2px); } .payment-option input[type="radio"]:checked + .payment-card { border-color: #2c4b7c; background: linear-gradient(135deg, rgba(44, 75, 124, 0.05) 0%, rgba(44, 75, 124, 0.02) 100%); box-shadow: 0 6px 16px rgba(44, 75, 124, 0.2), 0 0 0 1px #2c4b7c; } .payment-card-content { display: flex; flex-direction: column; align-items: center; gap: 0.875rem; text-align: center; } .payment-logos { display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 45px; flex-wrap: wrap; } .payment-logo { max-height: 40px; max-width: 65px; width: auto; height: auto; object-fit: contain; } .payment-icon { color: #2c4b7c; opacity: 0.8; } .payment-name { font-size: 0.95rem; font-weight: 600; color: #1f2937; line-height: 1.2; } .payment-check { position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; background: #2c4b7c; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 14px; opacity: 0; transform: scale(0); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .payment-option input[type="radio"]:checked + .payment-card .payment-check { opacity: 1; transform: scale(1); } /* Form Fields */ .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; } .form-col { display: flex; flex-direction: column; } .form-col .form-field { margin-bottom: 0; } /* Collapsible Sections */ .collapsible-section { margin-bottom: 1.5rem; } .collapsible-header { display: flex; align-items: center; justify-content: space-between; background: none; border: none; cursor: pointer; font-size: 0.5rem; color: #1f3d6b; transition: all 0.3s ease; text-align: left; } .collapsible-header:hover { color: #2c4b7c; border-bottom-color: #2c4b7c; } .collapsible-icon { transition: transform 0.3s ease; flex-shrink: 0; } .collapsible-content { max-height: 0; overflow: hidden; transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .collapsible-section.active .collapsible-content { padding-top: 1rem; } /* Cart Table */ .cart-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-bottom: 1.5rem; } .cart-table tr { border-bottom: 1px solid #f3f4f6; } .cart-table tr:last-child { border-bottom: none; } .cart-table td { padding: 1rem 0; } .cart-img { width: 50px; } .cart-img img { border-radius: 8px; object-fit: cover; border: 1px solid #e5e7eb; } .cart-info { font-size: 0.9rem; color: #374151; } .cart-price { text-align: right; font-weight: 600; color: #1f2937; white-space: nowrap; } /* Discount Section */ .discount-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #e5e7eb; } .discount-header { font-size: 0.95rem; padding: 0.75rem 0; } .discount-input-wrapper { margin-bottom: 0.5rem; } .discount-result { display: block; font-size: 0.875rem; color: #10b981; font-weight: 500; min-height: 1.5rem; margin-top: 0.5rem; } /* Shipping Methods */ .shipping-methods-wrapper { margin: 1.5rem 0; } .shipping-title { font-size: 1rem; font-weight: 600; color: #1f3d6b; margin-bottom: 1rem; } .shipping-methods { display: flex; flex-direction: column; gap: 0.75rem; } .shipping-method { position: relative; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 1rem; padding: 1rem 1.25rem; border: 2px solid #e5e7eb; border-radius: 8px; cursor: pointer; transition: all 0.3s ease; background: white; flex-wrap: nowrap !important; } .shipping-method:hover { border-color: #2c4b7c; box-shadow: 0 2px 8px rgba(44, 75, 124, 0.1); } .shipping-method input[type="radio"] { position: absolute; opacity: 0; } .shipping-method input[type="radio"]:checked ~ .shipping-info { color: #2c4b7c; } .shipping-method input[type="radio"]:checked ~ .shipping-radio::after { opacity: 1; transform: scale(1); } .shipping-info { display: flex; align-items: center; justify-content: space-between; flex: 1; gap: 1rem; } .shipping-name { font-weight: 500; color: #374151; transition: color 0.3s ease; } .shipping-price { font-weight: 600; color: #1f2937; } .shipping-radio { position: relative; width: 20px; height: 20px; border: 2px solid #d1d5db; border-radius: 50%; flex-shrink: 0; transition: all 0.3s ease; } .shipping-method:hover .shipping-radio { border-color: #2c4b7c; } .shipping-method input[type="radio"]:checked ~ .shipping-radio { border-color: #2c4b7c; } .shipping-radio::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0); width: 10px; height: 10px; background: #2c4b7c; border-radius: 50%; opacity: 0; transition: all 0.3s ease; } /* Order Summary */ .order-summary { margin: 1.5rem 0; padding: 1.25rem 0; border-top: 1px solid #e5e7eb; } .summary-row { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; font-size: 0.95rem; color: #4b5563; } .summary-value { font-weight: 600; color: #1f2937; } .discount-row { color: #10b981; } .discount-row .summary-value { color: #10b981; } .tax-rate { font-size: 0.8rem; font-weight: normal; color: #6b7280; } /* Order Total */ .order-total { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 0; margin: 1rem 0; border-top: 2px solid #e5e7eb; border-bottom: 2px solid #e5e7eb; } .total-label { font-size: 1.1rem; font-weight: 600; color: #1f2937; } .total-note { font-size: 0.8rem; font-weight: normal; color: #6b7280; } .total-amount { font-size: 1.5rem; font-weight: 700; color: #1f2937; } /* Consent Section */ .consent-section { margin: 1.5rem 0; } .consent-checkbox { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1rem; cursor: pointer; line-height: 1.6; } .consent-checkbox input[type="checkbox"] { margin-top: 3px; width: 18px; height: 18px; cursor: pointer; accent-color: #2c4b7c; flex-shrink: 0; } .consent-text { font-size: 0.875rem; color: #4b5563; } .consent-text a { color: #2c4b7c; text-decoration: underline; } /* Final Checkout Button */ .checkout-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1.25rem 2rem; background: linear-gradient(135deg, #ff6f00 0%, #e56200 100%); color: white; border: none; border-radius: 10px; font-size: 1.125rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 14px rgba(255, 111, 0, 0.35); margin-top: 1.5rem; } .checkout-btn:hover { background: linear-gradient(135deg, #e56200 0%, #d35400 100%); box-shadow: 0 6px 20px rgba(255, 111, 0, 0.45); transform: translateY(-2px); } .checkout-btn:active { transform: translateY(0); } .checkout-btn svg { transition: transform 0.3s ease; } .checkout-btn:hover svg { transform: translateX(4px); } /* Step 4 cart/order details styling */ #step-4 .cart-table { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; } #step-4 .cart-table td { padding: 0.75rem 0; border-bottom: 1px solid var(--color-gray); } #step-4 .cart-table .cart-img img { border-radius: 4px; object-fit: cover; border: 1px solid var(--color-light-gray); } #step-4 .cart-table .cart-price { font-weight: 600; text-align: right; color: var(--color-dark-text); } #step-4 .order-summary { border-top: 2px solid var(--color-gray); padding-top: 1rem; margin: 1.5rem 0; } #step-4 .summary-row { display: flex; justify-content: space-between; padding: 0.5rem 0; font-size: 0.95rem; } #step-4 .order-total { display: flex; justify-content: space-between; padding: 1rem 0; font-size: 1.25rem; font-weight: 700; border-top: 2px solid var(--color-dark-text); margin-top: 1rem; } #step-4 .total-note { font-size: 0.75rem; font-weight: 400; color: var(--color-text); } #step-4 .consent-section { margin: 1.5rem 0; } #step-4 .consent-checkbox { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1rem; cursor: pointer; } #step-4 .consent-checkbox input[type="checkbox"] { margin-top: 0.25rem; accent-color: var(--color-primary); } #step-4 .consent-text { font-size: 0.9rem; line-height: 1.5; } #step-4 .shipping-methods-wrapper { margin: 1.5rem 0; } #step-4 .shipping-title { font-size: 1rem; font-weight: 600; margin-bottom: 1rem; color: var(--color-dark-text); } #step-4 .shipping-methods { display: flex; flex-direction: column; gap: 0.75rem; } #step-4 .shipping-method { display: flex; align-items: center; justify-content: space-between; padding: 1rem; border: 2px solid var(--color-gray); border-radius: 8px; cursor: pointer; transition: all 0.2s ease; } #step-4 .shipping-method:hover { border-color: var(--color-primary); background-color: rgba(255, 111, 0, 0.05); } #step-4 .shipping-method input[type="radio"] { margin-right: 1rem; accent-color: var(--color-primary); } #step-4 .shipping-method input[type="radio"]:checked ~ .shipping-info { font-weight: 600; } #step-4 .shipping-info { display: flex; justify-content: space-between; align-items: center; flex: 1; gap: 1rem; } #step-4 .shipping-name { flex: 1; } #step-4 .shipping-price { font-weight: 600; color: var(--color-primary); } /* Error highlighting for mandatory fields */ .error-highlight { border-color: #e74c3c !important; background-color: rgba(231, 76, 60, 0.05) !important; animation: shake 0.3s ease-in-out; } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } } .error-highlight:focus { border-color: #e74c3c !important; box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.2) !important; } /* ============================================ Place Order / Order Status Page Styling ============================================ */ .status-container { max-width: 700px; margin: 4rem auto; padding: 0 2rem; } .status-card { background: white; border-radius: 4px; padding: 4rem 3rem; text-align: center; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); border: 2px solid #e5e7eb; margin: 2rem 0; } .status-card.success { border-color: var(--color-primary); } .status-card.pending { border-color: #f59e0b; } .status-card.processing { border-color: var(--color-accent); } .status-card.failed { border-color: #ef4444; } .status-icon { margin: 0 auto 1.5rem; display: flex; justify-content: center; align-items: center; } .status-icon svg { filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.1)); } .status-title { font-size: 2rem; font-weight: 700; margin-bottom: 1rem; color: var(--color-dark-text); } .success-title { color: #10b981; } .pending-title { color: var(--color-primary); } .processing-title { color: var(--color-accent); } .failed-title { color: #ef4444; } .status-message { font-size: 1.1rem; line-height: 1.6; color: #6b7280; margin-bottom: 2rem; } .order-number { background: #f3f4f6; padding: 1rem; border-radius: 8px; font-size: 1.1rem; margin: 2rem 0; color: var(--color-dark-text); } .order-number strong { color: var(--color-primary); font-weight: 700; } .status-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2rem; } .btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 1rem 2rem; border-radius: 8px; font-weight: 600; font-size: 1rem; text-decoration: none; transition: all 0.3s ease; cursor: pointer; border: 2px solid transparent; } .btn-primary { background: var(--color-primary); color: white; border-color: var(--color-primary); } .btn-primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(255, 111, 0, 0.3); } .btn-secondary { background: white; color: var(--color-dark-text); border-color: #d1d5db; } .btn-secondary:hover { background: #f9fafb; border-color: #9ca3af; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } /* Processing spinner animation */ .spinner { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Progress bar for processing state */ .progress-bar { width: 100%; height: 8px; background: #e5e7eb; border-radius: 4px; overflow: hidden; margin-top: 2rem; } .progress-fill { height: 100%; background: linear-gradient(90deg, #3b82f6, #60a5fa); animation: progress 2s ease-in-out infinite; } @keyframes progress { 0% { width: 0%; } 50% { width: 70%; } 100% { width: 100%; } } /* Mobile responsive */ @media (max-width: 768px) { .status-container { margin: 2rem auto; padding: 0 1rem; } .status-card { padding: 2.5rem 1.5rem; margin: 1rem 0; } .status-title { font-size: 1.5rem; } .status-message { font-size: 1rem; } .status-actions { flex-direction: column; } .btn { width: 100%; justify-content: center; } .status-icon svg { width: 60px; height: 60px; } } /* Mobile Responsive */ @media (max-width: 991px) { .checkout-wizard .container { max-width: 100%; } } @media (max-width: 768px) { .progress-steps { padding: 0; } .step-label { font-size: 0.75rem; } .step-number { width: 36px; height: 36px; font-size: 1rem; } .form-row { grid-template-columns: 1fr; gap: 0; } .payment-methods-grid { grid-template-columns: 1fr; } .step-content { padding: 1.5rem; } /* Add padding to checkout-steps to prevent content from being hidden under sticky button */ .checkout-steps { padding-bottom: 150px; } /* Make step buttons sticky on mobile via JavaScript class */ .step-buttons.mobile-sticky { position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; z-index: 1000 !important; background: white !important; padding: 1rem !important; margin: 0 !important; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1) !important; border-top: 2px solid #e5e7eb !important; flex-direction: column-reverse; } .step-buttons.mobile-sticky .btn-continue, .step-buttons.mobile-sticky .btn-back { width: 100%; margin: 0 !important; } .total-amount { font-size: 1.25rem; } } @media (max-width: 600px) { .progress-steps::before { left: 10%; right: 10%; } .step-label { display: none; } .payment-card { padding: 1rem; min-height: 110px; } .payment-logo { max-height: 32px; max-width: 55px; } }