/* ============================================================
   gimmefylabs.com · shared inside-page styles
   Extracted from pages/01-homepage.html design system.
   Used by every page except the homepage itself.
   ============================================================ */

:root {
  --red: #B82823;
  --red-dk: #951F1A;
  --paper: #F7F2E8;
  --paper-soft: #FAF6EC;
  --canvas: #0E0E10;
  --ink: #1C1C1C;
  --ink-soft: #4A4A4A;
  --ink-faint: #8A8276;
  --rule: rgba(0,0,0,0.10);
  --rule-strong: rgba(0,0,0,0.18);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--paper); scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { font-family: var(--sans); background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; min-height: 100vh; }
a { color: inherit; }
img { max-width: 100%; display: block; }
em { font-style: italic; }

/* ===== Nav (top, fixed) ===== */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 28px;
  background: rgba(247,242,232,0.86);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 0.5px solid var(--rule);
}
.brand-mark { display: inline-flex; align-items: center; text-decoration: none; }
.brand-mark img { height: 28px; width: auto; display: block; }
.nav .links { display: flex; align-items: center; gap: 22px; }
.nav .links a { font-size: 13px; color: var(--ink-soft); text-decoration: none; font-weight: 500; transition: color 0.18s ease; }
.nav .links a:hover, .nav .links a.is-current { color: var(--ink); }
.nav .try-btn {
  background: transparent; border: 1px solid var(--ink); color: var(--ink) !important;
  padding: 7px 16px; border-radius: 999px; font-weight: 500;
}
.nav .try-btn:hover { background: var(--ink); color: var(--paper) !important; }
.nav .escape-btn {
  background: var(--red); color: white !important;
  padding: 7px 16px 7px 14px; border-radius: 999px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 7px; position: relative;
}
.nav .escape-btn:hover { background: var(--red-dk); }
.kettle-svg { width: 14px; height: 14px; flex-shrink: 0; }

/* ===== Page container ===== */
.page {
  padding: 96px clamp(24px, 4vw, 80px) 72px;
  max-width: 1320px; margin: 0 auto; width: 100%;
}
.page-narrow { max-width: 720px; margin: 0 auto; padding: 96px clamp(24px, 5vw, 40px) 72px; }

/* ===== Type scale ===== */
.eyebrow {
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--red); font-weight: 700; margin-bottom: 24px;
}
.eyebrow.muted { color: var(--ink-faint); }
.h-display {
  font-family: var(--sans); font-weight: 900;
  font-size: clamp(48px, 7.5vw, 110px); line-height: 0.96;
  letter-spacing: -0.04em; margin-bottom: 32px;
}
.h-display em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--red); }
.h-section {
  font-family: var(--sans); font-weight: 800;
  font-size: clamp(36px, 5vw, 76px); line-height: 0.98;
  letter-spacing: -0.035em; margin-bottom: 24px;
}
.h-section em { font-family: var(--serif); font-style: italic; font-weight: 400; color: var(--red); }
.h-mid {
  font-family: var(--sans); font-weight: 700;
  font-size: clamp(22px, 2.4vw, 32px); line-height: 1.1;
  letter-spacing: -0.025em; margin-bottom: 16px;
}
.subhead {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(20px, 2.2vw, 28px); line-height: 1.45;
  color: var(--ink-soft); margin-bottom: 32px;
}
.body { font-size: 17px; line-height: 1.65; color: var(--ink); margin-bottom: 16px; }
.body-large { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.6; color: var(--ink); margin-bottom: 16px; }
.body-soft { color: var(--ink-soft); }
.caption { font-size: 13px; color: var(--ink-soft); }
.serif-pull {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(22px, 2vw, 30px); line-height: 1.35;
  color: var(--red); margin: 24px 0;
}
.serif-pull em { font-style: italic; color: var(--ink); font-weight: 500; }

/* ===== Buttons ===== */
.btn-primary {
  background: var(--red); color: white !important;
  padding: 13px 26px; border-radius: 999px;
  font-size: 14px; font-weight: 500; text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background 0.18s ease;
}
.btn-primary:hover { background: var(--red-dk); }
.btn-secondary {
  background: transparent; border: 1px solid var(--ink); color: var(--ink) !important;
  padding: 12px 22px; border-radius: 999px;
  font-size: 14px; font-weight: 500; text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background 0.18s ease, color 0.18s ease;
}
.btn-secondary:hover { background: var(--ink); color: var(--paper) !important; }
.btn-link {
  color: var(--ink); text-decoration: none; font-weight: 500;
  border-bottom: 1px solid var(--rule-strong); padding-bottom: 2px;
  transition: color 0.18s ease, border-color 0.18s ease;
}
.btn-link:hover { color: var(--red); border-color: var(--red); }
.cta-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-top: 32px; }

