diff --git a/index.html b/index.html new file mode 100644 index 0000000..7897818 --- /dev/null +++ b/index.html @@ -0,0 +1,350 @@ + + + + + + מספרת קובי שריקי | בת ים + + + + + + + + + + + + + + + + + +
+
+ +
+

מספרה מקצועית בבת ים

+

+ הסגנון שלך, + המומחיות שלנו +

+

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

+ +
+ +
+ +
+
+
+

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

+

מגוון טיפולים מקצועיים המותאמים אישית לכל לקוח

+
+
+ +
+
+ +
+

תספורות נשים

+

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

+
+
+
+ +
+

צביעת שיער

+

צבעים עמידים ומזינים, גוונים טבעיים או נועזים. שימוש בחומרים איכותיים לתוצאה מושלמת.

+
+ +
+
+ +
+

טיפולי שיער

+

טיפולים משקמים, מסכות הזנה, טיפולי קרקפת ופתרונות מותאמים לשיער פגום או יבש.

+
+
+
+ +
+

ייעוץ אישי

+

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

+
+
+
+

רוצים להתייעץ על הטיפול המתאים לכם?

+ התקשרו עכשיו +
+
+
+ + + +
+
+
+
+

אזור השירות

+

מספרת קובי שריקי ממוקמת בלב בת ים ומשרתת לקוחות מכל הסביבה:

+
    +
  • בת ים
  • +
  • חולון
  • +
  • יפו
  • +
  • תל אביב דרום
  • +
  • ראשון לציון
  • +
  • אזור גוש דן
  • +
+

נגישים בקלות בתחבורה ציבורית, חניה זמינה ברחובות הסמוכים.

+
+ +
+
+
+ +
+
+
+
+

צרו קשר

+

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

