/* ==================================================================
   AHNENKRAFT Shop — shared stylesheet
   Palette and type ported from the original AHNENKRAFT brand page.
   ================================================================== */

:root{
  --forest:#1c3529;
  --forest-dark:#0f2019;
  --ivory:#f6f1e6;
  --paper:#efe9db;
  --beige:#e9e0cc;
  --gold:#b3915c;
  --gold-soft:#cbb287;
  --charcoal:#1c1a16;
  --green-accent:#4f6e56;
  --green-mist:#e3e9df;
  --line:rgba(28,26,22,0.12);
  --line-on-dark:rgba(246,241,230,0.16);
  --radius-s:3px;
  --radius-m:8px;
  --shadow-card:0 20px 40px -24px rgba(15,32,25,0.35);
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:64px;
  --danger:#8a3a2c;
  --success:#2f5c3d;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--charcoal);
  font-family:'Manrope',sans-serif; font-weight:400; -webkit-font-smoothing:antialiased;
}
.reveal{opacity:1; transform:none;}
.reveal.pre{opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.pre.in{opacity:1; transform:translateY(0);}

/* ---------- Generated placeholder: icon + subtle "blending leaves" ---------- */
.icon-visual{position:relative; display:inline-flex; align-items:center; justify-content:center; width:100%; height:100%; overflow:hidden;}
.icon-visual-fg{position:relative; z-index:2;}
.leaf-drift-a, .leaf-drift-b{position:absolute; top:50%; left:50%; z-index:1; pointer-events:none; will-change:transform;}
.leaf-drift-a{opacity:.22; animation:leafDriftA 18s ease-in-out infinite;}
.leaf-drift-b{opacity:.16; animation:leafDriftB 23s ease-in-out infinite;}
@keyframes leafDriftA{
  0%{transform:translate(-68%,-56%) rotate(-10deg) scale(1);}
  50%{transform:translate(-36%,-46%) rotate(12deg) scale(1.18);}
  100%{transform:translate(-68%,-56%) rotate(-10deg) scale(1);}
}
@keyframes leafDriftB{
  0%{transform:translate(-34%,-46%) rotate(14deg) scale(1.08);}
  50%{transform:translate(-60%,-54%) rotate(-8deg) scale(0.88);}
  100%{transform:translate(-34%,-46%) rotate(14deg) scale(1.08);}
}
.product-photo{width:100%; height:100%; object-fit:cover; display:block;}
h1,h2,h3,.serif{font-family:'Fraunces',serif; font-weight:400; letter-spacing:-0.01em;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
img,svg{display:block; max-width:100%;}
input,select,textarea{font-family:inherit; font-size:14px;}

.container{max-width:1440px; margin:0 auto; padding:0 clamp(16px,2.4vw,40px);}
.eyebrow{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--green-accent); font-weight:700;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 24px; font-size:12.5px; letter-spacing:0.06em; border-radius:3px; transition:all .25s var(--ease); white-space:nowrap; font-weight:700;}
.btn-primary{background:var(--forest); color:var(--ivory);}
.btn-primary:hover{background:var(--forest-dark); transform:translateY(-1px);}
.btn-primary:disabled{opacity:.5; cursor:not-allowed; transform:none;}
.btn-ghost{border:1px solid var(--charcoal); color:var(--charcoal);}
.btn-ghost:hover{background:var(--charcoal); color:var(--ivory);}
.btn-block{display:flex; width:100%;}
.btn-sm{padding:8px 14px; font-size:11px;}

/* ---------- HEADER (fixed, glass, darkens on scroll) ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200; height:var(--header-h);
  display:flex; align-items:center;
  background:linear-gradient(180deg, rgba(15,32,25,0.88), rgba(15,32,25,0.72));
  backdrop-filter:blur(10px) saturate(140%); -webkit-backdrop-filter:blur(10px) saturate(140%);
  border-bottom:1px solid rgba(246,241,230,0.1);
  transition:background .4s var(--ease);
}
.site-header.scrolled{background:rgba(15,32,25,0.96);}
.header-inner{max-width:1440px; margin:0 auto; width:100%; padding:0 clamp(16px,2.4vw,40px); display:flex; align-items:center; justify-content:space-between; gap:20px;}
.wordmark{display:flex; align-items:center; gap:12px;}
.wordmark img{height:34px; width:auto; display:block;}
.swiss-tag{font-size:9px; letter-spacing:0.07em; text-transform:uppercase; color:var(--gold-soft); opacity:.85; font-weight:600; border-left:1px solid rgba(246,241,230,0.2); padding-left:12px; white-space:nowrap;}
.main-nav{display:flex; align-items:center; gap:22px;}
.main-nav a{color:var(--ivory); font-size:13px; font-weight:600; opacity:.88; display:flex; align-items:center; gap:6px;}
.main-nav a:hover{opacity:1;}
.icon-btn{width:24px; height:24px; opacity:.9; position:relative; display:flex; flex-shrink:0;}
.icon-btn:hover{opacity:1;}
.icon-btn svg{width:100%; height:100%;}
.bag-count{position:absolute; top:-8px; right:-10px; background:var(--gold); color:var(--forest-dark); font-size:10px; min-width:17px; height:17px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; padding:0 4px;}
@keyframes bagBounce{
  0%{transform:scale(1) rotate(0deg);}
  25%{transform:scale(1.3) rotate(-12deg);}
  50%{transform:scale(0.92) rotate(8deg);}
  75%{transform:scale(1.12) rotate(-4deg);}
  100%{transform:scale(1) rotate(0deg);}
}
.icon-btn.bag-pop svg{animation:bagBounce .55s var(--ease);}
.icon-btn.bag-pop .bag-count{animation:bagBounce .55s var(--ease);}
@media (max-width:640px){ .swiss-tag{display:none;} }

/* ---------- Mobile app-style bottom tab bar (replaces the text nav on small screens) ---------- */
.mobile-tabbar{display:none;}
@media (max-width:760px){
  .header-inner{justify-content:center;}
  .main-nav{display:none;}
  .mobile-tabbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:200;
    background:rgba(15,32,25,0.97); backdrop-filter:blur(10px) saturate(140%); -webkit-backdrop-filter:blur(10px) saturate(140%);
    border-top:1px solid rgba(246,241,230,0.12);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom)) 4px;
  }
  .site-main{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  .float-cart{bottom:calc(76px + env(safe-area-inset-bottom)) !important;}
}
.tabbar-item{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  padding:6px 2px; color:var(--ivory); opacity:.62; min-width:0;
}
.tabbar-item.active{opacity:1;}
.tabbar-icon{width:21px; height:21px; flex-shrink:0;}
.tabbar-icon-wrap{position:relative; display:inline-flex;}
.tabbar-label{font-size:10px; font-weight:700; letter-spacing:0.01em; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;}
.tabbar-badge{position:absolute; top:-6px; right:-9px; background:var(--gold); color:var(--forest-dark); font-size:9.5px; min-width:15px; height:15px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; padding:0 3px;}
.tabbar-item.bag-pop .tabbar-icon, .tabbar-item.bag-pop .tabbar-badge{animation:bagBounce .55s var(--ease);}
/* Icon-only fallback for very narrow phones — labels drop, icons stay centered */
@media (max-width:360px){ .tabbar-label{display:none;} .tabbar-item{gap:0;} }

