/* ============================================================
   Bodon Haustechnik – Rückwand Konfigurator
   ============================================================ */
:root{
    --primary:#57453f;--primary-dark:#3e302b;
    --accent:#d5beac;--accent-light:#f0e8e1;
    --text:#121315;--text-muted:#6c6e76;
    --bg:#f7f4f2;--bg-white:#ffffff;--border:#e0d4cc;
    --radius:8px;--radius-lg:12px;
    --shadow-sm:0 1px 4px rgba(87,69,63,.08);
    --shadow:0 4px 16px rgba(87,69,63,.12);
    --transition:.2s ease;--header-h:64px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
img,svg{vertical-align:middle}
a{color:inherit}
button{font-family:inherit}

/* ---- Container ---- */
.container{max-width:1280px;width:100%;margin:0 auto;padding:0 16px}

/* ---- Header ---- */
.site-header{background:var(--primary);height:var(--header-h);display:flex;align-items:center;position:sticky;top:0;z-index:300;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.site-header .container{display:flex;align-items:center;gap:16px}
.header-logo img{height:32px;width:auto;filter:brightness(0) invert(1)}
.logo-text{color:#fff;font-weight:700;font-size:1.1rem}
.header-divider{width:1px;height:22px;background:rgba(255,255,255,.3)}
.header-subtitle{color:var(--accent);font-size:.8rem;font-weight:600;letter-spacing:.03em}

/* ---- Hero text (SEO) ---- */
.hero-text{padding:20px 0 4px}
.hero-text h1{font-size:1.35rem;font-weight:700;color:var(--primary);margin-bottom:4px}
.hero-text p{font-size:.875rem;color:var(--text-muted);margin-bottom:16px}

/* ---- Footer ---- */
.site-footer{background:var(--primary);padding:16px 0;margin-top:48px}
.site-footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;color:rgba(255,255,255,.65);font-size:.8rem}
.site-footer a{color:var(--accent);text-decoration:none}
.site-footer a:hover{text-decoration:underline}

/* ---- Main ---- */
.main{padding:0 0 40px}

/* ---- Step bar – 5 steps ---- */
.steps-bar{display:flex;align-items:center;justify-content:center;margin-bottom:20px;padding:14px 10px;background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.step-item{display:flex;flex-direction:column;align-items:center;gap:4px}
.step-circle{width:32px;height:32px;border-radius:50%;background:var(--border);color:var(--text-muted);font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}
.step-label{font-size:.68rem;color:var(--text-muted);font-weight:500;white-space:nowrap;transition:color var(--transition)}
.step-item.active .step-circle{background:var(--primary);color:#fff}
.step-item.active .step-label{color:var(--primary);font-weight:700}
.step-item.done .step-circle{background:var(--accent);color:var(--primary);font-size:0}
.step-item.done .step-circle::after{content:'✓';font-size:13px}
.step-connector{flex:1;height:2px;background:var(--border);min-width:8px;max-width:40px;margin-bottom:18px;align-self:center}

/* ---- Layout ---- */
.layout{display:flex;flex-direction:column;gap:16px}
@media(min-width:1024px){
    .layout{flex-direction:row;align-items:flex-start;gap:24px}
    .panel-left{width:380px;flex-shrink:0}
    .panel-right{flex:1;min-width:0;position:sticky;top:calc(var(--header-h) + 16px)}
}
@media(max-width:1023px){
    .panel-right{order:1}
    .summary-card{display:none}
}

/* ---- Step content ---- */
.step-content{background:var(--bg-white);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm)}
.step-content.hidden{display:none}
.step-title{font-size:.95rem;font-weight:700;color:var(--primary);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--accent-light)}
.step-info{font-size:.85rem;color:var(--text-muted);margin-bottom:16px;line-height:1.5}

/* ---- Area grid ---- */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}
.area-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-white);cursor:pointer;transition:border-color var(--transition),background var(--transition),transform var(--transition);font-size:.72rem;font-weight:500;color:var(--text-muted)}
.area-card img{width:28px;height:28px;opacity:.55;transition:opacity var(--transition)}
.area-card:hover{border-color:var(--accent);background:var(--accent-light);color:var(--primary);transform:translateY(-1px)}
.area-card:hover img{opacity:1}
.area-card.active{border-color:var(--primary);background:var(--accent-light);color:var(--primary);font-weight:600}
.area-card.active img{opacity:1}

