/* Public website spacing: loaded after page-specific styles. */
:root{--public-section-space:clamp(44px,6vw,76px);--public-card-space:clamp(20px,2.4vw,30px)}
main .section{padding-block:var(--public-section-space)}
main :is(.public-two-col,.guide-intro,.guide-explainer,.guide-blocks,.request-grid,.packages-layout,.package-grid,.quote-service-grid,.catalogue-grid,.area-support-grid,.area-faq-grid,.finder-layout,.help-layout)>*{min-width:0}
main :is(.public-card,.guide-block,.guide-explainer,.finder-panel,.preparation-card,.london-region){padding:var(--public-card-space)}
main :is(.public-card,.guide-block,.request-help,.request-bundle,.request-service-copy,.preparation-card,.catalogue-help,.package-summary)>:first-child{margin-top:0}
main :is(.public-card,.guide-block,.request-help,.request-bundle,.request-service-copy,.preparation-card,.catalogue-help,.package-summary)>:last-child{margin-bottom:0}
main :is(.public-two-col,.split-copy,.area-support-copy)>p:last-child{margin-bottom:0}
main :is(.public-actions,.intro-actions,.guide-booking .actions){row-gap:12px}
main .guide-booking{flex-wrap:wrap}
main .guide-booking>div:first-child{flex:1 1 360px;min-width:0}
main .guide-booking .actions{flex:0 1 auto}
main .public-card label :is(input,textarea,select){margin-top:0}
main .single-request-form .booking-fields{row-gap:22px}
main .single-request-form fieldset:last-of-type{padding-bottom:12px}
main .request-submit{margin-top:12px}
main .quote-booking-links .public-actions{margin-top:18px}
main :is(.quote-service,.home-category-name,.catalogue-card h3,.package-choice,.related-service){overflow-wrap:break-word}
main :is(.section-heading,.landlord-heading,.area-section-heading){gap:24px;margin-bottom:32px}
main :is(.section-heading,.landlord-heading,.area-section-heading)>p{margin-block:0}
footer .footer-top nav{flex-wrap:wrap;row-gap:14px}
footer .footer-contact{overflow-wrap:anywhere}
@media(max-width:800px){
  main :is(.section-heading,.landlord-heading,.area-section-heading)>p{margin-top:16px}
  main :is(.guide-intro,.guide-explainer,.public-two-col,.finder-layout,.help-layout,.area-support-grid,.area-faq-grid){gap:26px}
  main .guide-booking{gap:20px}
  main .guide-booking>div:first-child{flex-basis:auto}
}
@media(max-width:540px){
  main .container{padding-inline:20px}
  main :is(.single-request-form,.guide-booking,.catalogue-help,.package-summary){padding:20px}
  main .request-heading h1{font-size:clamp(32px,9vw,42px);line-height:1.16}
  main :is(.request-heading,.public-intro){padding-block:32px}
  main .request-body{padding-block:28px 44px}
  main .service-guide{padding-block:40px}
  main .guide-explainer{margin-block:28px}
  main .guide-quicklinks{margin-bottom:26px;gap:8px}
  main .guide-quicklinks a{padding:10px 13px}
  main .guide-faq{margin-top:32px}
  main .guide-faq details{padding:18px}
  main .public-photo{height:260px}
  main .package-support a{white-space:normal}
  main .area-service-search{padding:20px}
  main .area-faq-grid{gap:24px}
}
@media(max-width:420px){
  /* Keep the catalogue readable instead of squeezing copy beside a photo. */
  main .catalogue-card{grid-template-columns:minmax(0,1fr)}
  main .catalogue-card-photo{height:155px}
  main .catalogue-card-photo img{height:155px;min-height:0}
  main .catalogue-card-body{padding:20px}
  main .home-category-service{flex-wrap:wrap;gap:8px 12px}
  main .home-category-name{flex:1 1 150px}
}
