/* MSAV Services page — component and responsive styles. */
:root {
      color-scheme: dark;
      --black: var(--msav-black, #050505);
      --black-2: #0a0a0a;
      --black-3: #111;
      --white: var(--msav-off-white, #f7f7f3);
      --muted: rgba(255,255,255,.62);
      --line: rgba(255,255,255,.14);
      --red: var(--msav-red-bright, #dc1f2f);
      --lime: var(--msav-lime, #d6ff30);
      --page: var(--msav-page-wide, min(100% - 40px, 1500px));
      --ease: var(--msav-motion-ease, cubic-bezier(.16,1,.3,1));
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: "Inter", Arial, sans-serif; }
    body.menu-open { overflow: hidden; }
    img { display: block; width: 100%; }
    a { color: inherit; }
    button, input, select, textarea { font: inherit; }
    button { color: inherit; }
    .container { width: var(--page); margin-inline: auto; }
    .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

    /* Shared MSAV navigation */
    .site-header { position: fixed; z-index: 1000; top: 16px; left: 0; width: 100%; pointer-events: none; }
    .nav-wrap { display: grid; grid-template-columns: 132px minmax(0,1fr) 132px; align-items: center; width: min(100% - 44px, 1420px); margin: auto; pointer-events: auto; }
    .brand { display: grid; width: 132px; height: 55px; place-items: center; text-decoration: none; }
    .brand img { height: 100%; object-fit: contain; }
    .desktop-nav { display: flex; align-items: center; justify-self: center; gap: 2px; padding: 5px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: linear-gradient(120deg,rgba(255,255,255,.18),rgba(255,255,255,.045) 42%,rgba(255,255,255,.11)); box-shadow: 0 15px 40px rgba(0,0,0,.32), inset 0 1px 1px rgba(255,255,255,.38); backdrop-filter: blur(25px) saturate(165%); -webkit-backdrop-filter: blur(25px) saturate(165%); }
    .desktop-nav > a, .nav-drop > button { display: inline-flex; min-height: 40px; align-items: center; gap: 6px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: rgba(255,255,255,.95); cursor: pointer; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .25s ease; }
    .desktop-nav > a:hover, .desktop-nav > a:focus-visible, .nav-drop > button:hover, .nav-drop > button:focus-visible { background: rgba(255,255,255,.13); outline: none; }
    .nav-drop { position: relative; }
    .nav-drop > button i { transition: transform .25s ease; }
    .nav-drop.is-open > button i { transform: rotate(180deg); }
    .drop-panel { position: absolute; top: calc(100% + 15px); left: 50%; width: 260px; padding: 9px; border: 1px solid rgba(255,255,255,.18); border-radius: 15px; background: rgba(10,10,10,.9); box-shadow: 0 24px 60px rgba(0,0,0,.45); opacity: 0; visibility: hidden; transform: translate(-50%,-8px); transition: opacity .2s ease, transform .3s var(--ease), visibility .2s; backdrop-filter: blur(24px); }
    .nav-drop.is-open .drop-panel { opacity: 1; visibility: visible; transform: translate(-50%,0); }
    .drop-panel a { display: flex; align-items: center; justify-content: space-between; padding: 11px 12px; border-radius: 9px; color: rgba(255,255,255,.78); font-size: 13px; text-decoration: none; transition: background .2s ease, color .2s ease; }
    .drop-panel a:hover, .drop-panel a:focus-visible { background: rgba(255,255,255,.09); color: #fff; outline: none; }
    .contact-pill { justify-self: end; display: inline-flex; min-height: 43px; align-items: center; gap: 7px; padding: 0 17px; border: 1px solid var(--lime); border-radius: 999px; background: var(--lime); color: #111; font-size: 13px; font-weight: 800; text-decoration: none; transition: transform .25s ease, background .25s ease, color .25s ease; }
    .contact-pill:hover, .contact-pill:focus-visible { background: #fff; color: #111; outline: none; transform: translateY(-2px); }
    .mobile-toggle { display: none; justify-self: end; width: 48px; height: 48px; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(10,10,10,.72); cursor: pointer; backdrop-filter: blur(18px); }
    .mobile-toggle i { font-size: 22px; }
    .mobile-nav { display: none; }

    /* Hero */
    .hero { position: relative; min-height: 770px; overflow: hidden; border-bottom: 1px solid var(--line); background: #050505; }
    .hero-grid { display: grid; grid-template-columns: 52% 48%; min-height: 770px; }
    .hero-copy { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; padding: 154px clamp(28px,4.6vw,76px) 80px max(24px,calc((100vw - 1500px)/2 + 20px)); background: linear-gradient(90deg,#050505 0%,#050505 88%,rgba(5,5,5,.85) 100%); }
    .eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 24px; color: var(--red); font: 600 11px "Fira Mono", monospace; letter-spacing: .13em; text-transform: uppercase; }
    .eyebrow::before { width: 24px; height: 2px; background: currentColor; content: ""; }
    .hero h1 { max-width: 760px; margin: 0; font-size: clamp(49px,5.4vw,88px); font-weight: 600; line-height: .98; letter-spacing: -.061em; text-wrap: balance; }
    .hero-tagline { margin: 18px 0 0; color: var(--lime); font-family: "Inter", Arial, sans-serif; font-size: clamp(16px,1.55vw,23px); font-weight: 500; line-height: 1.28; letter-spacing: -.04em; }
    .hero-tags { display: flex; flex-wrap: wrap; gap: 9px 16px; margin-top: 31px; color: rgba(255,255,255,.78); font-size: clamp(15px,1.3vw,19px); }
    .hero-tags span { display: inline-flex; align-items: center; gap: 16px; }
    .hero-tags span:not(:last-child)::after { width: 5px; height: 5px; border-radius: 50%; background: var(--red); box-shadow: 0 0 12px rgba(220,31,47,.8); content: ""; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 40px; }
    .btn { display: inline-flex; min-height: 53px; align-items: center; justify-content: space-between; gap: 24px; padding: 0 20px; border: 1px solid rgba(255,255,255,.34); background: transparent; color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .03em; text-decoration: none; text-transform: uppercase; transition: transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease; }
    .btn i { font-size: 18px; transition: transform .25s ease; }
    .btn:hover, .btn:focus-visible { background: #fff; color: #111; outline: none; transform: translateY(-2px); }
    .btn:hover i, .btn:focus-visible i { transform: translateX(4px); }
    .btn-red { min-width: 194px; border-color: var(--red); background: var(--red); }
    .btn-lime { min-width: 194px; border-color: var(--lime); color: var(--lime); }
    .btn-lime:hover, .btn-lime:focus-visible { border-color: var(--lime) !important; background: var(--lime) !important; color: #111 !important; }
    .btn-red:hover, .btn-red:focus-visible { border-color: #fff !important; background: #fff !important; color: #111 !important; }
    .hero-media { position: relative; min-width: 0; overflow: hidden; }
    .hero-media::before { position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg,#050505 0%,transparent 22%), linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.32)), rgba(122,0,9,.12); content: ""; }
    .hero-media::after { position: absolute; z-index: 2; inset: 0; background: linear-gradient(120deg,transparent 32%,rgba(220,31,47,.17)); mix-blend-mode: screen; content: ""; }
    .hero-media img { height: 100%; object-fit: cover; object-position: 55% center; filter: grayscale(.72) contrast(1.16) brightness(.72); transform: scale(1.08); will-change: transform; }
    .hero-scroll { position: absolute; z-index: 4; right: 30px; bottom: 28px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.65); font: 600 9px "Fira Mono", monospace; letter-spacing: .13em; text-transform: uppercase; writing-mode: vertical-rl; }
    .hero-scroll i { color: var(--red); font-size: 18px; }

    /* Shared sections */
    .section { position: relative; padding: clamp(84px,8.8vw,142px) 0; }
    .section-head { display: grid; grid-template-columns: minmax(190px,.45fr) minmax(0,1.55fr); gap: clamp(32px,6vw,96px); align-items: start; margin-bottom: clamp(45px,5.7vw,84px); }
    .section-kicker { display: flex; align-items: center; gap: 10px; margin: 7px 0 0; color: var(--red); font: 600 10px "Fira Mono", monospace; letter-spacing: .14em; text-transform: uppercase; }
    .section-kicker::before, .section-kicker::after { width: 13px; height: 2px; background: currentColor; content: ""; }
    .section-head h2 { max-width: 980px; margin: 0; font-size: clamp(40px,5.15vw,78px); font-weight: 600; line-height: .94; letter-spacing: -.057em; text-wrap: balance; }
    .section-head h2 span { color: var(--red); }
    .section-intro { max-width: 680px; margin: 24px 0 0; color: var(--muted); font-size: clamp(15px,1.35vw,19px); line-height: 1.55; }

    /* Core service areas: deliberately simple direct links */
    .core { background: var(--red); }
    .core .section-kicker { color: var(--lime); }
    .core .section-head h2 span { color: var(--lime); }
    .core .section-intro { color: rgba(255,255,255,.78); }
    .core-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
    .core-card { position: relative; min-height: 555px; overflow: hidden; border: 1px solid var(--line); background: #080808; color: #fff; text-decoration: none; transition: border-color .3s ease, transform .45s var(--ease); }
    .core-card::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 25%,#070707 66%); content: ""; pointer-events: none; }
    .core-card img { height: 55%; object-fit: cover; filter: grayscale(1) brightness(.58) contrast(1.18); transition: transform .8s var(--ease), filter .6s ease; }
    .core-card-content { position: absolute; z-index: 2; inset: auto 0 0; padding: clamp(25px,3vw,44px); }
    .core-number { display: block; margin-bottom: 8px; color: rgba(255,255,255,.17); font-size: clamp(55px,6vw,92px); font-weight: 800; line-height: .85; letter-spacing: -.07em; }
    .core-card h3 { margin: 0; font-size: clamp(28px,3.1vw,46px); font-weight: 600; letter-spacing: -.05em; }
    .core-card p { margin: 9px 0 0; color: rgba(255,255,255,.67); font-size: 14px; line-height: 1.45; }
    .core-arrow { display: grid; width: 46px; height: 46px; margin-top: 24px; place-items: center; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; font-size: 18px; transition: background .25s ease, color .25s ease, transform .35s var(--ease); }
    .core-card:hover, .core-card:focus-visible { border-color: var(--lime); outline: none; transform: translateY(-4px); }
    .core-card:hover img, .core-card:focus-visible img { filter: grayscale(.3) brightness(.65) contrast(1.12); transform: scale(1.04); }
    .core-card:hover .core-arrow, .core-card:focus-visible .core-arrow { background: var(--lime); color: #111; transform: translateX(5px); }

    /* Service directory */
    .directory { border-top: 1px solid var(--line); background: #050505; }
    .directory-group + .directory-group { margin-top: clamp(70px,8vw,120px); padding-top: clamp(70px,8vw,120px); border-top: 1px solid var(--line); }
    .directory-title { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
    .directory-title h3 { margin: 0; font-size: clamp(30px,3.7vw,55px); font-weight: 600; letter-spacing: -.05em; }
    .directory-title span { color: rgba(255,255,255,.45); font: 600 10px "Fira Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
    .service-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
    .service-item { display: flex; min-height: 190px; flex-direction: column; justify-content: space-between; padding: clamp(22px,2.1vw,31px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #fff; text-decoration: none; transition: background .3s ease, color .3s ease; }
    .service-item i { color: rgba(255,255,255,.88); font-size: 39px; transition: color .3s ease, transform .4s var(--ease); }
    .service-item strong { max-width: 180px; font-size: 15px; font-weight: 600; line-height: 1.35; }
    .service-item span { display: flex; align-items: end; justify-content: space-between; gap: 10px; }
    .service-item span i { font-size: 17px; }
    .service-item:hover, .service-item:focus-visible { background: var(--red); color: #fff; outline: none; }
    .service-item:hover > i, .service-item:focus-visible > i { color: #fff; transform: translateY(-4px); }
    .installation-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .installation-grid .service-item { min-height: 210px; }

    /* Industries */
    .industries { padding-block: clamp(80px,8vw,128px); border-top: 1px solid var(--line); background: #090909; }
    .industries .section-kicker { margin-bottom: 27px; }
    .industry-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
    .industry-card { position: relative; min-height: 255px; overflow: hidden; border: 1px solid var(--line); color: #fff; text-decoration: none; }
    .industry-card::after { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.87)); content: ""; }
    .industry-card img { height: 100%; object-fit: cover; filter: grayscale(1) brightness(.52) contrast(1.15); transition: transform .7s var(--ease), filter .5s ease; }
    .industry-content { position: absolute; z-index: 2; right: 15px; bottom: 20px; left: 15px; text-align: center; }
    .industry-content i { display: block; margin-bottom: 14px; font-size: 35px; }
    .industry-content strong { font-size: 14px; line-height: 1.35; }
    .industry-card:hover img, .industry-card:focus-visible img { filter: grayscale(.35) brightness(.65); transform: scale(1.06); }
    .industry-card:hover, .industry-card:focus-visible { border-color: var(--red); outline: none; }

    /* Projects */
    .projects { background: #070707; }
    .projects-top { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
    .projects-top .section-kicker { margin: 0; }
    .text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--lime); font-size: 12px; font-weight: 700; text-decoration: none; text-transform: uppercase; }
    .text-link i { font-size: 18px; transition: transform .25s ease; }
    .text-link:hover i, .text-link:focus-visible i { transform: translateX(5px); }
    .project-grid { display: grid; grid-template-columns: 1.25fr .85fr 1fr; grid-template-rows: repeat(2,270px); gap: 8px; }
    .project-card { position: relative; overflow: hidden; border: 1px solid var(--line); color: #fff; text-decoration: none; }
    .project-card:first-child { grid-row: 1 / 3; }
    .project-card:last-child { grid-column: 3; grid-row: 1 / 3; }
    .project-card::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 28%,rgba(0,0,0,.88)); content: ""; }
    .project-card img { height: 100%; object-fit: cover; filter: grayscale(.92) brightness(.63) contrast(1.1); transition: transform .8s var(--ease), filter .55s ease; will-change: transform; }
    .project-copy { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: clamp(20px,2.4vw,34px); }
    .project-copy h3 { max-width: 330px; margin: 0; font-size: clamp(19px,2vw,31px); font-weight: 500; line-height: 1.05; letter-spacing: -.04em; transition: color .3s ease, text-shadow .3s ease; }
    .project-copy p { margin: 11px 0 0; color: rgba(255,255,255,.64); font-size: 11px; transition: color .3s ease; }
    .project-card:hover img, .project-card:focus-visible img { filter: grayscale(.25) brightness(.74); transform: scale(1.055); }
    .project-card:hover, .project-card:focus-visible { border-color: var(--red); outline: none; }
    .project-card:hover .project-copy h3, .project-card:focus-visible .project-copy h3 { color: var(--lime); text-shadow: 0 0 18px rgba(201,255,33,.22); }
    .project-card:hover .project-copy p, .project-card:focus-visible .project-copy p { color: var(--lime); }

    .project-grid .project-card:only-child { grid-column:1; grid-row:1 / 3; }

    /* Process */
    .process { overflow: hidden; border-top: 1px solid var(--line); background: #090909; }
    .process-layout { display: grid; grid-template-columns: minmax(170px,.35fr) minmax(0,1.65fr); gap: clamp(45px,7vw,105px); align-items: start; }
    .process-title::before { display: block; width: 40px; height: 3px; margin-bottom: 18px; background: var(--red); content: ""; }
    .process-title h2 { margin: 0; font-size: clamp(35px,4vw,58px); font-weight: 500; line-height: .93; letter-spacing: -.055em; }
    .process-title p { max-width: 230px; margin: 22px 0 0; color: rgba(255,255,255,.59); font-size: 14px; line-height: 1.55; }
    .process-note { display: flex; align-items: center; gap: 9px; margin-top: 26px; color: var(--lime); font: 600 10px "Fira Mono",monospace; letter-spacing: .08em; text-transform: uppercase; }
    .process-note i { font-size: 14px; }
    .process-track { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
    .process-line { position: absolute; top: 34px; right: 8%; left: 8%; height: 1px; background: var(--red); transform: scaleX(0); transform-origin: left center; }
    .process-step { position: relative; z-index: 2; text-align: center; }
    .process-icon { display: grid; width: 69px; height: 69px; margin: 0 auto 15px; place-items: center; border: 1px solid var(--red); border-radius: 50%; background: #090909; font-size: 30px; }
    .process-step h3 { margin: 0; font-size: 15px; font-weight: 500; }
    .process-step p { max-width: 190px; margin: 11px auto 0; color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.45; }

    /* FAQ */
    .faq { border-top: 1px solid var(--line); background: #060606; }
    .faq-layout { display: grid; grid-template-columns: minmax(260px,.55fr) minmax(0,1.45fr); gap: clamp(45px,8vw,130px); }
    .faq-intro { padding-right: 34px; border-right: 1px solid var(--line); }
    .faq-intro small { color: var(--red); font: 600 10px "Fira Mono",monospace; letter-spacing: .12em; text-transform: uppercase; }
    .faq-intro h2 { max-width: 400px; margin: 18px 0 38px; font-size: clamp(37px,4.3vw,64px); font-weight: 500; line-height: .95; letter-spacing: -.057em; }
    .faq-list { border-top: 1px solid var(--line); }
    .faq-item { border-bottom: 1px solid var(--line); }
    .faq-question { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 22px; padding: 22px 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
    .faq-question span { font-size: 14px; font-weight: 500; }
    .faq-question i { flex: 0 0 auto; font-size: 17px; transition: transform .3s var(--ease), color .2s ease; }
    .faq-question[aria-expanded="true"] i { color: var(--red); transform: rotate(45deg); }
    .faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
    .faq-answer > div { overflow: hidden; }
    .faq-answer p { max-width: 740px; margin: 0; padding: 0 38px 22px 0; color: rgba(255,255,255,.58); font-size: 13px; line-height: 1.6; }
    .faq-question[aria-expanded="true"] + .faq-answer { grid-template-rows: 1fr; }

    /* Quote */
    .quote { padding: 16px 0 clamp(70px,7vw,110px); background: #060606; }
    .quote-panel { position: relative; overflow: hidden; border: 1px solid rgba(220,31,47,.72); background: linear-gradient(135deg,#101010,#080808 64%); }
    .quote-panel::before { position: absolute; top: -180px; left: -90px; width: 430px; height: 430px; border-radius: 50%; background: rgba(220,31,47,.12); filter: blur(80px); content: ""; }
    .quote-grid { position: relative; display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(36px,6vw,90px); padding: clamp(35px,5vw,74px); }
    .quote-copy h2 { max-width: 470px; margin: 0; font-size: clamp(41px,4.8vw,72px); font-weight: 600; line-height: .93; letter-spacing: -.06em; }
    .quote-copy h2 span { color: var(--red); }
    .quote-copy p { max-width: 440px; margin: 24px 0 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
    .quote-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; align-content: start; }
    .field { position: relative; }
    .field-wide { grid-column: 1 / -1; }
    .field label { display: block; margin-bottom: 7px; color: rgba(255,255,255,.57); font: 600 9px "Fira Mono",monospace; letter-spacing: .08em; text-transform: uppercase; }
    .field input, .field select, .field textarea { width: 100%; min-height: 49px; padding: 13px 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 0; background: rgba(255,255,255,.045); color: #fff; outline: none; transition: border-color .2s ease, background .2s ease; }
    .field textarea { min-height: 108px; resize: vertical; }
    .field select { appearance: none; -webkit-appearance: none; padding-right: 42px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px 16px; }
    .field select option { background: #111; }
    .field input:focus, .field select:focus, .field textarea:focus { border-color: var(--red); background: rgba(255,255,255,.07); }
    .quote-submit { grid-column: 1 / -1; display: flex; min-height: 54px; align-items: center; justify-content: space-between; padding: 0 20px; border: 1px solid var(--lime); background: var(--lime); color: #101010; cursor: pointer; font-size: 12px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; transition: background .25s ease, transform .25s ease; }
    .quote-submit:hover, .quote-submit:focus-visible { background: #fff; outline: none; transform: translateY(-2px); }
    .form-status { grid-column: 1 / -1; min-height: 20px; margin: 0; color: var(--lime); font-size: 12px; }

    /* Footer */
    .footer { border-top: 1px solid var(--line); background: #030303; }
    .footer-main { display: grid; grid-template-columns: 1.3fr repeat(3,minmax(150px,.6fr)); gap: clamp(35px,6vw,86px); padding: clamp(70px,7vw,110px) 0; }
    .footer-brand img { width: min(270px,80%); }
    .footer-brand p { max-width: 420px; margin: 25px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
    .footer-col h3 { margin: 0 0 20px; color: var(--red); font: 600 10px "Fira Mono",monospace; letter-spacing: .12em; text-transform: uppercase; }
    .footer-col a, .footer-col span { display: block; margin: 0 0 13px; color: rgba(255,255,255,.64); font-size: 13px; line-height: 1.5; text-decoration: none; }
    .footer-col a:hover, .footer-col a:focus-visible { color: #fff; outline: none; }
    .socials { display: flex; gap: 9px; margin-top: 22px; }
    .socials a { display: grid; width: 39px; height: 39px; margin: 0; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 17px; }
    .socials a:hover { border-color: var(--red); background: var(--red); }
    .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 22px 0; border-top: 1px solid var(--line); color: rgba(255,255,255,.36); font-size: 11px; }

    @media (max-width: 1220px) {
      .nav-wrap { grid-template-columns: 112px 1fr 112px; }
      .brand { width: 112px; }
      .desktop-nav > a, .nav-drop > button { padding-inline: 9px; font-size: 11px; }
      .contact-pill { padding-inline: 13px; font-size: 11px; }
      .service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
      .industry-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
      .industry-card:nth-child(n+4) { min-height: 220px; }
    }

    @media (max-width: 960px) {
      :root { --page: min(100% - 32px, 1500px); }
      .nav-wrap { grid-template-columns: 118px 1fr auto; width: min(100% - 28px, 1500px); }
      .desktop-nav, .contact-pill { display: none; }
      .mobile-toggle { display: grid; }
      .mobile-nav { position: fixed; z-index: 999; top: 0; left: 0; display: flex; width: 100%; height: 100svh; flex-direction: column; justify-content: center; padding: 100px 30px 40px; background: rgba(4,4,4,.98); opacity: 0; visibility: hidden; transform: translateY(-14px); transition: opacity .25s ease, transform .35s var(--ease), visibility .25s; }
      .mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; }
      .mobile-nav a { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: clamp(23px,6vw,36px); font-weight: 600; letter-spacing: -.04em; text-decoration: none; }
      .mobile-nav a:last-child { margin-top: 22px; padding: 17px; border: 1px solid var(--lime); background: var(--lime); color: #111; font-size: 15px; text-align: center; }
      .hero, .hero-grid { min-height: auto; }
      .hero-grid { grid-template-columns: 1fr; }
      .hero-copy { min-height: 690px; padding: 145px 24px 72px; background: linear-gradient(180deg,rgba(5,5,5,.62),#050505 92%); }
      .hero-media { position: absolute; inset: 0; }
      .hero-media::before { background: linear-gradient(180deg,rgba(5,5,5,.48),#050505 84%); }
      .hero-media img { height: 100%; }
      .hero-scroll { display: none; }
      .section-head { grid-template-columns: 1fr; gap: 22px; }
      .core-grid { grid-template-columns: 1fr; }
      .core-card { min-height: 520px; }
      .core-card img { height: 62%; }
      .project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,330px); }
      .project-card:first-child, .project-card:last-child { grid-row: auto; grid-column: auto; }
      .process-layout { grid-template-columns: 1fr; }
      .faq-layout { grid-template-columns: 1fr; }
      .faq-intro { padding: 0 0 30px; border-right: 0; border-bottom: 1px solid var(--line); }
      .quote-grid { grid-template-columns: 1fr; }
      .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .footer-brand { grid-column: 1 / -1; }
    }

    @media (max-width: 680px) {
      .hero-copy { min-height: 650px; }
      .hero h1 { font-size: clamp(42px,12.5vw,62px); }
      .hero-actions, .btn { width: 100%; }
      .service-grid, .installation-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
      .service-item, .installation-grid .service-item { min-height: 170px; }
      .industry-grid { grid-template-columns: 1fr 1fr; }
      .industry-card, .industry-card:nth-child(n+4) { min-height: 220px; }
      .industry-card:last-child { grid-column: 1 / -1; }
      .project-grid { grid-template-columns: 1fr; grid-template-rows: none; }
      .project-card { min-height: 330px; }
      .process-track { grid-template-columns: 1fr 1fr; gap: 40px 18px; }
      .process-line { display: none; }
      .quote-form { grid-template-columns: 1fr; }
      .field, .field-wide { grid-column: 1; }
      .footer-main { grid-template-columns: 1fr; }
      .footer-brand { grid-column: auto; }
      .footer-bottom { align-items: flex-start; flex-direction: column; }
    }

    /* Revision: exact home-page chrome, borderless sections and interactive editorial industries */
    /* Keep section labels clean: no leading red marker bars. */
    .eyebrow::before,
    .section-kicker::before,
    .section-kicker::after,
    .process-title::before { display: none; }
    .liquid-glass { position: relative; overflow: hidden; background: rgba(255,255,255,.01); background-blend-mode: luminosity; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); box-shadow: inset 0 1px 1px rgba(255,255,255,.1); }
    .liquid-glass::before { position: absolute; inset: 0; padding: 1.4px; border-radius: inherit; background: linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.15) 20%,transparent 40%,transparent 60%,rgba(255,255,255,.15) 80%,rgba(255,255,255,.45)); content: ""; pointer-events: none; -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
    .nav { position: fixed; z-index: 1000; inset: 16px 0 auto; display: grid; grid-template-columns: 132px 1fr 132px; align-items: center; padding: 0 clamp(24px,4vw,64px); pointer-events: none; transform: translate3d(0,var(--msav-nav-scroll-shift,0),0); will-change: transform; }
    .nav > * { pointer-events: auto; }
    .nav .brand { display: grid; width: 132px; height: 55px; place-items: center; padding: 0; text-decoration: none; }
    .nav .brand img { width: 100%; height: 100%; object-fit: contain; }
    .menu { display: flex; align-items: center; justify-self: center; gap: 2px; padding: 5px; overflow: visible; border: .65px solid rgba(255,255,255,.34); border-radius: 999px; background: linear-gradient(120deg,rgba(255,255,255,.22),rgba(255,255,255,.055) 42%,rgba(255,255,255,.14)); 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); backdrop-filter: blur(26px) saturate(180%) brightness(1.18); -webkit-backdrop-filter: blur(26px) saturate(180%) brightness(1.18); }
    .menu a { display: inline-flex; position: relative; z-index: 2; align-items: center; gap: 8px; padding: 8px 12px; color: rgba(255,255,255,.96); font-size: 14px; font-weight: 500; letter-spacing: .018em; text-decoration: none; text-shadow: 0 1px 6px rgba(0,0,0,.35); white-space: nowrap; }
    .nav-dropdown { position: relative; z-index: 2; }
    .nav-dropdown::after { position: absolute; z-index: 3; top: 100%; right: -18px; left: -18px; height: 22px; content: ""; }
    .nav-dropdown > button { display: inline-flex; position: relative; z-index: 4; align-items: center; gap: 5px; padding: 8px 10px; border: 0; background: transparent; color: rgba(255,255,255,.96); cursor: pointer; font-size: 13px; font-weight: 500; letter-spacing: .018em; text-shadow: 0 1px 6px rgba(0,0,0,.35); white-space: nowrap; }
    .nav-dropdown > button i { font-size: 14px; transition: transform .2s ease; }
    .nav-dropdown.open > button i,.nav-dropdown.is-hovered > button i { transform: rotate(180deg); }
    .nav .dropdown-panel { position: absolute; z-index: 2; top: calc(100% + 18px); left: 50%; display: grid; grid-template-columns: minmax(145px,.85fr) minmax(220px,1.15fr); 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,.74),rgba(8,11,16,.62)); box-shadow: 0 20px 55px rgba(0,0,0,.4),inset 0 1px 1px rgba(255,255,255,.28); opacity: 0; visibility: hidden; transform: translate(-50%,-8px) scale(.97); transform-origin: top center; pointer-events: none; transition: opacity .22s ease,transform .3s var(--ease),visibility 0s linear .22s; backdrop-filter: blur(32px) saturate(175%); -webkit-backdrop-filter: blur(32px) saturate(175%); }
    .nav-dropdown.open .dropdown-panel,.nav-dropdown.is-hovered .dropdown-panel { opacity: 1; visibility: visible; transform: translate(-50%,0) scale(1); pointer-events: auto; transition-delay: 0s; }
    .nav .dropdown-hero { position: relative; isolation: isolate; display: flex; height: 220px; min-height: 220px; flex-direction: column; justify-content: end; padding: 17px; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; background: var(--dropdown-image,url('../home/concert-hero-background.webp')) center/cover; }
    .nav .dropdown-hero::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(5,9,14,.05),rgba(5,9,14,.24) 42%,rgba(5,9,14,.94)); content: ""; }
    .dropdown-kicker,.dropdown-hero strong,.dropdown-hero p { position: relative; z-index: 2; margin: 0; }
    .dropdown-kicker { margin-bottom: 8px; color: var(--lime); font: 700 10px "Inter",sans-serif; letter-spacing: .12em; text-transform: uppercase; }
    .dropdown-hero strong { font-size: 21px; font-weight: 600; line-height: 1; }
    .dropdown-hero p { margin-top: 9px; color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.35; }
    .dropdown-links { display: grid; align-content: center; gap: 2px; padding: 4px; }
    .nav .dropdown-panel a { display: flex; min-height: 39px; align-items: center; padding: 10px 13px 10px 29px; border-radius: 10px; color: rgba(255,255,255,.9); font-size: 13px; font-weight: 400; text-shadow: none; }
    .nav .dropdown-panel a::before { position: absolute; left: 12px; width: 5px; height: 5px; border: 1px solid rgba(255,255,255,.64); border-radius: 50%; content: ""; }
    .nav .dropdown-panel a:hover,.nav .dropdown-panel a:focus-visible { background: rgba(255,255,255,.1); outline: none; }
    .nav .dropdown-panel a:hover::before,.nav .dropdown-panel a:focus-visible::before { border-color: var(--lime); background: var(--lime); box-shadow: 0 0 8px rgba(214,255,48,.9); }
    .claim { display: inline-flex; position: relative; z-index: 2; isolation: isolate; align-items: center; gap: 8px; margin-left: 4px; padding: 8px 17px; overflow: hidden; border: 1px solid var(--lime); border-radius: 999px; background: var(--lime); color: #10151d!important; font-size: 15px; font-weight: 800!important; text-decoration: none; text-shadow: none!important; white-space: nowrap; }
    .claim::before { position: absolute; z-index: 0; inset: 0; background: radial-gradient(circle at 76% 50%,rgba(213,255,44,.15),transparent 30%),#050705; content: ""; opacity: 0; transition: opacity .26s ease; }
    .claim > span { position: relative; z-index: 2; }
    .claim:hover,.claim:focus-visible { color: #fff!important; outline: none; }
    .claim:hover::before,.claim:focus-visible::before { opacity: 1; }
    .claim-particles { position: absolute!important; z-index: 1!important; inset: 0; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
    .claim:hover .claim-particles,.claim:focus-visible .claim-particles { opacity: 1; }
    .claim-particles i { position: absolute; top: var(--top); left: var(--left); width: var(--size,2px); height: var(--size,2px); background: var(--lime); box-shadow: 0 0 7px rgba(212,255,44,.85); animation: led-square-glow var(--duration) ease-in-out infinite; animation-delay: var(--delay); }
    .nav-spacer { width: 48px; height: 48px; }
    .nav .mobile-toggle { display: none; width: 48px; height: 48px; border: 0; border-radius: 50%; color: #fff; cursor: pointer; place-items: center; }
    .menu-icon,.menu-icon::before,.menu-icon::after { display: block; width: 18px; height: 1.5px; border-radius: 2px; background: currentColor; transition: transform .25s ease,opacity .2s ease; }
    .menu-icon { position: relative; }
    .menu-icon::before,.menu-icon::after { position: absolute; left: 0; content: ""; }
    .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); }
    @keyframes led-square-glow { 0%,100%{opacity:.08}48%{opacity:.96;box-shadow:0 0 11px rgba(212,255,44,.95)} }
    @media (min-width:1281px) { .menu a:not(.claim):hover,.menu a:not(.claim):focus-visible,.nav-dropdown>button:hover,.nav-dropdown>button:focus-visible { border-radius:999px;background:rgba(255,255,255,.16);box-shadow:inset 0 1px 1px rgba(255,255,255,.34),0 1px 10px rgba(0,0,0,.12);outline:none; } }

    /* Remove card-like outlines while preserving subtle separators where useful. */
    .directory,.industries,.process,.faq,.footer { border: 0; }
    .core-card,.service-grid,.service-item,.industry-card,.project-card,.quote-panel { border: 0; }
    .service-item { background: rgba(255,255,255,.022); box-shadow: inset -1px -1px rgba(255,255,255,.055); }
    .core-card { background: #080808; box-shadow: inset 0 0 0 1px rgba(255,255,255,.055); }
    .core-number { transition: color .3s ease,text-shadow .3s ease; }
    .core-card:hover .core-number,.core-card:focus-visible .core-number { color: var(--lime); text-shadow: 0 0 25px rgba(214,255,48,.22); }
    .directory-title span[data-capability-count] { color: var(--lime); }
    .service-item strong { color: var(--lime); }
    .service-item:hover strong,.service-item:focus-visible strong { color: #fff; }
    .service-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
    .installation-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }

    /* Portfolio-inspired industry selector: a full visual stage with typographic navigation. */
    .industries { padding: 0; background: #050505; }
    .industry-stage { position: relative; isolation: isolate; min-height: min(880px,100svh); overflow: hidden; }
    .industry-backdrop { position: absolute; z-index: -3; inset: 0; height: 100%; object-fit: cover; filter: grayscale(.5) brightness(.54) contrast(1.08); transform: scale(1.045); will-change: transform,opacity; }
    .industry-stage::before { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg,rgba(2,2,2,.7),rgba(2,2,2,.23) 46%,rgba(2,2,2,.66)),linear-gradient(180deg,rgba(0,0,0,.4),transparent 30%,rgba(0,0,0,.55)); content: ""; }
    .industry-stage-top { position: absolute; z-index: 2; top: 42px; right: clamp(24px,5vw,76px); left: clamp(24px,5vw,76px); display: flex; align-items: center; justify-content: space-between; gap: 30px; }
    .industry-stage-top .section-kicker { margin: 0; color: var(--lime); }
    .industry-stage-top span { color: rgba(255,255,255,.58); font: 600 10px "Fira Mono",monospace; letter-spacing: .1em; text-transform: uppercase; }
    .industry-list { position: relative; z-index: 2; display: flex; min-height: min(880px,100svh); flex-direction: column; align-items: center; justify-content: center; padding: 125px 22px 105px; text-align: center; }
    .industry-link { display: inline-flex; align-items: center; gap: 14px; margin: -2px 0; color: rgba(255,255,255,.43); font-size: clamp(34px,4.4vw,72px); font-weight: 500; line-height: 1.02; letter-spacing: -.06em; text-decoration: none; text-shadow: 0 2px 25px rgba(0,0,0,.35); transition: color .32s ease,transform .45s var(--ease),text-shadow .32s ease; }
    .industry-link i { max-width: 0; overflow: hidden; color: var(--lime); font-size: .42em; opacity: 0; transform: translateX(-10px); transition: max-width .3s ease,opacity .3s ease,transform .3s ease; }
    .industry-link.is-active,.industry-link:hover,.industry-link:focus-visible { color: #fff; outline: none; transform: scale(1.035); text-shadow: 0 0 28px rgba(214,255,48,.16); }
    .industry-link.is-active i,.industry-link:hover i,.industry-link:focus-visible i { max-width: 1em; opacity: 1; transform: none; }
    .industry-link:last-child { color: rgba(255,255,255,.43); }
    .industry-link:last-child.is-active,.industry-link:last-child:hover,.industry-link:last-child:focus-visible { color: #fff; }
    .industry-meta { position: absolute; z-index: 2; right: clamp(24px,5vw,76px); bottom: 40px; left: clamp(24px,5vw,76px); display: flex; align-items: end; justify-content: space-between; gap: 30px; color: rgba(255,255,255,.7); }
    .industry-meta strong { display: block; color: var(--red); font-size: 14px; }.industry-meta p { max-width: 380px; margin: 7px 0 0; font-size: 12px; line-height: 1.45; }.industry-meta .text-link { color: var(--lime); }

    /* Editorial details sit at opposing centre edges, leaving the title list uncluttered. */
    .industry-link { display: block; }
    .industry-link i { display: none; }
    .industry-meta { top: 50%; bottom: auto; align-items: center; transform: translateY(-50%); }
    .industry-meta > div { max-width: 270px; }.industry-meta .text-link { margin-left: auto; }
    /* Desktop uses the same wheel-picker interaction without taking over page scrolling elsewhere. */
    @media (min-width:681px) {
      .industry-list { position:absolute;top:50%;right:0;left:0;display:block;min-height:0;height:246px;margin:0;overflow-y:auto;padding:82px 32px;transform:translateY(-50%);scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.26) 12%,#000 35%,#000 65%,rgba(0,0,0,.26) 88%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.26) 12%,#000 35%,#000 65%,rgba(0,0,0,.26) 88%,transparent 100%); }
      .industry-list::-webkit-scrollbar { display:none; }
      .industry-link { display:flex;min-height:82px;align-items:center;justify-content:center;margin:0;color:rgba(255,255,255,.3);font-size:clamp(34px,4.2vw,64px);scroll-snap-align:center;scroll-snap-stop:always;transform:scale(.9); }
      .industry-link.is-active { color:#fff;transform:scale(1); }
    }

    /* Fixed process line with a low-cost sequential signal. */
    .process-line { z-index: 1; background: rgba(220,31,47,.78); transform: scaleX(1); overflow: hidden; }
    .process-line::after { position: absolute; top: -2px; bottom: -2px; left: -28%; width: 28%; background: linear-gradient(90deg,transparent,var(--lime) 38%,#fff 52%,var(--lime) 66%,transparent); box-shadow: 0 0 15px rgba(214,255,48,.92); content: ""; animation: process-line-flow 5.8s ease-in-out infinite; will-change: transform; }
    .process-icon { position: relative; z-index: 3; background: #090909; transition: border-color .3s ease,background .3s ease,color .3s ease,box-shadow .3s ease; animation: process-icon-signal 5.8s ease-in-out infinite; }
    .process-step:nth-of-type(1) .process-icon { animation-delay: 0s; }.process-step:nth-of-type(2) .process-icon { animation-delay: 1.45s; }.process-step:nth-of-type(3) .process-icon { animation-delay: 2.9s; }.process-step:nth-of-type(4) .process-icon { animation-delay: 4.35s; }
    @keyframes process-line-flow { 0% { transform: translateX(0); opacity: 0; } 10% { opacity: 1; } 76% { opacity: 1; } 100% { transform: translateX(460%); opacity: 0; } }
    @keyframes process-icon-signal { 0%,20% { border-color: var(--lime); background: var(--lime); color: #101010; box-shadow: 0 0 0 7px rgba(214,255,48,.06),0 0 28px rgba(214,255,48,.36); } 31%,100% { border-color: var(--red); background: #090909; color: #fff; box-shadow: none; } }

    /* Home-page FAQ component */
    .msav-faq-section { position: relative; overflow: hidden; padding: clamp(88px,10vw,156px) clamp(22px,7vw,112px); background: #f7f6f2; color: #151313; }
    .msav-faq-layout { display: grid; grid-template-columns: minmax(260px,.76fr) minmax(0,1.24fr); gap: clamp(44px,10vw,180px); max-width: 1440px; margin: 0 auto; }
    .msav-faq-eyebrow { margin: 0 0 18px; color: var(--red); font: 600 11px "Fira Mono",monospace; letter-spacing: .12em; text-transform: uppercase; }
    .msav-faq-title { max-width: 520px; margin: 0; font-size: clamp(48px,5.8vw,88px); font-weight: 600; line-height: .91; letter-spacing: -.075em; }
    .msav-faq-intro { max-width: 390px; margin: 24px 0 0; color: #5d5855; font-size: 16px; line-height: 1.52; }
    .msav-faq-list { border-top: 1px solid #d5d1cc; }
    .msav-faq-item { border-bottom: 1px solid #d5d1cc; }
    .msav-faq-question { display: grid; grid-template-columns: minmax(0,1fr) 36px; align-items: center; width: 100%; padding: 23px 0; border: 0; background: transparent; color: inherit; cursor: pointer; text-align: left; }
    .msav-faq-question span:first-child { font-size: clamp(18px,1.65vw,24px); font-weight: 550; line-height: 1.15; letter-spacing: -.04em; }
    .msav-faq-icon { position: relative; display: grid; width: 26px; height: 26px; place-items: center; justify-self: end; border: 1px solid #bbb5af; border-radius: 50%; transition: background .28s ease,border-color .28s ease,transform .35s var(--ease); }
    .msav-faq-icon i { color: #171515; font-size: 14px; transition: transform .28s ease; }
    .msav-faq-item.is-open .msav-faq-icon { border-color: var(--lime); background: var(--lime); transform: rotate(180deg); }.msav-faq-item.is-open .msav-faq-icon i { transform: rotate(45deg); }
    .msav-faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .42s var(--ease); }.msav-faq-answer>div { overflow: hidden; }.msav-faq-answer p { max-width: 620px; margin: 0; padding: 0 56px 0 0; color: #625c58; font-size: 16px; line-height: 1.52; opacity: 0; transform: translateY(-6px); transition: opacity .24s ease,transform .35s ease,padding .42s var(--ease); }.msav-faq-item.is-open .msav-faq-answer { grid-template-rows: 1fr; }.msav-faq-item.is-open .msav-faq-answer p { padding-bottom: 25px; opacity: 1; transform: none; }

    /* Home-page 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; color:#fff; }
    .msav-footer::before { position:absolute;inset:0;background:radial-gradient(rgba(255,255,255,.11) .65px,transparent .8px);background-size:5px 5px;content:"";mask-image:linear-gradient(155deg,#000,transparent 75%);opacity:.13;pointer-events:none; }
    .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);align-items:stretch; }
    .msav-footer-brand { display:flex;min-height:clamp(390px,38vw,560px);flex-direction:column;justify-content:space-between; }
    .msav-footer-logo { position:relative;width:min(100%,680px);line-height:0; }.msav-footer-logo img { width:100%;height:auto; }.msav-footer-logo-av { position:absolute;inset:0;clip-path:inset(0 0 0 54.5%);filter:brightness(0) invert(1);pointer-events:none; }
    .msav-footer-company { max-width:460px;margin-top:clamp(32px,4vw,58px); }.msav-footer-company-name { margin:0;color:#fff;font-size:clamp(18px,1.55vw,25px);font-weight:620;line-height:1.35;letter-spacing:-.045em; }.msav-footer-company-name span { color:rgba(255,255,255,.62);font-size:.52em;letter-spacing:.025em;vertical-align:.16em; }.msav-footer-company-description { max-width:400px;margin:20px 0 0;color:rgba(255,255,255,.8);font-size:clamp(16px,1.28vw,19px);font-weight:500;line-height:1.35;letter-spacing:-.035em; }
    .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-links h3,.msav-footer-contact-block h3,.msav-footer-social-block h3 { margin:0 0 18px;color:rgba(255,255,255,.48);font-size:11px;font-weight:650;text-transform:uppercase; }.msav-footer-links a { display:block;width:fit-content;margin:0 0 13px;color:#fff;font-size:15px;font-weight:550;text-decoration:none; }.msav-footer-links a:hover { color:var(--lime);transform:translateX(3px); }.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:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px; }.msav-footer-contact-detail { display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:14px;font-weight:550;text-decoration:none; }.msav-footer-contact { display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:12px 18px;border-radius:999px;background:var(--lime);color:#101010;font-size:13px;font-weight:750;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;color:#fff;text-decoration:none; }.msav-footer-social a:hover { border-color:var(--lime);background:var(--lime);color:#101010; }.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; }

    @media (max-width:1280px) { .nav { grid-template-columns:132px 1fr;padding:0 20px; }.nav .mobile-toggle { display:grid;justify-self:end; }.nav-spacer { display:none; }.menu { position:absolute;top:68px;right:20px;left:20px;display:none;width:auto;max-height:calc(100svh - 88px);align-items:stretch;flex-direction:column;overflow-y:auto;border-radius:20px;background:rgba(14,17,24,.74);backdrop-filter:blur(34px) saturate(155%); }.menu.open { display:flex; }.menu a { width:100%;padding:12px 14px;border-radius:12px; }.menu .claim { justify-content:center;margin:4px 0 0;padding:12px 14px;border-radius:12px; }.nav-dropdown { width:100%; }.nav-dropdown>button { width:100%;justify-content:space-between;padding:12px 14px;border-radius:12px;font-size:14px; }.nav .dropdown-panel { position:static;display:none;grid-template-columns:1fr;width:auto;margin:0 7px 4px;padding:6px;border-radius:14px;background:rgba(255,255,255,.06);box-shadow:none;opacity:1;visibility:visible;transform:none;pointer-events:auto; }.nav-dropdown.open .dropdown-panel { display:grid;transform:none; }.nav-dropdown.is-hovered:not(.open) .dropdown-panel { display:none; }.nav .dropdown-hero { height:132px;min-height:132px;padding:14px; }.service-grid,.installation-grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
    @media (max-width:960px) { .service-grid,.installation-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.msav-faq-layout { grid-template-columns:1fr;gap:54px; }.msav-footer-main { grid-template-columns:1fr; }.msav-footer-brand { min-height:290px; } }
    @media (max-width:680px) { .service-grid,.installation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.core-number { color:var(--lime);text-shadow:0 0 25px rgba(214,255,48,.18); }.industry-stage { min-height:660px; }.industry-stage-top { top:28px;align-items:flex-start;flex-direction:column;gap:10px; }.industry-list { position:absolute;top:50%;right:0;left:0;display:block;min-height:0;height:205px;max-height:none;width:100%;margin:0;overflow-y:auto;padding:8px 24px;text-align:center;transform:translateY(-50%);scroll-snap-type:y mandatory;scrollbar-width:none; }.industry-list::-webkit-scrollbar { display:none; }.industry-link { margin:13px 0;font-size:clamp(21px,6vw,29px);line-height:1.14;scroll-snap-align:center; }.industry-meta { top:auto;right:24px;bottom:28px;left:24px;align-items:flex-start;flex-direction:column;transform:none; }.industry-meta > div { max-width:300px; }.industry-meta .text-link { margin-left:0; }.msav-faq-section { padding:90px 20px; }.msav-faq-question { grid-template-columns:minmax(0,1fr) 32px;padding:19px 0; }.msav-faq-question span:first-child { font-size:18px; }.msav-footer { padding:78px 20px 23px; }.msav-footer-brand { min-height:220px; }.msav-footer-side { grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 24px; }.msav-footer-bottom { margin-top:66px; } }
    /* Mobile industry picker: an Apple-style wheel with the selected row centred. */
    @media (max-width:680px) {
      .industry-list { height:220px; padding:81px 24px; overscroll-behavior:contain; scroll-padding-block:81px; -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 14%,#000 32%,#000 68%,rgba(0,0,0,.55) 86%,transparent 100%); mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 14%,#000 32%,#000 68%,rgba(0,0,0,.55) 86%,transparent 100%); }
      .industry-link { display:flex; min-height:58px; align-items:center; justify-content:center; margin:0; color:rgba(255,255,255,.38); font-size:clamp(20px,5.8vw,27px); line-height:1.14; opacity:.72; scroll-snap-align:center; scroll-snap-stop:always; transform:scale(.9); transition:color .28s ease,transform .32s var(--ease),opacity .28s ease; }
      .industry-link.is-active { color:#fff; opacity:1; transform:scale(1); text-shadow:0 0 22px rgba(255,255,255,.14); }
      .industry-swipe-hint { position:absolute;z-index:3;top:calc(50% + 90px);left:0;display:flex;width:100%;align-items:center;justify-content:center;gap:7px;color:rgba(255,255,255,.66);font:600 9px "Fira Mono",monospace;letter-spacing:.1em;text-transform:uppercase;pointer-events:none; }.industry-swipe-hint i { color:var(--lime);font-size:17px;animation:industry-swipe-cue 1.6s ease-in-out infinite; }
    }
    @media (min-width:681px) { .industry-swipe-hint { display:none; } }
    @keyframes industry-swipe-cue { 0%,100% { transform:translateY(2px);opacity:.42; } 50% { transform:translateY(-3px);opacity:1; } }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
      .hero-media img { transform: none !important; }
      .process-line { transform: scaleX(1); }
      .process-line::after { animation: none!important; display: none; }
      .industry-swipe-hint i { animation: none; }
    }
    /* Mobile refinements shared by the service cards and wheel selector. */
    @media (max-width: 680px) {
      .core-grid { gap: 18px; }
      .core-card { min-height: 430px; border: 1px solid rgba(255,255,255,.12); }
      .core-card img { width: 100%; height: 68%; object-position: center; }
      .core-card::after { background: linear-gradient(180deg, transparent 32%, rgba(7,7,7,.25) 56%, #070707 76%); }
      .core-card-content { padding: 22px 22px 24px; }
      .core-number { margin-bottom: 5px; color: var(--lime); font-size: 48px; }
      .core-card h3 { font-size: 28px; }
      .core-card p { max-width: calc(100% - 66px); }
      .core-arrow { position: absolute; right: 22px; bottom: 23px; width: 46px; height: 46px; margin: 0; border-color: rgba(255,255,255,.8); background: var(--red); color: #fff; }
      .industry-list { height: 184px; padding: 63px 24px; scroll-padding-block: 63px; }
      .industry-link { min-height: 50px; font-size: clamp(20px,5.8vw,27px); }
      .industry-swipe-hint { top: calc(50% + 74px); }
    }
  
    /* Industry wheel: show a maximum of five rows in the centre viewport. */
    @media (min-width: 681px) {
      .industry-list {
        height: 410px !important;
        padding: 164px 32px !important;
        scroll-padding-block: 164px !important;
      }
    }

/* ---- msav-medium-dots-services ---- */
/* Medium dot-grid texture — hero background image only */
    .hero-media::after {
      background:
        radial-gradient(rgba(255,255,255,.066) .55px, transparent .7px),
        linear-gradient(120deg, transparent 32%, rgba(220,31,47,.17));
      background-size: 5px 5px, auto;
    }

    /* Three core areas — dots only over each card's image region */
    .core-card::before {
      position: absolute;
      z-index: 1;
      top: 0;
      right: 0;
      left: 0;
      height: 55%;
      background: radial-gradient(rgba(255,255,255,.066) .55px, transparent .7px);
      background-size: 5px 5px;
      content: "";
      pointer-events: none;
    }
  

/* ---- msav-v01685-services-mobile-active-cue ---- */
    @keyframes msav-core-click-cue {
      0%, 100% { box-shadow: 0 0 0 0 rgba(214,255,48,.34); transform: scale(1); }
      50% { box-shadow: 0 0 0 9px rgba(214,255,48,0); transform: scale(1.05); }
    }
    @media (max-width: 1280px), (hover: none), (pointer: coarse) {
      .core-card:first-child {
        border-color: var(--lime) !important;
        box-shadow: inset 0 0 0 1px rgba(214,255,48,.28), 0 0 0 1px rgba(214,255,48,.16);
      }
      .core-card:first-child img { filter: grayscale(.28) brightness(.68) contrast(1.1); }
      .core-card:first-child .core-number { color: var(--lime); text-shadow: 0 0 25px rgba(214,255,48,.22); }
      .core-card:first-child .core-arrow {
        animation: msav-core-click-cue 2.1s ease-in-out infinite;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .core-card:first-child .core-arrow { animation: none !important; }
    }
  

/* ---- msav-v01691-services-default-first-card-active ---- */
    /* Keep AV Rental visibly active by default on every viewport, matching the hover cue. */
    .core-card:first-child {
      border-color: var(--lime) !important;
      box-shadow: inset 0 0 0 1px rgba(214,255,48,.28), 0 0 0 1px rgba(214,255,48,.16);
    }
    .core-card:first-child img {
      filter: grayscale(.28) brightness(.68) contrast(1.1);
    }
    .core-card:first-child .core-number {
      color: var(--lime);
      text-shadow: 0 0 25px rgba(214,255,48,.22);
    }
    .core-card:first-child .core-arrow {
      /* Keep the default arrow appearance and only switch to lime on hover/focus. */
    }
