/* =========================================================
   CRT — Featured Properties Contact
   Premium editorial contact section + compact HubSpot form
========================================================= */

.crt-fpc {
  width: 100%;
  background:
    radial-gradient(circle at top right, var(--crt-fpc-glow-color, rgba(138, 111, 77, 0.06)), transparent 34%),
    linear-gradient(
      180deg,
      var(--crt-fpc-bg-start, #ffffff) 0%,
      var(--crt-fpc-bg-end, #fbf8f3) 100%
    );
  color: #1f2933;
  padding: clamp(64px, 7vw, 104px) 20px clamp(58px, 6vw, 88px);
  box-sizing: border-box;
  scroll-margin-top: 110px;
}

.crt-fpc *,
.crt-fpc *::before,
.crt-fpc *::after {
  box-sizing: border-box;
}

.crt-fpc__inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.crt-fpc__top {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1fr);
  gap: clamp(34px, 5vw, 76px);
  align-items: center;
}

.crt-fpc__content {
  max-width: 600px;
}

.crt-fpc__eyebrow {
  margin: 0 0 18px;
  font-family: var(--crt-fpc-eyebrow-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-eyebrow-font-size, 18px);
  line-height: 1.45;
  font-weight: var(--crt-fpc-eyebrow-font-weight, 300);
  font-style: var(--crt-fpc-eyebrow-font-style, normal);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--crt-fpc-eyebrow-color, #b45f06);
}

/* Beat inline richtext spans still using legacy bronze (#8a6f4d / 500). */
.crt-fpc__eyebrow,
.crt-fpc__eyebrow p,
.crt-fpc__eyebrow span {
  color: #b45f06 !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  letter-spacing: 0.13em !important;
  line-height: 1.45 !important;
  text-transform: uppercase !important;
}

.crt-fpc__title {
  margin: 0;
  font-family: var(--crt-fpc-title-font-family, Montserrat, Arial, sans-serif);
  font-size: clamp(36px, 4.8vw, var(--crt-fpc-title-font-size, 58px));
  line-height: 1.04;
  font-weight: var(--crt-fpc-title-font-weight, 400);
  font-style: var(--crt-fpc-title-font-style, normal);
  letter-spacing: -0.055em;
  color: var(--crt-fpc-title-color, #17202a);
}

/* Rich text — eyebrow + title (see .cursor/rules/crt-module-rich-text.mdc) */
.crt-fpc-richtext :is(p, ul, ol) {
  margin: 0;
}

.crt-fpc__eyebrow.crt-fpc-richtext :is(p, ul, ol),
.crt-fpc__title-text.crt-fpc-richtext :is(p, ul, ol) {
  margin: 0;
  display: inline;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-decoration: inherit;
}

.crt-fpc__eyebrow.crt-fpc-richtext :is(p, ul, ol) + :is(p, ul, ol),
.crt-fpc__title-text.crt-fpc-richtext :is(p, ul, ol) + :is(p, ul, ol) {
  margin-top: 0;
}

.crt-fpc__eyebrow.crt-fpc-richtext :is(p, ul, ol) span,
.crt-fpc__title-text.crt-fpc-richtext :is(p, ul, ol) span,
.crt-fpc__title-text.crt-fpc-richtext > span {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-decoration: inherit;
}

.crt-fpc__title-text {
  display: block;
}

.crt-fpc__intro {
  margin: 22px 0 0;
  max-width: 560px;
  font-family: var(--crt-fpc-intro-font-family, Montserrat, Arial, sans-serif);
  font-size: clamp(15px, 1.35vw, var(--crt-fpc-intro-font-size, 17px));
  line-height: 1.72;
  font-weight: var(--crt-fpc-intro-font-weight, 300);
  font-style: var(--crt-fpc-intro-font-style, normal);
  color: var(--crt-fpc-intro-color, rgba(31, 41, 51, 0.74));
}

.crt-fpc__intro p,
.crt-fpc__form-intro p,
.crt-fpc__privacy p,
.crt-fpc__fallback p {
  margin: 0;
}

.crt-fpc__intro p + p,
.crt-fpc__form-intro p + p,
.crt-fpc__privacy p + p,
.crt-fpc__fallback p + p {
  margin-top: 10px;
}

.crt-fpc__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.crt-fpc__action {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px 22px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.035em;
  text-decoration: none;
  transition:
    background 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease,
    box-shadow 180ms ease;
}

.crt-fpc__action--whatsapp {
  color: var(--crt-fpc-primary-button-color, #ffffff);
  background: var(--crt-fpc-primary-button-bg, #17202a);
  border: 1px solid var(--crt-fpc-primary-button-bg, #17202a);
  box-shadow: 0 14px 34px rgba(23, 32, 42, 0.14);
  font-family: var(--crt-fpc-primary-button-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-primary-button-font-size, 13px);
  font-weight: var(--crt-fpc-primary-button-font-weight, 500);
  font-style: var(--crt-fpc-primary-button-font-style, normal);
}

.crt-fpc__action--email {
  color: var(--crt-fpc-secondary-button-color, #17202a);
  background: var(--crt-fpc-secondary-button-bg, rgba(255, 255, 255, 0.7));
  border: 1px solid var(--crt-fpc-secondary-button-border, rgba(23, 32, 42, 0.22));
  font-family: var(--crt-fpc-secondary-button-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-secondary-button-font-size, 13px);
  font-weight: var(--crt-fpc-secondary-button-font-weight, 500);
  font-style: var(--crt-fpc-secondary-button-font-style, normal);
}

.crt-fpc__action:hover,
.crt-fpc__action:focus {
  transform: translateY(-1px);
}

.crt-fpc__action--whatsapp:hover,
.crt-fpc__action--whatsapp:focus {
  background: var(--crt-fpc-primary-button-hover-bg, #2a3644);
  border-color: var(--crt-fpc-primary-button-hover-bg, #2a3644);
  color: var(--crt-fpc-primary-button-color, #ffffff);
}

.crt-fpc__action--email:hover,
.crt-fpc__action--email:focus {
  background: var(--crt-fpc-primary-button-bg, #17202a);
  border-color: var(--crt-fpc-primary-button-bg, #17202a);
  color: var(--crt-fpc-primary-button-color, #ffffff);
}

.crt-fpc__action-icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
}

.crt-fpc__image-wrap {
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: 30px;
  background: var(--crt-fpc-image-bg, #e8e1d6);
  box-shadow: 0 24px 64px rgba(23, 32, 42, 0.12);
  aspect-ratio: 16 / 9;
}

.crt-fpc__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.crt-fpc__image-placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 320px;
  align-items: center;
  justify-content: center;
  padding: 28px;
  text-align: center;
  font-family: var(--crt-fpc-eyebrow-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-eyebrow-font-size, 18px);
  line-height: 1.4;
  font-weight: var(--crt-fpc-eyebrow-font-weight, 500);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(31, 41, 51, 0.52);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.24), rgba(255,255,255,0)),
    var(--crt-fpc-image-bg, #e8e1d6);
}

.crt-fpc__form-card {
  width: 100%;
  margin: clamp(36px, 5vw, 58px) auto 0;
  padding: clamp(24px, 3.4vw, 38px);
  border: 1px solid var(--crt-fpc-form-card-border, rgba(23, 32, 42, 0.07));
  border-radius: 30px;
  background: var(--crt-fpc-form-card-bg, rgba(255, 255, 255, 0.86));
  box-shadow: 0 22px 58px rgba(23, 32, 42, 0.08);
  backdrop-filter: blur(6px);
}

.crt-fpc__form-header {
  max-width: 680px;
  margin: 0 auto 24px;
  text-align: center;
}

.crt-fpc__form-title {
  margin: 0;
  font-family: var(--crt-fpc-form-title-font-family, Montserrat, Arial, sans-serif);
  font-size: clamp(22px, 2vw, var(--crt-fpc-form-title-font-size, 30px));
  line-height: 1.18;
  font-weight: var(--crt-fpc-form-title-font-weight, 400);
  font-style: var(--crt-fpc-form-title-font-style, normal);
  letter-spacing: -0.035em;
  color: var(--crt-fpc-form-title-color, #17202a);
}

.crt-fpc__form-intro {
  margin: 10px 0 0;
  font-family: var(--crt-fpc-form-intro-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-form-intro-font-size, 14px);
  line-height: 1.65;
  font-weight: var(--crt-fpc-form-intro-font-weight, 300);
  font-style: var(--crt-fpc-form-intro-font-style, normal);
  color: var(--crt-fpc-form-intro-color, rgba(31, 41, 51, 0.72));
}

.crt-fpc__form-wrap {
  width: 100%;
}

.crt-fpc__zone {
  display: block;
  margin: 0 0 16px;
}

.crt-fpc__zone-label {
  display: block;
  margin: 0 0 8px;
  font-family: var(--crt-fpc-form-label-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-form-label-font-size, 12px);
  line-height: 1.4;
  font-weight: var(--crt-fpc-form-label-font-weight, 500);
  color: var(--crt-fpc-form-label-color, rgba(31, 41, 51, 0.78));
}

.crt-fpc__hsform {
  min-height: 160px;
}
  width: 100%;
  max-width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  border: 1px solid var(--crt-fpc-form-input-border, rgba(23, 32, 42, 0.16));
  border-radius: 12px;
  background: #ffffff;
  color: var(--crt-fpc-form-input-color, #17202a);
  font-family: var(--crt-fpc-form-input-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-form-input-font-size, 14px);
}

.crt-fpc__fallback {
  padding: 22px;
  border: 1px dashed rgba(23, 32, 42, 0.22);
  border-radius: 18px;
  background: var(--crt-fpc-fallback-bg, rgba(247, 244, 239, 0.7));
  font-family: var(--crt-fpc-fallback-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-fallback-font-size, 14px);
  line-height: 1.65;
  font-weight: var(--crt-fpc-fallback-font-weight, 300);
  color: var(--crt-fpc-fallback-color, rgba(31, 41, 51, 0.72));
}

.crt-fpc__privacy {
  margin: 22px auto 0;
  max-width: 720px;
  text-align: center;
  font-family: var(--crt-fpc-privacy-font-family, Montserrat, Arial, sans-serif);
  font-size: var(--crt-fpc-privacy-font-size, 13px);
  line-height: 1.55;
  font-weight: var(--crt-fpc-privacy-font-weight, 300);
  color: var(--crt-fpc-privacy-color, rgba(31, 41, 51, 0.54));
}

/* =========================================================
   HubSpot embedded form cleanup
   This targets common HubSpot legacy/new embedded form markup.
========================================================= */

.crt-fpc__form-wrap form,
.crt-fpc__form-wrap .hs-form {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.crt-fpc__form-wrap fieldset {
  max-width: none !important;
  width: 100% !important;
}

/* Force compact horizontal layout on desktop */
.crt-fpc__form-wrap .hs-form fieldset.form-columns-1,
.crt-fpc__form-wrap .hs-form fieldset.form-columns-2,
.crt-fpc__form-wrap .hs-form fieldset.form-columns-3 {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 18px 26px !important;
  margin: 0 !important;
}

.crt-fpc__form-wrap .hs-form-field,
.crt-fpc__form-wrap .field {
  margin: 0 0 18px !important;
  padding: 0 !important;
}

.crt-fpc__form-wrap .hs-form fieldset.form-columns-1 .hs-form-field,
.crt-fpc__form-wrap .hs-form fieldset.form-columns-2 .hs-form-field,
.crt-fpc__form-wrap .hs-form fieldset.form-columns-3 .hs-form-field {
  float: none !important;
  width: auto !important;
}

.crt-fpc__form-wrap .hs-form fieldset.form-columns-1 .hs-form-field {
  flex: 1 1 100% !important;
}

.crt-fpc__form-wrap .hs-form fieldset.form-columns-2 .hs-form-field {
  flex: 1 1 calc(50% - 13px) !important;
}

.crt-fpc__form-wrap .hs-form fieldset.form-columns-3 .hs-form-field {
  flex: 1 1 calc(33.333% - 18px) !important;
}

/* Message field should become full width whenever HubSpot uses textarea */
.crt-fpc__form-wrap .hs-form-field:has(textarea) {
  flex-basis: 100% !important;
  width: 100% !important;
}

.crt-fpc__form-wrap label {
  display: block !important;
  margin: 0 0 8px !important;
  font-family: var(--crt-fpc-form-label-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: var(--crt-fpc-form-label-font-size, 12px) !important;
  line-height: 1.4 !important;
  font-weight: var(--crt-fpc-form-label-font-weight, 500) !important;
  color: var(--crt-fpc-form-label-color, rgba(31, 41, 51, 0.78)) !important;
}

.crt-fpc__form-wrap .hs-form-required {
  color: var(--crt-fpc-eyebrow-color, #8a6f4d) !important;
}

.crt-fpc__form-wrap .input,
.crt-fpc__form-wrap .hs-input {
  width: 100% !important;
  max-width: none !important;
}

.crt-fpc__form-wrap input,
.crt-fpc__form-wrap textarea,
.crt-fpc__form-wrap select {
  width: 100% !important;
  min-height: 44px !important;
  padding: 11px 13px !important;
  border: 1px solid var(--crt-fpc-form-input-border, rgba(23, 32, 42, 0.16)) !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: var(--crt-fpc-form-input-color, #17202a) !important;
  font-family: var(--crt-fpc-form-input-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: var(--crt-fpc-form-input-font-size, 14px) !important;
  line-height: 1.4 !important;
  font-weight: var(--crt-fpc-form-input-font-weight, 400) !important;
  box-shadow: none !important;
  outline: none !important;
}

.crt-fpc__form-wrap input:focus,
.crt-fpc__form-wrap textarea:focus,
.crt-fpc__form-wrap select:focus {
  border-color: var(--crt-fpc-form-input-focus-border, rgba(138, 111, 77, 0.52)) !important;
  box-shadow: 0 0 0 3px rgba(138, 111, 77, 0.09) !important;
}

.crt-fpc__form-wrap textarea {
  min-height: 92px !important;
  resize: vertical !important;
}

/* Help text / descriptions */
.crt-fpc__form-wrap .hs-field-desc,
.crt-fpc__form-wrap .hs-richtext {
  margin: 6px 0 0 !important;
  font-family: var(--crt-fpc-privacy-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: var(--crt-fpc-privacy-font-weight, 300) !important;
  color: var(--crt-fpc-privacy-color, rgba(31, 41, 51, 0.62)) !important;
}

/* Legal / consent text */
.crt-fpc__form-wrap .legal-consent-container,
.crt-fpc__form-wrap .hs-dependent-field {
  margin-top: 6px !important;
  font-family: var(--crt-fpc-privacy-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--crt-fpc-privacy-color, rgba(31, 41, 51, 0.62)) !important;
}

.crt-fpc__form-wrap .legal-consent-container p,
.crt-fpc__form-wrap .legal-consent-container div,
.crt-fpc__form-wrap .legal-consent-container span,
.crt-fpc__form-wrap .legal-consent-container label {
  font-family: var(--crt-fpc-privacy-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  color: var(--crt-fpc-privacy-color, rgba(31, 41, 51, 0.62)) !important;
}

.crt-fpc__form-wrap .legal-consent-container a {
  color: var(--crt-fpc-title-color, #17202a) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* Submit */
.crt-fpc__form-wrap .hs-submit,
.crt-fpc__form-wrap .actions {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 6px 0 0 !important;
  padding: 0 !important;
}

.crt-fpc__form-wrap input[type="submit"],
.crt-fpc__form-wrap .hs-button {
  display: inline-flex !important;
  width: auto !important;
  min-width: 210px !important;
  min-height: 48px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 28px !important;
  border: 1px solid var(--crt-fpc-primary-button-bg, #17202a) !important;
  border-radius: 999px !important;
  background: var(--crt-fpc-primary-button-bg, #17202a) !important;
  color: var(--crt-fpc-primary-button-color, #ffffff) !important;
  font-family: var(--crt-fpc-primary-button-font-family, Montserrat, Arial, sans-serif) !important;
  font-size: var(--crt-fpc-primary-button-font-size, 13px) !important;
  line-height: 1 !important;
  font-weight: var(--crt-fpc-primary-button-font-weight, 500) !important;
  font-style: var(--crt-fpc-primary-button-font-style, normal) !important;
  letter-spacing: 0.035em !important;
  cursor: pointer !important;
  text-align: center !important;
  box-shadow: 0 14px 34px rgba(23, 32, 42, 0.15) !important;
  transition:
    background 180ms ease,
    border-color 180ms ease,
    transform 180ms ease,
    box-shadow 180ms ease !important;
}

.crt-fpc__form-wrap input[type="submit"]:hover,
.crt-fpc__form-wrap .hs-button:hover {
  background: var(--crt-fpc-primary-button-hover-bg, #2a3644) !important;
  border-color: var(--crt-fpc-primary-button-hover-bg, #2a3644) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 18px 42px rgba(23, 32, 42, 0.18) !important;
}

/* Errors */
.crt-fpc__form-wrap .hs-error-msgs {
  margin: 7px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.crt-fpc__form-wrap .hs-error-msgs label {
  margin: 0 !important;
  color: #9a3412 !important;
  font-size: 18px !important;
}

/* Phone input / intl field basic normalization */
.crt-fpc__form-wrap .hs-phone .input,
.crt-fpc__form-wrap .hs_mobilephone .input {
  width: 100% !important;
}

.crt-fpc__form-wrap .hs-phone input,
.crt-fpc__form-wrap .hs_mobilephone input {
  width: 100% !important;
}

/* =========================
   Responsive
========================= */

@media (max-width: 1020px) {
  .crt-fpc__top {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .crt-fpc__content {
    max-width: 760px;
    text-align: center;
    margin: 0 auto;
  }

  .crt-fpc__intro {
    margin-left: auto;
    margin-right: auto;
  }

  .crt-fpc__actions {
    justify-content: center;
  }

  .crt-fpc__image-wrap {
    max-width: 820px;
    margin: 0 auto;
  }
}

@media (max-width: 760px) {
  .crt-fpc {
    padding: 52px 16px 58px;
    scroll-margin-top: 90px;
  }

  .crt-fpc__title {
    font-size: clamp(34px, 11vw, 48px);
  }

  .crt-fpc__image-wrap {
    border-radius: 24px;
    aspect-ratio: 1.22 / 1;
  }

  .crt-fpc__form-card {
    margin-top: 34px;
    padding: 24px 18px;
    border-radius: 24px;
  }

  .crt-fpc__form-wrap .hs-form fieldset.form-columns-1,
  .crt-fpc__form-wrap .hs-form fieldset.form-columns-2,
  .crt-fpc__form-wrap .hs-form fieldset.form-columns-3 {
    display: block !important;
  }

  .crt-fpc__form-wrap .hs-form fieldset.form-columns-1 .hs-form-field,
  .crt-fpc__form-wrap .hs-form fieldset.form-columns-2 .hs-form-field,
  .crt-fpc__form-wrap .hs-form fieldset.form-columns-3 .hs-form-field,
  .crt-fpc__form-wrap .hs-form-field {
    width: 100% !important;
    flex: none !important;
    margin-bottom: 15px !important;
  }

  .crt-fpc__form-wrap input[type="submit"],
  .crt-fpc__form-wrap .hs-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 560px) {
  .crt-fpc__actions {
    flex-direction: column;
  }

  .crt-fpc__action {
    width: 100%;
  }

  .crt-fpc__image-wrap {
    aspect-ratio: 1 / 1;
  }

  .crt-fpc__privacy {
    font-size: 12px;
  }
}
/* OUR APPROACH eyebrow size: fpc-size */

/* OUR APPROACH eyebrow size (18px) — match Featured / Our Approach */
.crt-fpc__eyebrow,
.crt-fpc__eyebrow p,
.crt-fpc__eyebrow span {
  font-size: 18px !important;
  line-height: 1.45 !important;
}
