/* Visual audit 2026-10-02. Local, targeted fixes; no new design system. */
/* Supplied photos replaced .planned-image, so its old spacing/grid rules no
   longer matched. Restore the relationship, not a fixed text/card height. */
.offering-grid .supplied-photo + .eyebrow { margin-top:28px; }
.offering-grid .eyebrow { margin-bottom:18px; }
/* Real photos no longer match the old placeholder grid. Separate stacked
   photographs without changing their format or the existing logo spacing. */
body main .picture-media > .supplied-photo:not(.project-logo) + .supplied-photo:not(.project-logo) {
  margin-top:clamp(24px,2.4vw,30px);
}
@media (min-width:701px) and (max-width:1120px) {
  .offering-grid article > .supplied-photo { grid-column:1; grid-row:1 / 6; align-self:start; }
  .offering-grid .supplied-photo + .eyebrow { margin-top:0; }
}
.topics:has([data-vita-topics]) > .shell > h2 { max-width:none; }
.topics > .shell > h2 { max-width:28ch; margin-bottom:clamp(36px,4vw,58px); }
/* Adjacent editorial sections on the same surface need one breathing space,
   not the sum of two complete section paddings. Coloured transitions unchanged. */
main > .chapter:not(.soft):not(.dark) + .chapter:not(.soft):not(.dark):not([data-theme-surface]),
main > .gallery-introduction + .gallery-story:not(.soft):not([data-theme-surface]),
main > .gallery-story:not(.soft) + .chapter:not(.soft):not([data-theme-surface]),
main > .topics.soft:not(.local-services) + .chapter.soft:not([data-theme-surface]) { padding-top:0; }
.gallery-collection:has(+ .gallery-introduction) { padding-bottom:0; }
.gallery-collection + .gallery-introduction { padding-top:clamp(40px,5vw,72px); }
/* Personal statements use the same readable serif as the editorial headings. */
.editorial-accent {
  font:400 clamp(32px,3vw,46px)/1.2 var(--display);
  letter-spacing:0; text-wrap:pretty; max-width:30ch;
  margin:32px 0; padding:0; border:0;
}
.editorial-accent p { margin:0; }
.editorial-accent strong { font-weight:inherit; }
.statement blockquote { font-weight:400; text-wrap:pretty; }
.personal-statement__quote { text-wrap:pretty; }
/* Standalone statements and customer reviews share the established serif. */
.statement blockquote,.personal-statement__quote {
  font:400 clamp(36px,4.3vw,64px)/1.2 var(--display);
  letter-spacing:-.015em; max-width:31ch; text-wrap:pretty;
}
.statement blockquote { margin-inline:auto; }
.personal-statement__quote strong { font-weight:inherit; }
/* Quotes remain literal and readable; no invented quotation or attribution. */
.experience-grid--two > .experience-quote { display:flex; flex-direction:column; }
.experience-grid--two > .experience-quote > blockquote { flex:1; }
.experience-quote blockquote { font-weight:400; letter-spacing:-.01em; }
.experience-quote blockquote p { margin:0; }
.experience-grid--two { column-gap:clamp(40px,6vw,96px); }
.experience-grid--two .experience-quote figcaption { margin-top:8px; }
.experience-section__links { margin-top:44px; }
/* Calm monochrome navigation; never filter the original article/gallery image,
   the lightbox, the hero, or project logos. The photo files stay untouched. */
body main:not(.atelier-originals) :is([data-bj-grid],.offering-grid,.category-grid,.topics) .supplied-photo:not(.project-logo) img {
  filter:grayscale(1);
}
/* Natural card height per row, with a common reading-link baseline. */
.journal-balance [data-bj-grid] { align-items:stretch; }
.journal-balance .bj-card { display:flex; }
.journal-balance .bj-card > .content-card { display:flex; flex-direction:column; width:100%; }
body main.journal-balance .bj-card .content-card__action { margin-top:auto; padding-top:18px; }
/* Align map status and control; wrap intentionally on narrow viewports. */
.contact-map__controls { align-items:center; gap:8px 20px; }
.contact-map__controls [data-map-status] { flex:1 1 180px; line-height:1.5; }
.contact-map__controls button {
  display:inline-flex; align-items:center; min-height:44px; padding:8px 0;
  font-size:18px; line-height:1.5; letter-spacing:0; text-transform:none;
  text-decoration:underline; text-underline-offset:.2em;
}
/* Internal delivery labels must be unmistakeable, also on the dark hero. */
body main .planned-image__label { color:#981515; }
body main :is(.page-opening,.home-opening,.dark) .planned-image__label { color:#ff7878; }
body main .local-place-image__status { color:#981515; }
body main .page-opening .local-place-image__status { color:#ff7878; }
body main .local-place-photo[data-source-image] img { aspect-ratio:4/3 !important; width:100%; height:auto; object-fit:cover; object-position:50% 0%; }
.local-place-photo figcaption { margin-top:14px; font:400 18px/1.5 var(--body); color:inherit; }
/* Low-resolution delivered detail crops must not stretch to a 1280px hero.
   Keep the whole original, then place the headline below its image edge. */
body main .bj-article-hero.supplied-photo[data-source-width] {
  max-width:var(--source-width); margin-inline:auto;
}
.journal-article-standard:has(.bj-article-hero.supplied-photo[data-source-width]) .bj-title-panel {
  margin-top:0;
}
/* The mixed square/landscape detail cards get a consistent navigation-sized
   image window. This does not crop images in the actual gallery or lightbox. */
body main .topics .supplied-photo { aspect-ratio:4/3; overflow:hidden; }
body main .topics .supplied-photo img {
  width:100%; height:100%; aspect-ratio:4/3 !important; object-fit:cover; object-position:50% 40%;
}
body main .topics .supplied-photo[data-source-image="003"] img { object-position:50% 15%; }
@media(max-width:700px) {
  .editorial-accent { font-size:32px; line-height:1.2; margin-block:28px; }
  .statement blockquote,.personal-statement__quote { font-size:36px; line-height:1.3; }
  .experience-grid--two { row-gap:48px; }
}
