/* ==========================================================================
   Contact page (801). Scoped to body.eg-contact.
   Cards carry their own border and sit in a normal gap — never a 1px grid gap
   over a lighter background, which exposes empty cells on a short final row.
   ========================================================================== */
body.eg-contact {
  --eg-bg:#0A0A0A; --eg-panel:#111; --eg-panel-2:#151515;
  --eg-line:rgba(255,255,255,.10); --eg-line-2:rgba(255,255,255,.18);
  --eg-ink:#FFF; --eg-body:#C9C9C9; --eg-mute:#8E8E8E; --eg-lime:#BDFF3E;
}
body.eg-contact,
body.eg-contact #main, body.eg-contact #main-content,
body.eg-contact .site-main, body.eg-contact .page-content { background: var(--eg-bg) !important; }
body.eg-contact #main .elementor-section,
body.eg-contact #main .elementor-container,
body.eg-contact #main .elementor-column,
body.eg-contact #main .elementor-widget-wrap { background-color: transparent !important; }
body.eg-contact { overflow-x: hidden; }
body.eg-contact #main img { max-width: 100%; height: auto; }

body.eg-contact #main h1, body.eg-contact #main h2, body.eg-contact #main h3,
body.eg-contact #main h4, body.eg-contact #main .elementor-heading-title,
body.eg-contact #main .dbl-title, body.eg-contact #main .dbl__title { color: var(--eg-ink) !important; }
body.eg-contact #main p, body.eg-contact #main li,
body.eg-contact #main .elementor-widget-text-editor { color: var(--eg-body) !important; }
body.eg-contact #main .dbl__subtitle {
  color: var(--eg-lime) !important; background: transparent !important;
  letter-spacing:.22em; text-transform:uppercase; font-size:11px !important; font-weight:700;
}
body.eg-contact #main .dbl__subtitle:after, body.eg-contact #main .dbl__subtitle:before { display:none !important; }
body.eg-contact #main, body.eg-contact #main div, body.eg-contact #main span,
body.eg-contact #main label, body.eg-contact #main strong { color: var(--eg-body); }
body.eg-contact #main a { color: var(--eg-lime); }

body.eg-contact .eg-ct-eyebrow {
  color: var(--eg-lime) !important; font-size:11px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; margin:0 0 14px !important;
}

/* ---- ways to reach us ---- */
body.eg-contact .eg-ct-ways { padding: 6px 0 12px; }
body.eg-contact .eg-ct-ways__head { max-width: 780px; margin-bottom: 34px; }
body.eg-contact .eg-ct-ways__h {
  font-size: 40px !important; line-height: 1.12; letter-spacing: -.018em;
  margin: 0 0 16px !important; color: var(--eg-ink) !important;
}
body.eg-contact .eg-ct-ways__lead { font-size: 16.5px !important; line-height: 1.7; margin: 0 !important; }
body.eg-contact .eg-ct-cards {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 14px;
}
body.eg-contact .eg-ct-card {
  list-style: none !important; margin: 0 !important;
  background: var(--eg-panel); border: 1px solid var(--eg-line);
  border-left: 2px solid var(--eg-lime); padding: 24px 24px 22px;
}
body.eg-contact .eg-ct-card__k {
  font-size: 11px !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: var(--eg-mute) !important; margin: 0 0 10px !important;
}
body.eg-contact .eg-ct-card__v { font-size: 18px !important; line-height: 1.4; margin: 0 0 10px !important; color: var(--eg-ink) !important; }
body.eg-contact .eg-ct-card__v a { color: var(--eg-ink) !important; text-decoration: none !important; transition: color .2s; }
body.eg-contact .eg-ct-card__v a:hover { color: var(--eg-lime) !important; }
body.eg-contact .eg-ct-card__v--hours {
  display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; font-size: 14.5px !important;
}
body.eg-contact .eg-ct-card__v--hours span { color: var(--eg-mute) !important; }
body.eg-contact .eg-ct-card__v--hours strong { color: var(--eg-ink) !important; font-weight: 600; }
body.eg-contact .eg-ct-card__b { font-size: 13.5px !important; line-height: 1.6; color: var(--eg-body) !important; margin: 0 !important; }