/* ---------- Footer language switcher (flags) ---------- */
.footer-lang{display:flex; gap:10px; margin-top:14px;}
.footer-lang-flag{display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; letter-spacing:0.04em; opacity:.6; padding:4px 2px;}
.footer-lang-flag:hover{opacity:.85;}
.footer-lang-flag.active{opacity:1; text-decoration:underline;}
.flag-emoji{font-size:16px; line-height:1;}

.site-main{min-height:60vh; padding-top:var(--header-h);}

/* ---------- HERO (dashboard-style, full-bleed with leaf artwork) ---------- */
.hero{position:relative; padding:88px 0 64px; overflow:hidden; background:linear-gradient(115deg, #1a3226 0%, #24402f 45%, #1a3226 100%); color:var(--ivory);}
.hero::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 82% 15%, rgba(179,145,92,0.18), transparent 55%), radial-gradient(ellipse at 100% 100%, rgba(246,241,230,0.08), transparent 60%); pointer-events:none;}
.hero-leaf{position:absolute; opacity:0.16; pointer-events:none;}
.hero-leaf svg{stroke:var(--ivory) !important;}
.hero-leaf-1{top:-30px; right:6%; width:220px;}
.hero-leaf-1 svg{width:220px !important; height:238px !important;}
.hero-leaf-2{bottom:-40px; right:20%; width:140px; transform:rotate(18deg);}
.hero-leaf-2 svg{width:140px !important; height:151px !important;}
@media (max-width:900px){.hero-leaf{display:none;}}
.hero .container{position:relative; z-index:1;}
.hero h1{font-size:clamp(30px,4.4vw,50px); line-height:1.08; max-width:20ch; margin:0 0 16px; font-weight:300;}
.hero p.sub{max-width:54ch; font-size:14.5px; line-height:1.65; color:rgba(246,241,230,0.86); margin:0 0 26px; font-weight:300;}
.hero-cta-row{display:flex; gap:12px; flex-wrap:wrap;}
.btn-ghost-light{border:1px solid rgba(246,241,230,0.55); color:var(--ivory); background:transparent;}
.btn-ghost-light:hover{background:var(--ivory); color:var(--forest-dark);}

/* ---------- Dashboard main grid (discovery card + browse column) ---------- */
.main-grid{display:grid; grid-template-columns:1fr 380px; gap:28px; align-items:start;}
@media (max-width:980px){.main-grid{grid-template-columns:1fr;}}
.col-left{min-width:0;}
.col-right{position:relative; min-width:0;}
@media (min-width:981px){.col-right{position:sticky; top:calc(var(--header-h) + 20px);}}

.block{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px clamp(16px,2vw,26px); margin-bottom:22px;}
.block-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:16px; flex-wrap:wrap;}
.block-head h2{font-size:19px; margin:4px 0 0; font-weight:400;}
.block-head .see-all{font-size:11.5px; font-weight:700; letter-spacing:0.04em; text-decoration:underline; white-space:nowrap;}

/* ---------- Finder tabs (use-case browsing) ---------- */
.finder-tabs{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px;}
.finder-tab{padding:8px 14px; border:1px solid rgba(28,26,22,0.16); border-radius:100px; font-size:11.5px; font-weight:700; background:transparent; color:var(--charcoal); transition:all .2s;}
.finder-tab:hover{border-color:var(--forest);}
.finder-tab.active{background:var(--forest); border-color:var(--forest); color:var(--ivory);}
.finder-panel{display:none;}
.finder-panel.active{display:block;}
.finder-empty{font-size:13px; color:rgba(28,26,22,0.5); padding:8px 0;}

/* ---------- Mini product rows (inside finder panels — horizontal scroll) ---------- */
.mini-row{display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; -webkit-overflow-scrolling:touch;}
.mini-row::-webkit-scrollbar{height:4px;}
.mini-row::-webkit-scrollbar-thumb{background:rgba(28,26,22,0.15); border-radius:4px;}
.mini-card{flex:0 0 190px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; display:flex; flex-direction:column; transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.mini-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-card);}
.mini-card-img{height:110px; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at 35% 20%, var(--green-mist), #dfe6da 78%);}
.mini-card-img svg{width:48px !important; height:auto !important;}
.mini-card-body{padding:13px 14px 15px; display:flex; flex-direction:column; gap:5px;}
.mini-card .cat{font-size:9px; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold); font-weight:700;}
.mini-card h4{font-family:'Fraunces',serif; font-weight:400; font-size:13.5px; margin:0; line-height:1.3; min-height:34px;}
.mini-card p.mini-price{font-size:12px; font-weight:700; margin:0 0 4px;}
.mini-card .go{display:block; text-align:center; padding:8px; font-size:10px; font-weight:700; letter-spacing:0.05em; border-top:1px solid var(--line); margin-top:auto;}
.mini-card .go:hover{background:var(--charcoal); color:var(--ivory);}

