/* avis-wizard.css */

/* Reassurance section */
.avis-reassurance {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1px solid #0ea5e9;
  border-radius: 8px;
  padding: 1rem;
  margin-top: 1.5rem;
  position: relative;
  overflow: hidden;
}

.avis-reassurance::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, #0ea5e9, #0284c7);
}

.avis-reassurance-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.avis-reassurance-content {
  flex: 1;
}

.avis-reassurance-title {
  font-weight: 600;
  color: #0c4a6e;
  font-size: 0.875rem;
  margin-bottom: 0.25rem;
  letter-spacing: 0.025em;
}

.avis-reassurance-text {
  color: #075985;
  font-size: 0.8125rem;
  line-height: 1.4;
}

/* Responsive adjustments for reassurance */
@media (min-width: 480px) {
  .avis-reassurance {
    padding: 1.25rem;
    gap: 1rem;
  }
  
  .avis-reassurance-icon {
    font-size: 1.75rem;
  }
  
  .avis-reassurance-title {
    font-size: 0.9375rem;
  }
  
  .avis-reassurance-text {
    font-size: 0.875rem;
  }
}

/* Success message styling */
.avis-success-message {
  margin: 1rem 0;
}

.avis-success-message p {
  margin: 0;
  line-height: 1.5;
  color: #374151;
}

@media (min-width: 768px) {
  .avis-reassurance {
    padding: 1.5rem;
  }
  
  .avis-reassurance-icon {
    font-size: 2rem;
  }
  
  .avis-reassurance-title {
    font-size: 1rem;
  }
  
  .avis-reassurance-text {
    font-size: 0.9375rem;
  }
}

/* Photo upload section - Mobile First */
.avis-photos-section {
  margin-top: 1.5rem;
}

/* Container for drop zone and previews */
.avis-photos-container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.avis-drop-zone {
  border: 2px dashed #d1d5db;
  border-radius: 12px;
  padding: 2rem 1rem;
  text-align: center;
  background: #f9fafb;
  transition: all 0.3s ease;
  cursor: pointer;
  flex: 1;
}

.avis-drop-zone:hover,
.avis-drop-zone.drag-over {
  border-color: var(--accent);
  background: #f0f9ff;
  transform: translateY(-2px);
}

.avis-drop-zone.drag-over {
  border-style: solid;
  background: #e0f2fe;
}

.avis-drop-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.avis-drop-icon {
  font-size: 2.5rem;
  opacity: 0.6;
}

.avis-drop-text {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.avis-drop-main {
  font-weight: 600;
  color: #374151;
  font-size: 1rem;
}

.avis-drop-sub {
  font-size: 0.875rem;
  color: #6b7280;
}

.avis-btn-secondary {
  background: white;
  color: var(--accent);
  border: 2px solid var(--accent);
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.avis-btn-secondary:hover {
  background: var(--accent);
  color: white;
}

/* Photos preview - Mobile first (horizontal below) */
.avis-photos-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-height: 0;
}

.avis-photo-item {
  position: relative;
  width: 50px;
  height: 50px;
  border-radius: 6px;
  overflow: hidden;
  background: #f3f4f6;
  border: 2px solid #e5e7eb;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.avis-photo-item:hover {
  border-color: var(--accent);
  transform: scale(1.05);
}

.avis-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.avis-photo-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  background: rgba(239, 68, 68, 0.9);
  color: white;
  border: none;
  border-radius: 50%;
  font-size: 12px;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}

.avis-photo-remove:hover {
  background: rgba(239, 68, 68, 1);
  transform: scale(1.1);
}

.avis-photo-loading {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}

.avis-photo-error {
  position: absolute;
  inset: 0;
  background: rgba(239, 68, 68, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dc2626;
  font-size: 0.6rem;
  text-align: center;
  padding: 0.125rem;
}

/* Responsive adjustments */
@media (min-width: 480px) {
  .avis-drop-zone {
    padding: 2.5rem 2rem;
  }
  
  .avis-drop-icon {
    font-size: 3rem;
  }
  
  .avis-drop-main {
    font-size: 1.125rem;
  }
}

/* Desktop layout - side by side */
@media (min-width: 768px) {
  .avis-photos-container {
    flex-direction: row;
    align-items: flex-start;
    gap: 1.5rem;
  }
  
  .avis-drop-zone {
    flex: 1;
    min-height: 200px;
  }
  
  /* Photos preview - vertical on the right */
  .avis-photos-preview {
    flex-direction: column;
    width: 90px;
    max-height: 400px;
    overflow-y: auto;
    flex-shrink: 0;
  }
  
  .avis-photo-remove {
    width: 22px;
    height: 22px;
    top: 3px;
    right: 3px;
    font-size: 13px;
  }
}

/* Large screens */
@media (min-width: 1024px) {
  .avis-photos-preview {
    width: 100px;
  }
  
  .avis-photo-item {
    width: 50%;
    height: 50px;
  }
}

:root{
  --bg:#E0F2FE;--card:#fff;--ink:#1f2937;--muted:#6b7280;--primary:#6366F1;--primary-600:#4F46E5;--dotgrd:#d3eeff;--accent:#F59E0B;--line:#e5e7eb;--radius:16px;--shadow:0 10px 25px rgba(0,0,0,.06);--success:#10B981;--error:#EF4444;--warning:#F59E0B;--nps-red:#EF4444;--nps-orange:#F59E0B;--nps-green:#10B981
}
.avis-content h2{margin-top: 0 !important;margin-bottom: 0 !important;}
.avis-content h4{margin-top: 0 !important;}
.avis-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:860px;margin:32px auto;padding:0 0 8px}
.avis-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px}
.avis-title{font-size:clamp(18px,2.6vw,22px);font-weight:700}
.avis-progress{flex:1;display:flex;gap:8px}
.avis-dot{flex:1;height:8px;border-radius:999px;background:#eef2ff;position:relative;overflow:hidden}
.avis-dot.active::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--primary),var(--dotgrd))}
.avis-content{padding:20px}
.avis-step{display:none;animation:avisfade .22s ease}
.avis-step.active{display:block}
@keyframes avisfade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.avis-grid{display:grid;gap:12px}
.avis-grid-1{grid-template-columns:1fr}
@media(min-width:720px){.avis-grid-2{grid-template-columns:1fr 1fr;gap:16px}}

