/* =========================================================
   NLP Investments LLC — letterpress type shop theme
   Light: PROOF JOB GREY #EFEEE7 ground, CASE INK #292B29 text
   Accent TYPE INK VERMILLION #C83810 / GALLEY STEEL #5A605C
   PROOF STOCK #FAF9F2 cards / BRAYER ROLLER #8E8A7E marks
   STONE BED #26282A dark band / footer
   ========================================================= */

body {
  font-size: 16px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  background-color: #EFEEE7;
  color: #292B29;
  line-height: 1.65;
  overflow-x: hidden;
}

* { box-sizing: border-box; }

a { color: inherit; }

.wrap {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- TYPECASE NAV ---------- */
.typecase {
  position: sticky;
  top: 0;
  background-color: #EFEEE7;
  z-index: 50;
  border-bottom: 3px solid #5A605C;
}

.typecase-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}

.typecase-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}

.brand-plate {
  display: inline-block;
  background-color: #C83810;
  color: #EFEEE7;
  font-weight: bold;
  letter-spacing: 2px;
  padding: 9px 16px;
  font-size: 18px;
}

.typecase-glyph {
  display: grid;
  grid-template-columns: repeat(3, 10px);
  grid-template-rows: repeat(2, 10px);
  gap: 3px;
}

.typecase-glyph span { background-color: #292B29; display: block; }
.typecase-glyph span:nth-child(6) { background-color: #C83810; }

.typecase-nav {
  display: flex;
  align-items: center;
  gap: 14px;
}

.type-sort {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background-color: #FAF9F2;
  border: 2px solid #5A605C;
  font-family: Georgia, serif;
  font-weight: bold;
  font-size: 17px;
  text-decoration: none;
  color: #C83810;
}
.type-sort.galley { color: #5A605C; }

.nav-chip {
  background-color: #C83810;
  color: #EFEEE7;
  font-weight: bold;
  text-decoration: none;
  padding: 10px 16px;
  letter-spacing: 1px;
  white-space: nowrap;
}

.typecase .bar-rule {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 24px 8px;
  max-width: 1240px;
  margin: 0 auto;
}
.typecase .bar-rule .line { flex: 1; border-top: 1px solid #5A605C; }
.typecase .bar-rule .dot { width: 9px; height: 9px; background-color: #C83810; }

.nav-toggle {
  display: none;
  background-color: #C83810;
  color: #EFEEE7;
  border: none;
  font-size: 15px;
  font-weight: bold;
  padding: 10px 14px;
  cursor: pointer;
}

.typecase-mobile {
  display: none;
  background-color: #EFEEE7;
}
.typecase-mobile a {
  display: block;
  padding: 12px 24px;
  border-top: 1px solid #5A605C;
  text-decoration: none;
  font-weight: bold;
  color: #292B29;
}

/* ---------- COMPOSITOR STICK HERO ---------- */
.compositor {
  background-color: #EFEEE7;
  border-bottom: 4px solid #5A605C;
}

.stone {
  background-color: #5A605C;
  border-bottom: 6px solid #EFEEE7;
}
.stone-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 54px;
  padding-bottom: 54px;
}
.stone-tray {
  flex: 1;
  background-color: #292B29;
  border: 6px solid #26282A;
  padding: 26px;
  position: relative;
  min-height: 300px;
}
.stone-tray .chase {
  border: 3px solid #5A605C;
  padding: 18px;
}
.chase-row {
  height: 5px;
  background-color: #FAF9F2;
  margin: 9px 0;
}
.chase-row.verm { background-color: #C83810; height: 8px; position: relative; }
.chase-row.verm::after {
  content: "";
  position: absolute;
  right: -6px;
  top: 0;
  height: 8px;
  width: 5px;
  background-color: #8E8A7E;
}
.stone-tray .stick {
  position: absolute;
  bottom: -16px;
  left: -26px;
  background-color: #8E8A7E;
  width: 220px;
  height: 18px;
  transform: rotate(-4deg);
}
.stick .half-line {
  position: absolute;
  top: -9px;
  left: 8px;
  height: 7px;
  width: 160px;
  background-color: #FAF9F2;
}
.stone-tools { text-align: right; flex: 0 0 150px; }
.ink-drum {
  width: 120px;
  height: 90px;
  background-color: #C83810;
  margin-left: auto;
  border-radius: 8px;
}
.brayer { width: 128px; height: 12px; background-color: #FAF9F2; margin: 6px auto 0; border-radius: 6px; }
.proof-lever { width: 8px; height: 46px; background-color: #8E8A7E; margin: 8px 0 0 auto; }

.proof-table { background-color: #FAF9F2; }
.proof-table-inner {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  padding-top: 58px;
  padding-bottom: 62px;
}
.proof-block h1 {
  font-size: 44px;
  line-height: 1.15;
  color: #26282A;
  margin: 10px 0 8px;
}
.eyebrow {
  color: #C83810;
  font-weight: bold;
  letter-spacing: 4px;
  font-size: 13px;
}
.verm-slug { display: inline-block; width: 14px; height: 14px; background-color: #C83810; margin-right: 10px; }
.proof-block .lead { font-size: 19px; color: #292B29; max-width: 560px; margin: 12px 0 26px; }
.cta-row { display: flex; gap: 16px; flex-wrap: wrap; }
.btn-verm {
  background-color: #C83810;
  color: #FAF9F2;
  font-weight: bold;
  padding: 14px 22px;
  text-decoration: none;
  letter-spacing: 1px;
  display: inline-block;
}
.btn-ink {
  background-color: transparent;
  color: #26282A;
  font-weight: bold;
  padding: 13px 21px;
  border: 2px solid #26282A;
  text-decoration: none;
  letter-spacing: 1px;
}
.proof-fresh {
  flex: 0 0 180px;
  padding-top: 58px;
}
.fresh-sheet {
  border: 1px solid #8E8A7E;
  background-color: #EFEEE7;
  margin: 10px 0;
  padding: 12px;
  transform: rotate(-1deg);
}
.fresh-sheet .line { height: 4px; background-color: #5A605C; margin: 5px 0; }
.fresh-sheet .line.verm { background-color: #C83810; width: 60%; }
.tweezers {
  width: 40px; height: 6px; background-color: #26282A;
  margin: 14px auto 0; border-radius: 3px;
  transform: rotate(18deg);
}

/* ---------- TYPECASE COLUMN ROWS ---------- */
.typecolumn { background-color: #EFEEE7; padding: 76px 0 66px; }
.section-head { text-align: left; margin-bottom: 40px; }
.section-head h2 {
  font-size: 34px;
  margin: 10px 0 8px;
  color: #26282A;
}
.section-head p { max-width: 720px; color: #292B29; }

.double-rule {
  display: flex;
  gap: 6px;
  align-items: center;
  margin: 6px 0 34px;
}
.double-rule span { display: block; height: 2px; background-color: #5A605C; }
.double-rule span.sep { width: 12px; background-color: #C83810; }
.double-rule .gr { flex: 1; }

.typecase-columns {
  display: flex;
  border: 2px solid #5A605C;
}
.typecase-columns .column {
  flex: 1;
  background-color: #FAF9F2;
  border-right: 2px solid #5A605C;
  padding: 30px 22px;
  display: flex;
  flex-direction: column;
}
.typecase-columns .column:last-child { border-right: none; }
.sorts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 9px;
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 2px solid #5A605C;
}
.sorts .pocket {
  height: 30px;
  border: 1px solid #8E8A7E;
  background-color: #EFEEE7;
  position: relative;
}
.sorts .pocket.first::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 9px;
  width: 10px;
  height: 10px;
  background-color: #C83810;
}
.column h3 { font-size: 19px; color: #26282A; margin: 4px 0 10px; }
.column p { font-size: 15px; margin: 0 0 14px; color: #292B29; }
.column .details-link {
  margin-top: auto;
  color: #C83810;
  font-weight: bold;
  text-decoration: none;
  letter-spacing: 1px;
  font-size: 14px;
}

/* ---------- STONE LOCKUP ---------- */
.stone-lockup { background-color: #26282A; padding: 84px 0; }
.stone-lockup h2 { color: #EFEEE7; }
.stone-lockup .section-head p { color: #C8C6BA; }
.lockup {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 46px;
}
.furniture-block {
  flex: 1 1 220px;
  background-color: #4A4C46;
  color: #EFEEE7;
  border: 4px solid #8E8A7E;
  padding: 26px 22px;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.furniture-block h3 { color: #FAF9F2; margin: 0 0 12px; font-size: 22px; }
.furniture-block p { color: #E6E4DB; font-size: 15px; }
.fb1 { transform: translateY(22px); }
.fb2 { transform: translateY(10px); }
.fb3 { transform: translateY(2px); }
.fb4 { transform: translateY(-6px); }

/* ---------- ACCENT STRIP ---------- */
.accent-strip { background-color: #EFEEE7; }
.accent-strip-inner { display: flex; }
.strip-verm {
  flex: 0 0 60%;
  background-color: #C83810;
  color: #26282A;
  padding: 56px 44px;
}
.strip-verm h2 { color: #FAF9F2; margin: 0 0 10px; font-size: 28px; }
.strip-verm p { color: #F6EADF; font-size: 17px; max-width: 560px; }
.strip-verm .proof-btn {
  display: inline-block;
  background-color: #FAF9F2;
  color: #C83810;
  font-weight: bold;
  padding: 13px 20px;
  text-decoration: none;
  margin-top: 12px;
  letter-spacing: 1px;
}
.strip-steel {
  flex: 0 0 40%;
  background-color: #5A605C;
  color: #26282A;
  padding: 56px 40px;
}
.strip-steel h3 { color: #26282A; margin: 0 0 8px; }
.strip-steel .fact { color: #EFEEE7; margin: 12px 0; font-size: 16px; }
.strip-steel .fact b { color: #26282A; display: block; font-size: 13px; letter-spacing: 2px; }
.strip-steel a { color: #FAF9F2; text-decoration: none; }

/* ---------- CHASE FRAME FOOTER ---------- */
.chaseframe { background-color: #26282A; padding: 40px 0 0; }
.chaseframe .inner { padding-top: 20px; padding-bottom: 26px; }
.chase-frame {
  border: 2px solid #C83810;
  position: relative;
  padding: 22px 26px;
}
.quoin { position: absolute; width: 10px; height: 10px; background-color: #5A605C; }
.quoin.q1 { top: -4px; left: -4px; }
.quoin.q2 { bottom: -4px; right: -4px; }
.frame-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.frame-links a { color: #EFEEE7; text-decoration: none; font-weight: bold; }
.frame-links .q { width: 7px; height: 7px; background-color: #5A605C; }
.address-line {
  color: #FAF9F2;
  margin-top: 18px;
  font-size: 15px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  position: relative;
  z-index: 1;
}
.address-line a { color: #FAF9F2; text-decoration: none; }

/* ---------- PAGES COMMON ---------- */
.page-hero { background-color: #26282A; padding: 70px 0 60px; }
.page-hero h1 { color: #FAF9F2; font-size: 40px; margin: 12px 0 8px; }
.page-hero .crumb { color: #C83810; font-weight: bold; letter-spacing: 3px; font-size: 13px; }
.page-hero p { color: #EFEEE7; max-width: 720px; }

.page-body { background-color: #EFEEE7; padding: 70px 0 60px; }
.page-body h2 { font-size: 30px; color: #26282A; margin: 46px 0 12px; }
.page-body h3 { color: #C83810; font-size: 20px; }
.page-body p { max-width: 820px; }
.page-body ul { max-width: 820px; }

.panel {
  background-color: #FAF9F2;
  border: 1px solid #5A605C;
  border-left: 5px solid #C83810;
  padding: 26px;
  margin: 30px 0;
}
.panel h3 { margin-top: 0; }

.flow-row {
  display: flex;
  flex-wrap: wrap;
  gap: 224px;
  align-items: stretch;
  justify-content: space-between;
  margin: 60px 0 20px;
}
.flow-step {
  flex: 1 1 230px;
  background-color: #26282A;
  color: #EFEEE7;
  padding: 22px;
}
.flow-step h3 { color: #FAF9F2; }

.faq { background-color: #FAF9F2; border: 1px solid #5A605C; padding: 20px 24px; margin: 18px 0; }
.faq h3 { margin-top: 0; color: #C83810; }
.faq p { margin-bottom: 0; }

.lockup-cta { background-color: #C83810; padding: 40px; text-align: left; margin-top: 50px; }
.lockup-cta h2 { color: #FAF9F2; margin-top: 0; }
.lockup-cta a.btn { background-color: #FAF9F2; color: #C83810; }

.chase-rule {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 22px 0;
}
.chase-rule span { height: 2px; background-color: #C83810; flex: 1; }
.chase-rule i { display: block; width: 9px; height: 9px; background-color: #5A605C; }

details.acc { background-color: #FAF9F2; border: 1px solid #5A605C; margin: 14px 0; padding: 0; }
details.acc summary {
  padding: 18px 22px;
  font-weight: bold;
  cursor: pointer;
  color: #26282A;
  list-style: none;
  position: relative;
}
details.acc summary::after {
  content: "+";
  position: absolute;
  right: 22px;
  color: #C83810;
  font-weight: bold;
}
details.acc[open] summary::after { content: "\2212"; }
details.acc p { margin: 0;
  padding: 0 22px 20px; }

/* ---------- SERVICES & CONTACT ---------- */
.copy-grid { display: flex; flex-wrap: wrap; gap: 26px; }
.copy-grid article { flex: 1 1 300px; }

.vstack { display: flex; flex-direction: column; gap: 26px; margin-top: 20px; }

.count-band { background-color: #26282A; color: #EFEEE7; padding: 30px; text-align: center; }
.count-band .figure { font-size: 42px; color: #C83810; font-weight: bold; }

.service-block { background-color: #FAF9F2; border: 1px solid #5A605C; padding: 28px; margin: 26px 0; }
.service-block h3 { color: #C83810; }

.form-card { background-color: #FAF9F2; border: 1px solid #5A605C; padding: 34px; max-width: 760px; }
.form-card label { display: block; font-weight: bold; margin: 16px 0 6px; color: #26282A; }
.form-card input, .form-card select, .form-card textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #5A605C;
  background-color: #EFEEE7;
  color: #292B29;
  font: inherit;
}
.form-card .submit {
  margin-top: 20px;
  background-color: #C83810;
  color: #FAF9F2;
  font-weight: bold;
  border: none;
  padding: 14px 22px;
  cursor: pointer;
  letter-spacing: 1px;
}
.form-note { font-size: 14px; color: #5A605C; margin-top: 12px; }

.info-panel { background-color: #FAF9F2; border: 1px solid #5A605C; padding: 22px 24px; margin: 18px 0; }
.info-panel b { color: #C83810; display: block; }

/* scroll reveal initial state safe without JS */
.reveal { opacity: 1; transform: none; }
.js .reveal:not(.visible) { opacity: 0; transform: translateY(14px); }
.js .reveal.visible { opacity: 1; transform: none; transition: opacity 0.7s ease, transform 0.7s ease; }
body:not(.js) .reveal { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .typecase-nav { display: none; }
  .nav-toggle { display: inline-block; }
  .typecase-mobile.open { display: block; }
  .stone-inner, .proof-table-inner { flex-direction: column; }
  .proof-fresh, .stone-tools { flex: 1 1 auto; text-align: left; }
  .typecase-columns { flex-direction: column; }
  .typecase-columns .column { border-right: none; border-bottom: 2px solid #5A605C; }
  .accent-strip-inner { flex-direction: column; }
  .strip-verm { flex-basis: auto; }
  .strip-steel { flex-basis: auto; }
  .proof-table-inner .proof-block h1 { font-size: 32px; }
  .frame-links { flex-direction: column; align-items: flex-start; }
  .address-line { flex-direction: column; }
}
