/* assets/contact.css — Contact & Demo page */

/* ---------- Hero ---------- */
.contact-hero{padding:64px 0 56px;position:relative}
.contact-hero .eyebrow{display:inline-flex}
.contact-hero-inner{max-width:780px;margin-top:18px}
.contact-hero h1{font-size:clamp(44px,5.4vw,72px);margin:14px 0 24px;line-height:1.05;
  font-weight:700;letter-spacing:-.028em}
.contact-hero h1 em{font-style:normal;color:var(--accent-ink);font-weight:700}
.contact-hero .sub{font-size:19px;line-height:1.55;color:var(--ink-2);max-width:620px;
  margin:0 0 14px}
.contact-hero .sub-small{font-size:15px;color:var(--ink-3);max-width:620px;margin:0}

/* ---------- Office hours pill (live) ---------- */
.office-pill{
  display:flex;align-items:center;gap:14px;
  padding:12px 16px;border-radius:14px;
  background:var(--paper);border:1px solid var(--line);
  font-size:13.5px;line-height:1.4}
.office-pill .dot{
  width:10px;height:10px;border-radius:99px;flex:none;
  background:var(--ink-3)}
.office-pill .txt{display:flex;flex-direction:column;gap:1px}
.office-pill .txt strong{color:var(--ink);font-weight:500;font-size:14px}
.office-pill .txt .meta{color:var(--ink-3);font-size:12.5px}
.office-pill.is-open{background:var(--accent-tint);
  border-color:rgba(115,195,170,.45)}
.office-pill.is-open .dot{background:var(--accent-2);
  box-shadow:0 0 0 0 rgba(91,174,147,.6);
  animation:officePulse 1.8s ease-in-out infinite}
.office-pill.is-open .txt strong{color:var(--primary)}
@keyframes officePulse{
  0%{box-shadow:0 0 0 0 rgba(91,174,147,.55)}
  70%{box-shadow:0 0 0 8px rgba(91,174,147,0)}
  100%{box-shadow:0 0 0 0 rgba(91,174,147,0)}
}

/* ---------- Two columns: form + contact ---------- */
.contact-main{padding:24px 0 96px}
.contact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;gap:32px} }

/* ----- Form card ----- */
.contact-form-card{background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:40px;box-shadow:var(--shadow-sm)}
@media (max-width:600px){ .contact-form-card{padding:28px 22px} }

.form-label-head{font-family:var(--font-mono);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--primary);
  display:block;margin-bottom:6px}
.form-title{font-family:var(--font-display);font-size:22px;font-weight:700;
  letter-spacing:-.02em;margin:0 0 22px;line-height:1.2}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:520px){ .form-row{grid-template-columns:1fr} }

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:13px;font-weight:500;color:var(--ink);line-height:1.4}
.field label .opt{font-weight:400;color:var(--ink-3);margin-left:6px;font-size:12px}
.field input,
.field select,
.field textarea{
  width:100%;background:var(--bg);border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  font-family:inherit;line-height:1.4;
  appearance:none;-webkit-appearance:none}