/* ===== Layer block (reused on every page) ===== */
.layers-stack { margin: 32px 0; display: grid; gap: 8px; }
.layer {
  background: white; border: 0.5px solid var(--rule); border-radius: 6px;
  padding: 18px 26px; display: grid;
  grid-template-columns: 60px 1fr 1.6fr 0.8fr; gap: 24px; align-items: center;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.layer:hover { border-color: var(--red); background: rgba(184,40,35,0.03); }
.layer.is-active { border-color: var(--red); background: rgba(184,40,35,0.05); }
.layer .lnum { font-size: clamp(22px, 1.8vw, 26px); font-weight: 900; color: var(--red); letter-spacing: -0.02em; }
.layer .lnm { font-size: clamp(17px, 1.4vw, 21px); font-weight: 700; color: var(--ink); letter-spacing: -0.015em; }
.layer .ldesc { font-size: clamp(14px, 1.15vw, 17px); color: var(--ink-soft); font-style: italic; font-family: var(--serif); line-height: 1.5; }
.layer .lrole { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-faint); font-weight: 700; text-align: right; }

/* ===== "You are here" mini-diagram ===== */
.you-are-mini {
  background: var(--paper-soft); border: 0.5px solid var(--rule);
  border-radius: 8px; padding: 22px;
}
.you-are-mini .ulabel {
  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-faint); margin-bottom: 16px; font-weight: 700;
}
.you-are-mini .urow {
  padding: 10px 14px; display: flex; align-items: center; gap: 14px;
  border-radius: 4px; margin-bottom: 6px;
  background: white; border: 0.5px solid var(--rule);
}
.you-are-mini .urow .un { font-weight: 800; font-size: 12px; color: var(--ink-faint); min-width: 22px; }
.you-are-mini .urow .ul { font-size: 13px; color: var(--ink-soft); font-weight: 500; }
.you-are-mini .urow.is-active { background: var(--red); border-color: var(--red); }
.you-are-mini .urow.is-active .un, .you-are-mini .urow.is-active .ul { color: white; }

/* ===== Cards / surfaces ===== */
.card {
  background: white; border: 0.5px solid var(--rule);
  border-radius: 6px; padding: 22px 26px;
}
.tile {
  background: var(--paper-soft); border: 0.5px solid var(--rule);
  border-radius: 8px; padding: 26px;
}
.divider { height: 1px; background: var(--rule); margin: 48px 0; border: 0; }
.divider-red { height: 1px; background: var(--red); margin: 32px 0; border: 0; width: 56px; }

/* ===== Two-column / three-column layouts ===== */
.two-col { display: grid; grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: start; }
.three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.four-col { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* ===== Floating Escape pill (sticky on every page) ===== */
.escape-pill {
  position: fixed; bottom: 24px; right: 24px; z-index: 90;
  background: var(--red); color: white;
  padding: 10px 18px 10px 16px; border-radius: 999px;
  font-size: 13px; font-weight: 500; text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  box-shadow: 0 4px 18px rgba(184,40,35,0.25);
  animation: gentle-pulse 4s ease-in-out infinite;
}
.escape-pill:hover { background: var(--red-dk); animation: none; }
@keyframes gentle-pulse {
  0%, 100% { box-shadow: 0 4px 18px rgba(184,40,35,0.25); }
  50%      { box-shadow: 0 4px 22px rgba(184,40,35,0.45); }
}
@media (max-width: 880px) { .escape-pill { display: none; } }
@media (prefers-reduced-motion: reduce) { .escape-pill { animation: none; } }

/* ===== Footer (the library) ===== */
.footer {
  background: var(--canvas); color: rgba(255,255,255,0.7);
  padding: 72px clamp(24px, 4vw, 80px) 36px; margin-top: 96px;
}
.footer-inner { max-width: 1320px; margin: 0 auto; }
.footer-grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; gap: 48px;
  margin-bottom: 48px;
}
.footer-brand .logo-pill {
  background: white; padding: 10px 14px; border-radius: 8px;
  display: inline-block; margin-bottom: 18px;
}
.footer-brand .logo-pill img { height: 28px; }
.footer-brand p {
  font-family: var(--serif); font-style: italic;
  font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.65);
  max-width: 240px;
}
.footer-col h4 {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,0.55); font-weight: 700; margin-bottom: 18px;
}
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: 10px; }
.footer-col a {
  font-size: 13px; color: rgba(255,255,255,0.78); text-decoration: none;
  transition: color 0.15s ease;
}
.footer-col a:hover { color: white; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 24px;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 12px;
}
.footer-bottom .copy { font-size: 12px; color: rgba(255,255,255,0.5); }
.footer-bottom .made-on {
  font-family: var(--serif); font-style: italic;
  font-size: 13px; color: rgba(255,255,255,0.65);
}

