/* GunMoney — shared stylesheet */
:root {
  --gm-bg: #fbfcfa;
  --gm-ink: #17211a;
  --gm-dark: #0e1a12;
  --gm-darkest: #0a130d;
  --gm-green: #4fc47a;
  --gm-green-deep: #2f9e5c;
  --gm-green-dark: #1e6b3e;
  --gm-mint: #dcf2e4;
  --gm-tint: #eef4ef;
  --gm-muted: #56645a;
  --gm-muted-inv: #b9c9be;
  --gm-faded: #8ba392;
  --gm-line: #e2e8e3;
}

body.gm {
  margin: 0;
  background: var(--gm-bg);
  color: var(--gm-ink);
  font-family: 'Archivo', sans-serif;
}
.gm a { 
  color: inherit; 
  text-decoration: none;  
}
.gm a:hover { 
  color: inherit; 
  opacity: .85;  
}

/* ---------- nav ---------- */
.gm-nav {
  height: 76px;
  background: var(--gm-dark);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
}
.gm-brand { 
  font-weight: 800; 
  font-size: 24px; 
  color: #fff;  
}
.gm-brand em { 
  font-style: normal; 
  color: var(--gm-green);  
}
.gm-nav-links { 
  display: flex; 
  align-items: center; 
  gap: 30px; 
  font-weight: 500; 
  font-size: 15px;  
}
.gm a.gm-nav-link, .gm-nav-link { 
  color: var(--gm-muted-inv);  
}
.gm a.gm-nav-link.active, .gm-nav-link.active { 
  color: var(--gm-green); 
  font-weight: 700;  
}
.page-terms h4 {
  font-size: 24px;
    font-weight: 800;
    letter-spacing: -.01em;
    margin-bottom: 10px;
}
/* ---------- buttons ---------- */
.btn-gm, .gm a.btn-gm {
  background: var(--gm-green);
  color: var(--gm-dark);
  font-weight: 700;
  padding: 10px 22px;
  border-radius: 100px;
  border: 0;
}
.btn-gm:hover, .gm a.btn-gm:hover { 
  background: #45b16d; 
  color: var(--gm-dark);  
}
.btn-gm-lg { 
  padding: 16px 44px; 
  font-size: 19px;  
}
.btn-gm-sm { 
  padding: 6px 13px 5px !important; 
  font-size: 13px;  
}
.btn-gm-dark, .gm a.btn-gm-dark { 
  background: var(--gm-dark); 
  color: #fff;  
}
.btn-gm-dark:hover, .gm a.btn-gm-dark:hover { 
  background: #16281c; 
  color: #fff;  
}
.btn-gm-ghost { 
  background: none; 
  border: 0; 
  color: var(--gm-muted); 
  font-weight: 600;  
}

/* ---------- hero / dark bands ---------- */
.gm-hero { 
  /*background: var(--gm-dark);*/
  background: url(../img/dr-home.webp) no-repeat center;
  background-color: var(--gm-dark); 
  background-size: cover;
  color: #fff; 
  padding: 88px 64px 72px;  
}
.gm-hero--center { 
  text-align: center; 
  padding: 72px 64px;  
}
.gm-hero h1 { 
  font-size: clamp(32px, 4.5vw, 54px); 
  font-weight: 800; 
  line-height: 1.08; 
  letter-spacing: -.02em; 
  margin: 22px 0 18px;  
}
.gm-hero--center h1 { 
  font-size: clamp(30px, 4vw, 48px); 
  margin: 20px auto 14px; 
  max-width: 780px;  
}
.gm-hero .gm-lead { 
  font-size: 19px; 
  line-height: 1.55; 
  color: var(--gm-muted-inv); 
  max-width: 520px;  
}
.gm-hero--center .gm-lead { 
  max-width: 620px; 
  margin: 0 auto;  
}
.gm-badge {
  display: inline-block;
  background: rgba(79, 196, 122, .12);
  color: var(--gm-green);
  border-radius: 100px;
  padding: 7px 16px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
}
.gm-badge--light { 
  background: var(--gm-mint); 
  color: var(--gm-green-dark);  
}
.gm-hero-note { 
  font-size: 15px; 
  color: var(--gm-muted-inv);  
}
.gm-stats { 
  display: flex; 
  gap: 40px; 
  margin-top: 48px;  
}
.gm-stat-num { 
  font-size: 28px; 
  font-weight: 800; 
  color: var(--gm-green);  
}
.gm-stat-label { 
  font-size: 14px; 
  color: var(--gm-faded);  
}

