/* Small, shared motion. Content remains visible if enhancements are unavailable. */
:root{--gw-fast:180ms;--gw-move:420ms;--gw-ease:cubic-bezier(.2,.7,.2,1);--gw-header-height:88px}
html{scroll-padding-top:calc(var(--gw-header-height) + 24px)}
nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--gw-green);text-decoration-thickness:3px;text-underline-offset:7px}
.gw-header-space{height:0;transition:height var(--gw-fast)}.gw-header-space.is-compact{height:16px}
body>header .nav{transition:padding var(--gw-fast),box-shadow var(--gw-fast)}
body>header.is-compact .nav{padding-block:12px}body>header.is-compact{box-shadow:0 3px 15px rgba(37,55,69,.06)}
.button,.contact-submit,.pc-close,.nav-toggle,.lab-filters button{transition:background-color var(--gw-fast),box-shadow var(--gw-fast),transform var(--gw-fast)}
.button:active,.pc-close:active,.nav-toggle:active{transform:scale(.985)}
.gw-button-arrow,.qc-button-arrow,.submit-arrow{display:inline-block;transition:transform var(--gw-fast)}
@media(hover:hover){.button:hover{box-shadow:0 5px 14px rgba(37,55,69,.12);transform:none}.button:hover .gw-button-arrow,.button:hover .qc-button-arrow,.contact-submit:hover .submit-arrow{transform:translateX(3px)}}
.button:focus-visible,.contact-submit:focus-visible{outline:3px solid var(--gw-graphite);outline-offset:4px}
.gw-mobile-contact{display:none}.gw-mobile-contact[hidden]{display:none!important}
/* On-page message draft, handed to WhatsApp only at the visitor’s request. */
.gw-whatsapp{font-family:inherit;cursor:pointer;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:6;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:12px 18px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:var(--gw-green);color:var(--gw-white);box-shadow:0 5px 20px rgba(37,55,69,.22);font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;transition:transform var(--gw-fast),box-shadow var(--gw-fast)}
.gw-whatsapp[hidden]{display:none!important}.gw-whatsapp svg{width:28px;height:28px;flex:none}.gw-whatsapp:focus-visible{outline:3px solid var(--gw-graphite);outline-offset:4px}.gw-whatsapp:active{transform:scale(.97)}
@media(hover:hover){.gw-whatsapp:hover{transform:translateY(-2px);box-shadow:0 7px 24px rgba(37,55,69,.28);text-decoration:none}}
.gw-chat{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:calc(max(24px,env(safe-area-inset-bottom)) + 66px);z-index:7;width:360px;max-width:calc(100vw - 28px);max-height:calc(100vh - 112px);max-height:calc(100dvh - 112px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--gw-line);border-radius:18px;background:var(--gw-white);color:var(--gw-graphite);box-shadow:0 12px 50px rgba(37,55,69,.24)}
.gw-chat[hidden]{display:none!important}.gw-chat-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--gw-green);color:var(--gw-white);padding:18px 14px 18px 22px}.gw-chat-header h2{font-size:21px;line-height:1.2;font-weight:600;letter-spacing:-.4px;margin:0;color:var(--gw-white)}.gw-chat-header p{font-size:12px;line-height:1.45;margin:5px 0 0;color:var(--gw-white)}
.gw-chat-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:var(--gw-white);font:inherit;font-size:29px;line-height:1;cursor:pointer;box-shadow:none}.gw-chat-close:hover{background:rgba(255,255,255,.25);transform:none;box-shadow:none}
.gw-chat-body{padding:20px;background:var(--gw-paper)}.gw-chat-greeting{background:var(--gw-white);padding:14px 16px;border:1px solid var(--gw-line);border-radius:2px 14px 14px 14px;font-size:15px;line-height:1.6;margin:0 0 20px;color:var(--gw-graphite)}
.gw-chat-form label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.gw-chat-form textarea{display:block;width:100%;min-height:96px;max-height:180px;resize:vertical;border:1px solid var(--gw-line);border-radius:9px;background:var(--gw-white);color:var(--gw-graphite);padding:12px 13px;font:inherit;font-size:15px;line-height:1.5;box-sizing:border-box}.gw-chat-form textarea::placeholder{color:var(--gw-muted);opacity:1}
.gw-chat-send{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:48px;margin-top:12px;padding:12px 15px;border:0;border-radius:9px;background:var(--gw-green);color:var(--gw-white);font:inherit;font-size:14px;font-weight:600;line-height:1.3;cursor:pointer;transition:box-shadow var(--gw-fast)}.gw-chat-send:hover{transform:none;box-shadow:0 4px 12px rgba(37,55,69,.12)}.gw-chat-hint{font-size:12px;line-height:1.6;margin:12px 0 0;color:var(--gw-muted)}
.gw-chat :focus-visible{outline:3px solid var(--gw-graphite);outline-offset:3px}.gw-chat-close:focus-visible{outline-color:var(--gw-white)}
@media(prefers-reduced-motion:no-preference){.gw-chat:not([hidden]){animation:gw-chat-in 180ms var(--gw-ease)}}
@keyframes gw-chat-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes gw-enter{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.gw-enter{animation:gw-enter var(--gw-move) var(--gw-ease) both}.qc-service-photo.qc-enter img{animation-duration:var(--gw-move)}.qc-benefits.qc-enter li{animation-duration:var(--gw-move)}.au-reveal>span{animation-duration:var(--gw-move)}}
/* Real photographs load into reserved spaces with a matching low-detail preview. */
.pc-photo,.qc-service-photo,.service-image,.lab-card-photo,.lab-cover,.founder-photo,.about-inspection-photo{background-color:#e8ede9}
img.gw-photo{background-color:#e8ede9;background-size:cover;background-position:center}
img.gw-photo-loaded{animation:gw-photo-in 220ms ease-out}
@keyframes gw-photo-in{from{opacity:.7}to{opacity:1}}
/* The photo/video poster remains in place until a decoded frame is ready. */
.gw-video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1;opacity:1;transition:opacity 300ms ease}
.gw-video-poster.is-ready{opacity:0}.au-video-hero>.gw-video-poster{z-index:0}.au-hero-shade{z-index:1}.au-hero-copy,.au-video-toggle{z-index:2}
#process .steps.gw-timeline:before{background:var(--gw-line)}
#process .steps.gw-timeline .gw-timeline-line{position:absolute;left:55px;right:55px;top:73px;height:2px;background:var(--gw-green);transform:scaleX(var(--gw-progress,0));transform-origin:left;transition:transform var(--gw-move) var(--gw-ease)}
#process .steps.gw-timeline:after{opacity:var(--gw-progress,0)}
#process .step .process-icon{border-radius:50%;transition:box-shadow var(--gw-move)}#process .step.gw-step-active .process-icon{box-shadow:0 0 0 8px var(--gw-paper),0 0 0 10px rgba(50,195,108,.35)}
/* Product details retain the approved diagonal entrance; scrolling waits for layout. */
.pc-ready .pc-guide[open]{overflow:hidden;overflow-anchor:none}.pc-ready .pc-guide-surface{animation:none!important}
.pc-ready .pc-guide.is-opening .pc-guide-surface{animation:pc-diagonal-left var(--gw-move) var(--gw-ease) both!important}
.pc-ready .pc-category:nth-child(even) .pc-guide.is-opening .pc-guide-surface{animation-name:pc-diagonal-right!important}
.pc-ready .pc-guide.is-closing{pointer-events:none}.pc-ready .pc-guide.is-closing .pc-guide-surface{transition:opacity var(--gw-fast);opacity:.35}
.products-page .pc-index{position:sticky;top:var(--gw-header-height);z-index:4;background:rgba(255,255,255,.97);padding:10px 22px;border-bottom:1px solid var(--gw-line);max-width:none}
/* Document scroll-padding already accounts for the header. */
.pc-tile,.pc-guide{scroll-margin-top:var(--pc-index-height,70px)}
/* Inline errors are attached to their field; the server remains authoritative. */
.quick-enquiry [aria-invalid=true]{border-color:#ab3434;box-shadow:0 0 0 2px rgba(171,52,52,.1)}
.quick-enquiry .gw-field-error{display:block;color:#973030;font-size:12px;font-weight:400;line-height:1.5;margin-top:7px}
.quick-enquiry .gw-form-status{font-size:13px;color:var(--gw-graphite);text-align:center;margin:16px 0 0}
.quick-enquiry .contact-consent{flex-wrap:wrap}.quick-enquiry .contact-consent .gw-field-error{flex-basis:100%;text-align:center}
.contact-submit[disabled]{cursor:wait;opacity:.8;transform:none}
.contact-submit:hover{transform:none}
/* Article tools follow the language currently being read. */
.lab-reading-tools{position:sticky;top:var(--gw-header-height);z-index:4;background:#fff;border-bottom:1px solid var(--gw-line);padding:10px max(22px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px}
.lab-reading-tools nav{display:flex;gap:6px}.lab-reading-tools nav a{display:flex!important;align-items:center;justify-content:center;min-height:36px;min-width:40px;padding:5px 9px;font-size:12px;text-decoration:none;border-radius:3px}.lab-reading-tools nav a[aria-current=true]{background:var(--gw-green);color:#fff}
.lab-reading-tools>progress{position:absolute;bottom:-1px;left:0;width:100%;height:3px;border:0;appearance:none;background:transparent}.lab-reading-tools>progress::-webkit-progress-bar{background:#e9eeeb}.lab-reading-tools>progress::-webkit-progress-value{background:var(--gw-green)}.lab-reading-tools>progress::-moz-progress-bar{background:var(--gw-green)}
.lab-sidebar{top:calc(var(--gw-header-height) + 88px)}.lab-sidebar a[aria-current=location]{color:var(--gw-graphite);font-weight:600;text-decoration:underline;text-decoration-color:var(--gw-green);text-underline-offset:5px}.lab-language,.lab-answer-section{scroll-margin-top:var(--lab-tools-height,58px)}
.lab-mobile-toc{display:none}.lab-card-grid{overflow-anchor:none}.lab-card[hidden]{display:none!important}
@media(max-width:850px){
 .gw-header-space.is-compact{height:8px}body>header.is-compact .nav{padding-block:12px}
 .gw-mobile-contact{display:flex;align-items:center;justify-content:center;gap:15px;position:fixed;bottom:max(16px,env(safe-area-inset-bottom));right:82px;z-index:6;min-height:52px;max-width:calc(100vw - 100px);padding:13px 19px;border-radius:7px;background:var(--gw-green);color:#fff;box-shadow:0 5px 20px rgba(37,55,69,.2);font-size:14px;font-weight:600;text-decoration:none}
 .gw-whatsapp{right:18px;bottom:max(16px,env(safe-area-inset-bottom));width:52px;height:52px;min-height:52px;padding:10px}.gw-whatsapp-label{display:none}
 .gw-chat{right:14px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px);width:360px;max-height:calc(100vh - 104px);max-height:calc(100dvh - 104px)}.gw-chat-form textarea{font-size:16px}
 .products-page .pc-index{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;gap:7px;padding:9px 14px;scrollbar-width:thin}.products-page .pc-index a{flex:none;font-size:12px;padding:9px 13px;min-height:42px}
 .lab-reading-tools{padding:8px 18px;gap:8px;flex-wrap:wrap}.lab-reading-tools nav{width:auto;gap:2px}.lab-reading-tools nav a{min-height:36px;padding:5px 7px;min-width:34px}
 .lab-mobile-toc{display:block;width:100%;font:inherit;min-height:40px;padding:7px 10px;border:1px solid var(--gw-line);border-radius:4px;background:#fff;color:var(--gw-graphite)}
 .lab-reading-tools progress{height:2px}
}
@media(max-width:700px){
 #process .steps.gw-timeline .gw-timeline-line{left:31px;right:auto;top:44px;bottom:80px;width:2px;height:auto;transform:scaleY(var(--gw-progress,0));transform-origin:top}
 .video-player>.gw-video-poster{object-fit:contain;background:var(--gw-graphite)}
 .quick-enquiry .contact-consent .gw-field-error{text-align:left}
}
@media(max-width:600px){.product-gallery .product-panel:last-child{aspect-ratio:auto;height:max(190px,50vw)}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important;scroll-behavior:auto!important}
 .gw-enter,.gw-photo-loaded{animation:none!important}.pc-ready .pc-guide.is-opening .pc-guide-surface{animation:none!important}
 .button:hover .gw-button-arrow,.button:hover .qc-button-arrow,.contact-submit:hover .submit-arrow{transform:none}
 .gw-whatsapp:hover,.gw-whatsapp:active{transform:none}
}
@media print{.gw-whatsapp,.gw-mobile-contact,.gw-chat{display:none!important}}
@media(max-width:760px){.lab-reading-tools~.lab-reading-layout .lab-sidebar{display:none}}
