/* ============================================================
   Bear Loan Cash Advance — design tokens
   ============================================================ */
:root{
  --forest:#1B3A2F;
  --forest-2:#122720;
  --honey:#E8A33D;
  --honey-2:#F4B85B;
  --cream:#FBF6EC;
  --cream-2:#F3EBDA;
  --bark:#6B4226;
  --sage:#8FA998;
  --sage-2:#DCE6DF;
  --ink:#1F2620;
  --ink-soft:#4B5750;
  --danger:#B4472A;
  --radius-lg:22px;
  --radius-md:14px;
  --radius-sm:9px;
  --shadow-card:0 10px 24px -12px rgba(27,58,47,0.28);
  --shadow-pop:0 16px 32px -14px rgba(232,163,61,0.55);
  --font-display:"Fraunces", Georgia, serif;
  --font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:"IBM Plex Mono", "SFMono-Regular", Menlo, monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}

.app-shell{
  max-width:430px;
  margin:0 auto;
  min-height:100vh;
  position:relative;
  background:var(--cream);
  padding-bottom:92px; /* space for bottom nav */
}

/* ---------------- Top bar ---------------- */
.topbar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 18px 14px;
  background:var(--forest);
  color:var(--cream);
  position:sticky;
  top:0;
  z-index:30;
}
.topbar .paw{
  width:34px;height:34px;
  border-radius:50%;
  background:var(--honey);
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.topbar .paw svg{width:19px;height:19px;fill:var(--forest);}
.topbar .brand{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.02rem;
  letter-spacing:0.2px;
  line-height:1.1;
}
.topbar .brand span{
  display:block;
  font-family:var(--font-body);
  font-weight:500;
  font-size:0.66rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--honey-2);
  margin-top:2px;
}
.topbar .lock{
  margin-left:auto;
  font-size:0.68rem;
  color:var(--sage-2);
  display:flex;align-items:center;gap:5px;
  font-family:var(--font-mono);
}
.topbar .lock svg{width:12px;height:12px;fill:var(--sage-2);}

/* ---------------- Page header block ---------------- */
.page-head{
  padding:26px 20px 18px;
}
.eyebrow{
  font-family:var(--font-mono);
  font-size:0.7rem;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--bark);
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--sage-2);
  padding:5px 10px;
  border-radius:20px;
  margin-bottom:12px;
}
.page-head h1{
  font-family:var(--font-display);
  font-size:2rem;
  line-height:1.08;
  margin:0 0 8px;
  color:var(--forest);
  font-weight:600;
}
.page-head p{
  margin:0;
  color:var(--ink-soft);
  font-size:0.95rem;
  line-height:1.5;
  max-width:32ch;
}

/* ---------------- Hero (home) ---------------- */
.hero{
  position:relative;
  padding:8px 20px 26px;
  overflow:hidden;
}
.hero-claw{
  position:absolute;
  top:-30px;right:-26px;
  width:140px;height:140px;
  opacity:0.08;
  transform:rotate(18deg);
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:var(--forest);
  color:var(--honey-2);
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:7px 12px;
  border-radius:20px;
  margin-bottom:16px;
}
.hero-badge .dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--honey);
  box-shadow:0 0 0 3px rgba(232,163,61,0.28);
}
.hero h1{
  font-family:var(--font-display);
  font-size:2.35rem;
  line-height:1.04;
  color:var(--forest);
  margin:0 0 12px;
  font-weight:600;
}
.hero h1 em{
  font-style:normal;
  color:var(--honey);
  border-bottom:4px solid var(--honey-2);
}
.hero p{
  color:var(--ink-soft);
  font-size:0.98rem;
  line-height:1.55;
  margin:0 0 22px;
  max-width:34ch;
}

