/* ============================================================
   ASSESSMENT — category chooser cards
   ============================================================ */
.cat-card {
  display:flex; flex-direction:column; height:100%;
  background:var(--paper); border:1px solid var(--line); border-radius:22px;
  overflow:hidden; color:var(--ink);
  transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}
.cat-card:hover { transform:translateY(-5px); box-shadow:0 26px 54px rgba(28,36,25,0.12); border-color:rgba(28,36,25,0.16); }

.cat-image { position:relative; aspect-ratio:4/3; overflow:hidden; }
.cat-image img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.cat-card:hover .cat-image img { transform:scale(1.06); }

.cat-icon {
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:4/3; font-size:3rem;
  color:var(--cat-color, var(--sage));
  background:linear-gradient(135deg, rgba(138,170,124,0.12), rgba(93,122,81,0.06));
}

.cat-card h3 { font-size:1.3rem; font-weight:500; letter-spacing:-0.02em; color:var(--ink); margin:22px 24px 8px; }
.cat-card p  { font-size:14px; line-height:1.6; color:var(--ink-soft); margin:0 24px; flex:1; }
.cat-card .arrow {
  display:inline-flex; align-items:center; gap:6px;
  margin:18px 24px 24px; font-size:12.5px; font-weight:600;
  letter-spacing:0.04em; color:var(--sage-deep);
  transition:gap 0.3s var(--ease), color 0.3s;
}
.cat-card:hover .arrow { gap:12px; color:var(--ink); }

/* ============================================================
   QUESTIONNAIRE (questionnaire.php)
   ============================================================ */
.text-center { text-align:center; }
.section .container h1 { font-size:clamp(2rem,4vw,3.2rem); font-weight:500; letter-spacing:-0.03em; color:var(--ink); }

.q-card {
  background:var(--paper); border:1px solid var(--line); border-radius:24px;
  padding:clamp(28px,3.5vw,52px); box-shadow:0 24px 56px rgba(28,36,25,0.08);
}
.q-progress { height:5px; border-radius:5px; background:rgba(28,36,25,0.08); overflow:hidden; margin-bottom:36px; }
.q-progress-bar { height:100%; background:var(--sage); border-radius:5px; transition:width 0.4s var(--ease); }

.q-counter { font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-deep); margin-bottom:10px; }
.q-text { font-size:1.2rem; font-weight:500; letter-spacing:-0.01em; color:var(--ink); line-height:1.35; margin-bottom:18px; }

/* Radio / checkbox choices */
.choice {
  display:flex; align-items:center; gap:12px; cursor:pointer;
  padding:14px 18px; margin-bottom:10px;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  transition:border-color 0.25s, background 0.25s, transform 0.15s;
}
.choice:hover { border-color:rgba(138,170,124,0.6); background:rgba(138,170,124,0.05); }
.choice input { accent-color:var(--sage-deep); width:18px; height:18px; flex-shrink:0; }
.choice span { font-size:15px; color:var(--ink); }
.choice:has(input:checked) { border-color:var(--sage-deep); background:rgba(138,170,124,0.10); }

/* Scale row */
.scale-wrap { display:flex; flex-wrap:wrap; gap:10px; }
.scale-wrap label {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  padding:10px 16px; background:#fff; border:1px solid var(--line); border-radius:var(--r-pill);
  font-size:14px; color:var(--ink); transition:border-color 0.25s, background 0.25s;
}
.scale-wrap label:hover { border-color:rgba(138,170,124,0.6); }
.scale-wrap input { accent-color:var(--sage-deep); }

/* Free-text */
.q-block textarea {
  padding:14px 16px; font-family:var(--font); font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:14px; transition:border-color 0.25s;
}
.q-block textarea:focus { outline:none; border-color:var(--sage); }

/* Contact fields */
.divider-soft { height:1px; background:var(--line); border:none; margin:36px 0; }
.col-2 { min-width:0; }
.field { margin-bottom:16px; }
.field label { display:block; font-size:12.5px; font-weight:500; color:var(--ink-soft); margin-bottom:6px; }
.field input {
  width:100%; padding:13px 16px; font-family:var(--font); font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:12px; transition:border-color 0.25s;
}
.field input:focus { outline:none; border-color:var(--sage); }

