/* A slightly fuller, more readable scale without changing browser zoom. */
body { font-size: 16px; }
.container { max-width: 1320px; }
h2 { font-size: clamp(32px, 3.2vw, 45px); }
h3 { font-size: 20px; }
.eyebrow { font-size: 12px; }
.button { min-height: 54px; padding: 14px 24px; font-size: 14px; }
.button-small { min-height: 46px; padding: 12px 18px; font-size: 13px; }
.text-link { font-size: 14px; }
.utility-inner { font-size: 12px; }
.main-navigation { font-size: 14px; gap: 30px; }
.header-inner { min-height: 100px; }
.brand-name { font-size: 26px; }
.brand-name > span { font-size: 11px; }
.hero-copy h1 { font-size: clamp(48px, 5.1vw, 74px); }
.hero-description { font-size: 18px; line-height: 1.8; }
.hero-location { font-size: 13px; }
.scope-strip span { font-size: 13px; }
.scope-strip > .container { min-height: 74px; }
.section-intro > p,
.section-intro > div:last-child:not(:first-child) { font-size: 15.5px; max-width: 395px; }

/* Cards retain a consistent hierarchy even when their titles wrap. */
.category-card h3 { font-size: 18px; min-height: 51px; }
.category-bottom p { font-size: 13.5px; }
.category-enquiry h3 { font-size: 31px; min-height: 0; }
.category-enquiry .eyebrow { font-size: 10px; }
.image-note,
.product-image-note { font-size: 12px; color: #465d74; }
.company-intro > div > p:not(.eyebrow),
.about-statement > p,
.service-grid p { font-size: 15.5px; }
.sheet-label { font-size: 12px; }
.company-sheet dl > div { font-size: 14px; }
.process-copy h3 { font-size: 19px; }
.process-copy p { font-size: 14.5px; }
.process-step { font-size: 12px; }
.cta-inner h2 { font-size: 47px; }
.cta-inner p:not(.eyebrow) { font-size: 15.5px; }
.cta-email { font-size: 13px; }

/* Small map labels and controls should be as readable as the surrounding copy. */
.market-tabs button { min-height: 44px; font-size: 11px; }
.map-legend { font-size: 11px; }
.directory-heading .eyebrow { font-size: 11px; }
.region-row h3 { font-size: 13.5px; }
.region-row p { font-size: 12.5px; }
.directory-base strong { font-size: 13px; }
.directory-base span { font-size: 11px; }
.market-status { font-size: 12px; }

.page-intro > h1 { font-size: clamp(42px, 4.6vw, 66px); }
.page-intro > p:last-child { font-size: 18px; }
.breadcrumb { font-size: 11px; }
.about-statement h2 { font-size: 38px; }
.location-note { font-size: 14px; }
.service-grid h3 { font-size: 26px; }
.service-index { font-size: 11px; }
.footprint p { font-size: 14px; }
.footprint p > span { font-size: 11px; }
.document-heading > span:last-child { font-size: 11px; }
.corporate-facts > div { font-size: 14.5px; }
.corporate-aside h2 { font-size: 30px; }
.corporate-aside > p,
.aside-note { font-size: 14.5px; }
.aside-note > p,
.aside-note > .text-link { font-size: 13px; }
.product-index .eyebrow { font-size: 10px; }
.product-index nav > a { font-size: 13px; }
.index-contact { font-size: 11px; }
.product-detail h2 { font-size: 28px; }
.product-description { font-size: 14.5px; }
.product-detail summary,
.product-detail .text-link,
.category-footnote { font-size: 13px; }
.product-detail details > p { font-size: 14px; }
.product-photo-label { font-size: 11px; }

/* Form controls stay at least 16px at every breakpoint. */
.contact-email-block h2,
.form-heading h2 { font-size: 28px; }
.contact-email-block > a { font-size: 15px; }
.contact-email-block p,
.contact-location p,
.contact-guidance ul,
.contact-guidance p { font-size: 13px; }
.contact-location .eyebrow { font-size: 10px; }
.contact-location h3 { font-size: 16px; }
.contact-guidance h3 { font-size: 15px; }
.form-heading p { font-size: 12px; }
.form-grid label { font-size: 13.5px; }
.form-grid small { font-size: 11px; }
.form-grid input,
.form-grid select,
.form-grid textarea { font-size: 16px; min-height: 50px; }
.form-grid textarea { min-height: 145px; }
.form-privacy { font-size: 13px; }
.form-bottom p { font-size: 12px; }
.form-bottom > .button { font-size: 14px; }
.review-intro,
.enquiry-confirmation > p:not(.eyebrow) { font-size: 15px; }
.enquiry-review dl { font-size: 14px; }
.form-status:not(:empty) { font-size: 14px; }
.form-email-fallback { font-size: 13px; }
.privacy-notice summary,
.privacy-notice > div { font-size: 14px; }

.footer-top h2 { font-size: 13px; }
.footer-top > div > a:not(.brand):not(.text-link),
.footer-top > div > p,
.footer-top .text-link { font-size: 14px; }
.footer-bottom { font-size: 12px; }

@media (min-width: 1500px) {
  .hero-copy h1 { font-size: 78px; }
}

@media (max-width: 1150px) {
  .main-navigation { gap: 21px; font-size: 13px; }
  .header-inner { gap: 24px; }
  .hero-copy h1 { font-size: clamp(48px, 5.4vw, 62px); }
  .hero-description { font-size: 17px; }
  .category-card h3 { font-size: 17px; }
  .category-enquiry h3 { font-size: 29px; }
  .scope-strip span { font-size: 11px; }
  .market-tabs button { font-size: 10px; padding-inline: 10px; }
  .product-detail h2 { font-size: 26px; }
}

@media (max-width: 950px) and (min-width: 761px) {
  .header-inner { min-height: 90px; gap: 18px; }
  .brand-name { font-size: 23px; }
  .brand-name > span { font-size: 9.5px; }
  .main-navigation { gap: 14px; font-size: 12px; }
  .button-small { padding: 10px 12px; font-size: 12px; }
  .hero-actions > .button { font-size: 12px; padding: 13px 16px; gap: 14px; }
  .hero-description { font-size: 16px; }
  .scope-strip span { font-size: 10px; }
  .category-card h3 { font-size: 20px; }
  .category-enquiry h3 { font-size: 34px; }
  .category-bottom p { font-size: 14px; }
  .company-sheet dl > div { font-size: 13px; }
  .process-copy { padding-inline: 18px; }
  .process-copy h3 { font-size: 18px; }
  .process-copy p { font-size: 14px; }
  .cta-inner h2 { font-size: 42px; }
  .contact-email-block > a { font-size: 13px; }
}

@media (max-width: 760px) {
  .header-inner { min-height: 86px; gap: 0; }
  .brand-name { font-size: 24px; }
  .brand-name > span { font-size: 10px; }
  .utility-inner,
  .utility-inner > span { font-size: 11px; }
  .main-navigation,
  .main-navigation .nav-quote { font-size: 14px; }
  .menu-toggle { font-size: 12px; }
  .hero-copy h1 { font-size: clamp(44px, 9vw, 64px); }
  .hero-copy .eyebrow,
  .eyebrow { font-size: 11px; }
  .hero-description { font-size: 16.5px; }
  .hero-actions > .button { font-size: 13px; padding: 14px 20px; gap: 16px; }
  .hero-location { font-size: 12px; }
  .scope-strip span { font-size: 11px; letter-spacing: .05em; }
  .scope-strip > .container { gap: 16px; }
  .section-intro h2,
  .company-intro h2 { font-size: 35px; }
  .section-intro > p,
  .section-intro > div:last-child:not(:first-child) { font-size: 14.5px; }
  .category-card h3 { font-size: 16.5px; min-height: 46px; }
  .category-bottom p { font-size: 12px; }
  .category-enquiry h3 { font-size: 27px; min-height: 0; }
  .category-enquiry .eyebrow { font-size: 9px; }
  .image-note,
  .product-image-note { font-size: 11.5px; }
  .company-sheet dl > div { font-size: 13px; }
  .process-copy h3 { font-size: 21px; }
  .process-copy p { font-size: 14.5px; }
  .cta-inner h2 { font-size: 40px; }
  .cta-inner p:not(.eyebrow) { font-size: 14.5px; }
  .market-tabs button { font-size: 11px; }
  .region-row p { font-size: 13px; }
  .map-legend { font-size: 10px; }
  .page-intro > h1 { font-size: clamp(39px, 8vw, 53px); }
  .page-intro > p:last-child { font-size: 16px; }
  .about-statement h2 { font-size: 34px; }
  .corporate-facts dt { font-size: 12px; }
  .corporate-facts dd { font-size: 14.5px; }
  .product-index nav > a { font-size: 12px; }
  .product-detail h2 { font-size: 29px; }
  .product-description { font-size: 15.5px; }
  .contact-location h3 { font-size: 14px; }
  .contact-guidance h3 { font-size: 14px; }
  .contact-guidance ul,
  .contact-guidance p { font-size: 12px; }
  .form-panel { padding-inline: 22px; }
  .footer-top > div > a:not(.brand):not(.text-link),
  .footer-top > div > p,
  .footer-top > div:first-child > p,
  .footer-top .text-link { font-size: 13px; }
  .footer-bottom { font-size: 11px; }
}

@media (max-width: 380px) {
  .hero-copy h1 { font-size: 43px; }
  .hero-actions > .button { font-size: 13px; gap: 12px; }
  .scope-strip span { font-size: 10px; }
  .category-card h3 { font-size: 20px; min-height: 0; }
  .category-enquiry h3 { font-size: 31px; }
  .category-bottom p { font-size: 13px; }
  .company-sheet dl > div { grid-template-columns: 1fr; gap: 6px; }
  .form-panel { padding-inline: 18px; }
  .form-grid small { display: inline-block; }
  .form-heading h2 { font-size: 27px; }
  .review-actions > .button { min-width: 0; flex-basis: 100%; }
}

/* Contact details stay lightweight: an address illustration and a map link. */
.contact-email-block > .contact-telephone { display: flex; align-items: center; gap: 12px; width: fit-content; min-height: 52px; margin-top: 15px; }
.contact-telephone > .icon { width: 19px; height: 19px; }
.contact-telephone small { display: block; color: var(--body); font-size: 11px; font-weight: 500; line-height: 1.5; }
.contact-location.contact-location-card { padding: 0; margin-block: 28px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.location-illustration { display: block; width: 100%; height: auto; background: #f4f8fc; border-bottom: 1px solid #e3edf6; }
.location-details { padding: 20px 22px 15px; }
.contact-location-card .eyebrow { display: block; margin-bottom: 10px; font-size: 10px; }
.contact-location-card h3 { font-size: 21px; line-height: 1.3; }
.contact-location-card .location-floor { margin: 5px 0 14px; font-size: 13px; color: var(--blue); font-weight: 650; }
.location-details address { font-style: normal; color: var(--body); font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.location-map-link { margin-top: 14px; gap: 8px; font-size: 12px; min-height: 44px; }
.location-map-link > .icon:last-child { margin-left: auto; width: 16px; }
@media (max-width: 950px) and (min-width: 761px) {
  .location-details { padding-inline: 17px; }
  .contact-location-card h3 { font-size: 19px; }
  .location-details address { font-size: 12px; }
}
@media (max-width: 760px) {
  .contact-info { grid-template-columns: 1fr; gap: 26px; }
  .contact-location.contact-location-card { margin: 0; }
  .contact-location-card h3 { font-size: 22px; }
  .location-details address { font-size: 14px; }
  .contact-location-card .location-illustration { max-height: 170px; object-fit: contain; }
  .contact-email-block > .contact-telephone { font-size: 16px; }
}
