/* ═══════════════════════════════════════════════
   FAITES LA FÊTE — Styles
   Dark elegant aesthetic · Squarespace-mirror
═══════════════════════════════════════════════ */

:root {
  --bg:         #faf7f2;
  --bg2:        #f1ebe0;
  --bg3:        #e8dece;
  --text:       #1c1610;
  --text-muted: #635446;
  --gold:       #7e5c24;
  --gold-light: #c4953e;
  --accent:     #c8a96e;
  --border:     rgba(0,0,0,0.1);
  --nav-h:      72px;
  --radius:     12px;
  --font-head:  'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-body:  'Inter', system-ui, sans-serif;
  --ease:       cubic-bezier(0.4, 0, 0.2, 1);
}

/* Skip link (accessibility) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 9999;
  padding: 0.75rem 1.5rem;
  background: var(--text);
  color: var(--bg);
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 0 0 var(--radius) var(--radius);
  transition: top 0.2s;
}
.skip-link:focus {
  top: 0;
}

/* Focus visible ring (keyboard navigation) */
:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 3px;
}
:focus:not(:focus-visible) {
  outline: none;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { display: block; width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* Typography */
h1,h2,h3,h4 { font-family: var(--font-head); font-weight: 600; line-height: 1.15; letter-spacing: 0.01em; }
h1 { font-size: clamp(2.8rem,6vw,5.5rem); }
h2 { font-size: clamp(2rem,4vw,3.5rem); }
h3 { font-size: clamp(1.3rem,2.5vw,2rem); }
p  { color: var(--text-muted); font-weight: 300; }
.eyebrow { font-family: var(--font-body); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold); margin-bottom: 1rem; }

/* Layout */
.container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.section    { padding: 7rem 0; }
.section-header { text-align: center; margin-bottom: 4rem; }
.section-header h2 { margin-bottom: 1rem; }
.section-header p  { max-width: 560px; margin: 0 auto; }

/* Announcement Bar */
.announcement-bar {
  background: var(--text);
  color: var(--bg);
  text-align: center;
  padding: 0.6rem 1rem;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  position: relative;
  z-index: 200;
}
.announcement-bar a { color: var(--bg); text-decoration: underline; text-underline-offset: 3px; }

/* Navigation */
#navbar {
  position: fixed;
  top: 34px; left: 0; right: 0;
  z-index: 100;
  height: var(--nav-h);
  transition: background 0.4s var(--ease), backdrop-filter 0.4s, top 0.3s;
}
#navbar.scrolled {
  background: rgba(250,247,242,0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 1px 0 var(--border);
}
.nav-inner {
  max-width: 1300px; margin: 0 auto; padding: 0 2rem;
  height: 100%; display: flex; align-items: center; justify-content: space-between;
  position: relative;
}
.nav-logo { display: flex; align-items: center; gap: 0.75rem; font-family: var(--font-head); font-size: 1.5rem; font-style: italic; letter-spacing: 0.04em; z-index: 2; }
.nav-logo img { width: auto; height: 44px; object-fit: contain; filter: brightness(0); }
#navbar:not(.scrolled) .nav-logo img { filter: brightness(0) invert(1); }
.logo-text { color: var(--text); }
/* Pill nav — centered */
.nav-links {
  display: flex; align-items: center; gap: 0.1rem;
  background: rgba(28,22,16,0.07);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(28,22,16,0.13);
  border-radius: 999px;
  padding: 0.3rem 0.4rem;
  position: absolute;
  left: 50%; transform: translateX(-50%);
}
/* On hero (dark bg) the pill should be light */
#hero ~ nav .nav-links,
.nav-links.on-dark {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.18);
}
.nav-links a {
  font-size: 0.65rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--text); opacity: 0.65;
  transition: opacity 0.2s, background 0.2s;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  white-space: nowrap;
}
/* On hero/dark bg (before scroll) links should be white */
#navbar:not(.scrolled) .nav-links a { color: #fff; }
#navbar:not(.scrolled) .nav-links { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.18); }
#navbar:not(.scrolled) .nav-links a:hover { background: rgba(255,255,255,0.14); }
#navbar:not(.scrolled) .nav-links a.active { background: rgba(255,255,255,0.18); }
.nav-links a:hover { opacity: 1; background: rgba(28,22,16,0.08); }
.nav-links a.active { opacity: 1; background: rgba(28,22,16,0.1); }
.nav-instagram { opacity: 0.45 !important; padding: 0.4rem 0.6rem !important; }
.nav-instagram:hover { opacity: 0.9 !important; }

