@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Figtree:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --pine:#1F3D34; --pine-deep:#16302A;
  --paper:#FAF7F0; --paper2:#F1EBDD; --card:#FFFFFF;
  --ink:#23201B; --muted:#7C7568;
  --marigold:#E9A23B; --marigold-deep:#C9852A;
  --brick:#B4533A; --leaf:#4C8A5E; --line:#E4DCCC;
}
*{box-sizing:border-box}
html,body{margin:0}
.lg{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);min-height:100vh;-webkit-font-smoothing:antialiased}
.lg h1,.lg h2,.lg h3,.disp{font-family:'Bricolage Grotesque',system-ui,sans-serif;letter-spacing:-.01em}
.mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
button{font-family:inherit;cursor:pointer}
[hidden]{display:none !important}

.header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}
.headin{display:flex;align-items:center;gap:10px;height:56px}
.brand{display:flex;align-items:center;gap:9px;font-family:'Bricolage Grotesque';font-weight:800;font-size:20px;color:var(--pine);background:none;border:0;padding:0}
.brand .dot{width:11px;height:11px;border-radius:3px;background:var(--marigold);transform:rotate(45deg)}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.navlink{background:none;border:0;padding:9px 12px;border-radius:9px;font-weight:600;font-size:14.5px;color:var(--ink);display:none}
.navlink:hover{background:var(--paper2)}
.navlink.on{color:var(--pine);background:var(--paper2)}
.who{font-size:13px;color:var(--muted);display:none}

