/*
RDMI - Contact page styling.

Scoped to body.page-id-280 so nothing here can affect the other pages. Selectors
carry an extra class on purpose: Elementor's own rules are
`.elementor-280 .elementor-element.elementor-element-XXX` (0,3,0), so anything
weaker silently loses.
*/
body.page-id-280 {
  --c-accent: #298fcd;
  --c-navy: #0d2a3f;
  --c-muted: #5b6f81;
  --c-line: #dbe8f3;
  --c-soft: #f2f8fd;
}

/* ---------- section shell ---------- */
/* Was a flat #eee slab behind both columns. */
body.page-id-280 .elementor-element.elementor-element-4c87063 {
  background: linear-gradient(180deg, #f4f9fd 0%, #eaf3fa 100%);
  padding-top: 70px;
  padding-bottom: 70px;
}

/* ---------- left column: contact detail cards ---------- */
/* These are already cards in the theme: Elementor puts padding, a white
   background and a 30px radius on `> .elementor-widget-container`. What let
   them down was `box-shadow: 0 0 10px rgba(0,0,0,.5)` - a hard 50% black halo.
   So this refines the existing card rather than nesting a second one inside. */
/* The column itself carried `box-shadow: 0 0 10px rgba(0,0,0,.5)` with no
   radius and no background, so it drew a hard square halo around a transparent
   box. It is a layout wrapper, not a card - the cards inside carry their own
   elevation, so the ghost edge just goes. */
body.page-id-280 .elementor-element.elementor-element-9dc63d3 {
  gap: 16px;
  box-shadow: none;
  border-radius: 20px;
}
/* Phone and email sit in two equal 310px columns but each widget shrank to its
   own text width (263px vs 280px), so the pair looked misaligned. */
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list {
  width: 100%;
  align-self: stretch;
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  > .elementor-widget-container {
  height: 100%;
  padding: 24px 26px;
  border: 1px solid var(--c-line);
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(13, 42, 63, 0.07);
  transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  > .elementor-widget-container:hover {
  border-color: #c5ddf0;
  box-shadow: 0 16px 34px rgba(13, 42, 63, 0.13);
  transform: translateY(-2px);
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  .elementor-icon-list-item {
  display: flex;
  align-items: center;
  gap: 14px;
}
/* the theme floats the icon to the right of the label; put it back in front */
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  .elementor-icon-list-icon {
  display: grid;
  place-items: center;
  order: -1;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  margin: 0;
  border-radius: 50%;
  background: var(--c-soft);
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  .elementor-icon-list-icon svg {
  width: 20px;
  height: 20px;
  fill: var(--c-accent);
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  .elementor-icon-list-text {
  padding: 0;
  color: var(--c-navy);
  font-size: 16px;
  line-height: 1.5;
  word-break: break-word;
}
body.page-id-280
  .elementor-element.elementor-element-9dc63d3
  .elementor-widget-icon-list
  a:hover .elementor-icon-list-text {
  color: var(--c-accent);
}

/* social row sits under the cards - it had the same floating black halo
   around a transparent 226x44 box */
body.page-id-280 .elementor-element.elementor-element-542a579 > .elementor-widget-container {
  box-shadow: none;
}
body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon {
  background: #fff;
  border: 1px solid var(--c-line);
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon svg {
  fill: var(--c-accent);
  transition: fill 0.2s ease;
}
body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon:hover {
  background: var(--c-accent);
  border-color: var(--c-accent);
  transform: translateY(-2px);
}
body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon:hover svg {
  fill: #fff;
}

/* "get in touch" is shaped like a badge (30px radius, 10px padding) but was
   never given a fill - just the same hard black halo. Make it a real pill. */
body.page-id-280
  .elementor-element.elementor-element-7e56837
  > .elementor-widget-container {
  display: inline-block;
  padding: 6px 20px;
  background: var(--c-soft);
  border: 1px solid var(--c-line);
  box-shadow: none;
}
body.page-id-280 .elementor-element.elementor-element-7e56837 .elementor-heading-title {
  font-size: 15px;
  letter-spacing: 1.2px;
}

/* ---------- right column: the form as a card ---------- */
body.page-id-280 .elementor-element.elementor-element-b949c83 {
  padding: 38px 36px 34px;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: 20px;
  box-shadow: 0 18px 44px rgba(13, 42, 63, 0.1);
}

body.page-id-280 .elementor-element.elementor-element-a86ba74 .elementor-field-group {
  margin-bottom: 6px;
}
/* Elementor sets the field radius/background at (0,7,0) via
   `.elementor-280 ... .elementor-field-group:not(...) .elementor-field:not(...)`,
   so these mirror that selector shape to win the cascade rather than reaching
   for !important. Everything else can stay at normal specificity. */
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group:not(.elementor-field-type-upload)
  .elementor-field:not(.elementor-select-wrapper) {
  background-color: #fbfdff;
  border-radius: 12px;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group:not(.elementor-field-type-upload)
  textarea.elementor-field:not(.elementor-select-wrapper) {
  border-radius: 16px;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group
  .elementor-field-textual {
  min-height: 50px;
  padding: 13px 18px;
  border: 1px solid var(--c-line);
  color: var(--c-navy);
  font-size: 15px;
  line-height: 1.5;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group
  textarea.elementor-field-textual {
  min-height: 150px;
  resize: vertical;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group
  .elementor-field-textual::placeholder {
  color: #90a2b3;
  opacity: 1;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group
  .elementor-field-textual:hover {
  border-color: #bcd8ee;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-field-group
  .elementor-field-textual:focus {
  background: #fff;
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px rgba(41, 143, 205, 0.18);
  outline: none;
}

body.page-id-280 .elementor-element.elementor-element-a86ba74 .elementor-field-type-submit {
  margin-top: 8px;
}
/* Elementor sets the submit colour at (0,5,0) via
   `.elementor-280 ... .elementor-button[type="submit"]`. */
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-button[type="submit"] {
  min-height: 50px;
  padding: 14px 40px;
  background-color: var(--c-navy);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.2px;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
body.page-id-280
  .elementor-element.elementor-element-a86ba74
  .elementor-button[type="submit"]:hover {
  background-color: var(--c-accent);
  color: #fff;
  box-shadow: 0 10px 22px rgba(41, 143, 205, 0.32);
  transform: translateY(-1px);
}
body.page-id-280 .elementor-element.elementor-element-a86ba74 button[type="submit"]:focus-visible {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
}

/* ---------- map ---------- */
/* Full-bleed square-cornered iframe; inset and round it to match the cards. */
body.page-id-280 .elementor-element.elementor-element-6c68afe {
  padding: 0 0 60px;
  background: linear-gradient(180deg, #eaf3fa 0%, #ffffff 100%);
}
body.page-id-280 .elementor-element.elementor-element-b8fc31e {
  width: min(1200px, 92vw);
  margin: 0 auto;
}
body.page-id-280 .elementor-element.elementor-element-b8fc31e .elementor-custom-embed,
body.page-id-280 .elementor-element.elementor-element-b8fc31e iframe {
  display: block;
  width: 100%;
  border-radius: 20px;
}
body.page-id-280 .elementor-element.elementor-element-b8fc31e .elementor-widget-container {
  overflow: hidden;
  border: 1px solid var(--c-line);
  border-radius: 20px;
  box-shadow: 0 18px 44px rgba(13, 42, 63, 0.12);
}

/* The email column was authored with padding:5px while the phone and address
   columns use 10px, which left its card sitting 5px out of line. */
body.page-id-280 .elementor-element.elementor-element-5615896 {
  padding: 10px;
}

/* Two 367px columns at tablet width squeeze the info cards to 153px and leave
   the form cramped, so give each the full row. */
@media (max-width: 1024px) {
  body.page-id-280 .elementor-element.elementor-element-4c87063 > .e-con-inner {
    flex-direction: column;
    flex-wrap: nowrap;
  }
  body.page-id-280 .elementor-element.elementor-element-9dc63d3,
  body.page-id-280 .elementor-element.elementor-element-b949c83 {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 1024px) {
  body.page-id-280 .elementor-element.elementor-element-b949c83 {
    padding: 30px 26px 28px;
  }
}
@media (max-width: 767px) {
  body.page-id-280 .elementor-element.elementor-element-4c87063 {
    padding-top: 44px;
    padding-bottom: 44px;
  }
  body.page-id-280 .elementor-element.elementor-element-b949c83 {
    padding: 26px 20px 24px;
    border-radius: 16px;
  }
  body.page-id-280
    .elementor-element.elementor-element-9dc63d3
    .elementor-widget-icon-list
    > .elementor-widget-container {
    padding: 18px 18px;
  }
  body.page-id-280 .elementor-element.elementor-element-a86ba74 button[type="submit"] {
    width: 100%;
  }
  body.page-id-280 .elementor-element.elementor-element-6c68afe {
    padding-bottom: 40px;
  }
  body.page-id-280 .elementor-element.elementor-element-b8fc31e .elementor-widget-container,
  body.page-id-280 .elementor-element.elementor-element-b8fc31e iframe {
    border-radius: 14px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.page-id-280 .elementor-element.elementor-element-9dc63d3 .elementor-widget-icon-list > .elementor-widget-container,
  body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon,
  body.page-id-280 .elementor-element.elementor-element-a86ba74 button[type="submit"],
  body.page-id-280
    .elementor-element.elementor-element-a86ba74
    .elementor-field-group
    .elementor-field-textual {
    transition: none;
  }
  body.page-id-280 .elementor-element.elementor-element-9dc63d3 .elementor-widget-icon-list > .elementor-widget-container:hover,
  body.page-id-280 .elementor-element.elementor-element-542a579 .elementor-social-icon:hover,
  body.page-id-280 .elementor-element.elementor-element-a86ba74 button[type="submit"]:hover {
    transform: none;
  }
}