/* ---------- Plant grid ("Entdecke die Pflanzenwelt") ---------- */
.plant-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px;}
@media (max-width:980px){.plant-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:560px){.plant-grid{grid-template-columns:repeat(2,1fr);}}
.plant-tile{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:18px 10px; text-align:center; cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.plant-tile:hover{transform:translateY(-3px); box-shadow:var(--shadow-card);}
.plant-tile-trigger{display:block; width:100%; background:none; border:none; padding:0; text-align:center; cursor:pointer; color:inherit; font:inherit;}
.plant-tile .icon-wrap{display:flex; align-items:center; justify-content:center; margin:0 auto 10px;}
.plant-tile .icon-wrap svg{width:34px !important; height:auto !important;}
.plant-tile .de{font-size:12.5px; font-weight:700; margin:0 0 2px;}
.plant-tile .lat{font-size:10.5px; font-style:italic; color:rgba(28,26,22,0.5); margin:0 0 8px;}
.plant-tile .go{font-size:9.5px; font-weight:700; letter-spacing:0.05em; text-decoration:underline;}

/* ---------- CTA strip (bottle trio) ---------- */
.cta-strip{display:flex; align-items:center; gap:28px; background:var(--forest); color:var(--ivory); border-radius:var(--radius-m); padding:30px clamp(20px,3vw,40px); flex-wrap:wrap;}
.cta-strip-bottles{display:flex; gap:4px; flex-shrink:0;}
.cta-strip-bottles svg{width:56px !important; height:auto !important;}
.cta-strip-text{flex:1; min-width:220px;}
.cta-strip-text h3{font-size:19px; margin:0 0 6px; font-weight:400;}
.cta-strip-text p{font-size:13px; color:rgba(246,241,230,0.8); margin:0 0 16px; max-width:46ch;}

/* ---------- Discovery card (sticky right column, two-column 44/56 panels) ---------- */
.discovery-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; box-shadow:var(--shadow-card);}
.discovery-panel{display:none;}
.discovery-panel.active{display:grid; grid-template-columns:44% 56%;}
@media (max-width:1080px) and (min-width:641px){.discovery-panel.active{grid-template-columns:38% 62%;}}
@media (max-width:640px){.discovery-panel.active{grid-template-columns:1fr;}}
.discovery-visual{background:radial-gradient(ellipse at 35% 20%, var(--green-mist), var(--beige) 80%); display:flex; align-items:center; justify-content:center; padding:26px 16px;}
.discovery-visual svg{width:88px !important; height:auto !important;}
.discovery-info{padding:22px 22px 20px;}
.discovery-info .cat{font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); font-weight:700;}
.discovery-info h3{font-size:21px; margin:8px 0 2px; line-height:1.15;}
.discovery-info .lat{font-size:11.5px; font-style:italic; color:rgba(28,26,22,0.5); margin:0 0 10px;}
.discovery-info .desc{font-size:13px; line-height:1.58; color:rgba(28,26,22,0.68); margin:0 0 14px;}
.discovery-info .price-row{font-family:'Fraunces',serif; font-size:20px; margin-bottom:12px;}
.discovery-qty-cta-row{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px;}
.discovery-qty-cta-row .qty-box{flex-shrink:0;}
.discovery-qty-cta-row .qty-box button{width:28px; height:34px; font-size:14px;}
.discovery-qty-cta-row .qty-box input{width:32px; font-size:13px;}
.discovery-qty-cta-row .btn{flex:1;}
.discovery-links-row{display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; margin-top:10px; font-size:11px;}
.discovery-links-row a{text-decoration:underline; color:rgba(28,26,22,0.6);}
.discovery-foot{display:flex; align-items:center; justify-content:center; gap:14px; padding:12px; border-top:1px solid var(--line); font-size:11px; letter-spacing:0.06em; color:rgba(28,26,22,0.55); font-weight:600;}
.nav-arrows{display:flex; align-items:center; gap:12px;}
.nav-arrows button{width:26px; height:26px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:50%; font-size:13px; background:var(--ivory); transition:all .2s;}
.nav-arrows button:hover{background:var(--charcoal); color:var(--ivory); border-color:var(--charcoal);}