+
+ + + + טלפון + 077-408-9800 + + +
+ + + מיקום + בת ים, ישראל + +
+
+
+ +
+
+
+
+ + + + + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..eda0c7f --- /dev/null +++ b/script.js @@ -0,0 +1,121 @@ +(function() { + 'use strict'; + + // Respect reduced motion preference + const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + + // Mobile menu toggle + const menuToggle = document.querySelector('.menu-toggle'); + const mainNav = document.querySelector('.main-nav'); + const navOverlay = document.querySelector('.nav-overlay'); + + function closeMenu() { + menuToggle.setAttribute('aria-expanded', 'false'); + menuToggle.classList.remove('active'); + mainNav.classList.remove('active'); + navOverlay.classList.remove('active'); + document.body.style.overflow = ''; + } + + function openMenu() { + menuToggle.setAttribute('aria-expanded', 'true'); + menuToggle.classList.add('active'); + mainNav.classList.add('active'); + navOverlay.classList.add('active'); + document.body.style.overflow = 'hidden'; + } + + if (menuToggle && mainNav && navOverlay) { + menuToggle.addEventListener('click', function() { + const isExpanded = this.getAttribute('aria-expanded') === 'true'; + if (isExpanded) { + closeMenu(); + } else { + openMenu(); + } + }); + + // Close menu when clicking on a link + mainNav.querySelectorAll('a').forEach(link => { + link.addEventListener('click', closeMenu); + }); + + // Close menu when clicking overlay + navOverlay.addEventListener('click', closeMenu); + + // Close menu on escape key + document.addEventListener('keydown', function(e) { + if (e.key === 'Escape' && mainNav.classList.contains('active')) { + closeMenu(); + menuToggle.focus(); + } + }); + } + + // Reveal on scroll with IntersectionObserver + if (!prefersReducedMotion) { + const revealElements = document.querySelectorAll('.reveal'); + let revealDelay = 0; + + const revealObserver = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + setTimeout(() => { + entry.target.classList.add('visible'); + }, revealDelay); + revealDelay += 80; + setTimeout(() => { revealDelay = 0; }, 500); + revealObserver.unobserve(entry.target); + } + }); + }, { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }); + + revealElements.forEach(el => revealObserver.observe(el)); + } else { + // If reduced motion is preferred, show all elements immediately + document.querySelectorAll('.reveal').forEach(el => { + el.classList.add('visible'); + }); + } + + // Header scroll effect + const header = document.querySelector('.site-header'); + + window.addEventListener('scroll', function() { + const currentScroll = window.pageYOffset; + + if (currentScroll > 100) { + header.style.boxShadow = '0 4px 20px rgba(44, 24, 16, 0.1)'; + } else { + header.style.boxShadow = 'none'; + } + }, { passive: true }); + + // Smooth scroll for anchor links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function(e) { + const href = this.getAttribute('href'); + if (href === '#') return; + + const target = document.querySelector(href); + if (target) { + e.preventDefault(); + const headerHeight = header.offsetHeight; + const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - headerHeight - 20; + + window.scrollTo({ + top: targetPosition, + behavior: prefersReducedMotion ? 'auto' : 'smooth' + }); + + // Set focus to the target for accessibility + target.setAttribute('tabindex', '-1'); + target.focus({ preventScroll: true }); + } + }); + }); + +})(); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..eb5bb56 --- /dev/null +++ b/style.css @@ -0,0 +1,903 @@ +:root { + --gold: #C9A96E; + --gold-light: #D4BC8E; + --gold-dark: #8A7340; + --brown: #4A3728; + --brown-light: #6B5344; + --brown-dark: #2C1810; + --cream: #FAF6F0; + --cream-dark: #EDE6DC; + --text: #2C1810; + --text-muted: #4A3728; + + --font-display: 'Frank Ruhl Libre', 'David Libre', 'Noto Serif Hebrew', serif; + --font-body: 'Heebo', 'Rubik', 'Noto Sans Hebrew', sans-serif; + + --space-xs: 0.5rem; + --space-sm: 1rem; + --space-md: 1.5rem; + --space-lg: 2.5rem; + --space-xl: 4rem; + --space-2xl: 6rem; + + --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; +} + +@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-size: 1rem; + line-height: 1.7; + color: var(--text); + background: var(--cream); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.container { + width: 100%; + max-width: 1200px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +/* Skip Link */ +.skip-link { + position: absolute; + top: -100%; + inset-inline-end: var(--space-md); + background: var(--brown-dark); + color: var(--cream); + padding: var(--space-sm) var(--space-md); + border-radius: 0 0 8px 8px; + z-index: 1000; + transition: top 0.2s; +} + +.skip-link:focus { + top: 0; +} + +/* Typography */ +h1, h2, h3, h4 { + font-family: var(--font-display); + font-weight: 500; + line-height: 1.2; +} + +h1 { font-size: clamp(2.5rem, 8vw, 4.5rem); } +h2 { font-size: clamp(2rem, 5vw, 3rem); } +h3 { font-size: clamp(1.25rem, 3vw, 1.5rem); } + +a { + color: inherit; + text-decoration: none; +} + +ul { + list-style: none; +} + +/* Focus styles */ +:focus-visible { + outline: 3px solid var(--gold); + outline-offset: 4px; +} + +/* Header */ +.site-header { + position: fixed; + top: 0; + inset-inline: 0; + z-index: 100; + background: rgba(250, 246, 240, 0.95); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(201, 169, 110, 0.2); + transition: var(--transition); +} + +.header-inner { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--space-sm) var(--space-md); + max-width: 1200px; + margin-inline: auto; +} + +.logo { + display: flex; + align-items: center; + gap: var(--space-sm); + color: var(--brown-dark); +} + +.logo-icon { + width: 44px; + height: 44px; + color: var(--gold); +} + +.logo-text { + font-family: var(--font-display); + font-size: 1.5rem; + font-weight: 500; +} + +.main-nav ul { + display: flex; + gap: var(--space-lg); +} + +.main-nav a { + font-size: 0.95rem; + font-weight: 500; + color: var(--text-muted); + position: relative; + transition: var(--transition); +} + +.main-nav a::after { + content: ''; + position: absolute; + bottom: -4px; + inset-inline-start: 0; + width: 0; + height: 2px; + background: var(--gold); + transition: var(--transition); +} + +.main-nav a:hover, +.main-nav a:focus { + color: var(--brown-dark); +} + +.main-nav a:hover::after, +.main-nav a:focus::after { + width: 100%; +} + +/* Nav Overlay */ +.nav-overlay { + position: fixed; + inset: 0; + background: rgba(44, 24, 16, 0.5); + opacity: 0; + visibility: hidden; + transition: var(--transition); + z-index: 150; +} + +.nav-overlay.active { + opacity: 1; + visibility: visible; +} + +/* CTA Button */ +.cta-button { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + padding: 0.75rem 1.5rem; + background: var(--brown-dark); + color: var(--cream); + font-family: var(--font-body); + font-size: 0.95rem; + font-weight: 500; + border-radius: 50px; + border: 2px solid transparent; + cursor: pointer; + transition: var(--transition); +} + +.cta-button:hover, +.cta-button:focus { + background: var(--brown); + transform: translateY(-2px); + box-shadow: 0 8px 24px rgba(44, 24, 16, 0.2); +} + +.cta-button:focus-visible { + outline: none; + border-color: var(--gold); + box-shadow: 0 0 0 4px rgba(201, 169, 110, 0.3); +} + +.cta-button .cta-icon { + display: flex; + align-items: center; + justify-content: center; +} + +.cta-button .cta-icon svg { + width: 18px; + height: 18px; +} + +.cta-large { + padding: 1rem 2rem; + font-size: 1.1rem; +} + +.cta-gold { + background: var(--gold); + color: var(--brown-dark); +} + +.cta-gold:hover, +.cta-gold:focus { + background: var(--gold-dark); + color: var(--cream); +} + +.cta-gold:focus-visible { + border-color: var(--brown-dark); + box-shadow: 0 0 0 4px rgba(44, 24, 16, 0.2); +} + +.header-cta { + padding: 0.6rem 1.25rem; + font-size: 0.9rem; +} + +.menu-toggle { + display: none; + flex-direction: column; + gap: 5px; + padding: 8px; + background: none; + border: none; + cursor: pointer; +} + +.menu-toggle span { + display: block; + width: 24px; + height: 2px; + background: var(--brown-dark); + transition: var(--transition); +} + +/* Hero */ +.hero { + position: relative; + min-height: 100vh; + display: flex; + align-items: center; + padding-top: 80px; + overflow: hidden; +} + +.hero-bg { + position: absolute; + inset: 0; + z-index: -1; +} + +.hero-gradient { + position: absolute; + inset: 0; + background: linear-gradient(135deg, var(--cream) 0%, var(--cream-dark) 50%, rgba(201, 169, 110, 0.1) 100%); +} + +.hero-pattern { + position: absolute; + inset: 0; + opacity: 0.03; + background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0L60 30L30 60L0 30L30 0z' fill='%234A3728' fill-opacity='1'/%3E%3C/svg%3E"); + background-size: 60px 60px; +} + +.hero-content { + flex: 1; + padding-inline-end: var(--space-xl); + max-width: 650px; + margin-inline-start: auto; +} + +.hero-eyebrow { + font-size: 1rem; + font-weight: 600; + color: var(--brown); + letter-spacing: 0.05em; + margin-bottom: var(--space-sm); +} + +.hero-title { + color: var(--brown-dark); + margin-bottom: var(--space-md); +} + +.title-line { + display: block; +} + +.title-accent { + color: var(--gold-dark); +} + +.hero-desc { + font-size: 1.15rem; + color: var(--text-muted); + margin-bottom: var(--space-lg); + max-width: 480px; + line-height: 1.8; +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: var(--space-sm); +} + +.hero-visual { + position: absolute; + inset-inline-end: 5%; + top: 50%; + transform: translateY(-50%); + width: 35%; + max-width: 400px; +} + +.scissors-art { + width: 100%; + height: auto; +} + +@media (prefers-reduced-motion: no-preference) { + .scissors-art { + animation: float 6s ease-in-out infinite; + } + + .scissors { + transform-origin: center; + animation: scissorsPulse 4s ease-in-out infinite; + } +} + +@keyframes float { + 0%, 100% { transform: translateY(0) rotate(0deg); } + 50% { transform: translateY(-20px) rotate(3deg); } +} + +@keyframes scissorsPulse { + 0%, 100% { transform: translate(100px, 100px) scale(1); } + 50% { transform: translate(100px, 100px) scale(1.05); } +} + +/* Sections */ +section { + padding: var(--space-2xl) 0; +} + +.section-header { + text-align: center; + margin-bottom: var(--space-xl); +} + +.section-title { + color: var(--brown-dark); + margin-bottom: var(--space-sm); +} + +.section-subtitle { + font-size: 1.1rem; + color: var(--text-muted); +} + +/* Services */ +.services { + background: var(--cream); +} + +.services-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--space-md); +} + +.service-card { + background: white; + padding: var(--space-lg); + border-radius: 16px; + border: 1px solid rgba(201, 169, 110, 0.2); + transition: var(--transition); +} + +.service-card:hover { + transform: translateY(-8px); + box-shadow: 0 20px 40px rgba(44, 24, 16, 0.1); + border-color: var(--gold); +} + +.service-card-featured { + background: linear-gradient(135deg, white 0%, rgba(201, 169, 110, 0.08) 100%); + border-color: var(--gold); +} + +.service-icon { + width: 64px; + height: 64px; + margin-bottom: var(--space-md); + color: var(--gold); +} + +.service-icon svg { + width: 100%; + height: 100%; +} + +.service-title { + color: var(--brown-dark); + margin-bottom: var(--space-sm); + font-weight: 500; +} + +.service-desc { + color: var(--text-muted); + font-size: 0.95rem; + line-height: 1.7; +} + +.services-cta { + margin-top: var(--space-xl); + text-align: center; + padding: var(--space-lg); + background: linear-gradient(135deg, var(--brown-dark) 0%, var(--brown) 100%); + border-radius: 16px; +} + +.services-cta-text { + color: var(--cream); + font-size: 1.2rem; + margin-bottom: var(--space-md); +} + +/* Gallery */ +.gallery { + background: var(--brown-dark); + color: var(--cream); +} + +.gallery .section-title { + color: var(--cream); +} + +.gallery .section-subtitle { + color: rgba(250, 246, 240, 0.8); +} + +.gallery-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--space-sm); +} + +.gallery-item { + border-radius: 12px; + overflow: hidden; + position: relative; + aspect-ratio: 4 / 3; +} + +.gallery-item:focus-within { + outline: 3px solid var(--gold); + outline-offset: 4px; +} + +.gallery-placeholder { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; + transition: var(--transition); + margin: 0; +} + +.gallery-placeholder svg { + width: 100%; + height: 100%; + object-fit: cover; +} + +.gallery-label { + position: absolute; + bottom: var(--space-sm); + inset-inline-start: var(--space-sm); + background: rgba(44, 24, 16, 0.85); + color: var(--cream); + padding: 0.5rem 1rem; + font-size: 0.85rem; + font-weight: 500; + border-radius: 50px; + opacity: 0; + transform: translateY(10px); + transition: var(--transition); +} + +.gallery-item:hover .gallery-label, +.gallery-item:focus-within .gallery-label { + opacity: 1; + transform: translateY(0); +} + +.gallery-item:hover .gallery-placeholder { + transform: scale(1.05); +} + +/* Area */ +.area { + background: var(--cream-dark); +} + +.area-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-xl); + align-items: center; +} + +.area .section-title { + text-align: start; + margin-bottom: var(--space-md); +} + +.area-desc { + font-size: 1.1rem; + color: var(--text-muted); + margin-bottom: var(--space-md); +} + +.area-list { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--space-xs) var(--space-lg); + margin-bottom: var(--space-md); +} + +.area-list li { + position: relative; + padding-inline-start: var(--space-md); + color: var(--brown); + font-weight: 500; +} + +.area-list li::before { + content: ''; + position: absolute; + inset-inline-start: 0; + top: 50%; + transform: translateY(-50%); + width: 8px; + height: 8px; + background: var(--gold); + border-radius: 50%; +} + +.area-note { + color: var(--text-muted); + font-size: 0.95rem; +} + +.map-art { + width: 100%; + max-width: 300px; + margin: 0 auto; + display: block; +} + +/* Contact */ +.contact { + background: linear-gradient(180deg, var(--cream) 0%, var(--cream-dark) 100%); +} + +.contact-card { + background: white; + border-radius: 24px; + padding: var(--space-xl); + display: grid; + grid-template-columns: 1.2fr 1fr; + gap: var(--space-xl); + align-items: center; + box-shadow: 0 20px 60px rgba(44, 24, 16, 0.1); + border: 1px solid rgba(201, 169, 110, 0.2); +} + +.contact .section-title { + text-align: start; + margin-bottom: var(--space-sm); +} + +.contact-desc { + color: var(--text-muted); + margin-bottom: var(--space-lg); +} + +.contact-details { + display: flex; + flex-direction: column; + gap: var(--space-md); +} + +.contact-item { + display: flex; + align-items: center; + gap: var(--space-md); + padding: var(--space-sm); + border-radius: 12px; + transition: var(--transition); +} + +.contact-phone:hover, +.contact-phone:focus { + background: rgba(201, 169, 110, 0.1); +} + +.contact-icon { + width: 48px; + height: 48px; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + background: var(--gold); + border-radius: 12px; + color: var(--brown-dark); +} + +.contact-icon svg { + width: 24px; + height: 24px; +} + +.contact-text { + display: flex; + flex-direction: column; +} + +.contact-label { + font-size: 0.85rem; + color: var(--text-muted); +} + +.contact-value { + font-size: 1.25rem; + font-weight: 500; + color: var(--brown-dark); +} + +.contact-cta { + text-align: center; +} + +/* Footer */ +.site-footer { + background: var(--brown-dark); + color: var(--cream); + padding: var(--space-lg) 0; +} + +.footer-content { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: var(--space-md); +} + +.footer-brand { + display: flex; + flex-direction: column; + gap: var(--space-xs); +} + +.footer-logo { + font-family: var(--font-display); + font-size: 1.25rem; + font-weight: 500; + color: var(--gold); +} + +.footer-tagline { + font-size: 0.9rem; + color: rgba(250, 246, 240, 0.8); +} + +.footer-legal { + font-size: 0.85rem; + color: rgba(250, 246, 240, 0.7); +} + +/* Reveal Animation */ +.reveal { + opacity: 0; + transform: translateY(30px); + transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); +} + +.reveal.visible { + opacity: 1; + transform: translateY(0); +} + +/* Responsive */ +@media (max-width: 1024px) { + .hero-visual { + display: none; + } + + .hero-content { + max-width: 100%; + text-align: center; + padding-inline: var(--space-md); + margin-inline: auto; + } + + .hero-desc { + margin-inline: auto; + } + + .hero-actions { + justify-content: center; + } + + .services-grid { + grid-template-columns: repeat(2, 1fr); + } + + .gallery-grid { + grid-template-columns: repeat(2, 1fr); + } + + .area-content { + grid-template-columns: 1fr; + text-align: center; + } + + .area .section-title { + text-align: center; + } + + .area-list { + justify-content: center; + } + + .contact-card { + grid-template-columns: 1fr; + text-align: center; + } + + .contact .section-title { + text-align: center; + } + + .contact-details { + align-items: center; + } +} + +@media (max-width: 768px) { + :root { + --space-xl: 3rem; + --space-2xl: 4rem; + } + + .main-nav { + position: fixed; + top: 0; + inset-inline-start: -100%; + width: 80%; + max-width: 300px; + height: 100vh; + background: var(--cream); + padding: var(--space-2xl) var(--space-lg); + transition: var(--transition); + box-shadow: 10px 0 30px rgba(0, 0, 0, 0.1); + z-index: 200; + } + + .main-nav.active { + inset-inline-start: 0; + } + + .main-nav ul { + flex-direction: column; + gap: var(--space-md); + } + + .main-nav a { + font-size: 1.2rem; + } + + .header-cta { + display: none; + } + + .menu-toggle { + display: flex; + z-index: 300; + } + + .menu-toggle.active span:nth-child(1) { + transform: rotate(45deg) translate(5px, 5px); + } + + .menu-toggle.active span:nth-child(2) { + opacity: 0; + } + + .menu-toggle.active span:nth-child(3) { + transform: rotate(-45deg) translate(5px, -5px); + } + + .services-grid { + grid-template-columns: 1fr; + } + + .gallery-grid { + grid-template-columns: repeat(2, 1fr); + } + + .area-list { + grid-template-columns: 1fr; + text-align: start; + } + + .cta-large { + padding: 0.875rem 1.5rem; + font-size: 1rem; + } + + .footer-content { + flex-direction: column; + text-align: center; + } + + .footer-brand { + align-items: center; + } +} + +@media (max-width: 480px) { + .hero-title { + font-size: 2.25rem; + } + + .contact-card { + padding: var(--space-lg); + } + + .contact-value { + font-size: 1.1rem; + } + + .gallery-grid { + grid-template-columns: 1fr; + } +} \ No newline at end of file