/* ═══════════════════════════════════════════════════════════════════════
   PUBLIC_MARKETING.CSS
   Single optimised stylesheet for all marketing / public-acquisition pages.
   Replaces: pico.css (91 KB) + base.css + layout.css + components.css +
             utilities.css + marketing.css (~35 KB combined) with one lean
             file (~12 KB before gzip) that has zero unused selectors.

   Structure
   ─────────
   1.  CSS Variables
   2.  Reset & Base
   3.  Typography
   4.  Links
   5.  Lists
   6.  Form elements
   7.  Layout: container / grid
   8.  Layout: topbar, body background
   9.  Flash messages
   10. Components: article / card
   11. Utilities
   12. Marketing: hero, buttons, waitlist, features, plans, footer
   13. Responsive
═══════════════════════════════════════════════════════════════════════ */

/* ── 1. CSS Variables ─────────────────────────────────────────────── */
:root {
  --brand-midnight-truth: #0f172a;
  --brand-slate-steel:    #334155;
  --brand-moral-gold:     #b45309;
  --brand-paper-white:    #f8fafc;
  --brand-ink-black:      #1e293b;

  color-scheme: light;
}

/* ── 2. Reset & Base ──────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  background-color: var(--brand-paper-white);
  color: var(--brand-ink-black);
}

/* ── 3. Typography ────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.25;
  color: var(--brand-midnight-truth);
  margin: 0 0 0.5rem;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem;   }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; font-weight: 600; }
h5 { font-size: 1rem;    font-weight: 600; }

p {
  margin: 0 0 1rem;
  color: var(--brand-slate-steel);
}

small {
  font-size: 0.875em;
  color: var(--brand-slate-steel);
}

strong { font-weight: 700; }

/* ── 4. Links ─────────────────────────────────────────────────────── */
a {
  color: var(--brand-moral-gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

a:hover { color: #92400e; }

/* ── 5. Lists ─────────────────────────────────────────────────────── */
ul, ol {
  padding-left: 1.5rem;
  margin: 0 0 1rem;
}

li {
  margin-bottom: 0.35rem;
  color: var(--brand-slate-steel);
}

/* ── 6. Form elements ─────────────────────────────────────────────── */
label {
  display: block;
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--brand-ink-black);
  margin-bottom: 0.15rem;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="search"],
select,
textarea {
  display: block;
  width: 100%;
  padding: 0.55rem 0.75rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: 1.5;
  color: var(--brand-ink-black);
  background-color: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  appearance: none;
  -webkit-appearance: none;
}

select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23334155' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  padding-right: 2.25rem;
}

textarea { resize: vertical; min-height: 80px; }

input:focus,
select:focus,
textarea:focus {
  border-color: var(--brand-moral-gold);
  box-shadow: 0 0 0 3px rgba(180, 83, 9, 0.12);
}

input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--brand-moral-gold);
}

/* Buttons / submit */
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 0.75rem 1.25rem;
  border-radius: 8px;
  border: 1px solid transparent;
  background-color: var(--brand-moral-gold);
  color: #fff;
  text-decoration: none;
  transition: background-color 0.2s ease, transform 0.2s ease,
              box-shadow 0.2s ease;
}

button:hover,
input[type="submit"]:hover {
  background-color: #92400e;
  transform: translateY(-1px);
}

button:focus-visible,
input[type="submit"]:focus-visible {
  outline: 2px solid var(--brand-midnight-truth);
  outline-offset: 2px;
}

/* ── 7. Layout: container / grid ──────────────────────────────────── */
.container {
  width: 100%;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1rem;
  padding-left: 1rem;
}

/* Pico-style responsive grid */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 1.5rem;
}

/* ── 8. Layout: topbar, body ──────────────────────────────────────── */
.public-layout-body {
  background: linear-gradient(180deg, #f4f6f9 0%, #eef2f7 100%);
}

.public-layout-topbar {
  background-color: #fff;
  border-bottom: 1px solid #dbe3ef;
  position: sticky;
  top: 0;
  z-index: 10;
}

.public-layout-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.5rem 0;
}

