/* No More Members — public welcome flow.
   Cream cafe aesthetic. Mobile-first. No admin chrome. */

:root {
    --cream: #F8F7F4;
    --cream-2: #EFEBE3;
    --paper: #FFFFFF;
    --brown: #5F300D;
    --brown-deep: #3A1E08;
    --gold: #D6BB88;
    --gold-soft: rgba(214, 187, 136, 0.18);
    --ink: #1C1C1A;
    --muted: rgba(95, 48, 13, 0.55);
    --line: rgba(95, 48, 13, 0.14);
    --accent: #BC5631;
    --error: #B5483B;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

.welcome-body {
    background: var(--cream);
    color: var(--ink);
    font-family: 'Raleway', sans-serif;
    font-size: 16px;
    line-height: 1.55;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 1rem;
    padding-top: max(2rem, env(safe-area-inset-top));
    padding-bottom: max(2rem, env(safe-area-inset-bottom));
}

.welcome-shell {
    width: 100%;
    max-width: 480px;
}
.welcome-shell.wide { max-width: 560px; }

.welcome-card {
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 2.5rem 1.75rem;
    text-align: center;
}

@media (min-width: 600px) {
    .welcome-card { padding: 3rem 2.5rem; }
}

.welcome-crest {
    width: 88px;
    height: 88px;
    margin: 0 auto 1.5rem;
    display: block;
    opacity: 0.95;
}
.welcome-crest.small { width: 64px; height: 64px; margin-bottom: 1rem; }

.welcome-h1 {
    font-family: 'Cormorant Garamond', serif;
    color: var(--brown);
    font-size: 2.25rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    margin: 0 0 0.4rem;
    line-height: 1.15;
}
@media (min-width: 600px) {
    .welcome-h1 { font-size: 2.6rem; }
}

.welcome-sub {
    color: var(--gold);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 1.75rem;
}

.welcome-lede {
    color: var(--ink);
    font-size: 1.02rem;
    margin: 0 auto 1.75rem;
    max-width: 36ch;
    line-height: 1.55;
}
.welcome-lede strong { color: var(--brown); font-weight: 600; }

.welcome-error {
    background: rgba(181, 72, 59, 0.08);
    border: 1px solid rgba(181, 72, 59, 0.3);
    color: var(--error);
    padding: 0.75rem 1rem;
    margin: 0 auto 1.25rem;
    font-size: 0.9rem;
    text-align: left;
    max-width: 36ch;
}

.welcome-form {
    text-align: left;
    margin: 0 auto;
    max-width: 100%;
}

.welcome-form label,
.welcome-label {
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--muted);
    margin: 1.1rem 0 0.4rem;
}
.welcome-form label:first-of-type,
.welcome-label:first-of-type { margin-top: 0; }

.welcome-form input,
.welcome-form select,
.welcome-form textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid var(--line);
    background: var(--paper);
    color: var(--ink);
    font-family: inherit;
    font-size: 1rem;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 0;
}
.welcome-form input:focus,
.welcome-form select:focus,
.welcome-form textarea:focus {
    outline: none;
    border-color: var(--gold);
    background: var(--cream);
}
.welcome-form textarea { resize: vertical; min-height: 60px; }

.welcome-form .row {
    display: flex;
    gap: 0.75rem;
}
.welcome-form .row .col { flex: 1; }
.welcome-form .row.birthday-row {
    flex-wrap: wrap;
}
.welcome-form .row.birthday-row select { flex: 1 1 130px; min-width: 0; }
.welcome-form .row.birthday-row input { flex: 1 1 130px; min-width: 0; }

.welcome-form .muted { color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: 0; }
.welcome-form .small { font-size: 0.78rem; }

.welcome-form button {
    width: 100%;
    margin-top: 1.75rem;
    padding: 1rem 1.25rem;
    background: var(--brown);
    color: var(--cream);
    border: none;
    font-family: inherit;
    font-size: 0.85rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    cursor: pointer;
    border-radius: 0;
    -webkit-appearance: none;
    appearance: none;
    transition: background 0.2s;
}
.welcome-form button:hover,
.welcome-form button:focus {
    background: var(--brown-deep);
}
.welcome-form button.primary {
    background: var(--brown);
}

.welcome-fine {
    color: var(--muted);
    font-size: 0.82rem;
    margin: 1.5rem auto 0;
    max-width: 36ch;
    line-height: 1.5;
}
.welcome-fine.signoff {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 0.95rem;
    margin-top: 2rem;
}

.balance-display {
    background: var(--cream-2);
    border: 1px solid var(--gold-soft);
    padding: 1.25rem;
    margin: 0 auto 1.75rem;
    max-width: 280px;
}
.balance-display .balance-num {
    font-family: 'Cormorant Garamond', serif;
    color: var(--brown);
    font-size: 3rem;
    font-weight: 500;
    line-height: 1;
}
.balance-display .balance-lbl {
    color: var(--muted);
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    margin-top: 0.4rem;
}