/* ---------- placeholders (replace with real photos) ---------- */
.gm-ph {
  border-radius: 16px;
  background: repeating-linear-gradient(45deg, rgba(23,33,26,.06) 0 10px, transparent 10px 20px);
  border: 1px dashed #c8d2ca;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 12px/1.5 monospace;
  color: #7d8a80;
  text-align: center;
  padding: 12px;
}
.we-buy-img {
  border-radius: 16px;
  overflow: hidden;
}
.gm-ph--dark {
  background: url(../img/header.webp) no-repeat center;
  background-size: cover;
  border-color: rgba(255,255,255,.25);
  color: var(--gm-faded);
}
.gm-ph--hero { 
  height: 400px;  
}
.gm-ph--card { 
  border-radius: 0; 
  border: 0;  
}
.gm-ph--row { 
  height: 220px;  
}

/* ---------- sections ---------- */
.gm-section { 
  padding: 84px 64px;  
}
.gm-section--tint { 
  background: var(--gm-tint);  
}
.gm-title { 
  font-size: clamp(28px, 3.5vw, 40px); 
  font-weight: 800; 
  letter-spacing: -.01em;  
}
.gm-sub { 
  color: var(--gm-muted); 
  font-size: 17px;  
}

/* ---------- cards ---------- */
.gm-card { 
  background: #fff; 
  border: 1px solid var(--gm-line); 
  border-radius: 16px; 
  padding: 30px; 
  height: 100%;  
}
.gm-card--plain { 
  border: 0; 
  padding: 28px;  
}
.gm-card h3 { 
  font-size: 21px; 
  font-weight: 700; 
  margin: 10px 0 8px;  
}
.gm-card p { 
  color: var(--gm-muted); 
  font-size: 15px; 
  line-height: 1.6; 
  margin: 0;  
}
.gm-card--dark { 
  background: var(--gm-dark); 
  color: #fff; 
  border: 0; 
  border-radius: 16px; 
  padding: 28px; 
  height: 100%;  
}
.gm-step-tag { 
  font-size: 15px; 
  font-weight: 700; 
  color: var(--gm-green-deep);  
}
.gm-check {
  width: 40px; 
  height: 40px;
  border-radius: 12px;
  background: var(--gm-mint);
  color: var(--gm-green-deep);
  font-weight: 800; 
  font-size: 18px;
  display: flex; 
  align-items: center; 
  justify-content: center;
}
.gm-quote-amount { 
  font-size: 30px; 
  font-weight: 800; 
  color: var(--gm-green);  
}
.gm-quote-text { 
  font-size: 16px; 
  line-height: 1.6; 
  margin: 14px 0 16px; 
  color: #d7e2da;  
}
.gm-quote-name { 
  font-weight: 700; 
  font-size: 15px;  
}
.gm-quote-gun { 
  font-size: 14px; 
  color: var(--gm-faded);  
}
.gm-buy-card { 
  background: #fff; 
  border-radius: 16px; 
  overflow: hidden; 
  height: 100%;  
}
.gm-buy-card figcaption { 
  padding: 16px; 
  font-weight: 700; 
  font-size: 15px; 
  text-align: center;  
}