.field textarea{min-height:120px;resize:vertical}
.field input::placeholder,
.field textarea::placeholder{color:var(--ink-3);opacity:.9}
.field input:hover,
.field select:hover,
.field textarea:hover{border-color:#cdc2ac}
.field input:focus,
.field select:focus,
.field textarea:focus{outline:none;border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(31,46,66,.12);background:var(--paper)}
.field select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M3 5l4 4 4-4' stroke='%231F2E42' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}

.field.is-error input,
.field.is-error select,
.field.is-error textarea{border-color:#C25845;background:#FCF2EE}
.field-error{font-size:12px;color:#C25845;margin-top:2px}
.form-error-banner{font-size:14px;color:#8C3A2A;background:#FCF2EE;border:1px solid #E4BDB2;
  border-radius:12px;padding:12px 14px;margin:0 0 4px}

/* honeypot — hidden from humans */
.hp-field{position:absolute;left:-9999px;top:-9999px;height:0;width:0;
  overflow:hidden;visibility:hidden}

.form-privacy{font-size:12.5px;color:var(--ink-3);line-height:1.5;
  margin:8px 0 20px}
.form-privacy a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;
  text-decoration-color:var(--line)}
.form-privacy a:hover{color:var(--ink)}

.form-submit-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.form-submit-row .btn-primary{padding:14px 24px;font-size:15px}
.form-submit-note{font-size:12.5px;color:var(--ink-3)}

/* Success state — replaces the form */
.form-success{padding:24px 0;text-align:left}
.form-success .check-bubble{
  width:52px;height:52px;border-radius:999px;background:var(--accent-tint);
  color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:700;margin-bottom:16px;
  border:1px solid rgba(115,195,170,.45)}
.form-success h3{font-family:var(--font-display);font-size:24px;font-weight:700;
  margin:0 0 10px;line-height:1.25;letter-spacing:-.02em}
.form-success p{color:var(--ink-2);font-size:15.5px;line-height:1.55;margin:0 0 16px}

/* ----- Right column: direct contact ----- */
.contact-direct{display:flex;flex-direction:column;gap:24px;padding-top:8px}
.contact-direct-head .eyebrow{display:inline-flex;margin-bottom:8px}
.contact-direct-head h2{font-family:var(--font-display);font-size:24px;font-weight:700;
  letter-spacing:-.02em;line-height:1.25;margin:0;max-width:340px}

.contact-info-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;
  list-style:none}
.contact-info-list li{display:flex;align-items:flex-start;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--line)}
.contact-info-list li:last-child{border-bottom:none}
.contact-info-ico{width:36px;height:36px;border-radius:10px;flex:none;
  background:var(--accent-tint);color:var(--primary);
  display:inline-flex;align-items:center;justify-content:center}
.contact-info-ico svg{width:18px;height:18px;display:block}
.contact-info-text{display:flex;flex-direction:column;gap:2px;font-size:14.5px;
  line-height:1.45}
.contact-info-text .lbl{font-family:var(--font-mono);font-size:10.5px;
  text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-weight:500}
.contact-info-text .val{color:var(--ink);font-weight:500}
.contact-info-text .val a{border-bottom:1px solid transparent;transition:border-color .15s ease}
.contact-info-text .val a:hover{border-bottom-color:var(--ink)}
.contact-info-text .sub{color:var(--ink-3);font-size:13px}

/* What to expect block */
.expect-card{background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:24px 26px}
.expect-card h3{font-family:var(--font-display);font-size:16px;font-weight:700;
  letter-spacing:-.01em;margin:0 0 14px}
.expect-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.expect-list li{display:flex;gap:14px;align-items:flex-start;font-size:14px;
  color:var(--ink-2);line-height:1.5}
.expect-list .n{
  flex:none;width:26px;height:26px;border-radius:999px;
  background:var(--primary);color:var(--paper);
  font-family:var(--font-mono);font-size:11px;font-weight:500;
  display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em}
.expect-list strong{display:block;color:var(--ink);font-weight:500;margin-bottom:2px}

/* ---------- Trust strip ---------- */
.contact-trust{border-top:1px solid var(--line);padding:36px 0 96px}
.contact-trust-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px;
  align-items:center}
@media (max-width:900px){ .contact-trust-row{grid-template-columns:1fr;gap:24px} }
.trust-quote{display:flex;align-items:center;gap:18px;
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  padding:18px 22px}
.trust-quote img{height:36px;width:auto;display:block;flex:none;opacity:.95}
.trust-quote blockquote{margin:0;font-family:var(--font-display);font-size:15.5px;
  line-height:1.4;color:var(--ink);font-style:italic;font-weight:500;
  letter-spacing:-.01em}
.trust-item{display:flex;align-items:center;gap:14px;padding:0 4px}
.trust-item .ico{
  width:38px;height:38px;border-radius:10px;background:var(--accent-tint);
  color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex:none}
.trust-item .ico svg{width:18px;height:18px}
.trust-item .txt{font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.trust-item .txt strong{display:block;color:var(--ink);font-weight:500;font-size:14px}
