/* ── The Rambler — Founding Members page ── */

/* Design tokens shared with theme.css */
:root {
  --mahogany:   #2C1810;
  --brass:      #C4956A;
  --cream:      #F5EFE6;
  --cream-deep: #EDE4D6;
  --text-body:  #3d2b1e;
  --text-lt:    #9ca3af;
}

/* ── Page ── */
.fm-page {
  background: var(--cream);
  color: var(--text-body);
  font-family: 'DM Sans', sans-serif;
}

/* ── Sections ── */
.fm-section {
  padding: 80px 0;
}
.fm-section--cream {
  background: var(--cream-deep);
}
.fm-section--dark {
  background: var(--mahogany);
}
.fm-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 32px;
}
.fm-two-col {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 64px;
  align-items: start;
}
.fm-centered {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* ── Typography ── */
.fm-eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 500;
  margin-bottom: 12px;
}
.fm-section-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 500;
  margin-bottom: 10px;
}
.fm-section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 700;
  color: var(--mahogany);
  line-height: 1.2;
  margin-bottom: 28px;
}
.fm-text {
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-body);
  margin-bottom: 18px;
  max-width: 600px;
}

/* ── Hero ── */
.fm-hero {
  padding: 100px 0 80px;
  background: var(--mahogany);
  text-align: center;
}
.fm-hero-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 32px;
}
.fm-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(36px, 6vw, 64px);
  font-weight: 700;
  color: var(--cream);
  line-height: 1.1;
  margin-bottom: 20px;
}
.fm-hero-lede {
  font-size: 17px;
  color: rgba(245,239,230,0.72);
  line-height: 1.65;
  margin-bottom: 40px;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Live counter ── */
.fm-counter-wrap {
  margin: 0 auto 32px;
  max-width: 480px;
}
.fm-counter {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 12px;
  margin-bottom: 12px;
}
.fm-counter--full .fm-counter-num {
  color: #ef4444;
}
.fm-counter-num {
  font-family: 'Playfair Display', serif;
  font-size: 72px;
  font-weight: 800;
  color: var(--brass);
  line-height: 1;
}
.fm-counter-label {
  font-size: 15px;
  color: rgba(245,239,230,0.65);
  letter-spacing: 0.02em;
}
.fm-counter-bar {
  width: 100%;
  height: 4px;
  background: rgba(245,239,230,0.12);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 10px;
}
.fm-counter-fill {
  height: 100%;
  background: var(--brass);
  border-radius: 2px;
  transition: width 0.6s ease;
}
.fm-counter-sub {
  font-size: 13px;
  color: rgba(245,239,230,0.5);
  letter-spacing: 0.02em;
}

/* ── Hero badges ── */
.fm-hero-badges {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 8px;
}
.fm-badge {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  padding: 6px 14px;
  border: 1px solid rgba(196,149,106,0.35);
  border-radius: 20px;
  color: rgba(245,239,230,0.7);
  background: rgba(196,149,106,0.08);
}

/* ── Perks grid ── */
.fm-perks-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  margin-bottom: 56px;
}
.fm-perk {
  padding: 28px 24px;
  background: #fff;
  border: 1px solid rgba(196,149,106,0.15);
  border-radius: 8px;
  text-align: center;
}
.fm-perk-icon {
  width: 52px;
  height: 52px;
  background: rgba(196,149,106,0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  color: var(--brass);
}
.fm-perk-title {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--mahogany);
  margin-bottom: 10px;
}
.fm-perk-desc {
  font-size: 13px;
  line-height: 1.65;
  color: #6b7280;
}

/* ── Price callout ── */
.fm-price-callout {
  display: flex;
  justify-content: center;
}
.fm-price-box {
  background: var(--mahogany);
  color: var(--cream);
  border-radius: 10px;
  padding: 40px 56px;
  text-align: center;
  max-width: 400px;
  width: 100%;
}
.fm-price-label {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass);
  margin-bottom: 10px;
  font-weight: 500;
}
.fm-price-amount {
  font-family: 'Playfair Display', serif;
  font-size: 64px;
  font-weight: 800;
  color: var(--cream);
  line-height: 1;
  margin-bottom: 16px;
}
.fm-price-note {
  font-size: 13px;
  color: rgba(245,239,230,0.6);
  line-height: 1.65;
}