.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; z-index:101; position:relative; }
.hamburger span { display:block; width:22px; height:1px; background:var(--bg); transition:transform 0.3s,opacity 0.3s; }
#navbar.scrolled .hamburger span { background:var(--text); }
.hamburger.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* Logo blend overlay on banners */
.banner-logo {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(320px, 50vw);
  opacity: 0.18;
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 1;
  filter: invert(1);
}
.page-hero .banner-logo {
  top: 50%; left: 50%;
  width: min(220px, 40vw);
  opacity: 0.15;
}

/* Hero */
#hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-media { position:absolute; inset:0; }
.hero-img { width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 9s ease-out; }
.hero-img.loaded { transform:scale(1); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.58) 100%); }
.hero-content { position:relative; z-index:2; text-align:center; padding:0 2rem; max-width:860px; }
.hero-eyebrow { color:var(--gold-light); margin-bottom:1.5rem; }
.hero-content h1 { color:#fff; font-style:italic; margin-bottom:1.5rem; text-shadow:0 2px 30px rgba(0,0,0,0.4); }
.hero-sub { color:rgba(255,255,255,0.72); font-size:1.05rem; max-width:520px; margin:0 auto 2.5rem; }
.hero-cta { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.scroll-hint { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); z-index:2; color:rgba(255,255,255,0.45); animation:bounce 2.5s infinite; }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:0.5rem; padding:0.85rem 2rem; font-family:var(--font-body); font-size:0.7rem; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; border:none; cursor:pointer; transition:all 0.25s var(--ease); border-radius:999px; }
.btn-primary { background:var(--text); color:var(--bg); }
.btn-primary:hover { background:#3a2e22; transform:translateY(-1px); box-shadow:0 6px 20px rgba(28,22,16,0.2); }
.btn-ghost { background:rgba(255,255,255,0.12); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); color:#fff; border:1px solid rgba(255,255,255,0.3); }
.btn-ghost:hover { border-color:rgba(255,255,255,0.7); background:rgba(255,255,255,0.2); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--text); border:1px solid var(--border); }
.btn-outline:hover { border-color:var(--text); background:rgba(28,22,16,0.06); transform:translateY(-1px); }

/* Split */
.split { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.split.reverse { direction:rtl; }
.split.reverse > * { direction:ltr; }
.split-img { aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius); }
.split-img img { transition:transform 0.8s var(--ease); }
.split-img:hover img { transform:scale(1.04); }
.split-text h2 { margin-bottom:1.5rem; }
.split-text p  { margin-bottom:1.25rem; }
.split-text .btn { margin-top:1rem; }

/* Service Cards */
.cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding:0 1rem; }
.service-card { position:relative; aspect-ratio:3/4; overflow:hidden; cursor:pointer; border-radius:var(--radius); }
.service-card img { transition:transform 0.7s var(--ease); }
.service-card:hover img { transform:scale(1.06); }
.service-card-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.88) 0%,rgba(0,0,0,0.08) 55%); display:flex; flex-direction:column; justify-content:flex-end; padding:2rem; }
.service-card-overlay h3 { color:#fff; margin-bottom:0.5rem; font-style:italic; }
.service-card-overlay p  { color:rgba(255,255,255,0.65); font-size:0.88rem; }
.service-card-overlay .price { color:var(--gold); font-family:var(--font-head); font-size:1.2rem; margin-top:0.5rem; }

/* Menu Cards */
.menu-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; }
.menu-card { background:var(--bg2); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:border-color 0.3s; }
.menu-card:hover { border-color:var(--gold); }
.menu-card-img { aspect-ratio:4/3; overflow:hidden; }
.menu-card-img img { transition:transform 0.6s var(--ease); }
.menu-card:hover .menu-card-img img { transform:scale(1.05); }
.menu-card-body { padding:1.5rem; }
.menu-card-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:0.6rem; }
.menu-card-header h3 { font-size:1.2rem; color:var(--text); font-family:var(--font-head); }
.price { color:var(--gold); font-family:var(--font-head); font-size:1.1rem; }
.menu-card-body p { font-size:0.9rem; line-height:1.6; }
.tag { display:inline-block; margin-top:0.75rem; font-size:0.67rem; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); border:1px solid var(--gold); padding:0.22rem 0.55rem; border-radius:var(--radius); }