/* ---------------- Amount selector (signature: paw chips) --- */
.amount-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:20px 18px 22px;
  box-shadow:var(--shadow-card);
  border:1px solid var(--cream-2);
}
.amount-card .label-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:14px;
}
.amount-card .label-row span:first-child{
  font-size:0.78rem;
  font-weight:600;
  color:var(--ink-soft);
  text-transform:uppercase;
  letter-spacing:0.8px;
}
.amount-card .selected-amt{
  font-family:var(--font-mono);
  font-size:1.7rem;
  font-weight:600;
  color:var(--forest);
}
.amt-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:18px;
}
.amt-chip{
  position:relative;
  border:1.5px solid var(--cream-2);
  background:var(--cream);
  border-radius:var(--radius-md);
  padding:13px 10px 12px;
  text-align:center;
  cursor:pointer;
  font-family:var(--font-mono);
  font-size:1.05rem;
  font-weight:600;
  color:var(--forest);
  transition:all .18s ease;
}
.amt-chip .paw-mark{
  position:absolute;
  top:6px;right:8px;
  width:11px;height:11px;
  opacity:0;
  transition:opacity .18s ease;
}
.amt-chip .paw-mark svg{width:100%;height:100%;fill:var(--honey);}
.amt-chip.active{
  border-color:var(--honey);
  background:#FFF8EC;
  box-shadow:0 4px 12px -4px rgba(232,163,61,0.5);
}
.amt-chip.active .paw-mark{opacity:1;}
.range-track{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:6px;
  border-radius:6px;
  background:linear-gradient(90deg,var(--honey) 0%,var(--honey) var(--fill,50%),var(--sage-2) var(--fill,50%),var(--sage-2) 100%);
  margin:6px 0 6px;
}
.range-track::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:26px;height:26px;
  border-radius:50%;
  background:var(--forest) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23E8A33D" d="M12 15.5c-2.3 0-4.5 1.6-4.5 3.6 0 1.2 1 2 2.4 2 1 0 1.7-.4 2.1-.4.4 0 1.1.4 2.1.4 1.4 0 2.4-.8 2.4-2 0-2-2.2-3.6-4.5-3.6zM6.2 13.2c1 0 1.9-1 1.9-2.4S7.2 8.4 6.2 8.4s-1.9 1-1.9 2.4 .9 2.4 1.9 2.4zm3.6-4c1 0 1.9-1.1 1.9-2.5S10.8 4.2 9.8 4.2 7.9 5.3 7.9 6.7s.9 2.5 1.9 2.5zm4.8 0c1 0 1.9-1.1 1.9-2.5S15.6 4.2 14.6 4.2s-1.9 1.1-1.9 2.5 .9 2.5 1.9 2.5zm3.6 4c1 0 1.9-1 1.9-2.4S19.2 8.4 18.2 8.4s-1.9 1-1.9 2.4 .9 2.4 1.9 2.4z"/></svg>') center/15px no-repeat;
  cursor:pointer;
  border:3px solid var(--cream);
  box-shadow:0 3px 8px rgba(0,0,0,0.25);
  margin-top:-10px;
}
.range-track::-moz-range-thumb{
  width:26px;height:26px;border-radius:50%;
  background:var(--forest);
  border:3px solid var(--cream);
  cursor:pointer;
}
.range-labels{
  display:flex;justify-content:space-between;
  font-family:var(--font-mono);
  font-size:0.72rem;
  color:var(--ink-soft);
  margin-bottom:6px;
}

/* ---------------- CTA button ---------------- */
.cta-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  border:none;
  background:linear-gradient(135deg,var(--honey-2),var(--honey));
  color:var(--forest-2);
  font-family:var(--font-body);
  font-weight:800;
  font-size:1.02rem;
  letter-spacing:0.3px;
  padding:16px 18px;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-pop);
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.cta-btn:active{transform:scale(0.97);box-shadow:0 8px 18px -10px rgba(232,163,61,0.6);}
.cta-btn svg{width:17px;height:17px;fill:var(--forest-2);}
.cta-sub{
  text-align:center;
  font-size:0.72rem;
  color:var(--ink-soft);
  margin-top:10px;
  font-family:var(--font-mono);
}

/* ---------------- Trust badges strip ---------------- */
.trust-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  padding:22px 20px 4px;
}
.trust-item{
  text-align:center;
  padding:14px 8px;
  background:#fff;
  border-radius:var(--radius-md);
  border:1px solid var(--cream-2);
}
.trust-item .icon{
  width:30px;height:30px;
  margin:0 auto 8px;
  border-radius:50%;
  background:var(--sage-2);
  display:flex;align-items:center;justify-content:center;
}
.trust-item .icon svg{width:15px;height:15px;fill:var(--forest);}
.trust-item span{
  display:block;
  font-size:0.72rem;
  font-weight:600;
  color:var(--forest);
  line-height:1.3;
}

/* ---------------- Section generic ---------------- */
.section{padding:28px 20px 4px;}
.section-title{
  font-family:var(--font-display);
  font-size:1.35rem;
  color:var(--forest);
  margin:0 0 6px;
  font-weight:600;
}
.section-sub{
  font-size:0.88rem;
  color:var(--ink-soft);
  margin:0 0 18px;
  line-height:1.5;
}

/* ---------------- Steps ---------------- */
.steps{display:flex;flex-direction:column;gap:14px;}
.step{
  display:flex;gap:14px;
  background:#fff;
  border-radius:var(--radius-md);
  padding:14px 15px;
  border:1px solid var(--cream-2);
  align-items:flex-start;
}
.step .num{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:0.85rem;
  color:var(--forest);
  background:var(--sage-2);
  min-width:30px;height:30px;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
}
.step h3{margin:0 0 4px;font-size:0.94rem;color:var(--forest);}
.step p{margin:0;font-size:0.82rem;color:var(--ink-soft);line-height:1.45;}

