/* CONTACT PAGE INTRO */

.lcr-contact-intro {
  max-width: 1000px;
  margin: 0 auto;
  padding: 40px 20px 0;
  box-sizing: border-box;
  text-align: left;
}

.lcr-contact-intro h1 {
  margin: 0 0 12px;
  color: #20262b;
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.2;
  font-weight: 700;
}

.lcr-contact-intro > p {
  margin: 0 0 28px;
  color: #59616a;
  font-size: 18px;
  line-height: 1.6;
}

.lcr-emergency {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 28px;
  background: #30373c;
  color: #fff;
  border-radius: 8px;
}

.lcr-emergency strong {
  display: block;
  margin-bottom: 5px;
  font-size: 22px;
  line-height: 1.3;
}

.lcr-emergency span {
  display: block;
  font-size: 15px;
  line-height: 1.5;
  color: #e1e5e8;
}

.lcr-emergency a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 6px;
  background: #f76b16;
  color: #fff;
  font-size: 19px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease;
}

.lcr-emergency a:hover {
  background: #d95105;
  color: #fff;
}

/* FORM PANEL — ONLY THIS CONTACT WEBFORM */

form.webform-submission-contact-us-form {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 24px;
  width: calc(100% - 40px);
  max-width: 960px;
  margin: 24px auto 50px;
  padding: 30px;
  box-sizing: border-box;
  border: 1px solid #dce1e5;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(25, 35, 45, 0.05);
  color: #252c33;
  text-align: left;
}

/* Your details heading */

form.webform-submission-contact-us-form::before {
  content: "Your details";
  grid-column: 1 / -1;
  display: block;
  margin: 0;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  color: #20262b;
}

form.webform-submission-contact-us-form *,
form.webform-submission-contact-us-form *::before,
form.webform-submission-contact-us-form *::after {
  box-sizing: border-box;
}

/* Reset existing theme spacing and widths */

form.webform-submission-contact-us-form .form-item {
  float: none;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  text-align: left;
}

/* Three contact fields across */

form.webform-submission-contact-us-form > .form-item-your-name,
form.webform-submission-contact-us-form > .form-item-phone-number,
form.webform-submission-contact-us-form > .form-item-e-mail-address {
  grid-column: span 2;
}

/* Consistent labels */

form.webform-submission-contact-us-form label {
  display: block;
  position: static;
  float: none;
  width: auto;
  margin: 0 0 8px;
  padding: 0;
  color: #333b43;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 500;
  text-align: left;
}

/* Consistent inputs */

form.webform-submission-contact-us-form input.form-text,
form.webform-submission-contact-us-form input.form-tel,
form.webform-submission-contact-us-form input.form-email,
form.webform-submission-contact-us-form select.form-select,
form.webform-submission-contact-us-form textarea.form-textarea {
  display: block;
  float: none;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  min-height: 46px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid #cbd2d9;
  border-radius: 6px;
  background: #fff;
  color: #252c33;
  box-shadow: none;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.4;
  text-align: left;
}

form.webform-submission-contact-us-form select.form-select {
  padding-right: 30px;
}

form.webform-submission-contact-us-form textarea.form-textarea {
  min-height: 125px;
  resize: vertical;
}

form.webform-submission-contact-us-form input:focus,
form.webform-submission-contact-us-form select:focus,
form.webform-submission-contact-us-form textarea:focus {
  border-color: #f76b16;
  outline: 2px solid rgba(247, 107, 22, 0.25);
  outline-offset: 2px;
}

form.webform-submission-contact-us-form .form-textarea-wrapper {
  width: 100%;
  margin: 0;
}

/* Remove old fieldset borders, beige background and shadows */

form.webform-submission-contact-us-form fieldset {
  display: block;
  position: static;
  float: none;
  min-width: 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 22px 0 0;
  border: 0;
  border-top: 1px solid #e3e7eb;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Normal document-flow headings: no overlapping labels */

form.webform-submission-contact-us-form fieldset > legend {
  display: block;
  position: static;
  float: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 20px;
  padding: 0;
  transform: none;
  background: transparent;
  color: #20262b;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  text-align: left;
}

form.webform-submission-contact-us-form .fieldset-legend {
  display: block;
  position: static;
  margin: 0;
  padding: 0;
  font: inherit;
}

/* Collection and delivery side by side */

form.webform-submission-contact-us-form
fieldset[data-drupal-selector="edit-collection-address-new"],
form.webform-submission-contact-us-form
fieldset[data-drupal-selector="edit-delivery-address-new"] {
  grid-column: span 3;
}

form.webform-submission-contact-us-form
.webform-address--wrapper > .fieldset-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
}

form.webform-submission-contact-us-form
.webform-address--wrapper > .fieldset-wrapper > .form-item {
  grid-column: 1 / -1;
}

/* Town and county share a row */

form.webform-submission-contact-us-form
.webform-address--wrapper .form-item-collection-address-new-city,
form.webform-submission-contact-us-form
.webform-address--wrapper .form-item-collection-address-new-state-province,
form.webform-submission-contact-us-form
.webform-address--wrapper .form-item-delivery-address-new-city,
form.webform-submission-contact-us-form
.webform-address--wrapper .form-item-delivery-address-new-state-province {
  grid-column: span 1;
}

