/* Opt-in fitted decoration. Absolute fills never size the content/grid tracks. */
[data-ornament-frame-fit] .brand-ornament-frame__fill { display: none; }
[data-ornament-frame-fit] .brand-ornament-frame__edge--fitted > .brand-ornament-frame__edge-rotation { visibility: hidden; }
[data-ornament-frame-fit] .brand-ornament-frame__edge--fitted > .brand-ornament-frame__fill {
  display: block; position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%); transform-origin: center;
  overflow: hidden; pointer-events: none;
}
[data-ornament-frame-fit] .brand-ornament-frame__edge--bottom > .brand-ornament-frame__fill { transform: translate(-50%, -50%) rotate(180deg); }
[data-ornament-frame-fit] .brand-ornament-frame__edge--left > .brand-ornament-frame__fill { transform: translate(-50%, -50%) rotate(-90deg); }
[data-ornament-frame-fit] .brand-ornament-frame__edge--right > .brand-ornament-frame__fill { transform: translate(-50%, -50%) rotate(90deg); }
/* Complete static pairs remain a readable fallback, including shorter forms.
   The enhanced fill hides these only after its tile has been prepared safely. */
.contact-frame .brand-ornament-frame__edge--left .brand-ornament-frame__pair:nth-child(n + 3),
.contact-frame .brand-ornament-frame__edge--right .brand-ornament-frame__pair:nth-child(n + 3) { display: none; }

/* The extra extent is exactly the final EMPTY pair gap, never a partial flower.
   Round retains the chosen whole-pair count when fractional layout rounding
   makes a run a fraction of a pixel narrower than N strides. Space would drop
   one entire pair and turn that missing pair into a large hole in the frame.
   The residual adjustment is subpixel; the final empty gap is clipped. */
[data-ornament-frame-fit] .brand-ornament-frame__run { position: absolute; top: 0; height: 100%; overflow: hidden; }
[data-ornament-frame-fit] .brand-ornament-frame__run::before {
  content: ""; position: absolute; inset: 0 auto 0 0;
  width: calc(100% + var(--frame-tail));
  background-image: var(--frame-tile);
  background-size: var(--frame-stride) 100%; background-repeat: round no-repeat;
}
