/* qr-design.css: desktop parity layer for Quirindi RSL Motel (a sister site's layer, kit ilaunch-divi-parity.template.css sections 1-4, 6-8, 10, 11, 14-16, 19-21 and 23, rewritten for this site; the booking calendar (13) and the keyless map (22) are not needed: live's booking bar is display:none on every page and its map is a flat image). Stage 4 owns look, phone and tablet. */
/* 1. Live iLaunch CSS assumes the browser default content-box; Divi sets * {box-sizing:border-box}, which shrank every padded
      box (header band 125 -> 91px, booking date field, special-offer text, footer container 195 -> 155px). Divi's own
      contact-form module keeps border-box. */
body.qr-site #page-container, body.qr-site #page-container *, body.qr-site #page-container *::before, body.qr-site #page-container *::after { box-sizing: content-box; }
body.qr-site #page-container .et_pb_contact_form_container, body.qr-site #page-container .et_pb_contact_form_container * { box-sizing: border-box; }

/* 3. Browser-default spacing the live CSS relies on, which Divi's reset removes. No ids in these selectors, so every
      live rule (body.qr-site #page-container ...) still wins where live sets its own value. */
body.qr-site :where(.et-l, #main-content) p { padding-bottom: 0; margin-bottom: 1em; }
body.qr-site :where(.et-l, #main-content) ul, body.qr-site :where(.et-l, #main-content) ol { padding: 0 0 0 40px; margin: 1em 0; line-height: inherit; }

/* 4. Divi pads "#main-content .container" 58px at the top (meant for its own header); live's .container has no such padding.
      Hidden while Divi's border-box absorbed it into the fixed 340px #topcontainer; content-box exposed it. */
html body.qr-site #main-content .container { padding-top: 0; }


/* 6. Form controls the browser sizes as border-box by default (select, buttons, submit inputs): keep that after rule 1,
      or the booking bar's Duration select and Check Availability button grow by their padding (240 -> 253, 280 -> 310px). */
body.qr-site #page-container select, body.qr-site #page-container button,
body.qr-site #page-container input[type=submit], body.qr-site #page-container input[type=button], body.qr-site #page-container input[type=reset] { box-sizing: border-box; }

/* 7. Divi's content-table look (1px #eee borders, 6px 24px cell padding, width 100%, left align) is not on live. Back to the
      browser defaults, honouring the table's own width="100%" and cellpadding="0" attributes as live does. */
body.qr-site :where(.et-l, #main-content) table:not(.variations) { border: 0; margin: 0; width: auto; text-align: start; }
body.qr-site :where(.et-l, #main-content) table[width="100%"]:not(.variations) { width: 100%; }
body.qr-site :where(.et-l, #main-content) tr td, body.qr-site :where(.et-l, #main-content) tr th { border-top: 0; padding: 1px; }
body.qr-site :where(.et-l, #main-content) table[cellpadding="0"] tr td, body.qr-site :where(.et-l, #main-content) table[cellpadding="0"] tr th { padding: 0; }


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


/* nested lists: browser default has no vertical margin (site map) */
body.qr-site :where(.et-l, #main-content) :is(ul, ol) :is(ul, ol) { margin-top: 0; margin-bottom: 0; }

/* 10. Divi forces greyscale font smoothing on body; live uses the browser default (slightly heavier text on macOS). */
body.qr-site { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }

/* 11. Divi's right-sidebar layout draws a 1px grey vertical rule (#main-content .container::before) on blog views; not on live. */
body.qr-site:not(.qr-home) #main-content .container::before { display: none; }


/* 14. Home hero slider before slidepark starts (a sister iLaunch build 2026-10-06 classification round F1, PSI performance; pairs
      with the hero fragment kit/extract_chrome.py emits). Live's <img>
      slides become background-image slides only once the footer scripts run; until then the first photo showed stretched
      (fill) with the queued slides spilling below the hero. Show it exactly as the slide will be drawn (cover, centred)
      and clip the queue, so the swap changes no pixels (speed index and LCP) and nothing is ever stretched. The list
      also loses the browser's default margin/padding before the slider starts (they pushed the hero 15px down and 40px
      wide). slidepark sets exactly these values inline when it starts, so the running slider looks exactly as before. */
body.qr-site #page-container ul.featuremain.slidepark { position: relative; overflow: hidden; margin: 0; padding: 0; list-style: none; }
body.qr-site #page-container ul.featuremain.slidepark > li > img { object-fit: cover; object-position: center center; }

/* 15. Nested lists (earlier iLaunch build): Divi's `.entry-content ul { list-style-type: disc }` hits every level; live (browser default) shows
   hollow circles at the second level and squares at the third (site map) */
body.qr-site :where(.et-l, #main-content) ul ul { list-style-type: circle; }
body.qr-site :where(.et-l, #main-content) ul ul ul { list-style-type: square; }
/* 16. Form thank-you alignment (earlier iLaunch build): after a successful send Divi replaces the form with its thank-you line; the form's centred 1184px box then
   indented that line to x 128 while the heading and intro above sit at x 35. Without a form the box spans the column. */
body.qr-site #page-container .qr-contact-form:not(:has(form)) { width: auto; max-width: none; margin-left: 0; margin-right: 0; }

/* 19. Divi's .container{width:80%; max-width:1080px; position:relative}: live's is a plain 1170px box (position static; .container.main restores relative). */
body.qr-site #page-container .container { max-width: none; position: static; }

/* 20. Divi's `.et_no_sidebar #main-content .container::before { display: none }` hides home.css's flower (a ::before with no display of its own). */
body.qr-site.qr-home #page-container .content .container::before { display: block; }

/* 21. Live has no viewport meta and `#container-outer { min-width: 1170px }` (the kit port zeroes min-widths of 1000px and up): a phone-sized window shows live's clipped 1170px page.
   Reproduced for the faithful build (a sister site's precedent); Stage 4 resets it below 1250 with the designed phone and tablet layouts. */
body.qr-site #page-container { min-width: 1170px; }

/* 23. Divi's reset zeroes table border-spacing; live's tables (no cellspacing attribute: newsletter unsubscribe form) keep the browser default 2px. */
body.qr-site :where(.et-l, #main-content) table:not(.variations):not([cellspacing]) { border-spacing: 2px; }


/* 24. Divi's reset gives sub and sup `line-height: 0; position: relative; vertical-align: baseline`, so the footer banner's "TM" (a <sup>) no longer raises the line the way the browser default does
   (live: vertical-align super, which grows the line box 15px). Back to the browser default, on every page. */
body.qr-site :where(.et-l, #main-content) sup, body.qr-site :where(.et-l, #main-content) sub { position: static; top: auto; bottom: auto; line-height: inherit; font-size: smaller; }
body.qr-site :where(.et-l, #main-content) sup { vertical-align: super; }
body.qr-site :where(.et-l, #main-content) sub { vertical-align: sub; }

/* 25. Divi's heading reset (`h5 { font-size: 16px; line-height: 1em }`): live never styles h5 size or line height (the /blog intro), so it keeps the browser default (0.83em of the 15px body) and the body's 24px line. */
body.qr-site :where(.et-l, #main-content) h5 { font-size: 0.83em; line-height: inherit; }

/* ===== Stage 4 (14 Oct 2026) ===== */

/* 26. Phone menu button (added to the header fragment for the designed tablet and phone layouts; qr-mobile.css shows it below 1170). */
body.qr-site #page-container .ils-menu-toggle { display: none; }

/* 27. Phone numbers are explicit tel: links (header, footer, /contact) so iOS has nothing of its own to restyle (format-detection meta in the head). At every
   width the link looks exactly like live's plain-text number in every state: its parent's colour, font, no underline, no box. The footer's li link rule
   (`#footer a { color: #fff }`, hover underline) and the content links' rules must not reach it. Below 1250 it never wraps. */
body.qr-site #page-container a.tel-link, body.qr-site #page-container a.tel-link:link, body.qr-site #page-container a.tel-link:visited,
body.qr-site #page-container a.tel-link:hover, body.qr-site #page-container a.tel-link:focus, body.qr-site #page-container a.tel-link:active,
body.qr-site #page-container #footer a.tel-link:hover, body.qr-site #page-container .maintext td a.tel-link { color: inherit !important; text-decoration: none !important; background: none; font-family: inherit; font-size: inherit; font-weight: inherit; font-style: inherit; letter-spacing: inherit; }
@media (max-width: 1249px) { body.qr-site #page-container a.tel-link { white-space: nowrap; display: inline-block; line-height: 24px; } body.qr-site #page-container #header .tel a.tel-link { line-height: 30px; } }

/* 28. Keyboard focus: Divi's `a { outline: 0 }` and `:focus { outline: 0 }` remove the browser's ring that live shows (and live's own select rule removes it
   from the booking select). Back to the browser's own ring for keyboard focus at 1250 and up; an AA ring below 1250 (qr-mobile.css). Mouse clicks show no ring. */
body.qr-site :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: revert !important; outline-offset: revert; }

/* 29. Enquiry form (/contact), review form (/reviews) and newsletter unsubscribe form: Divi forms with a maths question (live's reCAPTCHA is broken: "ERROR for
   site owner: Invalid site key"). At 1250 and up they are dressed as live's own table.form, measured on live at 1440: a 115px label cell (right-aligned, 37px
   line, 5px 10px 5px 5px padding), a 261px field cell (236 x 34px field: 15px side padding, 1px #e1e1e1 border, 14px type; the star icon in the cell's right
   padding 7px from its top), contact: Name, Email and Contact Phone across (115 + 261 each = 1128px), Message over three cells (a 609 x 98px box) beside the
   Verification label and its answer, the Submit button (live's sky-blue 17px condensed uppercase button with a 1px #e1e1e1 border, 42px tall) right-aligned
   in a full row with "Required fields" and its star under it. The maths question stands where live's reCAPTCHA stands. Below 1250 the layout is in qr-mobile.css. */
body.qr-site #page-container .qr-contact-form { margin: 15px 0; padding: 0; background: none; }
body.qr-site #page-container .qr-contact-form .et_pb_contact { padding: 0; }
body.qr-site #page-container .qr-contact-form h1.et_pb_contact_main_title { display: none; }
body.qr-site #page-container .qr-contact-form form.et_pb_contact_form { margin: 0; padding: 0; }
body.qr-site #page-container .qr-contact-form p.et_pb_contact_field { margin: 0; padding: 0; width: auto; float: none; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_form_label { display: block; margin: 0; font: 400 15px/37px 'HerosNeue', Arial, Helvetica, sans-serif; color: #444444; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_field input.input, body.qr-site #page-container .qr-contact-form .et_pb_contact_field textarea.input {
  display: block; margin: 0; padding: 8px 15px; border: 1px solid #e1e1e1; border-radius: 0; background: #ffffff; box-shadow: none; box-sizing: content-box;
  font: 400 14px/16px 'HerosNeue', Helvetica, sans-serif; color: #444444; width: 204px; height: 16px; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_field .input::placeholder { color: transparent; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_field textarea.input { min-height: 0; height: 80px; width: 577px; resize: vertical; }
body.qr-site #page-container .qr-contact-form .et_contact_bottom_container { float: none; margin: 0; text-align: left; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_right { float: none; text-align: left; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix { position: relative; float: none; margin: 0; padding: 0; font: 400 15px/37px 'HerosNeue', Arial, Helvetica, sans-serif; color: #444444; text-align: left; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix::before, body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix::after { content: none; display: none; }
body.qr-site #page-container .qr-contact-form .et_pb_contact_captcha_question { font: 400 15px/37px 'HerosNeue', Arial, Helvetica, sans-serif; color: #444444; }
body.qr-site #page-container .qr-contact-form input.et_pb_contact_captcha { display: inline-block; width: 40px; height: 16px; margin: 0 0 0 10px; padding: 8px 15px; border: 1px solid #e1e1e1; border-radius: 0; background: #ffffff;
  box-sizing: content-box; font: 400 14px/16px 'HerosNeue', Helvetica, sans-serif; color: #444444; vertical-align: top; }
body #page-container .et_pb_section .qr-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_contact_submit.et_pb_button {
  display: block; width: auto; height: 42px; margin: 0; padding: 0 25px !important; border: 1px solid #e1e1e1 !important; border-radius: 0 !important; box-sizing: border-box;
  background: #1bbaee !important; color: #ffffff !important; font: 700 17px/40px 'HerosCnBold', Arial, Helvetica, sans-serif !important; text-transform: uppercase; letter-spacing: 1px !important; cursor: pointer; transition: all 1s; }
body #page-container .et_pb_section .qr-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_contact_submit.et_pb_button:hover { background: #444444 !important; color: #ffffff !important; padding: 0 25px !important; }
body #page-container .et_pb_section .qr-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_contact_submit.et_pb_button::after { display: none !important; }
body.qr-site #page-container .qr-contact-form form.et_pb_contact_form::after { content: "Required fields"; display: block; visibility: visible; height: auto; clear: none;
  padding-right: 20px; font: 400 11px/22px 'HerosNeue', Arial, Helvetica, sans-serif; color: #444444; background: url(/wp-content/uploads/ilaunch/skin/images/icon-required.png) no-repeat right center; text-align: right; }
body.qr-site #page-container .qr-contact-form .et-pb-contact-message, body.qr-site #page-container .qr-contact-form .et-pb-contact-message p { font: 400 15px/22px 'HerosNeue', Arial, Helvetica, sans-serif; color: #444444; }
body.qr-site #page-container .qr-unsub-form form.et_pb_contact_form::after { content: none; display: none; }
@media (min-width: 1250px) {
  body.qr-site #page-container .qr-enquiry-form form.et_pb_contact_form, body.qr-site #page-container .qr-review-form form.et_pb_contact_form { display: grid; grid-template-columns: 115px 261px 115px 261px 115px 261px; column-gap: 0; row-gap: 0; align-items: start; width: 1128px; }
  body.qr-site #page-container .qr-contact-form p.et_pb_contact_field, body.qr-site #page-container .qr-contact-form .et_contact_bottom_container, body.qr-site #page-container .qr-contact-form .et_pb_contact_right { display: contents; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_form_label { padding: 5px 10px 5px 5px; text-align: right; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field input.input, body.qr-site #page-container .qr-contact-form .et_pb_contact_field textarea.input { margin: 5px 20px 5px 5px; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field textarea.input { margin-bottom: 12px; }
  /* row 1: three label + field pairs; row 2: the message (label, then field across the next three cells' worth = 609px) and the verification pair */
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_0 > label { grid-area: 1 / 1; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_0 > input { grid-area: 1 / 2; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_1 > label { grid-area: 1 / 3; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_1 > input { grid-area: 1 / 4; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_2 > label { grid-area: 1 / 5; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_2 > input { grid-area: 1 / 6; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_3 > label { grid-area: 2 / 1; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_field_3 > textarea { grid-area: 2 / 2 / 2 / 5; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix { grid-area: 2 / 5 / 2 / 7; display: flex; align-items: flex-start; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix::before { content: "Verification"; display: block; flex: 0 0 100px; padding: 5px 10px 5px 5px; text-align: right; font: 400 15px/37px 'HerosNeue', Arial, Helvetica, sans-serif; }
  body.qr-site #page-container .qr-contact-form .et_pb_contact_right p.clearfix > span { padding: 5px 0 5px 5px; white-space: nowrap; }
  body.qr-site #page-container .qr-contact-form input.et_pb_contact_captcha { margin: 5px 0 5px 10px; }
  body #page-container .et_pb_section .qr-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_contact_submit.et_pb_button { grid-area: 3 / 1 / 3 / 7; justify-self: end; margin: 5px 20px 5px 0 !important; }
  body.qr-site #page-container .qr-contact-form form.et_pb_contact_form::after { grid-area: 4 / 1 / 4 / 7; padding: 0 20px 0 0; margin: 0 20px 0 0; justify-self: end; }
  /* the required stars: field cell's right padding, 7px from its top */
  body.qr-site #page-container .qr-contact-form p.et_pb_contact_field:has(> [data-required_mark="required"])::after { content: ""; display: block; width: 16px; height: 16px; margin: 7px 0 0; justify-self: end; align-self: start; background: url(/wp-content/uploads/ilaunch/skin/images/icon-required.png) no-repeat; }
  body.qr-site #page-container .qr-contact-form p.et_pb_contact_field_0::after { grid-area: 1 / 2; }
  body.qr-site #page-container .qr-contact-form p.et_pb_contact_field_1::after { grid-area: 1 / 4; }
  body.qr-site #page-container .qr-enquiry-form p.et_pb_contact_field_3::after { display: none !important; }
  body.qr-site #page-container .qr-review-form p.et_pb_contact_field_3::after { grid-area: 2 / 4; }
  /* unsubscribe: a two-column table (115 + 261), the field, then the question, then the button; live has no "Required fields" line and no question */
  body.qr-site #page-container .qr-unsub-form form.et_pb_contact_form { display: grid; grid-template-columns: 115px 261px; column-gap: 2px; row-gap: 2px; padding: 2px; align-items: start; }
  body.qr-site #page-container .qr-unsub-form .et_pb_contact_form_label { grid-area: 1 / 1; }
  body.qr-site #page-container .qr-unsub-form .et_pb_contact_field_0 > input { grid-area: 1 / 2; }
  body.qr-site #page-container .qr-unsub-form p.et_pb_contact_field_0::after { grid-area: 1 / 2; }
  body.qr-site #page-container .qr-unsub-form .et_pb_contact_right p.clearfix { grid-area: 2 / 2; display: block; }
  body.qr-site #page-container .qr-unsub-form .et_pb_contact_right p.clearfix::before { display: none; }
  body #page-container .et_pb_section .qr-unsub-form.qr-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_contact_submit.et_pb_button { grid-area: 3 / 2; justify-self: start; margin: 5px 20px 5px 5px !important; }
}

/* 30. Photo pop-up (fancybox, appended to <body>): a rule scoped under #page-container never reaches its shadow pieces (compared with live at 1440, 768 and 390). */
body.qr-site .fancy-bg { position: absolute; padding: 0; margin: 0; border: 0; width: 20px; height: 20px; z-index: 1001; }

/* 31. Divi sets body { background-size: cover; background-repeat: no-repeat; background-position: 50% 0 }, which stretched live's small body-bg.jpg tile into a blotchy
   cloud over every page; live tiles it (repeat, 50% 50%, natural size). */
html body.qr-site { background-repeat: repeat !important; background-position: 50% 50% !important; background-size: auto !important; }

/* 32. Font swap fit: the offer list's uppercase, letter-spaced lines run 10% wider in TeX Gyre Heros Cn than in live's Helvetica Neue LT Std Cn (live 224, 230 and 164px, swapped 246, 250 and 179px at 20px),
   so the longest line reached under the diamond Book Online Now button. Sized to live's widths (DELIBERATE: capitals 9% smaller than live's, only this list). */
body.qr-site.qr-home #page-container .bookingbannercontent li { font-size: 18.5px; }

/* 33. Divi paints #main-content white on posts and archives (not on pages); live's page is the beige body tile all the way down (found by the 1440 pairs: 22 to 60% of the pixels of every post, category and month view differed). */
body.qr-site #main-content { background: transparent; }