/* Vehicle details */

form.webform-submission-contact-us-form
fieldset[data-drupal-selector="edit-vehicle-details"] {
  grid-column: 1 / -1;
}

form.webform-submission-contact-us-form
.vehicle-details > .fieldset-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 24px;
  margin: 0;
  padding: 0;
}

/* Registration and condition, then make and model */

form.webform-submission-contact-us-form
.vehicle-details .form-item-car-registration-vrm {
  grid-column: 1;
  grid-row: 1;
}

form.webform-submission-contact-us-form
.vehicle-details .form-item-state-of-vehicle {
  grid-column: 2;
  grid-row: 1;
}

form.webform-submission-contact-us-form
.vehicle-details .form-item-make {
  grid-column: 1;
  grid-row: 2;
}

form.webform-submission-contact-us-form
.vehicle-details .form-item-model {
  grid-column: 2;
  grid-row: 2;
}

form.webform-submission-contact-us-form
input[name="car_registration_vrm"] {
  min-height: 46px;
  border-color: #c8bd77;
  border-radius: 6px;
  background: #fff2ad;
  color: #20262b;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Enquiry spans the whole panel */

form.webform-submission-contact-us-form
.vehicle-details .form-item-your-enquiry {
  grid-column: 1 / -1;
  grid-row: 3;
  margin-top: 4px;
  padding-top: 22px;
  border-top: 1px solid #e3e7eb;
}

form.webform-submission-contact-us-form
.form-item-your-enquiry > label {
  margin-bottom: 14px;
  font-size: 21px;
  font-weight: 700;
}

/* Submit button */

form.webform-submission-contact-us-form .form-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding: 22px 0 0;
  border-top: 1px solid #e3e7eb;
}

form.webform-submission-contact-us-form
.form-actions .webform-button--submit {
  display: inline-block;
  width: auto;
  min-width: 220px;
  min-height: 50px;
  margin: 0;
  padding: 13px 26px;
  border: 0;
  border-radius: 6px;
  background: #f76b16;
  color: #fff;
  box-shadow: none;
  font-family: inherit;
  font-size: 17px;
  line-height: 1.4;
  font-weight: 700;
  text-transform: none;
  cursor: pointer;
  transition: background 0.2s ease;
}

form.webform-submission-contact-us-form
.form-actions .webform-button--submit:hover {
  background: #d95105;
}

.lcr-emergency a:focus-visible,
form.webform-submission-contact-us-form
.form-actions .webform-button--submit:focus-visible {
  outline: 3px solid #f76b16;
  outline-offset: 4px;
}

/* Other visible form elements, such as validation messages */

form.webform-submission-contact-us-form > .messages,
form.webform-submission-contact-us-form > .captcha {
  grid-column: 1 / -1;
}

/* Tablet and mobile */

@media (max-width: 760px) {
  .lcr-contact-intro {
    padding-top: 28px;
  }

  .lcr-emergency {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
    padding: 22px;
  }

  .lcr-emergency a {
    width: 100%;
  }

  form.webform-submission-contact-us-form {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    padding: 22px;
  }

  form.webform-submission-contact-us-form > .form-item-your-name,
  form.webform-submission-contact-us-form > .form-item-phone-number,
  form.webform-submission-contact-us-form > .form-item-e-mail-address,
  form.webform-submission-contact-us-form
  fieldset[data-drupal-selector="edit-collection-address-new"],
  form.webform-submission-contact-us-form
  fieldset[data-drupal-selector="edit-delivery-address-new"] {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  form.webform-submission-contact-us-form {
    padding: 20px 16px;
  }

  form.webform-submission-contact-us-form
  .webform-address--wrapper > .fieldset-wrapper,
  form.webform-submission-contact-us-form
  .vehicle-details > .fieldset-wrapper {
    grid-template-columns: minmax(0, 1fr);
  }

  form.webform-submission-contact-us-form
  .webform-address--wrapper > .fieldset-wrapper > .form-item,
  form.webform-submission-contact-us-form
  .vehicle-details > .fieldset-wrapper > .form-item {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  form.webform-submission-contact-us-form
  .form-actions .webform-button--submit {
    width: 100%;
    min-width: 0;
  }
}

/* Keep the mobile call button inside the emergency banner */
.lcr-emergency,
.lcr-emergency * {
  box-sizing: border-box;
}

.lcr-emergency a {
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 760px) {
  .lcr-emergency a {
    flex-shrink: 1;
    white-space: normal;
    text-align: center;
  }
}

/* Privacy notice adjustments */
.gemini-privacy h1 {
  text-transform: none;
}

.gemini-privacy h2 {
  font-size: clamp(20px, 2.5vw, 26px);
  text-transform: none;
}

/* Last updated date */
.gemini-privacy h1 + p {
  margin: 12px 0 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid #dde4eb;
  color: #64748b;
  font-size: 14px;
}

/* First section heading */
.gemini-privacy h2:first-of-type {
  margin-top: 28px;
}

/* Links */
.gemini-privacy a {
  color: #184b7a;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gemini-privacy a:hover {
  color: #102f4d;
}

/* Keep the final contact details at normal body size */
.gemini-privacy > p:last-child {
  font-size: 16px;
  color: #374151;
}