/* Shared responsive fixes for every public page. Keep intrinsic content within its own grid/flex track. */
img, picture, video, iframe { max-width: 100%; }

/* About, services, privacy and terms pages share this editorial shell. */
.lp-wrap,
.lp-wrap > *,
.lp-title,
.lp-title h1,
.lp-body,
.lp-body > *,
.lp-body p,
.lp-body li,
.lp-foot .links,
.lp-foot .links > * { min-width: 0; }
.lp-wrap { width: 100%; }
.lp-crumb { min-width: 0; max-width: 100%; flex-wrap: wrap; }
.lp-crumb em { min-width: 0; overflow-wrap: anywhere; }
.lp-title,
.lp-title h1,
.lp-body { max-width: 100%; }
.lp-title h1,
.lp-body p,
.lp-body li,
.lp-foot .links a { overflow-wrap: anywhere; }
.lp-wrap--privacy .lp-title h1,
.lp-wrap--privacy .lp-title h1 em { overflow-wrap: normal; }
.lp-wrap--privacy .lp-title h1 em { white-space: nowrap; }
.lp-foot .links { max-width: 100%; flex-wrap: wrap; gap: 8px 18px; }
.lp-foot .links > * { max-width: 100%; }

@media (max-width: 700px) {
  .lp-wrap { grid-template-columns: minmax(0, 1fr) !important; gap: 28px; }
  .lp-wrap > * { width: 100%; }
  .lp-title { position: static; }
  .lp-title h1 { font-size: clamp(36px, 11vw, 48px); line-height: 1.02; }
  .lp-wrap--privacy .lp-title h1 { font-size: clamp(29px, 9vw, 36px); }
  .lp-crumb { column-gap: 8px; row-gap: 4px; }
  .lp-foot .links { column-gap: 14px; }
}

@media (max-width: 360px) {
  .lp-wrap { padding-left: 16px; padding-right: 16px; }
  .lp-title h1 { font-size: 36px; }
  .lp-wrap--privacy .lp-title h1 { font-size: 29px; }
  .lp-foot .links { font-size: 12px; }
}

/* Pass project context from case pages into the contact brief. */
#formContext:not([hidden]){display:block;margin:0 0 22px;padding:12px 14px;border-radius:12px;background:var(--bg-2,#f4f4f4);color:var(--ink-2,#5a5851);font-size:13px;line-height:1.5}
#formContext[hidden]{display:none}