/* ── FAQ grid ── */
.fm-faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 32px;
}
.fm-faq {
  border-top: 1px solid rgba(245,239,230,0.12);
  padding-top: 20px;
}
.fm-faq-q {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--cream);
  margin-bottom: 10px;
  line-height: 1.35;
}
.fm-faq-a {
  font-size: 14px;
  color: rgba(245,239,230,0.6);
  line-height: 1.7;
}

/* ── Form ── */
.fm-form {
  max-width: 680px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(196,149,106,0.15);
  border-radius: 10px;
  padding: 40px 48px;
}
.fm-form-note {
  font-size: 14px;
  color: #6b7280;
}
.fm-error-banner {
  background: #fee2e2;
  color: #991b1b;
  border-radius: 6px;
  padding: 12px 16px;
  font-size: 14px;
  margin-bottom: 24px;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.fm-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}
.fm-field {
  display: flex;
  flex-direction: column;
}
.fm-field--full {
  grid-column: 1 / -1;
}
.fm-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 500;
  margin-bottom: 8px;
}
.fm-required { color: #dc2626; }
.fm-optional { color: #9ca3af; text-transform: none; letter-spacing: 0; font-size: 10px; }
.fm-input,
.fm-textarea {
  padding: 11px 14px;
  border: 1px solid rgba(196,149,106,0.3);
  border-radius: 4px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--mahogany);
  background: #fff;
  transition: border-color 0.15s;
  outline: none;
}
.fm-input:focus,
.fm-textarea:focus {
  border-color: var(--brass);
  box-shadow: 0 0 0 3px rgba(196,149,106,0.12);
}
.fm-textarea { resize: vertical; min-height: 88px; }

/* ── Radio group ── */
.fm-radio-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
.fm-radio-label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text-body);
}
.fm-radio-label input[type="radio"] {
  width: 16px;
  height: 16px;
  accent-color: var(--brass);
  cursor: pointer;
  flex-shrink: 0;
}

/* ── Gift fields ── */
.fm-gift-fields {
  margin-top: 16px;
  background: rgba(196,149,106,0.04);
  border: 1px solid rgba(196,149,106,0.15);
  border-radius: 6px;
  padding: 20px 24px;
}

/* ── Checkbox ── */
.fm-checkbox-field {
  margin-top: 4px;
}
.fm-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text-body);
  font-weight: 500;
}
.fm-checkbox-label input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--brass);
  cursor: pointer;
  flex-shrink: 0;
}
.fm-checkbox-sub {
  font-size: 12px;
  color: #9ca3af;
  margin-top: 6px;
  margin-left: 26px;
  line-height: 1.5;
}

/* ── Form footer ── */
.fm-form-footer {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}
.fm-btn-primary {
  display: inline-block;
  padding: 14px 32px;
  background: var(--mahogany);
  color: var(--cream);
  font-size: 14px;
  font-weight: 500;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: background 0.2s;
}
.fm-btn-primary:hover { background: #3d1f12; }
.fm-btn-secondary {
  display: inline-block;
  padding: 12px 28px;
  border: 1px solid rgba(196,149,106,0.35);
  color: var(--brass);
  font-size: 14px;
  font-weight: 500;
  border-radius: 4px;
  text-decoration: none;
  transition: border-color 0.2s, background 0.2s;
}
.fm-btn-secondary:hover {
  border-color: var(--brass);
  background: rgba(196,149,106,0.06);
}
.fm-form-disclaimer {
  font-size: 12px;
  color: #9ca3af;
  line-height: 1.55;
  max-width: 440px;
}

/* ── Success state ── */
.fm-success-box {
  background: #fff;
  border: 1px solid rgba(196,149,106,0.2);
  border-radius: 10px;
  padding: 48px 56px;
  max-width: 560px;
  text-align: center;
}
.fm-success-icon {
  width: 52px;
  height: 52px;
  background: #dcfce7;
  color: #166534;
  font-size: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-weight: 700;
}
.fm-success-title {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--mahogany);
  margin-bottom: 16px;
}
.fm-success-text {
  font-size: 15px;
  color: var(--text-body);
  line-height: 1.7;
  margin-bottom: 12px;
}
.fm-success-sub {
  font-size: 13px;
  color: #6b7280;
}

/* ── Responsive ── */
@media (max-width: 700px) {
  .fm-two-col {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .fm-form {
    padding: 28px 24px;
  }
  .fm-form-grid {
    grid-template-columns: 1fr;
  }
  .fm-price-box {
    padding: 32px 28px;
  }
  .fm-success-box {
    padding: 36px 24px;
  }
  .fm-hero {
    padding: 72px 0 60px;
  }
}
