.contact-body { padding-top: 120px; }

/* ══════════════════════
       HERO
    ══════════════════════ */
    .contact-hero {
      padding: 72px 0 64px;
      position: relative;
      overflow: hidden;
    }
    .contact-hero-bg {
      position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 60% 70% at 15% 50%, rgba(78,222,163,0.05) 0%, transparent 60%),
        radial-gradient(ellipse 50% 60% at 85% 30%, rgba(16,185,129,0.04) 0%, transparent 60%);
      pointer-events: none;
    }
    .contact-hero-grid {
      position: absolute; inset: 0;
      background-image:
        linear-gradient(rgba(255,255,255,0.016) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.016) 1px, transparent 1px);
      background-size: 60px 60px;
      mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 70%, transparent 100%);
      pointer-events: none;
    }

    /* ══════════════════════
       PATHWAY SELECTOR — Signature Element
    ══════════════════════ */
    .pathway-selector {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      background: var(--bg-surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      overflow: hidden;
      margin-bottom: 40px;
    }
    .pathway-btn {
      padding: 28px 24px;
      border: none;
      background: transparent;
      cursor: pointer;
      text-align: left;
      transition: var(--transition);
      position: relative;
      border-right: 1px solid var(--border);
    }
    .pathway-btn:last-child { border-right: none; }
    .pathway-btn::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 2px;
      background: var(--emerald);
      transform: scaleX(0);
      transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
      transform-origin: left;
    }
    .pathway-btn:hover { background: var(--bg-card); }
    .pathway-btn.active {
      background: var(--bg-card);
    }
    .pathway-btn.active::after { transform: scaleX(1); }
    .pathway-icon {
      width: 40px; height: 40px;
      border-radius: var(--radius-sm);
      background: var(--bg-card-high);
      border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 14px;
      transition: var(--transition);
    }
    .pathway-btn.active .pathway-icon,
    .pathway-btn:hover  .pathway-icon {
      background: var(--emerald-glow2);
      border-color: rgba(78,222,163,0.2);
    }
    .pathway-icon .material-symbols-outlined {
      font-size: 20px;
      color: var(--text-faint);
      transition: var(--transition);
    }
    .pathway-btn.active .pathway-icon .material-symbols-outlined,
    .pathway-btn:hover  .pathway-icon .material-symbols-outlined { color: var(--emerald); }
    .pathway-label {
      font-family: var(--font-display);
      font-size: 0.9rem;
      font-weight: 700;
      color: var(--text-muted);
      margin-bottom: 4px;
      transition: var(--transition);
      display: block;
    }
    .pathway-btn.active .pathway-label { color: var(--text-primary); }
    .pathway-desc {
      font-size: 12px;
      color: var(--text-faint);
      line-height: 1.5;
      transition: var(--transition);
    }
    .pathway-btn.active .pathway-desc { color: var(--text-muted); }
    @media (max-width: 640px) {
      .pathway-selector { grid-template-columns: 1fr; }
      .pathway-btn { border-right: none; border-bottom: 1px solid var(--border); }
      .pathway-btn:last-child { border-bottom: none; }
    }

    /* ══════════════════════
       FORM CARD
    ══════════════════════ */
    .form-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      overflow: hidden;
    }
    .form-card-header {
      padding: 36px 40px 28px;
      border-bottom: 1px solid var(--border);
      background: var(--bg-surface);
      position: relative;
      overflow: hidden;
    }
    .form-card-header::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--emerald) 40%, var(--emerald-dim) 80%, transparent);
    }
    .form-card-body { padding: 20px; }
    .form-panel { display: none; }
    .form-panel.active { display: block; }

    /* ── INPUT GROUPS ── */
    .field-group { margin-bottom: 22px; }
    .field-label {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .field-required {
      width: 5px; height: 5px;
      background: var(--emerald);
      border-radius: 50%;
      flex-shrink: 0;
    }
    .field-input {
      width: 100%;
      background: var(--bg-card-high);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 13px 16px;
      color: var(--text-primary);
      font-family: var(--font-body);
      font-size: 14px;
      outline: none;
      transition: var(--transition);
    }
    .field-input:focus {
      border-color: var(--emerald);
      box-shadow: 0 0 0 3px rgba(78,222,163,0.08);
      background: var(--bg-card);
    }
    .field-input::placeholder { color: var(--text-faint); }
    textarea.field-input { resize: vertical; min-height: 120px; line-height: 1.6; }
    select.field-input {
      cursor: pointer;
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234f6270' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 14px center;
    }
    select.field-input option { background: var(--bg-card); }
    .field-hint {
      font-size: 11px;
      color: var(--text-faint);
      margin-top: 6px;
      line-height: 1.5;
    }

    /* ── SLOT PICKER ── */
    .slot-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin-top: 8px;
    }
    .slot-btn {
      padding: 10px 8px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--border);
      background: var(--bg-card-high);
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 600;
      font-family: var(--font-mono);
      cursor: pointer;
      text-align: center;
      transition: var(--transition);
    }
    .slot-btn:hover { border-color: var(--border-hover); color: var(--text-primary); }
    .slot-btn.selected {
      border-color: var(--emerald);
      background: rgba(78,222,163,0.08);
      color: var(--emerald);
    }
    .slot-btn.unavailable {
      opacity: 0.3;
      cursor: not-allowed;
      text-decoration: line-through;
    }

    /* ── AUM RADIO GROUP ── */
    .radio-group { display: flex; flex-wrap: wrap; gap: 8px; }
    .radio-pill {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 9px 16px;
      border-radius: 99px;
      border: 1px solid var(--border);
      background: var(--bg-card-high);
      cursor: pointer;
      transition: var(--transition);
      font-size: 13px;
      font-weight: 500;
      color: var(--text-muted);
      user-select: none;
    }
    .radio-pill:hover { border-color: var(--border-hover); color: var(--text-primary); }
    .radio-pill.selected {
      border-color: var(--emerald);
      background: rgba(78,222,163,0.08);
      color: var(--emerald);
    }
    .radio-dot {
      width: 14px; height: 14px;
      border-radius: 50%;
      border: 1.5px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: var(--transition);
    }
    .radio-pill.selected .radio-dot {
      border-color: var(--emerald);
      background: var(--emerald);
    }
    .radio-pill.selected .radio-dot::after {
      content: '';
      width: 5px; height: 5px;
      border-radius: 50%;
      background: #001f12;
    }

    /* ── CONSENT CHECKBOX ── */
    .consent-row {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      padding: 16px 18px;
      background: rgba(78,222,163,0.03);
      border: 1px solid rgba(78,222,163,0.1);
      border-radius: var(--radius-md);
      cursor: pointer;
    }
    .consent-box {
      width: 18px; height: 18px;
      border-radius: 4px;
      border: 1.5px solid var(--border);
      background: var(--bg-card-high);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: var(--transition);
      cursor: pointer;
      margin-top: 1px;
    }
    .consent-box.checked {
      background: var(--emerald);
      border-color: var(--emerald);
    }
    .consent-text {
      font-size: 12px;
      color: var(--text-muted);
      line-height: 1.6;
    }
    .consent-text a { color: var(--emerald); text-decoration: none; }
    .consent-text a:hover { text-decoration: underline; }

    /* ── SUBMIT BUTTON ── */
    .submit-btn {
      width: 100%;
      padding: 16px 28px;
      background: var(--emerald);
      color: #001f12;
      border: none;
      border-radius: var(--radius-md);
      font-family: var(--font-body);
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      transition: var(--transition);
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      letter-spacing: 0.01em;
    }
    .submit-btn:hover {
      background: #5beab0;
      box-shadow: 0 0 40px rgba(78,222,163,0.3);
      transform: translateY(-2px);
    }
    .submit-btn:disabled {
      opacity: 0.5;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }

    /* ── SUCCESS STATE ── */
    .success-state {
      text-align: center;
      padding: 60px 40px;
    }
    .success-icon-ring {
      width: 80px; height: 80px;
      border-radius: 50%;
      background: rgba(78,222,163,0.1);
      border: 2px solid var(--emerald);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 24px;
      animation: ring-in 0.6s cubic-bezier(0.4,0,0.2,1);
    }
    @keyframes ring-in {
      from { transform: scale(0.5); opacity: 0; }
      to   { transform: scale(1);   opacity: 1; }
    }

    /* ══════════════════════
       SIDEBAR CARDS
    ══════════════════════ */
    .info-card {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      padding: 28px;
      margin-bottom: 16px;
      transition: var(--transition);
    }
    .info-card:last-child { margin-bottom: 0; }
    .info-card:hover { border-color: var(--border-hover); }
    .info-card-icon {
      width: 40px; height: 40px;
      border-radius: var(--radius-sm);
      background: var(--emerald-glow2);
      border: 1px solid rgba(78,222,163,0.15);
      display: flex; align-items: center; justify-content: center;
      margin-bottom: 16px;
      flex-shrink: 0;
    }
    .info-card-title {
      font-size: 0.9rem;
      font-weight: 700;
      color: var(--text-primary);
      margin-bottom: 6px;
    }
    .info-card-body {
      font-size: 0.84rem;
      color: var(--text-muted);
      line-height: 1.7;
      margin-bottom: 0;
    }
    .info-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      font-weight: 600;
      color: var(--emerald);
      text-decoration: none;
      margin-top: 12px;
      transition: var(--transition);
    }
    .info-link:hover { gap: 10px; color: var(--emerald); }

    /* ── OFFICE HOURS ── */
    .hours-row {
      display: flex;
      justify-content: space-between;
      padding: 10px 0;
      border-bottom: 1px solid var(--border);
      font-size: 13px;
    }
    .hours-row:last-child { border-bottom: none; }
    .hours-day { color: var(--text-muted); }
    .hours-time { font-family: var(--font-mono); color: var(--text-primary); font-size: 12px; }
    .hours-time.closed { color: var(--text-faint); }

    /* ── RESPONSE PROMISE ── */
    .promise-strip {
      display: flex;
      gap: 0;
      background: var(--bg-surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
    }
    .promise-item {
      flex: 1;
      padding: 20px 18px;
      text-align: center;
      border-right: 1px solid var(--border);
    }
    .promise-item:last-child { border-right: none; }
    .promise-val {
      font-family: var(--font-mono);
      font-size: 20px;
      font-weight: 600;
      color: var(--emerald);
      line-height: 1;
      margin-bottom: 4px;
    }
    .promise-lbl {
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-faint);
    }

    /* ── FAQ ACCORDION ── */
    .faq-item {
      border-bottom: 1px solid var(--border);
    }
    .faq-item:last-child { border-bottom: none; }
    .faq-trigger {
      width: 100%;
      text-align: left;
      padding: 20px 0;
      background: none;
      border: none;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      color: var(--text-primary);
      font-family: var(--font-body);
      font-size: 14px;
      font-weight: 600;
      transition: var(--transition);
    }
    .faq-trigger:hover { color: var(--emerald); }
    .faq-arrow {
      width: 28px; height: 28px;
      border-radius: 50%;
      border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: var(--transition);
    }
    .faq-arrow .material-symbols-outlined { font-size: 16px; color: var(--text-faint); transition: var(--transition); }
    .faq-item.open .faq-arrow { background: var(--emerald-glow2); border-color: rgba(78,222,163,0.2); }
    .faq-item.open .faq-arrow .material-symbols-outlined { transform: rotate(45deg); color: var(--emerald); }
    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1);
    }
    .faq-answer-inner {
      padding: 0 0 20px;
      font-size: 14px;
      color: var(--text-muted);
      line-height: 1.75;
    }

    /* ── MAP PLACEHOLDER ── */
    .map-placeholder {
      background: var(--bg-card);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
      position: relative;
    }
    .map-grid {
      width: 100%; height: 200px;
      background:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
      background-size: 32px 32px;
      background-color: var(--bg-surface);
      position: relative;
      display: flex; align-items: center; justify-content: center;
    }
    .map-pin-pulse {
      width: 16px; height: 16px;
      border-radius: 50%;
      background: var(--emerald);
      position: relative;
      box-shadow: 0 0 0 0 rgba(78,222,163,0.4);
      animation: map-pulse 2.5s infinite;
    }
    .map-pin-pulse::after {
      content: '';
      position: absolute;
      inset: -6px;
      border-radius: 50%;
      border: 1.5px solid rgba(78,222,163,0.3);
    }
    @keyframes map-pulse {
      0%   { box-shadow: 0 0 0 0 rgba(78,222,163,0.4); }
      70%  { box-shadow: 0 0 0 16px rgba(78,222,163,0); }
      100% { box-shadow: 0 0 0 0 rgba(78,222,163,0); }
    }
    .map-label {
      position: absolute;
      bottom: 0; left: 0; right: 0;
      padding: 14px 18px;
      background: linear-gradient(to top, var(--bg-card), transparent);
      font-size: 12px;
      color: var(--text-muted);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    @media (max-width: 767px) {
      .form-card-body { padding: 28px 20px; }
      .form-card-header { padding: 24px 20px; }
      .slot-grid { grid-template-columns: repeat(2, 1fr); }
      .promise-strip { flex-wrap: wrap; }
      .promise-item { flex: 0 0 50%; border-bottom: 1px solid var(--border); }
      .promise-item:nth-child(2) { border-right: none; }
      .promise-item:nth-child(3),
      .promise-item:nth-child(4) { border-bottom: none; }
    }