/* ============================================================
   QUESTIONNAIRE WIZARD (multi-step)
   ============================================================ */
.q-progress-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.q-progress-label { font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-deep); }
.q-progress-pct { font-size:12px; font-weight:600; color:var(--ink-faint); }

.q-hint { font-size:13px; color:var(--ink-faint); margin:-4px 0 16px; }

/* Step transitions */
.q-step[hidden] { display:none; }
.q-step-in { animation:qStepIn 0.45s var(--ease); }
@keyframes qStepIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.q-shake { animation:qShake 0.4s var(--ease); }
@keyframes qShake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-7px)} 40%{transform:translateX(6px)} 60%{transform:translateX(-4px)} 80%{transform:translateX(3px)} }

.q-error { display:flex; align-items:center; gap:7px; margin-top:14px; font-size:13px; font-weight:500; color:#b4622f; }
.q-error[hidden] { display:none; }

/* Navigation row */
.q-nav { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:34px; padding-top:24px; border-top:1px solid var(--line); }
.q-back, .q-next {
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font); font-size:14px; font-weight:600; cursor:pointer;
  padding:13px 26px; border-radius:var(--r-pill); transition:all 0.25s var(--ease);
}
.q-back { background:transparent; border:1px solid var(--line); color:var(--ink-soft); }
.q-back:hover { border-color:var(--ink); color:var(--ink); }
.q-back[hidden] { display:none; }
.q-next { background:var(--ink); border:1px solid var(--ink); color:#fff; }
.q-next:hover { background:#11160e; transform:translateY(-2px); }
.q-next[hidden] { display:none; }
.q-submit[hidden] { display:none; }
.q-submit { margin-left:auto; }

/* Step dots */
.q-dots { display:flex; align-items:center; gap:8px; flex:1; justify-content:center; flex-wrap:wrap; }
.q-dot { width:8px; height:8px; border-radius:50%; background:rgba(28,36,25,0.15); transition:background 0.3s, width 0.4s var(--ease); cursor:pointer; }
.q-dot.is-done { background:var(--sage); }
.q-dot.is-active { background:var(--sage-deep); width:26px; border-radius:8px; }

@media(max-width:520px) {
  .q-nav { flex-wrap:wrap; }
  .q-dots { order:-1; width:100%; margin-bottom:6px; }
  .q-back, .q-next, .q-submit { flex:1; justify-content:center; }
}

/* ============================================================
   WIZARD — green panel, decorated backdrop, richer steps
   ============================================================ */
.q-wizard-section {
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, #ffffff 0%, #f3f7f0 100%);
}
/* Soft blurred green orbs filling the side whitespace */
.q-deco { position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0; }
.q-deco-1 { width:420px; height:420px; top:120px; left:-140px;
  background:radial-gradient(circle, rgba(138,170,124,0.40), transparent 70%); animation:qFloat 14s ease-in-out infinite alternate; }
.q-deco-2 { width:360px; height:360px; bottom:60px; right:-120px;
  background:radial-gradient(circle, rgba(93,122,81,0.30), transparent 70%); animation:qFloat 18s ease-in-out infinite alternate-reverse; }
.q-deco-3 { width:240px; height:240px; top:46%; left:52%;
  background:radial-gradient(circle, rgba(214,196,120,0.18), transparent 70%); animation:qFloat 22s ease-in-out infinite alternate; }
@keyframes qFloat { from { transform:translateY(0); } to { transform:translateY(-26px); } }
/* Faint dot grid texture */
.q-deco-grid { position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0.5;
  background-image:radial-gradient(rgba(28,36,25,0.06) 1px, transparent 1px); background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent);
          mask-image:linear-gradient(180deg, transparent, #000 25%, #000 75%, transparent); }
@media(prefers-reduced-motion:reduce) { .q-deco { animation:none; } }

/* Green panel — distinct from the page */
.q-card {
  position:relative; z-index:1;
  background:linear-gradient(180deg, #eef5ea 0%, #f6faf4 100%);
  border:1px solid rgba(138,170,124,0.34);
  box-shadow:0 30px 70px rgba(93,122,81,0.16), 0 2px 0 rgba(255,255,255,0.7) inset;
}

/* Remove duplicate counter — the progress head already shows position */
.q-step .q-counter { display:none; }

/* Bigger, clearer question text */
.q-text { font-size:clamp(1.25rem,1.9vw,1.55rem); margin-bottom:22px; }

/* Choices — interactive cards with a number/letter chip + check */
.choice {
  position:relative; gap:14px; padding:16px 18px 16px 20px; margin-bottom:12px;
  background:#ffffff; border:1.5px solid rgba(28,36,25,0.10); border-radius:16px;
  box-shadow:0 1px 2px rgba(28,36,25,0.04);
}
.choice::before { /* accent bar */
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:3px; height:0; border-radius:3px; background:var(--sage-deep); transition:height 0.3s var(--ease);
}
.choice:hover { border-color:rgba(138,170,124,0.7); background:rgba(138,170,124,0.06); transform:translateY(-2px); box-shadow:0 10px 24px rgba(93,122,81,0.10); }
.choice:hover::before { height:55%; }
.choice span { font-size:15.5px; font-weight:500; }
.choice:has(input:checked) {
  border-color:var(--sage-deep); background:rgba(138,170,124,0.14);
  box-shadow:0 8px 22px rgba(93,122,81,0.16);
}
.choice:has(input:checked)::before { height:70%; }
.choice input { width:20px; height:20px; }

/* Scale chips — selectable pills */
.scale-wrap label { font-weight:500; padding:11px 18px; }
.scale-wrap label:has(input:checked) { background:var(--sage-deep); border-color:var(--sage-deep); color:#fff; }
.scale-wrap label:has(input:checked) input { accent-color:#fff; }

/* Progress bar — slightly bolder, gradient fill */
.q-progress { height:7px; background:rgba(93,122,81,0.12); }
.q-progress-bar { background:linear-gradient(90deg, var(--sage), var(--sage-deep)); box-shadow:0 0 12px rgba(138,170,124,0.5); }

/* ============================================================
   WIZARD v2 — glossy green, premium assessment feel
   ============================================================ */
.q-card {
  padding:0; overflow:hidden; border-radius:28px;
  background:linear-gradient(180deg, #e7f1e1 0%, #f4faf1 60%, #ffffff 100%);
  border:1px solid rgba(138,170,124,0.40);
  box-shadow:0 40px 90px rgba(63,88,55,0.22), 0 2px 0 rgba(255,255,255,0.8) inset;
}

/* Glossy deep-green header band */
.q-card-head {
  position:relative; overflow:hidden;
  padding:clamp(24px,2.6vw,34px) clamp(26px,3vw,46px) clamp(22px,2.4vw,30px);
  background:linear-gradient(135deg, #2f5a44 0%, #244b39 50%, #1f3a2e 100%);
  color:#fff;
}
.q-card-head::before { /* glossy top sheen */
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 15% -20%, rgba(255,255,255,0.35), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.18), transparent 40%);
}
.q-card-head::after { /* subtle leaf-light orb */
  content:''; position:absolute; right:-40px; top:-50px; width:180px; height:180px; border-radius:50%;
  background:radial-gradient(circle, rgba(214,228,180,0.35), transparent 70%); pointer-events:none;
}
.q-card-head > * { position:relative; z-index:1; }
.q-card-head-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.q-card-cat { font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.92); }
.q-card-head .q-progress-pct { font-size:13px; font-weight:700; color:#fff; }
.q-card-head .q-progress-label { display:block; font-size:1.05rem; font-weight:600; letter-spacing:-0.01em; color:#fff; margin-bottom:14px; text-transform:none; }
.q-card-head .q-progress { height:8px; background:rgba(255,255,255,0.22); border-radius:8px; margin-bottom:0; }
.q-card-head .q-progress-bar { background:linear-gradient(90deg, #ffffff, #dcefca); box-shadow:0 0 14px rgba(255,255,255,0.6); border-radius:8px; }

/* Body padding (card now has no padding) */
.q-steps { padding:clamp(28px,3vw,44px) clamp(26px,3vw,46px) 0; }
.q-nav { margin:clamp(26px,3vw,38px) clamp(26px,3vw,46px) clamp(26px,3vw,40px); margin-top:clamp(24px,2.6vw,32px); }

/* Glossy choice cards */
.choice {
  background:linear-gradient(180deg, #ffffff, #fbfdfa);
  border:1.5px solid rgba(93,122,81,0.18);
  box-shadow:0 2px 4px rgba(63,88,55,0.06), 0 1px 0 rgba(255,255,255,0.9) inset;
}
.choice:hover {
  border-color:rgba(138,170,124,0.8);
  background:linear-gradient(180deg, #f3f9f0, #eafaef);
  box-shadow:0 12px 26px rgba(63,88,55,0.14);
}
.choice:has(input:checked) {
  border-color:#1f3a2e;
  background:linear-gradient(180deg, rgba(31,58,46,0.12), rgba(31,58,46,0.05));
  box-shadow:0 10px 26px rgba(31,58,46,0.18), 0 0 0 1px #1f3a2e inset;
}
.choice:has(input:checked)::before { background:#1f3a2e; }

/* Submit / next buttons — deep forest green */
.q-next, .q-submit.btn-primary {
  background:linear-gradient(135deg, #2f5a44, #1f3a2e) !important;
  border-color:#1f3a2e !important;
  box-shadow:0 10px 24px rgba(31,58,46,0.30);
}
.q-next:hover { box-shadow:0 14px 30px rgba(31,58,46,0.40); }

/* ============================================================
   ASSESSMENT INDEX — refined glossy green cards
   ============================================================ */
.row.reveal-stagger { counter-reset: catcard; }

.cat-card {
  position:relative; counter-increment: catcard;
  background:linear-gradient(180deg, #ffffff 0%, #f4faf1 100%);
  border:1px solid rgba(138,170,124,0.32);
  box-shadow:0 4px 18px rgba(63,88,55,0.06);
}
.cat-card:hover {
  border-color:rgba(138,170,124,0.7);
  box-shadow:0 30px 60px rgba(63,88,55,0.16);
}
.cat-image::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 45%, rgba(28,40,24,0.55) 100%);
}
.cat-image::before {
  content:counter(catcard, decimal-leading-zero);
  position:absolute; top:14px; left:14px; z-index:2;
  display:flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 10px;
  font-family:var(--serif); font-size:15px; color:#fff;
  background:rgba(63,88,55,0.55); border:1px solid rgba(255,255,255,0.4);
  border-radius:12px; backdrop-filter:blur(6px);
}
.cat-card h3 { font-family:var(--serif); font-weight:400; font-size:1.35rem; }

/* Arrow turns into a glossy green pill on hover */
.cat-card .arrow {
  padding:9px 18px; border-radius:var(--r-pill);
  background:rgba(138,170,124,0.14); border:1px solid rgba(138,170,124,0.32);
  align-self:flex-start;
}
.cat-card:hover .arrow {
  background:linear-gradient(135deg, #5d7a51, #3f5837); color:#fff; border-color:#3f5837;
  box-shadow:0 8px 20px rgba(63,88,55,0.26);
}

/* Page hero: warmer green wash + serif headline */
.page-hero h1 { font-weight:500; }
.page-hero h1 em { font-family:var(--serif); }

/* ============================================================
   PATHS — premium redesign of the 4 assessment cards
   ============================================================ */
.path-grid {
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:clamp(18px, 1.8vw, 28px); margin-top:clamp(36px, 4vh, 52px);
}
@media(max-width: 1080px){ .path-grid{ grid-template-columns:repeat(2, 1fr); } }
@media(max-width: 560px){  .path-grid{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; } }

.path-card {
  position:relative; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line);
  border-radius:22px; overflow:hidden; color:var(--ink); text-decoration:none;
  transition:transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s;
}
.path-card:hover {
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(31,58,46,0.14);
  border-color:rgba(31,58,46,0.18);
}

/* Media */
.path-card-media { position:relative; aspect-ratio:5/4; overflow:hidden; background:#eef0ea; margin:0; }
.path-card-media img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease), filter 0.5s; filter:saturate(0.95); }
.path-card:hover .path-card-media img { transform:scale(1.07); filter:saturate(1.05); }
.path-card-glyph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:3.4rem; color:rgba(31,58,46,0.35); }

.path-card-num {
  position:absolute; top:14px; left:14px; z-index:2;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:38px; height:38px; padding:0 12px; border-radius:99px;
  font-family:var(--serif); font-style:italic; font-size:15px; font-weight:400;
  color:#1f3a2e; background:rgba(255,255,255,0.92); border:1px solid rgba(255,255,255,0.6);
  backdrop-filter:blur(6px); letter-spacing:0.02em;
}
.path-card-tint { position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 30%, rgba(18,24,16,0.10) 70%, rgba(18,24,16,0.32) 100%); }

/* Body */
.path-card-body { display:flex; flex-direction:column; gap:10px; padding:clamp(22px, 1.8vw, 28px); flex:1; }
.path-card-for {
  font-size:10.5px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--sage-deep, #5d7a51);
}
.path-card-title {
  font-family:var(--serif); font-weight:400; font-style:normal;
  font-size:clamp(1.2rem, 1.5vw, 1.42rem); line-height:1.18; letter-spacing:-0.015em;
  color:var(--ink); margin:0;
}
.path-card-quote {
  position:relative; margin:6px 0 4px; padding:14px 16px;
  background:linear-gradient(180deg, rgba(138,170,124,0.10), rgba(138,170,124,0.04));
  border-left:2px solid var(--sage, #8aaa7c);
  border-radius:0 12px 12px 0;
  font-family:var(--serif); font-style:italic; font-size:14px; line-height:1.55;
  color:var(--ink);
}
.path-card-lead {
  display:flex; gap:8px; font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:0;
}
.path-card-arrow { color:var(--sage-deep, #5d7a51); font-weight:700; flex-shrink:0; }
.path-card-cta {
  margin-top:auto; padding-top:18px; border-top:1px dashed rgba(31,58,46,0.18);
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:#1f3a2e; transition:gap 0.3s var(--ease), color 0.3s;
}
.path-card:hover .path-card-cta { gap:14px; color:#16291f; }
.path-card-cta svg { transition:transform 0.3s var(--ease); }
.path-card:hover .path-card-cta svg { transform:translateX(4px); }

/* ============================================================
   MILESTONE WIZARD — rail, inputs, awards, effects
   ============================================================ */
.q-star { color:#b4622f; }
.q-input {
  width:100%; padding:14px 16px; font-family:var(--font); font-size:15px; color:var(--ink);
  background:#fff; border:1.5px solid rgba(93,122,81,0.18); border-radius:14px; transition:border-color 0.25s, box-shadow 0.25s;
}
.q-input:focus { outline:none; border-color:var(--sage-deep); box-shadow:0 0 0 3px rgba(138,170,124,0.18); }

/* Milestone rail */
.q-miles { display:flex; align-items:flex-start; justify-content:center; gap:0; flex-wrap:wrap;
  list-style:none; margin:0 auto 22px; padding:0; max-width:760px; counter-reset:none; }
.q-mile { position:relative; flex:1 1 0; min-width:64px; display:flex; flex-direction:column; align-items:center; gap:7px; cursor:pointer; }
.q-mile::before { content:''; position:absolute; top:17px; left:-50%; width:100%; height:2px; background:rgba(93,122,81,0.18); z-index:0; }
.q-mile:first-child::before { display:none; }
.q-mile.is-done::before, .q-mile.is-active::before { background:#1f3a2e; }
.q-mile-dot { position:relative; z-index:1; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:#fff;
  border:2px solid rgba(93,122,81,0.28); color:var(--sage-deep); transition:all 0.35s var(--ease); }
.q-mile-ic { font-size:16px; transition:opacity 0.2s; }
.q-mile-check { position:absolute; opacity:0; transform:scale(0.5); color:#fff; transition:opacity 0.2s, transform 0.3s var(--ease); }
.q-mile-name { font-size:10px; font-weight:600; letter-spacing:0.04em; color:var(--ink-faint); text-align:center; line-height:1.2; transition:color 0.3s; }
.q-mile.is-active .q-mile-dot { background:#1f3a2e; border-color:#1f3a2e; color:#fff; box-shadow:0 0 0 5px rgba(31,58,46,0.16), 0 6px 16px rgba(31,58,46,0.4); transform:scale(1.1); }
.q-mile.is-active .q-mile-name { color:var(--ink); }
.q-mile.is-done .q-mile-dot { background:#1f3a2e; border-color:#1f3a2e; }
.q-mile.is-done .q-mile-ic { opacity:0; }
.q-mile.is-done .q-mile-check { opacity:1; transform:scale(1); }
@media(max-width:620px){ .q-mile-name{display:none;} .q-miles{gap:0;} }

/* Step counter in nav */
.q-step-count { font-size:12px; font-weight:600; letter-spacing:0.08em; color:var(--ink-faint); flex:1; text-align:center; }

/* Scale with end labels */
.scale-wrap { align-items:center; gap:8px; }
.scale-end { font-size:11px; color:var(--ink-faint); font-weight:600; }
.scale-wrap .scale-pill { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0;
  border-radius:50%; background:#fff; border:1.5px solid rgba(93,122,81,0.22); font-weight:600; cursor:pointer;
  transition:all 0.2s var(--ease); position:relative; }
.scale-wrap .scale-pill input { position:absolute; opacity:0; inset:0; cursor:pointer; width:auto; height:auto; }
.scale-wrap .scale-pill:hover { border-color:var(--sage); transform:translateY(-2px); }
.scale-wrap .scale-pill:has(input:checked) { background:#1f3a2e; border-color:#1f3a2e; color:#fff; box-shadow:0 8px 18px rgba(31,58,46,0.32); }

/* ── Award overlay ── */
.q-award { position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(18,24,16,0.45); backdrop-filter:blur(5px); opacity:0; transition:opacity 0.3s; }
.q-award[hidden] { display:none; }
.q-award.is-open { opacity:1; }
.q-award-card { position:relative; text-align:center; max-width:380px; width:100%;
  background:linear-gradient(180deg, #ffffff, #f4faf1); border:1px solid rgba(138,170,124,0.4);
  border-radius:26px; padding:40px 32px 30px; box-shadow:0 40px 90px rgba(28,36,25,0.34);
  transform:scale(0.85) translateY(14px); transition:transform 0.4s var(--ease); }
.q-award.is-open .q-award-card { transform:none; }
.q-award-badge { display:inline-flex; align-items:center; justify-content:center; width:74px; height:74px; border-radius:50%;
  background:linear-gradient(135deg, #2f5a44, #1f3a2e); color:#fff; margin-bottom:18px;
  box-shadow:0 14px 30px rgba(31,58,46,0.42); animation:awardPop 0.5s var(--ease) both; }
.q-award-k { color:#1f3a2e; }
@keyframes awardPop { 0%{transform:scale(0) rotate(-30deg);} 60%{transform:scale(1.15) rotate(6deg);} 100%{transform:scale(1) rotate(0);} }
.q-award-k { font-size:11px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--sage-deep); }
.q-award-card h3 { font-family:var(--serif); font-weight:400; font-size:1.5rem; color:var(--ink); margin:8px 0 6px; }
.q-award-card p { font-size:14px; color:var(--ink-soft); margin-bottom:22px; }
.q-award-next { padding:12px 30px; border-radius:var(--r-pill); background:var(--ink); color:#fff; font-family:var(--font); font-size:14px; font-weight:600; transition:background 0.25s, transform 0.15s; }
.q-award-next:hover { background:#11160e; transform:translateY(-2px); }

/* Confetti */
.q-award-burst { position:absolute; left:0; right:0; top:30px; height:0; pointer-events:none; }
.q-award-burst i { position:absolute; top:0; width:9px; height:14px; border-radius:2px; opacity:0;
  animation:confetti 1.1s ease-out forwards; }
@keyframes confetti {
  0% { opacity:1; transform:translate(0,0) rotate(0); }
  100% { opacity:0; transform:translate(var(--dx), var(--dy)) rotate(var(--rot)); }
}
@media(prefers-reduced-motion:reduce){ .q-award-burst{display:none;} .q-award-badge{animation:none;} }

/* ============================================================
   WIZARD — trim blank space + top floating accents
   ============================================================ */
.q-wizard-section { padding-bottom:clamp(40px,6vh,72px) !important; }

.q-float {
  position:absolute; z-index:1; top:clamp(120px,16vh,180px);
  display:inline-flex; align-items:center; gap:9px;
  padding:10px 16px; border-radius:var(--r-pill);
  background:rgba(255,255,255,0.7); border:1px solid rgba(138,170,124,0.4);
  box-shadow:0 12px 30px rgba(63,88,55,0.12); backdrop-filter:blur(8px);
  font-size:12px; font-weight:600; color:var(--sage-deep); cursor:default;
  animation:qFloatBob 6s ease-in-out infinite alternate;
  transition:transform 0.3s var(--ease), box-shadow 0.3s;
}
.q-float b { font-size:15px; line-height:1; }
.q-float small { font-size:11px; letter-spacing:0.04em; color:var(--ink-soft); }
.q-float-l { left:clamp(12px,5vw,90px); animation-delay:0s; }
.q-float-r { right:clamp(12px,5vw,90px); animation-delay:1.4s; }
.q-float:hover { transform:translateY(-4px) scale(1.04); box-shadow:0 18px 40px rgba(63,88,55,0.2); }
@keyframes qFloatBob { from { transform:translateY(0); } to { transform:translateY(-10px); } }
@media(max-width:1080px){ .q-float{ display:none; } }
@media(prefers-reduced-motion:reduce){ .q-float{ animation:none; } }

/* ============================================================
   ENGAGEMENT STRIP — quotes + reassurance below the card
   ============================================================ */
.q-engage { position:relative; text-align:center; max-width:680px; margin:clamp(34px,5vh,56px) auto 0; padding:0 16px; }
.q-engage-mark { display:block; font-family:var(--serif); font-size:5rem; line-height:0.6; color:rgba(31,58,46,0.18); }
.q-quotes { position:relative; min-height:3.4em; margin-top:6px; }
.q-quote { position:absolute; inset:0; margin:0; font-family:var(--serif); font-style:italic;
  font-size:clamp(1.05rem,1.8vw,1.45rem); line-height:1.5; color:var(--ink);
  opacity:0; transform:translateY(8px); transition:opacity 0.7s var(--ease), transform 0.7s var(--ease); pointer-events:none; }
.q-quote.is-active { opacity:1; transform:none; }
.q-engage-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:clamp(28px,5vh,48px); }
.q-engage-chip { display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:var(--r-pill);
  background:rgba(255,255,255,0.7); border:1px solid rgba(31,58,46,0.14); backdrop-filter:blur(6px);
  font-size:12px; font-weight:600; color:var(--ink-soft); }
.q-engage-chip b { color:#1f3a2e; font-size:13px; }
@media(prefers-reduced-motion:reduce){ .q-quote{ transition:none; } }

/* ============================================================
   ASSESSMENT INDEX — "what happens next" steps
   ============================================================ */
.as-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,2vw,28px); list-style:none; margin:0; padding:0; }
@media(max-width:820px){ .as-steps{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .as-steps{ grid-template-columns:1fr; } }
.as-step { background:#fff; border:1px solid var(--line); border-radius:20px; padding:clamp(22px,2.2vw,30px);
  transition:transform 0.3s var(--ease), box-shadow 0.3s; }
.as-step:hover { transform:translateY(-4px); box-shadow:0 24px 50px rgba(28,36,25,0.10); }
.as-step-n { font-family:var(--serif); font-size:1.5rem; color:#1f3a2e; }
.as-step h3 { margin:10px 0 8px; font-size:1.05rem; font-weight:600; color:var(--ink); }
.as-step p { font-size:13.5px; line-height:1.6; color:var(--ink-soft); }
