:root {
  color-scheme: dark;
  --ink: #080808;
  --paper: #f1f0ea;
  --red: #d51f31;
  --red-dark: #8e0e1c;
  --lime: #d6ff30;
  --line: rgba(255, 255, 255, .16);
  --page: min(1440px, calc(100% - clamp(40px, 8vw, 128px)));
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; background: var(--ink); color: #fff; font-family: 'Inter', sans-serif; letter-spacing: -.012em; }
body.menu-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
img { display: block; max-width: 100%; }
.mono { font-family: 'Fira Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.shell { width: var(--page); margin-inline: auto; }
.skip-link { position: fixed; z-index: 2000; top: 8px; left: 8px; padding: 10px 14px; background: var(--lime); color: #080808; transform: translateY(-140%); }
.skip-link:focus { transform: none; }

/* Shared homepage navigation */
.liquid-glass { background: linear-gradient(120deg, rgba(255,255,255,.22), rgba(255,255,255,.055) 42%, rgba(255,255,255,.14)); backdrop-filter: blur(26px) saturate(180%) brightness(1.18); -webkit-backdrop-filter: blur(26px) saturate(180%) brightness(1.18); }
.nav { position: fixed; inset: 16px 0 auto; z-index: 1000; display: grid; grid-template-columns: 132px 1fr 132px; align-items: center; padding: 0 clamp(24px, 4vw, 64px); pointer-events: none; transform: translate3d(0, var(--nav-shift, 0), 0); will-change: transform; }
.nav > * { pointer-events: auto; }
.brand { width: 132px; height: 55px; display: grid; place-items: center; }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.menu { justify-self: center; display: flex; align-items: center; gap: 2px; padding: 5px; overflow: visible; border: .65px solid rgba(255,255,255,.34); border-radius: 999px; box-shadow: 0 12px 35px rgba(0,0,0,.24), inset 0 .65px .75px rgba(255,255,255,.54), inset 0 -.65px 1px rgba(0,0,0,.16); }
.menu a, .nav-dropdown > button { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 8px 11px; border: 0; background: transparent; color: rgba(255,255,255,.96); text-decoration: none; white-space: nowrap; text-shadow: 0 1px 6px rgba(0,0,0,.35); cursor: pointer; font: 500 13px 'Inter', sans-serif; }
.menu a:hover, .menu a:focus-visible, .nav-dropdown > button:hover, .nav-dropdown > button:focus-visible { border-radius: 999px; background: rgba(255,255,255,.16); outline: none; }
.nav-dropdown { position: relative; }
.nav-dropdown > button svg { width: 14px; transition: transform .2s ease; }
.nav-dropdown.open > button svg { transform: rotate(180deg); }
.dropdown-panel { position: absolute; top: calc(100% + 18px); left: 50%; display: grid; grid-template-columns: .86fr 1.14fr; gap: 8px; width: 520px; padding: 9px; border: 1px solid rgba(255,255,255,.23); border-radius: 20px; background: linear-gradient(145deg, rgba(35,42,55,.82), rgba(8,11,16,.74)); backdrop-filter: blur(32px) saturate(175%); opacity: 0; visibility: hidden; transform: translate(-50%, -8px) scale(.97); pointer-events: none; transition: .25s ease; box-shadow: 0 20px 55px rgba(0,0,0,.4); }
.nav-dropdown.open .dropdown-panel, .nav-dropdown:hover .dropdown-panel { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); pointer-events: auto; }
.dropdown-hero { min-height: 220px; display: flex; flex-direction: column; justify-content: end; padding: 17px; overflow: hidden; border-radius: 13px; background: linear-gradient(180deg, rgba(5,9,14,.06), rgba(5,9,14,.95)), url('concert-hero-background.webp') center / cover; }
.dropdown-kicker { margin-bottom: 8px; color: var(--lime); font: 600 10px 'Fira Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }
.dropdown-hero strong { font-size: 21px; line-height: 1; }
.dropdown-hero p { margin: 9px 0 0; color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.35; }
.dropdown-links { display: grid; align-content: center; gap: 2px; }
.dropdown-links a { min-height: 40px; border-radius: 10px; }
.dropdown-links a:hover { background: rgba(214,255,48,.12); }
.claim { margin-left: 3px; border: 1px solid var(--lime) !important; border-radius: 999px !important; background: var(--lime) !important; color: #10150d !important; font-weight: 700 !important; text-shadow: none !important; }
.claim:hover { background: #080b07 !important; color: #fff !important; }
.nav-spacer { width: 48px; }
.mobile-toggle { display: none; width: 48px; height: 48px; justify-self: end; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; cursor: pointer; }
.menu-icon, .menu-icon::before, .menu-icon::after { display: block; width: 18px; height: 1.5px; background: currentColor; content: ''; transition: .2s ease; }
.menu-icon { position: relative; }
.menu-icon::before, .menu-icon::after { position: absolute; left: 0; }
.menu-icon::before { top: -6px; }
.menu-icon::after { top: 6px; }
.mobile-toggle[aria-expanded=true] .menu-icon { background: transparent; }
.mobile-toggle[aria-expanded=true] .menu-icon::before { top: 0; transform: rotate(45deg); }
.mobile-toggle[aria-expanded=true] .menu-icon::after { top: 0; transform: rotate(-45deg); }

/* Attention */
.industry-hero { position: relative; isolation: isolate; min-height: 100svh; display: flex; align-items: end; overflow: hidden; padding: 170px 0 clamp(54px, 7vw, 96px); background: #080808; }
.industry-hero-media, .industry-hero-wash, .industry-hero-grid { position: absolute; inset: 0; }
.industry-hero-media { z-index: -3; width: 100%; height: 100%; object-fit: cover; object-position: center; filter: brightness(.58) saturate(.72) contrast(1.08); transform: scale(1.04); }
.industry-hero-wash { z-index: -2; background: radial-gradient(circle at 76% 38%, transparent 0 18%, rgba(0,0,0,.13) 42%, #080808 86%), linear-gradient(90deg, rgba(0,0,0,.58), transparent 63%), linear-gradient(0deg, #080808 0, transparent 32%); }
.industry-hero-grid { z-index: -1; opacity: .18; background: linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px); background-size: calc(100vw / 12) 100%; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.hero-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .52fr); gap: clamp(44px, 8vw, 140px); align-items: end; }
.breadcrumb { margin: 0 0 28px; color: rgba(255,255,255,.68); font-size: 10px; font-weight: 600; }
.breadcrumb a { color: #fff; text-decoration: none; transition: color .2s ease; }
.breadcrumb a:not([aria-current="page"]):hover, .breadcrumb a:not([aria-current="page"]):focus-visible { color: var(--lime); outline: none; }
.breadcrumb a[aria-current="page"] { color: rgba(255,255,255,.45); pointer-events: none; }
.industry-hero h1 { max-width: 1152px; margin: 0; font-size: clamp(52px, 7.25vw, 88px); font-weight: 500; line-height: .88; letter-spacing: -.075em; text-wrap: balance; }
.hero-inline-media { display: inline-block; width: clamp(80px, 10vw, 156px); height: .55em; margin: 0 .1em .03em; overflow: hidden; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; vertical-align: middle; }
.hero-inline-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.14); transition: transform .8s cubic-bezier(.16,1,.3,1); }
.industry-hero:hover .hero-inline-media img { transform: scale(1); }
.hero-side { max-width: 520px; padding-bottom: 8px; }
.hero-summary { margin: 0; color: rgba(255,255,255,.82); font-size: clamp(16px, 1.35vw, 20px); line-height: 1.48; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 11px; padding: 0 19px; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; transition: .25s ease; }
.button::after { content: '↗'; font-size: 18px; }
.button-primary { border-color: var(--lime); background: var(--lime); color: #10150d; }
.button:hover, .button:focus-visible { transform: translateY(-3px); border-color: var(--lime); outline: none; }
.button-primary:hover, .button-primary:focus-visible { background: #fff; border-color: #fff; }
.hero-index { position: absolute; right: clamp(24px,4vw,64px); bottom: 26px; color: rgba(255,255,255,.48); font-size: 10px; }

/* Who we serve */
.who-we-serve { overflow: hidden; padding: clamp(110px, 14vw, 190px) 0; background: var(--red); color: #fff; }
.serve-head { display: flex; justify-content: space-between; gap: 38px; align-items: end; margin-bottom: clamp(46px, 6vw, 78px); }
.serve-head > div > .mono, .solutions-head > .mono { margin: 0 0 18px; color: var(--lime); font-size: 10px; font-weight: 600; }
.serve-head h2, .solutions-head h2 { max-width: 850px; margin: 0; font-size: clamp(52px, 7vw, 88px); font-weight: 500; line-height: .88; letter-spacing: -.075em; }
.serve-rental-cta-wrap { display: flex; justify-content: center; padding-top: clamp(42px, 5vw, 72px); }
.serve-rental-cta { display: inline-flex; min-width: 224px; min-height: 54px; align-items: center; justify-content: space-between; gap: 28px; padding: 0 20px; border: 1px solid var(--lime); background: var(--lime); color: #111; font-size: 12px; font-weight: 800; letter-spacing: .025em; text-decoration: none; text-transform: uppercase; transition: background .25s ease, color .25s ease, transform .25s ease; }
.serve-rental-cta span { font-size: 18px; font-weight: 400; line-height: 1; transition: transform .25s ease; }
.serve-rental-cta:hover, .serve-rental-cta:focus-visible { border-color: #fff; background: #fff; color: #111; outline: none; transform: translateY(-2px); }
.serve-rental-cta:hover span, .serve-rental-cta:focus-visible span { transform: translateX(5px); }
.serve-controls { display: flex; align-items: center; gap: 12px; padding-bottom: 8px; }
.serve-controls > span { min-width: 58px; color: rgba(255,255,255,.72); font-size: 10px; text-align: center; }
.serve-arrow { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgba(255,255,255,.56); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; font-size: 21px; transition: .25s ease; }
.serve-arrow:hover:not(:disabled), .serve-arrow:focus-visible { border-color: var(--lime); background: var(--lime); color: #121212; outline: none; transform: translateX(2px); }
.serve-arrow:disabled { cursor: not-allowed; opacity: .32; }
.serve-window { width: 100%; overflow: hidden; }
.serve-grid { width: 100%; border-top: 1px solid rgba(255,255,255,.4); }
.serve-card { display: grid; grid-template-columns: clamp(54px, 7vw, 104px) minmax(300px, 1fr) clamp(220px, 18vw, 290px) minmax(280px, .9fr); column-gap: clamp(24px, 3vw, 62px); row-gap: 0; align-items: center; min-height: 170px; padding: 0 clamp(24px, 4vw, 72px); border-bottom: 1px solid rgba(255,255,255,.4); background: var(--red); color: #fff; transition: background .3s ease, color .3s ease; will-change: transform, opacity; }
.serve-card:hover, .serve-card:focus-within { background: #bd1829; color: #fff; }
.serve-number { align-self: center; color: var(--lime); font-size: 10px; transition: color .3s ease; }
.serve-card:hover .serve-number, .serve-card:focus-within .serve-number { color: var(--lime); }
.serve-name { align-self: center; min-width: 0; display: grid; align-content: center; gap: 14px; }
.serve-card h3 { max-width: 520px; margin: 0; font-size: clamp(20px, 1.9vw, 31px); font-weight: 500; line-height: .98; letter-spacing: -.05em; }
.serve-card .serve-link { display: inline-flex; width: fit-content; align-items: center; gap: 7px; min-height: 29px; padding: 0 10px; border: 1px solid #050505; background: #050505; color: var(--lime); cursor: pointer; font-size: 10px; line-height: 1; white-space: nowrap; transition: transform .26s cubic-bezier(.16,1,.3,1), background .26s ease, color .26s ease; }
.serve-image { display: block; align-self: center; width: 100%; height: 160px; min-height: 0; overflow: hidden; background: #050505; }
.serve-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.12) brightness(.82); transition: transform .6s cubic-bezier(.16,1,.3,1), filter .3s ease; }
.serve-card:hover .serve-image img, .serve-card:focus-within .serve-image img { filter: grayscale(0) contrast(1); transform: scale(1.08); }
.serve-card:hover .serve-link, .serve-card:focus-within .serve-link { background: var(--lime); color: #050505; transform: translateX(6px); }
.serve-link:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.serve-summary { max-width: 440px; margin: 0; color: rgba(255,255,255,.92); font-size: clamp(14px, 1.05vw, 16px); line-height: 1.45; }
.serve-detail { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); max-height: 0; overflow: hidden; opacity: 0; transition: max-height .45s cubic-bezier(.16,1,.3,1), opacity .3s ease, padding .45s cubic-bezier(.16,1,.3,1); }
.serve-card.is-open .serve-detail { max-height: 190px; padding: 0 0 28px; opacity: 1; }
.serve-detail > div { padding: 20px; background: #050505; }
.serve-detail p { margin: 0; }
.serve-detail .mono { margin-bottom: 9px; color: var(--lime); font-size: 10px; font-weight: 600; }
.serve-detail p:last-child { max-width: 560px; color: rgba(255,255,255,.94); font-size: 16px; line-height: 1.45; }
.serve-card.is-open .serve-link { background: var(--lime); color: #050505; }
.serve-card.is-open .serve-link span { transform: rotate(90deg); }
.serve-link span { transition: transform .25s ease; }

@media (min-width: 621px) {
  .serve-card.is-open { row-gap: 22px; padding-block: 18px; }
  .serve-card.is-open .serve-detail { max-height: 220px; padding-bottom: 6px; }
  .serve-detail { gap: clamp(18px, 2vw, 32px); }
  .serve-detail > div { min-height: 108px; padding: 22px 24px; }
}

/* Industry-specific solution selector */
.industry-solutions { overflow: hidden; padding: clamp(110px, 14vw, 200px) 0; background: #111; color: #fff; }
.solutions-head { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(280px, .48fr); column-gap: clamp(48px, 9vw, 150px); align-items: end; margin-bottom: clamp(46px, 6vw, 82px); }
.solutions-head > .mono { grid-column: 1 / -1; }
.solutions-head > p:last-child { max-width: 420px; margin: 0; color: rgba(255,255,255,.65); font-size: 16px; line-height: 1.55; }
.solution-tabs { display: flex; gap: 8px; margin: 0 -8px 18px; padding: 0 8px 10px; overflow-x: auto; scrollbar-width: none; }
.solution-tabs::-webkit-scrollbar { display: none; }
.solution-tab { flex: 0 0 auto; display: inline-flex; min-height: 48px; align-items: center; padding: 0 18px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: #202024; color: rgba(255,255,255,.52); cursor: pointer; font-size: 14px; font-weight: 550; transition: .25s ease; }
.solution-tab:hover, .solution-tab:focus-visible { border-color: rgba(214,255,48,.75); color: #fff; outline: none; }
.solution-tab.is-active { border-color: rgba(214,255,48,.74); background: var(--lime); color: #121212; box-shadow: 0 0 0 4px rgba(214,255,48,.08); }
.solution-panels { position: relative; min-height: clamp(470px, 46vw, 650px); overflow: hidden; }
.solution-panel { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, .98fr) minmax(300px, .72fr); align-items: end; opacity: 0; pointer-events: none; transform: translateY(16px); transition: opacity .4s ease, transform .55s cubic-bezier(.16,1,.3,1); }
.solution-panel.is-active { position: relative; opacity: 1; pointer-events: auto; transform: none; }
.solution-panel > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.54) saturate(.72) contrast(1.08); }
.solution-panel-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,7,7,.72), rgba(7,7,7,.14) 63%), linear-gradient(0deg, rgba(7,7,7,.92), transparent 60%); }
.solution-content { position: relative; grid-column: 1; max-width: 720px; padding: clamp(30px, 5vw, 80px); }
.solution-content h3 { max-width: 640px; margin: 0 0 20px; font-size: clamp(45px, 5.8vw, 88px); font-weight: 500; line-height: .9; letter-spacing: -.07em; }
.solution-content p { max-width: 620px; margin: 0; color: rgba(255,255,255,.78); font-size: 17px; line-height: 1.55; }
.solution-content ul { display: flex; flex-wrap: wrap; gap: 8px; max-width: 620px; margin: 28px 0 0; padding: 0; list-style: none; }
.solution-content li { padding: 8px 11px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: rgba(255,255,255,.88); font: 500 10px 'Fira Mono', monospace; letter-spacing: .055em; text-transform: uppercase; }
.solution-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.solution-action { display: inline-flex; align-items: center; gap: 12px; min-height: 42px; padding: 0 16px; border: 1px solid var(--lime); border-radius: 999px; background: var(--lime); color: #121212; font-size: 13px; font-weight: 700; text-decoration: none; transition: .22s ease; }
.solution-action:hover, .solution-action:focus-visible { border-color: #fff; background: #fff; transform: translateY(-2px); outline: none; }

/* Interest */
.overview { padding: clamp(120px, 15vw, 230px) 0; background: var(--paper); color: #101010; }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: clamp(56px, 10vw, 170px); align-items: end; }
.overview-statement { max-width: 980px; margin: 0; font-size: clamp(39px, 5.1vw, 78px); font-weight: 500; line-height: .99; letter-spacing: -.065em; }
.overview-copy { margin: 0; font-size: 17px; line-height: 1.62; }
.overview-rule { width: 100%; height: 1px; margin: 34px 0 26px; background: rgba(0,0,0,.24); }
.overview-note { margin: 0; color: var(--red); font-size: 10px; font-weight: 600; }

.outcomes { padding: clamp(110px, 14vw, 210px) 0; background: #0a0a0a; }
.section-head { display: flex; justify-content: space-between; gap: 50px; align-items: end; margin-bottom: clamp(48px, 7vw, 90px); }
.section-head h2 { max-width: 950px; margin: 0; font-size: clamp(48px, 6.2vw, 88px); font-weight: 500; line-height: .9; letter-spacing: -.072em; }
.section-head p { max-width: 410px; margin: 0; color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.55; }
.outcomes-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; gap: 1px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.16); }
.outcome-card { position: relative; min-height: 440px; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(25px, 3.1vw, 48px); overflow: hidden; background: #111; }
.outcome-card:nth-child(1) { grid-column: span 7; }
.outcome-card:nth-child(2) { grid-column: span 5; }
.outcome-card:nth-child(n+3) { grid-column: span 4; min-height: 360px; }
.outcome-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .18; filter: grayscale(1) contrast(1.2); transition: transform .75s cubic-bezier(.16,1,.3,1), opacity .5s ease; }
.outcome-card::after { position: absolute; inset: 0; content: ''; background: linear-gradient(145deg, rgba(0,0,0,.08), rgba(0,0,0,.87)); }
.outcome-card:hover img { opacity: .42; transform: scale(1.055); }
.outcome-top, .outcome-bottom { position: relative; z-index: 1; }
.outcome-number { color: var(--lime); font-size: 10px; }
.outcome-card h3 { max-width: 530px; margin: 0 0 16px; font-size: clamp(29px, 3vw, 48px); font-weight: 500; line-height: .98; letter-spacing: -.055em; }
.outcome-card p { max-width: 520px; margin: 0; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.5; }

/* Desire */
.process { padding: clamp(110px, 14vw, 210px) 0; background: var(--red); }
.process-layout { display: grid; grid-template-columns: minmax(260px,.62fr) minmax(0,1.38fr); gap: clamp(55px, 10vw, 160px); align-items: start; }
.process-sticky { position: sticky; top: 150px; }
.process-sticky h2 { max-width: 520px; margin: 0; font-size: clamp(48px, 6vw, 88px); font-weight: 500; line-height: .9; letter-spacing: -.07em; }
.process-list { border-top: 1px solid rgba(255,255,255,.35); }
.process-step { position: sticky; top: 112px; min-height: 58vh; display: grid; align-content: center; padding: 70px clamp(0px, 2vw, 30px); border-bottom: 1px solid rgba(255,255,255,.35); background: var(--red); box-shadow: 0 -22px 45px rgba(90, 0, 12, .16); }
.process-step span { color: var(--lime); font-size: 10px; }
.process-step h3 { max-width: 780px; margin: 18px 0 22px; font-size: clamp(38px, 4.7vw, 72px); font-weight: 500; line-height: .95; letter-spacing: -.06em; }
.process-step p { max-width: 620px; margin: 0; color: rgba(255,255,255,.82); font-size: 18px; line-height: 1.54; }

.products { padding: clamp(110px, 14vw, 210px) 0; background: #eeeDE7; color: #101010; }
.products .section-head p { color: rgba(0,0,0,.64); }
.product-accordion { min-height: 650px; display: flex; gap: 8px; }
.product-card { position: relative; flex: 1; min-width: 0; overflow: hidden; border: 0; background: #171717; color: #fff; cursor: pointer; transition: flex .65s cubic-bezier(.16,1,.3,1); text-align: left; }
.product-card:hover, .product-card:focus-visible, .product-card.is-open { flex: 3.4; outline: 2px solid var(--red); outline-offset: -2px; }
.product-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.52) saturate(.65); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .5s ease; }
.product-card:hover img, .product-card:focus-visible img, .product-card.is-open img { transform: scale(1.055); filter: brightness(.62) saturate(.85); }
.product-card::after { position: absolute; inset: 0; content: ''; background: linear-gradient(0deg, rgba(0,0,0,.96), transparent 70%); }
.product-content { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: clamp(22px, 3vw, 42px); }
.product-category { display: block; margin-bottom: 14px; color: var(--lime); font-size: 10px; }
.product-content h3 { width: max-content; max-width: 520px; margin: 0; font-size: clamp(26px, 3vw, 44px); font-weight: 500; line-height: .96; letter-spacing: -.05em; }
.product-detail { width: min(440px, 60vw); max-height: 0; overflow: hidden; opacity: 0; transition: max-height .55s ease, opacity .45s ease, margin .45s ease; }
.product-card:hover .product-detail, .product-card:focus-visible .product-detail, .product-card.is-open .product-detail { max-height: 180px; margin-top: 18px; opacity: 1; }
.product-detail p { margin: 0 0 16px; color: rgba(255,255,255,.78); line-height: 1.5; }
.product-best { color: #fff; font-size: 10px; }

.custom-section { padding: clamp(110px, 14vw, 210px) 0; }
.custom-section.light { background: var(--paper); color: #111; }
.custom-section.dark { background: #101010; color: #fff; }
.custom-image-grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(48px, 9vw, 140px); align-items: center; }
.custom-image-grid figure { min-height: 680px; margin: 0; overflow: hidden; }
.custom-image-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.16,1,.3,1); }
.custom-image-grid figure:hover img { transform: scale(1.04); }
.custom-copy .mono { color: var(--red); font-size: 10px; }
.custom-copy h2 { max-width: 730px; margin: 24px 0 30px; font-size: clamp(46px, 5.6vw, 84px); font-weight: 500; line-height: .92; letter-spacing: -.07em; }
.custom-copy p { max-width: 600px; margin: 0; font-size: 18px; line-height: 1.6; }
.quote-section { text-align: center; }
.quote-section blockquote { max-width: 1150px; margin: 0 auto; font-size: clamp(42px, 6.2vw, 88px); line-height: .98; letter-spacing: -.065em; }
.quote-section cite { display: block; margin-top: 35px; color: var(--lime); font-style: normal; font-size: 10px; }

/* Action */
.enquiry { padding: clamp(110px, 14vw, 210px) 0; background: #0b0b0b; }
.enquiry-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(420px,1.2fr); gap: clamp(60px, 11vw, 170px); }
.enquiry-copy { position: sticky; top: 150px; align-self: start; }
.enquiry-copy h2 { max-width: 660px; margin: 0; font-size: clamp(54px, 7vw, 88px); font-weight: 500; line-height: .88; letter-spacing: -.078em; }
.enquiry-copy p { max-width: 460px; margin: 30px 0 0; color: rgba(255,255,255,.65); font-size: 17px; line-height: 1.55; }
.enquiry-form { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 18px; }
.field { display: grid; gap: 9px; }
.field-full { grid-column: 1 / -1; }
.field label { color: rgba(255,255,255,.62); font-size: 10px; }
.field input, .field select, .field textarea { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.34); border-radius: 0; outline: 0; background: transparent; color: #fff; font-size: 17px; }
.field select { color-scheme: dark; }
.field textarea { min-height: 128px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--lime); }
.field input::placeholder, .field textarea::placeholder { color: rgba(255,255,255,.32); }
.form-submit { grid-column: 1 / -1; min-height: 55px; margin-top: 12px; border: 0; border-radius: 999px; background: var(--lime); color: #10150d; cursor: pointer; font-weight: 700; transition: .25s ease; }
.form-submit:hover, .form-submit:focus-visible { background: #fff; transform: translateY(-2px); outline: none; }
.form-status { grid-column: 1 / -1; min-height: 22px; margin: 0; color: var(--lime); font-size: 13px; }

/* Shared homepage footer */
.msav-footer { position: relative; overflow: hidden; padding: clamp(88px,10vw,154px) clamp(22px,7vw,112px) 28px; background: radial-gradient(ellipse at 10% 0%, rgba(213,31,49,.34), transparent 32%), radial-gradient(ellipse at 82% 84%, rgba(214,255,48,.08), transparent 23%), #070707; }
.msav-footer::before { position: absolute; inset: 0; content: ''; opacity: .13; background: radial-gradient(rgba(255,255,255,.11) .65px, transparent .8px); background-size: 5px 5px; mask-image: linear-gradient(155deg, black, transparent 75%); }
.msav-footer-main, .msav-footer-bottom { position: relative; max-width: 1440px; margin-inline: auto; }
.msav-footer-main { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(410px,.92fr); gap: clamp(56px,9vw,168px); }
.msav-footer-brand { min-height: clamp(390px,38vw,560px); display: flex; flex-direction: column; justify-content: space-between; }
.msav-footer-logo { position: relative; width: min(100%,680px); }
.msav-footer-logo img { width: 100%; }
.msav-footer-logo-av { position: absolute; inset: 0; clip-path: inset(0 0 0 54.5%); filter: brightness(0) invert(1); }
.msav-footer-company { max-width: 460px; margin-top: 50px; }
.msav-footer-company-name { margin: 0; font-size: clamp(18px,1.55vw,25px); font-weight: 600; }
.msav-footer-company-name span { color: rgba(255,255,255,.62); font-size: .52em; }
.msav-footer-company-description { max-width: 400px; margin: 20px 0 0; color: rgba(255,255,255,.8); font-size: clamp(16px,1.28vw,19px); line-height: 1.35; }
.msav-footer-side { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(54px,6vw,94px) clamp(30px,4vw,68px); align-content: end; }
.msav-footer-links { display: contents; }
.msav-footer h3 { margin: 0 0 18px; color: rgba(255,255,255,.48); font-size: 11px; text-transform: uppercase; }
.msav-footer-links a { display: block; width: fit-content; margin-bottom: 13px; color: #fff; font-size: 15px; font-weight: 550; text-decoration: none; transition: .2s ease; }
.msav-footer-links a:hover { color: var(--lime); transform: translateX(4px); }
.msav-footer-contact-block p { max-width: 240px; margin: 0; color: rgba(255,255,255,.66); font-size: 14px; line-height: 1.48; }
.msav-footer-contact-details { display: grid; gap: 8px; margin-top: 14px; }
.msav-footer-contact-detail { color: #fff; font-size: 14px; text-decoration: none; }
.msav-footer-contact { display: inline-flex; margin-top: 20px; padding: 12px 18px; border-radius: 999px; background: var(--lime); color: #101010; font-size: 13px; font-weight: 700; text-decoration: none; }
.msav-footer-social { display: flex; gap: 9px; }
.msav-footer-social a { display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 4px; transition: .2s ease; }
.msav-footer-social a:hover { border-color: var(--lime); background: var(--lime); color: #111; transform: translateY(-3px); }
.msav-footer-social svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.msav-footer-bottom { margin-top: clamp(76px,10vw,156px); padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.48); font-size: 10px; text-transform: uppercase; }

.error-state { min-height: 100svh; display: grid; place-items: center; padding: 40px; text-align: center; }
.error-state h1 { font-size: clamp(40px,7vw,88px); margin: 0 0 20px; }

@media (max-width: 1280px) {
  .nav { grid-template-columns: 132px 1fr; padding: 0 20px; }
  .mobile-toggle { display: grid; }
  .nav-spacer { display: none; }
  .menu { position: absolute; top: 68px; right: 20px; left: 20px; width: auto; max-height: calc(100svh - 88px); display: none; justify-self: stretch; overflow-x: hidden; overflow-y: auto; flex-direction: column; align-items: stretch; border-radius: 20px; background: rgba(14,17,24,.82); }
  .menu.open { display: flex; }
  .menu a, .nav-dropdown > button { width: 100%; justify-content: space-between; padding: 12px 14px; }
  .menu .claim { justify-content: center; }
  .nav-dropdown { width: 100%; }
  .dropdown-panel { position: static; display: none; width: auto; margin: 0 7px 4px; transform: none; opacity: 1; visibility: visible; }
  .nav-dropdown.open .dropdown-panel { display: grid; transform: none; }
  .dropdown-hero { display: none; }
  .product-accordion { min-height: 580px; }
}

@media (max-width: 900px) {
  .hero-layout, .overview-grid, .process-layout, .custom-image-grid, .enquiry-layout, .msav-footer-main { grid-template-columns: 1fr; }
  .hero-layout { gap: 38px; }
  .hero-side { max-width: 670px; }
  .overview-grid { gap: 50px; }
  .section-head { display: grid; }
  .outcome-card:nth-child(n) { grid-column: span 6; }
  .outcome-card:last-child { grid-column: span 12; }
  .process-sticky, .enquiry-copy { position: static; }
  .process-step { position: static; min-height: auto; padding-inline: 0; box-shadow: none; }
  .product-accordion { min-height: auto; display: grid; grid-template-columns: 1fr 1fr; }
  .product-card { min-height: 480px; }
  .product-card:hover, .product-card:focus-visible, .product-card.is-open { flex: initial; }
  .product-detail { width: auto; max-height: 180px; margin-top: 18px; opacity: 1; }
  .custom-image-grid figure { min-height: 530px; }
  .msav-footer-brand { min-height: 290px; }
  .serve-card { grid-template-columns: 48px minmax(220px, 1fr) minmax(170px, .6fr) minmax(180px, .7fr); column-gap: 20px; row-gap: 0; padding-inline: 36px; }
  .serve-card.is-open { row-gap: 18px; padding-block: 16px; }
  .serve-card.is-open .serve-detail { max-height: 240px; }
  .serve-detail { gap: 16px; }
  .serve-detail > div { min-height: 116px; padding: 18px; }
  .solutions-head { grid-template-columns: 1fr; gap: 25px; }
  .solution-panels { min-height: 560px; }
}

@media (max-width: 620px) {
  :root { --page: calc(100% - 40px); }
  .brand { width: 116px; }
  .industry-hero { min-height: 880px; padding-top: 135px; }
  .industry-hero h1 { font-size: clamp(48px, 15vw, 78px); }
  .hero-inline-media { width: 74px; }
  .hero-index { display: none; }
  .outcomes-grid { display: block; border: 0; background: transparent; }
  .outcome-card { min-height: 420px; margin-bottom: 1px; }
  .product-accordion { grid-template-columns: 1fr; }
  .product-card { min-height: 520px; }
  .custom-image-grid figure { min-height: 420px; }
  .enquiry-form { grid-template-columns: 1fr; }
  .field { grid-column: 1; }
  .msav-footer { padding: 78px 20px 23px; }
  .msav-footer-brand { min-height: 220px; }
  .msav-footer-side { grid-template-columns: 1fr 1fr; gap: 42px 24px; }
  .serve-head { display: grid; gap: 30px; }
  .serve-rental-cta-wrap { padding-top: 34px; }
  .serve-rental-cta { width: 100%; }
  .serve-controls { padding-bottom: 0; }
  .serve-window { width: calc(100% - 40px); margin-inline: auto; border: 1px solid rgba(255,255,255,.38); }
  .serve-grid { border-top: 0; }
  .serve-card { grid-template-columns: 38px minmax(0, 1fr) clamp(112px, 38vw, 142px); column-gap: 14px; row-gap: 0; min-height: 142px; padding: 14px 12px; }
  .serve-card:hover, .serve-card:focus-within { padding-inline: 12px; }
  .serve-name { grid-column: 2; grid-row: 1; gap: 10px; }
  .serve-card h3 { font-size: clamp(18px, 5.8vw, 23px); }
  .serve-card .serve-link { display: inline-flex; margin-top: 2px; }
  .serve-image { grid-column: 3; grid-row: 1; height: 118px; min-height: 0; }
  .serve-summary { display: none; }
  .serve-detail { grid-column: 2 / -1; grid-template-columns: 1fr; gap: 10px; }
  .serve-card.is-open .serve-detail { max-height: 330px; padding: 4px 0 12px; }
  .serve-detail p:last-child { font-size: 14px; }
  .solution-panels { min-height: 560px; }
  .solution-panel { display: block; }
  .solution-panel.is-active { min-height: 560px; }
  .solution-tabs { flex-wrap: wrap; margin: 0 0 18px; padding: 0; overflow: visible; }
  .solution-tab { min-height: 44px; max-width: 100%; padding-inline: 15px; white-space: normal; }
  .solution-content { position: absolute; right: 0; bottom: 0; left: 0; padding: 28px 22px; }
  .solution-content h3 { font-size: clamp(39px, 12vw, 57px); }
  .solution-content p { font-size: 15px; }
  .solution-content ul { margin-top: 20px; }
}

@media (hover: none), (pointer: coarse) {
  .serve-card:hover { background: var(--red); color: #fff; }
  .serve-card:hover .serve-image img { filter: grayscale(1) contrast(1.12) brightness(.82); transform: none; }
  .serve-card:hover .serve-link { background: #050505; color: var(--lime); transform: none; }
  .serve-card:hover > p { color: rgba(255,255,255,.9); }
}

@media (min-width: 901px) {
  .industry-solutions,
  .enquiry { padding-block: clamp(88px, 8vw, 132px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .serve-card { will-change: auto; }
}
