diff --git a/index.html b/index.html new file mode 100644 index 0000000..61dcbc6 --- /dev/null +++ b/index.html @@ -0,0 +1,317 @@ + + + + + + Hair On Top | מספרה מעצבת בחולון + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+

מספרה מעצבת בחולון

+

+ מקצועיות + שרואים בשיער +

+

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

+ +
+ +
+ +
+
+
+ +

מה אנחנו עושים הכי טוב

+
+
+
+
+ +
+

תספורות טרנדיות

+

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

+ גברים ונשים +
+
+
+ +
+

צביעות מקצועיות

+

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

+ כל סוגי הצבע +
+ +
+
+ +
+

הבהרות

+

הבהרות מקצועיות, היילייטס ובייביליס. יוצרים עומק וממד טבעי בשיער שלכם.

+ מראה טבעי +
+
+
+
+ + + +
+
+
+
+
+
+ +
+
+
+ 10+ + שנות ניסיון +
+
+
+ +

Hair On Top

+

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

+

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

+
    +
  • + + חומרים איכותיים +
  • +
  • + + צוות מקצועי +
  • +
  • + + אווירה נעימה +
  • +
+
+
+
+
+ +
+
+
+

מוכנים לשינוי?

+

התקשרו עכשיו ונקבע לכם תור

+ + + 054-541-1291 + +
+
+
+ +
+
+
+ +

איך מגיעים אלינו

+
+
+ +
+ +
+

להזמנת תור

+ 054-541-1291 + לחצו להתקשר +
+
+
+
+ +
+
+

אזור שירות

+

חולון והסביבה

+

בת ים, ראשון לציון, אזור דן

+
+
+
+
+ +
+
+

שעות פעילות

+

ראשון–חמישי

+

התקשרו לתיאום מראש

