/* Bali Hai Apartments Noosa: additions that are not in live's own CSS (Stage 3 faithful build; Stage 4 owns the look beyond this). Divi neutralisers + keyless map + live's 1170px frame. */
/* Bali Hai Apartments Noosa: additions that are not in live's own CSS (Stage 3, faithful build; Stage 4 owns look beyond this).
   1. tel: links (the kit's build rule: every non-fax phone number is an explicit tel: link so iOS adds no colour of its own) keep the surrounding look.
   2. Divi neutralising so live's own CSS owns the geometry: live assumes content-box, Divi sets border-box everywhere; Divi's .container is 80% wide, max 1080px, relative,
      with 58px top padding in #main-content and a 1px sidebar divider drawn by #main-content .container:before.
*/
:where(body.bh-site #page-container) *, :where(body.bh-site #page-container) *::before, :where(body.bh-site #page-container) *::after { box-sizing: content-box; }   /* zero weight: the third-party booking panel's own box-sizing rules must win, as on live */
body.bh-site #page-container .et_pb_contact_form_container *, body.bh-site #page-container .et_pb_contact_form_container *::before, body.bh-site #page-container .et_pb_contact_form_container *::after { box-sizing: border-box; }
body.bh-site #page-container select, body.bh-site #page-container button,
body.bh-site #page-container input[type=submit], body.bh-site #page-container input[type=button], body.bh-site #page-container input[type=reset] { box-sizing: border-box; }
body.bh-site #page-container .container { max-width: none; position: static; }
body.bh-site #page-container #main-content .container:before { display: none; }
body.bh-site #page-container #main-content { padding-top: 0; background: transparent; }

/* ---- first-step Divi neutralisers, the same ones every family-B build needed (copied from a sister family B build's desktop layer, sections 2 to 5 and 8, selectors renamed; Stage 4 owns any look beyond them) ---- */
/* Divi sets body weight 500 and strong 700; live's body is 400 and its <strong> is "bolder" than the surrounding weight (a strong inside a 300 heading is 400, as on live). */
body.bh-site { font-weight: 400; }
body.bh-site strong, body.bh-site b { font-weight: bolder; }
/* 2. Browser-default spacing and line boxes the live CSS relies on, which Divi's reset removes. :where() keeps these at
      element weight, so every live rule still wins where live sets a value. */
body.bh-site :where(.et-l, #main-content) p { padding-bottom: 0; }
/*    Divi's reset also zeroes the browser's own block margins (p 1em, h6 2.33em, dl/dd); live relies on them wherever its CSS sets
      no margin of its own (the home location text, list pages). 'revert' hands them back at element weight. */
body.bh-site :where(.et-l, #main-content) :where(p, h1, h2, h3, h4, h5, h6, dl, dd, figure, pre) { margin: revert; }
body.bh-site :where(.et-l, #main-content) h6 { font-size: revert; }
body.bh-site :where(.et-l, #main-content) ul, body.bh-site :where(.et-l, #main-content) ol { padding: 0 0 0 40px; margin: 1em 0; line-height: inherit; list-style-type: revert; }
body.bh-site :where(.et-l, #main-content) :is(ul, ol) :is(ul, ol) { margin-top: 0; margin-bottom: 0; }
body.bh-site :where(.et-l, #main-content) li { line-height: inherit; }
body.bh-site :where(.et-l, #main-content) :is(h1, h2, h3, h4, h5, h6) { padding-bottom: 0; line-height: inherit; font-weight: revert; color: inherit; }
body.bh-site :where(.et-l, #main-content) h5 { font-size: 0.83em; }

/* 3. Divi's content-table look (borders, cell padding, width 100%) is not on live. */
body.bh-site :where(.et-l, #main-content) table:not(.variations) { border: 0; margin: 0; width: auto; text-align: start; border-collapse: separate; }
body.bh-site :where(.et-l, #main-content) table[width="100%"]:not(.variations) { width: 100%; }
/*    Divi's reset sets border-spacing 0, which also wipes the cellspacing attribute live's tables carry (the units table's
      cellspacing="1"), and fg-extra.css made tables content-box (the browser's own is border-box). */
body.bh-site #page-container table { box-sizing: border-box; }
body.bh-site :where(.et-l, #main-content) table { border-spacing: 2px; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="0"] { border-spacing: 0; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="1"] { border-spacing: 1px; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="2"] { border-spacing: 2px; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="3"] { border-spacing: 3px; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="4"] { border-spacing: 4px; }
body.bh-site :where(.et-l, #main-content) table[cellspacing="5"] { border-spacing: 5px; }
body.bh-site :where(.et-l, #main-content) tr td, body.bh-site :where(.et-l, #main-content) tr th { border-top: 0; padding: 1px; }
body.bh-site :where(.et-l, #main-content) table[cellpadding="0"] tr td, body.bh-site :where(.et-l, #main-content) table[cellpadding="0"] tr th { padding: 0; }

/* 4. Divi draws a 5px rule down the left of every blockquote; live has none. */
body.bh-site :where(.et-l, #main-content) blockquote { border: 0; border-color: currentColor; }

/* 5. Divi forces greyscale font smoothing; live uses the browser default. */
body.bh-site { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }

/* 8. On archive views (category, month, tag) Divi prints the Theme Builder footer row with padding-bottom:20px!important,
      so those pages would end 20px lower than every other page. */
html body.bh-site #et-boc .et-l.et-l--footer .et_pb_row { padding-bottom: 0 !important; }


/* live's #container-outer, #feature and #footer all carry min-width 1170px (the iLaunch frame; there is no viewport meta and no responsive CSS, so a narrow window shows the 1170px page and scrolls
   sideways). The kit's CSS port zeroes min-width values of 1000px and up because Divi owns the frame; Divi's frame is the page container, so it takes the same minimum until Stage 4 ships
   the designed phone and tablet layers (which set it back below 1250px). */
body.bh-site #page-container { min-width: 1170px; }


/* Divi gives every column min-height 1px and wraps empty Theme Builder layouts: the header and footer layouts are empty here (the chrome renders in the page, see lessons.md) and take no height. */
body.bh-site #page-container .et-l--header, body.bh-site #page-container .et-l--footer { min-height: 0; }
body.bh-site #page-container .et-l--header .et_pb_column, body.bh-site #page-container .et-l--footer .et_pb_column { min-height: 0; }
body.bh-site #page-container .et-l--header .et_pb_section, body.bh-site #page-container .et-l--footer .et_pb_section { display: none; }
/* live's frame: #container-outer-bg, #container-outer, #rightcontent-main and #feature carry min-width 1170px / 925px. The kit port zeroes min-widths of 1000px and up (Divi owns the frame),
   so the page container takes live's minimum until Stage 4 ships the designed phone and tablet layers. */
body.bh-site #page-container { min-width: 1170px; }
/* Divi's global img { height: auto } and max-width: 100% are live's defaults too; the engine's booking panel is styled by its own stylesheets (loaded by its script). */

/* keyless map embed (kit port_maps.py --css) */
body.bh-site #page-container .map-wrapper { position: relative; }
body.bh-site #page-container .map-container iframe.ils-map { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; }
body.bh-site #page-container .map-wrapper .map-info { display: block; position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 3; background: #fff; padding: 8px 14px; box-shadow: 0 1px 6px rgba(0,0,0,.35); font-size: 14px; line-height: 20px; text-align: center; }


/* live has no max-width cap on images (Divi caps them at 100% of the column: the sidebar logo shrank) */
:where(body.bh-site #page-container) img { max-width: none; }

/* Divi resets form controls to appearance:none; live uses the browser default (element weight, later sheet wins the tie) */
:where(body.bh-site #page-container) :is(input, select, textarea, button) { -webkit-appearance: auto; appearance: auto; }

/* live keeps min-width 1170px on #footer (and #container-outer / -bg): an overflow:hidden footer cannot sit beside a float that leaves less than 1170px, so it drops below it. The kit port zeroes min-width values of 1000px and up, which let the footer slide up beside the 6000px floated block on /accommodation. */
body.bh-site #page-container #footer, body.bh-site #page-container #container-outer, body.bh-site #page-container #container-outer-bg { min-width: 1170px; }
body.bh-site #page-container .rooms-list-wrapper, body.bh-site #page-container .rooms-list-wrapper .list { min-width: 1170px; }