/* ---- routing ---- */
body.eg-contact .eg-ct-routes { border-top: 1px solid var(--eg-line); padding-top: 46px; margin-top: 46px; }
body.eg-contact .eg-ct-routes__h {
  font-size: 32px !important; line-height: 1.16; letter-spacing: -.015em; margin: 0 0 26px !important;
}
body.eg-contact .eg-ct-routegrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px;
}
body.eg-contact .eg-ct-route {
  position: relative; display: block; text-decoration: none !important;
  background: var(--eg-panel); border: 1px solid var(--eg-line);
  border-left: 2px solid var(--eg-lime); padding: 26px 26px 24px;
  transition: background .25s, border-color .25s;
}
body.eg-contact .eg-ct-route:hover { background: var(--eg-panel-2); border-color: var(--eg-line-2); border-left-color: var(--eg-lime); }
body.eg-contact .eg-ct-route__t { font-size: 18px !important; color: var(--eg-ink) !important; margin: 0 0 9px !important; }
body.eg-contact .eg-ct-route:hover .eg-ct-route__t { color: var(--eg-lime) !important; }
body.eg-contact .eg-ct-route__b { font-size: 14px !important; line-height: 1.62; color: var(--eg-body) !important; margin: 0 !important; padding-right: 26px; }
body.eg-contact .eg-ct-route__go {
  position: absolute; right: 22px; bottom: 22px; color: var(--eg-lime); font-size: 18px;
  transition: transform .25s;
}
body.eg-contact .eg-ct-route:hover .eg-ct-route__go { transform: translateX(4px); }

/* ---- existing widgets: form, map, info boxes ---- */
body.eg-contact #main .wgl-info-box, body.eg-contact #main .eael-infobox {
  background: var(--eg-panel) !important; border: 1px solid var(--eg-line) !important; border-radius: 0 !important;
}
body.eg-contact #main .wgl-info-box .info-box_title,
body.eg-contact #main .eael-infobox .title { color: var(--eg-ink) !important; }
body.eg-contact #main .eael-infobox p, body.eg-contact #main .eael-infobox a,
body.eg-contact #main .wgl-info-box p { color: var(--eg-body) !important; }
body.eg-contact #main .eael-infobox i, body.eg-contact #main .wgl-info-box i { color: var(--eg-lime) !important; }
body.eg-contact #main .eael-infobox-button, body.eg-contact #main .eael-infobox-button *,
body.eg-contact #main .infobox-button-text { color:#0A0A0A !important; }

body.eg-contact #main .wgl-working-hours,
body.eg-contact #main .wgl-working-hours *,
body.eg-contact #main .working-item_hours { color: var(--eg-body) !important; }
body.eg-contact #main .working-item_day { color: var(--eg-ink) !important; }
body.eg-contact #main .working-item { border-bottom: 1px solid var(--eg-line) !important; padding: 8px 0; }

body.eg-contact #main .wpforms-field-label,
body.eg-contact #main .wpforms-field-sublabel { color: var(--eg-mute) !important; }
body.eg-contact #main .wpforms-field input[type="text"],
body.eg-contact #main .wpforms-field input[type="email"],
body.eg-contact #main .wpforms-field input[type="tel"],
body.eg-contact #main .wpforms-field select,
body.eg-contact #main .wpforms-field textarea {
  background: rgba(255,255,255,.05) !important; border: 1px solid var(--eg-line-2) !important;
  border-radius: 0 !important; color: var(--eg-ink) !important;
}
body.eg-contact #main .wpforms-field input::placeholder,
body.eg-contact #main .wpforms-field textarea::placeholder { color:#6E6E6E !important; }
body.eg-contact #main .wpforms-image-choices-item,
body.eg-contact #main .wpforms-image-choices-item label,
body.eg-contact #main .wpforms-image-choices-item label *,
body.eg-contact #main .wpforms-field-label-inline,
body.eg-contact #main .wpforms-field-label-inline * { color:#EDEDED !important; }
body.eg-contact #main .wpforms-submit {
  background: var(--eg-lime) !important; color:#0A0A0A !important; border:0 !important;
  border-radius:0 !important; font-weight:800 !important; letter-spacing:.16em; text-transform:uppercase;
}
body.eg-contact #main .wpforms-submit:hover { background:#FFF !important; }

/* The map is a genuine asset on a contact page — frame it rather than hide it. */
body.eg-contact #main .elementor-widget-google_maps iframe,
body.eg-contact #main .elementor-custom-embed { border: 1px solid var(--eg-line) !important; filter: saturate(.85) brightness(.92); }

body.eg-contact #main .wgl-button, body.eg-contact #main .wgl-button:after {
  background-color: var(--eg-lime) !important; border-color: var(--eg-lime) !important; border-radius:0 !important;
}
body.eg-contact #main .wgl-button, body.eg-contact #main .wgl-button * { color:#0A0A0A !important; }

