/* Request a Demo page. Reuses the site's shared design tokens and the same form primitives
   the Contact page's form already uses (.demo-form-wrap/.form-grid/.field/.consent-field/
   .form-notice/.button/fieldset/legend, all in components.css) so both forms keep one visual
   identity; the additions here (hero dashboard, guidance cards, structured field groups,
   review summary, confidence strip) are unique to this page's own enquiry-planning identity.
   Prefix: rd-. */

/* ---------- hero: compact, balanced, illustrative demo-request panel ---------- */
.fti-request-demo .fp-hero-grid { padding-block:clamp(28px,3vw,44px) clamp(36px,4vw,56px); }
.fti-request-demo .fp-hero h1 { font-size:clamp(2.75rem,5vw,4.5rem); margin-bottom:20px; }
.fti-request-demo .fp-hero-lead { margin-bottom:0!important; }
.fti-request-demo .fp-hero-visual { max-width:440px; margin-inline:auto; }
.rd-prep { list-style:none; margin:0; padding:0; position:relative; }
.rd-prep::before { content:''; position:absolute; left:13px; top:26px; bottom:26px; width:2px; background:repeating-linear-gradient(to bottom,#2f7d70 0 5px,transparent 5px 9px); }
.rd-prep li { position:relative; display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:14px; padding:10px 0; }
.rd-prep-node { position:relative; z-index:1; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#0f2b3b; border:1px solid #2f7d70; color:#6fd6b4; font-size:.8125rem; font-weight:650; }
.rd-prep-name { color:#eaf4f2; font-size:.9375rem; font-weight:600; }
.rd-prep-status { padding:3px 10px; border:1px solid #2b5062; border-radius:999px; color:#9fbfc4; font-size:.75rem; white-space:nowrap; }
.rd-prep-status.is-ready { background:rgba(24,199,155,.12); border-color:rgba(24,199,155,.35); color:#6fd6b4; }
.rd-prep-status.is-required { border-color:rgba(224,169,74,.4); color:#e8c27a; }
.rd-ready { display:flex; align-items:center; gap:10px; margin-top:12px; padding:12px 16px; background:rgba(24,199,155,.12); border:1px solid rgba(24,199,155,.3); border-radius:6px; color:#6fd6b4; font-size:.8125rem; font-weight:650; }
.rd-ready svg { flex:none; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.rd-trust-note { margin:16px 0 0!important; font-size:.8125rem!important; color:#8fb0b5!important; max-width:480px; }

/* ---------- form section: heading, then guidance (left) beside the form (right) ---------- */
.rd-form-sec { padding-block:clamp(40px,5vw,56px) clamp(32px,4vw,40px); }
.rd-layout { display:grid; grid-template-columns:44fr 56fr; grid-template-rows:auto auto auto auto auto 1fr; column-gap:clamp(32px,4vw,56px); align-items:start; }
.rd-layout > .entry-content { display:contents; }
.rd-layout .fp-eyebrow, .rd-layout h2, .rd-layout .entry-content > p { grid-column:1 / -1; }
.rd-layout .fp-eyebrow { margin-bottom:12px!important; }
.rd-layout h2 { margin:0 0 10px; }
.rd-layout .entry-content > p:not(.fp-eyebrow) { margin:0 0 28px; max-width:640px; color:var(--fti-muted); }
.rd-layout .rd-guide-grid { grid-column:1; grid-row:4; }
.rd-layout .rd-safety-notice { grid-column:1; grid-row:5; align-self:start; }
.rd-layout .rd-helpful { grid-column:1; grid-row:6; align-self:start; }
.rd-layout .rd-form-col { grid-column:2; grid-row:4 / 7; min-width:0; }

/* ---------- guidance cards (compact) ---------- */
.rd-guide-grid { display:grid; grid-template-columns:1fr; gap:12px; margin:0 0 16px; }
.rd-guide-card { display:grid; grid-template-columns:36px 1fr; column-gap:14px; align-items:center; background:#fff; border:1px solid var(--fti-line); border-radius:8px; padding:16px 18px; }
.rd-guide-i { grid-row:1 / 3; width:36px; height:36px; display:grid; place-items:center; border-radius:8px; background:var(--fti-accent-soft); color:var(--fti-accent); }
.rd-guide-i svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.rd-guide-card h3 { margin:0; font-size:1rem; }
.rd-guide-card p { margin:2px 0 0; font-size:.875rem; line-height:1.5; color:var(--fti-muted); }

/* ---------- "Helpful to include" checklist (plain, no card) ---------- */
.rd-layout .rd-helpful { margin:20px 0 0; max-width:none; width:100%; }
.rd-helpful h3 { margin:0 0 10px; font-size:.9375rem; }
.rd-helpful ul { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.rd-helpful li { display:flex; align-items:center; gap:10px; font-size:.9375rem; color:var(--fti-text); }
.rd-helpful svg { flex:none; width:18px; height:18px; fill:none; stroke:var(--fti-accent); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- form: grouped sections, checkboxes, review summary ---------- */
.rd-form-section:not(:first-child) { margin-top:32px; padding-top:28px; border-top:1px solid var(--fti-line); }
.rd-form-section legend { margin-bottom:4px; }
.rd-form-section .field-hint { margin-bottom:18px; }
/* The shared .consent-field (components.css, also used by the Contact form) is a touch target
   too small for comfortable tapping; widen it here without changing the shared rule itself. */
.fti-request-demo .consent-field { min-height:44px; align-items:center; }
.rd-msg-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
.rd-msg-row label { margin-bottom:0!important; }
.rd-char-count { font-size:.75rem; color:var(--fti-muted); white-space:nowrap; }
.rd-char-count.is-near-limit { color:#a15b00; font-weight:650; }
textarea#rd-message { width:100%; }
.field-error { display:block; margin-top:6px; font-size:.8125rem; color:var(--fti-danger); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color:var(--fti-danger); }
.field.is-invalid input:focus-visible, .field.is-invalid select:focus-visible, .field.is-invalid textarea:focus-visible { outline-color:var(--fti-danger); }

/* ---------- review summary ---------- */
.rd-summary { margin:28px 0; padding:20px 22px; background:var(--fti-accent-soft); border:1px solid #d3e6de; border-radius:10px; }
.rd-summary h3 { margin:0 0 4px; font-size:1rem; }
.rd-summary-note { margin:0 0 14px!important; font-size:.8125rem!important; color:var(--fti-muted)!important; }
.rd-summary dl { margin:0; display:grid; gap:0; }
.rd-summary dl > div { display:flex; justify-content:space-between; gap:14px; padding:8px 0; border-bottom:1px solid #d3e6de; font-size:.875rem; }
.rd-summary dl > div:last-child { border-bottom:0; }
.rd-summary dt { color:var(--fti-muted); flex:none; }
.rd-summary dd { margin:0; text-align:right; color:var(--fti-text); font-weight:600; overflow-wrap:anywhere; }
.rd-summary dd:empty::before { content:'\2014'; color:var(--fti-muted); font-weight:400; }

/* ---------- submit button ---------- */
.rd-submit { display:inline-flex; align-items:center; gap:8px; min-height:52px; }
.rd-submit svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .18s; }
.rd-submit:hover svg { transform:translateX(3px); }
.rd-submit[data-loading="true"] { position:relative; color:transparent!important; pointer-events:none; }
.rd-submit[data-loading="true"] svg { opacity:0; }
.rd-submit[data-loading="true"]::after { content:''; position:absolute; inset:0; margin:auto; width:20px; height:20px; border-radius:50%; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; animation:rd-spin .7s linear infinite; }
@keyframes rd-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .rd-submit[data-loading="true"]::after { animation:none; } .rd-submit svg, .rd-submit:hover svg { transition:none; transform:none; } }
.rd-safety-notice { display:flex; gap:12px; align-items:flex-start; margin:0 0 4px!important; padding:14px 18px; background:#fff8e8; border:1px solid #f0dca8; border-radius:6px; color:#7a5300!important; font-size:.875rem!important; line-height:1.55!important; }
.rd-safety-notice svg { flex:none; width:20px; height:20px; margin-top:1px; fill:none; stroke:#a15b00; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- confidence strip + alternative contact ---------- */
.rd-conf-sec { padding-block:24px; }
.rd-alt-sec { padding-block:36px 48px; }
.rd-confidence { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:14px 32px; }
.rd-confidence li { display:flex; align-items:center; gap:9px; font-size:.9375rem; color:var(--fti-muted); }
.rd-confidence svg { width:20px; height:20px; fill:none; stroke:var(--fti-accent); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.rd-alt-contact { text-align:center; }
.rd-alt-contact h2 { margin:0 0 10px; font-size:1.375rem; }
.rd-alt-links { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:16px; }

/* ---------- thank-you success panel ---------- */
.rd-success { text-align:center; max-width:640px; margin-inline:auto; padding:clamp(32px,5vw,48px) clamp(20px,4vw,32px); background:#fff; border:1px solid var(--fti-line); border-radius:14px; }
.rd-success-i { display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--fti-accent-soft); color:var(--fti-accent); margin-bottom:20px; }
.rd-success-i svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8; }
.rd-success h1 { margin:0 0 12px; }
.rd-success p { margin:0 auto 28px; color:var(--fti-muted); font-size:1.0625rem; max-width:520px; }
.rd-success .button-row { justify-content:center; }
.rd-success-content { max-width:640px; margin:32px auto 0; color:var(--fti-muted); font-size:.9375rem; }

@media (max-width:900px) {
	.rd-layout { grid-template-columns:1fr; grid-template-rows:none; }
	.rd-layout .fp-eyebrow, .rd-layout h2, .rd-layout .entry-content > p:not(.fp-eyebrow) { order:1; }
	.rd-layout .rd-form-col { grid-column:1; grid-row:auto; order:2; }
	.rd-layout .rd-guide-grid { grid-column:1; grid-row:auto; order:3; margin-top:28px; }
	.rd-layout .rd-safety-notice { grid-column:1; grid-row:auto; order:4; }
	.rd-layout .rd-helpful { grid-column:1; grid-row:auto; order:5; margin-top:20px; }
}
