/* --------------------------
   Theme variables (luxueus rood-goud-groen)
   -------------------------- */
:root {
    --primary: #C1121F;        /* Diep luxe rood (knoppen, logo, CTA's) */
    --secondary: #004225;      /* Donkergroen (achtergronden, accenten) */
    --accent: #C9A84A;         /* Goudkleurige highlights en details */
    --text: #1B1B1B;           /* Standaard tekstkleur */
    --light-background: #FFFFFF;
    --dark-background: #F5F5F5;

    --radius: 14px;
    --shadow: 0 10px 30px rgba(0,0,0,.08);
    --maxw: 1200px;
    --muted: rgba(27,27,27,0.6);
    --card: #fff;
    --glass: rgba(255,255,255,0.06);
}

/* Donkere modus */
[data-theme="dark"] {
    --primary: #E85A70;
    --secondary: #00A86B;
    --accent: #E5C67C;
    --text: #F5F5F5;
    --light-background: #121212;
    --dark-background: #1F1F1F;
    --shadow: 0 10px 30px rgba(255,255,255,0.04);
    --muted: rgba(245,245,245,0.7);
    --card: #181818;
    --glass: rgba(255,255,255,0.03);
}

/* =======================
   Base
   ======================= */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Poppins', Arial, sans-serif;
  color:var(--text);
  background: linear-gradient(180deg,var(--light-background), #efece8 1200px);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  line-height:1.45;
  -webkit-text-size-adjust:100%;
}
a{color:inherit}
.container{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}

/* =======================
   Header
   ======================= */
header{
  position:sticky;top:0;z-index:120;
  backdrop-filter: blur(6px);
  background: linear-gradient(90deg, rgba(255,255,255,0.85), rgba(255,255,255,0.65));
  border-bottom:1px solid rgba(0,0,0,0.04);
}
[data-theme="dark"] header{
  background: linear-gradient(90deg, rgba(10,10,10,0.9), rgba(10,10,10,0.5));
  border-bottom:1px solid rgba(255,255,255,0.04);
}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:0.9rem 0}
.brand{display:flex;gap:.8rem;align-items:center}
.logo{width:56px;height:56px;border-radius:10px;overflow:hidden;box-shadow:var(--shadow);flex:0 0 56px}
.logo img{width:100%;height:100%;object-fit:cover;display:block}
.brand-text h1{font-family:'Playfair Display',serif;margin:0;font-size:1.05rem;color:var(--primary)}
.subtitle{font-size:.85rem;color:var(--muted)}

/* Main nav */
nav.main{display:flex;gap:1rem;align-items:center}
nav.main a{padding:.45rem .7rem;border-radius:8px;font-weight:600;text-decoration:none;color:var(--secondary)}
nav.main a:hover{background:var(--glass);color:var(--primary)}

