/* biblio2026.css — 2026 rework. ADDITIONS ONLY.
   Loaded after layout.css/child.css so it can override without editing the
   theme. Nothing in here changes the design; it fixes a layout bug and
   styles the two new blocks the rework introduced. */

/* ── The page-title wrap bug ───────────────────────────────────────────────
   The header's menu (.tabwrapper) is floated right and its float escapes the
   nav block. The page title that follows is a normal block, so its LINE BOXES
   wrapped into the ~250px gutter to the left of that float — two short lines
   stacked beside the menu, a third centred below it, the whole thing riding up
   into the menu row. It only showed at middling widths, where the title was
   long enough to wrap and the window too narrow to fit it in the gutter.
   Measured at 1024px: 3 line boxes of 175/179/87px, top 95px against a menu
   bottom of 152px.
   Clearing the float is the whole fix — one line at every width. */
.header .page-title { clear: both; }

/* ── The two-door quote block ──────────────────────────────────────────────
   Someone who only wants a number must never be dropped on a signup page, so
   every call to action offers both doors and names them. */
.twodoor { margin: 0 0 6px; text-align: center; }
.twodoor h4 { margin-bottom: 6px; }
.twodoor .doors {
  display: inline-block; text-align: left; margin: 14px auto 0;
  max-width: 760px;
}
.twodoor .door {
  display: inline-block; vertical-align: top; width: 47%; min-width: 260px;
  margin: 0 1% 14px; padding: 16px 18px;
  border: 1px solid #d7dde3; border-radius: 6px; background: #f7f9fb;
}
.twodoor .door h5 { margin: 0 0 6px; font-size: 17px; }
.twodoor .door p  { margin: 0 0 12px; font-size: 14px; line-height: 1.5; }
.twodoor .door a.go {
  display: inline-block; padding: 9px 18px; border-radius: 999px;
  background: #2f7fb5; color: #fff; text-decoration: none;
  font-weight: 600; font-size: 14px;
}
.twodoor .door a.go:hover { background: #24638d; color: #fff; }
.twodoor .door.start { background: #eef4fb; border-color: #bcd3ea; }

/* ── The Nova promo panel ──────────────────────────────────────────────────
   Deliberately painted in the Nova site's own palette (--bg #070b1a, card
   #1b2246, blue #3fa4ff, the violet→blue button gradient) so that arriving at
   biblionova.pub feels like the next room and not another company. The stars
   are CSS gradients, as they are on Nova itself — sharp at any pixel density
   and no image to load. */
.novapanel {
  position: relative; overflow: hidden;
  margin: 0 0 10px; padding: 34px 30px; border-radius: 10px;
  background:
    radial-gradient(900px 380px at 50% -12%, #17204a 0%, rgba(23,32,74,0) 62%),
    #070b1a;
  color: #eef1fa;
}
.novapanel .stars {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 6% 22%, #fff 40%, rgba(255,255,255,.25) 60%, transparent 100%),
    radial-gradient(3px 3px at 17% 62%, #dfe9ff 40%, rgba(190,215,255,.22) 62%, transparent 100%),
    radial-gradient(2px 2px at 28% 12%, #fff 40%, rgba(255,255,255,.22) 62%, transparent 100%),
    radial-gradient(2px 2px at 39% 78%, #cfe0ff 40%, rgba(180,205,255,.2) 62%, transparent 100%),
    radial-gradient(3px 3px at 52% 30%, #fff 40%, rgba(255,255,255,.25) 62%, transparent 100%),
    radial-gradient(2px 2px at 63% 68%, #e6eeff 40%, rgba(200,220,255,.2) 62%, transparent 100%),
    radial-gradient(2px 2px at 74% 18%, #fff 40%, rgba(255,255,255,.22) 62%, transparent 100%),
    radial-gradient(3px 3px at 86% 55%, #dfe9ff 40%, rgba(190,215,255,.22) 62%, transparent 100%),
    radial-gradient(2px 2px at 94% 34%, #fff 40%, rgba(255,255,255,.22) 62%, transparent 100%);
  background-repeat: no-repeat;
}
.novapanel > * { position: relative; }
.novapanel .wordmark {
  display: block; height: 56px; width: auto; max-width: 100%; margin: 0 0 6px;
}
.novapanel .tagline { margin: 0 0 16px; font-size: 17px; font-style: italic; color: #9fd0ff; }
.novapanel p { color: #c3cbe4; font-size: 15px; line-height: 1.6; margin: 0 0 12px; }
.novapanel p.lead { color: #eef1fa; font-size: 16px; }
.novapanel b { color: #fff; }
.novapanel .novabtns { margin-top: 18px; }
.novapanel a.btn-nova, .novapanel a.btn-ghost {
  display: inline-block; margin: 0 10px 8px 0; padding: 11px 24px;
  border-radius: 999px; text-decoration: none; font-weight: 600; font-size: 14px;
  white-space: nowrap;
}
.novapanel a.btn-nova  { background: linear-gradient(90deg,#7b6cf6,#3fa4ff); color: #fff; }
.novapanel a.btn-ghost { border: 1px solid #3a4470; color: #eef1fa; }
.novapanel a.btn-ghost:hover { border-color: #3fa4ff; color: #fff; }

/* The question that sits above each promo panel. */
.promoq { margin: 0 0 10px; text-align: center; }
.promoq h4 { margin: 0; }

@media only screen and (max-width: 767px) {
  .twodoor .door { width: 100%; margin: 0 0 12px; }
  .novapanel { padding: 26px 20px; }
  .novapanel .wordmark { height: 44px; }
}

/* ── quote.php ─────────────────────────────────────────────────────────────
   The Biblio-branded book quote. Deliberately NOT painted in Nova's dark
   palette: this page belongs to bibliopublishing.com and should look like the
   rest of it. Only the price panel borrows Nova's ink, because the number is
   the one thing that must read identically on both sites. */
.qform { margin: 0 0 10px; }
.q-tier { color: #6b7b88; font-size: 14px; margin: 0 0 14px; }
.q-hint { color: #6b7b88; font-size: 13px; line-height: 1.5; margin: 5px 0 0; }
.q-warn { background: #fff6e0; border: 1px solid #e8cf95; border-radius: 5px;
          padding: 10px 12px; font-size: 14px; line-height: 1.5; color: #6a4e10; }
.q-err  { background: #fdecec; border: 1px solid #e2b4b4; border-radius: 5px;
          padding: 10px 12px; color: #8a2a2a; }
.q-ok   { background: #edf7ed; border: 1px solid #b7ddb7; border-radius: 5px;
          padding: 14px 16px; color: #245c24; font-size: 16px; }

.q-row { margin: 0 0 16px; }
.q-row > label { display: block; font-weight: 600; margin: 0 0 5px; font-size: 15px; }
.q-row > label small { font-weight: 400; color: #7b8894; }
.q-row input[type=text], .q-row input[type=email], .q-row input[type=number],
.q-row select, .q-row textarea {
  width: 100%; max-width: 420px; padding: 9px 10px; font-size: 15px;
  border: 1px solid #c6cfd6; border-radius: 4px; background: #fff; color: #333;
}
.q-row textarea { max-width: 100%; }
.q-check { display: block; font-weight: 400; font-size: 15px; line-height: 1.5; }
.q-check input { margin-right: 8px; }

/* The kind-of-book question is first because it decides everything after it. */
.q-kindq { font-weight: 600; margin: 0 0 8px; font-size: 15px; }
.q-kind {
  display: block; margin: 0 0 10px; padding: 12px 14px; cursor: pointer;
  border: 1px solid #c6cfd6; border-radius: 6px; background: #fff;
}
.q-kind.on { border-color: #2f7fb5; background: #f2f8fc; box-shadow: 0 0 0 1px #2f7fb5 inset; }
.q-kind input { margin-right: 8px; }
.q-kind .kname { font-weight: 600; font-size: 15px; }
.q-kind .ksub, .q-kind .knote { display: block; margin-left: 22px; font-size: 13.5px; color: #6b7b88; line-height: 1.5; }
.q-kind .ksub { margin-top: 3px; }

/* The payoff. Nova's ink, so the number looks the same on both sites. */
.q-price {
  margin: 22px 0; padding: 22px 24px; border-radius: 8px;
  background: #1b2246; color: #eef1fa;
}
.q-price.busy { opacity: .55; }
.q-lab { margin: 0; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #9fb0d8; }
.q-big { margin: 4px 0 0; font-size: 40px; font-weight: 700; color: #fff; line-height: 1.1; }
.q-big span { font-size: 17px; font-weight: 400; color: #aab3cf; }
.q-tot { margin: 4px 0 0; font-size: 17px; color: #cbd4ee; }
.q-note, .q-msg { margin: 10px 0 0; font-size: 14px; color: #aab3cf; line-height: 1.55; }
.q-msg { margin: 0; }
.q-ladder { width: 100%; max-width: 340px; margin: 16px 0 0; border-collapse: collapse; }
.q-ladder td { padding: 5px 0; font-size: 14px; color: #aab3cf; border-top: 1px solid #2b3566; }
.q-ladder td + td { text-align: right; }
.q-ladder tr.on td { color: #fff; font-weight: 600; }
.q-incl { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid #2b3566; }
.q-incl p { margin: 0 0 5px; font-size: 14px; color: #aab3cf; line-height: 1.55; }
.q-incl b { color: #fff; }
.q-lock { font-size: 14px; color: #6b7b88; line-height: 1.6; }

.q-go {
  display: inline-block; padding: 12px 26px; border: 0; border-radius: 999px;
  background: #2f7fb5; color: #fff; font-size: 15px; font-weight: 600;
  text-decoration: none; cursor: pointer;
}
.q-go:hover { background: #24638d; color: #fff; }
.q-go-nova { background: linear-gradient(90deg,#7b6cf6,#3fa4ff); }
.q-go-nova:hover { background: linear-gradient(90deg,#6a5bf0,#2e93ee); color: #fff; }

/* The one door to the signup, and it says so. */
.q-start {
  margin: 26px 0 10px; padding: 22px 24px;
  border: 1px solid #bcd3ea; border-radius: 8px; background: #eef4fb;
}
.q-start p { font-size: 15px; line-height: 1.6; }

@media only screen and (max-width: 767px) {
  .q-big { font-size: 32px; }
  .q-price, .q-start { padding: 18px 16px; }
}
