/* Final optical pass: natural media, measured type and short purposeful motion. */
:root{--photo-finish:saturate(.92) contrast(1.035) brightness(.99);--ease-out:cubic-bezier(.16,1,.3,1)}
.signature-intro h2,.sector-heading h2,.footprint-copy h2,body:not([data-page="home"]) .section h2{font-size:clamp(34px,3.35vw,49px);line-height:1.16;letter-spacing:-.047em;text-wrap:balance}
.section-heading{align-items:end;gap:44px}
.section-heading>p{max-width:40ch;line-height:1.85}
.lead-copy .large{max-width:57ch;font-size:clamp(18px,1.65vw,22px);line-height:1.65;letter-spacing:-.015em}
.signature-description p,.footprint-copy>p,.commitment-content p{max-width:60ch}
.page-description,.product-card-body>p,.rental-body>p{ text-wrap:pretty }
.btn>.icon,.text-link>.icon{flex-shrink:0;transition:transform .28s var(--ease-out)}
.btn:focus-visible>.icon,.text-link:focus-visible>.icon{transform:translate(2px,-2px)}

/* Preserve the outgoing image's drift during the dissolve; no zoom reset. */
.scene-image{opacity:0;animation:none;transform:scale(1.015);transition:opacity 1.15s ease;will-change:opacity,transform}
.scene-image:is(.is-active,.is-leaving){animation:scene-frame-drift 9s cubic-bezier(.2,.55,.35,1) both}
.scene-image.is-active{opacity:1;z-index:2}
.scene-image.is-leaving{opacity:0;z-index:1}
.oic-scene.motion-paused .scene-image{animation-play-state:paused}
.scene-copy{max-width:100%;width:min(100%,990px)}
.scene-copy h1{font-size:clamp(66px,min(7.6vw,12.8svh),122px);line-height:1.045;letter-spacing:-.064em;margin-left:-4px}
.scene-line-window{display:block;overflow:hidden;padding:0 .12em .12em 0;margin:0 -.12em -.12em 0}
.scene-line{white-space:nowrap}
.scene-line,.scene-copy .eyebrow,.scene-copy>p,.scene-actions{animation:none}
.scene-copy>p{max-width:50ch;min-height:5.55em;margin:26px 0 26px;font-size:14px;line-height:1.85}
.scene-copy>.eyebrow,.scene-copy>h1,.scene-copy>p,.scene-copy>.scene-actions{transition:opacity .17s ease,transform .17s ease}
.scene-copy-exit>.eyebrow,.scene-copy-exit>h1,.scene-copy-exit>p,.scene-copy-exit>.scene-actions{opacity:0;transform:translateY(-9px)}
.scene-copy-enter .scene-line{animation:scene-line-arrive .85s var(--ease-out) both}
.scene-copy-enter .scene-line-accent{animation-delay:.08s}
.scene-copy-enter .eyebrow{animation:scene-detail-arrive .6s var(--ease-out) both}
.scene-copy-enter>p{animation:scene-detail-arrive .7s .12s var(--ease-out) both}
.scene-copy-enter .scene-actions{animation:scene-detail-arrive .7s .19s var(--ease-out) both}
@keyframes scene-line-arrive{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}
@keyframes scene-detail-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes scene-frame-drift{from{transform:scale(1.015)}to{transform:scale(1.065)}}

