@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{--bg:#090909;--paper:#f2f0eb;--muted:#9b9b9b;--line:#292929;--accent:#d7ff3f}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--paper);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}
.nav{height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:fixed;top:0;width:100%;z-index:10;background:rgba(9,9,9,.82);backdrop-filter:blur(14px)}
.logo{font-family:"Space Grotesk";font-weight:700;letter-spacing:.08em;font-size:15px}.logo span{font-weight:400;color:#888;margin-left:4px}
.nav nav{display:flex;gap:30px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}
.nav nav a{position:relative;padding-bottom:4px}
.nav nav a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .3s ease}
.nav nav a:hover{color:var(--accent)}.nav nav a:hover:after{width:100%}
.nav nav a.current{color:var(--accent)}.nav nav a.current:after{width:100%}
.menu{display:none;background:none;color:white;border:0;font-size:24px}
.hero{min-height:100vh;position:relative;display:flex;align-items:center;overflow:hidden;padding:120px 8vw}.hero-bg{position:absolute;inset:0;background:#090909}.hero-image-wrap{position:absolute;z-index:1;top:78px;right:0;width:64%;height:calc(100% - 78px);overflow:hidden}.hero-image{width:100%;height:100%;display:block;object-fit:cover;object-position:center;filter:grayscale(1) contrast(1.05) brightness(.72);opacity:.72}.hero-image-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#090909 0%,rgba(9,9,9,.88) 8%,rgba(9,9,9,.3) 48%,rgba(9,9,9,.05) 100%),linear-gradient(0deg,rgba(9,9,9,.45),transparent 35%,rgba(9,9,9,.2));pointer-events:none}.hero-content{position:relative;z-index:2;max-width:900px}.eyebrow{font-size:11px;letter-spacing:.25em;color:var(--accent);font-weight:700;margin:0 0 24px}.hero h1,.section h2,.contact-cta h2{font-family:"Space Grotesk";font-size:clamp(52px,9vw,130px);line-height:.86;letter-spacing:-.06em;margin:0}.hero h1 em,.section h2 em,.contact-cta h2 em{font-style:normal;color:#777}.lead{max-width:580px;color:#bbb;font-size:18px;line-height:1.65;margin:34px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-block;padding:15px 22px;border:1px solid #555;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:transform .25s ease,background .25s ease,border-color .25s ease,color .25s ease;cursor:pointer}.btn.primary{background:var(--accent);color:#090909;border-color:var(--accent)}.btn.primary:hover{transform:translateY(-2px)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.hero-mark{position:absolute;right:7vw;bottom:9vh;font-family:"Space Grotesk";font-size:clamp(100px,22vw,360px);font-weight:700;color:#121212;letter-spacing:-.12em}

/* hero entrance animation */
.hero-anim{opacity:0;animation:heroRise .9s cubic-bezier(.16,1,.3,1) forwards}
.eyebrow.hero-anim{animation-delay:.1s}
h1.hero-anim{animation-delay:.22s}
.lead.hero-anim{animation-delay:.36s}
.actions.hero-anim{animation-delay:.48s}
@keyframes heroRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}

/* scroll-triggered reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in-view{opacity:1;transform:none}

.section{padding:140px 7vw}.section-head{margin-bottom:75px}.section h2{font-size:clamp(48px,7vw,100px)}.section-cta{margin-top:50px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-card{display:flex;flex-direction:column;min-height:260px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s ease,transform .3s ease;color:inherit;text-decoration:none}
.service-card-image{padding:0;overflow:hidden}
.service-image-wrap{position:relative;height:185px;overflow:hidden;background:#111;border-bottom:1px solid var(--line)}
.service-image-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.52),transparent 65%);pointer-events:none}
.service-image{width:100%;height:100%;display:block;object-fit:cover;transition:transform .55s ease,filter .55s ease}
.service-card-body{display:flex;flex-direction:column;flex:1;padding:26px 30px 30px}
.service-card-image:hover .service-image{transform:scale(1.06);filter:saturate(1.08)}

.service-card:hover{background:#121212;transform:translateY(-3px)}
.service-card>span:first-child{font-size:11px;color:var(--accent);letter-spacing:.15em}
.service-card h3{font-family:"Space Grotesk";font-size:25px;margin:45px 0 12px;letter-spacing:-.03em}
.service-card p{color:#888;line-height:1.65;font-size:14px;margin:0 0 18px;flex:1}
.service-card-cta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700}
.steps p,.about-copy p{color:#888;line-height:1.65;font-size:14px}

/* work / portfolio section */
.work-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:50px}
.filter-btn{background:none;border:1px solid var(--line);color:#999;font-family:"DM Sans";font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:10px 18px;cursor:pointer;transition:border-color .25s ease,color .25s ease,background .25s ease}
.filter-btn:hover{border-color:var(--accent);color:var(--paper)}
.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#090909}
.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.work-item{transition:transform .35s ease}
.work-item:hover{transform:translateY(-6px)}
.work-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:linear-gradient(150deg,#1c1c1c,#0c0c0c 70%);border:1px solid var(--line);transition:border-color .35s ease}
.work-frame:before{content:attr(data-index);position:absolute;top:14px;right:16px;font-family:"Space Grotesk";font-weight:700;font-size:56px;letter-spacing:-.04em;color:rgba(255,255,255,.05);transition:color .35s ease,transform .35s ease}
.work-item:hover .work-frame{border-color:var(--accent)}
.work-item:hover .work-frame:before{color:rgba(215,255,63,.18);transform:scale(1.06)}
.work-meta{padding-top:18px}
.work-cat{font-size:10px;letter-spacing:.15em;color:var(--accent);text-transform:uppercase;font-weight:700}
.work-meta h3{font-family:"Space Grotesk";font-size:19px;margin:10px 0 6px;letter-spacing:-.02em}
.work-meta p{color:#888;font-size:13px;line-height:1.5;margin:0}

/* cinematic showcase slider (home, between "what we do" and "work") */
.cinematic-slider{display:flex;flex-direction:column;width:100%;background:var(--bg)}
.cinematic-slider-bar{flex:0 0 auto;background:var(--bg)}
.cinematic-slider-bar.top{height:56px}
.cinematic-slider-bar.bottom{min-height:56px;display:flex;align-items:center;justify-content:center;padding:16px 0}
.cinematic-stage{position:relative;width:100%;height:min(72vh,860px);min-height:320px;overflow:hidden;background:#000}
.cinematic-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);z-index:0}
.cinematic-slide.is-active{opacity:1;z-index:1}
.cinematic-slide img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.cinematic-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,9,.3),transparent 22%,transparent 78%,rgba(9,9,9,.4))}
.cinematic-dots{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;max-width:90vw}
.cinematic-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.28);border:0;padding:0;cursor:pointer;transition:background .3s ease,transform .3s ease}
.cinematic-dot:hover{background:rgba(255,255,255,.55)}
.cinematic-dot.is-active{background:var(--accent);transform:scale(1.4)}

