.privacy-dialog {
  box-sizing: border-box;
  width: min(760px, calc(100% - 32px));
  max-height: min(88svh, 960px);
  margin: auto;
  padding: 24px 36px 40px;
  overflow: auto;
  border: 1px solid #514b4b;
  background: #fbfaf6;
  color: #19191a;
  font:
    400 16px/1.8 Sora,
    sans-serif;
}
.privacy-dialog::backdrop {
  background: rgb(40 37 48 / 70%);
}
.privacy-dialog .privacy-close-row {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 12px;
}
.privacy-dialog .privacy-close {
  min-width: 80px;
  min-height: 44px;
  padding: 8px 18px;
  border: 0;
  border-radius: 999px;
  background: #a33b2b;
  color: #fbfaf6;
  font: inherit;
  cursor: pointer;
}
.privacy-dialog .privacy-close:focus-visible {
  outline: 3px solid #19191a;
  outline-offset: 4px;
}
.privacy-dialog h2 {
  margin: 0 0 24px;
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: -0.03em;
}
.privacy-dialog h3 {
  margin: 28px 0 12px;
  font-size: 19px;
  line-height: 1.4;
}
.privacy-dialog p {
  margin: 0 0 18px;
}
.privacy-dialog a {
  color: inherit;
  text-underline-offset: 3px;
}
.offer-body #form-status[data-state="error"] {
  color: #a33b2b;
}
.offer-body #form-status a {
  text-underline-offset: 3px;
}
.offer-body #interim-enquiry button[aria-busy="true"] {
  cursor: progress;
}

/* Preserve the complete portrait while reserving room for the results and
   the start of the next section on wide, shorter desktop windows. */
@media (min-width: 1101px) {
  .hero-layout {
    --hero-reserved-height: 189px;
    grid-template-columns:
      minmax(0, 1fr)
      min(50vw, calc((100svh - var(--hero-reserved-height)) * 20 / 27));
  }
  .hero-inner {
    padding-top: clamp(88px, 10.83svh, 116px);
  }
  .hero h1 {
    font-size: clamp(40px, min(4.45vw, 5.416svh), 64px);
  }
  .hero .qualification {
    margin-bottom: clamp(16px, 1.86svh, 20px);
  }
  .hero-lead {
    margin-top: clamp(16px, 2.24svh, 24px);
    margin-bottom: clamp(18px, 2.43svh, 26px);
  }
}
@media (min-width: 1101px) and (max-height: 950px) {
  .hero-layout {
    --hero-reserved-height: 226px;
  }
  .hero-call {
    padding-inline: 18px;
  }
  .hero-call-copy {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .hero-call-name strong {
    font-size: 22px;
  }
  .hero-call-details {
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
  }
  .hero-call-details .hero-call-location {
    font-size: 12px;
    line-height: 1.4;
  }
}

/* On phones, each body photograph introduces its own section. The hero
   keeps its existing text-then-photograph sequence. */
@media (max-width: 800px) {
  .offer-body .body-panel > .body-media,
  .offer-body .body-value-offer .body-panel > .body-media,
  .offer-body .contact-with-photo > .contact-photo {
    order: -1;
  }
}
@media (max-width: 520px) {
  .privacy-dialog {
    padding: 18px 22px 28px;
    font-size: 15px;
  }
  .privacy-dialog h2 {
    font-size: 26px;
  }
}

/* Let the phone caption read in one column rather than squeezing the
   experience and location beside the name on narrow screens. */
@media (max-width: 580px) {
  .hero-call {
    align-items: flex-start;
  }
  .hero-phone-icon {
    margin-top: 3px;
  }
  .hero-call-copy {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .hero-call-name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
  }
  .hero-call-prompt {
    margin-top: 0;
  }
  .hero-call-details {
    text-align: left;
  }
  .hero h1 {
    font-size: clamp(34px, 10.667vw, 40px);
  }
}

@media (max-width: 520px) {
  .offer-body .body-title,
  .offer-body .body-contact h2 {
    font-size: clamp(28px, 8.5vw, 39px);
  }
  .offer-body .price-additions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 24px;
  }
  .offer-body .price-additions .logistics-definition {
    min-width: 0;
    max-width: 100%;
  }
  .offer-body .price-additions .logistics-definition[open] {
    flex-basis: 100%;
  }
  .offer-body .price-additions .logistics-definition > summary {
    max-width: 100%;
  }
  .offer-body .price-additions .payment-card-tax {
    position: static;
  }
}