+
+
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..a874b1f --- /dev/null +++ b/script.js @@ -0,0 +1,107 @@ +(function() { + 'use strict'; + + // Check for reduced motion preference + const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + + // Mobile Navigation + 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); + this.classList.toggle('active'); + navLinks.classList.toggle('active'); + document.body.style.overflow = navLinks.classList.contains('active') ? 'hidden' : ''; + }); + + // Close menu when clicking a link + navLinks.querySelectorAll('a').forEach(function(link) { + link.addEventListener('click', function() { + navToggle.setAttribute('aria-expanded', 'false'); + navToggle.classList.remove('active'); + 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'); + navToggle.classList.remove('active'); + navLinks.classList.remove('active'); + document.body.style.overflow = ''; + navToggle.focus(); + } + }); + } + + // Header scroll effect + const header = document.querySelector('.header'); + + function handleScroll() { + const currentScroll = window.pageYOffset; + + if (currentScroll > 100) { + header.classList.add('scrolled'); + } else { + header.classList.remove('scrolled'); + } + } + + window.addEventListener('scroll', handleScroll, { passive: true }); + + // Reveal animations + if (!prefersReducedMotion) { + const revealElements = document.querySelectorAll('.reveal'); + + const revealObserver = new IntersectionObserver(function(entries) { + entries.forEach(function(entry) { + if (entry.isIntersecting) { + entry.target.classList.add('active'); + revealObserver.unobserve(entry.target); + } + }); + }, { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }); + + revealElements.forEach(function(el) { + revealObserver.observe(el); + }); + } else { + // If reduced motion is preferred, show all elements immediately + document.querySelectorAll('.reveal').forEach(function(el) { + el.classList.add('active'); + }); + } + + // 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.pageYOffset - headerHeight; + + if (prefersReducedMotion) { + window.scrollTo(0, targetPosition); + } else { + window.scrollTo({ + top: targetPosition, + behavior: 'smooth' + }); + } + } + }); + }); + +})(); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..705e753 --- /dev/null +++ b/style.css @@ -0,0 +1,1115 @@ +:root { + --black: #0a0a0a; + --black-light: #141414; + --black-lighter: #222222; + --gold: #D4AF37; + --gold-light: #E5C76B; + --gold-dark: #B8960C; + --white: #fafafa; + --white-dim: #d0d0d0; + --gray: #888888; + + --font-display: 'Secular One', sans-serif; + --font-body: 'Heebo', sans-serif; + + --space-xs: 0.5rem; + --space-sm: 1rem; + --space-md: 1.5rem; + --space-lg: 2.5rem; + --space-xl: 4rem; + --space-2xl: 6rem; + + --radius-sm: 4px; + --radius-md: 8px; + --radius-lg: 16px; + --radius-xl: 24px; + + --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); + --transition-slow: 0.6s cubic-bezier(0.4, 0, 0.2, 1); +} + +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +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-weight: 400; + font-size: 1rem; + line-height: 1.7; + color: var(--white); + background: var(--black); + overflow-x: hidden; +} + +.container { + width: 100%; + max-width: 1200px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +a { + color: inherit; + text-decoration: none; +} + +img { + max-width: 100%; + display: block; +} + +ul { + list-style: none; +} + +/* Skip Link */ +.skip-link { + position: absolute; + inset-block-start: -100%; + inset-inline-start: var(--space-md); + background: var(--gold); + color: var(--black); + padding: var(--space-sm) var(--space-md); + font-weight: 500; + border-radius: var(--radius-sm); + z-index: 9999; + transition: var(--transition); +} + +.skip-link:focus { + inset-block-start: var(--space-md); +} + +/* Typography */ +h1, h2, h3, h4 { + font-family: var(--font-display); + font-weight: 400; + line-height: 1.2; +} + +.section-header { + text-align: center; + margin-block-end: var(--space-xl); +} + +.section-tag { + display: inline-block; + font-size: 0.8125rem; + font-weight: 500; + color: var(--gold); + letter-spacing: 0.08em; + margin-block-end: var(--space-sm); +} + +.section-title { + font-size: clamp(2rem, 5vw, 3rem); + color: var(--white); +} + +/* Header */ +.header { + position: fixed; + top: 0; + inset-inline: 0; + z-index: 1000; + background: linear-gradient(to bottom, rgba(10,10,10,0.95), rgba(10,10,10,0)); + padding-block: var(--space-md); + transition: var(--transition); +} + +.header.scrolled { + background: rgba(10,10,10,0.98); + backdrop-filter: blur(10px); +} + +.nav { + display: flex; + align-items: center; + justify-content: space-between; + max-width: 1200px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +.logo { + display: flex; + align-items: center; + gap: var(--space-xs); +} + +.logo-text { + font-family: var(--font-display); + font-size: 1.5rem; + color: var(--white); +} + +.logo-accent { + font-size: 1.25rem; + color: var(--gold); +} + +.nav-links { + display: flex; + gap: var(--space-lg); +} + +.nav-links a { + font-size: 0.9rem; + font-weight: 400; + color: var(--white-dim); + transition: var(--transition); + position: relative; +} + +.nav-links a::after { + content: ''; + position: absolute; + inset-block-end: -4px; + inset-inline-start: 0; + width: 0; + height: 2px; + background: var(--gold); + transition: var(--transition); +} + +.nav-links a:hover, +.nav-links a:focus { + color: var(--gold); +} + +.nav-links a:hover::after, +.nav-links a:focus::after { + width: 100%; +} + +.nav-cta { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + padding: var(--space-xs) var(--space-md); + background: var(--gold); + color: var(--black); + font-weight: 500; + font-size: 0.875rem; + border-radius: var(--radius-sm); + transition: var(--transition); +} + +.nav-cta:hover, +.nav-cta:focus { + background: var(--gold-light); + transform: translateY(-2px); +} + +.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(--white); + transition: var(--transition); +} + +/* Hero */ +.hero { + position: relative; + min-height: 100vh; + min-height: 100dvh; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; +} + +.hero-bg { + position: absolute; + inset: 0; + z-index: 0; +} + +.hero-pattern { + position: absolute; + inset: 0; + background-image: + radial-gradient(circle at 20% 50%, rgba(212, 175, 55, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(212, 175, 55, 0.08) 0%, transparent 40%), + radial-gradient(circle at 40% 80%, rgba(212, 175, 55, 0.06) 0%, transparent 30%); +} + +.hero-gradient { + position: absolute; + inset: 0; + background: linear-gradient(180deg, + rgba(10,10,10,0.3) 0%, + rgba(10,10,10,0.6) 50%, + rgba(10,10,10,1) 100% + ); +} + +.hero-content { + position: relative; + z-index: 1; + text-align: center; + padding: var(--space-xl) var(--space-md); + max-width: 800px; +} + +.hero-tag { + font-size: 0.875rem; + font-weight: 400; + color: var(--gold); + letter-spacing: 0.1em; + margin-block-end: var(--space-md); + opacity: 0; + transform: translateY(20px); + animation: fadeUp 0.8s ease forwards 0.2s; +} + +.hero-title { + font-size: clamp(2.5rem, 10vw, 5rem); + line-height: 1.1; + margin-block-end: var(--space-md); +} + +.hero-title-line { + display: block; + opacity: 0; + transform: translateY(40px); + animation: fadeUp 0.8s ease forwards; +} + +.hero-title-line:nth-child(1) { + animation-delay: 0.4s; +} + +.hero-title-line:nth-child(2) { + animation-delay: 0.6s; +} + +.hero-title-accent { + color: var(--gold); +} + +.hero-desc { + font-size: 1.125rem; + color: var(--white-dim); + max-width: 480px; + margin-inline: auto; + margin-block-end: var(--space-lg); + opacity: 0; + transform: translateY(20px); + animation: fadeUp 0.8s ease forwards 0.8s; +} + +.hero-actions { + display: flex; + flex-wrap: wrap; + gap: var(--space-sm); + justify-content: center; + opacity: 0; + transform: translateY(20px); + animation: fadeUp 0.8s ease forwards 1s; +} + +.hero-scroll { + position: absolute; + inset-block-end: var(--space-lg); + inset-inline-start: 50%; + transform: translateX(50%); + display: flex; + flex-direction: column; + align-items: center; + gap: var(--space-xs); + color: var(--gray); + font-size: 0.75rem; + opacity: 0; + animation: fadeUp 0.8s ease forwards 1.2s; +} + +html[dir="rtl"] .hero-scroll { + transform: translateX(50%); +} + +html[dir="ltr"] .hero-scroll { + transform: translateX(-50%); +} + +.hero-scroll svg { + width: 20px; + height: 20px; + animation: bounce 2s ease-in-out infinite; +} + +@keyframes fadeUp { + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes bounce { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(8px); } +} + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--space-xs); + padding: var(--space-sm) var(--space-lg); + font-family: var(--font-body); + font-size: 1rem; + font-weight: 500; + border-radius: var(--radius-sm); + transition: var(--transition); + cursor: pointer; + border: none; +} + +.btn-icon { + width: 20px; + height: 20px; +} + +.btn-primary { + background: var(--gold); + color: var(--black); +} + +.btn-primary:hover, +.btn-primary:focus { + background: var(--gold-light); + transform: translateY(-2px); + box-shadow: 0 10px 30px rgba(212, 175, 55, 0.3); +} + +.btn-secondary { + background: transparent; + color: var(--white); + border: 1px solid var(--white-dim); +} + +.btn-secondary:hover, +.btn-secondary:focus { + border-color: var(--gold); + color: var(--gold); +} + +.btn-large { + padding: var(--space-md) var(--space-xl); + font-size: 1.25rem; +} + +/* Services */ +.services { + padding-block: var(--space-2xl); + background: var(--black); +} + +.services-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: var(--space-md); +} + +.service-card { + position: relative; + padding: var(--space-lg); + background: var(--black-light); + border: 1px solid var(--black-lighter); + border-radius: var(--radius-lg); + transition: var(--transition); + overflow: hidden; +} + +.service-card::before { + content: ''; + position: absolute; + inset-block-start: 0; + inset-inline: 0; + height: 3px; + background: linear-gradient(to left, var(--gold), transparent); + opacity: 0; + transition: var(--transition); +} + +.service-card:hover { + border-color: var(--gold); + transform: translateY(-4px); +} + +.service-card:hover::before { + opacity: 1; +} + +.service-card-featured { + background: linear-gradient(135deg, var(--black-light), var(--black-lighter)); + border-color: var(--gold-dark); +} + +.service-card-featured::before { + opacity: 1; +} + +.service-badge { + position: absolute; + inset-block-start: var(--space-sm); + inset-inline-end: var(--space-sm); + padding: var(--space-xs) var(--space-sm); + background: var(--gold); + color: var(--black); + font-size: 0.75rem; + font-weight: 500; + border-radius: var(--radius-sm); +} + +.service-icon { + width: 56px; + height: 56px; + margin-block-end: var(--space-md); + color: var(--gold); +} + +.service-icon svg { + width: 100%; + height: 100%; +} + +.service-title { + font-size: 1.375rem; + margin-block-end: var(--space-sm); + color: var(--white); +} + +.service-desc { + color: var(--white-dim); + margin-block-end: var(--space-md); + font-size: 0.9375rem; + line-height: 1.6; +} + +.service-tag { + display: inline-block; + padding: var(--space-xs) var(--space-sm); + background: var(--black-lighter); + color: var(--white-dim); + font-size: 0.75rem; + font-weight: 500; + border-radius: var(--radius-sm); + border: 1px solid rgba(212, 175, 55, 0.2); +} + +/* Gallery */ +.gallery { + padding-block: var(--space-xl) var(--space-2xl); + background: linear-gradient(180deg, var(--black), var(--black-light)); +} + +.gallery-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: 200px; + gap: var(--space-md); +} + +.gallery-item { + position: relative; + border-radius: var(--radius-lg); + overflow: hidden; +} + +.gallery-item-tall { + grid-row: span 2; +} + +.gallery-item-wide { + grid-column: span 2; +} + +.gallery-visual { + position: absolute; + inset: 0; + background: linear-gradient( + 135deg, + hsl(calc(var(--hue, 45)), 50%, 15%), + hsl(calc(var(--hue, 45) + 10), 40%, 8%) + ); + transition: var(--transition); +} + +.gallery-pattern { + position: absolute; + inset: 0; + opacity: 0.3; +} + +.gallery-pattern-1 { + background: repeating-linear-gradient( + 45deg, + transparent, + transparent 10px, + rgba(212, 175, 55, 0.1) 10px, + rgba(212, 175, 55, 0.1) 20px + ); +} + +.gallery-pattern-2 { + background: radial-gradient(circle at 30% 70%, rgba(212, 175, 55, 0.2) 0%, transparent 50%); +} + +.gallery-pattern-3 { + background: repeating-linear-gradient( + 90deg, + transparent, + transparent 20px, + rgba(212, 175, 55, 0.08) 20px, + rgba(212, 175, 55, 0.08) 40px + ); +} + +.gallery-pattern-4 { + background: + linear-gradient(135deg, rgba(212, 175, 55, 0.15) 25%, transparent 25%), + linear-gradient(225deg, rgba(212, 175, 55, 0.15) 25%, transparent 25%); + background-size: 40px 40px; +} + +.gallery-pattern-5 { + background: radial-gradient(circle, rgba(212, 175, 55, 0.1) 1px, transparent 1px); + background-size: 20px 20px; +} + +.gallery-pattern-6 { + background: conic-gradient(from 45deg at 50% 50%, rgba(212, 175, 55, 0.1) 0%, transparent 25%, rgba(212, 175, 55, 0.1) 50%, transparent 75%, rgba(212, 175, 55, 0.1) 100%); +} + +.gallery-label { + position: absolute; + inset-block-end: var(--space-md); + inset-inline-start: var(--space-md); + padding: var(--space-xs) var(--space-sm); + background: rgba(10, 10, 10, 0.9); + color: var(--white); + font-size: 0.875rem; + font-weight: 500; + border-radius: var(--radius-sm); + transform: translateY(20px); + opacity: 0; + transition: var(--transition); +} + +.gallery-item:hover .gallery-visual, +.gallery-item:focus-within .gallery-visual { + transform: scale(1.05); +} + +.gallery-item:hover .gallery-label, +.gallery-item:focus-within .gallery-label { + transform: translateY(0); + opacity: 1; +} + +/* About */ +.about { + padding-block: var(--space-2xl); + background: var(--black-light); +} + +.about-grid { + display: grid; + grid-template-columns: 1fr 1.2fr; + gap: var(--space-xl); + align-items: center; +} + +.about-visual { + position: relative; + aspect-ratio: 1; + max-width: 380px; +} + +.about-shape-container { + position: absolute; + inset: 8%; + background: linear-gradient(135deg, var(--black-lighter), var(--black)); + border: 1px solid var(--gold-dark); + border-radius: var(--radius-xl); + display: flex; + align-items: center; + justify-content: center; +} + +.about-icon-scissors { + width: 60%; + height: 60%; + color: var(--gold); + opacity: 0.4; +} + +.about-icon-scissors svg { + width: 100%; + height: 100%; +} + +.about-badge { + position: absolute; + inset-block-end: 0; + inset-inline-start: 0; + padding: var(--space-md); + background: var(--gold); + color: var(--black); + border-radius: var(--radius-lg); + text-align: center; + box-shadow: 0 8px 32px rgba(0,0,0,0.4); +} + +.about-badge-number { + display: block; + font-family: var(--font-display); + font-size: 2.25rem; + line-height: 1; +} + +.about-badge-text { + font-size: 0.75rem; + font-weight: 500; +} + +.about-content .section-tag { + display: block; +} + +.about-content .section-title { + margin-block-end: var(--space-md); +} + +.about-text { + color: var(--white-dim); + margin-block-end: var(--space-md); +} + +.about-features { + display: flex; + flex-direction: column; + gap: var(--space-sm); + margin-block-start: var(--space-lg); +} + +.about-feature { + display: flex; + align-items: center; + gap: var(--space-sm); + color: var(--white); + font-weight: 400; +} + +.about-feature svg { + width: 20px; + height: 20px; + color: var(--gold); + flex-shrink: 0; +} + +/* CTA */ +.cta { + padding-block: var(--space-xl) var(--space-2xl); + background: var(--black); +} + +.cta-content { + text-align: center; + padding: var(--space-xl); + background: linear-gradient(135deg, var(--black-lighter), var(--black-light)); + border: 1px solid var(--gold-dark); + border-radius: var(--radius-xl); + position: relative; + overflow: hidden; +} + +.cta-content::before { + content: ''; + position: absolute; + inset-block-start: 0; + inset-inline-end: 0; + width: 50%; + height: 100%; + background: radial-gradient(ellipse at top right, rgba(212, 175, 55, 0.1), transparent 70%); + pointer-events: none; +} + +.cta-title { + font-size: clamp(2rem, 5vw, 3rem); + margin-block-end: var(--space-sm); + position: relative; +} + +.cta-desc { + color: var(--white-dim); + font-size: 1.125rem; + margin-block-end: var(--space-lg); + position: relative; +} + +/* Contact - Redesigned */ +.contact { + padding-block: var(--space-2xl); + background: linear-gradient(180deg, var(--black), var(--black-light)); +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1.5fr; + gap: var(--space-lg); + align-items: stretch; +} + +.contact-card { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: var(--space-xl) var(--space-lg); + border-radius: var(--radius-xl); + transition: var(--transition); + text-decoration: none; +} + +.contact-card-primary { + background: linear-gradient(135deg, var(--gold), var(--gold-dark)); + color: var(--black); +} + +.contact-card-primary:hover, +.contact-card-primary:focus { + transform: translateY(-4px); + box-shadow: 0 16px 48px rgba(212, 175, 55, 0.3); +} + +.contact-card-primary .contact-icon { + width: 56px; + height: 56px; + margin-block-end: var(--space-md); + color: var(--black); +} + +.contact-card-primary .contact-icon svg { + width: 100%; + height: 100%; +} + +.contact-card-primary .contact-label { + font-size: 0.875rem; + font-weight: 500; + margin-block-end: var(--space-xs); + opacity: 0.8; +} + +.contact-card-primary .contact-value { + font-family: var(--font-display); + font-size: 1.75rem; + display: block; + margin-block-end: var(--space-sm); +} + +.contact-card-primary .contact-cta-text { + font-size: 0.875rem; + font-weight: 500; + opacity: 0.8; + border-block-start: 1px solid rgba(0,0,0,0.2); + padding-block-start: var(--space-sm); + width: 100%; +} + +.contact-info { + display: flex; + flex-direction: column; + gap: var(--space-md); +} + +.contact-info-item { + display: flex; + gap: var(--space-md); + padding: var(--space-md); + background: var(--black); + border: 1px solid var(--black-lighter); + border-radius: var(--radius-lg); + transition: var(--transition); +} + +.contact-info-item:hover { + border-color: var(--gold-dark); +} + +.contact-icon-small { + width: 40px; + height: 40px; + color: var(--gold); + flex-shrink: 0; +} + +.contact-icon-small svg { + width: 100%; + height: 100%; +} + +.contact-info-label { + font-size: 0.75rem; + color: var(--gray); + margin-block-end: 2px; + font-weight: 400; +} + +.contact-info-value { + font-size: 1.125rem; + font-weight: 500; + color: var(--white); + margin-block-end: 2px; +} + +.contact-info-note { + font-size: 0.875rem; + color: var(--gray); +} + +/* Footer */ +.footer { + padding-block: var(--space-xl) var(--space-md); + background: var(--black-light); + border-top: 1px solid var(--black-lighter); +} + +.footer-content { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: var(--space-md); + margin-block-end: var(--space-lg); +} + +.footer-logo { + font-family: var(--font-display); + font-size: 1.5rem; + color: var(--white); +} + +.footer-tagline { + font-size: 0.875rem; + color: var(--gray); +} + +.footer-nav { + display: flex; + gap: var(--space-lg); +} + +.footer-nav a { + font-size: 0.9rem; + color: var(--white-dim); + transition: var(--transition); +} + +.footer-nav a:hover, +.footer-nav a:focus { + color: var(--gold); +} + +.footer-cta { + font-size: 1.125rem; + font-weight: 500; + color: var(--gold); + transition: var(--transition); +} + +.footer-cta:hover, +.footer-cta:focus { + color: var(--gold-light); +} + +.footer-bottom { + padding-block-start: var(--space-md); + border-top: 1px solid var(--black-lighter); + text-align: center; +} + +.footer-bottom p { + font-size: 0.875rem; + color: var(--gray); +} + +/* Reveal Animation */ +.reveal { + opacity: 0; + transform: translateY(40px); + transition: opacity 0.8s ease, transform 0.8s ease; +} + +.reveal.active { + opacity: 1; + transform: translateY(0); +} + +/* Mobile Navigation */ +@media (max-width: 900px) { + .nav-links { + position: fixed; + inset-block-start: 0; + inset-inline-end: -100%; + width: 80%; + max-width: 300px; + height: 100vh; + height: 100dvh; + background: var(--black); + flex-direction: column; + justify-content: center; + align-items: center; + gap: var(--space-lg); + transition: var(--transition); + z-index: 1000; + } + + .nav-links.active { + inset-inline-end: 0; + } + + .nav-links a { + font-size: 1.25rem; + } + + .nav-cta { + display: none; + } + + .nav-toggle { + display: flex; + z-index: 1001; + } + + .nav-toggle.active span:nth-child(1) { + transform: rotate(45deg) translate(5px, 5px); + } + + .nav-toggle.active span:nth-child(2) { + opacity: 0; + } + + .nav-toggle.active span:nth-child(3) { + transform: rotate(-45deg) translate(5px, -5px); + } + + .about-grid { + grid-template-columns: 1fr; + gap: var(--space-lg); + } + + .about-visual { + margin-inline: auto; + max-width: 280px; + } + + .contact-grid { + grid-template-columns: 1fr; + } + + .footer-content { + flex-direction: column; + text-align: center; + } + + .footer-nav { + flex-wrap: wrap; + justify-content: center; + gap: var(--space-md); + } +} + +@media (max-width: 680px) { + .services-grid { + grid-template-columns: 1fr; + } + + .gallery-grid { + grid-template-columns: 1fr 1fr; + grid-auto-rows: 150px; + } + + .gallery-item-tall { + grid-row: span 1; + } + + .gallery-item-wide { + grid-column: span 2; + } +} + +@media (max-width: 480px) { + .hero-title { + font-size: 2.25rem; + } + + .hero-actions { + flex-direction: column; + align-items: stretch; + } + + .btn { + width: 100%; + } + + .gallery-grid { + grid-template-columns: 1fr; + } + + .gallery-item-wide { + grid-column: span 1; + } +} + +/* Focus States */ +*:focus { + outline: 2px solid var(--gold); + outline-offset: 2px; +} + +*:focus:not(:focus-visible) { + outline: none; +} + +*:focus-visible { + outline: 2px solid var(--gold); + outline-offset: 2px; +} \ No newline at end of file