/* ---- Fields ---- */
.field-group{margin-bottom:14px}
.field-label{display:block;font-size:.72rem;font-weight:700;color:var(--primary);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.field-input{width:100%;padding:9px 11px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.88rem;font-family:inherit;color:var(--text);background:var(--bg-white);transition:border-color var(--transition),box-shadow var(--transition);appearance:none;resize:vertical}
.field-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(87,69,63,.1)}
.field-hint{display:block;font-size:.7rem;color:var(--text-muted);margin-top:3px}
.field-error{display:block;font-size:.72rem;color:#c0392b;margin-top:4px;min-height:1.1em}
.field-input.error{border-color:#c0392b}
.field-input.error:focus{box-shadow:0 0 0 3px rgba(192,57,43,.12)}
.field-info{font-size:.7rem;color:var(--text-muted);margin-bottom:14px;text-align:center;padding:7px;background:var(--accent-light);border-radius:var(--radius)}
.resolution-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:var(--radius);padding:8px 12px;font-size:.78rem;color:#856404;margin-bottom:14px}
.resolution-warning.hidden{display:none}

/* ---- Count buttons ---- */
.count-row{display:flex;gap:8px;margin-top:4px;margin-bottom:14px}
.count-btn{width:46px;height:46px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-white);font-size:1rem;font-weight:700;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition)}
.count-btn:hover{border-color:var(--accent);color:var(--primary)}
.count-btn.active{border-color:var(--primary);background:var(--primary);color:#fff}

/* ---- Motif grid (base – overrides in new section below) ---- */
.motif-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:0}
.motif-card{display:flex;flex-direction:column;border-right:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;cursor:pointer;background:var(--bg-white);font-family:inherit;padding:0;transition:border-color var(--transition),background var(--transition)}
.motif-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.motif-card span{display:block;padding:4px 5px;font-size:.68rem;font-weight:600;color:var(--text-muted);text-align:center;background:var(--bg-white);transition:color var(--transition),background var(--transition)}
.motif-card:hover{background:var(--accent-light)}
.motif-card:hover span{color:var(--primary)}
.motif-card.active span{color:var(--primary);font-weight:700;background:var(--accent-light)}
.motif-card.active{background:var(--accent-light);outline:2px solid var(--primary);outline-offset:-2px;position:relative;z-index:1}

/* ---- Stock section ---- */
.stock-section{margin-bottom:14px;padding:12px;background:var(--bg);border-radius:var(--radius);border:1.5px solid var(--border)}
.stock-search-row{display:flex;gap:7px;margin-bottom:8px}
.stock-search-row .field-input{flex:1;margin:0}
.stock-search-row .btn-primary{white-space:nowrap;flex-shrink:0}
.stock-orient-row{display:flex;gap:4px;margin-bottom:8px}
.stock-credit{font-size:.7rem;color:var(--text-muted);margin-top:6px;text-align:right}
.stock-credit a{color:var(--primary);text-decoration:none}
.stock-credit a:hover{text-decoration:underline}
.stock-credit.hidden{display:none}

/* ---- Custom image section ---- */
.custom-image-section{margin-bottom:14px;padding:12px;background:var(--bg);border-radius:var(--radius);border:1.5px dashed var(--border)}
.custom-image-label{font-size:.7rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.upload-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.btn-upload{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:41px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg-white);color:var(--text-muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition);white-space:nowrap}
.btn-upload:hover{border-color:var(--primary);color:var(--primary);background:var(--accent-light)}
.upload-status{font-size:.75rem;color:var(--primary);font-weight:600}
.url-row{display:flex;gap:7px}
.url-row .field-input{flex:1;margin:0}
.url-load-btn{white-space:nowrap}

/* ---- Step 4 crop button ---- */
.btn-crop-open{
    display:flex;align-items:center;justify-content:center;gap:10px;
    width:100%;padding:16px;margin-bottom:4px;
    background:var(--primary);color:#fff;
    border:none;border-radius:var(--radius);
    font-size:1rem;font-weight:700;cursor:pointer;
    transition:background var(--transition),transform var(--transition);
    letter-spacing:.01em;
}
.btn-crop-open:hover{background:var(--primary-dark);transform:translateY(-1px)}

/* ---- Nav row ---- */
.nav-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid var(--border)}

/* ---- Buttons ---- */
.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--primary);color:#fff;border:2px solid var(--primary);border-radius:var(--radius);font-size:.85rem;font-weight:600;cursor:pointer;transition:background var(--transition),transform var(--transition);white-space:nowrap}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);transform:translateY(-1px)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}
.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--bg-white);color:var(--primary);border:2px solid var(--border);border-radius:var(--radius);font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color var(--transition),background var(--transition);white-space:nowrap}
.btn-secondary:hover{border-color:var(--primary);background:var(--accent-light)}

