/* Only styles for newly requested content. Existing layout and motion live
   unchanged in site.css and editorial.css from the pre-update design. */
.partner-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.partner-logo { min-width: 0; height: 215px; padding: 30px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.partner-logo img { min-width: 0; min-height: 0; width: 100%; height: 100%; object-fit: contain; filter: grayscale(1); transition: filter .35s; }
.partner-logo:is(:hover,:focus-visible) img { filter: none; }
.field select { width: 100%; min-width: 0; padding: 12px 14px; border: 1px solid #b9c2c3; border-radius: 10px; background: #fff; color: inherit; font: inherit; }
.form-note { font-size: 13px; color: var(--muted); }
.form-note a { color: var(--teal); text-decoration: underline; }
.article-read { margin-top: 16px; font-size: 14px; color: var(--teal); text-decoration: underline; text-underline-offset: 5px; }
.insights-editorial .insight-card:first-child .article-read { grid-column: 2; }
.content-followthrough { max-width: 760px; margin: 42px 0 28px; }
/* Hover only enhances the supplied words. No new labels or hidden copy. */
.why-composition .execution-term {
 transition: opacity .6s var(--ease), transform .6s var(--ease), translate .35s var(--ease), border-color .25s, box-shadow .35s;
}
.execution-term-text { display: inline-block; transition: color .25s; }
.why-composition .execution-term:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-color: var(--gold); }
.execution-term:focus-visible .execution-term-text { color: var(--teal); animation: execution-term-wave 1.6s ease-in-out infinite; }
@media (hover: hover) and (pointer: fine) {
 .why-composition .execution-term:hover { translate: 0 -4px; border-color: var(--gold); box-shadow: 0 12px 28px rgb(32 86 93 / 12%); }
 .execution-term:hover .execution-term-text { color: var(--teal); animation: execution-term-wave 1.6s ease-in-out infinite; }
}
@keyframes execution-term-wave {
 0%, 100% { transform: translateY(0) rotate(0); }
 50% { transform: translateY(-3px) rotate(-.6deg); }
}
.motion-paused .execution-term-text { animation: none !important; }
.motion-paused .why-composition .execution-term { translate: none; }
/* Focal points belong to the replacement photographs, not the layout. */
.scene-main img[data-supplied-photo="strategy-workshop"] { object-position: 50% 12%; }
img[data-supplied-photo="leadership-dialogue"] { object-position: 50% 20%; }
/* The original staggered letter lift runs alongside the continuous colour
   flow. Its existing mobile keyframes keep the wave smaller on phones. */
.brand-colour-phrase { white-space: normal; animation: none; }
.brand-colour-phrase .motion-token { display: inline-block; white-space: nowrap; }
.brand-colour-phrase .motion-letter { animation: altima-colour-flow 7.5s linear infinite, letter-lift 6.8s ease-in-out infinite; animation-delay: calc(var(--letter-index) * -110ms), calc(var(--letter-index) * 80ms - 1.2s); }
@keyframes altima-colour-flow {
  0%, 100% { color: var(--ink); }
  33.333% { color: var(--teal); }
  66.666% { color: var(--gold); }
}
@media (prefers-reduced-motion: reduce) {
 .brand-colour-phrase .motion-letter { animation: none; color: var(--teal); }
 .why-composition .execution-term { translate: none; transition: none; }
 .why-composition .execution-term .execution-term-text { animation: none; transition: none; }
}
@media (max-width: 800px) {
 .partner-grid { gap: 12px; }
 .partner-logo { height: 170px; padding: 15px; }
}
@media (max-width: 520px) {
 .partner-grid { grid-template-columns: 1fr; }
 .partner-logo { height: 190px; padding: 25px 40px; }
}
/* Client correction: align the strategy copy card and its primary image.
   The detail photo and all existing reveal/parallax hooks are retained. */
@media (min-width: 801px) {
 .home-editorial .africa-composition {
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px;
  align-items: stretch; min-height: 0; padding-bottom: 64px;
 }
 .home-editorial .africa-panorama {
  grid-column: 2; grid-row: 1; position: relative;
  width: 100%; height: auto; min-height: 400px; margin: 0;
 }
 .home-editorial .africa-panorama img { position: absolute; inset: 0; }
 .home-editorial .africa-card {
  grid-column: 1; grid-row: 1; margin: 0; max-width: none; min-width: 0;
  display: flex; flex-direction: column; justify-content: center;
 }
 .home-editorial .africa-card .button { align-self: flex-start; }
 .home-editorial .africa-detail { bottom: 0; right: 24px; width: 250px; height: 164px; }
}
/* Keep the wider supplied conversation photograph intact on smaller screens. */
.contact-photo img[data-client-image="conversation"] { object-position: center; }
