Little Boxes on the Hillside There's a satirical song called Little Boxes, originally by Malvina Reynolds, about suburban sprawl that has lyrics as follows:


  Little boxes on the hillside,
  Little boxes made of ticky-tacky,
  Little boxes on the hillside,
  Little boxes all the same.
  There's a green one and a pink one
  And a blue one and a yellow one,
  And they're all made out of ticky-tacky
  And they all look just the same.


Your job here is, given an integer input n&gt;1 that represents the size of the house, output the four "little boxes" using the following colors (in 0xRRGGBB notation):

Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00


If your particular console doesn't have these exact colors, you may use the closest available (e.g., ANSI escape codes).

The houses are constructed with n _ representing the floor and roofline. They are surrounded by n/2 (round-up) | characters representing the walls. The roofs are always 2 high and are two / on the left edge, two \ on the right edge, and n-2 - representing the roof peak. As the houses get larger, the comparative size of the roof gets smaller; this is intended.

Here's a house of size 2:

 /\
/__\
|__|


Here's size 3:

 /-\
/___\
|   |
|___|


Here's size 7:

 /-----\
/_______\
|       |
|       |
|       |
|_______|


Thus given an input of 7, output four houses of size 7 as described above, with the first one in green, the second in pink (magenta), the third in blue, and the fourth in yellow. Output of the colors in that order is important. 

Example picture of size 3:



Rules


The houses can be horizontal or vertical so long as there is a clear separation between them.
Leading/trailing newlines or other whitespace are optional, provided that the houses line up appropriately.
Either a full program or a function are acceptable. If a function, you can return the output rather than printing it.
Output can be to the console, saved as an image, etc.
Standard loopholes are forbidden.
This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.
Python 2, 123 121 119 111 109 108 bytes


Saved two bytes thanks to caird coinheringaahing; using the actual unprintable ASCII character instead of escaping it (\33)
Could (and did) save a byte by writing an entire program using input() instead of defining a function
Saved seven bytes thanks to ElPedro; using the fact that str(90+n) with 0&lt;=n&lt;=9 is "9%s"%n
Saved two three bytes by using string formatting rather than string concatenation




N=input()
for(n)in"2543":Z="_"*N;print"&#27;[9%sm /"%n+~-~-N*"-"+"\ \n/%s\\\n"%Z+~-N/2*("|%s|\n"%" "*N)+"|%s|"%Z


Try it online!

Uses ANSI escape codes for coloring the houses.