/* rw-design.css - Royal Woods Resort DESKTOP parity layer (Stage 4). Loads after rw-bundle.css + rw-live.css (live's CSS,
   scoped under body.rw-site #page-container) and before rw-mobile.css. Every rule undoes something Divi adds that live iLaunch
   never had. Adapted from kit ilaunch-divi-parity.template.css ($B = body.rw-site, $P = body.rw-site #page-container, $H = body.rw-site.rw-home #page-container, $SC = rw). */

/* 1. Live iLaunch CSS assumes the browser default content-box; Divi sets * {box-sizing:border-box}. Divi's own contact-form module keeps border-box. */
body.rw-site #page-container, body.rw-site #page-container *, body.rw-site #page-container *::before, body.rw-site #page-container *::after { box-sizing: content-box; }
body.rw-site #page-container .et_pb_contact_form_container, body.rw-site #page-container .et_pb_contact_form_container * { box-sizing: border-box; }
/* form controls the browser sizes as border-box by default */
body.rw-site #page-container select, body.rw-site #page-container button,
body.rw-site #page-container input[type=submit], body.rw-site #page-container input[type=button], body.rw-site #page-container input[type=reset], body.rw-site #page-container input[type=image] { box-sizing: border-box; }

/* 2. Divi caps .container at 80% / 1080px; live's .container is a fixed 1170px (the footer's inner .container is 1585px). */
body.rw-site #page-container .container { max-width: none; }

/* 3. Browser-default spacing the live CSS relies on, which Divi's reset removes. No ids in these selectors, so every live rule
      (body.rw-site #page-container ...) still wins where live sets its own value. */
