/* ── Contact Page ── */

/* ─ Hero ─ */
.ct-hero {
  position: relative;
  min-height: 600px;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 0 0 120px;
  background-image: url('/wp-content/uploads/2026/05/1a0a15ce25eb60afed9312a56d3905b65b184736-1-1.webp');
  background-position: center center;
  background-size: cover;
}
.ct-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.39);
}
.ct-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding-inline: clamp(20px,8.333vw,120px);
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px;
}
.ct-hero__heading-col {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.ct-hero__text-col {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.ct-hero__h {
  font-family: var(--ff-h);
  font-size: 48px;
  font-weight: 500;
  color: #fff;
  line-height: 1.2;
}
.ct-hero__h em { font-style: italic; }
.ct-hero__sub {
  font-family: var(--ff-b);
  font-size: 20px;
  font-weight: 400;
  color: #fff;
  line-height: 1.6;
}

/* ─ Two-column body ─ */
.ct-body-bg {
  position: relative;
  background: linear-gradient(to right, var(--cream) 50%, #fff 50%);
}
.ct-body-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("/wp-content/uploads/2026/05/image-13-Traced.svg");
  background-repeat: no-repeat;
  background-position: right top;
  background-size: auto 100%;
  pointer-events: none;
  z-index: 0;
}
.ct-body-bg > .ct-body {
  position: relative;
  z-index: 1;
}
.ct-body {
  display: flex;
  flex-direction: row;
  max-width: 1440px;
  margin: 0 auto;
  padding-inline: clamp(20px,8.333vw,120px);
  box-sizing: border-box;
  width: 100%;
}

.ct-label {
  font-family: var(--ff-b);
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
  color: #226040;
  margin: 0;
}
.ct-col-h {
  font-family: var(--ff-h);
  font-size: 48px;
  font-weight: 600;
  line-height: 60px;
  color: #332106;
  max-width: 651px;
  margin: 0;
}
.ct-col-h em {
  font-style: italic;
  color: #226040;
  font-weight: 400;
}
.ct-col-sub {
  font-family: var(--ff-b);
  font-size: 16px;
  font-weight: 400;
  color: #332106;
  max-width: 506px;
  margin: 24px 0 40px;
}

/* ─ Form column ─ */
.ct-form-col {
  flex: 1;
  background: var(--cream);
  padding: 120px 40px 120px 0;
  min-width: 0;
  box-sizing: border-box;
}

/* ─ WPForms overrides — match original design ─ */

/* Force full-width inputs — WPForms sets wpforms-field-medium to max-width:60% by default */
.ct-form-col .wpforms-form input.wpforms-field-medium,
.ct-form-col .wpforms-form input.wpforms-field-small,
.ct-form-col .wpforms-form select.wpforms-field-medium,
.ct-form-col .wpforms-form select.wpforms-field-small {
  max-width: 100% !important;
  width: 100% !important;
}

/* Constrain form width to match reference */
.ct-form-col .wpforms-container {
  max-width: 560px;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Remove WPForms default spacing */
.ct-form-col .wpforms-form .wpforms-field {
  padding: 0;
  margin-bottom: 20px;
}
.ct-form-col .wpforms-container {
  margin: 0;
}

/* Hide visible labels & required asterisk — placeholders do the job */
.ct-form-col .wpforms-form .wpforms-field-label,
.ct-form-col .wpforms-form .wpforms-required-label,
.ct-form-col .wpforms-form fieldset legend.wpforms-field-label {
  display: none !important;
}

/* Text / email inputs */
.ct-form-col .wpforms-form input[type="text"],
.ct-form-col .wpforms-form input[type="email"],
.ct-form-col .wpforms-form input[type="tel"] {
  width: 100% !important;
  background: #fff !important;
  border: 1px solid rgba(51,33,6,.12) !important;
  border-radius: 100px !important;
  padding: 10px 24px !important;
  height: auto !important;
  font-family: var(--ff-b) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 35px !important;
  color: #332106 !important;
  box-shadow: none !important;
  outline: none !important;
  box-sizing: border-box !important;
}
.ct-form-col .wpforms-form input[type="text"]:focus,
.ct-form-col .wpforms-form input[type="email"]:focus,
.ct-form-col .wpforms-form input[type="tel"]:focus {
  box-shadow: 0 0 0 2px rgba(34,96,64,.25) !important;
}
.ct-form-col .wpforms-form input::placeholder {
  color: rgba(51,33,6,.5) !important;
}

/* Checkbox — hide WPForms list wrapper, show inline */
.ct-form-col .wpforms-form .wpforms-field-checkbox ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ct-form-col .wpforms-form .wpforms-field-checkbox li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
}
.ct-form-col .wpforms-form .wpforms-field-checkbox input[type="checkbox"] {
  margin: 3px 0 0 !important;
  flex-shrink: 0 !important;
  width: 15px !important;
  height: 15px !important;
  accent-color: #226040 !important;
  cursor: pointer !important;
}
.ct-form-col .wpforms-form .wpforms-field-checkbox .wpforms-field-label-inline {
  font-family: var(--ff-b) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #332106 !important;
  line-height: 1.5 !important;
  cursor: pointer !important;
}

/* Submit button */
.ct-form-col .wpforms-form .wpforms-submit-container {
  padding: 0;
  margin-top: 4px;
}
.ct-form-col .wpforms-form button[type="submit"],
.ct-form-col .wpforms-form .wpforms-submit {
  width: 100% !important;
  background: transparent !important;
  border: 1px solid #332106 !important;
  border-radius: 100px !important;
  font-family: var(--ff-b) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  color: #332106 !important;
  cursor: pointer !important;
  transition: background .2s ease, color .2s ease !important;
  box-shadow: none !important;
  height: auto !important;
  padding: 16px 0 !important;
  line-height: 1.4 !important;
  letter-spacing: .04em !important;
  display: block !important;
}
.ct-form-col .wpforms-form button[type="submit"]:hover,
.ct-form-col .wpforms-form .wpforms-submit:hover {
  background: #332106 !important;
  color: #fff !important;
}

/* Spinner image after submit — hide */
.ct-form-col .wpforms-submit-container img {
  display: none !important;
}

/* Confirmation message */
.ct-form-col .wpforms-confirmation-container-full,
.ct-form-col .wpforms-confirmation-scroll {
  background: rgba(34,96,64,.1) !important;
  border: 1px solid rgba(34,96,64,.3) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  font-family: var(--ff-b) !important;
  font-size: 15px !important;
  color: #226040 !important;
}

/* Validation error messages */
.ct-form-col .wpforms-form label.wpforms-error {
  font-family: var(--ff-b) !important;
  font-size: 13px !important;
  color: #c83232 !important;
  padding-left: 12px !important;
  margin-top: 4px !important;
  display: block !important;
}

/* ─ Info column ─ */
.ct-info-col {
  flex: 1;
  background-color: transparent;
  padding: 120px 0 120px 40px;
  min-width: 0;
  box-sizing: border-box;
}
.ct-info__title {
  font-family: var(--ff-b);
  font-size: 20px;
  font-weight: 600;
  color: #332106;
  margin: 20px 0 0;
}
.ct-info__title:first-of-type { margin-top: 0; }
.ct-info__text {
  font-family: var(--ff-b);
  font-size: 16px;
  font-weight: 400;
  color: #332106;
  margin: 20px 0 0;
  line-height: 1.6;
}
.ct-info__list {
  list-style: none;
  padding: 0;
  margin: 20px 0 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ct-info__list li {
  font-family: var(--ff-b);
  font-size: 16px;
  font-weight: 400;
  color: #332106;
}
.ct-info__list a {
  color: #332106;
  text-decoration: none;
  transition: color var(--tr);
}
.ct-info__list a:hover { color: #226040; }

/* ─ Google Maps ─ */
.ct-map { width: 100%; line-height: 0; }
.ct-map iframe {
  width: 100%;
  height: 455px;
  border: none;
  display: block;
}


/* ─ Responsive ─ */
@media (max-width: 1024px) {
  .ct-hero { padding: 0 0 80px; }
  .ct-hero__h { font-size: 42px; }
  .ct-form-col { padding: 80px 20px 80px 0; }
  .ct-info-col { padding: 80px 0 80px 20px; }
  .ct-col-h { font-size: 38px; line-height: 48px; }
  .ct-map iframe { height: 360px; }
}

@media (max-width: 767px) {
  /* ─ Hero ─ */
  .ct-hero {
    min-height: 460px;
    padding: 0 0 60px;
    align-items: flex-end;
  }
  .ct-hero__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .ct-hero__heading-col,
  .ct-hero__text-col {
    flex: none;
    width: 100%;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .ct-hero__h { font-size: 34px; }
  .ct-hero__sub { font-size: 16px; }

  /* ─ Body — stack columns ─ */
  .ct-body-bg { background: none; }
  .ct-body-bg::after { display: none; }
  .ct-body { flex-direction: column; }

  /* Negative margins to extend column backgrounds beyond container padding */
  .ct-form-col {
    margin-inline: calc(-1 * clamp(20px, 8.333vw, 120px));
    padding-inline: clamp(20px, 8.333vw, 120px);
    padding-block: 60px 40px;
    background: var(--cream);
  }
  .ct-info-col {
    margin-inline: calc(-1 * clamp(20px, 8.333vw, 120px));
    padding-inline: clamp(20px, 8.333vw, 120px);
    padding-block: 40px 60px;
    background: #fff;
    position: relative;
    overflow: hidden;
  }
  .ct-info-col::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('/wp-content/uploads/2026/05/image-13-Traced.svg');
    background-repeat: no-repeat;
    background-position: right top;
    background-size: auto 100%;
    pointer-events: none;
    opacity: .45;
    z-index: 0;
  }
  .ct-info-col > * { position: relative; z-index: 1; }
  .ct-col-h { font-size: 30px; line-height: 38px; }
  .ct-col-sub { margin: 16px 0 28px; }
  .ct-map iframe { height: 260px; }
}
