/* Public-site typography and light surfaces. Admin keeps its own styles. */
body.site-readable {
  --site-ink: #26354b;
  --site-muted: #526176;
  --site-surface: #f3f6fc;
  --site-border: #ccd8ea;
  color: var(--site-ink);
}
.site-readable .body-container :is(p, li) { font-size: 16px; line-height: 1.8; }
.site-readable .body-container a:where(:not(.quotation, .quotation-black)) { color: #002899; }
.site-readable .pending-text { color: #526176; }
.site-readable #bs-hero .about-kicker { color: #995000; font-size: 14px; }
.site-readable .factory-slider-wrapper { background: #f3f6fc; }
.site-readable .factory-slider-wrapper h2 { color: #002899; }
.site-readable .factory-slider-wrapper .factory-card .card-overlay { background: #fff; color: #26354b; }
.site-readable .factory-slider-wrapper .factory-card .card-overlay .title { color: #002899; font-size: 18px; }
.site-readable .stats-container { background: #eef3fb; color: #26354b; }
.site-readable .stats-container .stat-item :is(.number, .icon) { color: #002899; }
.site-readable .stats-container .stat-item .label { color: #34445c; }
.site-readable .body-container :is(input, select, textarea) { font-size: 16px; color: var(--site-ink); }
.site-readable .body-container a:is(.quotation, .quotation-black, .contact, .contact-black) {
  box-sizing: border-box;
  font-size: 16px;
  line-height: 1.45;
  font-weight: 700;
}
.site-readable .body-container a:is(.contact, .contact-black) { color: #002899; background-color: #fff; }
.site-readable .body-container a:is(.contact, .contact-black):hover { background-color: #e7eefb; }
.site-readable :is(a, button):is(.quotation, .quotation-black),
.site-readable .inquiry-submit { background-color: #b65d00; border-color: #b65d00; color: #fff; }
.site-readable :is(a, button):is(.quotation, .quotation-black):hover,
.site-readable .inquiry-submit:hover { background-color: #9c4d00; border-color: #9c4d00; color: #fff; }
html[lang="en"] .site-readable .site-photo-hero .content :is(.quotation, .quotation-black) { background: #b65d00; border-color: #b65d00; color: #fff; }
html[lang="en"] .site-readable .site-photo-hero .content :is(.quotation, .quotation-black):hover { background: #9c4d00; border-color: #9c4d00; }
html[lang="en"] .site-readable .site-photo-hero .content :is(.remarks, .remark) { color: #526176; }
.site-readable :is(.ts-subnav__item, .dfm-subnav__item) { border: 0; padding: 0; background: transparent; }
.site-readable .body-container .feature { line-height: 1.75; }
.site-readable .body-container .feature > svg { flex-shrink: 0; }

/* Photo heroes use a separate image column, never text over a dark photograph. */
html[lang="en"] .site-readable .main-banner.site-photo-hero {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 58px 0;
  box-sizing: border-box;
  color: var(--site-ink);
  background: var(--site-surface);
}
.site-readable .site-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
  width: 100%;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}
html[lang="en"] .site-readable .site-photo-hero .content { width: auto; max-width: none; min-width: 0; padding: 0; }
html[lang="en"] .site-readable .site-photo-hero .content h1 {
  color: #002899;
  font-size: clamp(36px, 3vw, 52px);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -.025em;
  margin: 0 0 25px;
}
html[lang="en"] .site-readable .site-photo-hero .content > p {
  color: #34445c;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  margin: 0 0 25px;
}
html[lang="en"] .site-readable .site-photo-hero .content .features { margin: 24px 0 28px; display: block; }
html[lang="en"] .site-readable .site-photo-hero .content .feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  min-width: 0;
  margin: 12px 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
  color: var(--site-ink);
}
.site-readable .site-photo-hero .feature > svg { width: 23px; height: 23px; flex: 0 0 23px; margin-top: 2px; }
.site-readable .site-photo-hero .feature > svg circle { fill: #002899; }
.site-readable .site-photo-hero .feature > svg path { stroke: #fff; }
.site-readable .site-photo-hero .remarks { color: var(--site-muted); font-size: 14px; line-height: 1.75; }
.site-readable .site-photo-hero .remark { align-items: flex-start; }
.site-readable .site-photo-hero .remark > svg { stroke: var(--site-muted); flex-shrink: 0; margin-top: 3px; }
.site-readable .site-photo-hero .site-hero-photo {
  display: block !important;
  position: static !important;
  inset: auto !important;
  order: 2;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  aspect-ratio: 4 / 3;
  min-width: 0;
  opacity: 1 !important;
  visibility: visible !important;
  clip: auto !important;
  clip-path: none !important;
  object-fit: cover;
  object-position: right center;
  border-radius: 10px;
  background: #eaf0f8;
  box-shadow: 0 12px 36px rgba(30,59,98,.09);
}
.site-readable .site-photo-hero.mb-team .site-hero-photo { object-position: center; }

/* Resource introductions, directory chips and review panels. */
html[lang="en"] .site-readable .main-banner.resource-hero-dark {
  background: var(--site-surface);
  color: var(--site-ink);
}
html[lang="en"] .site-readable .resource-hero-dark h1 { color: #002899; }
html[lang="en"] .site-readable .resource-hero-dark :is(.dfm-hero__subtitle, .ts-lead) { color: #34445c; font-size: 18px; }
.site-readable .resource-hero-dark :is(.dfm-hero__bullets li, .ts-hero__points li, .dfm-deliverables__list li) { color: var(--site-ink); font-size: 17px; }
.site-readable .resource-hero-dark strong { color: var(--site-ink); }
.site-readable .resource-hero-dark li::marker { color: #002899; }
.site-readable .resource-hero-dark :is(.dfm-badge, .ts-subnav__link) {
  color: #26416c;
  background: #fff;
  border-color: #b9c9e2;
}
.site-readable .resource-hero-dark .ts-subnav__link:hover { color: #002899; background: #e7eefb; }
.site-readable .resource-hero-dark .ts-subnav { border-color: var(--site-border); }
.site-readable .resource-hero-dark .dfm-deliverables { background: #fff; border-color: var(--site-border); border-left-color: #002899; }
.site-readable .resource-hero-dark .dfm-deliverables__title { color: #002899; }
.site-readable .resource-hero-dark .dfm-deliverables__note { color: var(--site-muted); }
.site-readable :is(.dfm-cta-bar, .ds-cta-bar) {
  background: #edf3fc;
  color: var(--site-ink);
  border-color: var(--site-border);
  border-radius: 8px;
  padding: 24px;
  gap: 24px;
}
.site-readable :is(.dfm-cta-bar, .ds-cta-bar) :is(p, strong, h2, h3) { color: var(--site-ink); }

/* FAQ and material-library introductions. */
html[lang="en"] .site-readable :is(.mb-faq, .mb-material, .mb-material-browse) {
  display: block;
  background: var(--site-surface);
  color: var(--site-ink);
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  box-sizing: border-box;
}
html[lang="en"] .site-readable .mb-faq { padding: 56px 0; }
.site-readable .faq-page .faq-hero { width: 100%; max-width: 1320px; margin: auto; padding: 0 40px; box-sizing: border-box; }
.site-readable .faq-page .faq-h1 { color: #002899; font-size: clamp(36px, 3.1vw, 52px); line-height: 1.18; }
.site-readable .faq-page .faq-lead { color: #34445c; font-size: 18px; max-width: 950px; }
.site-readable .faq-page .faq-badge { color: #26416c; background: #fff; border-color: #b9c9e2; font-size: 14px; }
.site-readable .faq-page .faq-search__input { background: #fff; border: 1px solid #b9c9e2; color: var(--site-ink); font-size: 16px; }
.site-readable .faq-page .faq-search__input::placeholder { color: #65758b; opacity: 1; }
.site-readable .material-home-title { color: #002899; }
.site-readable .material-home-subtitle { color: #34445c; font-size: 18px; line-height: 1.8; }
.site-readable .material-home-hero-panel { background: #fff; color: var(--site-ink); border: 1px solid var(--site-border); }
.site-readable :is(.finder-process, .finder-reference-note, .finder-specs dt, .finder-tags span, .material-record-nav, .material-home-label) { color: var(--site-muted); font-size: 14px; line-height: 1.65; }
.site-readable :is(.finder-card p, .finder-specs dd, .material-record-table) { font-size: 16px; }
.site-readable .material-detail { --md-primary: #002899; --md-primary-2: #002078; --md-text: #26354b; --md-muted: #526176; }
.site-readable :is(.dfm-table-wrap, .ts-table-wrap, .table-responsive) { max-width: 100%; overflow-x: auto; }
.site-readable :is(.dfm-table, .ts-table) :is(th, td) { font-size: 15px; line-height: 1.65; }
.site-readable .material-record-table :is(th, td) { overflow-wrap: anywhere; }

/* Facility summaries keep their photographs in the carousel below the copy. */
.site-readable .banner.printing-factory {
  background: var(--site-surface);
  color: var(--site-ink);
  height: auto;
  min-height: 0;
  padding: 54px 0;
  box-sizing: border-box;
}
.site-readable .printing-factory .content-container { box-sizing: border-box; }
.site-readable .printing-factory h2 { color: #002899; line-height: 1.25; margin: 0 0 24px; }
.site-readable .printing-factory p { color: #34445c; font-size: 17px; line-height: 1.85; }
.site-readable .about-lead { font-size: 17px; line-height: 1.8; }

@media (max-width: 1000px) {
  .site-readable .site-hero-layout { gap: 28px; padding: 0 28px; }
  html[lang="en"] .site-readable .site-photo-hero .content h1 { font-size: 36px; }
  html[lang="en"] .site-readable .site-photo-hero .content > p { font-size: 17px; }
}
@media (max-width: 768px) {
  html[lang="en"] .site-readable .main-banner.site-photo-hero { padding: 34px 0 40px; }
  .site-readable .site-hero-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 0 22px; }
  html[lang="en"] .site-readable .site-photo-hero .content h1 { font-size: 34px; }
  .site-readable .site-photo-hero .site-hero-photo { aspect-ratio: 4 / 3; }
  .site-readable .site-photo-hero a:is(.quotation, .quotation-black, .contact, .contact-black) { display: flex; justify-content: center; width: 100%; margin: 10px 0; padding: 14px 18px; }
  html[lang="en"] .site-readable .resource-hero-dark :is(.dfm-hero__subtitle, .ts-lead) { font-size: 17px; }
  .site-readable .resource-hero-dark :is(.dfm-hero__bullets li, .ts-hero__points li, .dfm-deliverables__list li) { font-size: 16px; }
  .site-readable :is(.dfm-cta-bar, .ds-cta-bar) { flex-direction: column; align-items: stretch; padding: 20px; }
  html[lang="en"] .site-readable .mb-faq { padding: 34px 0 40px; }
  .site-readable .faq-page .faq-hero { padding: 0 22px; }
  .site-readable .faq-page .faq-h1 { font-size: 34px; }
  .site-readable .faq-page .faq-lead { font-size: 17px; }
  .site-readable .printing-factory { padding: 36px 0; }
  .site-readable .material-record-table { font-size: 15px; }
}
