/* Override Hello Elementor page styles */
#ih-contact-page {
  padding: 0 !important;
  margin: 0 !important;
}
.ih-contact-main {
  padding-top: var(--ih-section-pad);
  padding-bottom: var(--ih-section-pad);
}
/* Ensure form elements are not overridden by Elementor */
#ih-contact-page input,
#ih-contact-page select,
#ih-contact-page textarea {
  font-family: var(--ih-font-body) !important;
  color: var(--ih-ink) !important;
  background: #ffffff !important;
  border: 2px solid rgba(0,82,97,0.2) !important;
  border-radius: var(--ih-radius-sm) !important;
  padding: 12px 16px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  font-size: 1rem !important;
}
#ih-contact-page input:focus,
#ih-contact-page select:focus,
#ih-contact-page textarea:focus {
  border-color: var(--ih-deep) !important;
  outline: none !important;
  box-shadow: none !important;
}
#ih-contact-page input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  padding: 0 !important;
}
#ih-contact-page button[type="submit"] {
  width: auto !important;
  cursor: pointer !important;
}

/* ==============================================
   INTEGRATE HOPE - CONTACT PAGE
   ============================================== */

#ih-contact-page *, #ih-contact-page *::before, #ih-contact-page *::after { box-sizing: border-box; }
#ih-contact-page a:not(.ih-btn) { color: var(--ih-deep); }
#ih-contact-page .ih-btn { text-decoration: none; }
#ih-contact-page img { max-width: 100%; display: block; }
#ih-contact-page p { margin: 0 0 20px; }
#ih-contact-page p:last-child { margin-bottom: 0; }
#ih-contact-page .ih-container { max-width: var(--ih-max-w); margin: 0 auto; padding: 0 24px; }
#ih-contact-page .ih-section-heading { font-family: var(--ih-font-head); font-weight: 800; font-size: 3.25rem; color: var(--ih-deep); line-height: 1.05; margin: 0 0 24px; text-transform: uppercase; letter-spacing: 0.05em; }
#ih-contact-page .ih-btn { display: inline-block; font-family: var(--ih-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-radius: var(--ih-radius-sm); border: 2px solid transparent; cursor: pointer; transition: background 0.15s; text-align: center; }
#ih-contact-page .ih-btn--primary { background: #005261; color: #FFE65A; border-color: #005261; padding: 15px 32px; font-size: 1.2rem; }
#ih-contact-page .ih-btn--primary:hover { background: #003d4a; color: #FFE65A; }

/* HERO */
.ih-contact-hero {
  position: relative;
  height: 60vh;
  min-height: 420px;
  max-height: 620px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.ih-contact-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
  display: block;
}

.ih-contact-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--ih-max-w);
  margin: 0 auto;
  padding: 0 24px;
}
.ih-contact-hero__title {
  font-family: var(--ih-font-head);
  font-weight: 800;
  font-size: 3.75rem;
  color: var(--ih-accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 12px;
  line-height: 1.0;
}
.ih-contact-hero__sub {
  font-family: var(--ih-font-body);
  font-size: 1.25rem;
  color: rgba(255,255,255,0.9);
  margin: 0;
}

/* MAIN LAYOUT */
.ih-contact-main { background: #ffffff; padding: var(--ih-section-pad) 0; }
#ih-contact-page .ih-contact-main__inner {
  display: grid !important;
  grid-template-columns: 1fr 1.4fr !important;
  gap: 72px !important;
  align-items: start !important;
}
#ih-contact-page .ih-contact-info,
#ih-contact-page .ih-contact-form-wrap {
  min-width: 0;
  width: 100%;
}

/* INFO COLUMN */
.ih-contact-info p {
  font-family: var(--ih-font-body);
  font-size: 1.25rem;
  line-height: 1.7;
  color: var(--ih-ink);
  margin-bottom: 32px;
}
.ih-contact-info__block { margin-bottom: 28px; }
.ih-contact-info__label {
  font-family: var(--ih-font-head);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ih-deep);
  opacity: 0.55;
  margin: 0 0 6px;
}
.ih-contact-info__link {
  font-family: var(--ih-font-body);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ih-deep);
  text-decoration: none;
  word-break: break-all;
}
.ih-contact-info__link:hover { text-decoration: underline; }
.ih-contact-info__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ih-contact-info__list {
  list-style: disc !important;
  padding-left: 20px !important;
}
.ih-contact-info__list li {
  font-family: var(--ih-font-body);
  font-size: 1rem;
  color: var(--ih-ink);
  padding: 6px 0;
  border-bottom: none !important;
  list-style: disc !important;
}
.ih-contact-info__list li::before { display: none !important; }