/* ---------- Club banner (compact, membership / Rezeptur Designer CTA) ---------- */
.club-banner{background:linear-gradient(120deg,#0f2019,#1c3529); color:var(--ivory); border-radius:var(--radius-m); padding:22px 24px; display:flex; flex-direction:column; align-items:flex-start; gap:4px;}
.club-banner .eyebrow{color:var(--gold-soft);}
.club-banner h3{font-size:17px; font-weight:500; margin:6px 0 4px; font-family:'Manrope',sans-serif;}
.club-banner p{font-size:12px; color:rgba(246,241,230,0.7); margin:0 0 8px; line-height:1.55;}
.club-banner .price-tag{display:block; font-size:16px; color:var(--gold-soft); margin-top:2px; font-family:'Fraunces',serif;}

/* ---------- Statement card (compact philosophy quote) ---------- */
.statement-card{position:relative; border-radius:var(--radius-m); overflow:hidden; background:linear-gradient(120deg,#0f2019,#1c3529); min-height:200px; display:flex; align-items:center; justify-content:center; text-align:center; padding:30px 20px; color:var(--ivory);}
.statement-card .content{max-width:46ch; margin:0 auto;}
.statement-card .eyebrow{color:var(--gold-soft);}
.statement-card h2{font-size:clamp(18px,2.2vw,25px); font-weight:400; line-height:1.32; margin:10px 0 16px; font-family:'Fraunces',serif;}
.statement-card .btn{margin-top:4px;}

/* ---------- Transparency / trace table (div-based rows) ---------- */
.trace-table{border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; background:var(--ivory);}
.trace-row{display:grid; grid-template-columns:1.3fr 1.3fr 1fr; gap:14px; padding:16px 20px; border-bottom:1px solid var(--line); align-items:center;}
.trace-row:last-child{border-bottom:none;}
.trace-row.head{background:var(--forest); color:var(--ivory);}
.trace-row.head span{font-size:10px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700; opacity:.85;}
.trace-row:not(.head){font-size:13px;}
.trace-row .plant-name{font-family:'Fraunces',serif; font-weight:400; font-size:14.5px;}
.trace-row .muted{color:rgba(28,26,22,0.5); font-size:12px; font-style:italic;}
@media (max-width:640px){.trace-row{grid-template-columns:1fr 1fr;}}

/* ---------- Proof grid (honest, no fabricated numbers) ---------- */
.proof-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; text-align:center;}
@media (max-width:800px){.proof-grid{grid-template-columns:repeat(2,1fr);}}
.proof-cell{background:var(--ivory); border:1px dashed var(--line); border-radius:var(--radius-m); padding:26px 14px;}
.proof-cell .stat{font-family:'Fraunces',serif; font-size:15px; color:rgba(28,26,22,0.45); margin-bottom:6px;}
.proof-cell .lbl{font-size:11.5px; color:rgba(28,26,22,0.55); line-height:1.5;}

/* ---------- Catalog preview (filterable, client-side) ---------- */
.catalog-filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px;}
.catalog-filter{padding:9px 16px; border:1px solid rgba(28,26,22,0.18); border-radius:100px; font-size:11.5px; font-weight:600; background:transparent; color:var(--charcoal); transition:all .2s;}
.catalog-filter:hover{border-color:var(--forest);}
.catalog-filter.active{background:var(--forest); border-color:var(--forest); color:var(--ivory);}
.catalog-count{font-size:12px; color:rgba(28,26,22,0.5); margin-left:4px;}
.catalog-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:980px){.catalog-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:700px){.catalog-grid{grid-template-columns:repeat(2,1fr);}}
.catalog-wrap{display:flex;}
.catalog-wrap .product-card{width:100%;}
.catalog-wrap.catalog-hidden{display:none;}

/* ---------- Generic knowledge/philosophy modal ---------- */
.ing-btn{font-size:11px; font-weight:700; text-decoration:underline; background:none; border:none; padding:0; cursor:pointer; color:inherit;}
.ingredients-overlay{position:fixed; inset:0; background:rgba(15,32,25,0.55); z-index:500; display:none; align-items:center; justify-content:center; padding:20px;}
.ingredients-overlay.open{display:flex;}
.ingredients-modal{display:none; background:var(--ivory); border-radius:var(--radius-m); max-width:480px; width:100%; max-height:84vh; overflow-y:auto; padding:30px 28px; position:relative; box-shadow:var(--shadow-card);}
.ingredients-modal.open{display:block;}
.ingredients-close{position:absolute; top:14px; right:16px; font-size:18px; background:none; border:none; cursor:pointer; color:rgba(28,26,22,0.5); line-height:1;}
.ingredients-close:hover{color:var(--charcoal);}
.ingredients-modal h3{font-size:19px; margin:0 0 4px;}
.ingredients-modal .lat{font-size:12.5px; font-style:italic; color:rgba(28,26,22,0.5); margin:0 0 16px;}
.ing-list{display:grid; grid-template-columns:110px 1fr; gap:9px 14px; font-size:13px; margin:0 0 16px;}
.ing-list dt{color:rgba(28,26,22,0.5); font-weight:600;}
.ing-list dd{margin:0;}
.ing-note{font-size:12.5px; line-height:1.6; color:rgba(28,26,22,0.65); border-top:1px solid var(--line); padding-top:14px; margin-top:4px;}

/* ---------- Footer (compact single row) ---------- */
.footer-row{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.footer-left{display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.footer-left .wordmark img{height:22px;}
.footer-nav{display:flex; gap:18px; font-size:12px; font-weight:600; letter-spacing:0.02em; flex-wrap:wrap;}
.footer-nav + .footer-nav{padding-left:18px; border-left:1px solid var(--line-on-dark);}
.footer-nav a{opacity:.8; transition:opacity .2s;}
.footer-nav a:hover{opacity:1;}
.footer-right{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.social-icons{display:flex; gap:12px;}
.social-icons a{width:16px; height:16px; opacity:.75; transition:opacity .2s; display:block;}
.social-icons a svg{width:100%; height:100%;}
.social-icons a:hover{opacity:1;}
.newsletter{display:flex; align-items:center; border:1px solid var(--line-on-dark); border-radius:100px; overflow:hidden; padding-left:14px;}
.newsletter input{background:transparent; border:none; color:var(--ivory); font-size:12px; padding:9px 0; width:160px; outline:none;}
.newsletter input::placeholder{color:rgba(246,241,230,0.45);}
.newsletter button{background:var(--gold); color:var(--forest-dark); padding:9px 14px; font-size:13px; flex-shrink:0;}
.footer-bottom{margin-top:18px; padding-top:16px; border-top:1px solid var(--line-on-dark); font-size:11px; color:rgba(246,241,230,0.4); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}

/* ---------- Floating "added to cart" toast ---------- */
.float-cart{position:fixed; bottom:22px; right:22px; z-index:90; background:var(--forest); color:var(--ivory); padding:13px 20px; border-radius:100px; display:flex; align-items:center; gap:9px; font-size:12px; font-weight:700; box-shadow:0 16px 36px -14px rgba(15,32,25,0.55); transform:translateY(30px) scale(0.85); opacity:0; transition:transform .1s linear, opacity .1s linear; pointer-events:none;}
.float-cart.show{transform:translateY(0) scale(1); opacity:1; transition:transform .5s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;}
.float-cart .dot{width:6px; height:6px; border-radius:50%; background:var(--gold-soft); flex-shrink:0;}

/* ---------- Section headers ---------- */
.section-pad{padding:48px 0;}
.section-head{max-width:640px; margin-bottom:28px;}
.section-head h2{font-size:clamp(22px,2.8vw,32px); font-weight:300; margin:10px 0 10px; line-height:1.1;}
.section-head p{font-size:13.5px; line-height:1.6; color:rgba(28,26,22,0.62); max-width:54ch; margin:0;}

/* ---------- Category tiles (home) ---------- */
.cat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
.cat-tile{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px 18px; transition:transform .25s var(--ease), box-shadow .25s var(--ease);}
.cat-tile:hover{transform:translateY(-3px); box-shadow:var(--shadow-card);}
.cat-tile h3{font-size:16px; margin:0 0 6px;}
.cat-tile .count{font-size:11.5px; color:rgba(28,26,22,0.5);}

/* ---------- Filters ---------- */
.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px;}
.filter-pill{padding:9px 16px; border:1px solid rgba(28,26,22,0.18); border-radius:100px; font-size:11.5px; font-weight:600; background:transparent; color:var(--charcoal); transition:all .2s;}
.filter-pill:hover{border-color:var(--forest);}
.filter-pill.active{background:var(--forest); border-color:var(--forest); color:var(--ivory);}

/* ---------- Product grid / cards ---------- */
.product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:980px){.product-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:700px){.product-grid{grid-template-columns:repeat(2,1fr);}}
.product-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease); display:flex; flex-direction:column;}
.product-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-card);}
.product-card-img{height:170px; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at 35% 20%, var(--green-mist), #dfe6da 78%);}
.product-card-body{padding:16px; display:flex; flex-direction:column; gap:8px; flex:1;}
.product-card .cat{font-size:9px; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold); font-weight:700;}
.product-card h3{font-family:'Fraunces',serif; font-weight:400; font-size:15px; margin:0; line-height:1.3;}
.product-card .lat{font-size:11px; font-style:italic; color:rgba(28,26,22,0.5); margin:0;}
.product-card .price{font-size:13px; font-weight:700; margin-top:auto;}
.product-card .go{display:block; width:100%; text-align:center; padding:9px; font-size:10.5px; font-weight:700; letter-spacing:0.05em; border:1px solid var(--charcoal); border-radius:2px; transition:all .2s;}
.product-card .go:hover{background:var(--charcoal); color:var(--ivory);}
.stock-warning{font-size:11px; color:var(--danger); font-weight:600;}

