:root {
    --gd-black: #0a0a0a;
    --gd-ink: #111827;
    --gd-gray-700: #374151;
    --gd-gray-500: #6b7280;
    --gd-gray-300: #d1d5db;
    --gd-gray-200: #e5e7eb;
    --gd-white: #ffffff;
}

* {
    box-sizing: border-box;
}

html, body {
    background: var(--gd-white);
    color: var(--gd-ink);
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a {
    color: var(--gd-ink);
    text-decoration: none;
}
a:hover {
    color: var(--gd-black);
}

/* Topbar */
.gd-topbar {
    border-bottom: 1px solid var(--gd-gray-200);
    background: var(--gd-white);
}
.gd-topbar-inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px 24px;
}
.gd-brand img {
    display: block;
}

.gd-main {
    min-height: calc(100vh - 130px);
}
.gd-main .container {
    max-width: 760px;
    padding: 64px 24px 96px;
}

/* Headings & text */
.gd-h1 {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--gd-black);
    margin-bottom: 16px;
}
.gd-h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gd-black);
    margin-bottom: 12px;
}
.gd-lead {
    color: var(--gd-gray-700);
    font-size: 1.05rem;
    margin-bottom: 32px;
}

.gd-hero {
    max-width: 620px;
}

/* Form page */
.gd-form-header {
    margin-bottom: 48px;
}
.gd-form-header .gd-lead {
    margin-bottom: 0;
}

.gd-section {
    padding: 32px 0;
    border-top: 1px solid var(--gd-gray-200);
}
.gd-section:first-child {
    border-top: none;
    padding-top: 0;
}

.gd-section-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--gd-gray-500);
    margin-bottom: 20px;
}
.gd-optional {
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
    color: var(--gd-gray-500);
}

.gd-steps {
    list-style: none;
    counter-reset: gd-step;
    padding: 0;
    margin: 0;
}
.gd-steps li {
    counter-increment: gd-step;
    display: flex;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid var(--gd-gray-200);
    color: var(--gd-gray-700);
}
.gd-steps li:first-child {
    border-top: none;
    padding-top: 0;
}
.gd-steps li::before {
    content: counter(gd-step, decimal-leading-zero);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--gd-gray-500);
    flex-shrink: 0;
}
.gd-steps strong {
    color: var(--gd-black);
}

.form-label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--gd-ink);
    margin-bottom: 6px;
}

.form-control,
.form-select {
    border-color: var(--gd-gray-300);
    color: var(--gd-ink);
    padding: 0.55rem 0.75rem;
    border-radius: 6px;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--gd-gray-500);
    box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.08);
}
.form-control::placeholder {
    color: var(--gd-gray-500);
}

/* Buttons — single monochrome accent, no Bootstrap blue */
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--gd-black);
    --bs-btn-border-color: var(--gd-black);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #262626;
    --bs-btn-hover-border-color: #262626;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #000;
    --bs-btn-active-border-color: #000;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--gd-gray-300);
    --bs-btn-disabled-border-color: var(--gd-gray-300);
    --bs-btn-focus-shadow-rgb: 17, 24, 39;
    border-radius: 6px;
    font-weight: 500;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
.gd-submit {
    margin-top: 8px;
}

/* Done state */
.gd-done {
    padding-top: 8px;
}

/* Footer */
.gd-footer {
    border-top: 1px solid var(--gd-gray-200);
}
.gd-footer-inner {
    max-width: 960px;
    margin: 0 auto;
    padding: 24px;
    font-size: 0.85rem;
    color: var(--gd-gray-500);
}