.logo {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.public-layout-brand a { text-decoration: none; }

.public-layout-brand .fale { color: var(--brand-midnight-truth); }
.public-layout-brand .verum { color: var(--brand-moral-gold); }

.public-layout-main   { padding-top: 0.5rem; }
.public-layout-footer { margin-top: 2rem; }

/* ── 9. Flash messages ────────────────────────────────────────────── */
.flash-notice,
.flash-alert {
  padding: 0.75rem 1rem;
  border-radius: 8px;
  margin: 0.75rem 0;
  font-size: 0.9rem;
  font-weight: 500;
}

.flash-notice {
  background-color: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

.flash-alert {
  background-color: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

/* ── 10. Components: article / card ───────────────────────────────── */
article {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}

/* card-compact modifier (mirrors components.css) */
.card-compact { padding: 0.75rem 1rem; }
.card-compact header {
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
}
.card-compact footer {
  padding-top: 0.5rem;
  margin-top: 0.5rem;
}

/* ── 11. Utilities ────────────────────────────────────────────────── */
.text-center  { text-align: center; }
.text-muted   { color: var(--brand-slate-steel); }
.text-sm      { font-size: 0.85rem; }
.text-bold    { font-weight: 600; }

.m-0  { margin: 0; }
.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 1rem; }
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 2rem; }

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* ── 12. Marketing components ─────────────────────────────────────── */

/* Wrapper */
.marketing-wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* ── 12a. Hero ── */
.marketing-hero {
  text-align: center;
  padding: 1.5rem 1rem 2rem;
}

.marketing-hero--conversion {
  background: linear-gradient(135deg, #f8fafb 0%, #fff 100%);
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  margin-top: 0.75rem;
}

.marketing-kicker {
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 0.7rem;
  color: var(--brand-moral-gold);
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.marketing-logo-heading {
  font-size: 2rem;
  margin-bottom: 0.75rem;
  line-height: 1.2;
}

.marketing-description {
  font-size: 1rem;
  color: var(--brand-slate-steel);
  max-width: 600px;
  margin: 0 auto 1rem;
}

/* ── 12b. Sections ── */
.marketing-section { margin: 2rem auto; }

/* ── 12c. Buttons ── */
.marketing-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 8px;
  padding: 0.75rem 1.1rem;
  font-weight: 700;
  font-size: 0.95rem;
  border: 1px solid transparent;
  line-height: 1.2;
  transition: transform 0.2s ease, box-shadow 0.2s ease,
              background-color 0.2s ease, color 0.2s ease,
              border-color 0.2s ease;
}

.marketing-btn:hover { transform: translateY(-1px); }

.marketing-btn:focus-visible {
  outline: 2px solid var(--brand-midnight-truth);
  outline-offset: 2px;
}

.marketing-btn--primary {
  background-color: var(--brand-moral-gold);
  border-color: var(--brand-moral-gold);
  color: #fff;
  box-shadow: 0 8px 20px rgba(180, 83, 9, 0.25);
}

.marketing-btn--primary:hover {
  background-color: #92400e;
  border-color: #92400e;
  color: #fff;
  box-shadow: 0 10px 24px rgba(146, 64, 14, 0.3);
}

.marketing-btn--outline {
  background-color: #fff;
  border-color: #cbd5e1;
  color: var(--brand-midnight-truth);
}

.marketing-btn--outline:hover {
  background-color: #f8fafc;
  border-color: #94a3b8;
  color: var(--brand-midnight-truth);
}

.marketing-btn--ghost {
  background-color: #eef2f7;
  border-color: #d6deeb;
  color: #1e293b;
}

.marketing-btn--ghost:hover {
  background-color: #e2e8f0;
  border-color: #cbd5e1;
  color: #0f172a;
}

/* ── 12d. Feature cards ── */
.marketing-features     { gap: 2rem; margin: 3rem 0; }
.marketing-feature-card { text-align: center; padding: 2rem; }

/* ── 12e. Waitlist inline form ── */
.waitlist-inline-frame {
  display: block;
  max-width: 680px;
  margin: 1.5rem auto 0;
}

.waitlist-inline-card {
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  background-color: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  padding: 1rem;
  text-align: left;
}

.waitlist-inline-card--success {
  text-align: center;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.waitlist-success-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #0f172a;
}

.waitlist-inline-copy  { margin: 0 0 0.75rem; color: #334155; }

.waitlist-inline-form  { display: grid; gap: 0.75rem; }

.waitlist-inline-errors {
  margin-bottom: 0.75rem;
  border: 1px solid #fecaca;
  background-color: #fef2f2;
  color: #991b1b;
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
}

.waitlist-inline-submit {
  width: auto;
  min-width: 230px;
  margin-top: 0.25rem;
}

/* ── 12f. Plan pricing cards ── */
.marketing-pricing-grid { gap: 1rem; }

.marketing-plan-card {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 1.25rem;
  background-color: #fff;
  box-shadow: none; /* override article default */
}

.marketing-plan-card--featured {
  border-color: var(--brand-moral-gold);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.marketing-plan-price {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--brand-midnight-truth);
}

/* ── 12g. CTA groups ── */
.marketing-inline-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.marketing-cta-buttons {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}

/* ── 12h. Steps grid ── */
.marketing-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.marketing-step-card {
  border: 1px solid #dbe3ef;
  border-radius: 10px;
  padding: 1rem;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.marketing-step-card h3 { margin-bottom: 0.4rem; font-size: 1.1rem; }
.marketing-step-card p  { margin-bottom: 0; }

.marketing-step-number {
  width: 2rem; height: 2rem;
  border-radius: 999px;
  background-color: var(--brand-midnight-truth);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  margin-bottom: 0.6rem;
}

/* ── 12i. Footer ── */
.marketing-footer {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--brand-slate-steel);
  font-size: 0.85rem;
}

/* ── 12j. Sticky mobile CTA (hidden on desktop) ── */
.marketing-sticky-cta { display: none; }

/* ── 12k. Subscription form ── */
.form-grid     { display: grid; gap: 0.75rem; }
.checkbox-line { display: flex; align-items: flex-start; gap: 0.5rem; font-weight: 400; font-size: 0.9rem; }

/* ── 13. Responsive ───────────────────────────────────────────────── */
@media (max-width: 768px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.6rem; }

  .marketing-logo-heading { font-size: 1.75rem; }

  .marketing-cta-buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .marketing-btn  { width: 100%; }

  .marketing-steps-grid { grid-template-columns: 1fr; }

  .waitlist-inline-submit { width: 100%; }

  .marketing-sticky-cta {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    position: sticky;
    bottom: 0;
    background-color: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0.35rem;
    gap: 0.35rem;
    margin-top: 1rem;
  }

  .marketing-sticky-cta a {
    text-align: center;
    text-decoration: none;
    background-color: #f8fafb;
    color: #1e293b;
    border-radius: 6px;
    padding: 0.5rem 0.25rem;
    font-size: 0.85rem;
    font-weight: 700;
  }
}
