/* Warm surfaces and the publisher invitation. Loaded after existing page styles. */
:root {
  --paper: #e8dcc3;
  --surface-sand: #deceae;
  --surface-inset: #d8c5a0;
  --gold-ink: #72551d;
}

/* Surface tokens stay separate from the cream text used on dark green. */
html, body { background-color: var(--paper); }
.section-cream, .form-notes, .preview-note { background: var(--surface-sand); }
.section-paper { background: var(--paper); }
.card { background: var(--paper); }
.card .card-img, .home-products .card-img,
.split-media, .split-media.fit img,
.gallery figure, .concept .concept-img,
.refs li, .publisher-hero-image { background: var(--surface-inset); }
.gallery figure.frame-dark { background: var(--green-deep); }
.split-media.bare, .split-media.bare img, .hero-figure.bare { background: transparent; }
.materials li { background: var(--paper); }
.field input, .field textarea { background: var(--paper); border-color: rgba(22,53,42,.38); }
.field input::placeholder, .field textarea::placeholder { color: #625a48; opacity: 1; }
.field input:autofill, .field textarea:autofill { background: var(--paper); color: var(--ink); }
.field input:-webkit-autofill, .field textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--paper) inset;
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
}

/* Gold detail needs a darker ink on the warmer light surfaces. */
.section-cream .kicker:not(.on-dark), .section-paper .kicker:not(.on-dark),
.card h3 .idx, .steps .num, .foil-note b,
.publisher-work-link::after, .publisher-checklist li::before { color: var(--gold-ink); }

/* A single invitation: heading, explanation and action share one axis. */
.home-publishers {
  background: var(--surface-sand);
  border-top: 0;
  padding: 0 var(--gutter) clamp(48px,6vw,76px);
  scroll-margin-top: 96px;
}
.home-publishers-grid {
  max-width: calc(var(--wrap) - 2 * var(--gutter));
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 22px;
  justify-items: center;
  padding: clamp(38px,5.4vw,70px) clamp(24px,5vw,64px);
  border: 1px solid rgba(201,162,74,.55);
  background: var(--green-deep);
  color: var(--cream);
  text-align: center;
}
.home-publishers-grid > div { min-width: 0; width: 100%; }
.home-publishers .kicker:not(.on-dark) {
  display: block;
  color: var(--gold-soft);
  margin-bottom: 1.1rem;
  line-height: 1.65;
}
.home-publishers h2 {
  max-width: 23ch;
  margin-inline: auto;
  margin-bottom: 0;
  font-size: clamp(2.05rem,4vw,3.25rem);
  line-height: 1.1;
  color: var(--cream);
}
.home-publishers-copy { border: 0; padding: 0; }
.home-publishers-copy p {
  max-width: 60ch;
  margin: 0 auto 1.65rem;
  color: #ded3bd;
  font-size: 1.02rem;
  line-height: 1.75;
}
.home-publishers .btn {
  max-width: 100%;
  justify-content: center;
  padding: .95em 1.7em;
  white-space: normal;
  text-align: center;
}
.home-publishers .btn:focus-visible { outline: 3px solid var(--gold-soft); outline-offset: 5px; }
[dir="rtl"] .home-publishers h2 { max-width: 25ch; line-height: 1.4; }
[dir="rtl"] .home-publishers-copy p { font-size: 1.1rem; }
@media (max-width: 520px) {
  .home-publishers { padding-inline: 20px; }
  .home-publishers-grid { padding: 36px 22px; gap: 18px; }
  .home-publishers .kicker:not(.on-dark) { font-size: .66rem; letter-spacing: .17em; }
  .home-publishers h2 { font-size: 2.05rem; }
  .home-publishers-copy p { font-size: .96rem; margin-bottom: 1.35rem; }
  .home-publishers .btn { font-size: .88rem; padding: .9em 1.1em; }
  [dir="rtl"] .home-publishers .kicker:not(.on-dark) { letter-spacing: 0; font-size: .83rem; }
  [dir="rtl"] .home-publishers-copy p { font-size: 1.02rem; }
}
