← back to Losangelesfabrics Tmp
styles.css
845 lines
:root {
--primary-color: #2c3e50;
--secondary-color: #8b7355;
--accent-color: #d4a574;
--text-dark: #333333;
--text-light: #666666;
--bg-light: #f8f7f5;
--bg-white: #ffffff;
--border-color: #e0e0e0;
--shadow: 0 2px 10px rgba(0,0,0,0.1);
--shadow-hover: 0 5px 20px rgba(0,0,0,0.15);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Montserrat', sans-serif;
line-height: 1.6;
color: var(--text-dark);
background-color: var(--bg-white);
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Navigation */
.navbar {
background: var(--bg-white);
box-shadow: var(--shadow);
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
.nav-container {
max-width: 1200px;
margin: 0 auto;
padding: 1rem 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.logo h1 {
color: var(--primary-color);
font-size: 1.8rem;
font-weight: 700;
}
.logo span {
color: var(--accent-color);
font-size: 0.8rem;
vertical-align: super;
}
.mobile-toggle {
display: none;
flex-direction: column;
background: none;
border: none;
cursor: pointer;
}
.mobile-toggle span {
width: 25px;
height: 3px;
background: var(--primary-color);
margin: 3px 0;
transition: 0.3s;
}
.nav-menu {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-menu a {
color: var(--text-dark);
text-decoration: none;
font-weight: 500;
transition: color 0.3s;
}
.nav-menu a:hover {
color: var(--accent-color);
}
.cta-button {
background: var(--accent-color);
color: white !important;
padding: 0.5rem 1.5rem;
border-radius: 25px;
transition: background 0.3s;
}
.cta-button:hover {
background: var(--secondary-color);
}
/* Hero Section */
.hero {
margin-top: 80px;
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
color: white;
padding: 100px 20px;
text-align: center;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.1" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,133.3C672,139,768,181,864,181.3C960,181,1056,139,1152,117.3C1248,96,1344,96,1392,96L1440,96L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
background-size: cover;
opacity: 0.3;
}
.hero-content {
position: relative;
z-index: 1;
max-width: 800px;
margin: 0 auto;
}
.hero h2 {
font-size: 3rem;
margin-bottom: 1rem;
font-weight: 700;
}
.hero p {
font-size: 1.2rem;
margin-bottom: 2rem;
opacity: 0.95;
}
.sample-btn {
background: var(--accent-color);
color: white;
border: none;
padding: 1rem 2.5rem;
font-size: 1.1rem;
border-radius: 30px;
cursor: pointer;
font-weight: 600;
transition: all 0.3s;
box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.sample-btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.authorized-dealer {
margin-top: 3rem;
padding: 1rem;
background: rgba(255,255,255,0.1);
border-radius: 10px;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
.authorized-dealer p {
font-size: 0.95rem;
margin: 0;
}
/* Features Section */
.features-section {
padding: 80px 20px;
background: var(--bg-light);
}
.features-section h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 3rem;
color: var(--primary-color);
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.feature-card {
background: white;
padding: 2rem;
border-radius: 10px;
box-shadow: var(--shadow);
transition: transform 0.3s, box-shadow 0.3s;
text-align: center;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-hover);
}
.feature-icon {
font-size: 2.5rem;
margin-bottom: 1rem;
}
.feature-card h3 {
color: var(--primary-color);
margin-bottom: 1rem;
}
.feature-card p {
color: var(--text-light);
}
/* Installation & Care Section */
.installation-section {
padding: 80px 20px;
background: white;
}
.installation-section h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--primary-color);
}
.info-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.info-card {
background: var(--bg-light);
padding: 2rem;
border-radius: 10px;
text-align: center;
transition: transform 0.3s, box-shadow 0.3s;
}
.info-card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-hover);
}
.info-icon {
font-size: 3rem;
margin-bottom: 1rem;
}
.info-card h3 {
color: var(--primary-color);
margin-bottom: 1rem;
font-size: 1.3rem;
}
.info-card p {
color: var(--text-light);
margin-bottom: 1.5rem;
line-height: 1.6;
}
.info-link {
color: var(--accent-color);
text-decoration: none;
font-weight: 600;
transition: color 0.3s;
}
.info-link:hover {
color: var(--secondary-color);
text-decoration: underline;
}
.care-highlight {
background: var(--bg-light);
padding: 2.5rem;
border-radius: 10px;
margin-top: 3rem;
text-align: center;
border-left: 4px solid var(--accent-color);
}
.care-highlight h3 {
color: var(--primary-color);
margin-bottom: 1rem;
}
.care-highlight p {
color: var(--text-light);
max-width: 800px;
margin: 0 auto;
line-height: 1.8;
}
/* Specifications Section */
.specifications {
padding: 80px 20px;
background: var(--bg-light);
}
.specifications h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 3rem;
color: var(--primary-color);
}
.specs-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
max-width: 900px;
margin: 0 auto;
}
.spec-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem;
border-bottom: 1px solid var(--border-color);
gap: 2rem;
}
.spec-label {
font-weight: 600;
color: var(--text-dark);
flex-shrink: 0;
}
.spec-value {
color: var(--text-light);
text-align: right;
flex-grow: 1;
}
/* Colors Section */
.colors-section {
padding: 80px 20px;
background: var(--bg-light);
}
.colors-section h2 {
text-align: center;
font-size: 2.5rem;
margin-bottom: 1rem;
color: var(--primary-color);
}
.section-subtitle {
text-align: center;
color: var(--text-light);
margin-bottom: 2rem;
}
.color-filter {
text-align: center;
margin-bottom: 2rem;
}
#colorSearch {
padding: 0.75rem 1.5rem;
border: 1px solid var(--border-color);
border-radius: 25px;
width: 100%;
max-width: 400px;
font-size: 1rem;
}
.colors-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 1.5rem;
}
.color-item {
background: white;
border-radius: 10px;
overflow: hidden;
box-shadow: var(--shadow);
transition: transform 0.3s, box-shadow 0.3s;
cursor: pointer;
}
.color-item:hover {
transform: translateY(-5px);
box-shadow: var(--shadow-hover);
}
.color-item:active {
transform: translateY(-3px);
}
.color-swatch {
height: 120px;
position: relative;
overflow: hidden;
background: #f5f5f5;
}
.color-swatch img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: transform 0.3s;
}
.color-item:hover .color-swatch img {
transform: scale(1.1);
}
.color-info {
padding: 1rem;
text-align: center;
}
.color-name {
font-weight: 600;
color: var(--text-dark);
margin-bottom: 0.25rem;
}
.color-code {
font-size: 0.85rem;
color: var(--text-light);
}
/* Modal */
.modal {
display: none;
position: fixed;
z-index: 2000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
-webkit-backdrop-filter: blur(5px);
backdrop-filter: blur(5px);
}
.modal-content {
background-color: white;
margin: 30px auto;
padding: 2rem;
border-radius: 15px;
width: 90%;
max-width: 1200px;
max-height: 90vh;
overflow-y: auto;
position: relative;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from {
transform: translateY(-50px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.close {
color: var(--text-light);
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
transition: color 0.3s;
}
.close:hover {
color: var(--primary-color);
}
.modal h2 {
color: var(--primary-color);
margin-bottom: 1.5rem;
}
.form-group {
margin-bottom: 1.5rem;
}
/* Two-column layout for form fields */
@media (min-width: 600px) {
#contactForm {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1rem;
}
#contactForm .form-group:nth-child(3), /* Company */
#contactForm .form-group:nth-child(4), /* Address */
#contactForm .form-group:nth-child(8), /* Scope */
#contactForm .form-group:nth-child(9), /* Color */
#contactForm button {
grid-column: span 2;
}
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
color: var(--text-dark);
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 0.75rem;
border: 1px solid var(--border-color);
border-radius: 5px;
font-size: 1rem;
transition: border-color 0.3s;
background: white;
font-family: inherit;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--accent-color);
}
.form-group select {
cursor: pointer;
}
.form-group textarea {
resize: vertical;
min-height: 80px;
}
.color-preview {
display: flex;
flex-direction: column;
align-items: center;
gap: 1rem;
padding: 1.5rem;
background: var(--bg-light);
border-radius: 8px;
margin-bottom: 1.5rem;
border: 1px solid var(--border-color);
}
.color-preview img {
width: 200px;
height: 200px;
border-radius: 8px;
object-fit: cover;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.color-preview span {
font-weight: 600;
color: var(--text-dark);
font-size: 1.2rem;
text-align: center;
}
.color-dropdown-group {
width: 100%;
max-width: 300px;
margin-top: 1rem;
}
.color-dropdown-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 600;
color: var(--text-dark);
font-size: 0.95rem;
}
.color-dropdown-group select {
width: 100%;
padding: 0.75rem;
border: 2px solid var(--border-color);
border-radius: 5px;
font-size: 1rem;
background: white;
cursor: pointer;
transition: border-color 0.3s;
-webkit-appearance: none;
appearance: none;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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 0.75rem center;
background-size: 1.2em;
padding-right: 2.5rem;
}
.color-dropdown-group select:hover {
border-color: var(--accent-color);
}
.color-dropdown-group select:focus {
outline: none;
border-color: var(--accent-color);
box-shadow: 0 0 0 3px rgba(221, 171, 30, 0.1);
}
.submit-btn {
width: 100%;
background: var(--accent-color);
color: white;
border: none;
padding: 1rem;
font-size: 1.1rem;
border-radius: 5px;
cursor: pointer;
font-weight: 600;
transition: background 0.3s;
}
.submit-btn:hover {
background: var(--secondary-color);
}
/* Footer */
footer {
background: var(--primary-color);
color: white;
padding: 3rem 20px 1rem;
}
.footer-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-bottom: 2rem;
}
.footer-section h3 {
margin-bottom: 1rem;
}
.footer-section p {
opacity: 0.9;
margin-bottom: 0.5rem;
}
.footer-section ul {
list-style: none;
}
.footer-section ul li {
margin-bottom: 0.5rem;
}
.footer-section a {
color: white;
text-decoration: none;
opacity: 0.9;
transition: opacity 0.3s;
}
.footer-section a:hover {
opacity: 1;
}
.footer-sample-btn {
background: var(--accent-color);
color: white;
border: none;
padding: 0.75rem 1.5rem;
border-radius: 25px;
cursor: pointer;
margin-top: 1rem;
font-weight: 600;
transition: background 0.3s;
}
.footer-sample-btn:hover {
background: var(--secondary-color);
}
.footer-bottom {
text-align: center;
padding-top: 2rem;
border-top: 1px solid rgba(255,255,255,0.2);
opacity: 0.8;
}
.authorized {
font-style: italic;
opacity: 0.95;
margin-top: 1rem;
}
/* Responsive Design */
@media (max-width: 768px) {
.mobile-toggle {
display: flex;
}
.nav-menu {
position: fixed;
left: -100%;
top: 70px;
flex-direction: column;
background-color: white;
width: 100%;
text-align: center;
transition: 0.3s;
box-shadow: 0 10px 27px rgba(0,0,0,0.05);
padding: 2rem 0;
}
.nav-menu.active {
left: 0;
}
.hero h2 {
font-size: 2rem;
}
.hero p {
font-size: 1rem;
}
.features-grid {
grid-template-columns: 1fr;
}
.specs-grid {
grid-template-columns: 1fr;
}
.colors-grid {
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
}
.footer-content {
grid-template-columns: 1fr;
text-align: center;
}
.color-preview {
padding: 1.25rem;
}
.color-preview img {
width: 180px;
height: 180px;
}
.color-dropdown-group {
max-width: 280px;
}
}
@media (max-width: 480px) {
.hero h2 {
font-size: 1.5rem;
}
.colors-grid {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
gap: 1rem;
}
.color-swatch {
height: 80px;
}
.modal-content {
margin: 20px;
width: calc(100% - 40px);
}
.color-preview {
padding: 1rem;
margin-bottom: 1rem;
}
.color-preview img {
width: 150px;
height: 150px;
}
.color-preview span {
font-size: 1rem;
}
.color-dropdown-group {
max-width: 100%;
margin-top: 0.75rem;
}
.color-dropdown-group label {
font-size: 0.9rem;
}
.color-dropdown-group select {
padding: 0.65rem;
font-size: 16px; /* Prevents zoom on iOS */
min-height: 44px; /* Touch-friendly minimum height */
background-position: right 0.65rem center;
}
/* Ensure form inputs are also touch-friendly on mobile */
.form-group input,
.form-group select,
.form-group textarea {
font-size: 16px; /* Prevents zoom on iOS */
min-height: 44px; /* Touch-friendly minimum height */
}
/* Make close button easier to tap on mobile */
.modal .close {
width: 44px;
height: 44px;
display: flex;
align-items: center;
justify-content: center;
font-size: 2rem;
}
}