body.theme-pub {
  --pub-ink: #2b211a;
  --pub-ale: #b9823f;
  --pub-green: #203a2f;
  --pub-cream: #f4ead8;
  background:
    linear-gradient(90deg, rgba(43, 33, 26, 0.04) 1px, transparent 1px) 0 0 / 36px 36px,
    var(--pub-cream);
}

.theme-pub h1,
.theme-pub h2,
.theme-pub h3,
.theme-pub .brand strong {
  font-family: Georgia, "Times New Roman", serif;
}

.theme-pub .hero {
  background:
    radial-gradient(circle at 84% 18%, rgba(185, 130, 63, 0.28), transparent 30%),
    linear-gradient(135deg, #2b211a 0%, #4b3426 60%, #8f6332 145%);
  color: #fff5e5;
}

.theme-pub h1 {
  max-width: 12ch;
  font-size: clamp(3rem, 7vw, 5.7rem);
}

.theme-pub .hero-photo {
  border-radius: 999px 999px 8px 8px;
  border: 8px solid rgba(255, 245, 229, 0.14);
}

.theme-pub .service-card,
.theme-pub .area-panel,
.theme-pub .faq-card,
.theme-pub .visual-card {
  border-radius: 6px;
  background: #fff6e7;
  border-color: rgba(75, 52, 38, 0.2);
}

.theme-pub .service-grid {
  grid-template-columns: 1.15fr 0.92fr 0.92fr;
}

.theme-pub .section-soft {
  background: var(--pub-green);
  color: #fff5e5;
}

.theme-pub .section-soft p,
.theme-pub .section-soft li {
  color: rgba(255, 245, 229, 0.76);
}

.theme-pub .gallery-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.theme-pub .gallery-grid .visual-card {
  min-height: 18rem;
}

.theme-pub .button-primary {
  background: var(--pub-ale);
  color: #241912;
}

@media (max-width: 759px) {
  .theme-pub .service-grid,
  .theme-pub .gallery-grid {
    grid-template-columns: 1fr;
  }
}
