/* ============================================================
   CONTACT PAGE — on-theme (white · serif accents · green-ink)
   ============================================================ */
.vh-section { padding:clamp(56px,8vh,110px) 0; }
.vh-eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:600;
  letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-faint); }
.vh-eyebrow::before { content:''; width:20px; height:1px; background:var(--sage); }
.vh-sub { font-size:clamp(1rem,1.4vw,1.15rem); color:var(--ink-soft); line-height:1.7; max-width:460px; }

.vh-btn { display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:var(--r-pill);
  font-size:14px; font-weight:600; cursor:pointer; border:none; transition:transform 0.25s var(--ease), background 0.25s, box-shadow 0.25s; }
.vh-btn-ink { background:var(--ink); color:#fff; box-shadow:0 12px 28px rgba(28,36,25,0.22); }
.vh-btn-ink:hover { background:#11160e; transform:translateY(-2px); box-shadow:0 18px 36px rgba(28,36,25,0.30); }
.vh-arr { transition:transform 0.3s var(--ease); }
.vh-btn:hover .vh-arr { transform:translateX(4px); }

/* ── Hero ── */
.vh-ct-hero { padding:calc(var(--nav-h,66px) + clamp(56px,10vh,120px)) 0 clamp(40px,6vh,72px); }

/* Video-backed hero */
.vh-ct-hero.has-video { position:relative; isolation:isolate; overflow:hidden; }
.vh-ct-hero.has-video .vh-eyebrow { color:rgba(255,255,255,0.8); }
.vh-ct-hero.has-video .vh-eyebrow::before { background:rgba(255,255,255,0.7); }
.vh-ct-hero.has-video .vh-ct-hero-title { color:#fff; }
.vh-ct-hero.has-video .vh-ct-hero-title em { color:#dcefca; }
.vh-ct-hero.has-video .vh-ct-hero-sub { color:rgba(255,255,255,0.9); }
.vh-ct-hero.has-video .vh-ct-hero-sig { color:rgba(255,255,255,0.66); }
.vh-ct-hero.has-video .vh-ct-mq { border-color:rgba(255,255,255,0.2); }
.vh-ct-hero.has-video .vh-ct-mq-seq i { color:#fff; }
.vh-ct-hero.has-video .vh-ct-mq-seq b { color:#dcefca; }
.vh-ct-hero.has-video .vh-ct-stat b { color:#fff; }
.vh-ct-hero.has-video .vh-ct-stat span { color:rgba(255,255,255,0.7); }
.vh-ct-hero.has-video .vh-ct-meta-jump { color:#dcefca; }
.vh-ct-hero.has-video .vh-ct-meta-jump:hover { color:#fff; }
.vh-ct-hero-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(28px,4vw,64px); align-items:end; }
@media(max-width:820px){ .vh-ct-hero-grid{grid-template-columns:1fr;gap:24px;} }
.vh-ct-hero-title { margin-top:16px; font-size:clamp(2.2rem,5vw,4rem); font-weight:500; line-height:1.04; letter-spacing:-0.03em; color:var(--ink); }
.vh-ct-hero-title em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--sage-deep); }
.vh-ct-hero-sub { font-size:clamp(1rem,1.4vw,1.15rem); color:var(--ink-soft); line-height:1.7; }
.vh-ct-hero-sig { display:block; margin-top:14px; font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); }

/* Marquee */
.vh-ct-mq { overflow:hidden; margin:clamp(36px,6vh,64px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; }
.vh-ct-mq-track { display:flex; width:max-content; animation:ctMq 28s linear infinite; }
.vh-ct-mq-seq { display:inline-flex; align-items:center; gap:22px; padding-right:22px; }
.vh-ct-mq-seq i { font-family:var(--serif); font-style:italic; font-size:clamp(1.4rem,2.6vw,2rem); color:var(--ink); white-space:nowrap; }
.vh-ct-mq-seq b { color:var(--sage); }
@keyframes ctMq { to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce){ .vh-ct-mq-track{animation:none;} }

/* Meta stats */
.vh-ct-meta { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(24px,4vw,56px); }
.vh-ct-stat b { display:block; font-size:1.6rem; font-weight:600; letter-spacing:-0.02em; color:var(--ink); }
.vh-ct-stat span { font-size:12px; color:var(--ink-faint); }
.vh-ct-meta-jump { display:inline-flex; align-items:center; gap:8px; margin-left:auto; font-size:13px; font-weight:600; color:var(--sage-deep); }
.vh-ct-meta-jump:hover { color:var(--ink); }

/* ── Form + side ── */
.vh-ct-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media(max-width:880px){ .vh-ct-grid{grid-template-columns:1fr;} }
.vh-ct-form-title { margin:14px 0 28px; font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:500; letter-spacing:-0.025em; line-height:1.08; color:var(--ink); }

.vh-ct-fields { display:flex; flex-direction:column; gap:6px; }
.vh-ct-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media(max-width:560px){ .vh-ct-row{grid-template-columns:1fr;} }
.vh-ct-field { position:relative; padding-top:18px; margin-bottom:14px; }
.vh-ct-field input, .vh-ct-field textarea {
  width:100%; padding:8px 0; font-family:var(--font); font-size:15px; color:var(--ink);
  background:transparent; border:none; outline:none; resize:vertical;
}
.vh-ct-field label { position:absolute; left:0; top:24px; font-size:15px; color:var(--ink-faint); pointer-events:none; transition:all 0.25s var(--ease); }
.vh-ct-field label span { font-size:12px; opacity:0.7; }
.vh-ct-field input:focus ~ label, .vh-ct-field input:not(:placeholder-shown) ~ label,
.vh-ct-field textarea:focus ~ label, .vh-ct-field textarea:not(:placeholder-shown) ~ label {
  top:0; font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--sage-deep);
}
.vh-ct-line { position:absolute; left:0; right:0; bottom:0; height:1.5px; background:var(--line); }
.vh-ct-line::after { content:''; position:absolute; inset:0; background:var(--sage-deep); transform:scaleX(0); transform-origin:left; transition:transform 0.35s var(--ease); }
.vh-ct-field input:focus ~ .vh-ct-line::after, .vh-ct-field textarea:focus ~ .vh-ct-line::after { transform:scaleX(1); }
.vh-ct-field-select select {
  width:100%; padding:10px 0; font-family:var(--font); font-size:15px; color:var(--ink);
  background:transparent; border:none; outline:none; cursor:pointer; -webkit-appearance:none; appearance:none;
}
.vh-ct-field-select { position:relative; }
.vh-ct-field-select::after { content:'▾'; position:absolute; right:2px; top:8px; color:var(--ink-faint); pointer-events:none; }
.vh-ct-field-select select:invalid { color:var(--ink-faint); }

.vh-ct-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:28px; }
.vh-ct-assure { font-size:12.5px; color:var(--ink-faint); }

/* Side panel */
.vh-ct-side { position:relative; background:linear-gradient(160deg, var(--ink), #11160e); color:#fff;
  border-radius:24px; padding:clamp(28px,3vw,40px); overflow:hidden; }
.vh-ct-side .vh-eyebrow { color:rgba(255,255,255,0.7); }
.vh-ct-side .vh-eyebrow::before { background:rgba(255,255,255,0.6); }
.vh-ct-side-title { margin:14px 0 24px; font-size:1.7rem; font-weight:500; letter-spacing:-0.02em; color:#fff; }
.vh-ct-channels { display:flex; flex-direction:column; gap:4px; }
.vh-ct-channel a, .vh-ct-channel-static { display:flex; flex-direction:column; gap:3px; position:relative;
  padding:16px 0; border-top:1px solid rgba(255,255,255,0.14); }
.vh-ct-channels li:first-child a { border-top:none; }
.vh-ct-ch-k { font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.55); }
.vh-ct-ch-v { font-size:15px; color:#fff; }
.vh-ct-ch-arr { position:absolute; right:0; top:18px; color:rgba(255,255,255,0.55); transition:transform 0.3s var(--ease), color 0.3s; }
.vh-ct-channel a:hover .vh-ct-ch-arr { transform:translate(3px,-3px); color:#fff; }
.vh-ct-side-note { margin-top:22px; font-size:13px; color:rgba(255,255,255,0.66); line-height:1.65; }
.vh-ct-side-mark { position:absolute; right:-10px; bottom:-20px; font-family:var(--serif); font-style:italic; font-size:6rem; color:rgba(255,255,255,0.05); pointer-events:none; }

/* ── Flow steps ── */
.vh-ct-flow-head { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:end; margin-bottom:clamp(36px,5vh,56px); }
@media(max-width:760px){ .vh-ct-flow-head{grid-template-columns:1fr;gap:16px;} }
.vh-ct-flow-title { margin-top:14px; font-size:clamp(1.9rem,3.6vw,3rem); font-weight:500; letter-spacing:-0.025em; color:var(--ink); }
.vh-ct-flow-title em { font-family:var(--serif); font-style:italic; font-weight:400; color:var(--sage-deep); }
.vh-ct-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,28px); counter-reset:ctstep; }
@media(max-width:760px){ .vh-ct-steps{grid-template-columns:1fr;} }
.vh-ct-step { background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:clamp(24px,2.4vw,34px); transition:transform 0.3s var(--ease), box-shadow 0.3s; }
.vh-ct-step:hover { transform:translateY(-4px); box-shadow:0 24px 50px rgba(28,36,25,0.10); }
.vh-ct-step-n { font-family:var(--serif); font-size:1.6rem; color:var(--sage-deep); }
.vh-ct-step h3 { margin:12px 0 8px; font-size:1.15rem; font-weight:600; color:var(--ink); }
.vh-ct-step p { font-size:14px; color:var(--ink-soft); line-height:1.6; }