@media (max-width: 1024px) { body.eg-contact .eg-ct-ways__h { font-size: 31px !important; } }
@media (max-width: 720px) {
  body.eg-contact .eg-ct-ways__h { font-size: 26px !important; }
  body.eg-contact .eg-ct-routes__h { font-size: 24px !important; }
  body.eg-contact .eg-ct-cards, body.eg-contact .eg-ct-routegrid { grid-template-columns: minmax(0,1fr); }
}

/* ==========================================================================
   Checkbox / radio choices
   Both choice fields were set to image-choice mode with no images on any of
   their thirteen options, so WPForms printed an empty image placeholder per
   option — the source of the huge vertical gaps. Image mode is now off in the
   form config; this styles the ordinary checkboxes that render instead.
   ========================================================================== */
body.eg-contact #main .wpforms-field-checkbox ul,
body.eg-contact #main .wpforms-field-radio ul { margin: 0 !important; padding: 0 !important; }
body.eg-contact #main .wpforms-field-checkbox li,
body.eg-contact #main .wpforms-field-radio li {
  list-style: none !important; margin: 0 0 8px !important; padding: 0 !important;
}
body.eg-contact #main .wpforms-field-checkbox label,
body.eg-contact #main .wpforms-field-radio label {
  display: flex !important; align-items: center; gap: 9px;
  font-size: 14px !important; line-height: 1.35; color: #EDEDED !important;
  cursor: pointer; padding: 9px 12px;
  background: rgba(255,255,255,.03); border: 1px solid var(--eg-line);
  transition: border-color .2s, background .2s, color .2s;
}
body.eg-contact #main .wpforms-field-checkbox label:hover,
body.eg-contact #main .wpforms-field-radio label:hover {
  border-color: var(--eg-line-2); background: rgba(255,255,255,.06);
}
body.eg-contact #main .wpforms-field-checkbox input[type=checkbox],
body.eg-contact #main .wpforms-field-radio input[type=radio] {
  appearance: none; -webkit-appearance: none;
  width: 15px; height: 15px; flex: 0 0 15px; margin: 0 !important;
  border: 1px solid var(--eg-line-2); background: transparent; position: relative; cursor: pointer;
}
body.eg-contact #main .wpforms-field-checkbox input[type=checkbox]:checked,
body.eg-contact #main .wpforms-field-radio input[type=radio]:checked {
  background: var(--eg-lime); border-color: var(--eg-lime);
}
body.eg-contact #main .wpforms-field-checkbox input[type=checkbox]:checked::after {
  content: ""; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px;
  border: solid #0A0A0A; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
/* Columns come from the form's own input_columns setting; keep the gap sane. */
body.eg-contact #main .wpforms-list-3-columns li,
body.eg-contact #main .wpforms-list-2-columns li { padding-right: 8px !important; }
body.eg-contact #main .wpforms-field-checkbox .wpforms-field-label { margin-bottom: 10px !important; }
body.eg-contact #main .wpforms-field-description { color: var(--eg-mute) !important; font-size: 12.5px !important; }

/* ==========================================================================
   Checkbox rows — corrected
   The markup is  <li><input><label>Text</label></li>  — the input is a SIBLING
   of the label, not a child. My first pass made the LABEL the bordered flex row,
   which boxed the text only and left the checkbox stranded outside and above it.
   The <li> is the row; the label is just text inside it.
   ========================================================================== */
body.eg-contact #main .wpforms-field-checkbox ul,
body.eg-contact #main .wpforms-field-radio ul { margin: 0 !important; padding: 0 !important; }

body.eg-contact #main .wpforms-field-checkbox li,
body.eg-contact #main .wpforms-field-radio li {
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 8px 8px 0 !important;
  padding: 10px 14px !important;
  background: rgba(255,255,255,.03) !important;
  border: 1px solid var(--eg-line) !important;
  transition: border-color .2s, background .2s;
}
body.eg-contact #main .wpforms-field-checkbox li:hover,
body.eg-contact #main .wpforms-field-radio li:hover {
  background: rgba(255,255,255,.06) !important;
  border-color: var(--eg-line-2) !important;
}

/* The label is now only the text. Strip the box treatment the first pass gave it. */
body.eg-contact #main .wpforms-field-checkbox label.wpforms-field-label-inline,
body.eg-contact #main .wpforms-field-radio label.wpforms-field-label-inline {
  display: inline !important;
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  color: #EDEDED !important;
  cursor: pointer;
}