.btn{border:1px solid transparent;border-radius:11px;padding:10px 16px;font-weight:600;font-size:14.5px;transition:transform .06s,background .15s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--marigold);color:#3a2a08}
.btn-primary:hover{background:var(--marigold-deep)}
.btn-dark{background:var(--pine);color:#F4EFE4}
.btn-dark:hover{background:var(--pine-deep)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{background:var(--paper2)}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:9px}
.btn-block{width:100%;text-align:center}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.hero{padding:26px 0 16px}
.eyebrow{font-family:'JetBrains Mono';font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--marigold-deep);font-weight:600}
.hero h1{font-size:34px;line-height:1.03;font-weight:700;margin:12px 0 0;max-width:16ch}
.hero h1 em{font-style:normal;color:var(--pine)}
.hero p{font-size:15.5px;color:var(--muted);max-width:52ch;margin:12px 0 0;line-height:1.5}
.searchbar{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.searchbar .inp{flex:1;min-width:200px}
.searchbar .btn{display:none}
.cats{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:16px -16px 0;padding:0 16px 2px}
.cats::-webkit-scrollbar{display:none}
.cat{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:600;color:var(--ink)}
.cat.on{background:var(--pine);color:#F4EFE4;border-color:var(--pine)}
.filterrow{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap}
.check{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;user-select:none}
.check input{accent-color:var(--pine);width:16px;height:16px}

.inp,.ta,.sel{width:100%;border:1px solid var(--line);background:var(--card);border-radius:11px;padding:12px 14px;font-size:15px;font-family:inherit;color:var(--ink)}
.ta{min-height:110px;resize:vertical;line-height:1.5}
.inp:focus,.ta:focus,.sel:focus{outline:2px solid var(--pine);outline-offset:1px;border-color:var(--pine)}
.lbl{display:block;font-size:13px;font-weight:600;margin:0 0 7px}
.hint{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.4}

.sectionhead{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 18px;gap:12px;flex-wrap:wrap}
.sectionhead h2{font-size:21px;font-weight:700;margin:0}
.count{font-family:'JetBrains Mono';font-size:13px;color:var(--muted)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-bottom:24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-align:left;padding:0;display:flex;flex-direction:column;cursor:pointer}
.media{aspect-ratio:1;width:100%;object-fit:cover;display:block;background:var(--paper2)}
.ph{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:42px;background:linear-gradient(135deg,var(--paper2),#E7DFCE)}
.cardbody{padding:13px 14px 15px;display:flex;flex-direction:column;gap:8px;flex:1}
.cardtitle{font-family:'Bricolage Grotesque';font-weight:600;font-size:15px;line-height:1.2}
.place{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:5px}
.tag{align-self:flex-start;font-family:'JetBrains Mono';font-weight:600;font-size:13.5px;background:var(--pine);color:#F4EFE4;padding:5px 10px;border-radius:8px;margin-top:auto}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:11.5px;font-weight:600;border:1px solid var(--line);border-radius:7px;padding:3px 8px;color:var(--muted);background:var(--paper)}
.chip.deliv{color:var(--pine);border-color:#CFE0D2;background:#EEF5EF}

.empty{border:1.5px dashed var(--line);border-radius:18px;padding:44px 22px;text-align:center;background:var(--card)}
.empty h3{font-size:20px;margin:0 0 6px}
.empty p{color:var(--muted);margin:0 0 18px}

.detail{padding:18px 0 40px}
.back{background:none;border:0;color:var(--muted);font-weight:600;font-size:14px;padding:6px 0;margin-bottom:12px;display:inline-flex;gap:6px;align-items:center}
.back:hover{color:var(--ink)}
.dcols{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}
.gallery .main{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;border:1px solid var(--line);background:var(--paper2)}
.gallery .mainph{width:100%;aspect-ratio:4/3;border-radius:16px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:76px;background:linear-gradient(135deg,var(--paper2),#E7DFCE)}
.thumbs{display:flex;gap:9px;margin-top:10px;flex-wrap:wrap}
.thumb{width:64px;height:64px;border-radius:10px;object-fit:cover;border:1px solid var(--line);cursor:pointer;opacity:.7}
.thumb.on{opacity:1;outline:2px solid var(--pine);outline-offset:1px}
.dtitle{font-size:25px;font-weight:700;line-height:1.08;margin:6px 0}
.dprice{font-family:'JetBrains Mono';font-weight:600;font-size:21px;color:var(--pine);margin:14px 0 4px}
.dprice small{font-size:14px;color:var(--muted);font-weight:500}
.block{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:16px;margin-top:16px}
.block h4{font-family:'Bricolage Grotesque';font-size:14px;margin:0 0 10px;font-weight:700}
.krow{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:5px 0;border-top:1px dashed var(--line)}
.krow:first-of-type{border-top:0}
.krow .k{color:var(--muted)}
.krow .v{font-family:'JetBrains Mono';font-weight:500}
.desc{white-space:pre-wrap;line-height:1.6;font-size:15.5px;color:#39352d;margin-top:14px}

.cal{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:14px}
.calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.calhead .m{font-family:'Bricolage Grotesque';font-weight:700;font-size:15px}
.calnav{background:var(--paper2);border:0;width:34px;height:34px;border-radius:8px;font-size:16px;color:var(--ink)}
.calnav:hover{background:var(--line)}
.dow{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px}
.dow span{text-align:center;font-size:11px;font-weight:700;color:var(--muted);font-family:'JetBrains Mono'}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.day{aspect-ratio:1;border:1px solid transparent;border-radius:9px;font-family:'JetBrains Mono';font-size:14px;display:flex;align-items:center;justify-content:center;background:#EEF5EF;color:var(--pine)}
.day.blocked{background:#F6E6E1;color:var(--brick);text-decoration:line-through}
.day.past{background:var(--paper2);color:#BDB6A7;text-decoration:none}
.day.empty{background:transparent;border:0}
.day.edit{cursor:pointer}
.day.edit:hover{border-color:var(--pine)}
.legend{display:flex;gap:16px;margin-top:12px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.legend b{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}

.form{max-width:720px;margin:0 auto;padding:8px 0 40px}
.form h2{font-size:24px;font-weight:700;margin:0 0 4px}
.form .lead{color:var(--muted);margin:0 0 24px}
.fs{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:16px;margin-bottom:16px}
.fs .fslbl{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--marigold-deep);font-weight:600;margin:0 0 14px}
.two{display:grid;grid-template-columns:1fr;gap:14px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--paper2)}
.seg button{background:none;border:0;padding:10px 18px;font-weight:600;font-size:14px;color:var(--muted)}
.seg button.on{background:var(--pine);color:#F4EFE4}
.toggles{display:flex;flex-direction:column;gap:12px}
.tog{display:flex;align-items:center;gap:11px;font-size:15px;font-weight:600;cursor:pointer;user-select:none}
.tog input{width:18px;height:18px;accent-color:var(--pine)}
.uploads{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.upshot{position:relative;width:88px;height:88px;border-radius:11px;overflow:hidden;border:1px solid var(--line)}
.upshot img{width:100%;height:100%;object-fit:cover}
.upshot .x{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;background:rgba(24,20,15,.72);color:#fff;border:0;font-size:13px;display:flex;align-items:center;justify-content:center}
.upadd{width:88px;height:88px;border-radius:11px;border:1.5px dashed var(--line);background:var(--paper);color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.upadd:hover{border-color:var(--pine);color:var(--pine)}
.formfoot{display:flex;gap:12px;justify-content:flex-end;margin-top:6px;flex-wrap:wrap}
.err{background:#F6E6E1;color:#8f3d29;border:1px solid #e6c3b8;border-radius:10px;padding:10px 13px;font-size:13.5px;margin-bottom:14px}

.overlay{position:fixed;inset:0;background:rgba(22,48,42,.42);z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:0}
.modal{background:var(--paper);border-radius:20px 20px 0 0;width:100%;max-width:440px;padding:22px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.25);max-height:92vh;overflow:auto}
.modal h3{font-size:22px;margin:0 0 2px}
.modal .sub{color:var(--muted);font-size:14px;margin:0 0 18px}
.tabs{display:flex;background:var(--paper2);border-radius:11px;padding:4px;margin-bottom:18px}
.tabs button{flex:1;background:none;border:0;padding:9px;border-radius:8px;font-weight:600;font-size:14px;color:var(--muted)}
.tabs button.on{background:var(--card);color:var(--ink)}
.field{margin-bottom:14px}

.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;background:var(--card);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
.tabbar button{flex:1;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:11px;font-weight:600;color:var(--muted);border-radius:10px;min-height:52px}
.tabbar button .ic{font-size:21px;line-height:1}
.tabbar button.plus .ic{width:34px;height:34px;border-radius:11px;background:var(--marigold);color:#3a2a08;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}
.tabbar button.on{color:var(--pine)}
.tabspacer{height:72px}

.footer{background:var(--pine-deep);color:#9FB4A9;padding:30px 0;margin-top:16px;font-size:13.5px}
.footer .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center}
.footer .fb{font-family:'Bricolage Grotesque';font-weight:800;color:#F4EFE4;font-size:18px}

.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:var(--pine);color:#F4EFE4;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:600;z-index:80;box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}

/* KI-Planungs-Banner */
.planbanner{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin-top:18px;padding:14px 16px;border:1px solid #CFE0D2;background:#EEF5EF;border-radius:14px;color:var(--ink)}
.planbanner:hover{border-color:var(--pine)}
.planbanner .pb-ic{font-size:24px}
.planbanner .pb-txt{display:flex;flex-direction:column;gap:2px;flex:1}
.planbanner .pb-txt b{font-family:'Bricolage Grotesque';font-size:15px}
.planbanner .pb-txt small{color:var(--muted);font-size:12.5px;line-height:1.35}
.planbanner .pb-arrow{font-size:18px;color:var(--pine)}

/* Vorschlags-Grund */
.reason{font-size:13px;line-height:1.4;color:#3d5b4f;background:#EEF5EF;border-radius:8px;padding:6px 9px}

/* Warenkorb */
.cartfab{position:fixed;right:16px;bottom:88px;z-index:58;display:none;align-items:center;gap:8px;background:var(--pine);color:#F4EFE4;border:0;border-radius:999px;padding:12px 18px;font-weight:600;font-size:14px;box-shadow:0 12px 26px -12px rgba(0,0,0,.5)}
.cartfab b{background:var(--marigold);color:#3a2a08;border-radius:999px;padding:1px 8px;font-size:13px}
.cartrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.cartrow:first-child{border-top:0}
.cartrow-main{flex:1}
.cartrow-title{font-family:'Bricolage Grotesque';font-weight:600;font-size:15px}
.cartqty{width:78px}

/* ab Tablet/Desktop */
@media(min-width:761px){
  .headin{height:64px;gap:18px}
  .brand{font-size:22px}
  .navlink{display:inline-block}
  .who{display:inline}
  .hero{padding:52px 0 30px}
  .hero h1{font-size:56px;margin-top:14px}
  .hero p{font-size:17px;margin-top:16px}
  .searchbar{margin-top:26px}
  .searchbar .btn{display:inline-block}
  .cats{flex-wrap:wrap;overflow:visible;margin:18px 0 0;padding:0}
  .grid{grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:20px}
  .media,.ph{aspect-ratio:4/3}
  .cardtitle{font-size:16.5px}
  .sectionhead h2{font-size:24px}
  .dcols{grid-template-columns:1.15fr .85fr;gap:38px}
  .dtitle{font-size:30px}
  .two{grid-template-columns:1fr 1fr}
  .fs{padding:20px}
  .form h2{font-size:28px}
  .card:hover{box-shadow:0 12px 28px -18px rgba(31,61,52,.5)}
  .overlay{align-items:center;padding:20px}
  .modal{border-radius:20px}
  .tabbar,.tabspacer{display:none}
  .toast{bottom:26px}
  .cartfab{bottom:26px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