/* Pricing */
.pricing-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.5rem; }
.pricing-card { background:var(--bg2); border:1px solid var(--border); padding:2.5rem 2rem; border-radius:var(--radius); text-align:center; transition:border-color 0.3s; }
.pricing-card:hover { border-color:var(--gold); }
.pricing-card .amount { font-family:var(--font-head); font-size:3.2rem; color:var(--gold); line-height:1; margin:1rem 0 0.4rem; }
.pricing-card .unit { font-size:0.75rem; color:var(--text-muted); letter-spacing:0.1em; text-transform:uppercase; }
.pricing-card h3 { color:var(--text); margin-bottom:0.75rem; font-size:1.1rem; }
.pricing-card p { font-size:0.88rem; }
.pricing-card ul { margin-top:1.5rem; text-align:left; }
.pricing-card ul li { font-size:0.83rem; color:var(--text-muted); padding:0.4rem 0; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:0.5rem; }
.pricing-card ul li::before { content:'✓'; color:var(--gold); font-size:0.72rem; }

/* Quote */
.quote-section { padding:7rem 0; text-align:center; background:var(--text); }
.quote-section blockquote { font-family:var(--font-head); font-size:clamp(1.5rem,3vw,2.5rem); font-style:italic; color:var(--bg); max-width:800px; margin:0 auto 1.5rem; line-height:1.45; }
.quote-section cite { font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--accent); }

/* Gallery */
.gallery-grid { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:repeat(2,300px); gap:1rem; }
.gallery-item { overflow:hidden; border-radius:var(--radius); }
.gallery-item img { transition:transform 0.6s var(--ease); }
.gallery-item:hover img { transform:scale(1.05); }
.gallery-item-lg { grid-row:span 2; }

/* Instagram */
.insta-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:0.75rem; padding:0 1rem; }
.insta-item { position:relative; aspect-ratio:1; overflow:hidden; background:var(--bg3); border-radius:var(--radius); }
.insta-item img { transition:transform 0.5s var(--ease); }
.insta-item:hover img { transform:scale(1.08); }
.insta-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.45); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 0.3s; }
.insta-item:hover .insta-overlay { opacity:1; }

/* Address */
.address-block { display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:1rem; color:var(--text-muted); }
.address-block svg { color:var(--gold); flex-shrink:0; margin-top:2px; }
.address-block a:hover { color:var(--gold); }
.hours-block { margin:1.5rem 0; }
.hours-row { display:flex; justify-content:space-between; padding:0.6rem 0; border-bottom:1px solid var(--border); font-size:0.9rem; color:var(--text-muted); }

/* Newsletter */
.newsletter-section { background:var(--text); padding:4rem 0; }
.newsletter-inner { display:flex; align-items:center; justify-content:space-between; gap:3rem; }
.newsletter-inner h3 { font-family:var(--font-head); font-size:1.8rem; color:var(--bg); }
.newsletter-inner p  { color:rgba(250,247,242,0.6); font-size:0.88rem; margin-top:0.35rem; }
.newsletter-form { display:flex; gap:0.75rem; flex-shrink:0; }
.newsletter-form input { padding:0.85rem 1.25rem; border:1px solid rgba(250,247,242,0.2); border-radius:999px; font-family:var(--font-body); font-size:0.9rem; background:rgba(250,247,242,0.1); color:var(--bg); width:240px; outline:none; }
.newsletter-form input::placeholder { color:rgba(250,247,242,0.4); }
.newsletter-form .btn-nl { background:var(--bg); color:var(--text); border-radius:999px; }
.newsletter-form .btn-nl:hover { background:var(--bg2); }

