/* ==========================================================================
   Consultation page (page-consultation.php). Builds on main.css components.
   ========================================================================== */

.pe-consultation .section-head h2 { text-wrap: balance; }

/* ---------- Hero ---------- */
.cs-hero { padding: 72px 0 88px; }
.cs-hero-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); gap: 56px; align-items: center; }
.cs-hero .hl { background: none; color: var(--green-500); -webkit-text-fill-color: currentColor; }
.cs-hero .hl::after { display: none; }
.cs-hero-copy > p { margin-bottom: 30px; }
.cs-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.cs-hero-actions .btn-whatsapp i { font-size: 1.15rem; }
.cs-hero-points { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.cs-hero-points li { display: flex; align-items: center; gap: 9px; font-size: 0.95rem; font-weight: 600; color: #fff; }
.cs-hero-points .check-dot { background: rgba(95, 174, 78, 0.2); color: var(--green-500); }

/* Who you will speak with */
.cs-host {
  position: relative; overflow: hidden; padding: 30px 28px 26px; border-radius: var(--radius-lg);
  background: #fff; color: var(--ink-2); box-shadow: var(--shadow-lg);
}
.cs-host::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--grad); }
.page-hero .cs-host p { max-width: none; font-size: 0.95rem; }
.page-hero .cs-host .cs-host-label { margin: 0 0 16px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--green-700); }
.cs-host .advisor-head { margin-bottom: 18px; }
.cs-host-avatar { display: inline-flex; flex: none; border-radius: 50%; box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--green-100); }
.cs-host-avatar .advisor-photo, .cs-host-avatar .advisor-initials { width: 72px; height: 72px; }
.cs-host-avatar .advisor-initials { font-size: 1.45rem; }
.page-hero .cs-host .cs-host-name { margin: 0 0 2px; font-size: 1.3rem; font-weight: 800; line-height: 1.25; letter-spacing: -0.02em; color: var(--ink); }
.page-hero .cs-host .advisor-head p:not(.cs-host-name) { color: var(--muted); }
.cs-host-chips { margin-bottom: 20px; }
.cs-host-chips .icon { width: 14px; height: 14px; }
.cs-host-chips .chip.leaf { color: #2f6b28; } /* AA contrast on the light green chip */
.cs-host-facts { display: grid; gap: 10px; margin-bottom: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.cs-host-facts li { display: flex; align-items: flex-start; gap: 11px; font-size: 0.94rem; line-height: 1.5; }
.cs-host-facts .icon { width: 18px; height: 18px; margin-top: 2px; color: var(--green-700); }
.cs-host-facts strong { color: var(--ink); }
.cs-host .link-arrow { font-size: 0.94rem; }

/* ---------- What we cover ---------- */
.cs-cover-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 64px; align-items: center; }
.cs-sub { margin: 30px 0 0; font-size: 1.05rem; }
.cs-checklist { margin: 14px 0 0; }
.cs-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cs-topic { padding: 26px; }
.cs-topic .icon-box { width: 50px; height: 50px; margin-bottom: 18px; }
.cs-topic .icon-box .icon { width: 24px; height: 24px; }
.cs-topic h3 { margin-bottom: 6px; font-size: 1.06rem; }
.cs-topic p { margin: 0; font-size: 0.95rem; }

/* ---------- Who it is for ---------- */
.cs-who-grid .card h3 { margin-bottom: 8px; font-size: 1.08rem; }
.cs-who-grid .card p { margin: 0; font-size: 0.95rem; }

/* ---------- How it works ---------- */
.cs-steps .step h3 { margin-bottom: 10px; }
.cs-steps-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 24px; margin-top: 44px; }
.cs-steps-foot span { font-weight: 600; font-size: 0.95rem; color: var(--on-dark); }
.cs-book-note { display: flex; justify-content: center; gap: 10px; max-width: 760px; margin: 22px auto 0; font-size: 0.9rem; color: var(--on-dark); }
.cs-book-note .icon { width: 17px; height: 17px; margin-top: 3px; color: var(--green-500); }
.cs-book-note a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- How to prepare ---------- */
.cs-prep-grid { display: grid; grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr); gap: 56px; align-items: start; }
.cs-prep-intro .lead { margin-bottom: 0; }
.cs-cas { margin-top: 28px; }
.cs-cas p { font-size: 0.95rem; color: var(--ink-2); }
.cs-cas a, .cs-faq-more a { color: var(--green-700); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cs-prep-card { padding: 34px; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.cs-prep-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; }
.cs-prep-list li { display: flex; gap: 14px; }
.cs-prep-list .icon-box { width: 44px; height: 44px; margin: 0; flex: none; border-radius: 12px; }
.cs-prep-list .icon-box .icon { width: 21px; height: 21px; }
.cs-prep-list .icon-box i { font-size: 1.05rem; }
.cs-prep-list h3 { margin-bottom: 4px; font-size: 1rem; }
.cs-prep-list p { margin: 0; font-size: 0.93rem; color: var(--muted); }
.cs-prep-foot {
  display: flex; align-items: flex-start; gap: 10px; margin: 28px 0 0; padding: 14px 16px; border-radius: 14px;
  background: var(--gold-100); color: #6b4a05; font-weight: 600; font-size: 0.93rem;
}
.cs-prep-foot .icon { width: 18px; height: 18px; margin-top: 2px; color: #9a6a06; }

/* ---------- Reassurance ---------- */
.cs-safe-box { padding: 44px; border-radius: 28px; background: #fff; border: 1px solid var(--line); }
.cs-safe-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 36px; }
.cs-safe-list h3 { margin-bottom: 6px; font-size: 1.04rem; }
.cs-risk {
  display: flex; align-items: center; gap: 12px; margin: 36px 0 0; padding: 16px 20px; border-radius: 14px;
  background: var(--bg-soft); border: 1px solid var(--line); font-weight: 700; font-size: 1rem; color: var(--ink);
}
.cs-risk .icon { width: 20px; height: 20px; color: var(--green-700); }
.cs-safe-extra { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin-top: 24px; }
.cs-safe-extra .panel { height: 100%; }
.cs-safe-extra .panel p { color: var(--ink-2); }
.cs-panel-links { display: flex; flex-wrap: wrap; gap: 10px 26px; }

/* ---------- FAQ ---------- */
.cs-faq-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cs-faq-actions .btn-whatsapp i { font-size: 1.05rem; }
.cs-more { display: grid; gap: 12px; margin-top: 26px; }
.cs-faq-more { margin-top: 10px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .cs-safe-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .cs-hero-grid, .cs-cover-grid, .cs-prep-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .cs-host { max-width: 560px; }
}

@media (max-width: 640px) {
  .cs-hero { padding: 52px 0 64px; }
  .cs-hero-actions .btn { flex: 1 1 100%; }
  .cs-hero-points { gap: 10px 18px; }
  .cs-host { padding: 26px 20px 22px; }
  .cs-host .advisor-head { gap: 14px; }
  .cs-topics, .cs-prep-list { grid-template-columns: minmax(0, 1fr); }
  .cs-topics { gap: 16px; }
  .cs-topic { padding: 22px 20px; }
  .cs-who-grid .card { flex-direction: row; align-items: flex-start; gap: 16px; padding: 22px 20px; }
  .cs-who-grid .icon-box { width: 46px; height: 46px; margin: 0; flex: none; border-radius: 13px; }
  .cs-steps-foot { margin-top: 32px; }
  .cs-steps-foot .btn { flex: 1 1 100%; }
  .cs-book-note { justify-content: flex-start; }
  .cs-prep-card { padding: 24px 20px; border-radius: 20px; }
  .cs-safe-box { padding: 28px 20px; border-radius: 22px; }
  .cs-safe-list { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .cs-risk { align-items: flex-start; padding: 14px 16px; font-size: 0.95rem; }
  .cs-risk .icon { margin-top: 2px; }
}
