diff --git a/index.html b/index.html new file mode 100644 index 0000000..a489f4d --- /dev/null +++ b/index.html @@ -0,0 +1,409 @@ + + + + + + מספרת אייל | עיצוב שיער בפתח תקווה + + + + + + + + + + + + + + + +
+
+
+
פתח תקווה · רחוב רוטשילד 45
+

+ הסטייל שלך, + הקו האישי שלנו +

+

כבר למעלה מעשור שאייל והצוות יוצרים תספורות שמתאימות בדיוק לך — לא טרנדים גנריים, אלא סגנון שמרגיש נכון.

+ +
+ +
+ +
+
+
+ +

השירותים שלנו

+
+
+ +
+
+ +
+

צביעת שיער

+

צביעה מלאה, אומברה, בלייאז׳ והבהרות. חומרים איכותיים לבריאות השיער וברק מושלם.

+ החל מ-₪250 +
+ +
+
+ +
+

אירועים מיוחדים

+

בת מצווה, ערב גאלה, צילומי אופנה. תסרוקות מרהיבות לכל אירוע.

+ החל מ-₪200 +
+
+
+
+ +
+
+
+ +
+ שנות ניסיון +

מספרת אייל משרתת את תושבי פתח תקווה והסביבה כבר למעלה מעשור. אנחנו לא רק מספרה — אנחנו חלק מהשכונה.

+
+
+
+
+ + + +
+
+
+
+ +

תיאום תור

+

השאירו פרטים ונחזור אליכם תוך שעות ספורות

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+

או התקשרו ישירות: 03-912-3456

+
+
+
+ +
+
+
+
+
+ +

צרו קשר

+
+
+ + +
+ כתובת +

רחוב רוטשילד 45, פתח תקווה

+
+
+ + +
+ טלפון +

03-912-3456

+
+
+
+ +
+ שעות פעילות +

א׳-ה׳: 9:00–20:00

+

ו׳: 8:00–14:00

+

שבת: סגור

+
+
+
+
+
+
+

מעדיפים וואטסאפ?

