/* Ostrander Automation — page compositions built from the Ferlo DNA (tokens only, prefix oa-) */

/* hero-e recomposed: centred headline low, lead, cards with a mono proof line */
.oa-hero > img { object-position: 90% 40%; }
.oa-hero .head { max-width: 900px; }
.oa-hero__lead { font-size: 20px; line-height: 1.4; color: var(--text-2); max-width: 600px; }
.oa-hero .btn-row { margin-top: 32px; }
.oa-hero .v-hero-e__cards { margin-top: 72px; }
.oa-hero .v-capcard { gap: 10px; padding: 24px 24px 28px; }
.oa-card__k { font-family: var(--mono); font-size: 12px; letter-spacing: .75px; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.oa-hero .v-capcard p:not(.oa-card__k) { font-size: 14px; color: var(--muted); max-width: 380px; }

/* payback ledger: hairline rows left, tall palletiser photo right; the copy column sets the height */
.oa-pay__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(40px, 9vw, 160px); }
.oa-pay__copy { display: flex; flex-direction: column; justify-content: space-between; gap: 56px; }
.oa-ledger { margin: 0; border-bottom: 1px solid var(--line); }
.oa-ledger div { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 20px 0; border-top: 1px solid var(--line); }
.oa-ledger dt { font-family: var(--mono); font-size: 12px; letter-spacing: .75px; text-transform: uppercase; color: var(--muted); }
.oa-ledger dd { margin: 0; font-family: var(--font-display); font-stretch: 112%; font-size: 24px; line-height: 1.15; letter-spacing: -.5px; }
.oa-ledger__total { border-top-color: var(--line-2) !important; }
.oa-ledger__total dt { color: var(--text); }
.oa-ledger__total dd { font-size: 48px; line-height: 1; letter-spacing: -2px; }
.oa-ledger__total dt::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 2px; background: var(--accent); margin-right: 12px; vertical-align: 1px; }
.oa-pay__foot { display: grid; gap: 24px; justify-items: start; }
.oa-pay__foot p { color: var(--muted); font-size: 14px; max-width: 420px; }
.oa-pay__photo { position: relative; border-radius: var(--r-sm); overflow: hidden; min-height: 560px; }
.oa-pay__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* voices: tighter than the demo intro */
.oa-voices .intro__photo { aspect-ratio: 591 / 900; }

/* cells in the field: brick rows of photo and data cells running past both edges */
.oa-cells { overflow: hidden; }
.oa-bricks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(100%, 1600px); margin-inline: auto; border-top: 1px solid var(--line); }
.oa-bricks--offset { grid-template-columns: repeat(4, minmax(0, 1fr)); width: calc(min(100%, 1600px) * 4 / 3); margin-left: 50%; transform: translateX(-50%); border-bottom: 1px solid var(--line); }
.oa-brick { position: relative; height: 320px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; border-left: 1px solid var(--line); isolation: isolate; overflow: hidden; }
.oa-bricks .oa-brick:first-child { border-left: 0; }
.oa-brick__code { font-family: var(--mono); font-size: 12px; letter-spacing: .75px; text-transform: uppercase; color: var(--muted); }
.oa-brick--data h3 { max-width: 300px; }
.oa-brick__meta { margin-top: 12px; font-size: 14px; color: var(--muted); }
.oa-brick__meta b { color: var(--text); font-weight: 500; }
.oa-brick--photo { justify-content: flex-end; gap: 8px; }
.oa-brick--photo img { position: absolute; inset: 10px; width: calc(100% - 20px); height: calc(100% - 20px); object-fit: cover; border-radius: var(--r-sm); z-index: -2; }
.oa-brick--photo::after { content: ""; position: absolute; inset: 10px; border-radius: var(--r-sm); z-index: -1; background: linear-gradient(180deg, rgba(10, 10, 11, 0) 45%, rgba(10, 10, 11, .78) 100%); }
.oa-brick--photo .oa-brick__code { color: var(--text-2); }
.oa-brick--photo h3 { font-size: 20px; }

/* steps: taller photos */
.oa-steps .v-step img { aspect-ratio: 4 / 5; }

