.oc-quiz-frontend {
  /* Couleurs pilotées par le thème (fallback inclus) */
  --ocq-primary: var(--e-global-color-secondary, #14A7E3);
  --ocq-primary-2: var(--e-global-color-primary, #10b981);
  --ocq-accent: var(--e-global-color-accent, #ea580c);
  --ocq-gradient: linear-gradient(135deg, var(--ocq-primary), var(--ocq-primary-2));
  --ocq-gray-50:#f9fafb; --ocq-gray-100:#f3f4f6; --ocq-gray-200:#e5e7eb; --ocq-gray-300:#d1d5db; --ocq-gray-700:#374151; --ocq-gray-900:#111827;
  font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  background: transparent;
  padding: 16px;
  border-radius: 16px;
}

.oc-quiz-frontend .ocq-questions {
  max-width: 1000px;
  margin: 0 auto;
}

.oc-quiz-frontend .ocq-question {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid var(--ocq-gray-200);
  border-radius: 12px;
  background:#fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.oc-quiz-frontend .ocq-question h4 {
  margin: 0 0 12px 0;
  font-size: 18px;
  color: var(--ocq-gray-900);
}

.oc-quiz-frontend .ocq-answers {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.oc-quiz-frontend .ocq-answers label {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--ocq-gray-200);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.oc-quiz-frontend .ocq-answers label:hover {
  border-color: var(--ocq-primary);
  box-shadow: 0 0 0 3px rgba(249,115,22,0.12);
}

.oc-quiz-frontend .ocq-answers label input {
  width: 18px; height: 18px;
}

.oc-quiz-frontend .ocq-answers label input:checked + span {
  font-weight: 600;
  color: var(--ocq-gray-900);
}

.oc-quiz-frontend .ocq-actions { margin: 20px 0; display:flex; justify-content:center; }

.oc-quiz-frontend .ocq-submit {
  background: var(--ocq-gradient);
  color: #fff; border: 0; padding: 12px 20px; border-radius: 999px; cursor:pointer;
  font-weight: 700; letter-spacing:.2px; box-shadow: 0 6px 18px rgba(249,115,22,0.25);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.oc-quiz-frontend .ocq-submit:hover { transform: translateY(-1px); filter: brightness(1.03); box-shadow: 0 8px 22px rgba(249,115,22,0.28); }

.oc-quiz-frontend .ocq-results {
  margin: 20px 0; padding: 16px; border: 1px solid var(--ocq-gray-200); border-radius: 14px; background:#fff;
}
.oc-quiz-frontend .ocq-results h3 { margin: 0 0 10px 0; font-size: 20px; color: var(--ocq-gray-900); }
.oc-quiz-frontend .ocq-results h4 { margin: 14px 0 6px; font-size: 16px; color: var(--ocq-gray-700); }
.oc-quiz-frontend .ocq-list { list-style: none; padding-left: 0; margin: 0; }
.oc-quiz-frontend .ocq-list li { padding: 6px 0; border-bottom: 1px dashed var(--ocq-gray-200); }
.oc-quiz-frontend .ocq-list li:last-child { border-bottom: 0; }
.oc-quiz-frontend .ocq-results a { color: var(--ocq-primary); font-weight: 600; text-decoration: none; }
.oc-quiz-frontend .ocq-results a:hover { text-decoration: underline; }

/* Intro - Style O'Care */
.oc-quiz-frontend .ocq-intro { 
  text-align: center;
  padding: 40px 24px;
  background: #fff;
  border: none;
  border-radius: 0;
  max-width: 1000px;
  margin: 0 auto 24px;
}

.oc-quiz-frontend .ocq-intro-tagline {
  color: #0A689A;
  text-align: center;
  font-family: Raleway, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 800;
  line-height: 80.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}

.oc-quiz-frontend .ocq-intro-title {
  color: #0B557C;
  text-align: center;
  font-family: Raleway, sans-serif;
  font-size: 59.76px;
  font-style: normal;
  font-weight: 800;
  line-height: 65px;
  margin: 0 0 20px 0;
}

.oc-quiz-frontend .ocq-intro-subtitle {
  color: #0B557C;
  text-align: center;
  font-family: Raleway, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 0.16px;
  margin: 0 0 8px 0;
}

.oc-quiz-frontend .ocq-intro-actions { 
  display: flex; 
  justify-content: center; 
  margin-top: 24px; 
}

.oc-quiz-frontend .ocq-start {
  background: #0B7AA4;
  color: #fff; 
  border: 0; 
  padding: 16px 32px; 
  border-radius: 8px; 
  cursor: pointer;
  font-weight: 700; 
  font-size: 15px;
  letter-spacing: 0.5px; 
  box-shadow: 0 4px 12px rgba(11, 122, 164, 0.3);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.oc-quiz-frontend .ocq-start:hover { 
  transform: translateY(-2px); 
  background: #0B4F6C;
  box-shadow: 0 6px 20px rgba(11, 122, 164, 0.4); 
}

/* Validation */
.oc-quiz-frontend .ocq-error {
  margin: 8px 0 10px;
  padding: 10px 12px;
  border: 1px solid #fca5a5;
  background: #fef2f2;
  color: #991b1b;
  border-radius: 10px;
  font-weight: 600;
}
.oc-quiz-frontend .ocq-question.ocq-missing {
  border-color: #fca5a5;
  box-shadow: 0 0 0 3px rgba(252, 165, 165, 0.35);
}

/* Consent gate */
.oc-quiz-frontend .ocq-consent {
  margin: 16px 0; padding: 16px; border:1px solid var(--ocq-gray-200); border-radius: 12px; background: #fff;
}
.oc-quiz-frontend .ocq-consent .ocq-field { display:flex; flex-direction:column; gap:6px; margin-bottom: 10px; }
.oc-quiz-frontend .ocq-consent .ocq-label { font-weight:700; color: var(--ocq-gray-900); }
.oc-quiz-frontend .ocq-consent .ocq-input { border:1px solid var(--ocq-gray-200); border-radius:10px; padding:10px 12px; font-size: 14px; }
.oc-quiz-frontend .ocq-consent .ocq-consent-check { display:flex; align-items:center; gap:10px; font-size: 14px; }
.oc-quiz-frontend .ocq-consent .ocq-consent-error { margin-top:6px; color:#991b1b; background:#fef2f2; border:1px solid #fca5a5; border-radius:8px; padding:8px 10px; font-weight:600; }
.oc-quiz-frontend .ocq-consent .ocq-consent-actions { display:flex; justify-content:center; }
.oc-quiz-frontend .ocq-consent .ocq-consent-submit {
  background: var(--ocq-gradient);
  color:#fff; border:0; padding:10px 16px; border-radius:999px; cursor:pointer; font-weight:700; letter-spacing:.2px;
  box-shadow: 0 6px 18px rgba(249,115,22,0.20); transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.oc-quiz-frontend .ocq-consent .ocq-consent-submit:hover { transform: translateY(-1px); filter: brightness(1.03); box-shadow: 0 8px 22px rgba(249,115,22,0.26); }

/* Products grid - horizontal layout */
.oc-quiz-frontend .ocq-products { display:flex; flex-wrap:wrap; gap:20px; justify-content:center; margin-top:8px; }
.oc-quiz-frontend .ocq-product { 
  display:flex; 
  flex-direction:column; 
  gap:12px; 
  border:1px solid var(--ocq-gray-200); 
  border-radius:16px; 
  padding:16px; 
  background:#fff; 
  text-decoration:none; 
  color:inherit; 
  transition: box-shadow .3s ease, transform .2s ease, border-color .3s ease;
  width: 280px;
  max-width: 100%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.oc-quiz-frontend .ocq-product:hover { 
  border-color: var(--ocq-primary); 
  box-shadow: 0 12px 32px rgba(20,167,227,0.15); 
  transform: translateY(-4px); 
}
.oc-quiz-frontend .ocq-product-img { 
  width:100%; 
  aspect-ratio: 1/1; 
  background: var(--ocq-gray-100); 
  border-radius:12px; 
  overflow:hidden; 
  display:flex; 
  align-items:center; 
  justify-content:center;
  border: 1px solid var(--ocq-gray-200);
}
.oc-quiz-frontend .ocq-product-img img { 
  width:100%; 
  height:100%; 
  object-fit:cover; 
  display:block;
  transition: transform .3s ease;
}
.oc-quiz-frontend .ocq-product:hover .ocq-product-img img {
  transform: scale(1.05);
}
.oc-quiz-frontend .ocq-product-title { 
  font-weight:700; 
  color: var(--ocq-gray-900); 
  font-size: 16px; 
  line-height:1.4;
  text-align: center;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.oc-quiz-frontend .ocq-product-note { 
  margin-top:8px; 
  padding-top:8px; 
  border-top:1px dashed var(--ocq-gray-200); 
  color: var(--ocq-gray-700); 
  font-size: 14px; 
}
.oc-quiz-frontend .ocq-product-note ul { margin: 0; padding-left: 18px; }

.oc-quiz-frontend .ocq-pagination { display:flex; gap:10px; align-items:center; justify-content:center; margin: 12px 0 16px; }
.oc-quiz-frontend .ocq-pagination .ocq-prev,
.oc-quiz-frontend .ocq-pagination .ocq-next {
  background: var(--ocq-gradient);
  color:#fff;
  border:0;
  padding:10px 16px;
  border-radius:999px;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.2px;
  box-shadow: 0 6px 18px rgba(249,115,22,0.20);
  transition: transform .15s ease, box-shadow .2s ease, filter .2s ease;
}
.oc-quiz-frontend .ocq-pagination .ocq-prev:hover,
.oc-quiz-frontend .ocq-pagination .ocq-next:hover { transform: translateY(-1px); filter: brightness(1.03); box-shadow: 0 8px 22px rgba(249,115,22,0.26); }
.oc-quiz-frontend .ocq-pagination .ocq-prev:focus-visible,
.oc-quiz-frontend .ocq-pagination .ocq-next:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(249,115,22,0.20), 0 6px 18px rgba(249,115,22,0.20); }
.oc-quiz-frontend .ocq-pagination .ocq-prev[disabled],
.oc-quiz-frontend .ocq-pagination .ocq-next[disabled]{ opacity:0.5; cursor:not-allowed; filter: grayscale(0.2) brightness(0.95); box-shadow:none; transform:none; }
.oc-quiz-frontend .ocq-page-indicator { color: var(--ocq-gray-700); font-size: 14px; font-weight:600; }

@media (max-width: 719px) {
  .oc-quiz-frontend .ocq-intro-title { font-size: 30px; line-height: 35px; }
  .oc-quiz-frontend .ocq-intro-tagline { font-size: 12px; line-height: 20px; }
}

@media (min-width: 720px) {
  .oc-quiz-frontend .ocq-answers { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
