/* ================================================================
   SIIC — cinematic website layer and original-profile content
   Core layouts remain in main-style.css. Reduced motion is supported.
   ================================================================ */
:root { --gold:#d9b57a; --gold-light:#f0d9ad; --navy:#071d2b; }
body { background:#fff; }
.reading-progress { position:fixed; inset:0 0 auto; height:3px; z-index:100; pointer-events:none; }
.reading-progress span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,#b58241,#edcf92); }
.site-header { backdrop-filter:blur(18px); background:#fffffff5; }
.button { position:relative; overflow:hidden; }
.button::before { content:""; position:absolute; inset:-100% auto -100% -70%; width:40%; background:linear-gradient(90deg,transparent,#ffffff40,transparent); transform:skewX(-20deg); transition:left .7s; pointer-events:none; }
.button:hover::before { left:150%; }
.reveal { transition-delay:var(--reveal-delay,0ms); }
.image-panel { overflow:hidden; }
.image-panel > img { will-change:transform; }
.section-inline-action { display:flex; flex-wrap:wrap; gap:35px; margin-top:45px; }

/* Cinematic, keyboard-accessible three-scene hero. */
.cinematic-hero { min-height:760px; display:block; }
.cinematic-hero::after { display:none; }
.hero-slides, .hero-slide { position:absolute; inset:0; }
.hero-slide { opacity:0; visibility:hidden; pointer-events:none; transition:opacity 1.25s ease,visibility 1.25s; }
.hero-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.hero-slide .hero-image { animation:none; transform:scale(1.02); object-position:center; }
.hero-slide.is-active .hero-image { animation:scene-drift 9s ease-out both; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,#031724f2,#031724b3 48%,#03172420),linear-gradient(0deg,#031724aa,transparent 45%); }
.hero-slide .hero-content { height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding-block:100px 145px; }
.cinematic-hero .hero-title { color:#fff; font-size:clamp(52px,5.6vw,82px); line-height:1.1; letter-spacing:-.055em; font-weight:400; margin:0 0 27px; max-width:1150px; animation:none; }
.cinematic-hero .hero-title em { color:var(--gold-light); font-style:normal; }
.cinematic-hero .hero-content p { max-width:600px; font-size:18px; color:#c8d5de; line-height:1.8; animation:none; }
.hero-slide.is-active .eyebrow { animation:scene-copy .8s .1s both; }
.hero-slide.is-active .hero-title { animation:scene-copy .9s .2s both; }
.hero-slide.is-active .hero-content p { animation:scene-copy 1s .35s both; }
.hero-slide.is-active .button-row { animation:scene-copy 1s .5s both; }
.hero-profile-link { display:inline-flex; align-items:center; gap:15px; color:#fff; font-size:13px; padding:15px 12px; }
.hero-profile-link .icon { color:var(--gold-light); width:19px; }
.hero-vision { position:absolute; z-index:5; top:30px; right:max(48px,calc((100vw - 1280px)/2)); width:152px; padding:12px; border:1px solid #ffffff30; background:#071d2b95; backdrop-filter:blur(8px); }
.hero-vision img { width:100%; }
.hero-vision > span { display:block; font-size:8px; line-height:1.6; letter-spacing:.06em; color:#d2dce2; padding-top:10px; text-align:center; }
.cinematic-hero .hero-grid { background:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),#ffffff07 calc(25% - 1px),#ffffff07 25%); }
.hero-controls { align-items:center; gap:22px; }
.hero-dots { display:flex; gap:20px; }
.hero-dot { display:flex; align-items:center; gap:9px; padding:15px 0; background:none; color:#a3b3bf; font-size:10px; }
.hero-dot > i { width:45px; height:2px; background:#ffffff40; position:relative; overflow:hidden; }
.hero-dot.is-active { color:var(--gold-light); }
.hero-dot.is-active > i { background:#d9b57a80; }
.hero-dot.is-active > i::after { content:""; position:absolute; inset:0; background:var(--gold-light); transform:scaleX(0); transform-origin:left; }
.is-playing .hero-dot.is-active > i::after { animation:hero-progress 7s linear both; }
.hero-pause { width:38px; height:38px; display:grid; place-items:center; color:#d2dce2; border:1px solid #ffffff40; border-radius:50%; background:transparent; }
.hero-pause .icon { width:14px; height:14px; }
.hero-pause.is-paused { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.hero-sector-label { color:#afc0cb; }
.expertise-ticker { overflow:hidden; background:var(--navy); border-top:1px solid #ffffff1f; color:#e9d7b8; padding:20px 0; }
.expertise-ticker-track { display:flex; width:max-content; animation:marquee-drift 45s linear infinite; }
.expertise-ticker-track > div { display:flex; align-items:center; gap:35px; padding-right:35px; }
.expertise-ticker span { text-transform:uppercase; font-size:10px; font-weight:600; letter-spacing:.17em; white-space:nowrap; }
.expertise-ticker i { color:var(--gold); font-style:normal; font-size:15px; }
.expertise-ticker:hover *, .expertise-ticker:focus-within *, .logo-marquee:hover *, .logo-marquee:focus-within * { animation-play-state:paused; }

/* Actual record counts and original equipment photography. */
.metrics-section { background:#fff; border-bottom:1px solid var(--line); }
.metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); padding-block:35px; }
.metric { border-right:1px solid var(--line); padding:0 35px; display:flex; gap:18px; align-items:center; }
.metric:first-child { padding-left:0; }
.metric:last-child { border-right:0; }
.metric-number { font-size:55px; font-weight:300; letter-spacing:-.065em; color:#aa8046; line-height:1; }
.metric > span:last-child { font-size:11px; line-height:1.6; max-width:125px; color:var(--muted); }
.visual-service-card { padding:0; min-height:0; border:1px solid #dde4e7; }
.service-card-photo { display:block; position:relative; overflow:hidden; background:#eef1f1; }
.service-card-photo > img { width:100%; height:220px; object-fit:cover; transition:transform .8s var(--ease),filter .5s; }
.service-card:hover .service-card-photo > img { transform:scale(1.055); filter:saturate(1.1); }
.photo-arrow { position:absolute; bottom:15px; right:15px; width:37px; height:37px; display:grid; place-items:center; background:#fffffff0; color:var(--navy); transform:translateY(60px); transition:transform .4s var(--ease); }
.photo-arrow .icon { width:18px; }
.service-card:hover .photo-arrow { transform:none; }
.service-card-content { padding:28px; display:flex; flex-direction:column; flex:1; }
.service-card-content .card-top { margin-bottom:23px; }
.service-card-content h3 { font-size:24px; }
.service-card-content .service-icon .icon { width:28px; height:28px; }
.equipment-collage { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.equipment-collage > a { display:block; overflow:hidden; background:#f3f5f4; border:1px solid var(--line); }
.equipment-collage img { width:100%; height:190px; object-fit:contain; padding:15px; background:white; transition:transform .65s; }
.equipment-collage a:hover img { transform:scale(1.07); }
.equipment-collage span { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 15px; font-size:11px; line-height:1.5; }
.equipment-collage span .icon { width:15px; color:#987240; }
.equipment-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px; }
.equipment-card { background:white; border:1px solid var(--line); display:flex; flex-direction:column; transition:box-shadow .4s,border-color .3s,transform .4s; }
.equipment-card:hover { box-shadow:0 20px 40px #071d2b0b; border-color:#c6a66e; transform:translateY(-5px); }
.equipment-photo { display:block; height:250px; padding:18px; position:relative; background:#f8f9f8; overflow:hidden; }
.equipment-photo > img { width:100%; height:100%; object-fit:contain; transition:transform .7s var(--ease); }
.equipment-photo:hover > img { transform:scale(1.055); }
.equipment-photo > span { position:absolute; right:13px; bottom:13px; width:33px; height:33px; background:#fff; border:1px solid var(--line); display:grid; place-items:center; color:#927039; }
.equipment-photo > span .icon { width:15px; }
.equipment-no-photo { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; min-height:170px; }
.equipment-no-photo > .icon { width:55px; height:55px; color:#c1a77d; }
.equipment-no-photo > span { position:static; width:auto; height:auto; background:none; border:none; text-align:center; color:#71818b; font-size:11px; line-height:1.6; }
.equipment-card-body { padding:25px; display:flex; flex-direction:column; flex:1; }
.equipment-card h3 { font-size:23px; margin:11px 0 14px; line-height:1.25; }
.equipment-card p { font-size:12px; line-height:1.65; margin-bottom:20px; }
.equipment-card .card-link { font-size:11px; }
.equipment-thumbs { margin-bottom:20px; }
.equipment-thumbs a { display:flex; align-items:center; gap:13px; padding:10px; border:1px solid var(--line); font-size:10px; }
.equipment-thumbs img { width:70px; height:50px; object-fit:contain; }
.equipment-thumbs span { display:flex; align-items:center; gap:10px; }
.equipment-thumbs .icon { width:13px; }

/* Logos are the original identities supplied in the PDF. */
.logo-vendor-grid .vendor-card { padding:25px; }
.vendor-logo { height:100px; width:100%; border-bottom:1px solid var(--line); margin-bottom:25px; padding:10px 5px 25px; display:grid; place-items:center; }
.vendor-logo > img { max-height:65px; width:100%; object-fit:contain; transition:transform .45s; }
.vendor-card:hover .vendor-logo > img { transform:scale(1.06); }
.logo-vendor-grid h3 { font-size:19px; }
.client-logo-card { background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 23px 20px; display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:20px; min-height:175px; transition:background .3s; }
.client-logo-card:hover { background:#fafbf9; }
.client-logo-card img { width:100%; height:82px; object-fit:contain; transition:transform .5s; }
.client-logo-card:hover img { transform:scale(1.06); }
.client-logo-card span { color:var(--muted); font-size:10px; text-align:center; }
.partner-values { display:grid; grid-template-columns:repeat(5,1fr); gap:25px; margin-top:55px; border-top:1px solid var(--line); padding-top:30px; }
.partner-values h3 { font-size:19px; margin-bottom:12px; }
.partner-values p { font-size:12px; margin:0; }
.logo-marquee { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:40px; background:#fff; }
.logo-marquee-track { width:max-content; display:flex; animation:marquee-drift 65s linear infinite; }
.logo-marquee-set { display:flex; align-items:center; padding:24px 15px; }
.logo-marquee-set > div { flex:0 0 170px; width:170px; padding:8px 25px; border-right:1px solid var(--line); }
.logo-marquee img { width:120px; height:65px; object-fit:contain; }

/* Vision 2030 is sourced from the supplied profile. */
.vision-feature { background:linear-gradient(110deg,#092e31,#071d2b 70%); color:#fff; position:relative; overflow:hidden; }
.vision-feature-inner { position:relative; display:grid; grid-template-columns:.55fr 1fr; gap:110px; align-items:center; padding-block:85px; }
.vision-emblem { display:flex; align-items:center; flex-direction:column; gap:25px; border-right:1px solid #ffffff2c; padding-right:70px; }
.vision-emblem img { width:220px; }
.vision-emblem > span { color:#b5c7ca; font-size:10px; text-transform:uppercase; letter-spacing:.15em; }
.vision-feature h2 { font-weight:400; max-width:650px; }
.vision-feature p { color:#bdcfd2; max-width:600px; }
.vision-orbit { position:absolute; left:-200px; top:50%; margin-top:-330px; width:660px; height:660px; border:1px solid #ffffff12; border-radius:50%; box-shadow:0 0 0 70px #ffffff03,0 0 0 140px #ffffff02; animation:orbit-drift 26s linear infinite; pointer-events:none; }
.vision-orbit::after { content:""; position:absolute; left:85px; top:85px; width:10px; height:10px; background:var(--gold); box-shadow:0 0 25px #d9b57a80; border-radius:50%; }
.vision-emblem-card { position:relative; background:linear-gradient(140deg,#082e31,#071d2b); min-height:420px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; padding:55px; }
.vision-emblem-card img { width:270px; position:relative; }
.vision-emblem-card > span { color:#dce8e7; font-size:21px; line-height:1.5; text-align:center; margin-top:30px; position:relative; }
.vision-priority-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.vision-priority-grid article { border-top:1px solid #b3c8c0; padding-top:25px; }
.vision-priority-grid article > span { color:#9a773c; font-size:12px; display:block; margin-bottom:30px; }
.vision-priority-grid h3 { font-size:29px; }
.vision-priority-grid p { font-size:14px; }

/* Full service scope, technical software views and cleaning comparison. */
.scope-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:45px 70px; }
.scope-directory-group { border-top:1px solid #ffffff28; padding-top:27px; }
.scope-directory-group h3 { color:var(--gold-light); font-size:25px; margin-bottom:22px; }
.scope-directory-group ul { display:grid; gap:0; }
.scope-directory-group a { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:11px 0; border-bottom:1px solid #ffffff12; font-size:13px; line-height:1.65; color:#c1ced6; transition:color .3s,padding .3s; }
.scope-directory-group a:hover { color:#fff; padding-left:5px; }
.scope-directory-group .icon { width:15px; height:15px; color:var(--gold); }
.service-media-block { margin:40px 0; padding-top:10px; }
.service-media-block > p { font-size:14px; }
.service-media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-media-grid img { width:100%; height:165px; object-fit:cover; transition:filter .4s,transform .5s; }
.service-media-grid a { display:block; overflow:hidden; }
.service-media-grid a:hover img { transform:scale(1.045); filter:saturate(1.12); }
.service-media-grid figcaption { font-size:11px; line-height:1.5; margin-top:12px; }
.technical-gallery { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.technical-gallery figure:last-child { grid-column:1/-1; }
.technical-gallery a { display:block; border:1px solid var(--line); }
.technical-gallery img { width:100%; height:220px; object-fit:contain; background:#f3f4ef; }
.technical-gallery a > span { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; font-size:10px; }
.technical-gallery .icon { width:14px; }
.technical-gallery figcaption { font-size:11px; margin-top:11px; }
.image-comparison { position:relative; height:390px; overflow:hidden; background:var(--navy); }
.image-comparison > img, .comparison-after img { width:100%; height:100%; object-fit:cover; }
.comparison-after { position:absolute; inset:0; clip-path:inset(0 0 0 var(--compare)); }
.comparison-label { position:absolute; top:20px; z-index:2; background:#071d2bbb; color:#fff; padding:6px 13px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; pointer-events:none; }
.label-before { left:20px; } .label-after { right:20px; }
.comparison-handle { position:absolute; left:var(--compare); top:0; bottom:0; width:2px; background:var(--gold-light); display:flex; align-items:center; justify-content:center; color:var(--navy); pointer-events:none; }
.comparison-handle::before { content:""; position:absolute; width:42px; height:42px; background:var(--gold-light); border-radius:50%; z-index:-1; }
.image-comparison input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0; }
.image-comparison:focus-within { outline:3px solid var(--gold); outline-offset:4px; }
.comparison-links { display:flex; justify-content:space-between; gap:15px; margin-top:15px; font-size:11px; color:#8c6a35; }
.comparison-links .icon { width:13px; }
.cleaning-methods { display:grid; grid-template-columns:1fr 1fr; gap:25px; margin-top:35px; }
.cleaning-methods article { padding:22px; border:1px solid var(--line); }
.cleaning-methods img { width:100%; height:170px; object-fit:contain; background:var(--navy); margin-bottom:23px; }
.cleaning-methods h4 { font-size:20px; }
.cleaning-methods p { font-size:12px; margin-bottom:0; }

/* Solutions, financial background, HSE and full 18-page profile. */
.solutions-list { border-top:1px solid var(--line); }
.solution-row { display:grid; grid-template-columns:.35fr 1fr; gap:70px; padding:50px 0; border-bottom:1px solid var(--line); }
.solution-number { color:#c5ac85; font-size:85px; font-weight:300; line-height:1.05; letter-spacing:-.06em; }
.solution-row > div > .icon { color:#a48044; width:36px; height:36px; margin-bottom:23px; }
.solution-row h2 { font-size:36px; max-width:620px; }
.solution-row p { font-size:16px; max-width:800px; margin-bottom:0; }
.solutions-footnote { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:35px; font-size:10px; color:#8d6a33; }
.solutions-footnote a { display:flex; align-items:center; gap:12px; }
.solutions-footnote .icon { width:16px; }
.financial-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.financial-card { padding:30px; background:#f4f6f3; position:relative; border-bottom:2px solid #dbc49f; }
.financial-card > span { color:#a8b2b5; font-size:10px; position:absolute; right:23px; top:23px; }
.financial-card > .icon { width:35px; height:35px; color:#9c783e; margin-bottom:35px; }
.financial-card h3 { font-size:25px; }
.financial-card p { font-size:13px; margin-bottom:0; }
.partnership-quote { border:1px solid #d9b57a66; padding:40px; background:linear-gradient(145deg,#183f4b80,transparent); }
.partnership-quote > span { font-size:100px; line-height:.7; color:var(--gold); display:block; }
.partnership-quote blockquote { margin:20px 0 30px; font-size:35px; letter-spacing:-.04em; line-height:1.35; font-weight:300; }
.growth-value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.growth-value-grid article { border-left:2px solid #d9b57a; padding-left:22px; }
.growth-value-grid h3 { font-size:23px; margin-bottom:15px; }
.growth-value-grid p { font-size:12px; margin-bottom:0; }
.hse-original-graphic { width:270px; height:240px; object-fit:contain; margin-top:35px; }
.hse-commitment-list { padding-left:15px; list-style:disc; }
.hse-commitment-list li { font-size:13px; line-height:1.8; color:var(--muted); margin-bottom:13px; }
.hse-commitment-list li:last-child { margin-bottom:0; }
.profile-page-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.profile-page-card { border:1px solid var(--line); background:#fff; }
.profile-page-card > a { display:block; position:relative; overflow:hidden; background:var(--navy); }
.profile-page-card img { aspect-ratio:16/9; width:100%; object-fit:contain; transition:transform .55s,opacity .4s; }
.profile-page-card > a:hover img { opacity:.8; transform:scale(1.025); }
.profile-page-card > a > span { position:absolute; bottom:10px; right:10px; color:#fff; font-size:9px; background:#071d2bd9; padding:6px 9px; display:flex; align-items:center; gap:10px; }
.profile-page-card > a .icon { width:12px; }
.profile-page-card > div { padding:24px; }
.profile-page-card > div > span { color:#a48044; font-size:10px; }
.profile-page-card h3 { font-size:23px; margin:10px 0 18px; }
.profile-page-card .text-link { font-size:11px; gap:15px; }

/* Icon-only contact FAB with a second, nested social menu. */
.contact-fab { position:fixed; right:25px; bottom:25px; z-index:70; display:none; }
.enhanced .contact-fab { display:block; }
body.nav-open .contact-fab { visibility:hidden; }
.fab-toggle { width:58px; height:58px; border-radius:50%; background:var(--gold); color:var(--navy); display:grid; place-items:center; position:relative; box-shadow:0 8px 30px #071d2b35; border:1px solid #f2dfbb; transition:background .3s,transform .4s; }
.fab-toggle::before { content:""; position:absolute; inset:-6px; border:1px solid #caa46b55; border-radius:50%; animation:fab-pulse 3.2s ease-out infinite; pointer-events:none; }
.fab-toggle > .icon { width:26px; height:26px; transition:transform .4s; }
.contact-fab.is-open .fab-toggle { background:var(--navy); color:#fff; }
.contact-fab.is-open .fab-toggle > .icon { transform:rotate(45deg); }
.contact-fab.is-open .fab-toggle::before { animation:none; opacity:0; }
.fab-actions { position:absolute; right:4px; bottom:76px; display:flex; flex-direction:column; align-items:center; gap:11px; }
.fab-action { position:relative; display:grid; place-items:center; width:50px; height:50px; background:#fff; color:var(--navy); border:1px solid #dee5e7; border-radius:50%; box-shadow:0 5px 18px #071d2b20; transition:transform .2s,background .2s,color .2s; }
.fab-actions > .fab-action, .fab-actions > .fab-social-group { animation:fab-enter .35s var(--ease) both; }
.fab-actions > :nth-child(2) { animation-delay:30ms; }.fab-actions > :nth-child(3) { animation-delay:60ms; }.fab-actions > :nth-child(4) { animation-delay:90ms; }.fab-actions > :nth-child(5) { animation-delay:120ms; }.fab-actions > :nth-child(6) { animation-delay:150ms; }
.fab-action:hover { background:var(--navy); color:#fff; transform:translateX(-3px); }
.fab-whatsapp { background:#1c9f60; border-color:#1c9f60; color:#fff; }
.fab-whatsapp:hover { background:#147a49; }
.fab-action > .icon { width:21px; height:21px; }
.fab-label { position:absolute; right:64px; top:50%; transform:translateY(-50%); background:var(--navy); color:#fff; white-space:nowrap; font-size:10px; line-height:1.3; padding:7px 10px; border-radius:2px; box-shadow:0 3px 9px #071d2b18; }
.fab-label::after { content:""; position:absolute; left:100%; top:50%; margin-top:-4px; border:4px solid transparent; border-left-color:var(--navy); }
.fab-social-group { position:relative; }
.social-is-open .fab-social-toggle { background:var(--navy); color:#fff; }
.social-is-open .fab-social-toggle > .fab-label { display:none; }
.fab-social-panel { position:absolute; right:66px; bottom:0; width:225px; padding:20px; background:#fff; border:1px solid var(--line); box-shadow:0 10px 35px #071d2b26; border-radius:10px; animation:social-enter .25s var(--ease); }
.fab-social-heading { display:block; font-size:10px; color:#826638; text-transform:uppercase; letter-spacing:.08em; padding-bottom:13px; border-bottom:1px solid var(--line); margin-bottom:13px; }
.fab-social-links { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.fab-social-links a { display:flex; flex-direction:column; align-items:center; gap:5px; font-size:8px; color:#4d6370; padding:7px 2px; }
.fab-social-links .icon { width:21px; height:21px; }
.fab-social-links a:hover { background:var(--soft); color:#956a2d; }
.fab-social-panel p { font-size:11px; line-height:1.7; margin-bottom:12px; }
.fab-social-email { display:flex; align-items:center; gap:8px; font-size:10px; color:#86602c; }
.fab-social-email .icon { width:14px; height:14px; }
.motion-toggle { background:none; color:var(--muted); font-size:10px; padding:0; text-decoration:underline; }
html.motion-paused *, html.motion-paused *::before, html.motion-paused *::after { animation-play-state:paused!important; transition-duration:0s!important; }
html.motion-paused .hero-slide.is-active .hero-content > *, html.motion-paused .hero-slide.is-active .button-row { animation:none!important; opacity:1; transform:none; }

@keyframes scene-drift { from{transform:scale(1.04)}to{transform:scale(1.12)} }
@keyframes scene-copy { from{opacity:0;transform:translateY(27px)}to{opacity:1;transform:translateY(0)} }
@keyframes hero-progress { to{transform:scaleX(1)} }
@keyframes marquee-drift { to{transform:translateX(-50%)} }
@keyframes orbit-drift { to{transform:rotate(360deg)} }
@keyframes fab-pulse { 0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(1.3);opacity:0} }
@keyframes fab-enter { from{opacity:0;transform:translateY(15px) scale(.8)}to{opacity:1;transform:none} }
@keyframes social-enter { from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none} }

/* Tablet and laptop adaptations. */
@media(max-width:1180px) {
    .cinematic-hero { min-height:710px; }
    .cinematic-hero .hero-title { font-size:66px; }
    .hero-vision { right:32px; width:125px; }
    .hero-vision > span { font-size:7px; }
    .hero-sector-label { display:none; }
    .hero-controls { gap:17px; }
    .metrics-grid { padding-block:30px; }
    .metric { padding:0 22px; gap:13px; }
    .metric-number { font-size:47px; }
    .metric > span:last-child { font-size:10px; }
    .service-card-photo > img { height:190px; }
    .service-card-content { padding:24px; }
    .equipment-photo { height:220px; }
    .equipment-card-body { padding:23px; }
    .equipment-card h3 { font-size:21px; }
    .equipment-collage img { height:160px; }
    .vision-feature-inner { gap:65px; }
    .vision-emblem { padding-right:45px; }
    .vision-emblem img { width:190px; }
    .financial-grid { grid-template-columns:1fr 1fr; }
    .partner-values { gap:20px; }
    .partner-values h3 { font-size:17px; }
    .partner-values p { font-size:11px; }
    .scope-directory { gap:40px; }
}
@media(max-width:900px) {
    .cinematic-hero .hero-title { font-size:58px; max-width:760px; }
    .cinematic-hero .hero-content p { max-width:520px; font-size:17px; }
    .hero-vision { width:105px; padding:8px; }
    .hero-vision > span { display:none; }
    .metrics-grid { grid-template-columns:1fr 1fr; gap:28px 0; }
    .metric:nth-child(2) { border-right:0; }.metric:nth-child(3) { padding-left:0; }
    .metric > span:last-child { max-width:none; font-size:11px; }
    .equipment-photo-grid { grid-template-columns:1fr 1fr; gap:22px; }
    .equipment-collage { max-width:650px; width:100%; }
    .equipment-collage img { height:215px; }
    .service-card-photo > img { height:225px; }
    .vision-feature-inner { grid-template-columns:.45fr 1fr; gap:40px; padding-block:65px; }
    .vision-emblem { padding-right:25px; }
    .vision-emblem img { width:150px; }
    .vision-emblem > span { font-size:8px; text-align:center; }
    .vision-feature h2 { font-size:38px; }
    .scope-directory { gap:35px; }
    .scope-directory-group h3 { font-size:24px; }
    .scope-directory-group a { font-size:12px; }
    .service-media-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .service-media-grid img { height:180px; }
    .solution-row { grid-template-columns:.2fr 1fr; gap:40px; }
    .solution-number { font-size:65px; }
    .solution-row h2 { font-size:32px; }
    .solutions-footnote { flex-wrap:wrap; justify-content:flex-start; }
    .profile-page-grid { grid-template-columns:1fr 1fr; }
    .growth-value-grid { grid-template-columns:1fr 1fr; gap:35px; }
    .partner-values { grid-template-columns:repeat(3,1fr); gap:28px; }
    .vision-priority-grid { grid-template-columns:1fr; gap:30px; }
    .vision-priority-grid article > span { margin-bottom:20px; }
    .vision-priority-grid p { margin-bottom:0; }
}
@media(max-width:600px) {
    .cinematic-hero { min-height:740px; }
    .hero-slide .hero-content { padding-block:140px 140px; }
    .cinematic-hero .hero-title { font-size:43px; line-height:1.15; margin-bottom:23px; }
    .cinematic-hero .hero-content p { font-size:15px; max-width:340px; margin-bottom:25px; }
    .hero-slide .hero-image { object-position:65% center; }
    .hero-shade { background:linear-gradient(90deg,#031724ed,#031724a0),linear-gradient(0deg,#031724aa,transparent); }
    .hero-vision { right:20px; top:20px; width:96px; }
    .hero-profile-link { font-size:11px; padding:12px 2px; gap:10px; }
    .hero-profile-link .icon { width:15px; }
    .cinematic-hero .hero-foot { min-height:82px; }
    .hero-controls { gap:13px; }
    .hero-dots { gap:11px; }
    .hero-dot { gap:5px; font-size:8px; }
    .hero-dot > i { width:21px; }
    .hero-pause { width:28px; height:28px; }
    .hero-pause .icon { width:11px; height:11px; }
    .expertise-ticker { padding-block:15px; }
    .expertise-ticker span { font-size:8px; letter-spacing:.12em; }
    .expertise-ticker-track > div { gap:23px; padding-right:23px; }
    .metrics-grid { gap:25px 0; padding-block:28px; }
    .metric { padding:0 14px; gap:12px; }
    .metric-number { font-size:42px; }
    .metric > span:last-child { font-size:9px; max-width:90px; }
    .service-card-photo > img { height:220px; }
    .service-card-content { padding:26px; }
    .service-card-content h3 { font-size:25px; }
    .photo-arrow { transform:none; width:32px; height:32px; }
    .equipment-collage { gap:12px; }
    .equipment-collage img { height:145px; padding:8px; }
    .equipment-collage span { font-size:9px; padding:12px 10px; }
    .equipment-collage span .icon { width:12px; }
    .equipment-photo-grid { grid-template-columns:1fr; gap:22px; }
    .equipment-photo { height:260px; padding:20px; }
    .equipment-card h3 { font-size:25px; }
    .equipment-card-body { padding:25px; }
    .equipment-no-photo { height:190px; }
    .vision-feature-inner { grid-template-columns:1fr; gap:38px; padding-block:55px; }
    .vision-emblem { padding:0 0 30px; border-right:0; border-bottom:1px solid #ffffff25; align-items:flex-start; gap:15px; }
    .vision-emblem img { width:170px; }
    .vision-feature h2 { font-size:38px; }
    .vision-feature p { font-size:14px; }
    .vision-emblem-card { min-height:330px; padding:35px; }
    .vision-emblem-card img { width:230px; }
    .vision-emblem-card > span { font-size:19px; }
    .vendor-logo { height:80px; padding:5px 0 20px; margin-bottom:20px; }
    .vendor-logo > img { max-height:55px; }
    .logo-vendor-grid .vendor-card { padding:20px 16px; }
    .logo-vendor-grid h3 { font-size:17px; }
    .client-logo-card { min-height:150px; padding:22px 16px 16px; gap:17px; }
    .client-logo-card img { height:65px; }
    .client-logo-card span { font-size:9px; }
    .partner-values { grid-template-columns:1fr 1fr; gap:25px; margin-top:35px; }
    .partner-values h3 { font-size:18px; }
    .logo-marquee-set > div { width:140px; flex-basis:140px; padding:7px 20px; }
    .logo-marquee img { width:100px; height:55px; }
    .scope-directory { grid-template-columns:1fr; gap:35px; }
    .scope-directory-group h3 { font-size:25px; }
    .scope-directory-group a { font-size:12px; padding-block:11px; }
    .service-media-grid { grid-template-columns:1fr 1fr; gap:16px; }
    .service-media-grid img { height:160px; }
    .service-media-grid figcaption { font-size:10px; }
    .technical-gallery { grid-template-columns:1fr; gap:20px; }
    .technical-gallery figure:last-child { grid-column:auto; }
    .technical-gallery img { height:auto; max-height:300px; }
    .image-comparison { height:290px; }
    .comparison-label { top:12px; font-size:9px; padding:5px 10px; }
    .label-before { left:12px; }.label-after { right:12px; }
    .comparison-links { font-size:10px; }
    .cleaning-methods { grid-template-columns:1fr; gap:20px; }
    .solution-row { grid-template-columns:1fr; gap:20px; padding-block:35px; }
    .solution-number { font-size:47px; }
    .solution-row h2 { font-size:30px; }
    .solution-row p { font-size:14px; }
    .solution-row > div > .icon { display:none; }
    .solutions-footnote { display:grid; gap:17px; font-size:9px; }
    .financial-grid { grid-template-columns:1fr; gap:20px; }
    .financial-card { padding:30px; }
    .financial-card h3 { font-size:27px; }
    .partnership-quote { padding:30px; }
    .partnership-quote blockquote { font-size:31px; }
    .growth-value-grid { grid-template-columns:1fr; gap:28px; }
    .growth-value-grid h3 { font-size:25px; }
    .profile-page-grid { grid-template-columns:1fr; gap:26px; }
    .profile-page-card h3 { font-size:25px; }
    .hse-original-graphic { width:230px; height:210px; }
    .contact-fab { right:18px; bottom:18px; }
    .fab-toggle { width:54px; height:54px; }
    .fab-actions { bottom:69px; right:3px; gap:9px; }
    .fab-action { width:47px; height:47px; }
    .fab-label { right:60px; font-size:9px; }
    .fab-social-panel { right:59px; width:215px; padding:18px; }
    .motion-toggle { font-size:9px; }
}
@media(max-width:360px) {
    .cinematic-hero { min-height:790px; }
    .cinematic-hero .hero-title { font-size:38px; }
    .hero-slide .hero-content { padding-top:140px; }
    .hero-dots { gap:8px; }.hero-dot > i { width:17px; }
    .metric { gap:9px; }.metric-number { font-size:37px; }.metric > span:last-child { font-size:8px; }
    .fab-social-panel { width:190px; right:58px; }
    .equipment-collage img { height:120px; }
}
@media(max-height:600px) and (max-width:700px) {
    .fab-actions { gap:6px; bottom:60px; }
    .fab-action { width:39px; height:39px; }
    .fab-action > .icon { width:18px; height:18px; }
    .fab-label { right:51px; }
}
@media(prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation:none!important; transition:none!important; }
    .hero-slide .hero-image { transform:none; }
    .hero-slide.is-active .hero-content > * { opacity:1; transform:none; }
    .logo-marquee-track { animation:none; }
    .logo-marquee { overflow-x:auto; }
    .logo-marquee-set[aria-hidden] { display:none; }
    .expertise-ticker-track { animation:none; }
    .expertise-ticker { overflow-x:auto; }
    .expertise-ticker-track > [aria-hidden] { display:none; }
}
@media print {
    .contact-fab, .hero-vision, .expertise-ticker, .hero-controls, .reading-progress { display:none!important; }
    .cinematic-hero { min-height:230px; }
    .hero-slide { display:none; }.hero-slide:first-child { display:block; position:static; opacity:1; visibility:visible; }
    .hero-slide .hero-content { padding:20px 0; }
    .hero-shade { display:none; }.cinematic-hero .hero-title, .cinematic-hero .hero-title em { color:#000; }
    .equipment-photo-grid { grid-template-columns:1fr 1fr; }.equipment-card { break-inside:avoid; }
    .logo-marquee-track { animation:none; }.logo-marquee-set[aria-hidden] { display:none; }
}

/* Every inner page receives a subtle entrance, with readable static fallbacks. */
.page-banner .banner-image { animation:banner-drift 15s ease-out both; }
.page-banner .breadcrumbs { animation:scene-copy .65s both; }
.page-banner .eyebrow { animation:scene-copy .8s .1s both; }
.page-banner h1 { animation:scene-copy .9s .18s both; }
.page-banner .banner-bottom { animation:scene-copy .9s .28s both; }
html.motion-paused .page-banner .banner-content > * { animation:none!important; opacity:1; transform:none; }
html.motion-paused .reveal.reveal-wait { opacity:1; transform:none; }
html.motion-paused .logo-marquee { overflow-x:auto; }
html.motion-paused .logo-marquee-track { animation:none!important; }
html.motion-paused .logo-marquee-set[aria-hidden] { display:none; }
@keyframes banner-drift { from { transform:scale(1.02); } to { transform:scale(1.1); } }
@media(prefers-reduced-motion:reduce) {
 .page-banner .banner-content > *, .page-banner .banner-image { animation:none!important; transform:none; opacity:1; }
 .page-banner .banner-image { opacity:.45; }
}
/* Keep the comparison grip above both images and below the native range. */
.comparison-handle { z-index:2; isolation:isolate; }
.image-comparison input { z-index:3; }
html.motion-paused { scroll-behavior:auto; }
/* On short windows, spread the actions horizontally so every icon stays visible. */
@media(max-height:450px) {
 .fab-actions { flex-direction:row; right:0; bottom:68px; gap:8px; }
 .fab-action { width:40px; height:40px; }
 .fab-action > .icon { width:18px; height:18px; }
 .fab-label { display:none; }
 .fab-action:hover > .fab-label, .fab-action:focus-visible > .fab-label { display:block; right:auto; left:50%; top:-25px; transform:translateX(-50%); }
 .fab-label::after { display:none; }
 .fab-social-panel { right:0; bottom:54px; }
}