/* Menu page list */
.menu-category { margin-bottom:5rem; }
.menu-cat-header { display:flex; align-items:center; gap:2rem; margin-bottom:2.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
.menu-cat-header h2 { margin:0; }
.menu-cat-header .price-from { font-family:var(--font-head); font-size:1.2rem; color:var(--gold); font-style:italic; }
.menu-list { }
.menu-item { display:flex; justify-content:space-between; align-items:baseline; padding:1rem 0; border-bottom:1px solid var(--border); gap:2rem; }
.menu-item-name { color:var(--text); font-size:0.95rem; font-weight:400; }
.menu-item-price { color:var(--gold); font-family:var(--font-head); font-size:1.1rem; white-space:nowrap; }

/* Contact */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.form-wrap { background:var(--bg2); border:1px solid var(--border); padding:2.5rem; border-radius:var(--radius); }
.form-wrap h3 { font-family:var(--font-head); color:var(--text); margin-bottom:1.5rem; }
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-size:0.67rem; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--text-muted); margin-bottom:0.4rem; }
.form-group input,.form-group textarea,.form-group select { width:100%; padding:0.85rem 1rem; background:#fff; border:1px solid var(--border); border-radius:var(--radius); color:var(--text); font-family:var(--font-body); font-size:0.92rem; outline:none; transition:border-color 0.2s; -webkit-appearance:none; }
.form-group input:focus,.form-group textarea:focus { border-color:var(--gold); }
.form-group textarea { height:140px; resize:vertical; }
.form-submit { width:100%; justify-content:center; margin-top:0.5rem; }

/* Page hero (inner pages) */
.page-hero { min-height:50vh; position:relative; display:flex; align-items:flex-end; padding-bottom:4rem; overflow:hidden; }
.page-hero-bg { position:absolute; inset:0; }
.page-hero-bg img { width:100%; height:100%; object-fit:cover; }
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,0.2),rgba(0,0,0,0.68)); }
.page-hero-content { position:relative; z-index:2; padding-top:calc(var(--nav-h) + 34px + 2rem); }
.page-hero-content h1 { color:#fff; font-style:italic; }

/* Feestmenu takeout */
.takeout-section { background:var(--bg2); }
.takeout-category { margin-bottom:4rem; }
.takeout-cat-title { font-family:var(--font-head); font-size:1.5rem; color:var(--gold); font-style:italic; margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.takeout-item { display:flex; justify-content:space-between; align-items:flex-start; padding:1.25rem 0; border-bottom:1px solid var(--border); gap:2rem; }
.takeout-item h4 { font-family:var(--font-head); font-weight:400; font-size:1.05rem; color:var(--text); margin-bottom:0.2rem; }
.takeout-item p { font-size:0.83rem; }
.takeout-price { color:var(--gold); font-family:var(--font-head); font-size:1.3rem; white-space:nowrap; }

/* Kaartlegging */
.kl-words { display:flex; flex-wrap:wrap; gap:1.5rem; margin:2rem 0; }
.kl-word { font-family:var(--font-head); font-size:1.8rem; font-style:italic; color:var(--text-muted); }
.kl-word span { color:var(--gold); }

/* Map */
.map-wrap { border-radius:var(--radius); overflow:hidden; }
.map-wrap iframe { width:100%; height:420px; border:0; filter:grayscale(0.4); }

/* Footer */
footer { background:var(--text); border-top:1px solid rgba(250,247,242,0.1); padding-top:4rem; }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(250,247,242,0.1); }
.footer-logo-text { font-family:var(--font-head); font-size:1.5rem; color:var(--bg); margin-bottom:0.75rem; font-style:italic; }
.footer-brand p { font-size:0.85rem; margin-bottom:0.4rem; color:rgba(250,247,242,0.55); }
.footer-social { display:flex; gap:1.5rem; margin-top:1.25rem; }
.footer-social a { font-size:0.7rem; letter-spacing:0.15em; text-transform:uppercase; color:rgba(250,247,242,0.60); transition:color 0.2s; }
.footer-social a:hover { color:var(--bg); }
.footer-links { display:flex; flex-direction:column; gap:0.75rem; }
.footer-links a { font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(250,247,242,0.60); transition:color 0.2s; }
.footer-links a:hover { color:var(--bg); }
.footer-contact p,.footer-contact a { font-size:0.85rem; color:rgba(250,247,242,0.5); display:block; margin-bottom:0.4rem; transition:color 0.2s; }
.footer-contact a:hover { color:var(--bg); }
.footer-bottom { padding:1.5rem 0; display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(250,247,242,0.1); }
.footer-bottom p { font-size:0.72rem; color:rgba(250,247,242,0.55); }
.footer-credit { font-style:italic; }

/* Reveal animations */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.9s var(--ease),transform 0.9s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.delay-1 { transition-delay:0.15s; }
.delay-2 { transition-delay:0.3s; }
.delay-3 { transition-delay:0.45s; }
.delay-4 { transition-delay:0.6s; }

/* Marquee */
@keyframes marquee-left  { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes marquee-right { 0%{transform:translateX(-50%)} 100%{transform:translateX(0)} }
.marquee-container { overflow:hidden; padding:0.5rem 0; }
.marquee-track { display:flex; gap:1.5rem; width:max-content; will-change:transform; }
.marquee-track.left  { animation:marquee-left  40s linear infinite; }
.marquee-track.right { animation:marquee-right 40s linear infinite; }
.marquee-container:hover .marquee-track { animation-play-state:paused; }

/* Testimonial glass card */
.testimonial-card {
  background:rgba(255,255,255,0.6);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(28,22,16,0.08);
  border-radius:16px;
  padding:1.75rem 2rem;
  width:320px;
  flex-shrink:0;
  box-shadow:0 2px 20px rgba(28,22,16,0.06);
}
.testimonial-card .tc-stars { color:var(--gold); font-size:0.85rem; letter-spacing:0.1em; margin-bottom:0.75rem; }
.testimonial-card .tc-quote { font-family:var(--font-head); font-style:italic; font-size:1.05rem; color:var(--text); line-height:1.55; margin-bottom:1.25rem; }
.testimonial-card .tc-author { font-size:0.72rem; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:var(--text-muted); }

/* Testimonials section */
.testimonials-section { padding:5rem 0; overflow:hidden; }
.testimonials-section .section-header { margin-bottom:3rem; }

/* FAQ */
.faq-list { max-width:720px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--border); }
.faq-question {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 0; cursor:pointer;
  font-family:var(--font-head); font-size:1.15rem; color:var(--text);
  font-weight:400; gap:1.5rem;
  background:none; border:none; width:100%; text-align:left;
}
.faq-question .faq-icon {
  width:24px; height:24px; border:1px solid rgba(255,255,255,0.25);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; font-size:1rem; color:var(--text-muted);
  transition:transform 0.3s var(--ease), border-color 0.3s;
}
.faq-item.open .faq-icon { transform:rotate(45deg); border-color:var(--gold); color:var(--text); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.4s var(--ease); }
.faq-answer p { padding-bottom:1.5rem; font-size:0.93rem; }

/* Responsive */
@media(max-width:1024px) {
  .cards-grid { grid-template-columns:repeat(2,1fr); }
  .insta-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px) {
  .split,.split.reverse { grid-template-columns:1fr; direction:ltr; gap:3rem; }
  .split .split-img { aspect-ratio:16/9; }
  .contact-grid { grid-template-columns:1fr; gap:3rem; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .newsletter-inner { flex-direction:column; text-align:center; }
  .newsletter-form { flex-direction:column; width:100%; }
  .newsletter-form input { width:100%; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .gallery-item-lg { grid-row:span 1; }
}
@media(max-width:768px) {
  :root { --nav-h:60px; }
  .hamburger { display:flex; }
  .nav-links {
    position:fixed; top:0; right:0; left:0;
    width:100%; height:100vh;
    background:rgba(250,247,242,0.98);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    flex-direction:column; justify-content:center; gap:2.5rem;
    border-radius:0; padding:0; border:none;
    transform:translateX(100%);
    transition:transform 0.4s var(--ease);
    z-index:99;
  }
  .nav-links.open { transform:translateX(0); }
  .nav-links a { font-size:0.85rem; opacity:1; padding:0.6rem 1.5rem; border-radius:999px; }
  .cards-grid { grid-template-columns:1fr; }
  .pricing-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; gap:2rem; }
  .footer-bottom { flex-direction:column; gap:0.5rem; text-align:center; }
}
@media(max-width:480px) {
  h1 { font-size:2.4rem; }
  h2 { font-size:1.8rem; }
  .section { padding:4rem 0; }
  .hero-cta { flex-direction:column; align-items:center; }
  .gallery-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .insta-grid { grid-template-columns:repeat(3,1fr); }
  #navbar { top:0; }
  .announcement-bar { font-size:0.6rem; padding:0.5rem; }
}

/* ── Reduced motion ──────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .marquee-track {
    animation: none;
  }
  .hero-img {
    transform: none !important;
    transition: none;
  }
  .scroll-hint {
    animation: none;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