/* ---------------- APR disclosure box ---------------- */
.apr-box{
  background:var(--forest);
  color:var(--cream);
  border-radius:var(--radius-lg);
  padding:20px 18px;
  position:relative;
  overflow:hidden;
}
.apr-box .apr-title{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--honey-2);
  margin-bottom:10px;
}
.apr-range{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:14px;
}
.apr-range .num{
  font-family:var(--font-mono);
  font-size:2rem;
  font-weight:700;
  color:var(--cream);
}
.apr-range .to{font-size:0.85rem;color:var(--sage-2);}
.apr-box p{
  font-size:0.8rem;
  line-height:1.55;
  color:var(--sage-2);
  margin:0 0 14px;
}
.apr-table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--font-mono);
  font-size:0.78rem;
  margin-bottom:6px;
}
.apr-table th,.apr-table td{
  text-align:left;
  padding:8px 6px;
  border-bottom:1px solid rgba(255,255,255,0.12);
  color:var(--cream);
}
.apr-table th{color:var(--honey-2);font-weight:600;font-size:0.68rem;letter-spacing:0.6px;text-transform:uppercase;}
.apr-foot{
  font-size:0.68rem;
  color:var(--sage-2);
  line-height:1.5;
  margin-top:10px;
}

/* ---------------- Requirement checklist ---------------- */
.checklist{display:flex;flex-direction:column;gap:10px;}
.check-item{
  display:flex;gap:12px;align-items:flex-start;
  background:#fff;
  border:1px solid var(--cream-2);
  border-radius:var(--radius-md);
  padding:12px 14px;
}
.check-item .tick{
  width:22px;height:22px;border-radius:50%;
  background:var(--honey);
  flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  margin-top:1px;
}
.check-item .tick svg{width:11px;height:11px;fill:var(--forest-2);}
.check-item p{margin:0;font-size:0.85rem;color:var(--ink);line-height:1.4;}

/* ---------------- Calculator card ---------------- */
.calc-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:20px 18px 22px;
  box-shadow:var(--shadow-card);
  border:1px solid var(--cream-2);
}
.calc-row{margin-bottom:20px;}
.calc-row:last-child{margin-bottom:0;}
.calc-row .row-top{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:8px;
}
.calc-row .row-top .name{
  font-size:0.78rem;font-weight:600;color:var(--ink-soft);
  text-transform:uppercase;letter-spacing:0.6px;
}
.calc-row .row-top .val{
  font-family:var(--font-mono);font-weight:700;font-size:1.15rem;color:var(--forest);
}
.calc-result{
  margin-top:18px;
  background:var(--cream-2);
  border-radius:var(--radius-md);
  padding:16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.calc-result .r-label{font-size:0.76rem;color:var(--ink-soft);}
.calc-result .r-val{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;color:var(--forest);}

/* ---------------- FAQ / accordion ---------------- */
.faq-item{
  border-bottom:1px solid var(--cream-2);
  padding:14px 2px;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:0.88rem;
  font-weight:600;
  color:var(--forest);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{
  font-family:var(--font-mono);
  color:var(--honey);
  font-size:1.1rem;
  transition:transform .2s ease;
}
.faq-item[open] summary .plus{transform:rotate(45deg);}
.faq-item p{
  margin:10px 0 0;
  font-size:0.82rem;
  color:var(--ink-soft);
  line-height:1.55;
}

/* ---------------- Disclosure footer ---------------- */
.legal-note{
  padding:22px 20px 30px;
  font-size:0.68rem;
  line-height:1.6;
  color:var(--ink-soft);
  background:var(--cream-2);
  margin-top:24px;
}
.legal-note b{color:var(--bark);}

/* ---------------- Bottom nav ---------------- */
.bottom-nav{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:100%;
  max-width:430px;
  background:#fff;
  border-top:1px solid var(--cream-2);
  display:flex;
  justify-content:space-around;
  padding:9px 6px calc(9px + env(safe-area-inset-bottom));
  z-index:40;
  box-shadow:0 -8px 20px -12px rgba(27,58,47,0.18);
}
.nav-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  color:var(--ink-soft);
  font-size:0.66rem;
  font-weight:600;
  padding:5px 10px;
  border-radius:12px;
  position:relative;
  min-width:60px;
}
.nav-item svg{width:20px;height:20px;fill:none;stroke:var(--ink-soft);stroke-width:1.7;}
.nav-item.active{color:var(--forest);}
.nav-item.active svg{stroke:var(--forest);}
.nav-item.active .nav-dot{
  position:absolute;
  top:-1px;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--honey);
}
.nav-item .apply-pill{
  background:var(--honey);
  color:var(--forest-2);
  border-radius:50%;
  width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  margin-top:-22px;
  box-shadow:0 6px 14px -4px rgba(232,163,61,0.7);
}
.nav-item .apply-pill svg{stroke:none;fill:var(--forest-2);width:16px;height:16px;}

/* Utility */
.mt-0{margin-top:0;}
@media (max-width:360px){
  .hero h1{font-size:2rem;}
  .page-head h1{font-size:1.7rem;}
}