/* New ratings grid layout - 2 columns for stars */
.avis-ratings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.avis-rating-item{text-align:left;padding:10px}
.avis-rating-item h4{display:block;margin-bottom:8px;font-size:20px;font-weight:600}
.avis-rating-item label{display:block;margin-bottom:8px;font-size:26px;font-weight:600}

/* Average display */
.avis-average{background:#f0f9ff;border:1px solid #bae6fd;padding:12px;border-radius:8px;margin:0;text-align:center;color:#0369a1}
label{font-weight:600}
.avis-input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:1rem}
textarea{min-height:120px;resize:vertical}
.avis-help{color:var(--muted);font-size:.9rem;margin-top:6px}
.avis-legal{background:#f8f5ff;border:1px dashed #d6ccff;padding:12px;border-radius:12px;color:#4b5563}
.avis-stars{display:flex;gap:6px;font-size:28px;line-height:1}
.avis-stars input{display:none !important;visibility:hidden;opacity:0;position:absolute;left:-9999px}
.avis-stars label{color:#d1d5db;cursor:pointer;transition:color 0.2s ease}
.avis-stars label:hover{color:var(--accent)}
.avis-stars input:checked ~ label{color:var(--accent)}
.avis-nps{display:grid;gap:10px;margin-top:10px;margin-bottom:20px}
.avis-nps-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.avis-nps-row input{display:none !important;visibility:hidden;opacity:0;position:absolute;left:-9999px}
.avis-nps-row label{border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-width:32px;text-align:center;font-weight:700;cursor:pointer;transition:all 0.2s ease;font-size:0.875rem}
.avis-nps-row input:checked + label{border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.15) inset}
.avis-nps-row label.nps-red{background-color:var(--nps-red);color:white;border-color:var(--nps-red)}
.avis-nps-row label.nps-orange{background-color:var(--nps-orange);color:white;border-color:var(--nps-orange)}
.avis-nps-row label.nps-green{background-color:var(--nps-green);color:white;border-color:var(--nps-green)}
.avis-nps-row label.nps-red-light{background-color:rgba(239, 68, 68, 0.2);color:#DC2626;border-color:rgba(239, 68, 68, 0.3)}
.avis-nps-row label.nps-orange-light{background-color:rgba(245, 158, 11, 0.2);color:#D97706;border-color:rgba(245, 158, 11, 0.3)}
.avis-nps-row label.nps-green-light{background-color:rgba(16, 185, 129, 0.2);color:#059669;border-color:rgba(16, 185, 129, 0.3)}
.avis-nps-container{position:relative;width:100%;max-width:100%;overflow:hidden}
.avis-nps-legend{display:flex;color:var(--muted);font-size:.8rem;margin-top:8px;position:relative;width:100%;justify-content:space-between}
.avis-nps-legend span:first-child{position:static}
.avis-nps-legend span:last-child{position:static}

/* Mobile responsive adjustments for NPS */
@media (max-width: 480px) {
  .avis-nps-row {
    gap: 4px;
    justify-content: space-between;
  }
  
  .avis-nps-row label {
    min-width: 28px;
    padding: 4px 6px;
    font-size: 0.75rem;
    border-radius: 6px;
    flex: 1;
    max-width: calc((100% - 40px) / 11);
  }
  
  .avis-nps-legend {
    font-size: 0.75rem;
    margin-top: 6px;
  }
}

/* Tablet adjustments */
@media (min-width: 481px) and (max-width: 768px) {
  .avis-nps-row label {
    min-width: 36px;
    padding: 6px 8px;
    font-size: 0.8rem;
  }
}

/* Desktop adjustments */
@media (min-width: 769px) {
  .avis-nps-row label {
    min-width: 38px;
    padding: 8px 10px;
    font-size: 0.875rem;
    border-radius: 10px;
  }
  
  .avis-nps-row {
    gap: 8px;
  }
  
  .avis-nps-legend {
    font-size: 0.9rem;
  }
}
.avis-file{display:block;padding:12px;border:1px dashed var(--line);border-radius:10px;background:#fff}

/* Submission overlay and spinner */
.avis-submission-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  border-radius: var(--radius);
}

.avis-submission-content {
  text-align: center;
  padding: 2rem;
}

.avis-submission-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f4f6;
  border-top: 4px solid var(--primary);
  border-radius: 50%;
  animation: avis-spin 1s linear infinite;
  margin: 0 auto 1rem;
}

.avis-submission-text {
  color: var(--ink);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.avis-submission-text small {
  display: block;
  margin-top: 0.5rem;
  font-weight: 400;
  color: var(--muted);
  font-size: 0.875rem;
}

/* Button spinner */
.avis-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top: 2px solid #fff;
  border-radius: 50%;
  animation: avis-spin 1s linear infinite;
  margin-right: 8px;
  vertical-align: middle;
}

@keyframes avis-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Ensure form has relative positioning for overlay */
#avisWizardForm {
  position: relative;
}
.avis-footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.avis-btn{appearance:none;border:none;border-radius:10px;padding:12px 16px;font-weight:700;cursor:pointer}
.avis-btn-ghost{background:#fff;border:1px solid var(--line)}
.avis-btn-primary{background:var(--primary);color:#fff}
.avis-btn-primary:hover{background:var(--primary-600)}
.avis-btn[disabled]{opacity:.55;cursor:not-allowed}
.avis-success{max-width:860px;margin:16px auto;padding:16px 18px;border:1px solid #bbf7d0;background:#ecfccb;border-radius:12px}
.avis-error{border-color:#fecaca;background:#fee2e2}

/* Accessibility helpers */
[aria-live]{outline:0}

/* Container in page */
#avisWizardWrap{padding:0 12px}

/* Notification styles */
.avis-notification {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 14px;
    font-weight: 500;
    display: none;
}

.avis-notification.error {
    background-color: #FEF2F2;
    border: 1px solid #FECACA;
    color: #DC2626;
}

.avis-notification.success {
    background-color: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #16A34A;
}

.avis-notification.show {
    display: block;
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Error state for inputs */
.avis-input.error,
.avis-input.error:focus {
    border-color: var(--error);
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

/* Error state for checkboxes */
.avis-check input[type="checkbox"].error {
    border: 2px solid var(--error) !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
    outline: none;
}

.avis-field-error {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--error);
    font-size: 12px;
    margin-top: 4px;
}

.avis-field-error::before {
    content: "✕";
    font-weight: bold;
}

/* Step separator */
.avis-step-separator {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--line), transparent);
    margin: 24px 40px;
}

/* Anonymous section styling */
.avis-anonymous-section {
    margin-top: 24px;
    padding-top: 20px;
}

/* Success panel */
.avis-success-panel {
    text-align: center;
    padding: 40px 20px;
}

/* Mobile adjustments for success panel */
@media (max-width: 480px) {
  .avis-success-panel { padding: 0px; }
  .avis-success-icon{ margin-bottom: 0px; }
}

.avis-success-panel h2 {
    font-size: 2.5rem;
    color: var(--success);
    margin-bottom: 16px;
    font-weight: 700;
}

.avis-success-panel p {
    font-size: 1.1rem;
    color: var(--muted);
    line-height: 1.6;
    max-width: 400px;
    margin: 0 auto;
}

.avis-success-icon {
    font-size: 4rem;
    color: var(--success);
    margin-bottom: 20px;
}

/* TrustPilot section */
.avis-trustpilot-section {
    margin-top: 30px;
    padding: 20px;
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.avis-trustpilot-content h3 {
    color: #0369a1;
    font-size: 1.2rem;
    margin-bottom: 8px;
    font-weight: 600;
}

.avis-trustpilot-content p {
    color: #0f766e;
    font-size: 1rem;
    margin-bottom: 20px;
    line-height: 1.5;
}

.avis-trustpilot-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #0e5a41;
    color: white;
    padding: 12px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 182, 122, 0.2);
}

.avis-trustpilot-btn:hover {
    background: #009f6b;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 182, 122, 0.3);
    color: white;
    text-decoration: none;
}

.avis-trustpilot-btn img {
    width: 20px;
    height: 20px;
}

/* Check styling improvements */
.avis-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0;
    cursor: pointer;
}

.avis-check input[type="checkbox"] {
    width: auto;
    margin: 0;
    flex-shrink: 0;
}

.avis-check span {
    font-weight: 400;
    line-height: 1.4;
}

/* Mobile responsive adjustments for consent panel (step 4) */
@media (max-width: 480px) {
  .avis-check {
    gap: 6px;
    margin: 6px 0;
  }
  
  .avis-check span {
    font-size: 0.8rem;
    line-height: 1.3;
  }
  
  /* Override existing reassurance styles for mobile */
  .avis-reassurance-title {
    font-size: 0.8rem !important;
  }
  
  .avis-reassurance-text {
    font-size: 0.75rem !important;
  }
}

@media (min-width: 481px) and (max-width: 768px) {
  .avis-check span {
    font-size: 0.875rem;
  }
}