@media(max-width:800px){
  .cinematic-slider-bar.top{height:40px}
  .cinematic-slider-bar.bottom{min-height:44px;padding:12px 0}
  .cinematic-stage{height:min(52vh,480px);min-height:240px}
  .cinematic-dot{width:5px;height:5px}
}

.dark-section{padding:140px 7vw;background:#101010}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#333}.steps div{background:#101010;padding:35px;min-height:230px}.steps b{font-size:12px;color:var(--accent)}.steps h3{font-family:"Space Grotesk";font-size:25px;margin-top:60px}
.about{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.about-copy{padding-top:50px}.about-copy p{font-size:20px;color:#aaa;margin:0 0 35px}

/* compact contact CTA banner (index / services / facilities pages) */
.contact-cta{padding:140px 7vw;background:#d7ff3f;color:#090909}
.contact-cta .eyebrow{color:#090909}
.contact-cta h2 em{color:#666}
.cta-row{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;border-top:1px solid rgba(9,9,9,.2);padding-top:40px}
.cta-row p{max-width:520px;font-size:16px;line-height:1.6;margin:0;color:#1a1a1a}
.cta-row .btn.primary{background:#090909;color:#fff;border-color:#090909}
.cta-row .btn.primary:hover{transform:translateY(-2px)}

footer{padding:25px 7vw;display:flex;justify-content:space-between;align-items:center;color:#666;font-size:10px;letter-spacing:.12em}
.footer-links{display:flex;gap:22px}
.footer-links a{color:#888;transition:color .3s ease}
.footer-links a:hover{color:var(--accent)}

/* sub-page hero */
.page-hero{padding:160px 7vw 20px}
.page-hero h1{font-family:"Space Grotesk";font-size:clamp(44px,7vw,84px);line-height:.92;letter-spacing:-.05em;margin:0}
.page-hero h1 em{font-style:normal;color:#777}
.page-hero .lead{max-width:600px;color:#bbb;font-size:16px;line-height:1.65;margin-top:24px}

/* facilities: tech banner + partner strip + facility grid */
.tech-banner{background:linear-gradient(120deg,#161616,#0c0c0c 65%);border:1px solid var(--line);padding:60px 7vw;margin:60px 7vw;position:relative}
.tech-banner h2{font-family:"Space Grotesk";font-size:clamp(30px,5vw,54px);line-height:1.08;letter-spacing:-.03em;margin:16px 0 26px;max-width:760px}
.tech-banner h2 em{font-style:normal;color:var(--accent)}
.tech-banner p{color:#999;max-width:640px;line-height:1.7;margin:0 0 30px;font-size:15px}
.tech-strip{display:flex;flex-wrap:wrap;gap:44px;align-items:center;padding:36px 7vw;background:#101010;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:80px}
.tech-logo{font-family:"Space Grotesk";font-weight:700;letter-spacing:.03em;color:#777;font-size:15px;text-transform:uppercase;transition:color .3s ease}
.tech-logo:hover{color:var(--paper)}
.tech-logo small{display:block;font-family:"DM Sans";font-weight:400;letter-spacing:.14em;font-size:9px;color:#555;margin-top:4px;text-transform:uppercase}
.facility-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.facility-card{background:linear-gradient(150deg,#1a1a1a,#0c0c0c 70%);border:1px solid var(--line);padding:34px;transition:border-color .3s ease,transform .3s ease}
.facility-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.facility-card h3{font-family:"Space Grotesk";font-size:20px;margin:0 0 10px;letter-spacing:-.02em}
.facility-card p{color:#888;font-size:14px;line-height:1.6;margin:0}


/* photo hero banner — full-bleed image, dark overlay, overlaid heading (e.g. Edit Suites highlight) */
.photo-hero{position:relative;width:100%;min-height:60vh;overflow:hidden;background:#0c0c0c}
.photo-hero img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.photo-hero-placeholder{position:absolute;inset:0;background:radial-gradient(circle at 30% 35%,#2a2a2a 0,#161616 40%,#0c0c0c 75%);display:flex;align-items:center;justify-content:center;color:#555;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.photo-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,9,9,.94) 12%,rgba(9,9,9,.55) 45%,rgba(9,9,9,.15) 72%,transparent 100%)}
.photo-hero-text{position:absolute;left:7vw;bottom:56px;z-index:2;max-width:540px;border-left:2px solid var(--accent);padding-left:22px}
.photo-hero-text .eyebrow{margin:0 0 16px}
.photo-hero-text h2{font-family:"Space Grotesk";font-size:clamp(30px,4.5vw,50px);line-height:1.1;letter-spacing:-.02em;margin:0}
.photo-hero-text h2 span{display:block}
.photo-hero-text h2 .accent{color:var(--accent)}

.suite-info{padding:80px 7vw;text-align:center;background:var(--bg)}
.suite-info p{max-width:640px;margin:0 auto 34px;color:#999;line-height:1.75;font-size:16px}

@media(max-width:800px){
  .photo-hero{min-height:70vh}
  .photo-hero-text{left:6vw;bottom:36px;max-width:80vw}
}

/* ───── CLIENTS & PARTNERS (continuous logo scroll, never pauses) ───── */
    .clients {
      padding: 100px 0 110px;
      background: var(--bg);
      overflow: hidden;
    }
    .clients-marquee {
      overflow: hidden;
      width: 100%;
      margin-top: 56px;
      -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
      mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 90%, transparent 100%);
    }
    .clients-track {
      display: inline-flex;
      align-items: center;
      width: max-content;
      animation: clientsScroll 30s linear infinite;
      /* No pause-on-hover — this loop is intentionally continuous and never stops. */
    }
    .client-logo {
      flex: 0 0 auto;
      padding: 0 56px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .client-logo img {
      height: 128px;
      width: auto;
      display: block;
      filter: grayscale(1) brightness(1.7) contrast(0.9) opacity(0.5);
      transition: filter 0.35s ease, transform 0.35s ease;
    }
    .client-logo img:hover {
      filter: grayscale(0) brightness(1) contrast(1) opacity(1);
      transform: scale(1.06);
    }
    @keyframes clientsScroll {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
    @media (prefers-reduced-motion: reduce) {
      .clients-track { animation: none; flex-wrap: wrap; justify-content: center; }
      .clients-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
    }

    /* edit suite technology logos */
.suite-tech{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:30px 7vw}
.suite-tech-item{min-height:150px;padding:10px 42px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border-right:1px solid var(--line)}
.suite-tech-item:first-child{padding-left:0}.suite-tech-item:last-child{border-right:0}
.suite-logo{height:58px;width:130px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:13px}
.suite-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.suite-logo-avid img{width:122px;filter:grayscale(1) brightness(1.9) contrast(.85)}
.suite-logo-resolve img{width:58px;height:58px}
.suite-logo-premiere{width:58px;height:58px;justify-content:center;border:2px solid #777;background:#111;color:#c9c9c9;font-family:"Space Grotesk";font-size:25px;font-weight:700;letter-spacing:-.08em;border-radius:2px}
.suite-tech-name{color:#b8b8b8;font-family:"Space Grotesk";font-size:12px;font-weight:700;letter-spacing:.08em}
.suite-tech-item small{display:block;color:#555;font-size:9px;letter-spacing:.14em;margin-top:5px;text-transform:uppercase}
@media(max-width:800px){.suite-tech{grid-template-columns:1fr;gap:0;padding:20px 7vw}.suite-tech-item,.suite-tech-item:first-child{min-height:125px;padding:22px 0;border-right:0;border-bottom:1px solid var(--line)}.suite-tech-item:last-child{border-bottom:0}}

/* contact page */
.contact-split{display:grid;grid-template-columns:1fr 1.15fr;gap:8vw;padding:160px 7vw 140px}
.contact-intro h1{font-family:"Space Grotesk";font-size:clamp(38px,6vw,62px);line-height:1.02;letter-spacing:-.04em;margin:0}
.contact-intro h1 em{font-style:normal;color:var(--accent)}
.contact-intro .lead{color:#999;max-width:420px;margin:26px 0 40px;line-height:1.7;font-size:15px}
.info-list{display:flex;flex-direction:column;gap:22px}
.info-block{border-top:1px solid var(--line);padding-top:14px}
.info-label{display:block;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:6px}
.info-block a,.info-block p{font-size:15px;color:var(--paper);margin:0}
.info-block a:hover{color:var(--accent)}

.contact-form{display:flex;flex-direction:column;gap:22px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#999}
.field input,.field select,.field textarea{background:#101010;border:1px solid var(--line);color:var(--paper);padding:13px 14px;font-family:"DM Sans";font-size:14px;border-radius:0}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field textarea{resize:vertical}
.chip-group{display:flex;flex-wrap:wrap;gap:10px}
.service-chip{background:none;border:1px solid var(--line);color:#999;font-family:"DM Sans";font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:10px 15px;cursor:pointer;transition:all .25s ease}
.service-chip:hover{border-color:var(--accent);color:var(--paper)}
.service-chip.active{background:var(--accent);border-color:var(--accent);color:#090909}
.form-honeypot{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.form-submit{align-self:flex-start}
.form-status{font-size:13px;min-height:18px;margin:0}
.form-status.success{color:var(--accent)}
.form-status.error{color:#ff6b6b}

@media(max-width:800px){
  .nav nav{display:none}.menu{display:block}
  .hero{padding:120px 7vw}.hero-image-wrap{width:100%;opacity:.45}.hero-image-wrap:after{background:linear-gradient(90deg,#090909 0%,rgba(9,9,9,.75) 30%,rgba(9,9,9,.15) 100%),linear-gradient(0deg,rgba(9,9,9,.55),transparent 45%,rgba(9,9,9,.25))}.hero-mark{display:none}
  .service-grid{grid-template-columns:1fr}
  .service-image-wrap{height:210px}
  .work-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr 1fr}
  .about{grid-template-columns:1fr}
  .section{padding:100px 7vw}
  footer{gap:15px;flex-direction:column}
  .cta-row{flex-direction:column;align-items:flex-start}
  .facility-grid{grid-template-columns:1fr}
  .contact-split{grid-template-columns:1fr;padding:130px 7vw 100px}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:500px){
  .work-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .hero h1{font-size:56px}
  .lead{font-size:16px}
}

@media(prefers-reduced-motion:reduce){
  .hero-anim{animation:none;opacity:1}
  .reveal{transition:none;opacity:1;transform:none}
  .service-card,.btn,.work-item,.work-frame,.filter-btn,.service-chip,.nav nav a:after,.facility-card{transition:none}
}


/* =========================================================
   MOBILE / TABLET RESPONSIVE HARDENING
   ========================================================= */
html, body { max-width:100%; overflow-x:hidden; }
img, video, svg { max-width:100%; height:auto; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
.menu { min-width:44px; min-height:44px; display:none; align-items:center; justify-content:center; cursor:pointer; }

@media (max-width: 1024px) {
  .nav { padding:0 4vw; }
  .nav nav { gap:20px; font-size:12px; }
  .hero { padding-left:6vw; padding-right:6vw; }
  .hero-mark { right:4vw; }
  .section, .dark-section, .contact-cta { padding-left:6vw; padding-right:6vw; }
  .work-grid { grid-template-columns:repeat(2,1fr); gap:22px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .facility-grid { grid-template-columns:repeat(2,1fr); }
  .steps { grid-template-columns:repeat(2,1fr); }
  .tech-banner { margin-left:6vw; margin-right:6vw; }
}

@media (max-width: 800px) {
  .nav { height:68px; }
  .logo { font-size:13px; }
  .menu { display:flex; }
  .nav nav {
    display:none;
    position:absolute;
    top:68px;
    left:0;
    right:0;
    width:100%;
    padding:10px 6vw 18px;
    flex-direction:column;
    gap:0;
    background:rgba(9,9,9,.98);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 35px rgba(0,0,0,.35);
  }
  .nav nav.is-open { display:flex; }
  .nav nav a { padding:15px 0; min-height:44px; display:flex; align-items:center; }
  .hero { min-height:92svh; padding:105px 7vw 70px; }
  .hero h1 { font-size:clamp(48px,12vw,78px); }
  .lead { font-size:16px; }
  .hero-mark { display:none; }
  .section, .dark-section { padding-top:90px; padding-bottom:90px; }
  .section-head { margin-bottom:48px; }
  .section h2 { font-size:clamp(42px,10vw,68px); }
  .service-grid, .facility-grid { grid-template-columns:1fr; }
  .service-card { min-height:220px; padding:26px; }
  .service-card h3 { margin-top:34px; font-size:23px; }
  .work-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .work-item:hover { transform:none; }
  .work-frame { aspect-ratio:4/5; }
  .steps { grid-template-columns:1fr 1fr; }
  .steps div { padding:26px; min-height:190px; }
  .steps h3 { margin-top:40px; font-size:21px; }
  .about { grid-template-columns:1fr; gap:35px; }
  .about-copy { padding-top:0; }
  .about-copy p { font-size:18px; }
  .page-hero { padding:125px 7vw 20px; }
  .page-hero h1 { font-size:clamp(42px,10vw,72px); }
  .tech-banner { margin:40px 7vw; padding:40px 7vw; }
  .tech-strip { gap:24px; padding-left:7vw; padding-right:7vw; }
  .client-logo { padding:0 30px; }
  .client-logo img { height:90px; }
  .contact-split { grid-template-columns:1fr; gap:60px; padding:120px 7vw 90px; }
  .form-row { grid-template-columns:1fr; gap:22px; }
  .field input, .field select, .field textarea { min-height:48px; font-size:16px; }
  .field textarea { min-height:150px; }
  .service-chip, .filter-btn, .btn { min-height:44px; }
  .actions, .cta-row { align-items:stretch; }
  .actions .btn, .cta-row .btn { text-align:center; }
  footer { padding:24px 7vw; flex-direction:column; align-items:flex-start; gap:14px; line-height:1.5; }
  .footer-links { flex-wrap:wrap; gap:14px 20px; }
}

@media (max-width: 540px) {
  .nav { padding:0 5vw; }
  .hero { padding-left:6vw; padding-right:6vw; }
  .hero h1 { font-size:clamp(42px,13vw,58px); line-height:.9; }
  .eyebrow { font-size:10px; letter-spacing:.18em; }
  .lead { font-size:15px; line-height:1.6; }
  .section, .dark-section, .contact-cta { padding-left:6vw; padding-right:6vw; }
  .section h2, .contact-cta h2 { font-size:clamp(38px,11vw,56px); }
  .work-grid, .steps { grid-template-columns:1fr; }
  .work-grid { gap:28px; }
  .work-meta { padding-top:13px; }
  .work-meta h3 { font-size:18px; }
  .work-frame:before { font-size:44px; }
  .service-card { min-height:205px; }
  .service-card h3 { font-size:21px; margin-top:30px; }
  .tech-banner { margin:30px 6vw; padding:30px 6vw; }
  .tech-banner h2 { font-size:clamp(28px,8vw,42px); }
  .tech-strip { padding:28px 6vw; gap:20px 28px; }
  .tech-logo { font-size:13px; }
  .client-logo { padding:0 20px; }
  .client-logo img { height:70px; }
  .clients { padding:75px 0 85px; }
  .clients-marquee { margin-top:38px; }
  .contact-split { padding-left:6vw; padding-right:6vw; }
  .contact-intro h1 { font-size:clamp(42px,12vw,58px); }
  .contact-intro .lead { font-size:15px; }
  .info-block a, .info-block p { font-size:14px; overflow-wrap:anywhere; }
  .btn { width:100%; justify-content:center; }
  .actions { width:100%; }
  .actions .btn { flex:1 1 100%; }
  .contact-cta .cta-row { gap:22px; }
}

@media (max-width: 360px) {
  .logo { font-size:11px; letter-spacing:.05em; }
  .hero { padding-top:96px; }
  .hero h1 { font-size:40px; }
  .section h2, .contact-cta h2 { font-size:36px; }
  .service-card { padding:22px; }
}

@media (hover:none) {
  .service-card:hover, .facility-card:hover, .work-item:hover, .btn:hover { transform:none; }
  .nav nav a:hover:after { width:0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
}
