diff --git a/odoo-black-friday/index.html b/odoo-black-friday/index.html index c0e63f7..612df17 100644 --- a/odoo-black-friday/index.html +++ b/odoo-black-friday/index.html @@ -288,9 +288,33 @@ the right. The deal keeps its full width and weight and stays the ONE dominant action; the right column is deliberately narrower and quieter so the row never reads as three equal primaries. At 901px and up the row is two columns; below that it stacks, deal - first. Scoped to #offer so the Bootcamp box further down is untouched. */ + first. Scoped to #offer so the Bootcamp box further down is untouched. + + Alignment (2026-11-02): the aside column is flush with the container's right content + edge — the same edge the Sydney cell of the server grid above ends on. The left column + takes the whole rest of the row, so the deal box is centred in the space that remains + to the left of the aside rather than sitting in its own fixed 620px lane. The grid gap + is 0 on this row (the deal carries its own breathing room, see below) so the two edges + that must read as centred do: whitespace left of the deal == whitespace between the + deal and the aside. The row gap stays 1.5rem for the stacked (<=900px) layout. */ #offer .container { - grid-template-columns: minmax(0, 620px) minmax(0, 300px); + grid-template-columns: minmax(0, 1fr) minmax(0, 300px); + column-gap: 0; + } + /* The deal keeps its 620px working width: base .bf-box-inner is a full-width block, so + without this it would stretch to fill the flexible left column and lose the centred + measure. `margin-inline: auto` is what centres it in that column. */ + #offer .bf-box-inner { + width: 100%; + max-width: 620px; + margin-inline: auto; + } + /* Two columns only: cap the deal at the column width minus one gap so the deal box and the + aside can never touch when the row is at its narrowest (just above the 900px stack). */ + @media (min-width: 901px) { + #offer .bf-box-inner { + max-width: min(620px, calc(100% - 1.5rem)); + } } .bf-aside { display: grid;