/* Photo strip */
.ih-contact-info__photos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 32px;
  border-radius: var(--ih-radius-md);
  overflow: hidden;
}
.ih-contact-info__photo img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

/* FORM CARD */
.ih-contact-form-card {
  background: var(--ih-surface);
  border-radius: var(--ih-radius-md);
  padding: 40px;
  box-shadow: 0 4px 24px rgba(0,82,97,0.08);
}
.ih-contact-form-card__title {
  font-family: var(--ih-font-head);
  font-weight: 800;
  font-size: 1.6rem;
  color: var(--ih-deep);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 28px;
}
.ih-contact-form__row { margin-bottom: 20px; }
.ih-contact-form__row label {
  display: block;
  font-family: var(--ih-font-head);
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ih-deep);
  margin-bottom: 8px;
}
.ih-contact-form__row label span { color: #c0392b; }
.ih-contact-form__row label .optional { color: var(--ih-deep); opacity: 0.45; font-weight: 400; text-transform: none; }
.ih-contact-form__row input,
.ih-contact-form__row select,
.ih-contact-form__row textarea {
  width: 100%;
  font-family: var(--ih-font-body);
  font-size: 1rem;
  color: var(--ih-ink);
  background: #ffffff;
  border: 2px solid rgba(0,82,97,0.2);
  border-radius: var(--ih-radius-sm);
  padding: 12px 16px;
  outline: none;
  transition: border-color 0.15s;
  appearance: none;
}
.ih-contact-form__row input:focus,
.ih-contact-form__row select:focus,
.ih-contact-form__row textarea:focus { border-color: var(--ih-deep); }
.ih-contact-form__row textarea { resize: vertical; min-height: 140px; }
.ih-contact-form__row--checkbox label {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  text-transform: none;
  font-size: 0.88rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.55;
  cursor: pointer;
  pointer-events: auto !important;
  position: relative;
}
.ih-contact-form__row--checkbox input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  accent-color: var(--ih-deep) !important;
  appearance: checkbox !important;
  -webkit-appearance: checkbox !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 1 !important;
  cursor: pointer !important;
}

/* Success / Error */
.ih-contact-success {
  background: var(--ih-deep);
  border-radius: var(--ih-radius-md);
  padding: 32px;
  text-align: center;
}
.ih-contact-success h3 {
  font-family: var(--ih-font-head);
  font-weight: 800;
  font-size: 1.8rem;
  color: var(--ih-accent);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 12px;
}
.ih-contact-success p { font-family: var(--ih-font-body); font-size: 1.25rem; color: rgba(255,255,255,0.88); margin: 0; }
.ih-contact-error {
  background: #fdecea;
  border: 1px solid #e74c3c;
  border-radius: var(--ih-radius-sm);
  padding: 12px 16px;
  font-family: var(--ih-font-body);
  font-size: 0.95rem;
  color: #c0392b;
  margin-bottom: 20px;
}

/* RESPONSIVE */
@media (max-width: 1024px) { .ih-contact-main__inner { grid-template-columns: 1fr; } }
@media (max-width: 768px) {
  .ih-contact-hero__title { font-size: 2.4rem; }
  .ih-contact-form-card { padding: 24px; }
  .ih-contact-info__photos { grid-template-columns: repeat(3,1fr); }
}

/* VIDEO SECTION */
.ih-contact-video {
  background: var(--ih-deep);
  padding: var(--ih-section-pad) 0;
}
.ih-contact-video__wrap {
  border-radius: 0;
  overflow: hidden;
  width: 100%;
  margin: 0;
}
.ih-contact-video__player {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.ih-contact-video { padding: 0 !important; }
.ih-contact-video .ih-container { max-width: 100% !important; padding: 0 !important; }

/* Force remove arrows from We can help with list */
#ih-contact-page .ih-contact-info__list li::before {
  display: none !important;
  content: none !important;
}
#ih-contact-page .ih-contact-info__list li {
  border-bottom: none !important;
  padding: 6px 0 !important;
  padding-left: 0 !important;
  list-style: disc !important;
  position: relative !important;
  left: auto !important;
}
#ih-contact-page .ih-contact-info__list {
  list-style: disc !important;
  padding-left: 20px !important;
}

