.elementor-widget-form .elementor-field-group > label, .elementor-widget-form .elementor-field-subgroup label{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group > label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-type-html{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-field-group .elementor-field{color:var( --e-global-color-text );}.elementor-widget-form .elementor-field-group .elementor-field, .elementor-widget-form .elementor-field-subgroup label{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .elementor-button{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form .e-form__buttons__wrapper__button-next{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-button[type="submit"]{background-color:var( --e-global-color-accent );}.elementor-widget-form .e-form__buttons__wrapper__button-previous{background-color:var( --e-global-color-accent );}.elementor-widget-form .elementor-message{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-form .e-form__indicators__indicator, .elementor-widget-form .e-form__indicators__indicator__label{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-form{--e-form-steps-indicator-inactive-primary-color:var( --e-global-color-text );--e-form-steps-indicator-active-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-completed-primary-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-color:var( --e-global-color-accent );--e-form-steps-indicator-progress-background-color:var( --e-global-color-text );--e-form-steps-indicator-progress-meter-color:var( --e-global-color-text );}.elementor-widget-form .e-form__indicators__indicator__progress__meter{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-52 .elementor-element.elementor-element-b20fce0{width:var( --container-widget-width, 62rem );max-width:62rem;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0% 0% 0% 0%;--container-widget-width:62rem;--container-widget-flex-grow:0;--e-form-steps-indicators-spacing:20px;--e-form-steps-indicator-padding:30px;--e-form-steps-indicator-inactive-secondary-color:#ffffff;--e-form-steps-indicator-active-secondary-color:#ffffff;--e-form-steps-indicator-completed-secondary-color:#ffffff;--e-form-steps-divider-width:1px;--e-form-steps-divider-gap:10px;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group{padding-right:calc( 0px/2 );padding-left:calc( 0px/2 );margin-bottom:10px;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-form-fields-wrapper{margin-left:calc( -0px/2 );margin-right:calc( -0px/2 );margin-bottom:-10px;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group.recaptcha_v3-bottomleft, .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group.recaptcha_v3-bottomright{margin-bottom:0;}body.rtl .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-labels-inline .elementor-field-group > label{padding-left:0px;}body:not(.rtl) .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-labels-inline .elementor-field-group > label{padding-right:0px;}body .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-labels-above .elementor-field-group > label{padding-bottom:0px;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-html{padding-bottom:0px;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-field:not(.elementor-select-wrapper){background-color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-select-wrapper select{background-color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .e-form__buttons__wrapper__button-next{color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-button[type="submit"]{color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-button[type="submit"] svg *{fill:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .e-form__buttons__wrapper__button-previous{color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .e-form__buttons__wrapper__button-next:hover{color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-button[type="submit"]:hover{color:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-button[type="submit"]:hover svg *{fill:#ffffff;}.elementor-52 .elementor-element.elementor-element-b20fce0 .e-form__buttons__wrapper__button-previous:hover{color:#ffffff;}:root{--page-title-display:none;}/* Start custom CSS for form, class: .elementor-element-b20fce0 *//* ============================================================
   Precious Moments — Contact: The Enquiry
   v1.4 — Elementor Pro Forms, refined editorial width.

   REFINEMENTS
   - Form is now capped at 58rem and centred.
   - Removed the previous calculated max-width that allowed
     the form to become too wide.
   - Horizontal padding remains responsive inside the shell.
   - Desktop submit button fits its text instead of stretching.
   - Mobile submit button remains full width.

   Requires:
   - Label Position: Above
   - Required Mark: Off
   - Elementor Style tab left empty
   - Parent container horizontal padding set to 0, so it does
     not stack with this form shell.

   Colour:
   Uses existing Precious Moments Global CSS tokens only.

   No !important.
   ============================================================ */


/* ============================================================
   FORM SHELL — CORRECTED
   ============================================================ */

/*
   Keep the Elementor widget itself full width so it behaves
   normally inside the page container.

   Constrain the actual form instead.
*/

.elementor-52 .elementor-element.elementor-element-b20fce0 {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}


/*
   THIS is the actual visual form width.

   58rem includes the form's internal horizontal breathing room.
*/
.elementor-52 .elementor-element.elementor-element-b20fce0 form.elementor-form {
  width: calc(100% - 2.5rem);
  max-width: 58rem;
  margin-left: auto;
  margin-right: auto;
}


/*
   Ensure Elementor's internal wrapper follows the form width
   rather than introducing its own viewport-sized behaviour.
*/
.elementor-52 .elementor-element.elementor-element-b20fce0 form.elementor-form .elementor-form-fields-wrapper {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* ============================================================
   FIELD RHYTHM
   ============================================================ */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-form-fields-wrapper {
  row-gap: clamp(2.25rem, 4vw, 3.25rem);
}

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group {
  margin-bottom: 0;
  padding-bottom: 0;
}


/* ============================================================
   LABELS AND PROMPTS
   ============================================================ */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group > .elementor-field-label {
  margin-bottom: 0.625rem;
  padding: 0;

  font-size: 1rem;
  line-height: 1.4;
  letter-spacing: 0;

  /*
     Deep Periwinkle is used because labels sit below the
     large-text threshold and require stronger contrast.
  */
  color: var(--pm-color-primary-hover);
}

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-description {
  margin: 0.5rem 0 0;

  font-size: 0.9375rem;
  line-height: 1.7;

  color: var(--pm-color-text);
}


/* ============================================================
   TEXT INPUTS + TEXTAREA
   ============================================================ */

/*
   Minimal bottom-rule treatment.

   No grey boxes.
   No filled fields.
   No rounded controls.
*/

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-field-textual {
  width: 100%;

  padding: 0 0 0.75rem;

  background: transparent;

  border: 0;
  border-bottom: 1px solid rgba(145, 105, 230, 0.34);
  border-radius: 0;

  box-shadow: none;

  /*
     16px+ prevents automatic zoom on iOS when focused.
  */
  font-size: 1.0625rem;
  line-height: 1.6;

  color: var(--pm-color-text);

  transition:
    border-color 0.25s ease;
}


/* ---------- Textarea ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group textarea.elementor-field-textual {
  min-height: 10rem;

  padding-bottom: 1rem;

  line-height: 1.85;

  resize: vertical;
}


/* ---------- Placeholder ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-field-textual::placeholder {
  color: var(--pm-color-text-muted);
  opacity: 1;
}


/* ============================================================
   FOCUS STATES
   ============================================================ */

/*
   Focus uses both:
   1. deeper/thicker bottom rule
   2. visible external outline

   This ensures the state is not dependent on colour alone.
*/

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-field-textual:focus {
  padding-bottom: calc(0.75rem - 1px);

  background: transparent;

  border-bottom:
    2px solid var(--pm-color-primary-hover);

  outline:
    2px solid var(--pm-color-primary-hover);

  outline-offset: 4px;

  box-shadow: none;
}

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group textarea.elementor-field-textual:focus {
  padding-bottom: calc(1rem - 1px);
}


/* ============================================================
   SERVICE SELECTION
   ============================================================ */

/*
   Real checkboxes remain visible and accessible.

   Options stack vertically so each choice has a comfortable
   interaction area.
*/

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup {
  display: flex;
  flex-direction: column;

  gap: 0.875rem;

  margin-top: 0.25rem;
}

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup .elementor-field-option {
  display: flex;
  align-items: center;

  gap: 0.875rem;
}


/* ---------- Checkbox base ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup input[type="checkbox"] {
  flex: none;

  width: 1.125rem;
  height: 1.125rem;

  margin: 0;

  appearance: none;
  -webkit-appearance: none;

  background: transparent;

  border:
    1px solid rgba(145, 105, 230, 0.34);

  border-radius: 0;

  cursor: pointer;

  transition:
    border-color 0.2s ease,
    background-color 0.2s ease;
}


/* ---------- Checked state ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup input[type="checkbox"]:checked {
  background: var(--pm-color-primary-hover);
  border-color: var(--pm-color-primary-hover);
}


/* ---------- Check mark ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup input[type="checkbox"]:checked::after {
  content: "";

  display: block;

  width: 0.3125rem;
  height: 0.625rem;

  margin: 0.0625rem auto 0;

  border-right:
    2px solid var(--pm-color-white);

  border-bottom:
    2px solid var(--pm-color-white);

  transform: rotate(45deg);
}


/* ---------- Checkbox focus ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup input[type="checkbox"]:focus-visible {
  outline:
    2px solid var(--pm-color-primary-hover);

  outline-offset: 3px;
}


/* ---------- Checkbox labels ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup .elementor-field-option label {
  margin: 0;

  font-size: 1.0625rem;
  line-height: 1.5;

  color: var(--pm-color-text);

  cursor: pointer;
}


/* ============================================================
   SUBMIT BUTTON
   ============================================================ */

/*
   The submit button should be the form's only strong solid
   colour event.

   Desktop:
   fit the button to its text.

   Mobile:
   full width.
*/

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit {
  width: auto;
  max-width: max-content;

  flex: 0 0 auto;

  align-self: flex-start;
  justify-content: flex-start;

  margin-top: clamp(1rem, 2vw, 1.75rem);
}


/* ---------- Button ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit .elementor-button {
  width: auto;

  min-height: 0;

  padding: 1.0625rem 2.5rem;

  background: var(--pm-color-primary-hover);

  border:
    1px solid var(--pm-color-primary-hover);

  border-radius: 0;

  box-shadow: none;

  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: 0.01em;

  color: var(--pm-color-text-inverse);

  transition:
    background-color 0.3s ease,
    border-color 0.3s ease;
}


/* ---------- Hover / focus ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit .elementor-button:hover,
.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit .elementor-button:focus {
  background: var(--pm-color-primary);
  border-color: var(--pm-color-primary);

  color: var(--pm-color-text-inverse);
}


/* ---------- Keyboard focus ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit .elementor-button:focus-visible {
  outline:
    2px solid var(--pm-color-primary-hover);

  outline-offset: 4px;
}


/* ============================================================
   VALIDATION + FORM MESSAGES
   ============================================================ */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group .elementor-help-inline {
  margin-top: 0.625rem;

  font-size: 0.9375rem;
  line-height: 1.6;

  color: var(--pm-color-error);
}


/* ---------- Invalid field ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-group.elementor-error .elementor-field-textual {
  border-bottom-color:
    var(--pm-color-error);
}


/* ---------- General message ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-message {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);

  padding: 0;

  background: transparent;

  border: 0;

  font-size: 1.0625rem;
  line-height: 1.85;

  color: var(--pm-color-text);
}


/* ---------- Success ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-message.elementor-message-success {
  color: var(--pm-color-heading);
}


/* ---------- Error ---------- */

.elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-message.elementor-message-danger {
  color: var(--pm-color-error);
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 1024px) {

  .elementor-52 .elementor-element.elementor-element-b20fce0 {
    max-width: 54rem;

    padding-left: clamp(1.25rem, 4vw, 2rem);
    padding-right: clamp(1.25rem, 4vw, 2rem);
  }

}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 760px) {

  /*
     Let the form use the available phone width while retaining
     the same page-edge breathing room.
  */

  .elementor-52 .elementor-element.elementor-element-b20fce0 {
    max-width: 100%;

    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }


  .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-form-fields-wrapper {
    row-gap: clamp(2rem, 8vw, 2.5rem);
  }


  .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-subgroup {
    gap: 1.125rem;
  }


  /*
     Desktop button is compact.
     Mobile button becomes full width for easier tapping.
  */

  .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit {
    width: 100%;
    max-width: none;

    flex: 0 0 100%;
  }

  .elementor-52 .elementor-element.elementor-element-b20fce0 .elementor-field-type-submit .elementor-button {
    width: 100%;

    text-align: center;
  }

}/* End custom CSS */