body.rw-site :where(.et-l, #main-content) p { padding-bottom: 0; margin-bottom: 1em; }
body.rw-site :where(.et-l, #main-content) ul, body.rw-site :where(.et-l, #main-content) ol { padding: 0 0 0 40px; margin: 1em 0; line-height: inherit; list-style-position: outside; }
body.rw-site :where(.et-l, #main-content) ul { list-style-type: disc; }
body.rw-site :where(.et-l, #main-content) ol { list-style-type: decimal; }
body.rw-site :where(.et-l, #main-content) :is(ul, ol) :is(ul, ol) { margin-top: 0; margin-bottom: 0; }
body.rw-site :where(.et-l, #main-content) ul ul { list-style-type: circle; }
/* live styles h1-h4 fully and h5 only partly; Divi's h1-h6 {color:#333; line-height:1em; font-size} must not show through on h5/h6 */
body.rw-site :where(.et-l, #main-content) h5 { font-size: 0.83em; color: inherit; line-height: inherit; }
body.rw-site :where(.et-l, #main-content) h6 { font-size: 0.67em; margin: 2.33em 0; font-weight: bold; color: inherit; line-height: inherit; }
body.rw-site :where(.et-l, #main-content) :is(h1, h2, h3, h4, h5, h6) { padding-bottom: 0; }
/* browser default is bolder (relative to the parent): live's 300-weight home line has 400 strong text, a 700 credit line has 900 */
body.rw-site :where(.et-l, #main-content) strong, body.rw-site :where(.et-l, #main-content) b { font-weight: bolder; }
/* Divi colours every <a> #2ea3f2; on live an anchor without href (gallery name anchors, widget shells) inherits its text colour */
body.rw-site :where(#page-container) a:not([href]) { color: inherit; }
/* live's .socialwidgets holds the dead Google +1 / Facebook Like widgets, which still take one 22px line (33px with padding
   and rule); the port's block is empty, so the line is reproduced */
body.rw-site #page-container .socialwidgets { min-height: 22px; }

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

/* 5. Divi's right-sidebar layout rule (#main-content .container::before) and its 58px top padding are not on live. */
body.rw-site #main-content .container::before { display: none; }

/* 6. Divi's content-table look is not on live: browser defaults, honouring width/cellpadding attributes. */
body.rw-site :where(.et-l, #main-content) table:not(.variations) { border: 0; margin: 0; width: auto; text-align: start; border-collapse: separate; }
body.rw-site :where(.et-l, #main-content) table[width="100%"]:not(.variations) { width: 100%; }
body.rw-site :where(.et-l, #main-content) tr td, body.rw-site :where(.et-l, #main-content) tr th { border-top: 0; padding: 1px; }
body.rw-site :where(.et-l, #main-content) table[cellpadding="0"] tr td, body.rw-site :where(.et-l, #main-content) table[cellpadding="0"] tr th { padding: 0; }

/* 7. Divi draws a 5px rule down the left of every blockquote; live's blockquote is the quote-icon look (reviews). */
body.rw-site :where(.et-l, #main-content) blockquote { border-left: 0; }

/* 7b. Live wraps the WHOLE page (header, hero, content, footer) in #container-outer-bg (white, purple fade outer-bg.png across
       the top) > #container-outer (1194px + 12px padding, centred, center-shadow.png at its top). The header fragment can only
       wrap header + hero, so the two backgrounds are painted once on Divi's #et-boc (same top-centre positions as live) and the
       main area + footer get #container-outer's width. The inner wrappers keep their stacking but no longer paint (no double shadow). */
body.rw-site #et-boc { background: url(/wp-content/uploads/ilaunch/skin/center-shadow.png) top center no-repeat, url(/wp-content/uploads/ilaunch/skin/outer-bg.png) top center repeat-x #ffffff; }
body.rw-site #page-container #container-outer-bg, body.rw-site #page-container #container-outer { background: none; }
body.rw-site #et-main-area { width: 1194px; padding: 0 12px; margin: 0 auto; }
/* Divi paints #main-content white; on live the 12px strips beside the content show the purple fade (blog post and archive views) */
body.rw-site #main-content { background-color: transparent; }

/* 8. Phone menu button (header fragment; never shown at desktop widths). */
body.rw-site #page-container .ils-menu-toggle { display: none; }

/* 9. Keyless Google Maps embed in place of live's micromap block (kit port_maps.py --css, prefix rw). */
body.rw-site #page-container .map-wrapper { position: relative; }
body.rw-site #page-container .map-container iframe.ils-map { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; }
body.rw-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; }
/* the info box is ours (live's own map is broken): its Get Directions link was live's gold hover on white, 2.08:1 (Stage 3b) */
body.rw-site #page-container .map-wrapper .map-info a:is(:hover, :focus, :active) { color: #000000; }

/* 10. Contact form (/contact) and review form (/testimonials): Divi's contact-form module dressed as live's table.form (a
       6-column table, border-spacing 0 15px): label | field | label | field | label | field on row 1, the message box across
       three columns with "Verification" beside it on row 2, then the SUBMIT button right-aligned with "Required fields" under
       it. Column widths are live's own (auto table layout), to Chrome's 1/64px: contact 90.296875/242/129.953125/242/101.71875/
       324.03125, review 96.90625/242/128.578125/242/96.484375/324.03125 (fix round 1, 3.18 B2: rounded to whole pixels, the review
       form's Location box painted 1px right of live's; measured with fix-round-1-evidence/tools/form_cols.js).
       Each field's <p> is a subgrid over its label + field columns, so live's required star (td.required background at
       right 7px) is the <p>'s background at the same place. Live's reCAPTCHA key belongs to iLaunch's account, so Divi's
       maths captcha sits in the Verification cell (DELIBERATE). */
body.rw-site #page-container .rw-contact-form { --rw-c1: 90.296875px; --rw-c3: 129.953125px; --rw-c5: 101.71875px; margin: 0; padding: 0; width: auto; max-width: none; }
body.rw-site #page-container .rw-contact-form:has([data-id="location"]) { --rw-c1: 96.90625px; --rw-c3: 128.578125px; --rw-c5: 96.484375px; }
body.rw-site #page-container .rw-contact-form .et-pb-contact-message:empty { display: none; }
body.rw-site #page-container .rw-contact-form .et_pb_contact { padding: 0; margin: 0; }
body.rw-site #page-container .rw-contact-form form.et_pb_contact_form {
  display: grid; grid-template-columns: var(--rw-c1) 242px var(--rw-c3) 242px var(--rw-c5) 324.03125px; row-gap: 15px; align-items: start;
  margin: 15px 0 0 0; padding: 15px 0 0 0; }
body.rw-site #page-container .rw-contact-form form.et_pb_contact_form::before, body.rw-site #page-container .rw-contact-form form.et_pb_contact_form::after { display: none; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field {
  display: grid; grid-column: span 2; grid-template-columns: subgrid; align-items: start; float: none; width: auto; margin: 0; padding: 0; clear: none; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field[data-type="text"] { grid-column: span 4; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field:has(> [data-required_mark="required"]) { background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) no-repeat right 7px; }
body.rw-site #page-container .rw-contact-form .et_pb_contact_form_label {
  display: block; grid-column: 1; margin: 0; padding: 0 10px; font: 700 16px/40px 'PT Sans', Arial, Helvetica, sans-serif; letter-spacing: -1px; color: #444444; text-align: left; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field .input {
  grid-column: 2 / -1; justify-self: start; display: inline-block; box-sizing: content-box; width: 190px; height: auto; min-height: 0; margin: 0; padding: 11px 15px;
  border: 1px solid #cecece; border-radius: 0; background: #ffffff; font: 400 15px/normal 'PT Sans', Arial, Helvetica, sans-serif; color: #666666; box-shadow: none; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field textarea.input { display: block; width: 560px; height: 85px; }
body.rw-site #page-container .rw-contact-form p.et_pb_contact_field .input::placeholder { color: transparent; }
body.rw-site #page-container .rw-contact-form .input.et_contact_error { border-color: #e02b20; }
body.rw-site #page-container .rw-contact-form .et_contact_bottom_container, body.rw-site #page-container .rw-contact-form .et_pb_contact_right { display: contents; }
/* verification cell: label column + field column */
body.rw-site #page-container .rw-contact-form .et_pb_contact_right p.clearfix {
  grid-column: 5 / 7; position: relative; display: block; float: none; margin: 0; padding: 0 0 0 var(--rw-c5); min-height: 78px; text-align: left;
  font: 400 15px/41px 'PT Sans', Arial, Helvetica, sans-serif; color: #444444; }
body.rw-site #page-container .rw-contact-form .et_pb_contact_right p.clearfix::before {
  content: "Verification"; position: absolute; left: 0; top: 0; padding: 0 10px; font: 700 16px/40px 'PT Sans', Arial, Helvetica, sans-serif; letter-spacing: -1px; color: #444444; }
body.rw-site #page-container .rw-contact-form .et_pb_contact_captcha_question { font: inherit; color: inherit; }
body.rw-site #page-container .rw-contact-form input.et_pb_contact_captcha {
  display: inline-block; box-sizing: content-box; width: 40px; height: auto; margin: 0 0 0 10px; padding: 11px 15px; border: 1px solid #cecece; border-radius: 0; background: #ffffff;
  font: 400 15px/normal 'PT Sans', Arial, Helvetica, sans-serif; color: #666666; vertical-align: top; box-shadow: none; }
body.rw-site #page-container .rw-contact-form input.et_pb_contact_captcha.et_contact_error { border-color: #e02b20; }
/* submit: live input.button inside .form (190 x 40, 11px 15px, #e7aa18, 700 18px/18px uppercase; hover #474f98) */
body.rw-site #page-container .et_pb_section .rw-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_button {
  grid-column: 1 / -1; justify-self: end; display: block; box-sizing: border-box; width: 190px; height: 40px; margin: 0 20px 0 0 !important; padding: 11px 15px !important; border: 0 !important; border-radius: 0 !important;
  background: #e7aa18 !important; color: #ffffff !important; font: 700 18px/18px 'PT Sans', Arial, Helvetica, sans-serif !important; text-transform: uppercase; letter-spacing: 0 !important; text-align: center; cursor: pointer; transition: all 1s; }
body.rw-site #page-container .et_pb_section .rw-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_button:hover { background: #474f98 !important; color: #ffffff !important; padding: 11px 15px !important; }
body.rw-site #page-container .et_pb_section .rw-contact-form.et_pb_contact_form_container.et_pb_module .et_pb_button::after { display: none !important; }
/* "Required fields": live em.required, block, 11px/22px, right aligned 20px inside the cell, the star 16px at its right */
body.rw-site #page-container .content .container p.ils-required-note { margin: 0 0 30px 0; padding: 0 20px 0 0; text-align: right; font-size: 15px; line-height: 22px; }
body.rw-site #page-container .content p.ils-required-note em.required {
  display: block; padding-right: 20px; font-size: 11px; font-style: normal; line-height: 22px; color: #444444; background: url(/wp-content/uploads/ilaunch/skin/icon-required.png) no-repeat right center; }
/* fix round 1 (3.18 B4/C5): Divi replaces a sent form with its thank-you line; the "Required fields" note under it then referred to
   nothing (live prints the note only inside its form). Hidden once the form is gone; an empty or refused submit keeps both. */
body.rw-site #page-container .rw-contact-form.et_pb_contact_form_container:not(:has(form)) ~ p.ils-required-note { display: none; }

/* 11. Content tables: live honours width="500" on the contact details tables */
body.rw-site :where(.et-l, #main-content) table[width="500"] { width: 500px; }
/* 12. The TripAdvisor widget's own stylesheet colours its links #002b11 on live; the scoped port of live's a:link outranked it */
body.rw-site #page-container #CDSSCROLLINGRAVE a:is(:link, :visited, :hover, :active) { color: #002b11; }

/* 13. The booking calendar is appended to <body> (outside #page-container), so the port's #page-container-scoped copies of
       live's calendar table rules (bundle.css .datepicker) and of live's global td / select rules never reached it: the
       month grid was 125px wide with 14px left-aligned digits and native select arrows. Live's rules, unscoped. */
/* Divi's global border-box also reached it (the 1.3em month header lost its 8px padding): live sizes it content-box */
body.rw-site #datepicker_div, body.rw-site #datepicker_div * { box-sizing: content-box; }
body.rw-site #datepicker_div table.datepicker { clear: both; float: left; width: 100%; color: #ffffff; background: #cccccc; text-align: center; font-size: 100%; border-collapse: separate; border-spacing: 0; }
body.rw-site #datepicker_div table.datepicker a { display: block; width: 100%; }
body.rw-site #datepicker_div table.datepicker :is(th, td) { font-family: 'PT Sans', Arial, Helvetica, sans-serif; font-size: 15px; font-weight: 400; line-height: 22px; vertical-align: top; }
body.rw-site #datepicker_div .datepicker_titleRow td { color: #444444; }
body.rw-site #datepicker_div select { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; font-family: 'PT Sans', Arial, Helvetica, sans-serif; font-size: 13px; }

/* 14. Google's "Select Language" link is black on live (Google's gadget CSS); the scoped port of live's a:link turned it purple */
body.rw-site #page-container #translate-widget .goog-te-gadget-simple a:is(:link, :visited, :hover, :active) { color: #000000; }

/* 15. Phone numbers (Stage 3b, kit rule of 2026-10-07): live shows them as plain text, which iOS Safari turns into its
       own links in its own colours (unreadable on the dark footer). The phone number (never the fax) is an explicit tel: link that
       keeps the surrounding text exactly, in every state and at every width; ilaunch-site.php emits format-detection telephone=no. */
body.rw-site #page-container a.tel-link, body.rw-site #page-container a.tel-link:is(:link, :visited, :hover, :active, :focus),
body.rw-site a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font: inherit; }

/* 16. Keyboard focus ring (Stage 3b, coordinator item from an independent re-check of a sister site): Divi's reset (a, abbr, ... { outline: 0 }
       and :focus { outline: 0 }) removed the browser's focus ring from every link, field and button, so a keyboard visitor could
       not see where they were. Live shows the browser's own ring (outline: auto 1px) on every tab stop except its selects (the
       port's select rule keeps them ring-less from 1250 up, as live). :focus-visible = keyboard only; a mouse click or tap shows nothing. */
body.rw-site :focus-visible { outline: 1px auto Highlight; outline: 1px auto -webkit-focus-ring-color; }

/* 17. Photo pop-up stacking at every width (fix round 1, 3.18 B1, MAJOR). Live's #footer (z-index 9999) sits inside #container-outer
       (position relative, z-index 2), so fancybox (overlay 1100, frame 1101, appended to <body>) covers it. Here #container-outer
       wraps only the header and hero (rule 7b), so from 1250 up the footer painted over an open photo whenever it was on screen
       (35 to 37% of the frame) and a click on it did not close the photo. Fancybox now sits above it at every width (below 1250
       this was already the case; that rule moved here from rw-mobile.css). Nothing changes until a photo is opened. */
body.rw-site #fancybox-overlay { z-index: 100010 !important; }
body.rw-site #fancybox-wrap { z-index: 100011 !important; }
body.rw-site #fancybox-loading { z-index: 100014 !important; }
