/* nd-design.css - faithful DESKTOP layer for 9D Action Cinemas on Divi (Stage 3). Undoes what Divi adds that live iLaunch CSS never had.
   $B = body.nd-site, $P = body.nd-site #page-container. No phone/tablet design here (live has none; Stage 4 owns it). */

/* 1. live's #container-outer-bg and #container-outer are body backgrounds here (the png over the repeating jpg, as on live); the 1100px
      #container (texture, shadow) is #page-container itself, which holds the Theme Builder header, the page and the footer. */
body.nd-site { background: url(/wp-content/uploads/ilaunch/skin/container-outer.png) top center no-repeat, url(/wp-content/uploads/ilaunch/skin/container-outer-bg.jpg) top center repeat-x, #252525; min-height: 980px; margin: 0; }
body.nd-site #page-container { padding-top: 0 !important; overflow: visible; }
body.nd-site #main-content, body.nd-site #et-main-area { background: none; }

/* 2. Live CSS assumes the browser default content-box; Divi sets * {box-sizing:border-box}. */
body.nd-site #page-container, body.nd-site #page-container *, body.nd-site #page-container *::before, body.nd-site #page-container *::after { box-sizing: content-box; }
body.nd-site #page-container select, body.nd-site #page-container button, body.nd-site #page-container input[type=submit],
body.nd-site #page-container input[type=button], body.nd-site #page-container input[type=reset] { box-sizing: border-box; }
body.nd-site #page-container .et_pb_contact_form_container, body.nd-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: every live rule still wins where it sets a value). */
body.nd-site :where(.et-l, #main-content) p { padding-bottom: 0; margin-bottom: 1em; }
body.nd-site :where(.et-l, #main-content) ul, body.nd-site :where(.et-l, #main-content) ol { padding: 0 0 0 40px; margin: 1em 0; line-height: inherit; }
body.nd-site :where(.et-l, #main-content) :is(ul, ol) :is(ul, ol) { margin-top: 0; margin-bottom: 0; }
body.nd-site :where(.et-l, #main-content) ul ul { list-style-type: circle; }
body.nd-site :where(.et-l, #main-content) ul ul ul { list-style-type: square; }
body.nd-site :where(.et-l, #main-content) table:not(.variations) { border: 0; margin: 0; width: auto; text-align: start; }
body.nd-site :where(.et-l, #main-content) table[width="100%"]:not(.variations) { width: 100%; }
body.nd-site :where(.et-l, #main-content) tr td, body.nd-site :where(.et-l, #main-content) tr th { border-top: 0; padding: 1px; }
body.nd-site :where(.et-l, #main-content) table[cellpadding="0"] tr td, body.nd-site :where(.et-l, #main-content) table[cellpadding="0"] tr th { padding: 0; }
body.nd-site :where(.et-l, #main-content) blockquote { border-left: 0; }
body.nd-site { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }
body.nd-site #main-content .container::before { display: none; }
body.nd-site a:not([href]) { color: inherit; }

/* 4. Divi's heading and form resets. Live's h1..h4 inherit their line-height from its own rules; Divi sets 1em and padding-bottom. */
body.nd-site :where(.et-l, #main-content) h1, body.nd-site :where(.et-l, #main-content) h2, body.nd-site :where(.et-l, #main-content) h3,
body.nd-site :where(.et-l, #main-content) h4, body.nd-site :where(.et-l, #main-content) h5, body.nd-site :where(.et-l, #main-content) h6 { padding-bottom: 0; font-weight: normal; }
body.nd-site #page-container h1 { padding-bottom: 0; }
body.nd-site #page-container input[type=text], body.nd-site #page-container input[type=email], body.nd-site #page-container textarea,
body.nd-site #page-container select { height: auto; }

/* 5. Live prints a ".socialwidgets" block (Google +1 and Facebook Like, both dead services that now draw nothing) at the end of most
      content columns: 10px padding, 25px tall, a 1px #eee rule on top. Same block here, markup unchanged, no SDK. */
/* (no extra rules: the empty block takes live's own .socialwidgets margin, padding and rule) */

/* 6. Browser default text-decoration/outline resets are live's own; nothing else here. */

/* 7. Booking button (FareHarbor lightframe, fh-kit.com/buttons/v2): it is a fixed bottom-right button drawn by FareHarbor's own CSS, as on live. */

/* 8. Live's images carry no max-width and the default baseline alignment; Divi shrinks them to their container (the gallery cells) and
      aligns them differently (a 5px taller logo box). */
body.nd-site #page-container img { max-width: none; vertical-align: baseline; }

/* 9. Live's #header is a fixed 154px box whose second menu row (#menu, floated) hangs 20px below it over the #feature band. Divi's floated
      column would enclose those floats and push the page 20px down: fix the column to the header's own height. */
body.nd-site .et-l--header .et_pb_column { height: 154px; }

/* 10. Phone numbers are explicit tel: links (kit ilaunch_tel; iOS would otherwise colour them itself) that keep the surrounding text colour,
       no underline, in every state, so they look exactly like live's plain text. */
body.nd-site #page-container a.tel-link, body.nd-site #page-container a.tel-link:link, body.nd-site #page-container a.tel-link:visited,
body.nd-site #page-container a.tel-link:hover, body.nd-site #page-container a.tel-link:active, body.nd-site #page-container a.tel-link:focus,
body.nd-site a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font: inherit; }

/* 11. Browser-default table spacing: Divi collapses table borders and zeroes spacing; live uses the default separate model with 2px spacing
       wherever the table has no cellspacing attribute of its own (an attribute is only a hint, so any author rule would beat it). */
body.nd-site :where(.et-l, #main-content) table { border-collapse: separate; }
body.nd-site :where(.et-l, #main-content) table:not([cellspacing]) { border-spacing: 2px; }

/* 12. Divi contact forms dressed as live's table.form: label column (th: min 175px + 5/15px padding, semibold 14px white, 28px line), inputs 400px
       (320px in the right column), boxed dark inputs from live's own input rules, a required star where live prints it, the green gradient SUBMIT
       button, a "Required fields" note. Divi's maths captcha sits where live's reCAPTCHA row sat (DELIBERATE: live's reCAPTCHA shows "Invalid site key"). */
body.nd-site #page-container .nd-form { margin: 0 0 15px; padding: 0; background: none; }
body.nd-site #page-container .nd-form .et_pb_contact { padding: 0; }
body.nd-site #page-container .nd-form form.et_pb_contact_form { margin: 0; padding: 0; }
body.nd-site #page-container .nd-form .et-pb-contact-message { margin: 0 0 10px; padding: 5px 0; color: #73b54a; font: 14px/28px 'open_sansregular', Arial, sans-serif; }
body.nd-site #page-container .nd-form .et-pb-contact-message ul, body.nd-site #page-container .nd-form .et-pb-contact-message p { margin: 0; padding: 0; color: inherit; }
body.nd-site #page-container .nd-form p.et_pb_contact_field { display: flex; align-items: flex-start; width: 100%; margin: 0; padding: 0; float: none; background: none; }
body.nd-site #page-container .nd-form .et_pb_contact_form_label { display: block; box-sizing: border-box; min-width: 195px; width: 195px; padding: 5px 15px 5px 5px; margin: 0; font: 14px/28px 'open_sanssemibold', Arial, Helvetica, sans-serif; color: #ffffff; text-align: left; }
body.nd-site #page-container .nd-form p.et_pb_contact_field:has(> [data-required_mark="required"]) { background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) 195px 10px no-repeat; }
body.nd-site #page-container .nd-form p.et_pb_contact_field > .input, body.nd-site #page-container .nd-form p.et_pb_contact_field > select,
body.nd-site #page-container .nd-form p.et_pb_contact_field > textarea { margin: 0 5px 0 15px; padding: 3px 5px 4px 5px; width: 412px; max-width: none; height: auto; line-height: 20px; font: 13px 'open_sansregular', Arial, Helvetica, sans-serif; color: #bbbbbb; background: #555555 top repeat-x url(/wp-content/uploads/ilaunch/skin/input-bg.png); border: 1px solid #1d1d1d; border-radius: 3px; box-shadow: 0 1px 0 rgba(255,255,255,0.15); -webkit-appearance: none; appearance: none; }
body.nd-site #page-container .nd-form p.et_pb_contact_field > select.input { background: #4a4a4a top repeat-x url(/wp-content/uploads/ilaunch/skin/select-bg.png); color: #ffffff; padding: 3px 4px; width: auto; min-width: 0; -webkit-appearance: menulist; appearance: menulist; }
body.nd-site #page-container .nd-form p.et_pb_contact_field > textarea.input { height: 99px; }
body.nd-site #page-container .nd-form .et_pb_contact_field_options_wrapper { margin: 5px 5px 5px 15px; width: 400px; color: #979797; font: 13px/28px 'open_sansregular', Arial, sans-serif; }
body.nd-site #page-container .nd-form .et_pb_contact_field_options_title { display: none; }
body.nd-site #page-container .nd-form .et_pb_contact_field_checkbox label { display: block; color: #979797; line-height: 20px; }
body.nd-site #page-container .nd-form .et_pb_contact_field_checkbox input[type=checkbox] { display: inline-block; width: auto; margin: 0 6px 0 0; }
body.nd-site #page-container .nd-form .et_pb_contact_field_checkbox label i { display: none; }
body.nd-site #page-container .nd-form .et_contact_bottom_container { float: none; display: block; margin: 0; padding: 5px 0 0 195px; text-align: left; }
body.nd-site #page-container .nd-form .et_pb_contact_right { display: block; float: none; margin: 0 0 0 15px; text-align: left; }
body.nd-site #page-container .nd-form .et_pb_contact_right p.clearfix { margin: 0 0 5px; padding: 0; font: 13px/28px 'open_sansregular', Arial, sans-serif; color: #bbbbbb; text-align: left; }
body.nd-site #page-container .nd-form .et_pb_contact_captcha_question { color: #bbbbbb; }
body.nd-site #page-container .nd-form input.et_pb_contact_captcha { width: 40px; max-width: 40px; margin: 0 0 0 10px; padding: 3px 5px 4px; background: #555555 top repeat-x url(/wp-content/uploads/ilaunch/skin/input-bg.png); color: #bbbbbb; border: 1px solid #1d1d1d; border-radius: 3px; display: inline-block; }
body.nd-site #page-container .nd-form button.et_pb_contact_submit.et_pb_button { display: inline-block; float: none; width: auto; margin: 5px 0 5px 15px !important; padding: 7px 22px !important;
  background: #75b64d linear-gradient(to bottom, #75b64d 0%, #58a032 100%) !important; font: 18px normal 'AdventorMedium', Arial, Helvetica, sans-serif !important; line-height: normal !important; color: #ffffff !important; text-decoration: none; text-transform: uppercase;
  text-shadow: 0 -1px 0 rgba(0,0,0,0.25); border: 0 !important; border-radius: 0 !important; box-shadow: inset 0 1px #9acc64, 0 1px 2px rgba(0,0,0,0.25); cursor: pointer; letter-spacing: 0; }
body.nd-site #page-container .nd-form button.et_pb_contact_submit.et_pb_button:hover { background: #78c549 !important; padding: 7px 22px !important; }
body.nd-site #page-container .nd-form button.et_pb_contact_submit.et_pb_button::after { display: none !important; }
body.nd-site #page-container .nd-required { margin: 0 0 0 195px; padding: 0 0 0 15px; color: #bbbbbb; font: 13px/22px 'open_sansregular', Arial, sans-serif; background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) 0 4px no-repeat; clear: both; }
/* the right-hand column forms (testimonials) stack label over field, 320px wide, as live's .right .form */
body.nd-site #page-container .right .nd-form p.et_pb_contact_field { display: block; background-position: 0 0; }
body.nd-site #page-container .right .nd-form p.et_pb_contact_field:has(> [data-required_mark="required"]) { background: none; }
body.nd-site #page-container .right .nd-form .et_pb_contact_form_label { width: auto; min-width: 0; padding: 5px 5px 0; }
body.nd-site #page-container .right .nd-form p.et_pb_contact_field > .input, body.nd-site #page-container .right .nd-form p.et_pb_contact_field > textarea { width: 332px; margin-left: 15px; }
body.nd-site #page-container .right .nd-form .et_contact_bottom_container { padding-left: 15px; }
body.nd-site #page-container .right .nd-form .et_pb_contact_right { margin-left: 0; }
body.nd-site #page-container .right .nd-form button.et_pb_contact_submit.et_pb_button { margin-left: 0 !important; }
body.nd-site #page-container .right .nd-required { margin-left: 0; }
body.nd-site #page-container .nd-form .input::placeholder, body.nd-site #page-container .nd-form textarea::placeholder { color: transparent; opacity: 0; }
body.nd-site #page-container .nd-form p.et_pb_contact_field:has(> select)::after, body.nd-site #page-container .nd-form p.et_pb_contact_field::before { display: none; }

/* 13. Live is XHTML 1.0 Transitional (almost-standards mode): an image alone on its line box takes no strut gap underneath. The HTML5 doctype Divi
       prints keeps that 5px gap (+5px per gallery row: 8,279px gallery page grew 110px). Bottom-align the images that sit alone in a block. */
body.nd-site #page-container .gallery .thumb a > img, body.nd-site #page-container .featureimage > img, body.nd-site #page-container .homefeature > img,
body.nd-site #page-container .banner a > img, body.nd-site #page-container div.image a > img, body.nd-site #page-container .contentimage > img { vertical-align: bottom; }

/* 14. On live the main menu's second row (#menu, floated) hangs 20px below the fixed 154px #header into the #feature band, and the band's inline image
       cannot sit beside that float, so its line box drops below it: every feature/hero image starts 20px lower than its band (the image overhangs the
       band by 20px, as on live). Divi's column encloses the float, so the same shift is written out here. */
body.nd-site #page-container .featureimage > img, body.nd-site #page-container .homefeature > img { margin-top: 20px; }

/* 15. Same almost-standards line-box quirk for images alone in a paragraph or inline wrapper (<p><strong><em><img></em></strong></p>). */
body.nd-site #page-container #content :is(p, strong, em, span, a, td, div, h1, h2, h3, h4, h5, h6) > img:only-child { vertical-align: bottom; }

/* 16. Headings live's CSS never styles take the browser defaults there (h5, h6); Divi gives them its own size, weight, line-height and padding. */
body.nd-site #page-container h5 { font-size: 0.83em; margin: 1.67em 0; font-weight: bold; line-height: inherit; padding: 0; color: inherit; }
body.nd-site #page-container h6 { font-size: 0.67em; margin: 2.33em 0; font-weight: bold; line-height: inherit; padding: 0; color: inherit; }

/* 17. Keyless map (kit port_maps.py): live's micromap.js shows the location's info window over its map; with the embed the "Get Directions" box is a
       plain overlay pinned over the lower edge of the embed. */
body.nd-site #page-container .map-wrapper .map-info { display: block; position: absolute; left: 50%; bottom: 54px; 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; }

/* 18. Form details: the agree tick box sits inline before its sentence (live: a bare checkbox in a table cell); the rewards form's date and postcode boxes are 150px wide. */
body.nd-site #page-container .nd-form .et_pb_contact_field_options_wrapper .et_pb_contact_field_checkbox { display: block; }
body.nd-site #page-container .nd-form .et_pb_contact_field_checkbox input[type=checkbox] { display: inline-block; width: auto; height: auto; margin: 3px 3px 3px 4px; padding: 0; background: none; border: 0; box-shadow: none; -webkit-appearance: checkbox; appearance: auto; vertical-align: baseline; }
body.nd-site #page-container .nd-form .et_pb_contact_field_checkbox label { display: inline; line-height: 28px; vertical-align: baseline; }
body.nd-site #page-container .nd-form-rewards .et_pb_contact_field_options_wrapper { width: 412px; margin: 0 5px 0 15px; }
body.nd-site #page-container .nd-form-rewards p[data-id="date_of_birth"] > .input, body.nd-site #page-container .nd-form-rewards p[data-id="postcode"] > .input { width: 162px; }
body.nd-site #page-container .nd-form-rewards p[data-id="date_of_birth"] > img.ui-datepicker-trigger { margin: 9px 0 0 5px; vertical-align: top; }
/* the datepicker plugin wraps the date input and its icon in span.datepicker_wrap */
body.nd-site #page-container .nd-form .datepicker_wrap { display: flex; align-items: flex-start; }
body.nd-site #page-container .nd-form .datepicker_wrap > input.input { margin: 5px 5px 5px 15px; padding: 3px 5px 4px 5px; width: 162px; max-width: none; height: auto; line-height: 20px; font: 13px 'open_sansregular', Arial, Helvetica, sans-serif; color: #bbbbbb; background: #555555 top repeat-x url(/wp-content/uploads/ilaunch/skin/input-bg.png); border: 1px solid #1d1d1d; border-radius: 3px; box-shadow: 0 1px 0 rgba(255,255,255,0.15); -webkit-appearance: none; appearance: none; }
body.nd-site #page-container .nd-form .datepicker_wrap > img.datepicker_trigger { margin: 9px 0 0 0; vertical-align: top; }

/* 19. Stage 4 desktop match (1170 and up): Divi sets body font-weight 500, live inherits normal; the form rows start where live's table rows do. */
body.nd-site { font-weight: 400; }
body.nd-site #page-container .nd-form textarea.input, body.nd-site #page-container .nd-form p.et_pb_contact_field > textarea { min-height: 0; }

/* 20. Stage 4 form fit to live's table rows (1170 and up): no empty message strip, live's 5px cell padding above the first row, the captcha row as tall as live's
       reCAPTCHA box (78px + 10px either side), the submit button live's 106x37, the redemption label column 218px, the testimonial rows 75px apart. */
body.nd-site #page-container .nd-form { margin: 15px 0; padding-top: 5px; }
body.nd-site #page-container .nd-form .et-pb-contact-message:empty { display: none; }
body.nd-site #page-container .nd-form .et_pb_contact_right { margin: 10px 0 10px 15px; min-height: 78px; }
body.nd-site #page-container .nd-form .et_contact_bottom_container { padding-top: 0; }
body.nd-site #page-container .nd-form button.et_pb_contact_submit.et_pb_button { font-family: 'AdventorMedium', Arial, Helvetica, sans-serif !important; font-size: 18px !important; font-weight: normal !important; line-height: 23px !important; height: 37px; box-sizing: border-box; padding: 7px 22px !important; }
body.nd-site #page-container .nd-form-redemption .et_pb_contact_form_label { width: 218px; min-width: 218px; }
body.nd-site #page-container .nd-form-redemption .nd-required { margin-left: 218px; }
body.nd-site #page-container .nd-form-redemption .et_contact_bottom_container { padding-left: 195px; }
body.nd-site #page-container .right .nd-form p.et_pb_contact_field { margin-bottom: 15px; }

/* 21. Stage 4: a paragraph holding only a "Read More" inline-block keeps the 16px box live's line gives it (the HTML5 line box added 4px under each). */
body.nd-site #page-container p:has(> a.more:only-child) { line-height: 16px; }

/* 22. Stage 4: <small> keeps the browser's "smaller" (Divi resets it to inherit); live's empty reCAPTCHA slot is kept as a 78px gap on the ticket pages that have no
       Divi form (live shows reCAPTCHA's "Invalid site key" box there); the Required note sits in live's row; the "Area" row of the redemption form starts hidden (live hides it by script). */
body.nd-site #page-container small { font-size: smaller; }
body.nd-site #page-container .g-recaptcha:empty { min-height: 78px; }
body.nd-site #page-container .nd-form .nd-required { margin-top: -14px; line-height: 38px; }
body.nd-site #page-container .nd-form ~ .terms { margin-top: 15px; }

/* 23. Stage 4: the keyless map's "Get Directions" box is white (ours, live shows Google's own info window): its link is dark green in every state, never white on white. */
body.nd-site #page-container .map-wrapper .map-info a:link, body.nd-site #page-container .map-wrapper .map-info a:visited, body.nd-site #page-container .map-wrapper .map-info a:active, body.nd-site #page-container .map-wrapper .map-info a:focus { color: #1d5a0a; text-decoration: underline; }
body.nd-site #page-container .map-wrapper .map-info a:hover { color: #0b3a02; text-decoration: underline; }

/* 24. 3.18 fix round 1 (A4 to A7, B1 to B5): details the independent check found at 1250 and up (all measured against live, same browser, same width). */
/* A4/B3: the datepicker plugin wraps the date input, so the required star and the field top follow the wrapper too; the input sits at the row top like every other field */
body.nd-site #page-container .nd-form p.et_pb_contact_field:has(> .datepicker_wrap > [data-required_mark="required"]) { background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) 195px 10px no-repeat; }
body.nd-site #page-container .nd-form .datepicker_wrap > input.input { margin: 0 2px 11px 15px; }
body.nd-site #page-container .nd-form .datepicker_wrap > img.datepicker_trigger { margin: 7px 0 0 0; }
body.nd-site #page-container .nd-form-rewards .et_pb_contact_right { margin-top: 5px; }
/* A4: the testimonial form (right-hand column) stacks the label over the field like live's .right .form: the star sits 10px below the field top, which is 43px down (th row 38px + cell padding 5px) */
body.nd-site #page-container .right .nd-form p.et_pb_contact_field:has(> [data-required_mark="required"]) { background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) 0 53px no-repeat; }
body.nd-site #page-container .right .nd-form .et_pb_contact_form_label { padding: 5px 5px 5px; }
body.nd-site #page-container .right .nd-form p.et_pb_contact_field { margin-bottom: 10px; }
/* A5: the footer phone is a tel: link; the browser-default 5px side margin live's CSS gives vcard links must not widen the line */
body.nd-site #page-container .vcard a.tel-link { margin: 0; }
/* A6: Divi sets list-style-position inside on lists; live's numbered lists hang their numbers outside the text */
body.nd-site #page-container #content ol { list-style-position: outside; }
/* B1: the tag cloud's 10px links sit on the 13px line like live's (the HTML5 strut made each wrapped line 1px taller) */
body.nd-site #page-container .panel .text a { vertical-align: text-top; }
/* B5: the Get Directions link colour (white card): live's own is Google's orange at 1250 and up; below 1250 the dark green above stays (AA) */
@media (min-width: 1250px) {
  body.nd-site #page-container .map-wrapper .map-info a:link, body.nd-site #page-container .map-wrapper .map-info a:visited, body.nd-site #page-container .map-wrapper .map-info a:active, body.nd-site #page-container .map-wrapper .map-info a:focus { color: #da6100; }
  /* A7: live's Facebook frame keeps the browser's 2px inset border (frameborder=1); Divi's reset removed it */
  body.nd-site #page-container iframe[frameborder="1"] { border: 2px inset; }
}
/* B2: live's stray feature-image file link sits 20px lower (the floated menu row pushes the first line down, as it does the feature images) */
@media (min-width: 1170px) {
  body.nd-site #page-container .featureimage > a:not(:has(img)) { position: relative; top: 20px; }
}
/* B3: a form that ends in a textarea has its submit button 10px under the captcha box like live's table rows (the 5px button margin made it 15px) */
body.nd-site #page-container .nd-form-contact .et_pb_contact_right, body.nd-site #page-container .nd-form-testimonial .et_pb_contact_right { margin-bottom: 5px; }
/* B3 (redemption): live's line holding only the small "Enquiries - info@" text is 16px tall (almost-standards line box without the 20px strut); the HTML5 line made it 20px and pushed the form 4px down */
body.nd-site #page-container p:has(> em.smalltext:only-child) { font-size: 11px; line-height: 16px; margin-bottom: 13px; }
/* B4: the unsubscribe form is live's table with default 2px cell spacing (field 4px right and 2px down) and no captcha or legend: button 40px under the field */
body.nd-site #page-container .nd-form-unsubscribe { padding: 7px 0 0 4px; }
body.nd-site #page-container .nd-form-unsubscribe .et_contact_bottom_container { margin-top: -3px; }
body.nd-site #page-container .nd-form-unsubscribe { margin-bottom: 14px; }
/* 3.18 fix 1 (label offset): live's label text sits 4px under the field top (th and td share a row with 5px cell padding); ours sat 9px, 5px low on every form at 1170 and up */
@media (min-width: 1170px) {
  body.nd-site #page-container .nd-form p.et_pb_contact_field > .et_pb_contact_form_label { position: relative; top: -5px; }
}
/* 3.18 fix 1: the "Required fields" line sits where live's table cell draws it (text 7px higher), the form block keeps its height */
@media (min-width: 1170px) {
  body.nd-site #page-container .nd-form ~ .nd-required { margin-top: -7px; padding-bottom: 7px; }
  body.nd-site #page-container .nd-form-contact ~ .nd-required, body.nd-site #page-container .nd-form-rewards ~ .nd-required { padding-bottom: 8px; }
}

/* 3.18 fix round 2 (B3r, B6), 1170 and up */
@media (min-width: 1170px) {
  /* B3r: the testimonials stars sit 5px higher (the label now ends 5px earlier, so the field top and the star moved with it) */
  body.nd-site #page-container .right .nd-form p.et_pb_contact_field:has(> [data-required_mark="required"]) { background-position: 0 48px; }
  /* B6: the redemption form's label column is 218px wide, so its stars sit 23px further right; and live's form block ends 11px lower before the photos (legend cell 38px, then 15px) */
  body.nd-site #page-container .nd-form-redemption p.et_pb_contact_field:has(> [data-required_mark="required"]) { background-position: 218px 10px; }
  body.nd-site #page-container .nd-form-redemption ~ .nd-required { padding-bottom: 8px; margin-bottom: 15px; }
}

/* 3.18 fix round 3 (B7): the star in the "Required fields" line sits 7px into the line box (live's td draws it 15px down in a 28px line; ours was 4px, 3px high) */
@media (min-width: 1170px) {
  body.nd-site #page-container .nd-required { background-position: 0 7px; }
}