/* ===== Skip link (a11y) ===== */
.skip {
  position: absolute; top: -40px; left: 16px;
  background: var(--ink); color: var(--paper);
  padding: 10px 16px; border-radius: 4px; z-index: 1000;
  text-decoration: none; font-size: 13px;
}
.skip:focus { top: 16px; }

/* ===== Mobile ===== */
@media (max-width: 880px) {
  .nav .links a:not(.try-btn):not(.escape-btn) { display: none; }
  .nav { padding: 12px 18px; }
  .page, .page-narrow { padding: 80px 20px 56px; }
  .layer { grid-template-columns: 50px 1fr; gap: 12px; padding: 16px 18px; }
  .layer .ldesc, .layer .lrole { grid-column: 1 / -1; }
  .layer .lrole { text-align: left; margin-top: 4px; }
  .two-col, .three-col, .four-col { grid-template-columns: 1fr; gap: 32px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer { padding: 56px 24px 32px; margin-top: 64px; }
}
/* ============================================================
   Page-specific add-ons — appended into shared.css for FileZilla push,
   or kept separate for staging review. All scoped where possible.
   ============================================================ */

/* ===== Capability hubs ===== */
.hub-hero { padding-top: 24px; }
.hub-screenshot {
  border: 0.5px solid var(--rule); border-radius: 10px; overflow: hidden;
  box-shadow: 0 2px 14px rgba(0,0,0,0.04); background: white;
  margin-bottom: 24px;
}
.hub-screenshot img { display: block; width: 100%; height: auto; }
.hub-stat {
  border-left: 2px solid var(--red);
  padding: 4px 0 4px 18px;
}
.hub-stat-num {
  font-family: var(--sans); font-weight: 900;
  font-size: clamp(36px, 4vw, 56px); letter-spacing: -0.03em;
  color: var(--ink); line-height: 1;
}
.hub-stat-cap {
  font-family: var(--serif); font-style: italic;
  font-size: 17px; color: var(--ink-soft);
  margin-top: 6px; line-height: 1.4;
}
.hub-list {
  list-style: none; padding: 0; margin: 24px 0 0;
  columns: 2; column-gap: 32px;
}
.hub-list li {
  font-size: 16px; padding: 8px 0; color: var(--ink);
  border-top: 0.5px solid var(--rule);
  break-inside: avoid;
}
.hub-list li:first-child { border-top: 0; }
@media (max-width: 720px) { .hub-list { columns: 1; } }

/* ===== White Label page ===== */
.wl-hero { padding-top: 24px; }
.wl-table {
  margin: 32px 0;
  border: 0.5px solid var(--rule); border-radius: 6px;
  overflow: hidden; background: white;
}
.wl-row {
  display: grid; grid-template-columns: 220px 1fr; gap: 24px;
  padding: 20px 24px;
  border-bottom: 0.5px solid var(--rule);
}
.wl-row:last-child { border-bottom: 0; }
.wl-cat {
  font-weight: 700; color: var(--ink); font-size: 15px;
}
.wl-detail {
  color: var(--ink-soft); font-size: 15px; line-height: 1.55;
}
.wl-edge-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px;
  margin: 32px 0;
}
.wl-pricing-table {
  margin: 32px 0;
  border: 0.5px solid var(--rule); border-radius: 6px;
  overflow: hidden; background: white;
}
.wl-pricing-row {
  display: grid; grid-template-columns: 1.2fr 1fr 2fr; gap: 24px;
  padding: 22px 24px;
  border-bottom: 0.5px solid var(--rule);
  align-items: start;
}
.wl-pricing-row:last-child { border-bottom: 0; }
.wl-pricing-name {
  font-weight: 700; font-size: 17px; color: var(--ink);
}
.wl-pricing-price {
  font-family: var(--sans); font-weight: 900;
  font-size: clamp(22px, 2.4vw, 32px); color: var(--red);
  letter-spacing: -0.02em;
}
.wl-pricing-price span {
  font-family: var(--sans); font-weight: 500;
  font-size: 13px; color: var(--ink-faint);
  margin-left: 6px; letter-spacing: 0;
}
.wl-pricing-what {
  font-family: var(--serif); font-style: italic;
  font-size: 15px; color: var(--ink-soft);
  line-height: 1.5;
}
.wl-bvj {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
  margin: 32px 0;
}
.wl-bvj-col {
  border: 0.5px solid var(--rule); border-radius: 8px;
  background: white; padding: 28px 26px;
}
.wl-bvj-col.wl-bvj-build { background: var(--paper-soft); }
.wl-bvj-col.wl-bvj-join { border-color: var(--red); background: rgba(184,40,35,0.03); }
.wl-bvj-head {
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-faint); font-weight: 700; margin-bottom: 18px;
}
.wl-bvj-col.wl-bvj-join .wl-bvj-head { color: var(--red); }
.wl-bvj-col ul { list-style: none; padding: 0; }
.wl-bvj-col li {
  font-size: 15px; line-height: 1.55; color: var(--ink);
  padding: 12px 0; border-top: 0.5px solid var(--rule);
}
.wl-bvj-col li:first-child { border-top: 0; }
.wl-onboarding {
  border: 0.5px solid var(--rule); border-radius: 6px;
  overflow: hidden; background: white; margin: 32px 0;
}
.wl-on-row {
  display: grid; grid-template-columns: 220px 1fr; gap: 24px;
  padding: 22px 24px;
  border-bottom: 0.5px solid var(--rule);
}
.wl-on-row:last-child { border-bottom: 0; }
.wl-on-phase {
  font-weight: 700; font-size: 14px; color: var(--red);
  letter-spacing: 0.04em;
}
.wl-on-what {
  font-family: var(--serif); font-style: italic;
  font-size: 16px; color: var(--ink-soft); line-height: 1.55;
}
@media (max-width: 880px) {
  .wl-row, .wl-on-row { grid-template-columns: 1fr; gap: 8px; padding: 18px 18px; }
  .wl-pricing-row { grid-template-columns: 1fr; gap: 8px; padding: 22px 22px; }
  .wl-edge-grid, .wl-bvj { grid-template-columns: 1fr; }
}