/* ---------- pills ---------- */
.gm-pills { 
  display: flex; 
  flex-wrap: wrap; 
  gap: 8px;  
}
.gm-pill {
  background: var(--gm-mint);
  color: var(--gm-green-dark);
  border-radius: 100px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
}
.gm-states { 
  display: flex; 
  flex-wrap: wrap; 
  justify-content: center; 
  gap: 10px; 
  max-width: 900px; 
  margin: 0 auto;  
}
.gm-state { 
  background: #fff; 
  border-radius: 100px; 
  padding: 8px 15px; 
  font-weight: 700; 
  font-size: 14px;  
}

/* ---------- FAQ accordion ---------- */
.gm-accordion { 
  max-width: 820px; 
  margin: 0 auto;  
}
.gm-accordion .accordion-item { 
  border-radius: 12px; 
  overflow: hidden; 
  margin-bottom: 10px; 
  border: 1px solid var(--gm-line);  
}
.gm-accordion .accordion-button { 
  font-weight: 700; 
  font-size: 17px; 
  font-family: 'Archivo', sans-serif; 
  color: var(--gm-ink);  
}
.gm-accordion .accordion-button:not(.collapsed) { 
  background: var(--gm-mint); 
  color: var(--gm-green-dark); 
  box-shadow: none;  
}
.gm-accordion .accordion-body { 
  color: var(--gm-muted); 
  font-size: 15px; 
  line-height: 1.6;  
}

/* ---------- detail rows (how-it-works / what-we-buy) ---------- */
.gm-rows { 
  max-width: 1100px; 
  margin: 0 auto;  
}
.gm-row-item { 
  padding: 36px 0; 
  border-bottom: 1px solid var(--gm-line);  
}
.gm-row-item h2 { 
  font-size: 30px; 
  font-weight: 800; 
  letter-spacing: -.01em; 
  margin-bottom: 10px;  
}
.gm-row-item .gm-body { 
  color: var(--gm-muted); 
  font-size: 16px; 
  line-height: 1.65; 
  margin: 0 0 14px;  
}

/* ---------- CTA band ---------- */
.gm-cta { 
  padding: 92px 64px; 
  background: var(--gm-dark); 
  color: #fff; 
  text-align: center;  
}
.gm-cta h2 { 
  font-size: clamp(30px, 4vw, 46px); 
  font-weight: 800; 
  letter-spacing: -.01em; 
  margin-bottom: 14px;  
}
.gm-cta p { 
  color: var(--gm-muted-inv); 
  font-size: 18px; 
  margin-bottom: 28px;  
}
.gm-cta em { 
  font-style: normal; 
  color: var(--gm-green);  
}

/* ---------- footer ---------- */
.gm-footer { 
  background: var(--gm-darkest); 
  color: var(--gm-faded); 
  padding: 44px 64px; 
  font-size: 14px;  
}
.gm-footer-row { 
  display: flex; 
  justify-content: space-between;  
}
.gm-footer-links { 
  display: flex; 
  gap: 30px;  
}
.gm .gm-footer-links a { 
  color: var(--gm-faded);  
}
.gm .gm-footer-links a.active { 
  color: var(--gm-green);  
}
.gm-footer .gm-brand { 
  font-size: 20px;  
}
.gm-copyright { 
  margin-top: 24px;  
}

/* ---------- forms ---------- */
.gm-form-card { 
  background: #fff; 
  border: 1px solid var(--gm-line); 
  border-radius: 20px; 
  padding: 40px;  
}
.gm .form-label { 
  font-weight: 600; 
  font-size: 14px;  
}
.gm .form-control, .gm .form-select { 
  border-radius: 10px; 
  padding: 12px 14px;  
}
.gm .form-control:focus, .gm .form-select:focus { 
  border-color: var(--gm-green); 
  box-shadow: 0 0 0 .25rem rgba(79,196,122,.2);  
}
.gm-note-box { 
  background: var(--gm-tint); 
  border-radius: 12px; 
  padding: 16px 20px; 
  font-size: 14px; 
  color: #35443a;  
}