/* actions */
.actions{display:flex;gap:.6rem;align-items:center}
.theme-btn{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.theme-switch{width:48px;height:26px;border-radius:999px;background:var(--accent);position:relative;box-shadow:inset 0 -3px rgba(0,0,0,0.06)}
.theme-switch .knob{width:20px;height:20px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .25s}
[data-theme="dark"] .theme-switch .knob{transform:translateX(22px)}
.mini-cart{position:relative;cursor:pointer;padding:.25rem .5rem;border-radius:8px;color:var(--text)}
.cart-count{background:var(--primary);color:#fff;padding:3px 7px;border-radius:999px;font-weight:700;margin-left:.4rem;font-size:.85rem}

/* =======================
   Hero
   ======================= */
.hero{
  margin:1.25rem 0;border-radius:18px;overflow:hidden;position:relative;min-height:520px;box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--secondary), rgba(0,0,0,0.12));
  color: #fff;
}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0.45}
.hero .overlay{position:relative;z-index:2;text-align:center;padding:2.4rem 1rem;max-width:1100px}
.hero-badges{display:flex;gap:.6rem;justify-content:center;margin-bottom:.6rem}
.pill{background:rgba(0,0,0,0.35);padding:.45rem .7rem;border-radius:8px;font-weight:700}
.pill.neutral{background:rgba(0,0,0,0.22)}
.hero h2{font-family:'Playfair Display',serif;font-size:2.8rem;margin:0;line-height:1.02;color:#fff}
.highlight{color:var(--accent);font-weight:700}
.hero p{margin-top:.6rem;color:rgba(255,255,255,0.95);font-size:1.05rem;max-width:880px;margin-left:auto;margin-right:auto}
.hero .cta{margin-top:1rem;display:flex;gap:.8rem;justify-content:center}
.btn{font-weight:700;border-radius:12px;padding:.9rem 1.2rem;border:none;cursor:pointer}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 12px 28px rgba(0,0,0,0.12)}
.btn.primary:hover{background:color-mix(in srgb, var(--primary) 80%, black 10%)}
.btn.ghost{background:transparent;border:2px solid rgba(255,255,255,0.18);color:#fff;padding:.75rem 1rem;border-radius:10px}

/* small buttons used inside cards */
button.small{background:var(--primary);color:#fff;padding:.36rem .5rem;border-radius:8px;border:none;cursor:pointer}

/* =======================
   Trustbar
   ======================= */
.trustbar{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin:1rem 0}
.trust-item{background:var(--card);padding:.8rem 1rem;border-radius:12px;display:flex;gap:.6rem;align-items:center;box-shadow:var(--shadow);color:var(--text)}
.trust-item .badge{width:36px;height:36px;border-radius:8px;background:linear-gradient(90deg,var(--secondary),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}

/* =======================
   Sections, grid & cards
   ======================= */
.section{margin:2rem 0;padding:0 0.2rem}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}
.section-head h3{font-family:'Playfair Display',serif;margin:0;color:var(--secondary);font-size:1.3rem}
.section-sub{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.card{background:var(--card);padding:1rem;border-radius:12px;overflow:hidden;position:relative;box-shadow:var(--shadow);transition:transform .28s,box-shadow .28s}
.card:hover{transform:translateY(-8px)}
.card img{width:100%;height:160px;object-fit:cover;border-radius:8px}
.card h4{margin:.6rem 0 0;color:var(--primary)}
.card p{color:var(--muted);margin:.35rem 0}
.tooltip{position:absolute;left:50%;transform:translateX(-50%) translateY(8px);bottom:10px;background:var(--card);padding:.6rem;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,0.12);opacity:0;transition:transform .22s,opacity .22s;pointer-events:none;width:220px;text-align:left}
.card:hover .tooltip{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(-6px)}

/* Spotlight */
.spotlight{display:grid;grid-template-columns:1fr 420px;gap:1rem;align-items:stretch}
.spot-img{border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.spot-img img{width:100%;height:100%;object-fit:cover;display:block}
.spot-body{background:var(--card);padding:1.1rem;border-radius:12px;box-shadow:var(--shadow)}
.price{color:var(--accent);font-weight:800;font-size:1.15rem;margin-top:.6rem}
.specs{color:var(--muted);margin-top:.6rem;padding-left:1rem}
.spot-actions{margin-top:1rem;display:flex;gap:.6rem}

/* promos & quick order */
.promos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.promo{background:linear-gradient(180deg,#fff8f2,#fff5ee);padding:1rem;border-radius:12px;border:1px solid rgba(0,0,0,0.03)}
.quick-order{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow)}
.grid-2col{display:grid;grid-template-columns:1fr 340px;gap:1rem;align-items:start}

/* form elements */
input, select {padding:.7rem;border-radius:8px;border:1px solid #eee;margin:.4rem 0;width:100%}
input[type="number"]{width:120px}

/* aside info */
.aside-info{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow)}

/* reviews */
.carousel-wrap{display:flex;align-items:center;gap:.8rem}
.carousel{display:flex;gap:1rem;overflow:hidden;padding-bottom:.6rem;will-change:transform}
.testimonial{min-width:320px;background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow);color:var(--text)}
.carousel-controls{display:flex;flex-direction:column;gap:.6rem}

/* social grid */
.social-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}
.social-grid img{width:100%;height:120px;object-fit:cover;border-radius:10px;display:block}

/* loyalty & newsletter */
.retain-grid{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.card.loyalty{flex:1;min-width:260px}
.newsletter{display:flex;gap:.6rem;align-items:center;padding:.8rem;border-radius:12px;background:linear-gradient(180deg,#fff,#fcfbf9);box-shadow:var(--shadow)}
.newsletter input{flex:1}

/* FAQ */
.faq{display:grid;gap:.6rem}
.qa{background:var(--card);padding:.9rem;border-radius:10px;cursor:pointer;box-shadow:var(--shadow)}
.qa .answer{display:none;color:var(--muted);margin-top:.5rem}

/* footer CTA */
.footer-cta{margin:2rem 0}
.cta-panel{background:linear-gradient(90deg, rgba(201,168,74,0.08), rgba(163,31,36,0.02));padding:1rem;border-radius:12px;display:flex;justify-content:space-between;align-items:center}
.badge-pill{background:var(--accent);padding:.4rem;border-radius:8px;font-weight:700;color:#111;margin-right:.4rem}
.badge-pill.alt{background:var(--secondary);color:#fff}

/* footer */
footer{margin-top:2.2rem;background:linear-gradient(90deg,var(--secondary),#003827);color:#fff;padding:1.6rem;border-radius:12px}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:start}
.gold{color:var(--accent)}

/* small utilities & responsive hint */
.small{font-size:.9rem;padding:.35rem .5rem}
.muted{color:var(--muted)}

/* focus */
button:focus,input:focus,select:focus,a:focus{outline:3px solid rgba(201,168,74,0.12);outline-offset:2px}
