/* =====================================================================
 * THE OVERNIGHT BATCH'S POLISH, PART B -- the three items that are NOT in
 * the first attended-deploy group.
 *
 * WHY A SECOND FILE. night-polish.css was one gated sheet for the whole of
 * section B, and that was right while the section was reviewed as a section.
 * It is wrong now: Tom's first deploy group is thirteen CSS/SEO items with no
 * ad furniture and no feature in it, and three of the sheet's blocks are
 * neither --
 *     ITEM 15  the spacing around every ad banner
 * -- so with one sheet, dropping item 15 from the LIST did not drop it from
 * the DEPLOY. They live here now, behind their own switch, and the thirteen
 * can go out alone.
 *
 * NOT ONE DECLARATION IS CHANGED BY THE SPLIT. The blocks are moved verbatim,
 * and the move is checked by comparing every selector and every declaration
 * of the two files against the original sheet.
 *
 * OFF by default, like every switch here. `TTC_NIGHT_POLISH_B=1` turns it on.
 * It loads AFTER night-polish.css, so the cascade is exactly what it was.
 * ===================================================================== */

/* ===================================================================== *
 * ITEM 15 -- every ad banner the same 30px gap, and the ADVERTISEMENT text
 * with it. SPACING AND LABEL ONLY. No slot, no AdSense attribute, no Desk
 * contract, no `ad_slots` row is touched by any line of this file.
 *
 * HOW IT WAS MEASURED AT ALL. Every slot on this machine is `is-empty` and
 * collapses to zero height -- AdSense fills only on the approved live domain
 * -- so there was nothing to measure and nothing to look at. app/adboxes.py
 * builds a STAGING STUB for exactly this (round 90), and it needs three
 * things none of which a live row has: the `ad_stub_fills` switch, an adsense
 * row carrying a creative image, and it stamps `data-ad-stub="1"` into the
 * markup so a page that ever carried one says so. Those were set on a
 * SEPARATE copy of the database (data/preview/ttc-ads.db, :8672) so the
 * ordinary preview stays a faithful copy and nothing fake reaches any other
 * item's before/after. Loading the real www site in a browser would also have
 * filled them -- and would have fired real ad impressions on Tom's account,
 * which is not something a batch job should do to measure a margin.
 *
 * WHAT THE STUB SHOWED, filled, at 1440:
 *     .ttc-ad.is-filled .ttc-ad__box             margin 20px 0   (most slots)
 *     .ttc-ad--skinny.is-filled .ttc-ad__box     margin 16px 0   (in-step)
 *     .ttc-ad--sidebar.is-filled .ttc-ad__box    margin 24px 0 0 (sticky)
 *     .ttc-adtop                                 margin-top 30px  <- correct
 * -- three different gaps, and the one Tom calls correct is the 30 on the top
 * band. So 30 it is, everywhere.
 *
 * THE LABEL IS ALREADY UNIFORM and is not changed: "Advertisement", 14px,
 * uppercase, rgb(111,103,90), letter-spacing 1.12px, 4px above the creative --
 * identical on all nine filled boxes across a recipe, a column and the hub.
 * What moves is where the BLOCK starts, and since the label is the first
 * thing inside the box, "30px between the element above and the ADVERTISEMENT
 * text" is what the reader actually gets.
 *
 * ONLY `is-filled`, AND THAT IS THE IMPORTANT WORD. An unfilled slot is a
 * block of zero height on purpose (round 96: no empty box, ever). Putting
 * 30px above and below it would open a 60px hole on every page where the ad
 * does not fill -- which, with AdSense, is most of them. The margin is on the
 * same `.is-filled` qualifier the existing rules use, so a collapsed slot is
 * still exactly zero.
 *
 * CONSECUTIVE ADS DO NOT GET 60. These are ordinary sibling margins in normal
 * flow, so two adjacent boxes collapse to max(30,30) = 30.
 * ===================================================================== */
.ttc-ad.is-filled .ttc-ad__box{ margin:30px 0 }
.ttc-ad--skinny.is-filled .ttc-ad__box{ margin:30px 0 }
/* The sidebar keeps its asymmetry -- a sticky unit has nothing under it to be
   spaced from -- and only the number changes. */
.ttc-ad.ttc-ad--sidebar.is-filled .ttc-ad__box{ margin:30px 0 0 }
/* The top band already supplies its own 30 above; its box must not add a
   second one, exactly as `.ttc-adtop > .ttc-ad .ttc-ad__box{margin-top:0}`
   already says for the 20. */
.ttc-adtop > .ttc-ad .ttc-ad__box{ margin-top:0 }
