/* =========================================================
   City Choice — Free Consultation page
   Scoped under .cc-consultation (rendered inside .cc-home, so
   brand tokens like --green-700 / --orange-grad are available).
   ========================================================= */

.cc-consultation .ccc-wrap{
  max-width:860px;
  padding-top:56px;
  padding-bottom:80px;
}
@media (max-width:880px){
  .cc-consultation .ccc-wrap{padding-top:36px;padding-bottom:56px}
}

/* ---------- Hero ---------- */
.cc-consultation .ccc-hero{text-align:center;margin-bottom:40px}
.cc-consultation .ccc-h1{
  font-size:clamp(32px,5vw,52px);
  font-weight:800;line-height:1.05;letter-spacing:-0.02em;
  color:var(--ink);margin:6px 0 14px;text-wrap:balance;
}
.cc-consultation .ccc-lede{
  font-size:clamp(17px,2.2vw,21px);color:var(--ink-2);
  max-width:560px;margin:0 auto;line-height:1.5;text-wrap:pretty;
}
.cc-consultation .hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;color:var(--orange-600);
  letter-spacing:1.4px;text-transform:uppercase;
}
.cc-consultation .hero-eyebrow .dot{
  width:7px;height:7px;border-radius:50%;background:var(--orange-500);display:inline-block;
}

.cc-consultation .ccc-section-title{
  font-size:clamp(22px,3vw,30px);font-weight:700;line-height:1.15;
  letter-spacing:-0.01em;color:var(--ink);margin:0;
}

/* ---------- Quiz ---------- */
.cc-consultation .ccc-quiz{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);padding:32px;
}
@media (max-width:880px){.cc-consultation .ccc-quiz{padding:22px 18px}}

.cc-consultation .ccc-quiz-head{margin-bottom:8px}
.cc-consultation .ccc-progress{
  margin-top:16px;height:8px;border-radius:999px;background:var(--green-100);overflow:hidden;
}
.cc-consultation .ccc-progress-bar{
  display:block;height:100%;width:0;border-radius:999px;
  background:var(--green-grad);transition:width .35s ease;
}
.cc-consultation .ccc-progress-text{
  margin-top:8px;font-size:13px;font-weight:600;color:var(--muted);
}

/* Question groups */
.cc-consultation .ccc-question{
  border:0;padding:0;margin:28px 0 0;min-width:0;
}
.cc-consultation .ccc-q-legend{
  display:flex;align-items:center;gap:12px;padding:0;
  font-size:clamp(17px,2.2vw,20px);font-weight:700;color:var(--ink);line-height:1.3;
  margin-bottom:14px;
}
.cc-consultation .ccc-q-num{
  flex:0 0 auto;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;font-size:15px;font-weight:700;
  background:var(--green-100);color:var(--green-800);
  transition:background .2s,color .2s;
}
.cc-consultation .ccc-question.is-answered .ccc-q-num{
  background:var(--green-600);color:#fff;
}

/* Option cards (radios styled as tappable buttons) */
.cc-consultation .ccc-options{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;
}
.cc-consultation .ccc-option{display:block;cursor:pointer;position:relative}
.cc-consultation .ccc-option input{
  position:absolute;opacity:0;width:1px;height:1px;margin:0;
}
.cc-consultation .ccc-option-box{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px;min-height:60px;
  border:2px solid var(--line);border-radius:var(--radius-lg);
  background:#fff;color:var(--ink);font-weight:600;font-size:15.5px;
  transition:border-color .15s,background .15s,box-shadow .15s,transform .12s;
}
.cc-consultation .ccc-option:hover .ccc-option-box{
  border-color:var(--green-500);background:var(--green-050);
}
.cc-consultation .ccc-option-box:active{transform:scale(.99)}
.cc-consultation .ccc-option-tick{
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;
  border:2px solid var(--line);display:grid;place-items:center;
  color:#fff;transition:background .15s,border-color .15s;
}
.cc-consultation .ccc-option-tick svg{width:14px;height:14px;opacity:0;transition:opacity .15s}
.cc-consultation .ccc-option-label{flex:1 1 auto}