/* ===== Explore landing & Journal index cards ===== */
.explore-card {
  display: block; text-decoration: none;
  background: white; border: 0.5px solid var(--rule);
  border-radius: 8px; padding: 28px 26px;
  transition: border-color 0.18s ease, transform 0.18s ease;
}
.explore-card:hover {
  border-color: var(--red);
  transform: translateY(-2px);
}
.explore-card .exp-num {
  font-family: var(--sans); font-weight: 900;
  font-size: clamp(28px, 3vw, 42px); color: var(--red);
  letter-spacing: -0.03em; line-height: 1; margin-bottom: 12px;
}
.explore-card h3 { color: var(--ink); margin-bottom: 12px; }
.explore-card p { color: var(--ink-soft); font-size: 15px; }
.explore-card .btn-link {
  display: inline-block; margin-top: 12px; font-size: 13px;
  color: var(--ink); border-color: var(--rule-strong);
}

/* ===== Journal feed ===== */
.journal-feed { display: grid; gap: 12px; margin-top: 32px; }
.journal-item, .journal-item-row {
  background: white; border: 0.5px solid var(--rule); border-radius: 6px;
  padding: 16px 22px;
  display: grid; grid-template-columns: 160px 1fr 120px; gap: 18px; align-items: center;
}
.journal-stream {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--red); font-weight: 700;
}
.journal-title {
  color: var(--ink); text-decoration: none; font-weight: 500;
  font-size: 16px;
  border-bottom: 1px solid transparent;
}
.journal-title:hover { color: var(--red); border-color: var(--red); }
.journal-date {
  font-family: var(--serif); font-style: italic;
  font-size: 13px; color: var(--ink-faint); text-align: right;
}
@media (max-width: 720px) {
  .journal-item, .journal-item-row { grid-template-columns: 1fr; gap: 4px; }
  .journal-date { text-align: left; }
}
