:root {
    --red: #ff0000;
    --red-dark: #d63637;
    --teal: #0b8e91;
    --ink: #202020;
    --muted: #666666;
    --line: #d9d9d9;
    --panel: #eaeaea;
    --paper: #ffffff;
    --canvas: #f7f7f7;
}

* { box-sizing: border-box; }

html { color-scheme: light; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

a { color: var(--teal); text-underline-offset: 0.18em; }
a:hover { color: #086f72; }

.page-shell {
    min-height: calc(100vh - 116px);
    display: grid;
    place-items: center;
    padding: 56px 20px;
}

.signup-card {
    width: min(100%, 800px);
    padding: clamp(34px, 6vw, 64px) clamp(22px, 7vw, 72px);
    text-align: center;
    background: var(--paper);
    border: 1px solid #dadada;
    box-shadow: 0 6px 18px rgb(0 0 0 / 18%);
}

.eyebrow {
    margin: 0 0 2px;
    color: #424242;
    font-size: 1.1rem;
    font-weight: 700;
}

.brand {
    display: inline-block;
    margin: 0 0 38px;
    color: var(--red);
    font-size: clamp(1.35rem, 4vw, 2.15rem);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.18em;
}

h1 {
    margin: 0 auto 10px;
    max-width: 650px;
    font-size: clamp(1.65rem, 4vw, 2.5rem);
    line-height: 1.22;
}

.intro {
    margin: 0 auto 28px;
    max-width: 620px;
    color: #474747;
    font-size: 1.1rem;
}

.lead-form {
    padding: clamp(22px, 5vw, 42px);
    background: var(--panel);
}

.field label {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
    text-align: left;
}

input[type="email"],
input[type="text"] {
    width: 100%;
    min-height: 54px;
    padding: 12px 16px;
    border: 2px solid transparent;
    border-radius: 0;
    background: #fff;
    color: var(--ink);
    font: inherit;
    text-align: center;
}

input:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 3px solid var(--teal);
    outline-offset: 3px;
}

.consent {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
    margin: 22px 0;
    text-align: left;
}

.consent input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: var(--red);
    flex: 0 0 auto;
}

button {
    width: 100%;
    min-height: 56px;
    border: 0;
    background: var(--red);
    color: #fff;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 150ms ease, transform 150ms ease;
}

button:hover { background: var(--red-dark); }
button:active { transform: translateY(1px); }
button:disabled { cursor: wait; opacity: 0.72; }

.privacy-summary {
    margin: 28px 0 0;
    color: #474747;
    font-size: 0.9rem;
}

.form-message {
    min-height: 1.65em;
    margin: 14px 0 0;
    font-weight: 700;
}

.form-message.success { color: #17651c; }
.form-message.error { color: #a40000; }

.trap {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.setup-notice { padding: 28px; background: #fff3f3; border: 2px solid var(--red); }

footer {
    min-height: 116px;
    padding: 26px 20px;
    text-align: center;
    background: #bdbdbd;
    color: #fff;
    font-size: 0.9rem;
}

footer p { margin: 0 0 6px; }
footer a { color: #fff; }

.legal-page {
    width: min(100% - 32px, 820px);
    margin: 40px auto;
    padding: clamp(28px, 6vw, 64px);
    background: #fff;
    border-top: 6px solid var(--red);
    box-shadow: 0 6px 18px rgb(0 0 0 / 12%);
}

.legal-page h1 { margin-top: 24px; }
.legal-page h2 { margin-top: 28px; font-size: 1.2rem; }
.legal-note { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); }
.back-link { font-weight: 700; }

@media (max-width: 560px) {
    .page-shell { padding: 0; }
    .signup-card { min-height: 100vh; border: 0; box-shadow: none; }
    .brand { margin-bottom: 30px; }
    .lead-form { margin-inline: -6px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

