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

פתח תקווה · רח׳ רוטשילד 42

+

סטודיו לילךעיצוב שיער

+

צביעה מקצועית · תספורות · עיצוב כלות

+ +
+ +
+ +
+
+
+
+ +

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

+
+
+
+ +

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

+

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

+
+
+ +

תספורות ועיצוב

+

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

+
+
+ +

עיצוב כלות

+

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

+ הכי מבוקש +
+
+
+
+ + + +
+
+
+
+
+ +

תיאום תור

+
+

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

+ + + 054-7654321 + +
+

שעות פעילות

+
+
ראשון – חמישי
09:00 – 20:00
+
שישי
09:00 – 14:00
+
שבת
סגור
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + ניתן לקבוע החל ממחר +
+
+ + +
+
+
+ + +
+ +
+
+
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + רח׳ רוטשילד 42 + פתח תקווה + +
+
+
+ +

צור קשר

+
+

שאלות? רעיונות? רוצים לשמוע עוד? נשמח לדבר.

+ +
+ + + 054-7654321 + + + + hello@lilach-studio.co.il + +

+ + רח׳ רוטשילד 42, פתח תקווה +

+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+
+ + + + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..728149b --- /dev/null +++ b/script.js @@ -0,0 +1,184 @@ +(function() { + 'use strict'; + + // Navigation scroll effect + const nav = document.querySelector('.nav'); + + function handleNavScroll() { + if (window.pageYOffset > 100) { + nav.classList.add('scrolled'); + } else { + nav.classList.remove('scrolled'); + } + } + + // Mobile menu toggle + const navToggle = document.querySelector('.nav__toggle'); + const navMenu = document.querySelector('.nav__menu'); + + function toggleMenu() { + const isExpanded = navToggle.getAttribute('aria-expanded') === 'true'; + navToggle.setAttribute('aria-expanded', !isExpanded); + navMenu.classList.toggle('active'); + document.body.style.overflow = !isExpanded ? 'hidden' : ''; + + if (!isExpanded) { + navToggle.setAttribute('aria-label', 'סגור תפריט ניווט'); + } else { + navToggle.setAttribute('aria-label', 'פתח תפריט ניווט'); + } + } + + navToggle.addEventListener('click', toggleMenu); + + // Close menu on link click + navMenu.querySelectorAll('a').forEach(link => { + link.addEventListener('click', () => { + if (navMenu.classList.contains('active')) { + toggleMenu(); + } + }); + }); + + // Close menu on escape + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape' && navMenu.classList.contains('active')) { + toggleMenu(); + navToggle.focus(); + } + }); + + // Trap focus in mobile menu + navMenu.addEventListener('keydown', (e) => { + if (!navMenu.classList.contains('active')) return; + + const focusable = navMenu.querySelectorAll('a'); + const first = focusable[0]; + const last = focusable[focusable.length - 1]; + + if (e.key === 'Tab') { + if (e.shiftKey && document.activeElement === first) { + e.preventDefault(); + last.focus(); + } else if (!e.shiftKey && document.activeElement === last) { + e.preventDefault(); + first.focus(); + } + } + }); + + // Scroll reveal + function initReveal() { + const revealElements = document.querySelectorAll('[data-reveal]'); + const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + + if (prefersReducedMotion) { + revealElements.forEach(el => el.classList.add('revealed')); + return; + } + + const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.classList.add('revealed'); + observer.unobserve(entry.target); + } + }); + }, { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' + }); + + revealElements.forEach(el => observer.observe(el)); + } + + // Form handling + function initForms() { + const forms = document.querySelectorAll('.booking__form, .contact__form'); + + forms.forEach(form => { + form.addEventListener('submit', (e) => { + e.preventDefault(); + + const btn = form.querySelector('button[type="submit"]'); + const originalText = btn.textContent; + + btn.textContent = 'שולח...'; + btn.disabled = true; + btn.setAttribute('aria-busy', 'true'); + + // Simulate form submission + setTimeout(() => { + btn.textContent = 'נשלח בהצלחה!'; + btn.style.background = '#4a9c6d'; + btn.setAttribute('aria-busy', 'false'); + + // Announce to screen readers + const announcement = document.createElement('div'); + announcement.setAttribute('role', 'status'); + announcement.setAttribute('aria-live', 'polite'); + announcement.className = 'sr-only'; + announcement.textContent = 'הטופס נשלח בהצלחה'; + form.appendChild(announcement); + + setTimeout(() => { + form.reset(); + btn.textContent = originalText; + btn.style.background = ''; + btn.disabled = false; + announcement.remove(); + }, 2000); + }, 1000); + }); + }); + } + + // Set minimum date for booking + function initDateInput() { + const dateInput = document.querySelector('#book-date'); + if (dateInput) { + const today = new Date(); + const tomorrow = new Date(today); + tomorrow.setDate(tomorrow.getDate() + 1); + dateInput.min = tomorrow.toISOString().split('T')[0]; + } + } + + // Smooth scroll for anchor links + function initSmoothScroll() { + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function(e) { + const targetId = this.getAttribute('href'); + if (targetId === '#') return; + + const target = document.querySelector(targetId); + if (target) { + e.preventDefault(); + const navHeight = nav.offsetHeight; + const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - navHeight; + + window.scrollTo({ + top: targetPosition, + behavior: 'smooth' + }); + + // Set focus for accessibility + target.setAttribute('tabindex', '-1'); + target.focus({ preventScroll: true }); + } + }); + }); + } + + // Initialize + window.addEventListener('scroll', handleNavScroll, { passive: true }); + + document.addEventListener('DOMContentLoaded', () => { + handleNavScroll(); + initReveal(); + initForms(); + initDateInput(); + initSmoothScroll(); + }); + +})(); diff --git a/style.css b/style.css new file mode 100644 index 0000000..06c12fb --- /dev/null +++ b/style.css @@ -0,0 +1,941 @@ +:root { + --dark: #0d0d0d; + --dark-soft: #1a1a1a; + --cream: #f5f0e8; + --cream-soft: #e8e2d6; + --gold: #c9a87c; + --gold-light: #dfc9a8; + --gold-dark: #a88a5c; + --lilac: #b8a9c9; + --lilac-soft: rgba(184, 169, 201, 0.15); + --text: #f5f0e8; + --text-muted: #c4bdb0; + --font-body: 'Heebo', sans-serif; + --font-display: 'Frank Ruhl Libre', serif; + --space-xs: 0.5rem; + --space-sm: 1rem; + --space-md: 2rem; + --space-lg: 3rem; + --space-xl: 5rem; + --radius: 4px; + --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); + --max-line: 65ch; +} + +*, +*::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; + font-weight: 400; + line-height: 1.7; + color: var(--text); + background: var(--dark); + -webkit-font-smoothing: antialiased; + overflow-x: hidden; +} + +/* Screen reader only utility */ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +/* Skip Link */ +.skip-link { + position: absolute; + top: -100%; + inset-inline-end: var(--space-sm); + z-index: 9999; + padding: var(--space-sm) var(--space-md); + background: var(--gold); + color: var(--dark); + font-weight: 500; + border-radius: var(--radius); + transition: top 0.2s; +} + +.skip-link:focus { + top: var(--space-sm); +} + +.container { + width: 100%; + max-width: 1200px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +/* 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(1.75rem, 4vw, 2.5rem); } +h3 { font-size: clamp(1.125rem, 2vw, 1.375rem); } + +a { + color: inherit; + text-decoration: none; +} + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: var(--space-sm) var(--space-md); + font-family: var(--font-body); + font-size: 0.95rem; + font-weight: 500; + border: none; + border-radius: var(--radius); + cursor: pointer; + transition: var(--transition); +} + +.btn--primary { + background: var(--gold); + color: var(--dark); +} + +.btn--primary:hover, +.btn--primary:focus { + background: var(--gold-light); + transform: translateY(-2px); +} + +.btn--secondary { + background: transparent; + color: var(--gold); + border: 1px solid var(--gold); +} + +.btn--secondary:hover, +.btn--secondary:focus { + background: var(--gold); + color: var(--dark); +} + +.btn--full { + width: 100%; +} + +.btn:focus-visible { + outline: 3px solid var(--cream); + outline-offset: 2px; +} + +/* Navigation */ +.nav { + position: fixed; + top: 0; + inset-inline: 0; + z-index: 1000; + padding: var(--space-sm) 0; + background: linear-gradient(to bottom, rgba(13,13,13,0.95), transparent); + transition: var(--transition); +} + +.nav.scrolled { + background: rgba(13,13,13,0.98); + backdrop-filter: blur(10px); +} + +.nav__inner { + display: flex; + align-items: center; + justify-content: space-between; + max-width: 1200px; + margin-inline: auto; + padding-inline: var(--space-md); +} + +.nav__logo { + display: flex; + align-items: center; + gap: var(--space-sm); + font-family: var(--font-display); + font-size: 1.1rem; + font-weight: 500; +} + +.nav__logo svg { + flex-shrink: 0; +} + +.nav__toggle { + display: none; + flex-direction: column; + gap: 5px; + padding: var(--space-xs); + background: none; + border: none; + cursor: pointer; +} + +.nav__toggle span { + display: block; + width: 24px; + height: 2px; + background: var(--cream); + transition: var(--transition); +} + +.nav__menu { + display: flex; + gap: var(--space-md); + list-style: none; +} + +.nav__menu a { + position: relative; + padding: var(--space-xs) var(--space-sm); + font-size: 0.9rem; + font-weight: 400; + color: var(--text-muted); + transition: var(--transition); + border-radius: var(--radius); +} + +.nav__menu a::after { + content: ''; + position: absolute; + bottom: 0; + inset-inline-start: var(--space-sm); + inset-inline-end: var(--space-sm); + height: 2px; + background: var(--lilac); + transform: scaleX(0); + transition: var(--transition); +} + +.nav__menu a:hover, +.nav__menu a:focus { + color: var(--text); +} + +.nav__menu a:hover::after, +.nav__menu a:focus::after { + transform: scaleX(1); +} + +.nav__menu a:focus-visible { + background: var(--lilac-soft); + outline: 2px solid var(--lilac); + outline-offset: 0; +} + +@media (max-width: 768px) { + .nav__toggle { + display: flex; + } + + .nav__menu { + position: fixed; + top: 0; + inset-inline-end: 0; + flex-direction: column; + width: 280px; + height: 100vh; + height: 100dvh; + padding: var(--space-xl) var(--space-md); + background: var(--dark-soft); + transform: translateX(100%); + transition: var(--transition); + } + + [dir="rtl"] .nav__menu { + transform: translateX(-100%); + } + + .nav__menu.active { + transform: translateX(0); + } + + .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); + } +} + +/* Hero */ +.hero { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 100vh; + min-height: 100dvh; + padding: var(--space-xl) var(--space-md); + overflow: hidden; +} + +.hero__bg { + position: absolute; + inset: 0; + background: + radial-gradient(ellipse at 30% 20%, rgba(184, 169, 201, 0.1) 0%, transparent 50%), + radial-gradient(ellipse at 70% 80%, rgba(201, 168, 124, 0.08) 0%, transparent 40%), + linear-gradient(135deg, var(--dark) 0%, var(--dark-soft) 100%); +} + +.hero__bg::before { + content: ''; + position: absolute; + inset: 0; + background-image: + repeating-linear-gradient(90deg, transparent, transparent 100px, rgba(184, 169, 201, 0.03) 100px, rgba(184, 169, 201, 0.03) 101px), + repeating-linear-gradient(0deg, transparent, transparent 100px, rgba(184, 169, 201, 0.03) 100px, rgba(184, 169, 201, 0.03) 101px); +} + +.hero__content { + position: relative; + text-align: center; + max-width: 700px; +} + +.hero__tag { + display: inline-block; + margin-block-end: var(--space-sm); + padding: var(--space-xs) var(--space-sm); + font-size: 0.85rem; + font-weight: 400; + color: var(--lilac); + border: 1px solid rgba(184, 169, 201, 0.4); + border-radius: var(--radius); +} + +.hero__title { + margin-block-end: var(--space-md); + font-weight: 400; +} + +.hero__title span { + display: block; + font-size: 0.4em; + font-weight: 400; + color: var(--gold); + margin-top: var(--space-sm); + letter-spacing: 0.1em; +} + +.hero__sub { + margin-block-end: var(--space-lg); + font-size: 1.1rem; + color: var(--text-muted); +} + +.hero__actions { + display: flex; + flex-wrap: wrap; + gap: var(--space-sm); + justify-content: center; +} + +.hero__scroll { + position: absolute; + bottom: var(--space-md); + color: var(--text-muted); + animation: bounce 2s infinite; +} + +@keyframes bounce { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(10px); } +} + +/* Section Header */ +.section-header { + display: flex; + align-items: baseline; + gap: var(--space-sm); + margin-block-end: var(--space-lg); +} + +.section-header__num { + font-family: var(--font-display); + font-size: 0.9rem; + color: var(--lilac); +} + +.section-header__title { + color: var(--cream); +} + +/* Services */ +.services { + padding: var(--space-xl) 0; + background: var(--dark-soft); +} + +.services__grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--space-md); +} + +@media (max-width: 900px) { + .services__grid { + grid-template-columns: 1fr 1fr; + } +} + +@media (max-width: 600px) { + .services__grid { + grid-template-columns: 1fr; + } +} + +.service-card { + position: relative; + padding: var(--space-lg) var(--space-md); + background: var(--dark); + border: 1px solid rgba(184, 169, 201, 0.1); + border-radius: var(--radius); + transition: var(--transition); +} + +.service-card:hover, +.service-card:focus-within { + border-color: var(--lilac); + transform: translateY(-4px); +} + +.service-card--feature { + background: linear-gradient(135deg, var(--dark) 0%, rgba(184, 169, 201, 0.08) 100%); + border-color: rgba(184, 169, 201, 0.3); +} + +@media (min-width: 901px) { + .service-card--feature { + grid-column: 3; + grid-row: 1; + } +} + +.service-card__icon { + width: 56px; + height: 56px; + margin-block-end: var(--space-md); + color: var(--lilac); +} + +.service-card h3 { + margin-block-end: var(--space-sm); + color: var(--cream); +} + +.service-card p { + color: var(--text-muted); + font-size: 0.95rem; + max-width: var(--max-line); +} + +.service-card__badge { + position: absolute; + top: var(--space-sm); + inset-inline-end: var(--space-sm); + padding: var(--space-xs) var(--space-sm); + font-size: 0.75rem; + font-weight: 500; + color: var(--dark); + background: var(--lilac); + border-radius: var(--radius); +} + +/* Gallery */ +.gallery { + padding: var(--space-xl) 0; + background: var(--dark); +} + +.gallery__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: minmax(180px, auto); + gap: var(--space-sm); + list-style: none; +} + +.gallery__item { + position: relative; + overflow: hidden; + border-radius: var(--radius); +} + +.gallery__item figure { + width: 100%; + height: 100%; + min-height: 180px; +} + +.gallery__item--tall { + grid-row: span 2; +} + +.gallery__item--tall figure { + min-height: 376px; +} + +.gallery__item--wide { + grid-column: span 2; +} + +.gallery__img { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient( + 135deg, + hsl(var(--hue, 30), var(--sat, 20%), 15%) 0%, + hsl(var(--hue, 30), var(--sat, 20%), 8%) 100% + ); + transition: var(--transition); +} + +.gallery__img svg { + width: 80%; + height: 80%; + object-fit: contain; + transition: var(--transition); +} + +.gallery__item:hover .gallery__img, +.gallery__item:focus-within .gallery__img { + transform: scale(1.05); +} + +.gallery__item:hover .gallery__img svg, +.gallery__item:focus-within .gallery__img svg { + transform: scale(1.1); +} + +.gallery__item figcaption { + position: absolute; + bottom: 0; + inset-inline: 0; + padding: var(--space-sm); + font-size: 0.9rem; + color: var(--cream); + background: linear-gradient(to top, rgba(13,13,13,0.9), transparent); +} + +@media (max-width: 900px) { + .gallery__grid { + grid-template-columns: repeat(2, 1fr); + } + + .gallery__item--tall figure { + min-height: 200px; + } +} + +@media (max-width: 500px) { + .gallery__grid { + grid-template-columns: 1fr; + } + + .gallery__item--tall, + .gallery__item--wide { + grid-column: span 1; + grid-row: span 1; + } + + .gallery__item--tall figure { + min-height: 220px; + } +} + +/* Booking */ +.booking { + padding: var(--space-xl) 0; + background: + radial-gradient(ellipse at 80% 50%, rgba(184, 169, 201, 0.06) 0%, transparent 50%), + var(--dark-soft); +} + +.booking__layout { + display: grid; + grid-template-columns: 1fr 1.2fr; + gap: var(--space-lg); + align-items: start; +} + +@media (max-width: 900px) { + .booking__layout { + grid-template-columns: 1fr; + } +} + +.booking__desc { + margin-block-end: var(--space-md); + color: var(--text-muted); + max-width: var(--max-line); +} + +.booking__phone { + display: inline-flex; + align-items: center; + gap: var(--space-xs); + margin-block-end: var(--space-md); + padding: var(--space-sm) var(--space-md); + font-size: 1.1rem; + font-weight: 500; + color: var(--gold); + background: rgba(201, 168, 124, 0.1); + border-radius: var(--radius); + transition: var(--transition); +} + +.booking__phone:hover, +.booking__phone:focus { + background: var(--gold); + color: var(--dark); +} + +.booking__hours { + padding: var(--space-md); + background: var(--dark); + border-radius: var(--radius); + border: 1px solid rgba(184, 169, 201, 0.1); +} + +.booking__hours h3 { + margin-block-end: var(--space-sm); + font-size: 1rem; + font-family: var(--font-body); + font-weight: 500; + color: var(--lilac); +} + +.booking__hours dl { + display: flex; + flex-direction: column; +} + +.booking__hours dl > div { + display: flex; + justify-content: space-between; + padding: var(--space-xs) 0; + font-size: 0.9rem; + color: var(--text-muted); + border-bottom: 1px solid rgba(255,255,255,0.05); +} + +.booking__hours dl > div:last-child { + border-bottom: none; +} + +.booking__hours dt, +.booking__hours dd { + margin: 0; +} + +.booking__form { + padding: var(--space-lg); + background: var(--dark); + border: 1px solid rgba(184, 169, 201, 0.2); + border-radius: var(--radius); +} + +/* Forms */ +.form-group { + margin-block-end: var(--space-md); +} + +.form-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-md); +} + +@media (max-width: 500px) { + .form-row { + grid-template-columns: 1fr; + } +} + +.form-group label { + display: block; + margin-block-end: var(--space-xs); + font-size: 0.9rem; + font-weight: 500; + color: var(--cream); +} + +.form-group input, +.form-group select, +.form-group textarea { + width: 100%; + padding: var(--space-sm); + font-family: var(--font-body); + font-size: 1rem; + color: var(--text); + background: var(--dark-soft); + border: 1px solid rgba(255,255,255,0.15); + border-radius: var(--radius); + transition: var(--transition); +} + +.form-group input::placeholder { + color: var(--text-muted); + opacity: 0.6; +} + +.form-group input:focus, +.form-group select:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--lilac); + box-shadow: 0 0 0 3px rgba(184, 169, 201, 0.2); +} + +.form-group select { + cursor: pointer; + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c4bdb0'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: left var(--space-sm) center; + background-size: 24px; + padding-inline-start: var(--space-sm); + padding-inline-end: calc(var(--space-sm) + 28px); +} + +[dir="rtl"] .form-group select { + background-position: left var(--space-sm) center; +} + +.form-group textarea { + resize: vertical; + min-height: 100px; +} + +.form-hint { + display: block; + margin-top: var(--space-xs); + font-size: 0.8rem; + color: var(--text-muted); +} + +/* Contact */ +.contact { + padding: var(--space-xl) 0; + background: var(--dark); +} + +.contact__layout { + display: grid; + grid-template-columns: 1fr 1fr; + gap: var(--space-lg); + align-items: start; +} + +@media (max-width: 900px) { + .contact__layout { + grid-template-columns: 1fr; + } +} + +.contact__map { + border-radius: var(--radius); + overflow: hidden; + aspect-ratio: 4/3; + border: 1px solid rgba(184, 169, 201, 0.1); +} + +.contact__map svg { + width: 100%; + height: 100%; +} + +.contact__info > p { + margin-block-end: var(--space-md); + color: var(--text-muted); + max-width: var(--max-line); +} + +.contact__details { + display: flex; + flex-direction: column; + gap: var(--space-sm); + margin-block-end: var(--space-lg); + font-style: normal; +} + +.contact__detail { + display: inline-flex; + align-items: center; + gap: var(--space-sm); + color: var(--text-muted); + transition: var(--transition); +} + +a.contact__detail:hover, +a.contact__detail:focus { + color: var(--lilac); +} + +.contact__form { + margin-block-end: var(--space-md); +} + +/* Footer */ +.footer { + padding: var(--space-lg) 0; + background: var(--dark-soft); + border-top: 1px solid rgba(184, 169, 201, 0.1); +} + +.footer__inner { + display: grid; + grid-template-columns: auto 1fr auto; + align-items: center; + gap: var(--space-md); +} + +@media (max-width: 768px) { + .footer__inner { + grid-template-columns: 1fr; + text-align: center; + justify-items: center; + } +} + +.footer__brand { + display: flex; + align-items: center; + gap: var(--space-sm); + font-family: var(--font-display); + font-size: 1rem; +} + +.footer__nav { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: var(--space-md); +} + +.footer__nav a { + font-size: 0.85rem; + color: var(--text-muted); + padding: var(--space-xs); + border-radius: var(--radius); + transition: var(--transition); +} + +.footer__nav a:hover, +.footer__nav a:focus { + color: var(--lilac); +} + +.footer__nav a:focus-visible { + background: var(--lilac-soft); + outline: 2px solid var(--lilac); +} + +.footer__contact { + display: flex; + flex-direction: column; + align-items: flex-end; + gap: var(--space-xs); + font-size: 0.85rem; + color: var(--text-muted); +} + +@media (max-width: 768px) { + .footer__contact { + align-items: center; + } +} + +.footer__contact a { + color: var(--gold); + transition: var(--transition); +} + +.footer__contact a:hover { + color: var(--gold-light); +} + +.footer__copy { + grid-column: 1 / -1; + text-align: center; + margin-top: var(--space-md); + padding-top: var(--space-md); + font-size: 0.8rem; + color: var(--text-muted); + border-top: 1px solid rgba(255,255,255,0.05); +} + +/* Reveal Animation */ +[data-reveal] { + opacity: 0; + transform: translateY(20px); + transition: opacity 0.6s ease, transform 0.6s ease; +} + +[data-reveal].revealed { + opacity: 1; + transform: translateY(0); +} + +/* Focus States */ +a:focus-visible, +button:focus-visible, +input:focus-visible, +select:focus-visible, +textarea:focus-visible { + outline: 2px solid var(--lilac); + outline-offset: 2px; +} + +/* Selection */ +::selection { + background: var(--lilac); + color: var(--dark); +}