/* Mobile refinements preserve the established desktop composition. */
.mobile-contact-bar, .mobile-label { display:none; }
.button .button-label { font:inherit; line-height:inherit; }
@media(max-width:1024px) {
  .site-header nav { max-height:calc(100dvh - 88px); overflow-y:auto; overscroll-behavior:contain; }
  body.nav-open { overflow:hidden; }
  .menu-toggle { min-height:48px; min-width:84px; }
  .site-header nav a { min-height:48px; }
  .section-heading, .capability-layout { gap:32px; }
}
@media(min-width:721px) and (max-width:900px) {
  .container { width:calc(100% - 48px); }
  .hero-grid { grid-template-columns:1.1fr 1fr; gap:24px; }
  .hero-copy h1 { font-size:clamp(44px,6vw,54px); }
  .hero-visual { min-height:500px; }
  .section { padding:72px 0; }
  .section-heading { grid-template-columns:1fr 2.2fr; }
  .capability-layout { grid-template-columns:1fr; }
  .capability-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
  .capability-tabs button { min-height:90px; padding:20px 0; font-size:18px; }
  .capability-tabs button:last-child { border-bottom:0; }
  .panel-copy { grid-template-columns:1fr 1fr; }
  .check-list { display:block; }
  .capability-panel>img { height:360px; }
  .materials-grid, .faq-grid, .quality-grid { gap:32px; }
  .enquiry-grid { grid-template-columns:1fr; gap:32px; }
  .enquiry-intro { display:grid; grid-template-columns:1fr 1fr; gap:18px 32px; }
  .enquiry-intro>.eyebrow, .enquiry-intro>h2, .enquiry-intro>p { grid-column:1; margin:0; }
  .enquiry-checklist { display:none; }
  .business-contact { grid-column:2; grid-row:1 / span 3; align-self:center; margin:0; }
  .enquiry-card { padding:32px; }
  .form-row { grid-template-columns:1fr 1fr; gap:20px; }
}
@media(max-width:720px) {
  html { scroll-padding-top:86px; scroll-padding-bottom:88px; }
  body { -webkit-text-size-adjust:100%; }
  .container { width:calc(100% - 40px); }
  .topline { display:none; }
  .header-inner { height:72px; }
  .brand, .brand img { height:70px; width:176px; }
  .site-header nav { max-height:calc(100dvh - 72px); padding:8px 20px 22px; }
  .site-header nav>a:not(.button) { padding:14px 4px; border-bottom:1px solid var(--line); }
  .site-header .button { margin-top:16px; }
  .hero-grid { padding:28px 0 24px; gap:24px; }
  .hero-copy .eyebrow { font-size:13px; line-height:1.6; letter-spacing:.045em; }
  .hero-copy h1 { font-size:clamp(40px,11.4vw,64px); margin:18px 0; line-height:1.04; }
  .hero-description { font-size:17px; line-height:1.65; max-width:none; }
  .hero-actions { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:12px; margin-top:22px; }
  .hero-actions .button, .hero-actions .text-link { width:100%; min-height:52px; padding:14px 12px; justify-content:center; gap:12px; font-size:16px; }
  .hero-actions .text-link { border:1px solid #aeb6b6; }
  .hero-actions .desktop-label { display:none; }
  .hero-actions .mobile-label { display:inline; }
  .hero-footnote { margin-top:21px; gap:12px; }
  .hero-footnote p { line-height:1.6; font-size:13px; }
  .hero-footnote strong { font-size:15px; }
  .hero-visual { min-height:0; height:auto; aspect-ratio:4 / 3; }
  .photo-tag { top:16px; right:16px; font-size:10px; padding:8px 10px; }
  .hero-image-caption { left:20px; right:20px; bottom:20px; }
  .hero-image-caption>span { font-size:29px; }
  .image-corner { width:55px; height:55px; border-width:4px; }
  .proof-grid { padding:4px 0; }
  .proof-grid>div { padding:20px 16px!important; }
  .proof-grid p { margin-top:8px; }
  .section { padding:54px 0; }
  .section-heading { margin-bottom:28px; }
  .section-heading>.eyebrow { margin-bottom:15px; }
  h2, .materials-grid h2 { font-size:clamp(33px,9.4vw,46px); line-height:1.12; }
  .heading-description { font-size:16px; line-height:1.65; }
  .about-grid { gap:28px; }
  .about-image { padding-right:16px; padding-bottom:22px; }
  .about-image>img { aspect-ratio:4 / 3; }
  .year-stamp { padding:17px 20px; }
  .year-stamp strong { font-size:40px; }
  .year-stamp>span { font-size:10px; }
  .about-copy>.lead { font-size:22px; }
  .capability-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .capability-tabs button { padding:16px 12px; min-height:82px; font-size:16px; line-height:1.45; border:1px solid #ffffff38; align-items:center; }
  .capability-tabs button:last-child { border-bottom:1px solid #ffffff38; }
  .capability-tabs button.is-active { border-color:var(--orange); background:#ffffff09; }
  .capability-tabs button small, .capability-tabs .tab-index, .capability-tabs .tab-arrow { display:none; }
  .capability-panel>img { height:auto; aspect-ratio:4 / 3; }
  .panel-copy { gap:17px; }
  .check-list { grid-template-columns:1fr; }
  .check-list li { padding:12px 0 12px 22px; }
  .capability-bottom .button { width:100%; }
  .gallery-toolbar { display:block; border-bottom:0; margin:0 0 22px; }
  .gallery-filters { display:flex; flex-wrap:nowrap; overflow-x:auto; max-width:100%; gap:8px; padding:2px 2px 10px; scrollbar-width:thin; scrollbar-color:#aab5b0 transparent; }
  .gallery-filters button { flex:0 0 auto; white-space:nowrap; min-height:46px; padding:11px 14px; border:1px solid #c4ccc8; font-size:14px; }
  .gallery-filters button.is-active { background:var(--navy); color:white; border-color:var(--navy); }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 14px; }
  .project-meta { padding-right:0; }
  .project-category { font-size:12px; letter-spacing:.035em; }
  .project-title { font-size:16px; line-height:1.4; }
  .project-open { display:none; }
  .gallery-bottom { flex-direction:column; align-items:stretch; gap:16px; padding-top:22px; margin-top:28px; }
  .gallery-bottom .button { min-height:50px; justify-content:center; }
  .gallery-bottom p { text-align:center; }
  .materials-section { padding:50px 0; }
  .materials-grid { gap:26px; }
  .material-row { padding:20px 0; gap:16px; }
  .quality-grid { gap:30px; }
  .certification-row { gap:22px; margin-top:26px; padding-top:24px; }
  .project-banner { padding:58px 0; }
  .project-banner h2 { font-size:clamp(36px,10vw,48px); }
  .project-banner .button { max-width:100%; font-size:16px; gap:18px; }
  .faq-grid { gap:22px; }
  .faq-list summary { font-size:17px; padding:20px 0; gap:18px; }
  .enquiry-grid { gap:28px; }
  .enquiry-intro h2 { font-size:clamp(34px,9.8vw,46px); margin:19px 0; }
  .enquiry-checklist { display:none; }
  .business-contact { margin-top:25px; padding-top:22px; }
  .business-contact>a, .contact-actions>a { min-height:44px; }
  .contact-actions { gap:12px 22px; }
  .contact-actions>a { display:flex; align-items:center; }
  .enquiry-card { padding:26px 20px; }
  .enquiry-card h3 { font-size:29px; line-height:1.15; }
  .form-row { grid-template-columns:1fr; gap:0; }
  input, textarea, select { font-size:16px; min-height:52px; padding:14px 12px; scroll-margin-top:95px; }
  textarea { min-height:150px; }
  form label { margin-bottom:20px; }
  form .button { min-height:54px; }
  .brief-actions { flex-direction:column; align-items:stretch; }
  .brief-actions>* { justify-content:center; min-height:48px; text-align:center; }
  .business-contact address { margin-top:16px; }
  .footer-links { gap:3px; }
  .footer-links a { display:flex; align-items:center; min-height:44px; }
  .footer-bottom { padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
  .mobile-contact-bar { position:fixed; z-index:35; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1.35fr; gap:10px; padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); background:#fff; border-top:1px solid #d6dcd8; box-shadow:0 -3px 16px #17242e0d; }
  .mobile-contact-bar a { min-height:48px; display:flex; justify-content:center; align-items:center; gap:14px; font-size:16px; font-weight:600; line-height:1.4; }
  .mobile-contact-bar .mobile-call { border:1px solid #aeb6b6; }
  .mobile-contact-bar .mobile-enquire { background:var(--orange); border:1px solid var(--orange); }
  body.nav-open .mobile-contact-bar,
  body:has(input:focus, textarea:focus, select:focus) .mobile-contact-bar,
  body:has(dialog[open]) .mobile-contact-bar { display:none; }
  .gallery-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; padding:max(64px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom)); }
  .gallery-dialog[open] { display:flex; flex-direction:column; justify-content:center; }
  .lightbox-close { top:max(8px,env(safe-area-inset-top)); right:12px; width:48px; height:48px; }
  .lightbox-stage { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .lightbox-stage img { grid-column:1/-1; grid-row:1; max-height:60dvh; width:auto; }
  .lightbox-nav { grid-row:2; width:48px; height:48px; }
  #lightbox-prev { justify-self:start; }
  #lightbox-next { justify-self:end; }
  .lightbox-caption { padding:20px 0 0; align-items:flex-start; }
  .lightbox-caption h3 { font-size:20px; }
  .lightbox-caption .eyebrow { font-size:12px; }
  #lightbox-counter { font-size:14px; padding-top:4px; }
}
@media(max-width:360px) {
  .container { width:calc(100% - 32px); }
  .hero-copy h1 { font-size:39px; }
  .hero-copy .eyebrow { font-size:12px; }
  .hero-actions .button, .hero-actions .text-link { font-size:15px; gap:8px; padding:13px 9px; }
  .gallery-grid { grid-template-columns:1fr; }
  .project-card img { aspect-ratio:4/3; }
  .enquiry-card { padding:24px 16px; }
  .contact-phone { font-size:25px; }
}
@media(hover:none) {
  .button:hover { transform:none; }
  .project-card:hover img { transform:none; }
}
@media print { .mobile-contact-bar { display:none; } }
.hero-actions .desktop-label, .hero-actions .mobile-label { font:inherit; line-height:inherit; }
@media(max-width:720px) { #project-enquiry { scroll-margin-top:86px; } }
@media(max-width:720px) and (max-height:520px) {
  .mobile-contact-bar { display:none; }
  .footer-bottom { padding-bottom:24px; }
  .gallery-dialog { padding:56px 16px 16px; }
  .gallery-dialog[open] { justify-content:flex-start; }
  .lightbox-stage { grid-template-columns:48px minmax(0,1fr) 48px; gap:12px; }
  .lightbox-stage img { grid-column:2; grid-row:1; max-height:calc(100dvh - 160px); }
  .lightbox-nav { grid-row:1; }
  #lightbox-prev { grid-column:1; }
  #lightbox-next { grid-column:3; }
  .lightbox-caption { padding:12px 0 0; }
}
