/* The home page continues the photograph through its full footer. Interior
   pages end with the quote alone. The cached image has no observer dependency. */
.heritage-contact-scene {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  color: #fff;
  background-color: #171717;
  background-image: linear-gradient(rgba(0, 0, 0, .65), rgba(0, 0, 0, .74)), url("/assets/responsive/5e7bf73182982b6c550f-1920w-q88.webp");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.heritage-contact-scene--quote-only { background-position: center top; }
/* Neutralise the separate Elementor backdrops and overlay layers only. */
.heritage-contact-scene :is(.heritage-shared-quote, .elementor-location-footer, .e-con, .e-con-inner, .elementor-section, .elementor-container, .elementor-background-overlay, .elementor-motion-effects-layer) {
  --background-overlay: none !important;
  --overlay-opacity: 0 !important;
  background-color: transparent !important;
  background-image: none !important;
}
.heritage-contact-scene :is(.heritage-shared-quote, .elementor-location-footer, .e-con, .elementor-section)::before,
.heritage-contact-scene :is(.heritage-shared-quote, .elementor-location-footer, .e-con, .elementor-section)::after {
  background-color: transparent !important;
  background-image: none !important;
}
.heritage-contact-scene > .heritage-shared-quote,
.heritage-contact-scene > .elementor-location-footer {
  margin: 0 !important;
}
/* The original Lato/Avenir Round font rules remain in reference-original.css. */
.heritage-shared-quote {
  width: 100%;
  margin: 0;
  padding: 0;
  color: #fff;
  background: transparent;
}
/* Reference screenshot: wide 60/40 composition, a generous blank area after
   the copy, 60px input rows with 20px separation, and a 124px message field.
   PHONE keeps the same row rhythm and adds one row to the section's height. */
.heritage-shared-quote .elementor-element.elementor-element-55293f51 {
  --overlay-opacity: 0;
  --padding-top: 104px;
  --padding-bottom: 104px;
  --padding-left: 3%;
  --padding-right: 14%;
  --content-width: 1784px;
}
.heritage-shared-quote .elementor-element.elementor-element-55293f51 > .e-con-inner {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  align-items: start;
  gap: 0;
  margin-inline: 0;
}
.heritage-shared-quote .elementor-element.elementor-element-112170ae,
.heritage-shared-quote .elementor-element.elementor-element-196ed7 {
  --width: 100%;
  width: 100%;
  min-width: 0;
}
.heritage-shared-quote .elementor-element.elementor-element-112170ae {
  --gap: 40px;
  --row-gap: 40px;
  --column-gap: 40px;
  gap: 40px;
}
.heritage-shared-quote .elementor-element.elementor-element-2436823b {
  --gap: 26px;
  --row-gap: 26px;
  --column-gap: 26px;
}
.heritage-shared-quote .elementor-element.elementor-element-4cd7d615 { --width: 46px; }
.heritage-shared-quote .elementor-element.elementor-element-1c2b835f img { max-width: 46px; }
.heritage-shared-quote .elementor-element.elementor-element-359ce963 > .elementor-widget-container {
  padding: 0 25% 0 0;
}
.heritage-shared-quote .elementor-element.elementor-element-359ce963 p {
  margin: 0 0 16px;
  color: #ffffffd9;
  font: 400 20px/30px "Avenir Round", sans-serif;
  letter-spacing: 0;
}
.heritage-shared-quote .elementor-element.elementor-element-359ce963 p:last-child { margin-bottom: 0; }
.heritage-shared-quote .elementor-element.elementor-element-6b2875d3 h2 {
  margin: 0;
  letter-spacing: 0;
  color: #fff;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 > .elementor-widget-container { padding: 0; }
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-form-fields-wrapper {
  margin: 0;
  row-gap: 20px;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field-group {
  margin: 0;
  padding: 0 22px 0 0 !important;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field {
  box-sizing: border-box;
  height: 60px;
  min-height: 60px;
  padding: 15px !important;
  box-shadow: none;
  color: #fff;
  opacity: 1;
}
/* Match Submit's translucent dark glass, full outline and rounded corners.
   Keep the photograph visible in the main quote and its copy in the menu. */
.heritage-shared-quote [data-heritage-quote-form] .elementor-field.elementor-field-textual {
  -webkit-appearance: none;
  appearance: none;
  background: #00000040 !important;
  box-shadow: none !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff;
  border: 1px solid #ffffff45 !important;
  border-radius: 5px !important;
}
.heritage-shared-quote [data-heritage-quote-form] .elementor-field.elementor-field-textual:is(:hover, :focus) {
  background: #00000066 !important;
  border-color: #ffffff80 !important;
}
/* Browser autofill can paint an !important background of its own. Clip that
   paint to the white text, then restore only Submit's translucent tint with
   an inset shadow. The photo remains visible; no opaque mask or delayed fill.
   :is() keeps either supported autofill spelling usable independently. */
.heritage-shared-quote [data-heritage-quote-form] .elementor-field.elementor-field-textual:is(:-webkit-autofill, :autofill) {
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff;
  box-shadow: inset 0 0 0 1000px #00000040 !important;
}
.heritage-shared-quote [data-heritage-quote-form] .elementor-field.elementor-field-textual:is(:-webkit-autofill, :autofill):is(:hover, :focus) {
  box-shadow: inset 0 0 0 1000px #00000066 !important;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field::placeholder {
  color: #ffffffe6;
  -webkit-text-fill-color: #ffffffe6;
  opacity: 1;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 textarea.elementor-field {
  height: 124px;
  min-height: 124px;
  resize: vertical;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field-type-submit {
  margin: 0;
  justify-content: flex-start;
  text-align: left;
}
.heritage-shared-quote .elementor-element.elementor-element-6764baa4 button[type="submit"] {
  position: relative;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 140px;
  max-width: 100%;
  min-width: 0;
  height: 44px;
  min-height: 44px;
  padding: 10px 12px;
  margin: 0;
  border: 0;
  border-radius: 5px;
  box-shadow: none;
}
/* Use the collection button's rectangle with the form's dark glass finish. */
.heritage-shared-quote :is(#reference-enquiry, #menu-enquiry) button[type="submit"] {
  background: #00000040;
  color: #fff;
  border: 1px solid #ffffff45;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 1px;
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.heritage-shared-quote :is(#reference-enquiry, #menu-enquiry) button[type="submit"]:enabled:is(:hover, :focus-visible) {
  background: #00000066;
  color: #fff;
  border-color: #ffffff80;
}
.heritage-shared-quote :is(#reference-enquiry, #menu-enquiry) button[type="submit"]::before {
  content: none;
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .heritage-shared-quote :is(#reference-enquiry, #menu-enquiry) button[type="submit"] { transition: none; }
}
.heritage-shared-quote .elementor-screen-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.heritage-shared-quote input:focus-visible,
.heritage-shared-quote textarea:focus-visible,
.heritage-shared-quote button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
@media (max-width: 1024px) {
  .heritage-shared-quote .elementor-element.elementor-element-55293f51 {
    --padding-top: 80px;
    --padding-bottom: 80px;
    --padding-left: 40px;
    --padding-right: 40px;
  }
  .heritage-shared-quote .elementor-element.elementor-element-55293f51 > .e-con-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
  }
  .heritage-shared-quote .elementor-element.elementor-element-359ce963 > .elementor-widget-container { padding: 0; }
  .heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field-group { padding: 0 !important; }
}
@media (max-width: 767px) {
  .heritage-shared-quote .elementor-element.elementor-element-55293f51 {
    --padding-top: 60px;
    --padding-bottom: 60px;
    --padding-left: 20px;
    --padding-right: 20px;
  }
  .heritage-shared-quote .elementor-element.elementor-element-55293f51 > .e-con-inner { gap: 36px; }
  .heritage-shared-quote .elementor-element.elementor-element-112170ae {
    --gap: 24px;
    --row-gap: 24px;
    --column-gap: 24px;
    gap: 24px;
  }
  .heritage-shared-quote .elementor-element.elementor-element-2436823b {
    --gap: 15px;
    --row-gap: 15px;
    --column-gap: 15px;
  }
  .heritage-shared-quote .elementor-element.elementor-element-4cd7d615 { --width: 30px; }
  .heritage-shared-quote .elementor-element.elementor-element-1c2b835f img { max-width: 30px; }
  .heritage-shared-quote .elementor-element.elementor-element-359ce963 p { font-size: 17px; line-height: 27px; }
}

/* The menu repeats the same illustrated Quote, scaled to fit its lower panel. */
.heritage-menu-quote {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  align-self: stretch;
  flex-shrink: 0;
  background-position: center top;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-55293f51 {
  --padding-top: 44px;
  --padding-bottom: 44px;
  --padding-left: 40px;
  --padding-right: 40px;
  --content-width: 100%;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-55293f51 > .e-con-inner {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  align-items: start;
  gap: 40px;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-112170ae {
  --gap: 24px;
  --row-gap: 24px;
  --column-gap: 24px;
  gap: 24px;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-2436823b {
  --gap: 18px;
  --row-gap: 18px;
  --column-gap: 18px;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-4cd7d615 { --width: 36px; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-1c2b835f img { max-width: 36px; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-227316aa { --spacer-size: 44px; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6b2875d3 .elementor-heading-title {
  font-family: Lato, Arial, sans-serif !important;
  font-size: clamp(52px, 5vw, 76px);
  line-height: 1.1;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-359ce963 > .elementor-widget-container { padding: 0; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-359ce963 p {
  max-width: 44ch;
  font-size: 16px;
  line-height: 26px;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-form-fields-wrapper { row-gap: 14px; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field-group { padding: 0 !important; }
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6764baa4 .elementor-field {
  min-height: 48px;
  height: 48px;
  padding: 12px !important;
  font-size: 14px;
}
.heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6764baa4 textarea.elementor-field {
  min-height: 100px;
  height: 100px;
}
@media (max-width: 1024px) {
  .heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-55293f51 > .e-con-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}
@media (max-width: 767px) {
  .heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-55293f51 {
    --padding-top: 30px;
    --padding-bottom: 30px;
    --padding-left: 20px;
    --padding-right: 20px;
  }
  .heritage-menu-quote .heritage-shared-quote .elementor-element.elementor-element-6b2875d3 .elementor-heading-title { font-size: 52px; }
}