+ + + שלחו הודעה + +
+
+
+
+
+
+ + + + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..1818ebe --- /dev/null +++ b/script.js @@ -0,0 +1,188 @@ +(function() { + 'use strict'; + + // Set current year in footer + const yearEl = document.getElementById('current-year'); + if (yearEl) { + yearEl.textContent = new Date().getFullYear(); + } + + // Set minimum date for booking (today) + const dateInput = document.getElementById('date'); + if (dateInput) { + const today = new Date().toISOString().split('T')[0]; + dateInput.setAttribute('min', today); + } + + // Header scroll effect + const header = document.querySelector('.site-header'); + + function handleScroll() { + if (window.scrollY > 50) { + header.classList.add('scrolled'); + } else { + header.classList.remove('scrolled'); + } + } + + window.addEventListener('scroll', handleScroll, { passive: true }); + + // Mobile nav toggle + const navToggle = document.querySelector('.nav-toggle'); + const navLinks = document.querySelector('.nav-links'); + + if (navToggle && navLinks) { + navToggle.addEventListener('click', function() { + const isExpanded = this.getAttribute('aria-expanded') === 'true'; + this.setAttribute('aria-expanded', !isExpanded); + navLinks.classList.toggle('active'); + document.body.style.overflow = isExpanded ? '' : 'hidden'; + }); + + // Close menu when clicking a link + navLinks.querySelectorAll('a').forEach(function(link) { + link.addEventListener('click', function() { + navToggle.setAttribute('aria-expanded', 'false'); + navLinks.classList.remove('active'); + document.body.style.overflow = ''; + }); + }); + + // Close menu on escape key + document.addEventListener('keydown', function(e) { + if (e.key === 'Escape' && navLinks.classList.contains('active')) { + navToggle.setAttribute('aria-expanded', 'false'); + navLinks.classList.remove('active'); + document.body.style.overflow = ''; + navToggle.focus(); + } + }); + } + + // Reveal on scroll + const revealElements = document.querySelectorAll('.reveal'); + const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)'); + + if (prefersReducedMotion.matches) { + revealElements.forEach(function(el) { + el.classList.add('visible'); + }); + } else if ('IntersectionObserver' in window) { + const revealObserver = new IntersectionObserver(function(entries) { + entries.forEach(function(entry) { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + revealObserver.unobserve(entry.target); + } + }); + }, { + threshold: 0.1, + rootMargin: '0px 0px -40px 0px' + }); + + revealElements.forEach(function(el) { + revealObserver.observe(el); + }); + } else { + revealElements.forEach(function(el) { + el.classList.add('visible'); + }); + } + + // Smooth scroll for anchor links + document.querySelectorAll('a[href^="#"]').forEach(function(anchor) { + anchor.addEventListener('click', function(e) { + const targetId = this.getAttribute('href'); + if (targetId === '#') return; + + const target = document.querySelector(targetId); + if (target) { + e.preventDefault(); + const headerHeight = header.offsetHeight; + const targetPosition = target.getBoundingClientRect().top + window.scrollY - headerHeight - 20; + + window.scrollTo({ + top: targetPosition, + behavior: prefersReducedMotion.matches ? 'auto' : 'smooth' + }); + + // Set focus for accessibility + target.setAttribute('tabindex', '-1'); + target.focus({ preventScroll: true }); + } + }); + }); + + // Gallery keyboard interaction + document.querySelectorAll('.gallery-item').forEach(function(item) { + item.addEventListener('keydown', function(e) { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + // Could open a lightbox here; for now just visual feedback + this.style.transform = 'scale(0.98)'; + setTimeout(() => { + this.style.transform = ''; + }, 150); + } + }); + }); + + // Form handling + const form = document.querySelector('.booking-form'); + + if (form) { + form.addEventListener('submit', function(e) { + e.preventDefault(); + + // Simple validation + let isValid = true; + const requiredFields = form.querySelectorAll('[required]'); + + requiredFields.forEach(function(field) { + if (!field.value.trim()) { + isValid = false; + field.style.borderColor = '#e74c3c'; + field.setAttribute('aria-invalid', 'true'); + } else { + field.style.borderColor = ''; + field.removeAttribute('aria-invalid'); + } + }); + + // Phone validation + const phoneField = form.querySelector('#phone'); + if (phoneField && phoneField.value) { + const phonePattern = /^[0-9\-\+\s]{9,15}$/; + if (!phonePattern.test(phoneField.value.trim())) { + isValid = false; + phoneField.style.borderColor = '#e74c3c'; + phoneField.setAttribute('aria-invalid', 'true'); + } + } + + if (isValid) { + const btn = form.querySelector('.submit-btn'); + const originalText = btn.textContent; + btn.textContent = 'הבקשה נשלחה בהצלחה!'; + btn.style.background = '#27ae60'; + btn.disabled = true; + + setTimeout(function() { + btn.textContent = originalText; + btn.style.background = ''; + btn.disabled = false; + form.reset(); + }, 3000); + } + }); + + // Clear error state on input + form.querySelectorAll('input, select, textarea').forEach(function(field) { + field.addEventListener('input', function() { + this.style.borderColor = ''; + this.removeAttribute('aria-invalid'); + }); + }); + } + +})(); diff --git a/style.css b/style.css new file mode 100644 index 0000000..67c6a5c --- /dev/null +++ b/style.css @@ -0,0 +1,986 @@ +:root { + --color-bg: #0f0f0f; + --color-surface: #171717; + --color-surface-elevated: #1f1f1f; + --color-text: #f5f5f5; + --color-text-muted: #a8a8a8; + --color-accent: #d4a574; + --color-accent-dark: #b8956a; + --color-accent-light: #e8d4b8; + --font-body: 'Heebo', sans-serif; + --font-display: 'Playfair Display', serif; + --space-xs: 0.5rem; + --space-sm: 1rem; + --space-md: 1.5rem; + --space-lg: 2rem; + --space-xl: 3rem; + --space-2xl: 5rem; + --transition-fast: 0.2s ease; + --transition-medium: 0.35s ease; + --transition-slow: 0.5s ease; + --radius-sm: 4px; + --radius-md: 8px; +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; + font-size: 16px; +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} + +body { + font-family: var(--font-body); + font-weight: 400; + line-height: 1.6; + color: var(--color-text); + background-color: var(--color-bg); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.container { + width: 100%; + max-width: 1100px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +/* Typography - Hebrew capped at 600 */ +h1, h2, h3, h4 { + font-family: var(--font-body); + font-weight: 600; + line-height: 1.25; +} + +/* Skip Link */ +.skip-link { + position: absolute; + top: -100%; + left: 50%; + transform: translateX(-50%); + background: var(--color-accent); + color: var(--color-bg); + padding: var(--space-sm) var(--space-md); + border-radius: var(--radius-sm); + z-index: 200; + text-decoration: none; + font-weight: 500; + transition: top var(--transition-fast); +} + +.skip-link:focus { + top: var(--space-sm); +} + +/* Header */ +.site-header { + position: fixed; + top: 0; + inset-inline: 0; + z-index: 100; + background: linear-gradient(to bottom, rgba(15, 15, 15, 0.95), rgba(15, 15, 15, 0)); + padding: var(--space-sm) 0; + transition: background var(--transition-medium), padding var(--transition-medium); +} + +.site-header.scrolled { + background: rgba(15, 15, 15, 0.98); + backdrop-filter: blur(12px); + padding: var(--space-xs) 0; +} + +.nav { + display: flex; + align-items: center; + justify-content: space-between; + max-width: 1100px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +.logo { + display: flex; + align-items: center; + gap: var(--space-sm); + text-decoration: none; + color: var(--color-text); +} + +.logo-icon { + width: 44px; + height: 44px; + color: var(--color-accent); +} + +.logo-text { + font-size: 1.125rem; + font-weight: 500; +} + +.nav-toggle { + display: none; + flex-direction: column; + gap: 5px; + background: none; + border: none; + cursor: pointer; + padding: var(--space-xs); +} + +.nav-toggle span { + display: block; + width: 24px; + height: 2px; + background: var(--color-text); + transition: var(--transition-fast); +} + +.nav-links { + display: flex; + gap: var(--space-lg); + list-style: none; +} + +.nav-links a { + color: var(--color-text-muted); + text-decoration: none; + font-size: 0.9rem; + font-weight: 400; + transition: color var(--transition-fast); + position: relative; + padding-block: var(--space-xs); +} + +.nav-links a::after { + content: ''; + position: absolute; + bottom: 0; + inset-inline-start: 0; + width: 0; + height: 2px; + background: var(--color-accent); + transition: width var(--transition-fast); +} + +.nav-links a:hover { + color: var(--color-text); +} + +.nav-links a:focus { + color: var(--color-accent); + outline: none; +} + +.nav-links a:hover::after, +.nav-links a:focus::after { + width: 100%; +} + +@media (max-width: 768px) { + .nav-toggle { + display: flex; + z-index: 101; + } + + .nav-toggle[aria-expanded="true"] span:nth-child(1) { + transform: rotate(45deg) translate(5px, 5px); + } + + .nav-toggle[aria-expanded="true"] span:nth-child(2) { + opacity: 0; + } + + .nav-toggle[aria-expanded="true"] span:nth-child(3) { + transform: rotate(-45deg) translate(5px, -5px); + } + + .nav-links { + position: fixed; + top: 0; + inset-inline-end: 0; + width: 100%; + height: 100vh; + height: 100dvh; + background: var(--color-bg); + flex-direction: column; + align-items: center; + justify-content: center; + gap: var(--space-xl); + opacity: 0; + visibility: hidden; + transition: opacity var(--transition-medium), visibility var(--transition-medium); + } + + .nav-links.active { + opacity: 1; + visibility: visible; + } + + .nav-links a { + font-size: 1.25rem; + } +} + +/* Hero */ +.hero { + min-height: 100vh; + min-height: 100dvh; + display: grid; + grid-template-columns: 1fr 1fr; + align-items: center; + gap: var(--space-xl); + padding: calc(var(--space-2xl) + 60px) var(--space-md) var(--space-2xl); + position: relative; + overflow: hidden; +} + +.hero-content { + max-width: 540px; + margin-inline-start: auto; + padding-inline-end: var(--space-lg); +} + +.hero-tagline { + font-size: 0.8rem; + color: var(--color-accent); + margin-bottom: var(--space-md); + font-weight: 400; +} + +.hero-title { + font-size: clamp(2.25rem, 6vw, 3.5rem); + font-weight: 600; + margin-bottom: var(--space-md); + line-height: 1.2; +} + +.title-line { + display: block; +} + +.title-accent { + color: var(--color-accent); +} + +.hero-desc { + font-size: 1.05rem; + color: var(--color-text-muted); + max-width: 400px; + margin-bottom: var(--space-lg); + line-height: 1.75; +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: var(--space-sm); + align-items: center; +} + +.cta-btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: var(--space-sm) var(--space-lg); + background: var(--color-accent); + color: var(--color-bg); + text-decoration: none; + font-weight: 500; + font-size: 0.95rem; + border-radius: var(--radius-sm); + transition: background var(--transition-fast), transform var(--transition-fast); +} + +.cta-btn:hover { + background: var(--color-accent-light); + transform: translateY(-2px); +} + +.cta-btn:focus { + background: var(--color-accent-dark); + outline: 2px solid var(--color-accent-light); + outline-offset: 2px; +} + +.cta-btn-secondary { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + padding: var(--space-sm) var(--space-md); + background: transparent; + color: var(--color-text); + text-decoration: none; + font-weight: 400; + font-size: 0.95rem; + border: 1px solid #444; + border-radius: var(--radius-sm); + transition: border-color var(--transition-fast), color var(--transition-fast); +} + +.cta-btn-secondary:hover { + border-color: var(--color-accent); + color: var(--color-accent); +} + +.cta-btn-secondary:focus { + outline: 2px solid var(--color-accent); + outline-offset: 2px; +} + +.btn-icon { + width: 18px; + height: 18px; +} + +.hero-visual { + display: flex; + justify-content: center; + align-items: center; + padding-inline-start: var(--space-lg); +} + +.hero-illustration { + width: 100%; + max-width: 360px; + height: auto; +} + +@media (max-width: 900px) { + .hero { + grid-template-columns: 1fr; + text-align: center; + padding-top: 100px; + min-height: auto; + padding-bottom: var(--space-xl); + } + + .hero-content { + max-width: 100%; + padding-inline: 0; + margin: 0; + } + + .hero-desc { + margin-inline: auto; + } + + .hero-actions { + justify-content: center; + } + + .hero-visual { + order: -1; + padding: 0; + } + + .hero-illustration { + max-width: 260px; + } +} + +/* Section Common */ +.section-header { + text-align: center; + margin-bottom: var(--space-xl); +} + +.section-tag { + display: block; + font-size: 0.8rem; + color: var(--color-accent); + margin-bottom: var(--space-xs); + font-weight: 400; +} + +.section-title { + font-size: clamp(1.75rem, 4vw, 2.5rem); + font-weight: 600; +} + +.section-desc { + color: var(--color-text-muted); + margin-top: var(--space-sm); + max-width: 480px; + margin-inline: auto; +} + +/* Services */ +.services { + padding: var(--space-2xl) 0; + background: var(--color-surface); +} + +.services-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--space-md); +} + +.service-card { + position: relative; + background: var(--color-bg); + padding: var(--space-lg); + border-radius: var(--radius-md); + border: 1px solid transparent; + transition: border-color var(--transition-fast), transform var(--transition-fast); +} + +.service-card:hover { + border-color: rgba(212, 165, 116, 0.3); + transform: translateY(-2px); +} + +.service-card-featured { + background: linear-gradient(135deg, var(--color-surface-elevated) 0%, var(--color-bg) 100%); + border-color: rgba(212, 165, 116, 0.25); +} + +.service-card-featured::before { + content: ''; + position: absolute; + top: 0; + inset-inline-start: 0; + width: 4px; + height: 100%; + background: var(--color-accent); + border-radius: var(--radius-md) 0 0 var(--radius-md); +} + +.service-badge { + position: absolute; + top: var(--space-sm); + inset-inline-end: var(--space-sm); + background: var(--color-accent); + color: var(--color-bg); + font-size: 0.7rem; + font-weight: 500; + padding: 0.25em 0.6em; + border-radius: var(--radius-sm); +} + +.service-icon { + width: 56px; + height: 56px; + color: var(--color-accent); + margin-bottom: var(--space-sm); +} + +.service-icon svg { + width: 100%; + height: 100%; +} + +.service-title { + font-size: 1.125rem; + font-weight: 500; + margin-bottom: var(--space-xs); +} + +.service-desc { + color: var(--color-text-muted); + font-size: 0.9rem; + line-height: 1.65; + margin-bottom: var(--space-sm); +} + +.service-price { + display: inline-block; + font-size: 0.85rem; + color: var(--color-accent); + font-weight: 500; +} + +@media (max-width: 600px) { + .services-grid { + grid-template-columns: 1fr; + } +} + +/* Experience Section */ +.experience-section { + padding: var(--space-xl) 0; + background: var(--color-bg); +} + +.experience-content { + display: flex; + align-items: center; + gap: var(--space-lg); + max-width: 600px; + margin-inline: auto; + padding: var(--space-lg); + background: var(--color-surface); + border-radius: var(--radius-md); + border-inline-start: 4px solid var(--color-accent); +} + +.experience-number { + font-size: clamp(2.5rem, 8vw, 3.5rem); + font-weight: 300; + color: var(--color-accent); + line-height: 1; + font-family: var(--font-display); +} + +.experience-label { + display: block; + font-size: 0.85rem; + color: var(--color-accent); + margin-bottom: var(--space-xs); + font-weight: 500; +} + +.experience-text p { + color: var(--color-text-muted); + font-size: 0.95rem; + line-height: 1.6; +} + +@media (max-width: 500px) { + .experience-content { + flex-direction: column; + text-align: center; + border-inline-start: none; + border-top: 4px solid var(--color-accent); + } +} + +/* Gallery */ +.gallery { + padding: var(--space-2xl) 0; +} + +.gallery-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: minmax(180px, auto); + gap: var(--space-sm); +} + +.gallery-item { + position: relative; + overflow: hidden; + border-radius: var(--radius-sm); + background: var(--color-surface); + cursor: pointer; +} + +.gallery-item:focus { + outline: none; +} + +.gallery-item:focus-visible { + outline: 2px solid var(--color-accent); + outline-offset: 2px; +} + +.gallery-item-tall { + grid-row: span 2; +} + +.gallery-visual { + width: 100%; + height: 100%; +} + +.gallery-visual svg { + width: 100%; + height: 100%; + display: block; + transition: transform var(--transition-medium); +} + +.gallery-item:hover .gallery-visual svg, +.gallery-item:focus .gallery-visual svg { + transform: scale(1.03); +} + +.gallery-item figcaption { + position: absolute; + bottom: 0; + inset-inline: 0; + padding: var(--space-sm); + background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); + color: var(--color-text); + font-size: 0.85rem; + font-weight: 400; + transform: translateY(100%); + transition: transform var(--transition-fast); +} + +.gallery-item:hover figcaption, +.gallery-item:focus figcaption { + transform: translateY(0); +} + +@media (max-width: 768px) { + .gallery-grid { + grid-template-columns: repeat(2, 1fr); + } + + .gallery-item-tall { + grid-row: span 1; + } +} + +@media (max-width: 480px) { + .gallery-grid { + grid-template-columns: 1fr; + grid-auto-rows: 240px; + } +} + +/* Booking */ +.booking { + padding: var(--space-2xl) 0; + background: var(--color-surface); +} + +.booking-wrapper { + max-width: 560px; + margin-inline: auto; +} + +.booking-form { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-md); +} + +.form-group { + display: flex; + flex-direction: column; + gap: var(--space-xs); +} + +.form-group-full { + grid-column: 1 / -1; +} + +.form-group label { + font-size: 0.85rem; + color: var(--color-text-muted); + font-weight: 400; +} + +.form-group input, +.form-group select, +.form-group textarea { + background: var(--color-bg); + border: 1px solid #333; + color: var(--color-text); + padding: var(--space-sm); + font-family: var(--font-body); + font-size: 0.95rem; + transition: border-color var(--transition-fast), box-shadow var(--transition-fast); + border-radius: var(--radius-sm); +} + +.form-group input::placeholder, +.form-group textarea::placeholder { + color: #666; +} + +.form-group input:hover, +.form-group select:hover, +.form-group textarea:hover { + border-color: #555; +} + +.form-group input:focus, +.form-group select:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px rgba(212, 165, 116, 0.15); +} + +.form-group select { + cursor: pointer; + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a8a8a8' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: left var(--space-sm) center; + padding-inline-start: calc(var(--space-sm) + 20px); +} + +.form-group textarea { + resize: vertical; + min-height: 80px; +} + +.submit-btn { + grid-column: 1 / -1; + background: var(--color-accent); + color: var(--color-bg); + border: none; + padding: var(--space-sm) var(--space-lg); + font-family: var(--font-body); + font-size: 0.95rem; + font-weight: 500; + cursor: pointer; + transition: background var(--transition-fast), transform var(--transition-fast); + border-radius: var(--radius-sm); +} + +.submit-btn:hover { + background: var(--color-accent-light); + transform: translateY(-1px); +} + +.submit-btn:focus { + background: var(--color-accent-dark); + outline: 2px solid var(--color-accent-light); + outline-offset: 2px; +} + +.submit-btn:disabled { + opacity: 0.7; + cursor: not-allowed; + transform: none; +} + +.booking-alt { + text-align: center; + margin-top: var(--space-lg); + color: var(--color-text-muted); + font-size: 0.9rem; +} + +.booking-phone { + color: var(--color-accent); + text-decoration: none; + font-weight: 500; +} + +.booking-phone:hover { + text-decoration: underline; +} + +.booking-phone:focus { + outline: 2px solid var(--color-accent); + outline-offset: 2px; +} + +@media (max-width: 480px) { + .booking-form { + grid-template-columns: 1fr; + } +} + +/* Contact */ +.contact { + padding: var(--space-2xl) 0; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-xl); + align-items: start; +} + +.contact-info .section-header { + text-align: start; +} + +.contact-details { + margin-top: var(--space-lg); +} + +.contact-item { + display: flex; + gap: var(--space-md); + margin-bottom: var(--space-md); + padding: var(--space-sm); + border-radius: var(--radius-sm); + transition: background var(--transition-fast); +} + +.contact-item-link { + text-decoration: none; + color: inherit; +} + +.contact-item-link:hover { + background: var(--color-surface); +} + +.contact-item-link:focus { + outline: 2px solid var(--color-accent); + outline-offset: 2px; + background: var(--color-surface); +} + +.contact-icon { + width: 24px; + height: 24px; + flex-shrink: 0; + color: var(--color-accent); + margin-top: 2px; +} + +.contact-item strong { + display: block; + font-weight: 500; + margin-bottom: 2px; +} + +.contact-item p { + color: var(--color-text-muted); + margin: 0; + font-size: 0.9rem; +} + +.contact-cta { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} + +.contact-cta-content { + text-align: center; + padding: var(--space-xl); + background: var(--color-surface); + border-radius: var(--radius-md); + width: 100%; + max-width: 300px; +} + +.contact-cta-text { + font-size: 1rem; + margin-bottom: var(--space-md); + color: var(--color-text-muted); +} + +.whatsapp-btn { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + padding: var(--space-sm) var(--space-lg); + background: #25D366; + color: #fff; + text-decoration: none; + font-weight: 500; + font-size: 0.95rem; + border-radius: var(--radius-sm); + transition: background var(--transition-fast), transform var(--transition-fast); +} + +.whatsapp-btn:hover { + background: #1fb855; + transform: translateY(-2px); +} + +.whatsapp-btn:focus { + outline: 2px solid #25D366; + outline-offset: 2px; +} + +.whatsapp-icon { + width: 20px; + height: 20px; +} + +@media (max-width: 768px) { + .contact-grid { + grid-template-columns: 1fr; + gap: var(--space-lg); + } + + .contact-info .section-header { + text-align: center; + } + + .contact-details { + display: flex; + flex-direction: column; + } + + .contact-item { + justify-content: center; + text-align: center; + flex-direction: column; + align-items: center; + gap: var(--space-sm); + } +} + +/* Footer */ +.site-footer { + background: var(--color-surface); + padding: var(--space-lg) 0; + border-top: 1px solid #222; +} + +.footer-content { + display: flex; + flex-direction: column; + align-items: center; + gap: var(--space-sm); + text-align: center; +} + +.footer-brand { + display: flex; + align-items: center; + gap: var(--space-xs); + color: var(--color-accent); + font-size: 1rem; + font-weight: 500; +} + +.footer-logo { + width: 36px; + height: 36px; +} + +.footer-address { + color: var(--color-text-muted); + font-size: 0.85rem; +} + +.footer-copy { + color: #666; + font-size: 0.8rem; +} + +/* Reveal Animation */ +.reveal { + opacity: 0; + transform: translateY(20px); + transition: opacity var(--transition-slow), transform var(--transition-slow); + transition-delay: calc(var(--delay, 0) * 0.08s); +} + +.reveal.visible { + opacity: 1; + transform: translateY(0); +} + +/* Focus Visible - global fallback */ +:focus-visible { + outline: 2px solid var(--color-accent); + outline-offset: 2px; +}