/* ---- Success ---- */
.success-box{display:flex;align-items:flex-start;gap:10px;padding:14px;background:#f0faf0;border:1.5px solid #a3d9a5;border-radius:var(--radius);margin-top:14px;color:#2d6a30;font-size:.88rem;line-height:1.5}
.success-box.hidden{display:none}
.success-box svg{flex-shrink:0;margin-top:2px}

/* ---- Preview card ---- */
.preview-card{background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.preview-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}
.preview-card-label{font-size:.7rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.06em}
.btn-expand{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:.72rem;font-weight:600;cursor:pointer;transition:background var(--transition),transform var(--transition);white-space:nowrap}
.btn-expand:hover{background:var(--primary-dark);transform:translateY(-1px)}
.preview-area-wrap{position:relative}
.preview-area{background:#e8e2de;min-height:300px;height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;user-select:none;-webkit-user-select:none}
@media(max-width:1023px){.preview-area{height:340px;min-height:240px}}
.preview-loader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(232,226,222,.65);z-index:5}
.preview-loader.hidden{display:none}
.preview-loader-spinner{width:36px;height:36px;border:3px solid rgba(0,0,0,.12);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- Plates (shared) ---- */
.plates-row{display:flex;justify-content:center;align-items:flex-end;padding:16px 16px 8px;position:relative;width:100%}
.plate-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center}
.plate-panel{display:block;background-color:var(--accent-light);background-repeat:no-repeat;flex-shrink:0}
.plate-panel.interactive{cursor:grab}
.plate-panel.interactive:active{cursor:grabbing}
.plate-panel.plate-active{outline:3px solid var(--primary);outline-offset:2px}
.plate-label-w{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:center;line-height:1.3}
.plate-label-h{position:absolute;left:2px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);font-size:10px;color:var(--text-muted);white-space:nowrap;pointer-events:none}

/* ---- Summary card ---- */
.summary-card{background:var(--bg-white);border-radius:var(--radius-lg);padding:14px 18px;box-shadow:var(--shadow-sm);margin-top:12px}
.summary-list{list-style:none;display:flex;flex-direction:column;gap:5px}
.summary-list li{font-size:.8rem;color:var(--text);display:flex;gap:6px}
.summary-list li strong{color:var(--primary);min-width:88px;flex-shrink:0}

/* ================================================================
   CROP OVERLAY
   ================================================================ */
.crop-overlay{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;background:#1a1210}
.crop-overlay.hidden{display:none}

.overlay-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:54px;flex-shrink:0;background:#2a1e1a;border-bottom:1px solid rgba(255,255,255,.08);gap:12px}
.overlay-title{font-size:.88rem;font-weight:700;color:#fff;flex:1;text-align:center;white-space:nowrap}
.btn-overlay-close{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.2);border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background var(--transition);white-space:nowrap}
.btn-overlay-close:hover{background:rgba(255,255,255,.18)}
.btn-overlay-done{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--primary);color:#fff;border:none;border-radius:6px;font-size:.75rem;font-weight:700;cursor:pointer;transition:background var(--transition);white-space:nowrap}
.btn-overlay-done:hover{background:var(--primary-dark)}

.overlay-modes{display:flex;gap:8px;padding:10px 16px;flex-shrink:0;background:#231815;border-bottom:1px solid rgba(255,255,255,.06);justify-content:center}
.mode-card{display:flex;align-items:center;gap:10px;padding:8px 14px;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;color:rgba(255,255,255,.65);transition:border-color var(--transition),background var(--transition),color var(--transition);text-align:left}
.mode-card:hover{border-color:var(--accent);color:#fff;background:rgba(255,255,255,.1)}
.mode-card.active{border-color:var(--accent);background:rgba(213,190,172,.15);color:#fff}
.mode-icon-wrap{flex-shrink:0}
.mode-text strong{display:block;font-size:.78rem;font-weight:700;line-height:1.2}
.mode-text span{font-size:.68rem;line-height:1.3;opacity:.75}

.overlay-canvas-wrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px;position:relative}
.overlay-canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}
.overlay-canvas .plate-panel{cursor:grab}
.overlay-canvas .plate-panel:active{cursor:grabbing}

/* overlay toast (fades in on open, out after 2.5 s) */
.overlay-toast{
    position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
    display:inline-flex;align-items:center;gap:6px;
    background:rgba(0,0,0,.72);color:rgba(255,255,255,.9);
    padding:9px 18px;border-radius:24px;font-size:.75rem;white-space:nowrap;
    pointer-events:none;z-index:10;
    opacity:0;transition:opacity .4s ease;
}
.overlay-toast.visible{opacity:1}
.overlay-toast.fade-out{opacity:0}
.overlay-toast svg{opacity:.8;flex-shrink:0}
.overlay-toast .hidden{display:none}
.zoom-limit-toast{
    position:absolute;bottom:58px;left:50%;transform:translateX(-50%);
    white-space:nowrap;
    background:rgba(0,0,0,.72);color:rgba(255,255,255,.9);
    padding:9px 18px;border-radius:24px;font-size:.75rem;
    text-align:center;line-height:1.4;
    pointer-events:none;z-index:11;
    opacity:0;transition:opacity .4s ease;
}
.zoom-limit-toast.visible{opacity:1}

/* ---- Motif search ---- */
.motif-search{display:block;width:100%;padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:.85rem;font-family:inherit;color:var(--text);background:var(--bg-white);transition:border-color var(--transition),box-shadow var(--transition);outline:none;-webkit-appearance:none;margin-bottom:10px}
.motif-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(87,69,63,.1)}

/* ---- Format toggle (Step 3) ---- */
.format-row{display:flex;gap:8px;margin-top:4px;margin-bottom:14px}
.format-btn{padding:10px 20px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-white);font-size:.85rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition)}
.format-btn:hover{border-color:var(--accent);color:var(--primary)}
.format-btn.active{border-color:var(--primary);background:var(--primary);color:#fff}

/* ---- Motif grid scrollable ---- */
.motif-grid-wrap{max-height:300px;overflow-y:auto;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:14px}
.motif-card:nth-child(3n){border-right:none}
.motif-no-results{grid-column:1/-1;text-align:center;color:var(--text-muted);font-size:.85rem;padding:24px 16px}

/* ---- Info sections ---- */
.info-section{padding:36px 0 0}
.info-section--alt{padding-top:36px}
.info-section--cta{padding-top:32px;padding-bottom:8px}
.info-heading{font-size:1.1rem;font-weight:700;color:var(--primary);margin-bottom:18px}

/* How it works – 5-step grid */
.info-steps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.info-step{background:var(--bg-white);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}
.info-step-num{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:10px;flex-shrink:0}
.info-step h3{font-size:.88rem;font-weight:700;color:var(--primary);margin-bottom:6px}
.info-step p{font-size:.8rem;color:var(--text-muted);line-height:1.55}

/* Two-column benefits */
.info-two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:var(--bg-white);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm)}
@media(max-width:768px){.info-two-col{grid-template-columns:1fr}}
.info-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.info-list li{display:flex;align-items:flex-start;gap:8px;font-size:.84rem;color:var(--text);line-height:1.5}
.info-list li svg{flex-shrink:0;margin-top:2px;color:var(--primary)}
.info-text{font-size:.84rem;color:var(--text-muted);margin-bottom:12px;line-height:1.55}
.info-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.info-tags li{padding:4px 10px;background:var(--accent-light);border-radius:20px;font-size:.75rem;font-weight:600;color:var(--primary)}

