<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Maison Aurora - Domain Discovery</title>
    <meta name="description" content="Verified domain information for maisonaurora.eu via Aztrix Online Discovery Platform">
    <meta name="robots" content="index, follow">
    <link rel="canonical" href="https://maisonaurora.eu/">
    <link rel="alternate" hreflang="en" href="https://maisonaurora.eu/?lang=en">
    <link rel="alternate" hreflang="fr" href="https://maisonaurora.eu/?lang=fr">
    <link rel="alternate" hreflang="nl" href="https://maisonaurora.eu/?lang=nl">
    <link rel="alternate" hreflang="de" href="https://maisonaurora.eu/?lang=de">
    <link rel="alternate" hreflang="es" href="https://maisonaurora.eu/?lang=es">
    <link rel="alternate" hreflang="pt-BR" href="https://maisonaurora.eu/?lang=pt-BR">
    <link rel="alternate" hreflang="x-default" href="https://maisonaurora.eu/">
    <!-- AI / machine-readable peers — same content, formats LLM tools prefer.
         ?src=alt lets bot-stats attribute crawler hits to the alternate-discovery
         channel (vs ?src=llms, ?src=sitemap, or unsourced raw scrape). -->
    <link rel="alternate" type="text/markdown" href="/about.md?src=alt">
    <link rel="alternate" type="text/plain" href="/llms.txt?src=alt">
    <link rel="alternate" type="application/ld+json" href="/.well-known/schema.json?src=alt">
    <meta name="ai-content-policy" content="readable">
    <meta property="og:title" content="Maison Aurora">
    <meta property="og:description" content="A curated boutique in the heart of Antwerp offering sustainable fashion, artisan accessories, and unique home decor. Supporting independent European designers since 2020.">
    <meta property="og:url" content="https://maisonaurora.eu/">
    <meta property="og:type" content="website">
    <meta property="og:image" content="https://nnaayfkzvllcnpcnaizx.supabase.co/functions/v1/og-image?domain=maisonaurora.eu">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:image" content="https://nnaayfkzvllcnpcnaizx.supabase.co/functions/v1/og-image?domain=maisonaurora.eu">
    <link rel="icon" type="image/png" href="https://www.google.com/s2/favicons?domain=maisonaurora.eu&sz=64">
    <link rel="apple-touch-icon" href="https://www.google.com/s2/favicons?domain=maisonaurora.eu&sz=180">
    <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"LocalBusiness","name":"Maison Aurora","url":"https://maisonaurora.eu","description":"A curated boutique in the heart of Antwerp offering sustainable fashion, artisan accessories, and unique home decor. Supporting independent European designers since 2020.","telephone":"+32 3 456 78 90","address":{"@type":"PostalAddress","streetAddress":"Kammenstraat 28","addressLocality":"Antwerp","addressCountry":"Belgium"},"sameAs":"https://maisonbelle.be","aggregateRating":{"@type":"AggregateRating","ratingValue":4.6,"reviewCount":23,"bestRating":5},"paymentAccepted":"VISA, MASTERCARD"},{"@type":"Product","name":"Linen Wrap Dress","description":"Relaxed-fit wrap dress in stone-washed Belgian linen. Sustainably made in Ghent. Available in sand and sage.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/e8671ee0-1095-4311-85e5-5a8d75589e5c.jpg","category":"Fashion","offers":{"@type":"Offer","price":89,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Merino Wool Scarf","description":"Ultra-soft merino wool scarf, hand-dyed in small batches. 180cm x 60cm.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/77f21803-9566-4011-b535-efaf16879b07.jpg","category":"Fashion","offers":{"@type":"Offer","price":45,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Recycled Cotton Tote","description":"Sturdy tote bag made from 100% recycled cotton canvas. Screen-printed in Antwerp.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/a7fdd88a-7421-476d-977c-e09d89aea83a.jpg","category":"Fashion","offers":{"@type":"Offer","price":28,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Brass Cuff Bracelet","description":"Minimalist hammered brass cuff by a Brussels-based jeweller. Adjustable, fits most wrists.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/1f3ec8c2-a236-4b2a-97de-63489316e4cd.jpg","category":"Accessories","offers":{"@type":"Offer","price":38,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Ceramic Stud Earrings","description":"Hand-glazed porcelain studs in ocean blue. Hypoallergenic sterling silver posts.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/b43855fe-2ac2-4383-bc6f-d7e703434fc2.jpg","category":"Accessories","offers":{"@type":"Offer","price":24,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Soy Wax Candle Set","description":"Set of three hand-poured soy candles: fig, cedar, and lavender. 40h burn time each.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/8dcfb4a1-36b4-4b89-87eb-7c45b86c510d.jpg","category":"Home","offers":{"@type":"Offer","price":36,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Handwoven Throw Blanket","description":"Chunky-knit throw in organic cotton. 130x170cm. Made by a cooperative in Portugal.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/1448d6a1-f7a7-48d2-9954-3293016e52c4.jpg","category":"Home","offers":{"@type":"Offer","price":75,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Artisan Chocolate Box","description":"Selection of 16 Belgian pralines by a local chocolatier. Beautifully gift-wrapped.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/603d00db-8664-49a8-8b99-587a0ec16e2b.jpg","category":"Gifts","offers":{"@type":"Offer","price":32,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}},{"@type":"Product","name":"Gift Card","description":"Digital gift card for Maison Belle. Delivered by email. Valid for 12 months.","image":"https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/9fe50b09-49cc-42f6-b108-506acf76448e.jpg","category":"Gifts","offers":{"@type":"Offer","price":50,"priceCurrency":"EUR","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"maisonaurora.eu","url":"https://maisonaurora.eu"}}}]}</script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap" rel="stylesheet">
    <style>
        :root {
            --accent: #0ea5e9;
            --accent-dark: #0c8cc6;
            --brand-green: #10b981;
            --bg-base: #0A0A0A;
            --bg-surface: #111827;
            --bg-elevated: #1F2937;
            --bg-glass: rgba(255,255,255,0.05);
            --border-glass: rgba(255,255,255,0.10);
            --text-primary: #F8FAFC;
            --text-secondary: #94A3B8;
            --text-tertiary: #666666;
            --icon-bg-muted: rgba(255,255,255,0.06);
            --shadow-card: none;
        }
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; line-height: 1.5; color: var(--text-primary); background: var(--bg-base); min-height: 100vh; padding: 0; }
        .container { max-width: 900px; margin: 0 auto; padding: 0 1rem; }

        /* Hero */
        .hero { padding: 4rem 1rem 3rem; text-align: center; position: relative; }
        .hero::after { content: ''; position: absolute; bottom: 0; left: 10%; right: 10%; height: 1px; background: linear-gradient(90deg, transparent, var(--border-glass), transparent); }
        /* Hero photo variant — set via vertical_attributes.cover_image_url in website mode. Background image is composited with a dark scrim for text contrast. */
        /* Specificity note: selectors qualified with both .hero and .hero-with-photo so they win the cascade against the base .hero h1 / .hero .category-chip rules defined below. Without this, the title renders in --text-primary (dark) over the burger photo. */
        .hero-with-photo { padding: 6rem 1rem 5rem; background-size: cover; background-position: center; background-repeat: no-repeat; color: #fff; }
        .hero.hero-with-photo h1 { color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,0.55); }
        .hero.hero-with-photo .hero-headline { color: rgba(255,255,255,0.95); text-shadow: 0 1px 8px rgba(0,0,0,0.5); }
        .hero.hero-with-photo .hero-status { color: rgba(255,255,255,0.95); text-shadow: 0 1px 6px rgba(0,0,0,0.5); }
        .hero.hero-with-photo .hero-status-pin svg { color: #fff; }
        .hero.hero-with-photo .category-chip { background: rgba(255,255,255,0.18); color: #fff; border-color: rgba(255,255,255,0.28); backdrop-filter: blur(8px); }
        .hero-with-photo::after { display: none; }
        .hero .category-chip { display: inline-block; background: var(--bg-glass); color: var(--text-secondary); padding: 0.25rem 0.875rem; border-radius: 999px; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1rem; border: 1px solid var(--border-glass); }
        .hero h1 { font-size: 2rem; font-weight: 700; color: var(--text-primary); margin-bottom: 0.375rem; line-height: 1.2; }
        .hero .domain { font-size: 1rem; color: var(--accent); margin-bottom: 0.75rem; font-weight: 400; }
        .verified-badge { display: inline-flex; align-items: center; gap: 0.375rem; background: rgba(16,185,129,0.12); color: var(--brand-green); padding: 0.375rem 0.875rem; border-radius: 999px; font-size: 0.8125rem; font-weight: 700; border: 1px solid rgba(16,185,129,0.25); }
        .growth-badge { display: inline-flex; align-items: center; gap: 0.5rem; margin-left: 0.5rem; background: linear-gradient(135deg, rgba(14,165,233,0.12), rgba(16,185,129,0.12)); color: var(--text-primary); padding: 0.375rem 0.875rem; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; border: 1px solid rgba(14,165,233,0.25); text-decoration: none; transition: transform 0.15s ease, box-shadow 0.15s ease; }
        .growth-badge:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(14,165,233,0.15); }
        .growth-badge__icon { font-size: 0.9rem; line-height: 1; }
        .growth-badge__grade { font-weight: 800; color: #0284c7; background: rgba(14,165,233,0.18); padding: 0.05rem 0.4rem; border-radius: 6px; font-size: 0.75rem; }
        .growth-badge__divider { color: var(--text-tertiary); }
        .growth-badge__delta { color: #047857; font-weight: 700; font-size: 0.78rem; }
        body[data-presentation="website"] .growth-badge { display: none; }
        .hero-headline { font-size: 1.125rem; color: var(--text-secondary); max-width: 600px; margin: 1.5rem auto 0; line-height: 1.6; }
        .hero-cta { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--accent); color: #000; padding: 0.75rem 2rem; border-radius: 999px; text-decoration: none; font-weight: 700; font-size: 0.9375rem; margin-top: 1.75rem; transition: all 0.2s ease; }
        .hero-cta:hover { background: var(--accent-dark); transform: translateY(-1px); }

        /* Pipeline */
        .pipeline-section { padding: 2.5rem 0; }
        .pipeline-header { text-align: center; margin-bottom: 2rem; }
        .pipeline-header h2 { font-size: 1.25rem; font-weight: 700; color: var(--text-primary); margin-bottom: 0.25rem; }
        .pipeline-header p { font-size: 0.875rem; color: var(--text-secondary); }
        .pipeline { display: flex; gap: 0; align-items: stretch; position: relative; }
        .pipeline-step { flex: 1; text-decoration: none; color: var(--text-primary); text-align: center; padding: 1.25rem 0.75rem; border-radius: 12px; background: var(--bg-surface); border: 1px solid var(--border-glass); transition: all 0.2s ease; position: relative; }
        .pipeline-step:hover { background: var(--bg-elevated); border-color: var(--accent); transform: translateY(-2px); }
        .pipeline-step.ucp-step { border-color: rgba(16,185,129,0.4); background: rgba(16,185,129,0.08); }
        .pipeline-step.ucp-step:hover { border-color: var(--brand-green); }
        .pipeline-hook { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-tertiary); margin-bottom: 0.5rem; }
        .pipeline-file { font-size: 0.9375rem; font-weight: 700; color: var(--accent); margin-bottom: 0.25rem; font-family: 'JetBrains Mono', 'Fira Code', monospace; }
        .pipeline-step.ucp-step .pipeline-file { color: var(--brand-green); }
        .pipeline-label { font-size: 0.75rem; color: var(--text-secondary); }
        .pipeline-arrow { display: flex; align-items: center; justify-content: center; width: 24px; flex-shrink: 0; color: var(--text-tertiary); }
        @media (max-width: 640px) {
            .pipeline { flex-direction: column; gap: 0.5rem; }
            .pipeline-arrow { transform: rotate(90deg); width: auto; height: 20px; }
            .hero h1 { font-size: 1.5rem; }
        }

        /* Cards */
        .card { background: var(--bg-surface); border-radius: 12px; padding: 1.75rem; margin-bottom: 1.5rem; border: 1px solid var(--border-glass); box-shadow: var(--shadow-card); }
        .section { margin-bottom: 1.75rem; }
        .section:last-child { margin-bottom: 0; }
        .section h2 { font-size: 1.25rem; font-weight: 700; color: var(--text-primary); margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border-glass); }
        .section-source { display: inline-block; font-size: 0.6875rem; font-weight: 700; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.5rem; padding: 0.125rem 0.5rem; background: var(--bg-glass); border-radius: 4px; border: 1px solid var(--border-glass); }
        /* Website mode: hide platform-chrome "from llms.txt" / "from ai.json" badges; the customer's site is theirs, the file-source attribution is for the AI version (footer link). */
        body[data-presentation="website"] .section-source { display: none; }
        body[data-presentation="website"] .domain { display: none; }
        body[data-presentation="website"] .verified-badge { display: none; }
        /* Hero status one-liner — only rendered in website mode. Populated client-side by the existing opening-hours JS so it shares logic. */
        .hero-status { display: flex; align-items: center; justify-content: center; gap: 0.75rem; flex-wrap: wrap; margin: 0.875rem 0 1.25rem; font-size: 0.9375rem; color: var(--text-secondary); }
        .hero-status-pin { display: inline-flex; align-items: center; gap: 0.375rem; }
        .hero-status-pin svg { color: var(--accent); }
        .hero-status-time:empty { display: none; }
        .hero-status-time:not(:empty)::before { content: "·"; color: var(--text-tertiary); margin-right: 0.5rem; }
        .info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
        .info-item { background: var(--bg-glass); padding: 1rem; border-radius: 8px; border: 1px solid var(--border-glass); }
        .info-item h3 { font-size: 0.75rem; color: var(--accent); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.375rem; font-weight: 700; }
        .info-item p { color: var(--text-primary); font-size: 0.9375rem; }

        /* CTA buttons */
        .cta-panel { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 0.5rem; }
        .cta-btn { display: inline-flex; align-items: center; gap: 0.4rem; background: var(--bg-glass); color: var(--text-primary); padding: 0.625rem 1.25rem; border-radius: 999px; text-decoration: none; font-weight: 400; font-size: 0.875rem; border: 1px solid var(--border-glass); transition: all 0.15s ease; }
        .cta-btn:hover { background: var(--bg-elevated); border-color: rgba(255,255,255,0.2); }
        .cta-btn.cta-primary { background: var(--accent); border-color: var(--accent); color: #000; font-weight: 700; }
        .cta-btn.cta-primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
        .cta-btn.cta-wa { background: rgba(37,211,102,0.15); border-color: rgba(37,211,102,0.3); color: #25d366; font-weight: 700; }
        .cta-btn.cta-wa:hover { background: rgba(37,211,102,0.25); }

        /* Profile / discovery file links */
        .discovery-files { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.75rem; }
        .discovery-file { display: block; background: var(--bg-glass); border: 1px solid var(--border-glass); padding: 1.25rem; border-radius: 12px; text-decoration: none; color: var(--text-primary); transition: all 0.2s ease; text-align: center; }
        .discovery-file:hover { background: var(--bg-elevated); border-color: var(--accent); transform: translateY(-2px); }
        .discovery-file .file-title { font-weight: 700; margin-bottom: 0.125rem; color: var(--accent); font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 0.875rem; }
        .discovery-file .file-desc { font-size: 0.75rem; color: var(--text-secondary); }
        .profile-btn { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--accent); color: #000; padding: 0.625rem 1.5rem; border-radius: 999px; text-decoration: none; font-weight: 700; font-size: 0.875rem; margin-top: 1rem; transition: all 0.2s ease; }
        .profile-btn:hover { background: var(--accent-dark); }

        /* Related domains */
        .related-domain { background: var(--bg-glass); padding: 0.75rem 1rem; border-radius: 8px; border-left: 3px solid var(--accent); margin-bottom: 0.5rem; }
        .tag { display: inline-block; background: var(--bg-glass); color: var(--text-secondary); padding: 0.25rem 0.75rem; border-radius: 8px; font-size: 0.8125rem; margin: 0.25rem; border: 1px solid var(--border-glass); }

        /* Footer */
        .footer { text-align: center; padding: 2.5rem 0 2rem; color: var(--text-tertiary); font-size: 0.8125rem; }
        .footer a { color: var(--accent); text-decoration: none; }

        /* Theme toggle */
        .theme-toggle { position: fixed; bottom: 1.25rem; right: 1.25rem; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border-glass); background: var(--bg-surface); color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 100; transition: all 0.2s ease; box-shadow: var(--shadow-card); }
        .theme-toggle:hover { border-color: var(--accent); color: var(--accent); }

        /* Trust card */
        .trust-title { font-size: 1.25rem; font-weight: 700; color: var(--text-primary); margin-bottom: 1.25rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border-glass); }
        .trust-card { background: var(--bg-surface); border-radius: 12px; padding: 1.75rem; margin-bottom: 1.5rem; border: 1px solid var(--border-glass); box-shadow: var(--shadow-card); }
        .trust-details { }
        .trust-details > summary { list-style: none; cursor: pointer; }
        .trust-details > summary::-webkit-details-marker { display: none; }
        .trust-header { display: flex; align-items: center; gap: 1.25rem; }
        .trust-details[open] .trust-header { margin-bottom: 1.5rem; }
        .trust-header-text { flex: 1; min-width: 0; }
        .trust-chevron { flex-shrink: 0; color: var(--text-secondary); transition: transform 0.2s ease; }
        .trust-details[open] .trust-chevron { transform: rotate(180deg); }
        .trust-ring-wrap { position: relative; width: 64px; height: 64px; flex-shrink: 0; }
        .trust-ring-score { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 700; }
        .trust-tier-badge { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; border: 1px solid; }
        .trust-score-label { font-size: 0.75rem; color: var(--text-secondary); margin-top: 0.25rem; }
        .trust-dims { display: flex; flex-direction: column; gap: 0.75rem; }
        .trust-group-label { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-secondary); margin-bottom: -0.25rem; }
        .trust-dim { display: flex; align-items: center; gap: 0.75rem; }
        .trust-dim-icon { width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
        .trust-dim-label { flex: 1; font-size: 0.875rem; font-weight: 400; color: var(--text-primary); min-width: 0; }
        .trust-dim-detail { font-size: 0.75rem; color: var(--text-secondary); font-weight: 400; margin-left: 0.375rem; }
        .trust-dim-status { flex-shrink: 0; font-size: 0.75rem; font-weight: 400; text-align: right; }
        .trust-footer { font-size: 0.625rem; color: var(--text-tertiary); margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--border-glass); }

        /* Hours */
        .hours-summary { display: flex; align-items: center; cursor: pointer; user-select: none; gap: 0.75rem; }
        .hours-summary h2 { flex-shrink: 0; }
        .hours-status { font-size: 0.8125rem; color: var(--text-secondary); display: flex; align-items: center; gap: 0.375rem; margin-left: auto; }
        .hours-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
        .hours-dot-open { background: #10b981; box-shadow: 0 0 6px rgba(16,185,129,0.5); }
        .hours-dot-closed { background: #ef4444; box-shadow: 0 0 6px rgba(239,68,68,0.4); }
        .hours-table { width: 100%; border-collapse: collapse; }
        .hours-table tr { border-bottom: 1px solid var(--border-glass); }
        .hours-table tr:last-child { border-bottom: none; }
        .hours-table td { padding: 0.625rem 0; font-size: 0.9375rem; }
        .hours-table .hours-day { color: var(--text-primary); font-weight: 400; width: 40%; }
        .hours-table .hours-time { color: var(--text-secondary); text-align: right; }
        .hours-table tr.hours-today .hours-day { color: var(--accent); font-weight: 700; }
        .hours-table tr.hours-today .hours-time { color: var(--text-primary); font-weight: 400; }

        /* Reviews */
        .reviews-hero { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1rem; }
        .reviews-score { font-size: 3rem; font-weight: 700; color: var(--text-primary); line-height: 1; }
        .reviews-stars { display: flex; gap: 0.125rem; margin-bottom: 0.25rem; }
        .reviews-stars svg { width: 20px; height: 20px; }
        .reviews-count { font-size: 0.875rem; color: var(--text-secondary); }

        /* Social */
        .social-grid { display: flex; flex-wrap: wrap; gap: 0.625rem; }
        .social-link { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--bg-glass); border: 1px solid var(--border-glass); color: var(--text-primary); padding: 0.5rem 1rem; border-radius: 999px; text-decoration: none; font-size: 0.8125rem; font-weight: 400; transition: all 0.15s ease; }
        .social-link:hover { background: var(--bg-elevated); border-color: rgba(255,255,255,0.2); }

        /* Menu */
        .menu-summary { display: flex; align-items: center; cursor: pointer; user-select: none; gap: 0.75rem; }
        .menu-count { font-size: 0.8125rem; color: var(--text-secondary); margin-left: auto; }
        .menu-section-title { font-size: 1rem; font-weight: 700; color: var(--accent); margin: 1.5rem 0 0.75rem; padding-bottom: 0.375rem; border-bottom: 1px solid var(--border-glass); }
        .menu-section-title:first-child { margin-top: 0; }
        .menu-item { display: flex; justify-content: space-between; align-items: center; padding: 0.6rem 0; border-bottom: 1px dotted var(--border-glass); gap: 0.5rem; }
        .menu-item:last-child { border-bottom: none; }
        .menu-item-img { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
        .menu-item-info { flex: 1; min-width: 0; }
        .menu-item-right { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
        .menu-item-name { color: var(--text-primary); font-size: 0.9375rem; font-weight: 400; }
        .menu-item-desc { color: var(--text-secondary); font-size: 0.8125rem; margin-top: 0.125rem; }
        .menu-item-price { color: var(--accent); font-weight: 700; font-size: 0.9375rem; white-space: nowrap; }
        .menu-add-btn { width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--accent); background: transparent; color: var(--accent); font-size: 1.1rem; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.15s; line-height: 1; }
        .menu-add-btn:hover { background: var(--accent); color: var(--bg-base); }
        .menu-add-btn:active { transform: scale(0.9); }

        /* Cart bar */
        .cart-bar { position: fixed; bottom: 0; left: 0; right: 0; background: var(--bg-elevated); border-top: 1px solid var(--border-glass); padding: 0.75rem 1rem; display: none; align-items: center; justify-content: space-between; z-index: 100; backdrop-filter: blur(12px); }
        .cart-bar.visible { display: flex; }
        .cart-bar-info { color: var(--text-primary); font-size: 0.9rem; font-weight: 400; }
        .cart-bar-info span { color: var(--accent); font-weight: 700; }
        .cart-bar-btn { background: var(--accent); color: var(--bg-base); border: none; padding: 0.6rem 1.5rem; border-radius: 999px; font-size: 0.9rem; font-weight: 700; cursor: pointer; transition: opacity 0.15s; }
        .cart-bar-btn:hover { opacity: 0.9; }

        /* Variant modal */
        .variant-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 200; display: none; align-items: flex-end; justify-content: center; }
        .variant-overlay.visible { display: flex; }
        .variant-sheet { background: var(--bg-elevated); border-radius: 28px 28px 0 0; width: 100%; max-width: 480px; padding: 1.5rem; max-height: 70vh; overflow-y: auto; }
        .variant-title { color: var(--text-primary); font-size: 1.1rem; font-weight: 700; margin-bottom: 1rem; }
        .variant-group { margin-bottom: 1rem; }
        .variant-group-label { color: var(--text-secondary); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.5rem; }
        .variant-option { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 0.75rem; border-radius: 8px; border: 1.5px solid var(--border-glass); margin-bottom: 0.4rem; cursor: pointer; transition: all 0.15s; color: var(--text-primary); font-size: 0.9rem; }
        .variant-option:hover { border-color: var(--accent); }
        .variant-option.selected { border-color: var(--accent); background: rgba(14,165,233,0.1); }
        .variant-option-price { color: var(--accent); font-weight: 700; font-size: 0.85rem; }
        .variant-add-btn { width: 100%; padding: 0.75rem; border-radius: 999px; border: none; background: var(--accent); color: var(--bg-base); font-size: 0.95rem; font-weight: 700; cursor: pointer; margin-top: 0.5rem; transition: opacity 0.15s; }
        .variant-add-btn:hover { opacity: 0.9; }
        .variant-add-btn:disabled { opacity: 0.4; cursor: default; }

        /* Cart review */
        .cart-review { display: none; }
        .cart-review.visible { display: block; }
        .cart-review-item { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px dotted var(--border-glass); }
        .cart-review-item:last-child { border-bottom: none; }
        .cart-qty-ctrl { display: flex; align-items: center; gap: 0.4rem; }
        .cart-qty-btn { width: 24px; height: 24px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.2); background: transparent; color: var(--text-primary); font-size: 0.9rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
        .cart-qty-btn:hover { border-color: var(--accent); color: var(--accent); }
        .cart-qty { color: var(--text-primary); font-size: 0.9rem; font-weight: 700; min-width: 1.5rem; text-align: center; }
    </style>
</head>
<body data-presentation="website">

        <!-- Act 1: Hero -->
        <div class="hero">
          
          <div class="container">
            <div class="category-chip">Shopping</div>
            <h1>Maison Aurora</h1>
            
            
            
            <p class="hero-headline">A curated boutique in the heart of Antwerp offering sustainable fashion, artisan accessories, and unique home decor. Supporting independent European designers since 2020.</p>
            <div class="hero-status" id="hero-status">
              <span class="hero-status-pin"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg> Antwerp</span>
              <span class="hero-status-time" id="hero-status-time"></span>
            </div>
            <a href="#menu-section" class="hero-cta" data-cta="cta_hero">Browse Listings</a>
          </div>
        </div>

        <!-- Discovery Pipeline -->
        

        

        <div class="container" style="padding-top:2rem;">

        <!-- Act 2: Business Profile -->
        <div class="card">

            <!-- About (from llms.txt) — suppressed in website mode because the hero already shows the description; rendering it again would be Ogilvy's 200px-rule violation. -->
            

            <!-- For Sale -->
            

            <!-- Key info grid (from ai.json) — suppressed in website mode because Category lives in the hero chip, Location in the hero status one-liner, and "Status: Active" is platform meta that means nothing to a customer. -->
            

            <!-- Category-specific CTA section -->
            <div class="section"><h2>Visit Us</h2><div class="cta-panel"><a href="tel:+32 3 456 78 90" class="cta-btn" data-cta="phone">+32 3 456 78 90</a>
            <a href="https://maps.google.com/?q=Kammenstraat%2028%2C%20Antwerp%2C%20Belgium" class="cta-btn cta-primary" data-cta="directions" target="_blank">Get Directions</a></div></div>

            <!-- Opening Hours (from ai.json) -->
            

            <!-- Inline Menu (from sitemap.xml / ucp) -->
            <div class="section-source">From sitemap.xml</div><div class="section" id="menu-section" data-listing-id="1084391c-63f2-408c-abce-ac2b7d12985e">
    <div class="menu-summary" onclick="var m=document.getElementById('menu-items'),a=document.getElementById('menu-chevron');if(m.style.display==='none'){m.style.display='';a.style.transform='rotate(0)'}else{m.style.display='none';a.style.transform='rotate(-90deg)'}">
      <h2 style="border:0;margin:0;padding:0;">Menu</h2>
      <span class="menu-count">9 items</span>
      <svg id="menu-chevron" style="width:18px;height:18px;color:var(--text-tertiary);transition:transform 0.2s;transform:rotate(-90deg);flex-shrink:0;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg>
    </div>
    <div id="menu-items" style="display:none;margin-top:1rem;">
      <h4 class="menu-section-title">Fashion</h4>
<div class="menu-item" data-item-id="e8671ee0-1095-4311-85e5-5a8d75589e5c">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/e8671ee0-1095-4311-85e5-5a8d75589e5c.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Linen Wrap Dress</div>
      <div class="menu-item-desc">Relaxed-fit wrap dress in stone-washed Belgian linen. Sustainably made in Ghent. Available in sand and sage.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€89.00</div>
      <button class="menu-add-btn" data-add="e8671ee0-1095-4311-85e5-5a8d75589e5c">+</button>
    </div>
  </div>
<div class="menu-item" data-item-id="77f21803-9566-4011-b535-efaf16879b07">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/77f21803-9566-4011-b535-efaf16879b07.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Merino Wool Scarf</div>
      <div class="menu-item-desc">Ultra-soft merino wool scarf, hand-dyed in small batches. 180cm x 60cm.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€45.00</div>
      <button class="menu-add-btn" data-add="77f21803-9566-4011-b535-efaf16879b07">+</button>
    </div>
  </div>
<div class="menu-item" data-item-id="a7fdd88a-7421-476d-977c-e09d89aea83a">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/a7fdd88a-7421-476d-977c-e09d89aea83a.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Recycled Cotton Tote</div>
      <div class="menu-item-desc">Sturdy tote bag made from 100% recycled cotton canvas. Screen-printed in Antwerp.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€28.00</div>
      <button class="menu-add-btn" data-add="a7fdd88a-7421-476d-977c-e09d89aea83a">+</button>
    </div>
  </div>
<h4 class="menu-section-title">Accessories</h4>
<div class="menu-item" data-item-id="1f3ec8c2-a236-4b2a-97de-63489316e4cd">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/1f3ec8c2-a236-4b2a-97de-63489316e4cd.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Brass Cuff Bracelet</div>
      <div class="menu-item-desc">Minimalist hammered brass cuff by a Brussels-based jeweller. Adjustable, fits most wrists.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€38.00</div>
      <button class="menu-add-btn" data-add="1f3ec8c2-a236-4b2a-97de-63489316e4cd">+</button>
    </div>
  </div>
<div class="menu-item" data-item-id="b43855fe-2ac2-4383-bc6f-d7e703434fc2">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/b43855fe-2ac2-4383-bc6f-d7e703434fc2.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Ceramic Stud Earrings</div>
      <div class="menu-item-desc">Hand-glazed porcelain studs in ocean blue. Hypoallergenic sterling silver posts.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€24.00</div>
      <button class="menu-add-btn" data-add="b43855fe-2ac2-4383-bc6f-d7e703434fc2">+</button>
    </div>
  </div>
<h4 class="menu-section-title">Home</h4>
<div class="menu-item" data-item-id="8dcfb4a1-36b4-4b89-87eb-7c45b86c510d">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/8dcfb4a1-36b4-4b89-87eb-7c45b86c510d.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Soy Wax Candle Set</div>
      <div class="menu-item-desc">Set of three hand-poured soy candles: fig, cedar, and lavender. 40h burn time each.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€36.00</div>
      <button class="menu-add-btn" data-add="8dcfb4a1-36b4-4b89-87eb-7c45b86c510d">+</button>
    </div>
  </div>
<div class="menu-item" data-item-id="1448d6a1-f7a7-48d2-9954-3293016e52c4">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/1448d6a1-f7a7-48d2-9954-3293016e52c4.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Handwoven Throw Blanket</div>
      <div class="menu-item-desc">Chunky-knit throw in organic cotton. 130x170cm. Made by a cooperative in Portugal.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€75.00</div>
      <button class="menu-add-btn" data-add="1448d6a1-f7a7-48d2-9954-3293016e52c4">+</button>
    </div>
  </div>
<h4 class="menu-section-title">Gifts</h4>
<div class="menu-item" data-item-id="603d00db-8664-49a8-8b99-587a0ec16e2b">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/603d00db-8664-49a8-8b99-587a0ec16e2b.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Artisan Chocolate Box</div>
      <div class="menu-item-desc">Selection of 16 Belgian pralines by a local chocolatier. Beautifully gift-wrapped.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€32.00</div>
      <button class="menu-add-btn" data-add="603d00db-8664-49a8-8b99-587a0ec16e2b">+</button>
    </div>
  </div>
<div class="menu-item" data-item-id="9fe50b09-49cc-42f6-b108-506acf76448e">
    <img src="https://nnaayfkzvllcnpcnaizx.supabase.co/storage/v1/object/public/media/maison-belle/9fe50b09-49cc-42f6-b108-506acf76448e.jpg" alt="" class="menu-item-img" loading="lazy">
    <div class="menu-item-info">
      <div class="menu-item-name">Gift Card</div>
      <div class="menu-item-desc">Digital gift card for Maison Belle. Delivered by email. Valid for 12 months.</div>
    </div>
    <div class="menu-item-right">
      <div class="menu-item-price">€50.00</div>
      <button class="menu-add-btn" data-add="9fe50b09-49cc-42f6-b108-506acf76448e">+</button>
    </div>
  </div>
    </div>
  </div>
  <script>window.__menuCatalog=[{"id":"e8671ee0-1095-4311-85e5-5a8d75589e5c","title":"Linen Wrap Dress","price":89,"price_max":null,"currency":"EUR","category":"Fashion","variants":null,"options":null},{"id":"77f21803-9566-4011-b535-efaf16879b07","title":"Merino Wool Scarf","price":45,"price_max":null,"currency":"EUR","category":"Fashion","variants":null,"options":null},{"id":"a7fdd88a-7421-476d-977c-e09d89aea83a","title":"Recycled Cotton Tote","price":28,"price_max":null,"currency":"EUR","category":"Fashion","variants":null,"options":null},{"id":"1f3ec8c2-a236-4b2a-97de-63489316e4cd","title":"Brass Cuff Bracelet","price":38,"price_max":null,"currency":"EUR","category":"Accessories","variants":null,"options":null},{"id":"b43855fe-2ac2-4383-bc6f-d7e703434fc2","title":"Ceramic Stud Earrings","price":24,"price_max":null,"currency":"EUR","category":"Accessories","variants":null,"options":null},{"id":"8dcfb4a1-36b4-4b89-87eb-7c45b86c510d","title":"Soy Wax Candle Set","price":36,"price_max":null,"currency":"EUR","category":"Home","variants":null,"options":null},{"id":"1448d6a1-f7a7-48d2-9954-3293016e52c4","title":"Handwoven Throw Blanket","price":75,"price_max":null,"currency":"EUR","category":"Home","variants":null,"options":null},{"id":"603d00db-8664-49a8-8b99-587a0ec16e2b","title":"Artisan Chocolate Box","price":32,"price_max":null,"currency":"EUR","category":"Gifts","variants":null,"options":null},{"id":"9fe50b09-49cc-42f6-b108-506acf76448e","title":"Gift Card","price":50,"price_max":null,"currency":"EUR","category":"Gifts","variants":null,"options":null}];</script>

            <!-- Reviews -->
            

            <!-- Social Links (from ai.json) -->
            

            <!-- Location Map -->
            

            <!-- Technologies -->
            

            <!-- Certifications -->
            

            <!-- Related domains -->
            

        </div>

        <!-- API Access -->
        

        <!-- Act 3: Verification Trust Card -->
        

        <!-- Visible FAQ — mirrors the FAQPage JSON-LD so HTML-only crawlers
             and the AI-readiness scan's conversational_headings check see the
             same Q&A pairs. Each question becomes an <h2> for max signal. -->
        

        <div class="footer">
            <p style="margin-bottom:0.75rem;"><a href="/graph" data-cta="discovery_graph" style="display:inline-flex;align-items:center;gap:0.375rem;background:var(--bg-surface);color:#10b981;padding:0.5rem 1rem;border-radius:999px;font-size:0.8125rem;font-weight:600;text-decoration:none;border:1px solid var(--border-glass);"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="3"/><line x1="12" y1="5" x2="12" y2="3"/><line x1="17" y1="7" x2="19" y2="5"/><line x1="19" y1="12" x2="21" y2="12"/><line x1="17" y1="17" x2="19" y2="19"/><line x1="12" y1="19" x2="12" y2="21"/><line x1="7" y1="17" x2="5" y2="19"/><line x1="5" y1="12" x2="3" y2="12"/><line x1="7" y1="7" x2="5" y2="5"/></svg>Discovery Graph</a> <a href="/llms.txt?src=alt" data-cta="ai_version" style="display:inline-flex;align-items:center;gap:0.375rem;background:var(--bg-surface);color:var(--text-secondary);padding:0.5rem 1rem;border-radius:999px;font-size:0.8125rem;font-weight:600;text-decoration:none;border:1px solid var(--border-glass);margin-left:0.5rem;" title="Same site, formatted for AI assistants and crawlers">AI version &nearr;</a></p>
            <p>Powered by <a href="https://aztrix.io" target="_blank">Aztrix</a> &mdash; Online Discovery Platform</p>
            <p style="margin-top:0.375rem;">Last verified: 2026-06-14</p>
            <p style="margin-top:1rem;"><a href="https://aztrix.io/en/register">Register on Aztrix to manage this domain</a></p>
            <p style="margin-top:0.375rem;"><a href="/login" style="color:var(--accent);">Manage this business</a></p>
        </div>

        </div>

<button class="theme-toggle" id="theme-toggle" aria-label="Toggle theme">
  <svg id="theme-icon-sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
    <circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>
  </svg>
  <svg id="theme-icon-moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" style="display:none">
    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
  </svg>
</button>

<script>
(function(){
  var d="maisonaurora.eu";
  var u="https://nnaayfkzvllcnpcnaizx.supabase.co/functions/v1/landing-page-event";
  // Capture ?src= and utm_* on first hit, cache for the session, forward on
  // every CTA. Canonical URL is left untouched in the browser bar.
  var s="";
  var utm={};
  var UK=["utm_source","utm_medium","utm_campaign","utm_content","utm_term"];
  try{
    var qp=new URL(location.href).searchParams;
    var q=qp.get("src");
    if(q){s=q.slice(0,32);try{sessionStorage.setItem("aztrix_src",s)}catch(e){}}
    else{try{s=sessionStorage.getItem("aztrix_src")||""}catch(e){}}
    var hit=false;
    for(var i=0;i<UK.length;i++){var v=qp.get(UK[i]);if(v){utm[UK[i]]=v.slice(0,64);hit=true}}
    if(hit){try{sessionStorage.setItem("aztrix_utm",JSON.stringify(utm))}catch(e){}}
    else{try{utm=JSON.parse(sessionStorage.getItem("aztrix_utm")||"{}")}catch(e){utm={}}}
  }catch(e){}
  document.addEventListener("click",function(e){
    var a=e.target.closest("[data-cta]");
    if(!a)return;
    var t=a.getAttribute("data-cta");
    if(!t)return;
    var p={domain:d,event:t};if(s)p.source=s;
    for(var j=0;j<UK.length;j++){if(utm[UK[j]])p[UK[j]]=utm[UK[j]]}
    var b=JSON.stringify(p);
    if(navigator.sendBeacon){navigator.sendBeacon(u,new Blob([b],{type:"application/json"}))}
    else{fetch(u,{method:"POST",body:b,headers:{"Content-Type":"application/json"},keepalive:true}).catch(function(){})}
  });
})();
(function(){
  var k=["mon","tue","wed","thu","fri","sat","sun"];
  var d=new Date().getDay();
  var t=k[d===0?6:d-1];
  var r=document.querySelector('tr[data-day="'+t+'"]');
  if(r)r.classList.add("hours-today");
})();
(function(){
  var DARK={
    "--bg-base":"#0A0A0A","--bg-surface":"#111827","--bg-elevated":"#1F2937",
    "--bg-glass":"rgba(255,255,255,0.05)","--border-glass":"rgba(255,255,255,0.10)",
    "--text-primary":"#F8FAFC","--text-secondary":"#94A3B8","--text-tertiary":"#666666",
    "--icon-bg-muted":"rgba(255,255,255,0.06)","--shadow-card":"none"
  };
  var LIGHT={
    "--bg-base":"#F9F9F9","--bg-surface":"#FFFFFF","--bg-elevated":"#F3F4F6",
    "--bg-glass":"rgba(0,0,0,0.03)","--border-glass":"rgba(0,0,0,0.08)",
    "--text-primary":"#1E293B","--text-secondary":"#64748B","--text-tertiary":"#94A3B8",
    "--icon-bg-muted":"rgba(0,0,0,0.04)","--shadow-card":"0 1px 3px rgba(0,0,0,0.08)"
  };
  var key="aztrix-theme-"+"maisonaurora.eu";
  var def="dark";
  var cur=localStorage.getItem(key)||def;
  var sun=document.getElementById("theme-icon-sun");
  var moon=document.getElementById("theme-icon-moon");
  function apply(theme){
    var vars=theme==="light"?LIGHT:DARK;
    var root=document.documentElement;
    for(var p in vars)root.style.setProperty(p,vars[p]);
    sun.style.display=theme==="light"?"none":"";
    moon.style.display=theme==="light"?"":"none";
    localStorage.setItem(key,theme);
    cur=theme;
  }
  if(cur!==def)apply(cur);
  document.getElementById("theme-toggle").addEventListener("click",function(){
    apply(cur==="light"?"dark":"light");
  });
})();
</script>

<!-- Cart bar -->
<div class="cart-bar" id="cart-bar">
  <div class="cart-bar-info"><span id="cart-count">0</span> items &middot; <span id="cart-total">&euro;0.00</span></div>
  <button class="cart-bar-btn" id="cart-view-btn">View order</button>
</div>

<!-- Variant picker modal -->
<div class="variant-overlay" id="variant-overlay">
  <div class="variant-sheet">
    <div class="variant-title" id="variant-title"></div>
    <div id="variant-options"></div>
    <button class="variant-add-btn" id="variant-add-btn" disabled>Add to order</button>
  </div>
</div>

<!-- Cart review modal -->
<div class="variant-overlay" id="cart-overlay">
  <div class="variant-sheet">
    <div class="variant-title">Jouw bestelling</div>
    <div id="cart-items"></div>
    <div style="display:flex;justify-content:space-between;align-items:center;padding:0.75rem 0;border-top:1px solid var(--border-glass);margin-top:0.5rem;">
      <div style="color:var(--text-primary);font-weight:700;">Totaal</div>
      <div style="color:var(--accent);font-weight:700;font-size:1.1rem;" id="cart-review-total"></div>
    </div>
    <button class="variant-add-btn" id="cart-checkout-btn">Bestelling plaatsen</button>
    <button class="variant-add-btn" id="cart-close-btn" style="background:transparent;color:var(--text-secondary);border:1px solid var(--border-glass);margin-top:0.5rem;">Verder winkelen</button>
    <button class="variant-add-btn" id="cart-empty-btn" style="background:transparent;color:#dc2626;border:1px solid rgba(220,38,38,0.3);margin-top:0.5rem;">Mandje legen</button>
  </div>
</div>

<!-- Empty cart confirmation modal -->
<div class="variant-overlay" id="cart-empty-confirm-overlay">
  <div class="variant-sheet">
    <div class="variant-title">Mandje legen?</div>
    <p style="color:var(--text-secondary);margin:0 0 1rem 0;font-size:0.95rem;">Hiermee verwijder je alle items uit je bestelling.</p>
    <button class="variant-add-btn" id="cart-empty-confirm-btn" style="background:#dc2626;color:#fff;">Ja, mandje legen</button>
    <button class="variant-add-btn" id="cart-empty-cancel-btn" style="background:transparent;color:var(--text-secondary);border:1px solid var(--border-glass);margin-top:0.5rem;">Annuleren</button>
  </div>
</div>

<script>
(function(){
  var catalog=window.__menuCatalog||[];
  if(!catalog.length)return;
  var catalogMap={};
  catalog.forEach(function(i){catalogMap[i.id]=i});

  // Cart state
  var cart=JSON.parse(localStorage.getItem('aztrix_cart_'+location.hostname)||'[]');
  var listingId=document.getElementById('menu-section')?.getAttribute('data-listing-id')||'';

  function saveCart(){localStorage.setItem('aztrix_cart_'+location.hostname,JSON.stringify(cart))}

  function updateBar(){
    var count=0,total=0;
    cart.forEach(function(c){count+=c.qty;total+=c.price*c.qty});
    document.getElementById('cart-count').textContent=count;
    document.getElementById('cart-total').textContent=catalog[0]?.currency==='USD'?'$'+total.toFixed(2):'\u20AC'+total.toFixed(2);
    document.getElementById('cart-bar').classList.toggle('visible',count>0);
  }

  function addToCart(itemId,variantId,variantLabel,price){
    var key=itemId+(variantId?':'+variantId:'');
    var existing=cart.find(function(c){return c.key===key});
    if(existing){existing.qty++}
    else{
      var item=catalogMap[itemId];
      cart.push({key:key,itemId:itemId,variantId:variantId||null,title:item.title+(variantLabel?' ('+variantLabel+')':''),price:price,qty:1,currency:item.currency});
    }
    saveCart();updateBar();
  }

  function removeFromCart(key){
    var idx=cart.findIndex(function(c){return c.key===key});
    if(idx===-1)return;
    if(cart[idx].qty>1)cart[idx].qty--;
    else cart.splice(idx,1);
    saveCart();updateBar();renderCartReview();
  }

  function addQty(key){
    var item=cart.find(function(c){return c.key===key});
    if(item)item.qty++;
    saveCart();updateBar();renderCartReview();
  }

  // Variant picker
  var pickerItemId=null;
  var pickerSelection={};

  function showVariantPicker(itemId){
    var item=catalogMap[itemId];
    if(!item||!item.options||!item.options.length)return;
    pickerItemId=itemId;
    pickerSelection={};
    document.getElementById('variant-title').textContent=item.title;
    var html='';
    item.options.forEach(function(opt){
      html+='<div class="variant-group"><div class="variant-group-label">'+esc(opt.name)+'</div>';
      (opt.values||[]).forEach(function(val){
        var v=item.variants?.find(function(vr){return vr.options?.some(function(o){return o.name===opt.name&&o.value===val})});
        var priceStr=v?('\u20AC'+Number(v.price).toFixed(2)):'';
        html+='<div class="variant-option" data-opt="'+esc(opt.name)+'" data-val="'+esc(val)+'">'+esc(val)+(priceStr?'<span class="variant-option-price">'+priceStr+'</span>':'')+'</div>';
      });
      html+='</div>';
    });
    document.getElementById('variant-options').innerHTML=html;
    document.getElementById('variant-add-btn').disabled=true;
    document.getElementById('variant-overlay').classList.add('visible');
  }

  function esc(s){return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;')}

  document.getElementById('variant-options')?.addEventListener('click',function(e){
    var opt=e.target.closest('.variant-option');
    if(!opt)return;
    var name=opt.getAttribute('data-opt');
    var val=opt.getAttribute('data-val');
    pickerSelection[name]=val;
    // Highlight selected
    opt.parentElement.querySelectorAll('.variant-option').forEach(function(o){o.classList.remove('selected')});
    opt.classList.add('selected');
    // Enable add button if all options selected
    var item=catalogMap[pickerItemId];
    var allSelected=item.options.every(function(o){return pickerSelection[o.name]});
    document.getElementById('variant-add-btn').disabled=!allSelected;
  });

  document.getElementById('variant-add-btn')?.addEventListener('click',function(){
    var item=catalogMap[pickerItemId];
    if(!item)return;
    // Find matching variant by selected options
    var variant=null;
    if(item.variants){
      variant=item.variants.find(function(v){
        return v.options?.every(function(o){return pickerSelection[o.name]===o.value});
      });
    }
    var price=variant?variant.price:item.price;
    var variantId=variant?.id||null;
    var label=Object.values(pickerSelection).join(', ');
    addToCart(pickerItemId,variantId,label,price);
    document.getElementById('variant-overlay').classList.remove('visible');
  });

  document.getElementById('variant-overlay')?.addEventListener('click',function(e){
    if(e.target===this)this.classList.remove('visible');
  });

  // Add to order buttons
  document.addEventListener('click',function(e){
    var btn=e.target.closest('.menu-add-btn');
    if(!btn)return;
    var id=btn.getAttribute('data-add');
    if(btn.getAttribute('data-has-variants')){
      showVariantPicker(id);
    }else{
      var item=catalogMap[id];
      if(item)addToCart(id,null,null,item.price);
    }
  });

  // Cart review
  function renderCartReview(){
    var html='';
    cart.forEach(function(c){
      html+='<div class="cart-review-item"><div style="flex:1;min-width:0"><div class="menu-item-name" style="font-size:0.85rem">'+esc(c.title)+'</div><div style="color:var(--accent);font-size:0.8rem;font-weight:700">\u20AC'+Number(c.price*c.qty).toFixed(2)+'</div></div>';
      html+='<div class="cart-qty-ctrl"><button class="cart-qty-btn" data-minus="'+esc(c.key)+'">&minus;</button><span class="cart-qty">'+c.qty+'</span><button class="cart-qty-btn" data-plus="'+esc(c.key)+'">+</button></div></div>';
    });
    document.getElementById('cart-items').innerHTML=html;
    var total=0;cart.forEach(function(c){total+=c.price*c.qty});
    document.getElementById('cart-review-total').textContent='\u20AC'+total.toFixed(2);
  }

  document.getElementById('cart-view-btn')?.addEventListener('click',function(){
    renderCartReview();
    document.getElementById('cart-overlay').classList.add('visible');
  });

  document.getElementById('cart-items')?.addEventListener('click',function(e){
    var minus=e.target.closest('[data-minus]');
    var plus=e.target.closest('[data-plus]');
    if(minus)removeFromCart(minus.getAttribute('data-minus'));
    if(plus)addQty(plus.getAttribute('data-plus'));
  });

  document.getElementById('cart-close-btn')?.addEventListener('click',function(){
    document.getElementById('cart-overlay').classList.remove('visible');
  });

  document.getElementById('cart-empty-btn')?.addEventListener('click',function(){
    if(!cart.length)return;
    document.getElementById('cart-empty-confirm-overlay').classList.add('visible');
  });

  document.getElementById('cart-empty-cancel-btn')?.addEventListener('click',function(){
    document.getElementById('cart-empty-confirm-overlay').classList.remove('visible');
  });

  document.getElementById('cart-empty-confirm-btn')?.addEventListener('click',function(){
    cart=[];
    saveCart();
    updateBar();
    document.getElementById('cart-empty-confirm-overlay').classList.remove('visible');
    document.getElementById('cart-overlay').classList.remove('visible');
  });

  document.getElementById('cart-empty-confirm-overlay')?.addEventListener('click',function(e){
    if(e.target===this)this.classList.remove('visible');
  });

  document.getElementById('cart-overlay')?.addEventListener('click',function(e){
    if(e.target===this)this.classList.remove('visible');
  });

  document.getElementById('cart-checkout-btn')?.addEventListener('click',function(){
    if(!cart.length)return;
    // Build checkout URL with cart data
    var params=new URLSearchParams();
    params.set('merchant_id',listingId);
    params.set('items',JSON.stringify(cart.map(function(c){return{item_id:c.itemId,variant_id:c.variantId,quantity:c.qty}})));
    window.location.href='/checkout?'+params.toString();
  });

  // Clear cart if redirected from cancel
  if(new URLSearchParams(location.search).get('clear_cart')==='1'){
    cart=[];saveCart();
    history.replaceState(null,'',location.pathname);
  }

  updateBar();
})();
</script>
</body>
</html>