body.eg-contact #main .wpforms-field-checkbox input[type=checkbox],
body.eg-contact #main .wpforms-field-radio input[type=radio] {
  appearance: none !important; -webkit-appearance: none !important;
  width: 16px !important; height: 16px !important; flex: 0 0 16px !important;
  margin: 0 !important; padding: 0 !important;
  background: transparent !important;
  border: 1px solid var(--eg-line-2) !important;
  border-radius: 0 !important;
  position: relative; cursor: pointer;
}
body.eg-contact #main .wpforms-field-checkbox input[type=checkbox]:checked,
body.eg-contact #main .wpforms-field-radio input[type=radio]:checked {
  background: var(--eg-lime) !important; border-color: var(--eg-lime) !important;
}
body.eg-contact #main .wpforms-field-checkbox input[type=checkbox]:checked::after {
  content: "" !important; position: absolute; left: 5px; top: 1px;
  width: 4px; height: 9px; border: solid #0A0A0A; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
body.eg-contact #main .wpforms-field-checkbox legend.wpforms-field-label { margin-bottom: 12px !important; }

/* ==========================================================================
   Business hours — the leader line
   The theme draws a rule between the day and the hours, and my earlier
   border-bottom on .working-item added a second line under the row. One line,
   not two: keep the row clean and space the two values apart.
   ========================================================================== */
body.eg-contact #main .working-item {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 16px;
  border-bottom: 1px solid var(--eg-line) !important;
  padding: 11px 0 !important;
  margin: 0 !important;
}
body.eg-contact #main .working-item:last-child { border-bottom: 0 !important; }
body.eg-contact #main .working-item::before,
body.eg-contact #main .working-item::after,
body.eg-contact #main .working-item_day::after,
body.eg-contact #main .working-item_hours::before {
  content: none !important; display: none !important; border: 0 !important;
}
body.eg-contact #main .working-item_day {
  color: var(--eg-mute) !important; font-size: 13px !important;
  letter-spacing: .1em; text-transform: uppercase; border: 0 !important; flex: 0 0 auto;
}
body.eg-contact #main .working-item_hours {
  color: var(--eg-ink) !important; font-size: 14.5px !important;
  font-weight: 600; border: 0 !important; flex: 0 0 auto; text-align: right;
}

/* The hours list computes as flex with space-between correctly, but its own
   container is only 220px wide inside a full-width panel — so the two values sat
   bunched against the left edge with dead space beside them. Let it fill. */
body.eg-contact #main .wgl-working-hours { width: 100% !important; max-width: none !important; }
body.eg-contact #main .elementor-widget-wgl-working-hours,
body.eg-contact #main .elementor-widget-wgl-working-hours > .elementor-widget-container { width: 100% !important; }

/* The hours widget's own Elementor wrapper carries max-width:50%, so widening
   .wgl-working-hours and .elementor-widget-container had no effect — the
   constraint was one level above both. */
body.eg-contact #main .elementor-widget-wgl-working-hours {
  max-width: 100% !important;
  width: 100% !important;
}
body.eg-contact #main .elementor-widget-wgl-working-hours .working-item_hours { min-width: 90px; }

/* ---- Business Hours: one card, not two misaligned widgets ----------------
   The heading ("Business Hours" + clock icon) and the hours list are two
   separate Elementor widgets stacked in the same column. The heading is an
   eael-infobox, which the panel rule above gives a background and border; the
   list is a wgl-working-hours widget with no background, so they read as
   unrelated. Worse, the list's own .elementor-widget-container carries an
   Elementor margin of -25px top / 65px left. The left offset pushed the rows
   65px right of the panel so they overflowed the same distance past its right
   edge; the negative top margin pulled the list up over the heading, and once
   the list had a background of its own that background painted across the
   bottom half of the clock icon and sliced it in two.

   Zero the whole margin — not just left/right — and continue the panel down
   over the list so the pair reads as a single card. Scoped to the heading's
   own element id so other info boxes on the page keep their full border. */
body.eg-contact #main .elementor-element-85fdb8b { margin-bottom: 0 !important; }
body.eg-contact #main .elementor-element-85fdb8b .eael-infobox { border-bottom: 0 !important; }

body.eg-contact #main .elementor-widget-wgl-working-hours > .elementor-widget-container {
  margin: 0 !important;
  background: var(--eg-panel);
  border: 1px solid var(--eg-line);
  border-top: 0;
  padding: 2px 26px 16px !important;
}
body.eg-contact #main .wgl-working-hours .working-item:last-child { border-bottom: 0 !important; }
