/* MK Mabale Holdings — responsive refinement, 6 September 2026.
   This is the final layout layer. Original artwork, wording and identity are retained.
   Breakpoints: 1200px cards / 1100px navigation / 900px editorial / 640px single-column.
   No fixed-width layout, clipping mask or disabled zoom is used to conceal content. */
:root {
  --page-gutter: clamp(20px, 2.5vw, 36px);
  --page-left: max(var(--page-gutter), env(safe-area-inset-left, 0px));
  --page-right: max(var(--page-gutter), env(safe-area-inset-right, 0px));
  --section-space: clamp(56px, 5.5vw, 84px);
  --header: 104px;
  --header-actual: 104px;
  --overlay-gap: 24px;
}
html { scroll-padding-top: 0; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-x: visible; min-width: 0; }
*, *::before, *::after { box-sizing: border-box; }
.container {
  width: min(var(--max), calc(100% - var(--page-left) - var(--page-right)));
  max-width: var(--max);
  margin-left: max(var(--page-left), calc((100% - var(--max)) / 2));
  margin-right: auto;
  min-width: 0;
}
section[id], footer[id], #main-content { scroll-margin-top: calc(var(--header-actual) + 20px); }
main, section, footer, form, figure { min-width: 0; }
:is(.header-inner,.header-actions,.cards,.about-grid,.values,.value,.services-head,
.section-split,.market-grid,.responsibility-grid,.project-cta-inner,.project-cta-actions,
.stats-inner,.footer-main,.contact-row,.precision-grid,.precision-overline,
.precision-assurance,.precision-actions,.standards-heading,.standards-grid,
.standards-note,.film-caption,.film-subcaption,.form-grid,.service-list) > * { min-width: 0; }
p, h1, h2, h3, h4, .eyebrow { overflow-wrap: anywhere; word-break: normal; }
h1, h2, h3 { text-wrap: pretty; }
a, button { touch-action: manipulation; }
button { white-space: normal; line-height: 1.5; }
button, input, textarea, select { max-width: 100%; font: inherit; }
svg { flex-shrink: 0; }
img, video { max-width: 100%; }
:is(.cta-secondary,.footer-links a,.contact-row a,.footer-tag,.global-line,
.footer-precision-link,.standard-reference) { overflow-wrap: anywhere; word-break: normal; }
.eyebrow { font-size: .6875rem; line-height: 1.8; letter-spacing: .25em; }
:is(.btn,.about-btn,.enquire,.cta-primary,.submit,.precision-cta,.standard-enquiry) {
  height: auto; min-height: 54px; padding-block: 14px; max-width: 100%;
}
:is(.btn,.about-btn,.enquire,.cta-primary,.precision-cta,.standard-enquiry) > :is(svg,span) { flex-shrink: 0; }
:is(.icon-btn,.menu-btn,.service-more,.film-control,.modal-close,.footer .socials a) {
  min-width: 44px; min-height: 44px;
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 4px;
}
/* Header: compact navigation begins before links run into the enquiry action. */
.site-header { height: var(--header); padding-top: env(safe-area-inset-top, 0px); box-sizing: content-box; }
.site-header.scrolled { height: 86px; }
.header-inner { height: 100%; grid-template-columns: 158px minmax(0,1fr) auto; gap: 24px; }
.brand { width: 158px; max-width: 100%; flex-shrink: 0; }
.brand img { width: 100%; height: 74px; object-fit: contain; }
.primary-nav { gap: clamp(16px,1.6vw,26px); font-size: .75rem; white-space: nowrap; }
.primary-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.header-actions { gap: 12px; flex-shrink: 0; }
.header-actions .enquire { font-size: .75rem; padding-inline: 22px; gap: 18px; }
.global-badge { display: none; }
.menu-btn { flex-shrink: 0; }
.menu-btn span { transition: transform .2s, opacity .2s; }
.menu-btn[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-btn[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.mobile-menu {
  top: var(--menu-top,var(--header-actual)); bottom: auto;
  padding: 16px var(--page-right) max(24px,env(safe-area-inset-bottom,0px)) var(--page-left);
  max-height: calc(var(--visual-height,100dvh) - var(--header-actual));
  overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}
.mobile-menu a,.mobile-menu button { min-height: 50px; font-size: .875rem; padding: 14px 8px; line-height: 1.5; }
.mobile-menu a.active { color: #86621d; background: #f7f5ef; }
.mobile-menu button { margin-top: 12px; padding: 15px; color: #fff; background: #111; border: 0; }
.menu-scrim { position: fixed; inset: 0; z-index: 998; background: #090e1259; }
body.overlay-locked { position: fixed; top: var(--locked-top); left: 0; right: 0; width: 100%; overflow: hidden; }
body.overlay-locked .site-header { position: fixed; top: 0; left: 0; right: 0; }
body.overlay-locked #main-content { padding-top: var(--header-actual); }
@media (min-width:1440px) { .global-badge { display: flex; } }
@media (max-width:1100px) {
  :root { --header: 86px; --header-actual: 86px; }
  .site-header,.site-header.scrolled { height: var(--header); }
  .header-inner { display: flex; justify-content: space-between; gap: 20px; }
  .brand { width: 140px; }
  .brand img { height: 66px; }
  .primary-nav,.global-badge { display: none; }
  .header-actions { margin-left: auto; }
  .menu-btn { display: block; width: 46px; height: 46px; }
  .header-actions .enquire { min-height: 48px; padding: 12px 18px; }
}
@media (min-width:1101px) { .mobile-menu.open,.menu-scrim { display: none; } }
/* The hero grows with its text, instead of clipping it at a fixed height. */
.hero { height: auto; min-height: clamp(590px,43vw,690px); }
.hero-inner { min-height: inherit; height: auto; padding-block: clamp(64px,6vw,96px); }
.hero-copy { width: min(610px,55%); padding: 0; }
.hero-kicker { white-space: normal; font-size: .625rem; line-height: 1.8; letter-spacing: .24em; margin-bottom: 24px; }
.hero h1 { font-size: clamp(3.375rem,4.55vw,4.75rem); line-height: 1.04; margin-bottom: 24px; text-wrap: balance; }
.hero p { font-size: .9375rem; line-height: 1.75; max-width: 510px; }
.hero-buttons { flex-wrap: wrap; gap: 14px 18px; align-items: stretch; }
.hero .btn { font-size: .6875rem; height: auto; min-height: 54px; padding: 15px 21px; gap: 18px; }
.hero .btn.precision-link { min-width: 0; }
.hero-signature { left: 0; }
.hero-copy::before { left: -16px; }
.hero-mantra { right: var(--page-right); }
@media (max-width:1100px) {
  .hero { min-height: 600px; }
  .hero-copy { width: min(630px,78%); }
  .hero h1 { font-size: clamp(3rem,6.5vw,3.875rem); }
  .hero-mantra { display: none; }
  .hero-photo { background-position: 60% 51%; }
}
/* Consistent section rhythm and minmax(0,1fr) tracks protect content at intermediate widths. */
#about,#services,.markets,.responsibility { padding-block: var(--section-space); }
.services-head { grid-template-columns: minmax(210px,.7fr) minmax(0,1.4fr) auto; gap: 32px; }
.services-title h2 { font-size: clamp(2.375rem,3.75vw,3.375rem); line-height: 1.08; }
.services-intro { font-size: 1rem; line-height: 1.75; }
.view-all { min-height: 44px; padding-block: 10px; font-size: .75rem; }
.cards,.market-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.service-card { min-height: 0; height: 100%; }
.service-media { height: auto; aspect-ratio: 516 / 296; flex-shrink: 0; }
.service-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.service-card::before { content: none; }
.service-body { padding: 30px 24px 20px; }
.service-index {
  position: absolute; right: 17px; top: -23px; z-index: 4;
  min-width: 44px; height: 44px; padding-inline: 8px; display: grid; place-items: center;
  color: #fff; background: #111; border: 1px solid #d7b05bb3;
  box-shadow: 0 8px 18px #0002; font: 400 .9375rem/1 var(--serif); letter-spacing: .08em;
}
.service-body h3 { font-size: 1.5rem; line-height: 1.18; }
.service-body p { font-size: .875rem; line-height: 1.7; }
.service-more { min-width: 48px; min-height: 48px; padding: 10px 0 0; font-size: 1.375rem; }
.about-grid { grid-template-columns: minmax(0,1.04fr) minmax(0,1.25fr) minmax(0,.92fr); gap: 32px; }
.about-copy { padding: 8px 0 0; }
.about-copy h2 { font-size: clamp(2.25rem,3.2vw,2.875rem); line-height: 1.1; }
.about-copy p { font-size: .9375rem; line-height: 1.8; }
.about-btn { font-size: .6875rem; line-height: 1.6; text-align: left; }
.about-media { height: auto; min-height: 325px; }
.about-media img { position: absolute; inset: 0; height: 116%; width: 100%; }
.values { grid-column: auto; border-top: 0; border-left: 1px solid #dedede; padding: 0 0 0 28px; grid-template-columns: minmax(0,1fr); gap: 26px; }
.value { grid-template-columns: 38px minmax(0,1fr); gap: 14px; }
.value h3 { font-size: .875rem; line-height: 1.5; }
.value p { font-size: .8125rem; line-height: 1.7; }
.section-split { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(32px,5vw,72px); }
.section-split h2 { font-size: clamp(2.25rem,3.5vw,3.125rem); line-height: 1.1; }
.section-split>p { font-size: .96875rem; line-height: 1.8; }
.market-card { padding: 26px; min-height: 0; }
.market-card h3 { font-size: 1.5rem; line-height: 1.18; max-width: none; }
.market-card p,.responsibility-card p { font-size: .875rem; line-height: 1.75; }
.responsibility-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.responsibility-card { min-height: 0; padding: 32px 28px; }
.responsibility-card h3 { font-size: 1.5rem; line-height: 1.18; }
.stats-inner { grid-template-columns: minmax(0,1.6fr) repeat(4,minmax(0,1fr)); gap: 0; padding-block: 48px; }
.stats-copy h2 { font-size: clamp(2.125rem,2.8vw,2.625rem); line-height: 1.12; }
.stats-copy { padding-right: 28px; }
.stat { padding: 10px 20px; }
.stat strong { font-size: clamp(2.25rem,3.4vw,3.125rem); line-height: 1.12; }
.stat.stat-region strong { font-size: 1.625rem; line-height: 1.3; }
.stat span { font-size: .875rem; line-height: 1.6; }
.project-cta-inner { grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); gap: clamp(32px,5vw,70px); }
.project-cta h2 { font-size: clamp(2.125rem,3.15vw,2.8125rem); line-height: 1.12; }
.project-cta p { font-size: .9375rem; line-height: 1.8; }
.project-cta-actions { max-width: none; }
.cta-primary { font-size: .6875rem; text-align: left; gap: 16px; }
.cta-secondary { font-size: .8125rem; line-height: 1.7; }
@media (max-width:1199px) {
  .cards,.market-grid,.standards-grid,.responsibility-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .services-head { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 18px 32px; }
  .view-all { grid-column: 1 / -1; justify-self: start; }
  .service-body { padding: 30px 26px 22px; }
  .service-body h3 { font-size: 1.625rem; }
  .about-grid { grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); }
  .values { grid-column: 1/-1; border-left: 0; border-top: 1px solid #ddd; padding: 30px 0 0; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .responsibility-card { border-bottom: 0; border-right: 1px solid #ddd; }
  .responsibility-card:nth-child(2n) { border-right: 0; }
  .responsibility-card:nth-child(-n+2) { border-bottom: 1px solid #ddd; }
  .stats-inner { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .stats-copy { grid-column: 1/-1; padding: 0 0 32px; }
  .stats-copy h2 { max-width: 700px; }
  .stat { border-top: 1px solid #ffffff40; border-left: 0; border-right: 1px solid #ffffff40; min-height: 140px; }
  .stat:last-child { border-right: 0; }
}
@media (max-width:1100px) {
  .pillars-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pillar { padding: 30px 26px; }
  .pillar:nth-child(2)::after { display: none; }
  .pillar:nth-child(-n+2) { border-bottom: 1px solid #ddd; }
}
.pillar h3 { font-size: .75rem; line-height: 1.55; }
.pillar p { font-size: .875rem; line-height: 1.65; max-width: 250px; }
/* The portrait film never exceeds its grid column; all controls remain finger-sized. */
.precision-section { padding-top: var(--section-space); }
.precision-grid { grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr); gap: clamp(36px,6vw,90px); padding-block: 52px 62px; }
.precision-copy { max-width: 645px; }
.precision-copy h2 { font-size: clamp(3.25rem,5.6vw,5.5rem); line-height: 1.08; }
.precision-copy>p { font-size: 1rem; line-height: 1.85; }
.precision-copy .film-kicker { font-size: .625rem; line-height: 1.8; letter-spacing: .16em; }
.film-kicker span { flex-shrink: 0; }
.precision-overline { flex-wrap: wrap; }
.precision-overline .eyebrow::before { flex-shrink: 0; }
.precision-overline .eyebrow { font-size: .6875rem; line-height: 1.8; }
.precision-overline>span { font-size: .625rem; line-height: 1.7; max-width: none; }
.precision-capabilities { display: flex; font-size: .75rem; line-height: 1.75; }
.precision-capabilities li { display: block; margin-bottom: 0; }
.precision-assurance strong { font-size: .8125rem; line-height: 1.6; }
.precision-assurance small { font-size: .8125rem; line-height: 1.65; }
.precision-assurance .assurance-arrow { flex: 0 0 auto; }
.precision-actions { gap: 16px 24px; }
.precision-cta { font-size: .6875rem; line-height: 1.6; }
.precision-text-link { font-size: .75rem; line-height: 1.65; padding-block: 10px; }
.precision-visual { width: 100%; max-width: 100%; justify-self: stretch; padding: 0 14px 0 38px; }
.precision-visual::before { inset: -20px 0; }
.precision-rail { left: 0; }
.precision-film { width: 100%; max-width: 350px; margin: 0 auto; }
.film-caption { font-size: .625rem; letter-spacing: .1em; flex-wrap: wrap; gap: 4px 12px; }
.film-caption-duration { margin-left: auto; }
.film-controls { grid-template-columns: 44px minmax(0,1fr) 66px 44px 44px; padding: 4px; gap: 2px; min-height: 54px; }
.film-control { width: 44px; height: 44px; }
.film-seek { width: 100%; min-width: 0; height: 44px; margin: 0; touch-action: pan-y; }
.film-seek::-webkit-slider-thumb { width: 12px; height: 12px; margin-top: -5px; }
.film-seek::-moz-range-thumb { width: 12px; height: 12px; }
.film-time { font-size: .625rem; letter-spacing: 0; }
.film-subcaption { font-size: .625rem; letter-spacing: .1em; flex-wrap: wrap; gap: 8px 12px; }
.film-state { line-height: 1.6; }
.film-start { font-size: .6875rem; min-height: 48px; line-height: 1.7; }
.film-error { overflow-wrap: anywhere; }
.film-player:fullscreen { width: 100%; height: 100dvh; padding-bottom: env(safe-area-inset-bottom,0px); }
.film-player:fullscreen .film-screen { height: auto; min-height: 0; max-height: none; }
.film-player:fullscreen .film-controls { min-height: 54px; padding-inline: max(8px,env(safe-area-inset-left,0px)); }
.precision-bottom { flex-wrap: wrap; padding-block: 26px; }
.precision-bottom>p { font-size: .625rem; line-height: 1.8; }
.precision-bottom>span { font-size: 1.5rem; line-height: 1.4; }
@media (min-width:1600px) {
  .precision-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 120px; }
  .precision-film { max-width: 370px; }
  .precision-visual { padding-left: 70px; }
}
/* ISO edition identifiers are never squeezed into tiny two-column mobile cards. */
.standards-section { padding: var(--section-space) 0 56px; }
.standards-heading { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 48px; }
.standards-heading h2 { font-size: clamp(2.375rem,3.5vw,3.25rem); line-height: 1.12; }
.standards-heading>p { font-size: .9375rem; line-height: 1.8; }
.standards-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 22px; }
.standard-card { padding: 26px 24px; min-height: 264px; }
.standard-top { gap: 12px; align-items: center; margin-bottom: 26px; }
.standard-top>span { font-size: .625rem; line-height: 1.8; letter-spacing: .11em; }
.standard-top svg { width: 25px; height: 25px; }
.standard-card h3 { font-size: 1.625rem; white-space: normal; line-height: 1.3; }
.standard-card p { font-size: .875rem; line-height: 1.75; max-width: 360px; }
.standard-overview { font-size: .625rem; min-height: 48px; line-height: 1.6; gap: 12px; }
.standard-overview svg { flex-shrink: 0; }
.standards-note p { font-size: .8125rem; max-width: 660px; line-height: 1.8; }
.standard-badge { width: min(100%, 196px); }
.standard-actions { display: grid; gap: 10px; }
.standard-certificate { display:flex; align-items:center; justify-content:space-between; text-decoration:none; }
.standards-request { font-size: .75rem; line-height: 1.7; max-width: 340px; flex-shrink: 0; }
@media (max-width:1199px) {
  .standards-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .standard-card { padding: 28px; min-height: 245px; border-right: 1px solid #ddded5; border-bottom: 0; }
  .standard-card:nth-child(2n) { border-right: 0; }
  .standard-card:nth-child(-n+2) { border-bottom: 1px solid #ddded5; }
  .standard-card h3 { font-size: 1.875rem; }
}
/* Footer links, long addresses and phone numbers wrap instead of pushing the page. */
.footer-main { grid-template-columns: minmax(0,1.05fr) minmax(0,.8fr) minmax(0,1.15fr) minmax(0,.8fr); gap: 32px; padding-block: 56px 40px; }
.footer h4 { font-size: .875rem; line-height: 1.5; }
.footer p,.footer-links a { font-size: .8125rem; line-height: 1.8; }
.footer-links { gap: 2px; }
.footer-links a { min-height: 38px; padding-block: 7px; }
.footer .contact-row a { display: inline-block; min-height: 44px; padding-block: 10px; }
.footer .contact-address a { padding-top: 0; }
.contact-row { grid-template-columns: 18px minmax(0,1fr); gap: 10px; align-items: baseline; }
.contact-row svg { align-self: start; margin-top: 13px; }
.contact-row:first-child svg { margin-top: 4px; }
.contact-list { gap: 8px; }
.footer .socials { flex-wrap: wrap; gap: 12px; }
.footer .socials a { width: 44px; height: 44px; }
.footer-tag,.global-line { font-size: .625rem; line-height: 1.9; }
.footer-bottom { align-items: center; flex-wrap: wrap; font-size: .6875rem; line-height: 1.8; padding-bottom: max(22px,env(safe-area-inset-bottom,0px)); }
.footer-bottom>span:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width:1199px) {
  .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
  .footer-brand { border: 0; padding: 0; }
  .footer-bottom { flex-direction: row; }
}
/* Dialogs follow the visual viewport when a phone keyboard is open.
   The close button remains outside the scrollable content pane. */
.modal {
  inset: auto; top: var(--visual-top,0px); left: var(--visual-left,0px);
  width: var(--visual-width,100%); height: var(--visual-height,100vh); height: var(--visual-height,100dvh);
  padding-top: max(var(--overlay-gap),env(safe-area-inset-top,0px));
  padding-right: max(var(--overlay-gap),env(safe-area-inset-right,0px));
  padding-bottom: max(var(--overlay-gap),env(safe-area-inset-bottom,0px));
  padding-left: max(var(--overlay-gap),env(safe-area-inset-left,0px));
  overflow: hidden; overscroll-behavior: contain;
}
.modal-card { display: flex; flex-direction: column; width: min(720px,100%); max-width: 100%; max-height: 100%; padding: 0; overflow: hidden; min-width: 0; }
.modal-toolbar { display: flex; justify-content: flex-end; padding: 6px 10px; min-height: 56px; flex: 0 0 auto; border-bottom: 1px solid #ededE8; background: #fff; }
.modal-close { position: static; display: grid; place-items: center; width: 44px; height: 44px; font-size: 2rem; line-height: 1; padding: 0; }
.modal-content { padding: 20px 36px 36px; overflow: auto; min-height: 0; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scroll-padding-block: 20px; }
.modal-card h2 { font-size: clamp(1.875rem,3.5vw,2.625rem); line-height: 1.15; padding-right: 0; margin: 8px 0 18px; }
.modal-content>p { font-size: .9375rem; color: #62696a; line-height: 1.8; }
.modal-content .eyebrow { line-height: 1.8; }
.form-grid,.service-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.field { min-width: 0; }
.field label { font-size: .6875rem; line-height: 1.6; }
.field input,.field textarea { width: 100%; min-width: 0; max-width: 100%; font-size: 1rem; line-height: 1.5; min-height: 48px; padding: 12px 14px; border-radius: 0; }
.field input[type="search"] { -webkit-appearance: none; appearance: none; }
.field textarea { min-height: 148px; resize: vertical; }
.submit { min-height: 54px; font-size: .6875rem; padding: 14px 16px; line-height: 1.6; }
.service-list article { min-width: 0; padding: 18px; }
.service-list h3 { font-size: 1.25rem; line-height: 1.35; }
.search-result h3 { font-size: 1.375rem; line-height: 1.3; }
.search-result p { font-size: .8125rem; line-height: 1.75; }
.standard-dialog-copy p { font-size: .9375rem; }
.standard-reference { min-height: 44px; }
.modal-card .standard-enquiry { min-height: 54px; padding: 15px 18px; font-size: .6875rem; text-align: left; }
/* Tablets and small laptops retain generous gutters and sensible reading widths. */
@media (max-width:899px) {
  .about-grid,.section-split,.standards-heading,.project-cta-inner { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .about-media { min-height: 0; height: auto; aspect-ratio: 16 / 9; max-height: 430px; }
  .about-copy { padding: 0; }
  .values { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .section-split { margin-bottom: 32px; }
  .services-head { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .project-cta-actions { max-width: 460px; }
  .precision-grid { grid-template-columns: minmax(0,1fr); gap: 40px; padding-block: 40px 48px; }
  .precision-copy { max-width: 630px; }
  .precision-copy h2 { font-size: clamp(3rem,7.8vw,4.625rem); }
  .precision-copy>p { max-width: 600px; }
  .precision-assurance { max-width: 540px; }
  .precision-visual { max-width: 440px; padding: 0 24px; justify-self: center; }
  .precision-rail { display: none; }
  .precision-film { max-width: 350px; }
  .standards-heading { gap: 20px; }
  .standards-note { flex-direction: column; align-items: flex-start; gap: 16px; }
  .standards-note p { max-width: 100%; }
  .standards-request { max-width: 100%; }
  .stats-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stat { border-left: 0; border-right: 1px solid #ffffff40; }
  .stat:nth-child(3),.stat:nth-child(5) { border-right: 0; }
  .stat:nth-child(2),.stat:nth-child(4) { border-right: 1px solid #ffffff40; }
  .stats-copy { grid-column: 1/-1; }
}
/* Phones: readable type, one-column cards, no fixed heights on text containers. */
@media (max-width:639px) {
  :root { --header: 76px; --header-actual: 76px; --overlay-gap: 12px; }
  .header-inner { gap: 12px; }
  .brand { width: 122px; }
  .brand img { height: 62px; }
  .header-actions { gap: 8px; }
  .header-actions .enquire { display: none; }
  .hero { min-height: clamp(528px,calc(92svh - var(--header)),700px); }
  .hero-inner { padding-block: 64px; }
  .hero-copy { width: 100%; max-width: 550px; padding: 0; }
  .hero h1 { font-size: clamp(2.375rem,10.2vw,3.75rem); line-height: 1.07; margin-bottom: 24px; }
  .hero p { font-size: .9375rem; line-height: 1.8; }
  .hero-kicker { font-size: .5625rem; letter-spacing: .17em; line-height: 1.9; }
  .hero-copy::before,.hero-signature,.scroll-cue { display: none; }
  .hero .btn { min-width: 0; min-height: 54px; font-size: .6875rem; gap: 12px; padding-inline: 16px; }
  .hero-buttons { gap: 12px; }
  .hero-photo { background-position: 66% 51%; }
  .pillars-grid { grid-template-columns: minmax(0,1fr); }
  .pillar { grid-template-columns: 44px minmax(0,1fr); column-gap: 20px; row-gap: 7px; padding: 26px 6px; min-height: 132px; text-align: left; justify-items: start; align-content: center; border-bottom: 1px solid #e1e1de; }
  .pillar:last-child { border-bottom: 0; }
  .pillar::after { display: none!important; }
  .pillar svg { grid-column: 1; grid-row: 1/3; margin: 0; align-self: center; }
  .pillar h3 { grid-column: 2; margin: 0; font-size: .75rem; }
  .pillar p { grid-column: 2; max-width: none; font-size: .875rem; }
  .cards,.market-grid,.responsibility-grid,.standards-grid,.footer-main { grid-template-columns: minmax(0,1fr); }
  .cards,.market-grid { gap: 24px; }
  .service-body { padding: 30px 24px 22px; }
  .service-body h3 { font-size: 1.625rem; }
  .service-body p { font-size: .9375rem; }
  .about-media { aspect-ratio: 4/3; max-height: 380px; }
  .values { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .value p { font-size: .875rem; }
  .section-split h2,.about-copy h2,.standards-heading h2 { font-size: clamp(2.125rem,8.2vw,2.75rem); }
  .market-card { padding: 24px; }
  .market-card p,.responsibility-card p { font-size: .9375rem; }
  .market-card h3 { margin-top: 46px; }
  .responsibility-card { padding: 28px 24px; border-right: 0!important; border-bottom: 1px solid #ddd!important; }
  .responsibility-card:last-child { border-bottom: 0!important; }
  .responsibility-card::before { left: 24px; top: 63px; }
  .stat { padding: 22px 12px; min-height: 150px; }
  .stat:nth-child(2),.stat:nth-child(4) { border-right: 1px solid #ffffff40!important; }
  .stat strong { font-size: 2.625rem; }
  .stat.stat-region strong { font-size: 1.5rem; }
  .stats-copy h2 { font-size: clamp(2rem,7.9vw,2.625rem); }
  .project-cta { padding-block: 56px; }
  .project-cta-actions { max-width: none; }
  .project-cta h2 { font-size: clamp(2rem,8.2vw,2.5rem); }
  .precision-overline { gap: 10px; align-items: flex-start; }
  .precision-overline .eyebrow { font-size: .625rem; letter-spacing: .17em; }
  .precision-overline>span { font-size: .5625rem; text-align: left; }
  .precision-copy h2 { font-size: clamp(2.875rem,11.4vw,4rem); }
  .precision-copy .film-kicker { font-size: .625rem; }
  .precision-copy>p { font-size: .9375rem; }
  .precision-actions { gap: 18px; }
  .precision-cta { width: 100%; font-size: .6875rem; }
  .precision-visual { padding-inline: 8px; max-width: 386px; }
  .precision-film { max-width: 350px; }
  .precision-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
  .precision-bottom>p { font-size: .625rem; line-height: 1.9; }
  .standard-card { min-height: 0; padding: 24px; border-right: 0!important; border-bottom: 1px solid #ddded5!important; }
  .standard-card:last-child { border-bottom: 0!important; }
  .standard-top { margin-bottom: 20px; }
  .standard-top>span { font-size: .6875rem; }
  .standard-card h3 { font-size: 1.875rem; }
  .standard-card p { font-size: .9375rem; margin-bottom: 16px; max-width: none; }
  .standard-overview { font-size: .6875rem; }
  .footer-main { gap: 34px; }
  .footer-brand { padding: 0; }
  .footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
  .footer-links a { min-height: 44px; }
  .footer .contact-row a { font-size: .875rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 6px; }
  .footer-standards-summary { max-width: none; }
  .modal-content { padding: 18px 20px 26px; }
  .form-grid,.service-list { grid-template-columns: minmax(0,1fr); }
  .field.full,.submit { grid-column: 1/-1; }
  .search-result { min-height: 0; }
  .modal-card h2 { font-size: 1.875rem; }
}
@media (max-width:359px) {
  :root { --page-gutter: 16px; }
  .hero-buttons { flex-direction: column; align-items: stretch; }
  .hero .btn { width: 100%; }
  .precision-capabilities li { margin-right: 10px; padding-right: 10px; }
  .film-controls { grid-template-columns: 44px minmax(0,1fr) 66px 44px 44px; gap: 1px; }
  .film-caption-duration { margin-left: 0; }
  .footer-links { grid-template-columns: minmax(0,1fr); }
}
@media (orientation:landscape) and (max-height:520px) {
  :root { --overlay-gap: 10px; }
  .site-header,.site-header.scrolled { height: 60px; }
  .brand { width: 108px; }
  .brand img { height: 50px; }
  .hero { min-height: 0; }
  .hero-inner { min-height: 0; padding-block: 48px 56px; }
  .hero-copy { width: min(100%,680px); }
  .hero-signature,.scroll-cue { display: none; }
  .film-screen { aspect-ratio: auto; height: max(180px,calc(100svh - 140px)); }
  .film-player:fullscreen .film-screen { height: auto; }
  .modal-content { padding-top: 14px; }
  .mobile-menu a,.mobile-menu button { min-height: 46px; padding-block: 10px; }
}
/* Hover motion is reserved for a mouse. Touch scrolling must not leave lifted cards. */
@media (hover:none),(pointer:coarse) {
  .service-card,.service-card:hover,.market-card:hover,.pillar:hover svg,
  .btn:hover,.about-btn:hover,.cta-primary:hover,.precision-cta:hover,.enquire:hover,
  .brand:hover img,.socials a:hover,.service-card:hover .service-more { transform: none!important; }
  .service-card:hover .service-media img { transform: none; }
  .service-card { will-change: auto; }
  .hero-stage,.hero-photo,.hero-copy,.stats-bg,.about-media img { will-change: auto; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto!important; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
  .reveal,.service-card { opacity: 1!important; transform: none!important; }
  .hero-stage,.hero-photo,.hero-copy,.stats-bg,.about-media img { transform: none!important; will-change: auto; }
}
.no-js .mobile-menu { display: grid; position: static; max-height: none; box-shadow: none; }
.no-js .menu-btn,.no-js [data-search] { display: none; }
/* Final reflow guard: time labels and small statistics also accommodate enlarged text. */
.film-controls { grid-template-columns: 44px minmax(0,1fr) max-content 44px 44px; }
.film-time { min-width: 3.75em; }
.standard-top>span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width:899px) {
  .stats-inner { grid-template-columns: repeat(auto-fit,minmax(min(100%,max(9rem,50%)),1fr)); }
}
@media (max-width:300px) {
  .film-controls { grid-template-columns: 44px minmax(0,1fr) 44px 44px; grid-template-rows: 44px 44px; }
  .film-seek { grid-column: 1/-1; grid-row: 1; }
  .film-control,.film-time { grid-row: 2; }
}
@media (max-width:300px) { .film-time { font-size: .5625rem; min-width: 0; } }
/* Text enlargement and unusually wide navigation labels also trigger the compact header. */
html.nav-overflow .header-inner { display: flex; justify-content: space-between; gap: 20px; }
html.nav-overflow .primary-nav,html.nav-overflow .global-badge { display: none; }
html.nav-overflow .menu-btn { display: block; }
html.nav-overflow .brand { width: 140px; }
html.nav-overflow .header-actions { margin-left: auto; }
html.nav-overflow .mobile-menu.open { display: grid; }
html.nav-overflow .menu-scrim:not([hidden]) { display: block; }