/* ---------- Product detail ---------- */
.product-detail{display:grid; grid-template-columns:1fr 1.1fr; gap:40px; align-items:start;}
@media (max-width:860px){.product-detail{grid-template-columns:1fr;}}
.product-visual{background:radial-gradient(ellipse at 35% 20%, var(--green-mist), var(--beige) 80%); border-radius:var(--radius-m); display:flex; align-items:center; justify-content:center; padding:48px 20px;}
.product-info h1{font-size:clamp(24px,3vw,32px); margin:0 0 6px;}
.product-info .lat{font-size:14px; font-style:italic; color:rgba(28,26,22,0.55); margin:0 0 16px;}
.product-info .desc{font-size:14px; line-height:1.65; color:rgba(28,26,22,0.72); margin-bottom:18px;}
.product-info .price-row{font-family:'Fraunces',serif; font-size:24px; margin-bottom:18px;}
.qty-row{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
.qty-box{display:flex; align-items:center; border:1px solid var(--line); border-radius:100px; overflow:hidden;}
.qty-box button{width:36px; height:40px; font-size:16px;}
.qty-box input{width:40px; text-align:center; border:none; font-size:14px; font-weight:600;}
.knowledge-box{margin-top:26px; padding:20px; background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m);}
.knowledge-box dl{display:grid; grid-template-columns:120px 1fr; gap:8px 14px; font-size:13px; margin:0 0 14px;}
.knowledge-box dt{color:rgba(28,26,22,0.5); font-weight:600;}
.knowledge-box dd{margin:0;}
.knowledge-box .fakt{font-size:12.5px; color:rgba(28,26,22,0.6); border-top:1px solid var(--line); padding-top:12px; margin-top:4px;}

/* ---------- Cart ---------- */
.cart-table{width:100%; border-collapse:collapse; background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden;}
.cart-table th{text-align:left; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(28,26,22,0.5); padding:14px 16px; border-bottom:1px solid var(--line); background:var(--beige);}
.cart-table td{padding:14px 16px; border-bottom:1px solid var(--line); vertical-align:middle; font-size:13.5px;}
.cart-table tr:last-child td{border-bottom:none;}
.cart-product{display:flex; align-items:center; gap:14px;}
.cart-product .thumb{width:50px; flex-shrink:0;}
.cart-summary{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px; margin-top:22px; max-width:380px; margin-left:auto;}
.cart-summary .row{display:flex; justify-content:space-between; font-size:13.5px; padding:6px 0;}
.cart-summary .row.total{font-weight:800; font-size:16px; border-top:1px solid var(--line); margin-top:8px; padding-top:14px;}
.empty-state{text-align:center; padding:60px 20px; color:rgba(28,26,22,0.55);}

/* ---------- Cart: mobile app-style card list (replaces the table on small screens) ---------- */
.mobile-only{display:none;}
.cart-cards{display:flex; flex-direction:column; gap:10px;}
.cart-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:14px;}
.cart-card .cart-product{align-items:flex-start; position:relative;}
.cart-card .cart-product .thumb{width:44px;}
.cart-card-sum{position:absolute; top:0; right:0; font-weight:800; font-size:13.5px;}
.cart-card-row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); flex-wrap:wrap;}
.cart-card-qty{display:flex; align-items:center; gap:6px;}
.cart-card-qty input[type="number"]{width:52px; padding:6px 8px; border:1px solid var(--line); border-radius:4px;}
@media (max-width:700px){
  .desktop-only{display:none;}
  .mobile-only{display:flex;}
  .cart-summary{max-width:none; margin-left:0;}
}

/* ---------- Checkout ---------- */
.checkout-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:start;}
@media (max-width:900px){.checkout-grid{grid-template-columns:1fr;}}
.form-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:26px;}
.form-card h2{font-size:18px; margin:0 0 18px;}
.form-row{margin-bottom:16px;}
.form-row label{display:block; font-size:12px; font-weight:700; margin-bottom:6px; color:rgba(28,26,22,0.7);}
.form-row input, .form-row select, .form-row textarea{width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:4px; background:#fff;}
.form-row-pair{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:480px){.form-row-pair{grid-template-columns:1fr;}}
.payment-options{display:flex; flex-direction:column; gap:10px; margin-bottom:20px;}
.payment-option{border:1px solid var(--line); border-radius:var(--radius-m); padding:14px 16px; display:flex; align-items:flex-start; gap:12px; cursor:pointer; transition:border-color .2s;}
.payment-option:hover{border-color:var(--forest);}
.payment-option.disabled{opacity:.55; cursor:not-allowed;}
.payment-option input{margin-top:3px;}
.payment-option .label{font-weight:700; font-size:13.5px;}
.payment-option .desc{font-size:12px; color:rgba(28,26,22,0.55); margin-top:2px;}
.badge-soon{display:inline-block; font-size:9.5px; letter-spacing:0.05em; text-transform:uppercase; background:var(--beige); color:rgba(28,26,22,0.6); padding:2px 7px; border-radius:100px; margin-left:8px;}
.order-summary-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px;}
.bank-details{background:var(--beige); border-radius:var(--radius-m); padding:18px; margin-top:16px; font-size:13px; line-height:1.7;}
.bank-details dl{display:grid; grid-template-columns:100px 1fr; gap:4px 10px; margin:0;}
.bank-details dt{font-weight:700;}