/* Checked + keyboard focus states */
.cc-consultation .ccc-option input:checked + .ccc-option-box{
  border-color:var(--green-600);background:var(--green-050);
  box-shadow:0 0 0 3px rgba(43,169,114,.18);
}
.cc-consultation .ccc-option input:checked + .ccc-option-box .ccc-option-tick{
  background:var(--green-600);border-color:var(--green-600);
}
.cc-consultation .ccc-option input:checked + .ccc-option-box .ccc-option-tick svg{opacity:1}
.cc-consultation .ccc-option input:focus-visible + .ccc-option-box{
  outline:2px solid var(--green-700);outline-offset:2px;
}

/* ---------- Contact form (gated) ---------- */
.cc-consultation .ccc-contact{margin-top:28px}
.cc-consultation .ccc-contact.is-locked{
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .4s ease,transform .4s ease;
}
.cc-consultation .ccc-contact:not(.is-locked){opacity:1;transform:none}

.cc-consultation .ccc-contact-card{
  background:linear-gradient(180deg,var(--green-050),#fff);
  border:1px solid var(--green-100);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);padding:34px;
}
@media (max-width:880px){.cc-consultation .ccc-contact-card{padding:24px 18px}}

.cc-consultation .ccc-contact-copy{
  margin:14px 0 24px;font-size:16px;line-height:1.6;color:var(--ink-2);text-wrap:pretty;
}

.cc-consultation .ccc-field{margin-bottom:16px}
.cc-consultation .ccc-field label{
  display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px;
}
.cc-consultation .ccc-req{color:var(--orange-600)}
.cc-consultation .ccc-optional{color:var(--muted);font-weight:500;font-size:13px}
.cc-consultation .ccc-field input{
  width:100%;padding:14px 16px;font-size:16px;font-family:inherit;color:var(--ink);
  border:2px solid var(--line);border-radius:var(--radius-lg);background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.cc-consultation .ccc-field input:focus{
  outline:none;border-color:var(--green-600);box-shadow:0 0 0 3px rgba(43,169,114,.15);
}

/* Honeypot — kept in the DOM, hidden from humans + AT. */
.cc-consultation .ccc-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.cc-consultation .ccc-error{
  margin:0 0 14px;padding:12px 14px;border-radius:var(--radius);
  background:#fdecea;border:1px solid #f5c6c2;color:#8b1f17;font-size:14.5px;font-weight:500;
}

.cc-consultation .ccc-submit{
  width:100%;font-size:17px;padding:16px 28px;margin-top:4px;
}
.cc-consultation .ccc-submit[disabled]{opacity:.7;cursor:default}
.cc-consultation .ccc-trust-note{
  margin:14px 0 0;text-align:center;font-size:13.5px;color:var(--muted);
}

/* ---------- Success ---------- */
.cc-consultation .ccc-success{margin-top:28px}
.cc-consultation .ccc-success-card{
  text-align:center;background:#fff;border:1px solid var(--green-100);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:48px 32px;
}
.cc-consultation .ccc-success-ico{
  display:inline-grid;place-items:center;width:72px;height:72px;border-radius:50%;
  background:var(--green-100);color:var(--green-700);margin-bottom:18px;
}
.cc-consultation .ccc-success-ico svg{width:36px;height:36px}
.cc-consultation .ccc-success-copy{
  margin:12px auto 24px;font-size:17px;color:var(--ink-2);max-width:420px;line-height:1.55;
}

/* ---------- Small screens ---------- */
@media (max-width:520px){
  .cc-consultation .ccc-options{grid-template-columns:1fr}
  .cc-consultation .ccc-option-box{min-height:54px}
}
