.asfw-front-wrapper { max-width: 800px; margin: 0 auto; font-family: inherit; color: #374151; }

/* Σταθερό πλάτος για ΟΛΕΣ τις κάρτες */
.asfw-step-container { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 40px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); animation: asfwFadeIn 0.3s ease; max-width: 750px; width: 100%; margin: 0 auto; box-sizing: border-box; }

/* Τίτλοι & Υπότιτλοι με σωστές αποστάσεις */
.asfw-front-title { font-size: 22px; font-weight: 600; color: #111827; margin-top: 0; margin-bottom: 25px; text-align: center; }
.asfw-front-subtitle { text-align: center; color: #6b7280; font-size: 14px; margin-top: -15px; margin-bottom: 30px; }

/* =========================================
   STEPPER (Μπάρα Προόδου)
========================================= */
.asfw-stepper { display: flex; align-items: center; justify-content: center; max-width: 500px; margin: 0 auto 35px; }
.asfw-step { display: flex; flex-direction: column; align-items: center; position: relative; z-index: 2; width: 90px; }
.asfw-step-circle { width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 2px solid #e5e7eb; display: flex; align-items: center; justify-content: center; font-weight: 600; color: #9ca3af; margin-bottom: 8px; transition: 0.3s; font-size: 14px; }
.asfw-step-label { font-size: 12px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: 0.5px; transition: 0.3s; text-align: center; }
.asfw-step-line { flex: 1; height: 2px; background: #e5e7eb; margin: 0 5px; position: relative; top: -12px; transition: 0.3s; }

/* Active & Completed States */
.asfw-step.active .asfw-step-circle { border-color: #6366f1; background: #6366f1; color: #fff; }
.asfw-step.active .asfw-step-label { color: #6366f1; }
.asfw-step.completed .asfw-step-circle { border-color: #10b981; background: #10b981; color: #fff; }
.asfw-step.completed .asfw-step-label { color: #10b981; }
.asfw-step-line.completed { background: #10b981; }

/* Cards Πηγής */
.asfw-source-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 25px; }
.asfw-source-card { border: 2px solid #e5e7eb; border-radius: 8px; padding: 25px 15px; text-align: center; cursor: pointer; transition: all 0.2s; position: relative; }
.asfw-source-card:hover { border-color: #d1d5db; background: #f9fafb; }
.asfw-source-card input[type="radio"] { position: absolute; opacity: 0; }
.asfw-source-card.selected { border-color: #6366f1; background: #eff6ff; }
.asfw-source-card.selected .asfw-card-title { color: #4338ca; }
.asfw-card-title { display: block; font-weight: 600; font-size: 15px; color: #4b5563; margin-top: 15px; }
.asfw-card-icon svg { width: 34px; height: 34px; stroke: #9ca3af; transition: 0.2s; }
.asfw-source-card.selected .asfw-card-icon svg { stroke: #6366f1; }

.asfw-shopflix-notice { display: none; background: #fffbeb; border: 1px solid #fef3c7; border-left: 4px solid #f59e0b; padding: 15px; border-radius: 6px; margin-bottom: 25px; font-size: 14px; line-height: 1.5; color: #92400e; }
.asfw-shopflix-notice strong { color: #b45309; }

/* Φόρμες, Κουμπιά & Inputs */
.asfw-front-btn { background: #6366f1; color: #fff; border: none; border-radius: 6px; padding: 12px 24px; font-size: 15px; font-weight: 500; cursor: pointer; transition: 0.2s; width: 100%; display: none; text-align: center; }
.asfw-front-btn:hover { background: #4f46e5; }
.asfw-front-btn:disabled { background: #9ca3af; cursor: not-allowed; }

.asfw-form-group { margin-bottom: 15px; text-align: left; }
.asfw-form-group label { display: block; font-size: 13px; font-weight: 500; color: #4b5563; margin-bottom: 6px; }
.asfw-front-input { width: 100%; box-sizing: border-box; border: 1px solid #d1d5db !important; border-radius: 6px !important; height: 42px !important; padding: 0 12px !important; font-size: 14px !important; font-family: inherit; transition: 0.2s; background: #fff !important; }
.asfw-front-input:focus { outline: none !important; border-color: #6366f1 !important; box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2) !important; }
select.asfw-front-input { padding-right: 30px !important; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E") !important; background-position: right 10px center !important; background-repeat: no-repeat !important; background-size: 16px !important; }
textarea.asfw-front-input { height: auto !important; min-height: 100px; padding: 12px !important; }

/* Σχεδιασμός Προϊόντων */
.asfw-product-row { display: flex; align-items: center; border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px 15px; margin-bottom: 10px; transition: 0.2s; background: #fff; position: relative; z-index: 2; }
.asfw-product-row.selected { border-color: #6366f1; background: #fbfbfe; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 1px dashed #e5e7eb; margin-bottom: 0; }
.asfw-item-checkbox { width: 18px; height: 18px; margin-right: 15px; cursor: pointer; accent-color: #6366f1; }
.asfw-product-img { width: 50px; height: 50px; border-radius: 6px; object-fit: cover; margin-right: 15px; border: 1px solid #f3f4f6; background: #fff; }
.asfw-product-info { flex: 1; }
.asfw-product-info strong { display: block; font-size: 14px; color: #111827; line-height: 1.3; }
.asfw-product-info span { font-size: 12px; color: #6b7280; }
.asfw-item-options { background: #fbfbfe; padding: 15px; border-radius: 0 0 8px 8px; border: 1px solid #6366f1; border-top: none; margin-top: 0; margin-bottom: 15px; display: none; }

/* Διάταξη Επιλογών (Ποσότητα, Dropdown/Checkbox, Πεδίο Κειμένου) */
.asfw-options-grid { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.asfw-options-grid .asfw-checkbox-label { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #4b5563; margin: 0; cursor: pointer; }

/* ΤΟ ΠΕΔΙΟ ΚΕΙΜΕΝΟΥ ΣΠΑΕΙ ΠΑΝΤΑ ΣΤΗΝ ΕΠΟΜΕΝΗ ΓΡΑΜΜΗ (100% ΠΛΑΤΟΣ) ΣΕ DESKTOP & MOBILE */
.asfw-front-exchange-input { flex: 1 1 100% !important; margin-top: 5px; }

/* Navigation */
.asfw-back-btn { background: transparent; border: none; color: #6b7280; font-size: 14px; font-weight: 500; cursor: pointer; display: flex; align-items: center; gap: 5px; padding: 0; margin-bottom: 25px; transition: 0.2s; text-align: left; }
.asfw-back-btn:hover { color: #111827; }
.asfw-back-btn svg { width: 16px; height: 16px; }

@keyframes asfwFadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* =========================================
   MOBILE RESPONSIVENESS (max-width: 600px)
========================================= */
@media (max-width: 600px) {
    .asfw-step-container { padding: 25px 15px; }

    /* Ποσότητα στο 100% σε κινητά */
    .asfw-options-grid input[type="number"] { width: 100% !important; max-width: 100%; flex: 1 1 100%; }
    
    /* Dropdown και Checkbox αλλαγής σε κινητά */
    .asfw-options-grid .asfw-desire-wrapper { flex: 1 1 100% !important; margin: 0 !important; padding: 0 !important; border: none !important; }
    
    .asfw-options-grid label { font-size: 14px !important; padding: 10px 0; border-top: 1px dashed #d1d5db; border-bottom: 1px dashed #d1d5db; }
    
    /* Όταν η JavaScript προσθέτει display: grid; με δύο στήλες (1fr 1fr), τις κάνουμε ΜΙΑ (1fr) στα κινητά */
    .asfw-step-container form > div[style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
}