/* CTA box */
.cta-box{background:var(--primary);border-radius:var(--radius-lg);padding:28px 24px;text-align:center;color:#fff}
.cta-box h2{font-size:1.1rem;font-weight:700;margin-bottom:8px}
.cta-box p{font-size:.88rem;opacity:.8;margin-bottom:20px;line-height:1.5}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn-cta-primary{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;background:var(--accent);color:var(--primary);border:none;border-radius:var(--radius);font-size:.88rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background var(--transition),transform var(--transition)}
.btn-cta-primary:hover{background:#c9af99;transform:translateY(-1px)}
.btn-cta-secondary{display:inline-flex;align-items:center;padding:11px 20px;background:transparent;color:rgba(255,255,255,.85);border:2px solid rgba(255,255,255,.4);border-radius:var(--radius);font-size:.88rem;font-weight:600;cursor:pointer;text-decoration:none;transition:border-color var(--transition),color var(--transition)}
.btn-cta-secondary:hover{border-color:#fff;color:#fff}

/* ---- Kategorie-Filter ---- */
.motif-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.filter-pill{padding:5px 12px;border:1.5px solid var(--border);border-radius:20px;background:var(--bg-white);font-size:.72rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),background var(--transition),color var(--transition);white-space:nowrap;font-family:inherit}
.filter-pill:hover{border-color:var(--accent);color:var(--primary);background:var(--accent-light)}
.filter-pill.active{border-color:var(--primary);background:var(--primary);color:#fff}

/* ---- Mobile ---- */
@media(max-width:600px){
    .area-grid{gap:5px}
    .motif-grid{gap:0}
    .step-label{display:none}
    .steps-bar{padding:12px 6px}
    .step-connector{min-width:4px;margin-bottom:0}
    .hero-text h1{font-size:1.1rem}
    .nav-row{flex-wrap:wrap}
    .btn-primary,.btn-secondary{flex:1;justify-content:center}
    .overlay-title{font-size:.78rem}
    .mode-text span{display:none}
    .info-steps-grid{grid-template-columns:1fr 1fr}
    .info-section{padding-top:24px}
    .motif-filter-row{gap:4px}
    .filter-pill{padding:4px 9px;font-size:.68rem}
}