/* ---------- offer stepper ---------- */
.gm-progress { 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  gap: 24px; 
  margin-bottom: 32px;  
}
.gm-progress-step { 
  display: flex; 
  align-items: center; 
  gap: 8px; 
  font-size: 14px; 
  font-weight: 600; 
  color: #7d8a80;  
}
.gm-progress-dot {
  width: 30px; 
  height: 30px; 
  border-radius: 50%;
  background: var(--gm-line); 
  color: #7d8a80;
  font-weight: 800; 
  font-size: 14px;
  display: flex; 
  align-items: center; 
  justify-content: center;
}
.gm-progress-step.active .gm-progress-dot,
.gm-progress-step.done .gm-progress-dot { 
  background: var(--gm-green); 
  color: var(--gm-dark);  
}
.gm-progress-step.active { 
  color: var(--gm-ink);  
}
.gm-step-panel { 
  display: none;  
}
.gm-step-panel.active { 
  display: block;  
}
.gm-type-chip {
  border: 1px solid #d4dcd6; 
  background: #fff; 
  color: var(--gm-muted);
  border-radius: 100px; 
  padding: 9px 18px; 
  font-size: 14px; 
  font-weight: 600;
}
.gm-type-chip.selected { 
  background: var(--gm-mint); 
  border-color: var(--gm-green-deep); 
  color: var(--gm-green-dark);  
}
.gm-photo-slot {
  height: 130px;
  border: 2px dashed #c8d2ca; 
  border-radius: 14px; 
  background: #f4f8f5;
  display: flex; 
  flex-direction: column; 
  align-items: center; 
  justify-content: center; 
  gap: 6px;
  color: #7d8a80; 
  font-size: 12px; 
  font-weight: 600;
}
.gm-photo-slot .plus { 
  font-size: 24px; 
  color: var(--gm-green-deep);  
}
.gm-form-nav { 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  margin-top: 32px;  
}
.gm-success-icon {
  width: 64px; 
  height: 64px; 
  border-radius: 50%;
  background: var(--gm-mint); 
  color: var(--gm-green-deep);
  font-size: 30px; 
  font-weight: 800;
  display: flex; 
  align-items: center; 
  justify-content: center;
  margin: 0 auto 18px;
}
.gm-trust-row { 
  display: flex; 
  justify-content: center; 
  gap: 28px; 
  margin-top: 24px; 
  font-size: 13px; 
  color: #7d8a80;  
}

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
  .gm-nav { 
    height: auto; 
    flex-wrap: wrap; 
    gap: 12px; 
    padding: 14px 24px; 

  }
  .gm-nav-links { 
    flex-wrap: wrap; 
    gap: 14px 20px; 

  }
  .gm-hero, .gm-section, .gm-cta { 
    padding-left: 32px; 
    padding-right: 32px; 

  }
  .gm-hero { 
    padding-top: 56px; 
    padding-bottom: 48px; 

  }
  .gm-stats { 
    flex-wrap: wrap; 
    gap: 24px; 
    margin-top: 32px; 

  }
  .gm-ph--hero { 
    height: 300px; 

  }
  .gm-footer { 
    padding: 36px 32px; 

  }
  .gm-footer-row { 
    flex-direction: column; 
    gap: 20px; 

  }
  .gm-footer-links { 
    flex-wrap: wrap; 
    gap: 12px 20px; 

  }
}
@media (max-width: 575.98px) {
  .gm-hero, .gm-section, .gm-cta { 
    padding-left: 20px; 
    padding-right: 20px; 

  }
  .gm-section { 
    padding-top: 48px; 
    padding-bottom: 48px; 

  }
  .gm-cta { 
    padding-top: 56px; 
    padding-bottom: 56px; 

  }
  .gm-form-card { 
    padding: 24px; 

  }
  .gm-progress { 
    gap: 14px; 

  }
  .gm-progress-step span { 
    display: none; 

  }
  .gm-trust-row { 
    flex-wrap: wrap; 
    gap: 10px 20px; 

  }
  .gm-ph--row { 
    height: 180px; 

  }
  .btn-gm-lg { 
    padding: 14px 30px; 
    font-size: 17px; 

  }
}