/* service-line footer */
.oa-foot { gap: 56px; }
.oa-foot__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: stretch; }
.oa-foot__brand { display: grid; gap: 20px; align-content: start; justify-items: start; }
.oa-foot__brand p { font-size: 14px; color: var(--muted); max-width: 340px; }
.oa-foot__line { background: var(--surface); border-radius: var(--r-sm); padding: 28px; display: grid; gap: 8px; align-content: start; }
.oa-foot__k { font-family: var(--mono); font-size: 12px; letter-spacing: .75px; text-transform: uppercase; color: var(--muted); display: inline-flex; align-items: center; gap: 12px; }
.oa-foot__k::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.oa-foot__phone { font-family: var(--font-display); font-stretch: 112%; font-size: 48px; line-height: 1; letter-spacing: -2px; margin-top: 8px; }
.oa-foot__line p:last-child { font-size: 14px; color: var(--muted); }
.oa-foot__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding-top: 40px; border-top: 1px solid var(--line); }
.oa-foot__cols .cert { justify-self: start; }

@media (max-width: 1024px) {
  .oa-pay__grid { grid-template-columns: minmax(0, 1fr); }
  .oa-pay__photo { min-height: 0; aspect-ratio: 4 / 3; order: -1; }
  .oa-bricks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oa-bricks--offset { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin-left: 0; transform: none; }
  .oa-bricks .oa-brick:nth-child(3) { display: none; }
  .oa-bricks--offset .oa-brick:nth-child(n+3) { display: none; }
  .oa-foot__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .oa-hero__lead { font-size: 18px; }
  .oa-hero .v-hero-e__cards { margin-top: 48px; }
  .oa-ledger__total dd { font-size: 34px; }
  .oa-brick { height: 260px; padding: 20px; }
  .oa-bricks, .oa-bricks--offset { grid-template-columns: minmax(0, 1fr); }
  .oa-bricks .oa-brick { border-left: 0; border-top: 1px solid var(--line); }
  .oa-foot__top { grid-template-columns: minmax(0, 1fr); }
  .oa-foot__phone { font-size: 34px; letter-spacing: -1px; }
  .oa-foot__cols { grid-template-columns: minmax(0, 1fr); }
}
.cta .head .label { font-size: 11px; }
/* hero: headline sits low, a soft local shade only behind the copy */
.oa-hero { min-height: clamp(860px, 100svh, 1000px); }
.oa-hero .head, .oa-hero .btn-row { position: relative; }
.oa-hero .head::before { content: ""; position: absolute; inset: -80px -160px -40px; z-index: -1; background: radial-gradient(closest-side, rgba(10, 10, 11, .62), rgba(10, 10, 11, 0)); pointer-events: none; }
@media (max-width: 1024px) { .oa-bricks--offset .oa-brick:nth-child(n+3) { display: flex; } .oa-bricks--offset .oa-brick--edge { display: none; } }
@media (max-width: 600px) { .oa-hero { min-height: 0; } .oa-hero .head::before { inset: -40px -16px; } }
.oa-cells h2 { font-size: 64px; } @media (max-width: 1024px) { .oa-cells h2 { font-size: 52px; } } @media (max-width: 600px) { .oa-cells h2 { font-size: 40px; } }
.oa-pay__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.oa-voices .intro__grid { grid-template-columns: minmax(0, 544fr) minmax(0, 591fr); }
.oa-voices .intro__photo { order: 2; }
.oa-hero .label { color: var(--text); }
.oa-hero .head::before { background: radial-gradient(closest-side, rgba(10, 10, 11, .72), rgba(10, 10, 11, 0)); }
.oa-closing::after { background: rgba(10, 10, 11, .62); }
@media (max-width: 900px) { .oa-voices .intro__photo { order: 0; } }
@media (max-width: 600px) { .oa-ledger div { flex-wrap: wrap; gap: 4px 16px; } .oa-ledger dd { font-size: 21px; } .oa-ledger__total dd { font-size: 32px; letter-spacing: -1px; } }
.foot__legal a { transition: color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); }
/* ledger keys in the body face: fewer mono caps on the page */
.oa-ledger dt { font-family: var(--font); font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--muted); }
.oa-ledger__total dt { color: var(--text); }
/* review fixes */
.oa-ledger__total dd { font-size: 64px; letter-spacing: -2.5px; }
.oa-brick__meta { font-size: 16px; }
.oa-brick--photo { padding: 28px; }
.oa-brick--photo img { inset: 0; width: 100%; height: 100%; border-radius: 0; }
.oa-brick--photo::after { inset: 0; border-radius: 0; background: linear-gradient(180deg, rgba(10, 10, 11, 0) 40%, rgba(10, 10, 11, .8) 100%); }
.oa-brick--photo h3 { font-size: 24px; }
@media (max-width: 1024px) {
  .oa-pay__grid { grid-template-columns: minmax(0, 1fr); }
  .oa-pay__photo { min-height: 0; aspect-ratio: 4 / 3; order: -1; }
  .oa-bricks, .oa-bricks--offset { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin-left: 0; transform: none; }
  .oa-bricks .oa-brick { display: flex; }
  .oa-bricks .oa-brick--edge { display: none; }
  .oa-bricks .oa-brick:nth-child(3) { display: flex; }
  .oa-bricks:first-of-type .oa-brick:nth-child(3) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .oa-ledger__total dd { font-size: 44px; letter-spacing: -1.5px; }
  .oa-bricks, .oa-bricks--offset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oa-brick { height: 200px; padding: 16px; }
  .oa-brick--photo { grid-column: 1 / -1; height: 220px; }
  .oa-brick--data h3 { font-size: 18px; }
  .oa-brick__meta { font-size: 14px; }
  .oa-bricks .oa-brick:nth-child(odd) { border-left: 0; }
  .oa-cells .head { text-align: left; justify-items: start; }
}
@media (max-width: 600px) { .oa-bricks { grid-auto-flow: dense; } }
@media (max-width: 1024px) { .oa-voices .intro__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 900px) { .oa-voices .intro__grid { grid-template-columns: minmax(0, 1fr); } .oa-voices .intro__photo { aspect-ratio: 4 / 5; } }
/* round-2 review fixes */
.oa-brick--photo { justify-content: space-between; }
.oa-brick--photo .oa-brick__meta { color: var(--text-2); }
.oa-brick--photo .oa-brick__meta b { color: var(--text); }
.oa-pay__photo { min-height: 680px; }
.oa-ledger dt { font-size: 18px; }
.oa-ledger dd { font-size: 28px; }
.oa-ledger__total dd { font-size: 64px; }
@media (max-width: 1024px) { .oa-pay__photo { min-height: 0; } }
@media (max-width: 600px) {
  .oa-bricks:first-of-type .oa-brick:nth-child(3) { grid-column: auto; }
  .oa-bricks .oa-brick--edge { display: none !important; }
  .oa-ledger dt { font-size: 16px; } .oa-ledger dd { font-size: 21px; } .oa-ledger__total dd { font-size: 44px; }
}
.oa-brick--photo { justify-content: flex-end; } .oa-brick--photo .oa-brick__code { margin-bottom: 12px; }
.oa-brick--edge { padding: 0; } .oa-brick--edge img { position: static; width: 100%; height: 100%; } .oa-brick--edge::after { display: none; }
.oa-brick--data { justify-content: flex-end; gap: 12px; }
/* round-3: codes pinned top, titles larger, town never orphaned */
.oa-brick--data { justify-content: space-between; }
.oa-brick--data h3 { font-size: 28px; letter-spacing: -.8px; }
.oa-brick__meta span { white-space: nowrap; }
@media (max-width: 600px) { .oa-brick--data h3 { font-size: 19px; letter-spacing: -.3px; } }
.oa-brick--data { justify-content: flex-end; }
.oa-place::before { content: "· "; }
@media (max-width: 600px) { .oa-brick__meta b, .oa-place { display: block; } .oa-place::before { content: none; } }
.oa-brick--photo::after { background: linear-gradient(180deg, rgba(10, 10, 11, 0) 30%, rgba(10, 10, 11, .55) 58%, rgba(10, 10, 11, .88) 100%); }