.ih-contact-video { padding: 0 !important; margin: 0 !important; line-height: 0; }
.ih-contact-video .ih-contact-video__player { width: 100% !important; display: block !important; aspect-ratio: 16/9; object-fit: cover; }

/* Contact info section updates */
#ih-contact-page .ih-contact-info > p {
  font-size: 1rem !important;
  line-height: 1.6 !important;
}
/* Email, Based In, We Can Help With labels */
#ih-contact-page .ih-contact-info__label {
  font-family: var(--ih-font-head) !important;
  font-weight: 800 !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--ih-deep) !important;
  margin: 0 0 4px !important;
}
/* Email link */
#ih-contact-page .ih-contact-info__link {
  font-family: var(--ih-font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--ih-deep) !important;
  text-decoration: underline !important;
}
/* Based in text */
#ih-contact-page .ih-contact-info__block p {
  font-size: 0.95rem !important;
  color: var(--ih-ink) !important;
  margin: 0 !important;
}
/* We Can Help With list */
#ih-contact-page .ih-contact-info__list {
  list-style: disc !important;
  padding-left: 18px !important;
  margin: 0 !important;
}
#ih-contact-page .ih-contact-info__list li {
  font-size: 0.95rem !important;
  color: var(--ih-ink) !important;
  padding: 4px 0 !important;
  border: none !important;
}
#ih-contact-page .ih-contact-info__list li::before {
  display: none !important;
  content: none !important;
}
/* Spacing between blocks */
#ih-contact-page .ih-contact-info__block {
  margin-bottom: 24px !important;
}

/* Force contact info column and paragraph to full width */
#ih-contact-page .ih-contact-info,
#ih-contact-page .ih-contact-info p,
#ih-contact-page .ih-contact-info > p {
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
}


/* ============================================================
   MOBILE - stack contact sections vertically
   ============================================================ */
@media (max-width: 768px) {
  #ih-contact-page { overflow-x: hidden !important; }

  #ih-contact-page .ih-contact-main__inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Info (Start a Conversation) appears first */
  #ih-contact-page .ih-contact-info {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Form appears second */
  #ih-contact-page .ih-contact-form-wrap {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Ensure form fields don't overflow */
  #ih-contact-page input,
  #ih-contact-page select,
  #ih-contact-page textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Hero headline size */
  #ih-contact-page .ih-contact-hero__headline { font-size: 2.2rem !important; }
}

/* ============================================================
   CONTACT HERO - MOBILE: image above, text block below
   ============================================================ */
@media (max-width: 768px) {
  .ih-contact-hero {
    height: auto !important;
    min-height: unset !important;
    max-height: unset !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow: visible !important;
  }
  .ih-contact-hero__bg {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 260px !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    z-index: 0 !important;
  }
  .ih-contact-hero__content {
    position: relative !important;
    height: auto !important;
    padding: 0 !important;
    background: rgba(217, 248, 231, 0.97) !important;
    justify-content: flex-start !important;
    z-index: 2 !important;
  }
  .ih-contact-hero__block {
    background: rgba(217, 248, 231, 0.97) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 24px 20px !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    outline: none !important;
  }
  .ih-contact-hero__block h1 {
    font-size: 2.4rem !important;
    color: var(--ih-deep) !important;
    margin-bottom: 10px !important;
  }
  .ih-contact-hero__block p {
    color: var(--ih-ink) !important;
    margin-bottom: 20px !important;
  }
  .ih-contact-hero__ctas {
    flex-direction: column !important;
    gap: 12px !important;
    display: flex !important;
  }
  .ih-contact-hero__cta {
    text-align: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
    font-size: 1.1rem !important;
  }
}

/* Success message */
.ih-contact-success {
  background: #D9F8E7;
  border: 2px solid #005261;
  border-radius: 12px;
  padding: 40px 36px;
  text-align: center;
  margin: 20px 0;
}
.ih-contact-success__icon {
  width: 64px;
  height: 64px;
  background: #005261;
  color: #FFE65A;
  border-radius: 50%;
  font-size: 1.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.ih-contact-success h3 {
  font-family: var(--ih-font-head);
  font-size: 1.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ih-deep);
  margin: 0 0 16px;
}
.ih-contact-success p {
  color: var(--ih-ink);
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 0 12px;
}
.ih-contact-success p:last-child { margin-bottom: 0; }
.ih-contact-success a { color: var(--ih-deep); font-weight: 600; }