/* One photographic treatment throughout the catalogue and supporting content. */
.product-photo{height:auto;aspect-ratio:2.08}
.product-photo>img,.chemical-detail-visual>img,.rental-image:not(.cutout)>img,.detail-visual:not(.is-cutout)>img,.gallery-item>img,.footprint-main,.footprint-inset img,.page-photo,.split-photo>img{filter:var(--photo-finish)}
.product-photo>img,.rental-image>img,.gallery-item>img{transition:transform .85s var(--ease-out),filter .5s ease}
.product-photo:before{background:linear-gradient(120deg,#30203e08,transparent 50%,#30203e08)}
.product-photo-category{font-size:9px;letter-spacing:.07em;border-color:#ffffffa6;background:#fffffff0;box-shadow:0 3px 12px #1d09231a}
.product-card-body{min-height:212px;padding:24px 25px 22px}
.product-card-body>h3{font-size:22px;line-height:1.28;letter-spacing:-.035em;font-weight:450}
.product-card-body>p{font-size:13px;line-height:1.85}
.product-card .product-bottom{font-size:11px;padding-top:17px}
.rental-card{position:relative;isolation:isolate}
.rental-image:not(.cutout):after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#38234408,transparent 55%,#2915350a);box-shadow:inset 0 -1px #2915350d}
.rental-image.cutout img,.detail-visual.is-cutout img{filter:drop-shadow(0 12px 9px #34213f12)}
.rental-body h3{font-size:24px;line-height:1.25;letter-spacing:-.035em}
.rental-body .text-link>.icon{transition:transform .28s var(--ease-out)}
.product-card:after,.rental-card:after{content:'';position:absolute;z-index:4;top:0;left:0;right:auto;width:100%;height:2px;border:0;background:linear-gradient(90deg,transparent 10%,#b891cc 40%,#e72b53 55%,transparent 90%);opacity:0;transform:translateX(-105%);pointer-events:none;transition:none}
.product-card:focus-within:after,.rental-card:focus-within:after{animation:oic-edge-signal .85s ease-out both}
.product-card:focus-within .product-photo>img{filter:var(--photo-finish)}
@keyframes oic-edge-signal{0%{opacity:0;transform:translateX(-105%)}20%,70%{opacity:1}100%{opacity:0;transform:translateX(105%)}}

/* The selected service remains visible next to the actual enquiry fields. */
#enquiry-form{scroll-margin-top:102px}
.enquiry-context{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:center;padding:12px;margin:0 0 25px;background:#ffffffc9;border:1px solid #dfd2e8;border-radius:3px;box-shadow:0 4px 18px #39204804}
.enquiry-context[hidden]{display:none}
.enquiry-context-thumb{height:83px;overflow:hidden;background:#f0eaf5;border-radius:2px}
.enquiry-context-thumb img{width:100%;height:100%;object-fit:cover;filter:var(--photo-finish)}
.enquiry-context-thumb.is-cutout img{object-fit:contain;padding:7px;mix-blend-mode:multiply;filter:none}
.enquiry-context-copy{min-width:0}
.enquiry-context-copy>small{display:block;font-size:9px;letter-spacing:.09em;line-height:1.6;text-transform:uppercase;color:#75617d;margin-bottom:5px}
.enquiry-context-copy>strong{display:block;font-size:16px;font-weight:550;line-height:1.35;letter-spacing:-.025em;color:#36253f;overflow-wrap:anywhere}
.enquiry-context-copy>a{display:inline-flex;align-items:center;gap:12px;margin-top:9px;color:#75488f;font-size:11px;line-height:1.5}
.enquiry-context-copy>a>.icon{width:13px;height:13px;flex:none;transition:transform .25s var(--ease-out)}
.enquiry-context-copy>a:hover>.icon{transform:translate(2px,-2px)}
.field input,.field select,.field textarea{transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#ac81c2;box-shadow:0 0 0 3px #a370bc12}

@media(hover:hover) and (pointer:fine){
  .btn:hover>.icon,.text-link:hover>.icon,.rental-card:hover .text-link>.icon{transform:translate(3px,-3px)}
  .product-card:hover,.rental-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px #4521530d;border-color:#c4a4d5}
  .product-card:hover:after,.rental-card:hover:after{animation:oic-edge-signal .85s ease-out both}
  .product-card:hover .product-photo>img,.rental-card:hover .rental-image>img{transform:scale(1.035);filter:var(--photo-finish)}
  .rental-card:hover .rental-image.cutout>img{filter:drop-shadow(0 12px 9px #34213f12)}
}
@media(max-width:1100px){
  .scene-copy h1{font-size:clamp(63px,min(8vw,12.5svh),94px)}
  .section-heading{gap:30px}
  .product-card-body{padding:23px;min-height:207px}
}
@media(max-width:860px){
  .scene-copy h1{font-size:clamp(56px,9.5vw,80px)}
  .scene-copy>p{font-size:13px;max-width:47ch}
  .product-photo{height:auto}
  .product-card-body>h3{font-size:21px}
}
@media(max-width:600px){
  .signature-intro h2,.sector-heading h2,.footprint-copy h2,body:not([data-page="home"]) .section h2{font-size:33px;line-height:1.18;letter-spacing:-.044em}
  .section-heading{gap:20px}
  .lead-copy .large{font-size:18px;line-height:1.7}
  .oic-scene{touch-action:pan-y;min-height:650px}
  .scene-inner{padding-top:116px;padding-bottom:126px;align-items:center}
  .scene-copy{padding:18px 0;width:100%}
  .scene-copy h1{font-size:clamp(43px,12.7vw,72px);line-height:1.08;letter-spacing:-.06em;margin-left:-2px}
  .scene-copy .eyebrow{font-size:8px;letter-spacing:.1em;line-height:1.7;margin-bottom:21px}
  .scene-copy>p{font-size:13px;line-height:1.8;min-height:7.2em;max-width:43ch;margin:21px 0 24px}
  .scene-actions{gap:18px 23px}
  .scene-actions .btn{max-width:100%;font-size:11px;min-height:49px;padding:15px 18px;gap:22px}
  .scene-actions .text-link{font-size:11px;min-height:44px}
  .scene-bottom{left:0;right:0;bottom:22px;justify-content:space-between;gap:8px;padding:7px 10px}
  .scene-dots button{width:32px;min-width:32px;height:44px}
  .scene-step-buttons{gap:3px}
  .scene-step-buttons button{width:40px;height:44px}
  .scene-step-buttons .icon{width:19px;height:19px}
  .scene-motion{min-width:40px;min-height:44px;padding-left:10px}
  .scene-motion>.icon{width:15px;height:15px}
  .scene-scroll{bottom:99px;font-size:8px;max-width:none;gap:9px}
  .scroll-stem{height:23px}
  .product-photo{height:auto;aspect-ratio:1.9}
  .product-card-body{padding:23px;min-height:204px}
  .product-card-body>h3{font-size:23px;line-height:1.25}
  .product-card-body>p{font-size:13px}
  .product-card .product-bottom{font-size:12px}
  .rental-body h3{font-size:24px}
  .enquiry-context{grid-template-columns:62px minmax(0,1fr);gap:12px;padding:10px;margin-bottom:23px}
  .enquiry-context-thumb{height:79px}
  .enquiry-context-copy>strong{font-size:15px}
  .enquiry-context-copy>a{font-size:10px;gap:8px;margin-top:7px;min-height:24px}
  #enquiry-form{scroll-margin-top:90px}
}
@media(max-width:360px){
  .scene-copy h1{font-size:clamp(39px,12.6vw,45px)}
  .scene-copy>p{font-size:12px}
  .scene-copy .eyebrow{font-size:7px}
  .scene-actions{gap:9px 17px}
  .scene-actions .btn{font-size:10px;padding:14px 16px;gap:14px}
  .scene-actions .text-link{font-size:10px}
  .scene-bottom{padding:6px;gap:4px}
  .scene-dots button{width:29px;min-width:29px}
  .enquiry-context{grid-template-columns:1fr}
  .enquiry-context-thumb{display:none}
}
@media(max-height:680px) and (min-width:861px){
  .scene-copy h1{font-size:clamp(58px,11.4svh,78px)}
  .scene-copy>p{font-size:12px;min-height:3.7em;margin:19px 0 20px}
}
@media(prefers-reduced-motion:reduce){
  .scene-image:is(.is-active,.is-leaving){animation:none!important;transform:none!important}
  .scene-copy-exit>.eyebrow,.scene-copy-exit>h1,.scene-copy-exit>p,.scene-copy-exit>.scene-actions{opacity:1;transform:none}
  .product-card:after,.rental-card:after{display:none}
  .product-card:hover,.rental-card:hover,.btn:hover>.icon,.text-link:hover>.icon,.rental-card:hover .text-link>.icon{transform:none}
  .product-card:hover .product-photo>img,.rental-card:hover .rental-image>img{transform:none}
}