/* ---------- Alerts ---------- */
.alert{padding:14px 18px; border-radius:var(--radius-m); font-size:13.5px; margin-bottom:20px;}
.alert-error{background:#f6e4df; color:var(--danger); border:1px solid rgba(138,58,44,0.25);}
.alert-success{background:#e5f0e7; color:var(--success); border:1px solid rgba(47,92,61,0.25);}
.alert ul{margin:6px 0 0; padding-left:20px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest-dark); color:rgba(246,241,230,0.8); padding:26px 0; margin-top:60px;}
.footer-inner{max-width:1440px; margin:0 auto; padding:0 clamp(16px,2.4vw,40px);}
.footer-row{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.footer-left{display:flex; align-items:center; gap:24px; flex-wrap:wrap;}
.footer-nav{display:flex; gap:18px; font-size:12px; font-weight:600;}
.footer-nav a{opacity:.8;}
.footer-nav a:hover{opacity:1;}
.footer-right{font-size:11.5px; color:rgba(246,241,230,0.5);}

/* ---------- Admin ---------- */
.admin-shell{display:flex; min-height:100vh;}
.admin-sidebar{width:230px; background:var(--forest-dark); color:var(--ivory); padding:24px 16px; flex-shrink:0; display:flex; flex-direction:column;}
.admin-sidebar .brand{font-family:'Fraunces',serif; font-size:18px; margin-bottom:24px; display:block; padding:0 8px;}
.admin-sidebar nav{flex:1;}
.admin-sidebar .nav-group-label{display:block; font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:rgba(246,241,230,0.4); padding:14px 10px 6px;}
.admin-sidebar .nav-group-label:first-child{padding-top:0;}
.admin-sidebar nav a{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:6px; font-size:13px; margin-bottom:2px; opacity:.82; border-left:2px solid transparent; transition:background .15s, opacity .15s;}
.admin-sidebar nav a:hover{background:rgba(246,241,230,0.08); opacity:1;}
.admin-sidebar nav a.active{background:rgba(246,241,230,0.12); opacity:1; border-left-color:var(--gold);}
.admin-sidebar nav a .nav-icon{width:16px; height:16px; flex-shrink:0;}
.admin-sidebar-foot{border-top:1px solid rgba(246,241,230,0.15); padding-top:14px; margin-top:14px;}
.admin-identity{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 10px 10px;}
.admin-identity-name{font-size:12.5px; font-weight:700;}
.role-badge{font-size:9px; text-transform:uppercase; letter-spacing:0.04em; padding:2px 7px; border-radius:100px; font-weight:700;}
.role-badge-owner{background:var(--gold-soft); color:var(--forest-dark);}
.role-badge-staff{background:rgba(246,241,230,0.15); color:var(--ivory);}
.admin-sidebar .logout-link{display:block; padding:9px 10px; font-size:12.5px; opacity:.6;}
.admin-sidebar .logout-link:hover{opacity:1;}
.admin-content{flex:1; padding:32px clamp(16px,3vw,48px); background:var(--paper);}
.admin-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:26px; flex-wrap:wrap; gap:10px;}
.admin-table{width:100%; border-collapse:collapse; background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden;}
.admin-table th{text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:rgba(28,26,22,0.5); padding:12px 14px; background:var(--beige); border-bottom:1px solid var(--line);}
.admin-table td{padding:12px 14px; border-bottom:1px solid var(--line); font-size:13px;}
.admin-table tr:hover td{background:rgba(79,110,86,0.04);}
.status-pill{display:inline-block; font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:100px; text-transform:uppercase; letter-spacing:0.03em;}
.status-pending{background:#f3e6c8; color:#7a5a1a;}
.status-paid{background:#dcefe0; color:var(--success);}
.status-failed, .status-cancelled{background:#f6e4df; color:var(--danger);}
.status-new{background:#e3e9df; color:var(--green-accent);}
.status-processing{background:#e6ecf5; color:#3b4f7a;}
.status-packed{background:#f0e6d2; color:#8a6a1a;}
.status-shipped{background:#e9e0f5; color:#5a3b7a;}
.status-delivered{background:#d9eee0; color:#1f6b42;}
.status-completed{background:#dcefe0; color:var(--success);}
.login-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--forest-dark);}
.login-card{background:var(--ivory); border-radius:var(--radius-m); padding:36px; width:100%; max-width:380px;}
.login-card h1{font-size:20px; margin:0 0 20px; text-align:center;}

.muted{color:rgba(28,26,22,0.55);}
.mt-24{margin-top:24px;}

/* ---------- Membership gating ---------- */
.badge-member{display:inline-block; font-size:9.5px; letter-spacing:0.04em; text-transform:uppercase; background:var(--gold-soft); color:var(--forest-dark); padding:2px 7px; border-radius:100px; margin-left:6px; vertical-align:middle;}
.product-card.is-locked .product-card-img{opacity:.8;}
.price-locked{font-size:13px; font-weight:700; color:var(--gold); font-style:italic;}
.member-lock-box{background:var(--beige); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px; margin:18px 0;}
.member-lock-box p{margin:0 0 10px;}
.member-lock-box .btn{margin-top:4px;}

/* ---------- Membership plans ---------- */
.plan-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:20px; margin-top:28px;}
.plan-card{display:flex; flex-direction:column;}
.plan-price{font-family:'Fraunces',serif; font-size:28px; margin:0 0 10px; color:var(--forest-dark);}
.plan-price-period{font-family:'Manrope',sans-serif; font-size:13px; font-weight:600; color:rgba(28,26,22,0.5);}
.plan-features{list-style:none; margin:0 0 20px; padding:0; font-size:13px; line-height:1.9;}
.plan-features li{padding-left:20px; position:relative;}
.plan-features li::before{content:"✓"; position:absolute; left:0; color:var(--success);}
.plan-number{font-size:10.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; display:block;}
.plan-card-tier{border:1px solid var(--line); transition:transform .2s var(--ease), box-shadow .2s var(--ease);}
.plan-card-tier:hover{transform:translateY(-3px); box-shadow:var(--shadow-card);}
.plan-card-tier .btn{margin-top:auto;}

/* ---------- Membership: contact card ---------- */
.contact-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:26px clamp(18px,2.5vw,32px); max-width:680px;}
.contact-btn-row{display:flex; gap:10px; flex-wrap:wrap;}

/* ---------- Membership: Schwerpunkte grid ---------- */
.schwerpunkte-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; margin-top:20px;}
.schwerpunkt-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:18px 20px;}
.schwerpunkt-card h4{font-size:14.5px; margin:0 0 8px; line-height:1.3;}
.schwerpunkt-card p{font-size:12.5px; line-height:1.6; margin:0;}

/* ---------- Membership purchase modal ---------- */
.modal-overlay{position:fixed; inset:0; background:rgba(15,32,25,0.55); z-index:300; display:flex; align-items:center; justify-content:center; padding:20px;}
.modal-overlay[hidden]{display:none;}
.modal-dialog{position:relative; background:var(--ivory); border-radius:var(--radius-m); padding:28px clamp(18px,3vw,32px); max-width:480px; width:100%; max-height:86vh; overflow-y:auto; box-shadow:0 30px 60px -20px rgba(15,32,25,0.5);}
.modal-close{position:absolute; top:14px; right:16px; font-size:22px; line-height:1; color:rgba(28,26,22,0.5); width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
.modal-close:hover{background:var(--beige); color:var(--charcoal);}
.plan-pick-list{display:flex; flex-direction:column; gap:8px;}
.plan-pick-option{display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:var(--radius-m); padding:12px 14px; cursor:pointer; transition:all .15s var(--ease);}
.plan-pick-option input{position:absolute; opacity:0; pointer-events:none;}
.plan-pick-option:hover{border-color:var(--gold-soft);}
.plan-pick-option.selected{border-color:var(--forest); background:var(--green-mist);}
.plan-pick-copy{display:flex; flex-direction:column; gap:2px; flex:1; min-width:0;}
.plan-pick-name{font-weight:700; font-size:13.5px;}
.plan-pick-desc{font-size:11.5px; color:rgba(28,26,22,0.6);}
.plan-pick-price{font-family:'Fraunces',serif; font-size:15px; white-space:nowrap;}

/* ---------- Account: "Deine Rezepturen" ---------- */
.recipe-list{display:flex; flex-direction:column; gap:10px;}
.recipe-card{border:1px solid var(--line); border-radius:var(--radius-m); padding:14px 16px;}
.recipe-card-head{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;}
.recipe-card-name{font-weight:700; font-size:14px;}
.recipe-card-meta{font-size:12px; margin:4px 0 0;}
.recipe-card-ingredients{font-size:12px; margin:6px 0 0; line-height:1.5;}

/* ---------- Drops Designer ---------- */
.drops-ingredient-grid{display:flex; flex-direction:column; gap:2px;}
.drops-ingredient-row{display:flex; align-items:center; gap:12px; padding:10px 6px; border-bottom:1px solid var(--line); cursor:pointer; flex-wrap:wrap;}
.drops-ingredient-row:last-child{border-bottom:none;}
.drops-ingredient-row .ing-check{width:auto; flex-shrink:0;}
.drops-ingredient-row .ing-name{font-weight:700; font-size:13.5px; min-width:160px;}
.drops-ingredient-row .ing-latin{font-size:11.5px; font-style:italic; min-width:140px;}
.drops-ingredient-row .ing-ml{width:80px; padding:6px 8px; border:1px solid var(--line); border-radius:4px; margin-left:auto;}
.drops-ingredient-row .ing-ml:disabled{background:var(--beige); opacity:.5;}
.drops-ingredient-row .ing-unit{font-size:12px;}
.drops-ingredient-row .ing-price-each{font-size:11.5px; min-width:110px; text-align:right;}

/* ---------- Rezeptur Designer: builder dashboard ---------- */
.builder-stat-row{display:flex; gap:12px; flex-wrap:wrap; margin:22px 0 26px;}
.builder-stat{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:12px 18px; min-width:120px;}
.builder-stat-value{display:block; font-family:'Fraunces',serif; font-size:19px; color:var(--forest-dark); line-height:1.2;}
.builder-stat-label{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:rgba(28,26,22,0.5); margin-top:2px;}

.mode-tabs{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:24px;}
@media (max-width:640px){.mode-tabs{grid-template-columns:1fr;}}
.mode-tab{display:flex; align-items:flex-start; gap:12px; text-align:left; background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:16px 18px; transition:all .2s var(--ease);}
.mode-tab:hover{border-color:var(--gold-soft);}
.mode-tab.active{border-color:var(--forest); background:var(--forest); color:var(--ivory); box-shadow:var(--shadow-card);}
.mode-tab-icon{font-size:18px; line-height:1; flex-shrink:0; margin-top:1px;}
.mode-tab-copy{display:flex; flex-direction:column; gap:3px;}
.mode-tab-title{font-weight:700; font-size:14px;}
.mode-tab-desc{font-size:12px; opacity:0.8; line-height:1.4;}
.mode-tab.active .mode-tab-desc{color:rgba(246,241,230,0.82);}

.builder-grid{margin-top:4px;}

.base-card-row{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
@media (max-width:560px){.base-card-row{grid-template-columns:1fr;}}
.base-card{display:block; border:1px solid var(--line); border-radius:var(--radius-m); padding:12px 14px; cursor:pointer; transition:all .2s var(--ease);}
.base-card input{position:absolute; opacity:0; pointer-events:none;}
.base-card:hover{border-color:var(--gold-soft);}
.base-card.selected{border-color:var(--forest); background:var(--green-mist);}
.base-card-title{display:block; font-weight:700; font-size:13.5px; margin-bottom:3px;}
.base-card-desc{display:block; font-size:11.5px; color:rgba(28,26,22,0.6); line-height:1.4;}

.ingredient-search{max-width:220px; padding:8px 12px; border:1px solid var(--line); border-radius:100px; font-size:12.5px;}

.ingredient-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:12px; margin-top:4px;}
.ingredient-card{position:relative; display:flex; flex-direction:column; gap:6px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-m); padding:14px; cursor:pointer; transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);}
.ingredient-card:hover{transform:translateY(-2px); border-color:var(--gold-soft);}
.ingredient-card.selected{background:var(--green-mist); border-color:var(--forest); box-shadow:var(--shadow-card);}
.ingredient-card.disabled{opacity:0.45; cursor:not-allowed; transform:none;}
.ingredient-card .ing-check{position:absolute; opacity:0; pointer-events:none;}
.ing-card-top{display:flex; align-items:center; justify-content:space-between;}
.ing-swatch{width:14px; height:14px; border-radius:50%; display:inline-block; box-shadow:0 0 0 2px rgba(255,255,255,0.5) inset;}
.ing-card-check{width:18px; height:18px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:11px; color:transparent; transition:all .15s var(--ease);}
.ingredient-card.selected .ing-card-check{background:var(--forest); border-color:var(--forest); color:var(--ivory);}
.ing-card-name{font-weight:700; font-size:13.5px; line-height:1.3;}
.ing-card-latin{font-size:11px; font-style:italic; color:rgba(28,26,22,0.55); margin-top:-4px;}
.ing-card-desc{font-size:11.5px; color:rgba(28,26,22,0.6); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.ing-card-price{font-size:12px; font-weight:700; color:var(--gold); margin-top:2px;}
.ing-card-ratio{display:none; align-items:center; gap:8px; margin-top:4px; padding-top:10px; border-top:1px solid var(--line); flex-wrap:wrap;}
.ingredient-card.selected .ing-card-ratio{display:flex;}
.ing-ratio-select{padding:5px 8px; border:1px solid var(--line); border-radius:4px; font-size:12px; background:var(--ivory);}
.ing-ratio-select:disabled{background:var(--beige); opacity:.5;}
.ing-ml-unit{font-size:10px; color:rgba(28,26,22,0.5); white-space:nowrap;}
.ingredient-empty{font-size:13px; padding:10px 0;}

/* ---------- Rezeptur Designer: sticky live-preview rail ---------- */
.preview-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:22px clamp(16px,2vw,24px); box-shadow:var(--shadow-card);}
.preview-card-head{margin-bottom:16px;}
.preview-card-head h3{font-size:20px; margin:6px 0 10px; line-height:1.2;}
.preview-badges{display:flex; gap:6px; flex-wrap:wrap;}
.preview-badge{font-size:10.5px; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; background:var(--beige); color:var(--forest-dark); padding:4px 10px; border-radius:100px;}
.capacity-bar{height:8px; border-radius:100px; background:var(--beige); overflow:hidden; margin-bottom:6px;}
.capacity-bar-fill{height:100%; background:var(--green-accent); border-radius:100px; width:0%; transition:width .25s var(--ease), background .2s;}
.capacity-bar-fill.over{background:var(--danger);}
.capacity-label{font-size:11.5px; color:rgba(28,26,22,0.6); margin-bottom:16px;}
.chip-list{display:flex; flex-wrap:wrap; gap:6px; min-height:30px; margin-bottom:12px;}
.chip{display:inline-flex; align-items:center; gap:6px; background:var(--forest); color:var(--ivory); border-radius:100px; padding:5px 6px 5px 12px; font-size:11.5px; font-weight:600;}
.chip-remove{background:rgba(246,241,230,0.18); border-radius:50%; width:18px; height:18px; display:flex; align-items:center; justify-content:center; font-size:13px; line-height:1; color:var(--ivory);}
.chip-remove:hover{background:rgba(246,241,230,0.32);}
.chip-empty{font-size:12px;}
.preview-warning{font-size:12px; color:var(--danger); margin:8px 0 0;}
.price-breakdown{border-top:1px solid var(--line); margin-top:14px; padding-top:14px;}
.price-breakdown .price-row{display:flex; justify-content:space-between; font-size:13px; padding:4px 0;}
.price-breakdown .price-row.total{font-weight:800; font-size:16px; border-top:1px solid var(--line); margin-top:8px; padding-top:12px;}
.mt-16{margin-top:16px;}

/* ---------- Admin: sales dashboard ---------- */
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:14px;}
.stat-card{background:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-m); padding:16px 18px;}
.stat-value{font-family:'Fraunces',serif; font-size:22px; color:var(--forest-dark);}
.stat-label{font-size:11px; text-transform:uppercase; letter-spacing:0.04em; color:rgba(28,26,22,0.5); margin-top:4px;}
.bar-chart{display:flex; align-items:flex-end; gap:3px; height:140px; border-bottom:1px solid var(--line); padding-top:10px;}
.bar-chart-col{flex:1; height:100%; display:flex; align-items:flex-end;}
.bar-chart-bar{width:100%; background:var(--green-accent); border-radius:2px 2px 0 0; min-height:2px;}
.bar-chart-bar-month{background:var(--gold);}
.bar-chart-labels{display:flex; justify-content:space-between; font-size:11px; color:rgba(28,26,22,0.5); margin-top:6px;}
.mb-24{margin-bottom:24px;}

/* ---------- Admin: timeline (order status / email log) ---------- */
.timeline-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.timeline-list li{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding-bottom:8px; border-bottom:1px solid var(--line);}
.timeline-list li:last-child{border-bottom:none; padding-bottom:0;}

/* ---------- Admin: inventory / low stock ---------- */
.stock-low{color:#8a3a1a; font-weight:700;}
.badge-low-stock{display:inline-block; font-size:9.5px; text-transform:uppercase; letter-spacing:0.03em; background:#f6e0cf; color:#8a3a1a; padding:2px 7px; border-radius:100px; margin-left:6px; vertical-align:middle;}
.inline-adjust-form{display:flex; gap:6px; align-items:center; flex-wrap:wrap;}
.inline-adjust-form input[type="number"]{width:70px; padding:6px 8px; border:1px solid var(--line); border-radius:4px; font-size:12.5px;}
.inline-adjust-form input[type="text"]{width:140px; padding:6px 8px; border:1px solid var(--line); border-radius:4px; font-size:12.5px;}

/* ---------- Admin: CSV export row ---------- */
.export-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px;}

/* ---------- Admin: discount codes ---------- */
.discount-code-tag{font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:0.03em; background:var(--beige); padding:3px 9px; border-radius:4px; font-size:12.5px;}

/* ---------- Admin: customer detail / membership history ---------- */
.detail-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:24px; align-items:start;}
@media (max-width: 860px){ .detail-grid{grid-template-columns:1fr;} }
.history-list{list-style:none; margin:0; padding:0;}
.history-list li{padding:10px 0; border-bottom:1px solid var(--line); font-size:12.5px;}
.history-list li:last-child{border-bottom:none;}
.history-list .history-type{font-weight:700; margin-right:6px;}
.history-list .history-meta{color:rgba(28,26,22,0.55); font-size:11.5px; display:block; margin-top:2px;}
