
:root{--navy:#071f39;--blue:#0b63ce;--ink:#14202d;--muted:#64707d;--line:#dce3ea;--light:#f5f8fb}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);line-height:1.6}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.wrap{width:min(1180px,92%);margin:auto}header{position:fixed;z-index:50;top:0;left:0;right:0;background:rgba(5,23,42,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.12)}.nav{height:78px;display:flex;align-items:center;gap:24px}.brand img{height:58px;width:auto;filter:none}.menu{display:flex;gap:24px;margin-left:auto;align-items:center}.menu a{color:#fff;font-size:13px;font-weight:800}.lang{display:flex;gap:6px}.lang button{border:1px solid #ffffff55;background:transparent;color:#fff;border-radius:99px;padding:5px 9px;font-weight:800}.lang button.active{background:#fff;color:var(--navy)}.mobile{display:none;margin-left:auto;border:0;background:transparent;color:#fff;font-size:26px}.hero{min-height:100vh;display:flex;align-items:center;position:relative;color:#fff;background:url('assets/hero_building_v23.jpg') 42% center/cover no-repeat}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#031426f2 0%,#031426d1 45%,#03142659 72%,#03142614 100%)}.hero-content{position:relative;max-width:720px;padding:135px 0 75px}.kicker,.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:900;color:#8bc4ff}.hero h1{font-size:clamp(46px,7vw,78px);line-height:1;margin:14px 0}.hero h2{font-size:22px;margin:0 0 14px;color:#dcecff}.hero p{font-size:18px;color:#e3edf8}.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;padding:12px 18px;border-radius:9px;font-weight:900;border:1px solid transparent}.primary{background:var(--blue);color:#fff}.ghost{border-color:#ffffff88;color:#fff;background:#ffffff12}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:42px}.stat{padding:15px 16px;border:1px solid #ffffff2e;background:#ffffff14;border-radius:13px}.stat b{display:block;font-size:21px}.stat span{font-size:12px;color:#d4e2f1}section{padding:84px 0}.head{max-width:820px;margin-bottom:34px}.head h2{font-size:40px;line-height:1.15;margin:8px 0 12px;color:var(--navy)}.head p{font-size:17px;color:var(--muted)}.eyebrow{color:var(--blue)}.two,.source-grid,.supplier-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}.photo{border-radius:18px;overflow:hidden;box-shadow:0 18px 45px #071f3924;min-height:430px}.photo img{width:100%;height:100%;object-fit:cover}.checks{display:grid;gap:13px;margin-top:20px}.check{display:flex;gap:10px}.check i{font-style:normal;width:26px;height:26px;border-radius:50%;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-weight:900}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 25px #071f3912}.card img{height:210px;width:100%;object-fit:cover}.card .pad{padding:17px}.card h3{margin:0 0 7px;color:var(--navy)}.card p{font-size:14px;color:var(--muted)}.source{background:var(--light)}.source-box,.supplier-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.markets{display:flex;gap:8px;flex-wrap:wrap}.pill{background:#eef5fb;border:1px solid #d6e6f5;border-radius:999px;padding:6px 10px;font-weight:800;font-size:13px}.supplier{background:var(--navy);color:#fff}.supplier .head h2,.supplier .head p{color:#fff}.supplier-card{color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:170px;gap:10px}.gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px}.g1{grid-column:span 5;grid-row:span 2}.g2{grid-column:span 4}.g3{grid-column:span 3}.g4{grid-column:span 3}.g5{grid-column:span 4}.g6{grid-column:span 7}.g7{grid-column:span 5}.g8{grid-column:span 7}.videos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.videos video{width:100%;border-radius:14px;background:#000}.contact{background:var(--light)}.contact-card{background:var(--navy);color:#fff;border-radius:16px;padding:25px}.contact-card small{display:block;color:#a8bfd5;margin-top:12px}.contact-card b,.contact-card span{display:block}.contact-card a{text-decoration:underline}.contact-grid{grid-template-columns:.9fr 1.1fr}form{display:grid;gap:12px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:5px}.field label{font-size:13px;font-weight:800;color:var(--navy)}.field input,.field textarea,.field select{padding:12px 13px;border:1px solid #cbd5df;border-radius:9px;font:inherit}.field textarea{min-height:120px}footer{background:#06192d;color:#c7d4e1;padding:34px 0}.foot{display:flex;gap:24px;justify-content:space-between;align-items:center}.foot img{height:56px;width:auto;filter:none}.foot small{max-width:620px}@media(max-width:900px){.menu{display:none;position:absolute;top:78px;left:0;right:0;background:#06192d;padding:18px 4%;flex-direction:column;align-items:flex-start}.menu.open{display:flex}.mobile{display:block}.two,.source-grid,.supplier-grid,.contact-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.videos{grid-template-columns:1fr}.gallery{grid-template-columns:1fr;grid-auto-rows:250px}.gallery img,.g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8{grid-column:1;grid-row:auto}.foot{flex-direction:column;align-items:flex-start}}@media(max-width:560px){.cards{grid-template-columns:1fr}.row{grid-template-columns:1fr}.brand img{height:48px;max-width:220px}section{padding:64px 0}}


/* =========================
   V2.5 APPROVED HERO LAYOUT
   - Exact original building photo
   - Compact banner
   - No text over image
   - Text/content below on white
   ========================= */

header{position:fixed;z-index:50;top:0;left:0;right:0}

.hero{
  min-height:0!important;
  display:block!important;
  position:relative!important;
  color:var(--navy)!important;
  background:none!important;
  padding:78px 0 0!important;
}
.hero:before{display:none!important}

/* Banner: image itself is untouched. "contain" prevents zoom/crop. */
.hero-image{
  width:100%!important;
  height:clamp(230px,42vw,480px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:#071f39!important;
}
.hero-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  filter:none!important;
}

/* All hero text is physically below the banner. */
.hero-copy{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  background:#fff!important;
  color:var(--navy)!important;
  text-align:left!important;
}
.hero-content{
  position:relative!important;
  max-width:980px!important;
  margin:0 auto!important;
  padding:34px 0 42px!important;
}
.hero .kicker{
  color:var(--blue)!important;
  font-size:12px!important;
}
.hero h1{
  color:var(--navy)!important;
  font-size:clamp(42px,6vw,66px)!important;
  line-height:1.02!important;
  margin:8px 0 12px!important;
}
.hero h2{
  color:#313b46!important;
  font-size:22px!important;
  line-height:1.45!important;
  margin:0 0 13px!important;
}
.hero p{
  color:#4f5965!important;
  font-size:17px!important;
  max-width:850px!important;
  margin:0!important;
}
.hero .cta{
  justify-content:flex-start!important;
  margin-top:24px!important;
}
.hero .ghost{
  border-color:var(--blue)!important;
  color:var(--blue)!important;
  background:#fff!important;
}
.hero .stats{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:12px!important;
  margin-top:30px!important;
}
.hero .stat{
  padding:18px!important;
  border:1px solid #dce3ea!important;
  background:#f8fbff!important;
  border-radius:13px!important;
  color:var(--navy)!important;
}
.hero .stat b{color:var(--navy)!important}
.hero .stat span{color:var(--muted)!important}

@media(max-width:900px){
  .hero{padding-top:78px!important}
  .hero-image{height:clamp(220px,56vw,340px)!important}
  .hero-content{padding:28px 0 34px!important}
  .hero .stats{grid-template-columns:1fr!important}
}

@media(max-width:560px){
  .nav{height:78px!important}
  .hero{padding-top:78px!important}
  .hero-image{
    height:230px!important;
    background:#071f39!important;
  }
  .hero-image img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  .hero-copy{text-align:left!important}
  .hero-content{padding:24px 0 30px!important}
  .hero h1{
    font-size:38px!important;
    line-height:1.05!important;
    margin:8px 0 12px!important;
  }
  .hero h2{
    font-size:18px!important;
    line-height:1.45!important;
  }
  .hero p{
    font-size:15px!important;
    line-height:1.65!important;
  }
  .hero .cta{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .hero .btn{
    justify-content:center!important;
    text-align:center!important;
    padding:12px 9px!important;
    font-size:14px!important;
  }
  .hero .stats{
    grid-template-columns:1fr!important;
    gap:10px!important;
    margin-top:24px!important;
  }
}

.section{padding:56px 0;background:#fff}
.section.alt{background:#f7f9fc}
.section-head{max-width:820px;margin-bottom:24px}
.section-head h2,.v26-about h2{margin:8px 0 12px;color:var(--navy);font-size:clamp(28px,5vw,42px);line-height:1.15}
.section-head p,.v26-about p{color:#59636f;line-height:1.7;margin:0 0 12px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--blue)}
.chip-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.chip{border:1px solid #d9e2eb;border-radius:12px;padding:16px;background:#fff;color:var(--navy);font-weight:700;text-align:center}
.source-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.source-card,.capacity-card{background:#fff;border:1px solid #dfe6ee;border-radius:14px;padding:18px}
.source-card b,.capacity-card strong{display:block;color:var(--navy);font-size:22px;margin-bottom:6px}
.source-card span,.capacity-card span,.capacity-card small{display:block;color:#66717e}
.capacity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.capacity-card strong{font-size:30px}
.capacity-card span{font-weight:700;color:#34404c;margin-bottom:8px}
.about-grid-v26{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:start}
.about-panel-v26{display:grid;gap:12px}
.about-panel-v26>div{background:#fff;border:1px solid #dfe6ee;border-radius:14px;padding:18px}
.about-panel-v26 b{display:block;color:var(--navy);margin-bottom:6px}
.about-panel-v26 span{color:#66717e;line-height:1.55}
@media(max-width:900px){
  .chip-grid,.source-grid{grid-template-columns:repeat(2,1fr)}
  .capacity-grid{grid-template-columns:1fr}
  .about-grid-v26{grid-template-columns:1fr}
}
@media(max-width:560px){
  .section{padding:38px 0}
  .chip-grid,.source-grid{grid-template-columns:1fr 1fr}
  .chip,.source-card,.capacity-card,.about-panel-v26>div{padding:15px}
}



/* =====================================================
   V2.7 MOBILE POLISH
   Keeps approved V2.5 hero/banner unchanged.
   Fixes source section, spacing, image height and typography.
   ===================================================== */

@media(max-width:900px){
  /* tighter, more consistent vertical rhythm */
  section:not(.hero){padding:50px 0!important}
  .head{margin-bottom:24px!important}
  .head h2{font-size:34px!important;line-height:1.16!important}
  .head p{font-size:16px!important;line-height:1.65!important}

  /* about section */
  .two{gap:26px!important}
  .two .photo{min-height:0!important}
  .two .photo img{
    height:auto!important;
    max-height:420px!important;
    object-fit:cover!important;
  }

  /* product cards: less tall, more compact */
  .cards{gap:18px!important}
  .card img{
    height:220px!important;
    object-fit:cover!important;
  }
  .card .pad{padding:18px!important}

  /* SOURCE: image full width first, text full width below */
  .source-grid{
    display:flex!important;
    flex-direction:column!important;
    gap:22px!important;
  }
  .source-grid .photo{
    order:1!important;
    width:100%!important;
    min-height:0!important;
    border-radius:16px!important;
  }
  .source-grid .photo img{
    width:100%!important;
    height:280px!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  .source-grid .source-box{
    order:2!important;
    width:100%!important;
    padding:22px!important;
  }
  .source-box h2{
    font-size:32px!important;
    line-height:1.18!important;
  }
  .source-box p{
    font-size:16px!important;
    line-height:1.65!important;
  }

  /* supplier section */
  .supplier-grid{gap:22px!important}
  .supplier-card{padding:22px!important}
  .supplier-card ul{margin:0;padding-left:22px}
  .supplier-card li{margin:8px 0;line-height:1.45}

  /* practical capacity gallery: shorter images on mobile */
  .gallery{
    grid-auto-rows:auto!important;
    gap:14px!important;
  }
  .gallery img,.g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8{
    width:100%!important;
    height:260px!important;
    object-fit:cover!important;
    grid-column:1!important;
    grid-row:auto!important;
  }

  /* video and contact */
  .videos{gap:14px!important}
  .contact-grid{gap:22px!important}
}

@media(max-width:560px){
  section:not(.hero){padding:42px 0!important}

  .wrap{width:min(92%,1120px)!important}

  .head{margin-bottom:20px!important}
  .head h2{
    font-size:31px!important;
    line-height:1.16!important;
    letter-spacing:-.02em!important;
  }
  .head p{
    font-size:15px!important;
    line-height:1.65!important;
  }
  .eyebrow{
    font-size:11px!important;
    letter-spacing:.13em!important;
  }

  /* about image */
  .two{gap:22px!important}
  .two .photo img{max-height:360px!important}

  /* products */
  .cards{grid-template-columns:1fr!important}
  .card img{height:205px!important}
  .card h3{font-size:21px!important}
  .card p{font-size:15px!important;line-height:1.55!important}

  /* source section - explicitly single column */
  .source{
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  .source-grid{
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
  }
  .source-grid .photo{
    order:1!important;
    min-height:0!important;
  }
  .source-grid .photo img{
    height:225px!important;
    object-fit:cover!important;
  }
  .source-grid .source-box{
    order:2!important;
    padding:20px!important;
  }
  .source-box h2{
    font-size:29px!important;
    line-height:1.18!important;
    margin:8px 0 14px!important;
  }
  .source-box p{
    font-size:15px!important;
    line-height:1.62!important;
  }
  .markets{gap:7px!important;margin-top:16px!important}
  .pill{font-size:12px!important;padding:7px 10px!important}

  /* supplier */
  .supplier{padding-top:44px!important;padding-bottom:44px!important}
  .supplier .head h2{font-size:31px!important}
  .supplier .btn{width:100%!important;text-align:center!important;justify-content:center!important}
  .supplier-card{padding:19px!important}

  /* capacity */
  #capability{padding-top:44px!important}
  .gallery img,.g1,.g2,.g3,.g4,.g5,.g6,.g7,.g8{
    height:220px!important;
    border-radius:14px!important;
  }

  /* reduce large empty transitions */
  .source + .supplier{margin-top:0!important}
  .supplier + #capability{margin-top:0!important}

  /* keep contact legible */
  .contact-card{padding:21px!important}
}



/* =====================================================
   V2.8 SOURCE SECTION MOBILE FIX ONLY
   Supplier section and approved hero remain unchanged.
   ===================================================== */

@media(max-width:900px){
  .source-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
    align-items:stretch!important;
  }

  .source-grid .source-box{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    padding:22px!important;
    box-sizing:border-box!important;
  }

  .source-grid .photo{
    grid-column:1!important;
    grid-row:2!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    box-sizing:border-box!important;
  }

  .source-grid .photo img{
    display:block!important;
    width:100%!important;
    height:300px!important;
    max-width:100%!important;
    object-fit:cover!important;
    object-position:center!important;
    border-radius:16px!important;
  }

  .source-box h2{
    max-width:none!important;
    width:100%!important;
  }

  .source-box p{
    max-width:none!important;
    width:100%!important;
  }

  .markets{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
}

@media(max-width:560px){
  .source-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px!important;
  }

  .source-grid .source-box{
    width:100%!important;
    padding:20px!important;
  }

  .source-grid .photo{
    width:100%!important;
  }

  .source-grid .photo img{
    width:100%!important;
    height:230px!important;
    object-fit:cover!important;
  }

  .source-box h2{
    font-size:30px!important;
    line-height:1.18!important;
    margin:8px 0 14px!important;
    white-space:normal!important;
    word-break:normal!important;
  }

  .source-box p{
    font-size:15px!important;
    line-height:1.65!important;
    margin-bottom:14px!important;
  }

  .markets{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }

  .pill{
    flex:0 0 auto!important;
  }
}



/* =====================================================
   V2.9 SOURCE HTML STRUCTURE FIX
   Uses dedicated classes so old source-grid CSS cannot force 2 columns.
   ===================================================== */

.source-v29-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:stretch;
}
.source-v29-copy{
  background:#fff;
  border:1px solid #dce3ea;
  border-radius:18px;
  padding:34px;
  box-sizing:border-box;
}
.source-v29-copy h2{
  color:var(--navy);
  font-size:clamp(34px,4vw,54px);
  line-height:1.12;
  margin:10px 0 18px;
}
.source-v29-copy p{
  color:#36404b;
  font-size:17px;
  line-height:1.7;
  margin:0 0 18px;
}
.source-v29-photo{
  overflow:hidden;
  border-radius:18px;
  background:#eef3f7;
  min-height:380px;
}
.source-v29-photo img{
  width:100%;
  height:100%;
  min-height:380px;
  display:block;
  object-fit:cover;
  object-position:center;
}
.source-v29-copy .markets{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

@media(max-width:900px){
  .source-v29-inner{
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
  }
  .source-v29-copy{
    order:1!important;
    width:100%!important;
    max-width:none!important;
    padding:24px!important;
  }
  .source-v29-photo{
    order:2!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
  }
  .source-v29-photo img{
    width:100%!important;
    height:280px!important;
    min-height:0!important;
    object-fit:cover!important;
  }
}

@media(max-width:560px){
  .source-v29-inner{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
  }
  .source-v29-copy{
    padding:20px!important;
    border-radius:16px!important;
  }
  .source-v29-copy h2{
    font-size:30px!important;
    line-height:1.18!important;
    margin:8px 0 14px!important;
  }
  .source-v29-copy p{
    font-size:15px!important;
    line-height:1.65!important;
    margin-bottom:16px!important;
  }
  .source-v29-photo{
    border-radius:16px!important;
    overflow:hidden!important;
  }
  .source-v29-photo img{
    width:100%!important;
    height:230px!important;
    display:block!important;
    object-fit:cover!important;
    border-radius:16px!important;
  }
  .source-v29-copy .markets{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
}


/* ==========================================================
   V3.0 FINAL MOBILE FIX FOR SOURCE SECTION
   Completely isolated from all legacy .source/.source-grid CSS
   ========================================================== */

#source-v30{
  padding:64px 0;
  background:#f4f8fb;
}
#source-v30 .source-v30-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:28px;
  align-items:stretch;
}
#source-v30 .source-v30-copy{
  min-width:0;
  width:auto;
  background:#fff;
  border:1px solid #dce4eb;
  border-radius:18px;
  padding:34px;
  box-sizing:border-box;
}
#source-v30 .source-v30-copy h2{
  margin:10px 0 18px;
  color:#071f39;
  font-size:48px;
  line-height:1.12;
  letter-spacing:-.02em;
}
#source-v30 .source-v30-copy p{
  margin:0 0 20px;
  color:#2f3943;
  font-size:17px;
  line-height:1.7;
}
#source-v30 .source-v30-markets{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
#source-v30 .source-v30-markets span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid #d7e2ec;
  background:#eef6fc;
  color:#10283f;
  font-weight:700;
  font-size:14px;
  white-space:nowrap;
}
#source-v30 .source-v30-photo{
  min-width:0;
  overflow:hidden;
  border-radius:18px;
  background:#eaf0f5;
}
#source-v30 .source-v30-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
  object-position:center;
}

@media (max-width: 900px){
  #source-v30{
    padding:46px 0!important;
  }
  #source-v30 .source-v30-wrap{
    display:block!important;
    width:min(92%,1120px)!important;
    max-width:1120px!important;
    margin:0 auto!important;
  }
  #source-v30 .source-v30-copy{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 18px!important;
    padding:24px!important;
    box-sizing:border-box!important;
    float:none!important;
    position:static!important;
    transform:none!important;
  }
  #source-v30 .source-v30-photo{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    float:none!important;
    position:static!important;
    transform:none!important;
    overflow:hidden!important;
  }
  #source-v30 .source-v30-photo img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:300px!important;
    min-height:0!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}

@media (max-width: 560px){
  #source-v30{
    padding:38px 0!important;
  }
  #source-v30 .source-v30-wrap{
    display:block!important;
    width:92%!important;
    margin:0 auto!important;
    padding:0!important;
  }
  #source-v30 .source-v30-copy{
    width:100%!important;
    margin:0 0 14px!important;
    padding:20px!important;
    border-radius:16px!important;
  }
  #source-v30 .source-v30-copy .eyebrow{
    font-size:11px!important;
    letter-spacing:.13em!important;
  }
  #source-v30 .source-v30-copy h2{
    width:100%!important;
    max-width:none!important;
    margin:8px 0 14px!important;
    font-size:30px!important;
    line-height:1.16!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  #source-v30 .source-v30-copy p{
    width:100%!important;
    max-width:none!important;
    margin:0 0 16px!important;
    font-size:15px!important;
    line-height:1.62!important;
    white-space:normal!important;
  }
  #source-v30 .source-v30-markets{
    display:flex!important;
    width:100%!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  #source-v30 .source-v30-markets span{
    flex:0 0 auto!important;
    font-size:12px!important;
    padding:7px 10px!important;
    min-height:34px!important;
  }
  #source-v30 .source-v30-photo{
    width:100%!important;
    height:auto!important;
    border-radius:16px!important;
  }
  #source-v30 .source-v30-photo img{
    width:100%!important;
    height:230px!important;
    min-height:0!important;
    border-radius:16px!important;
    object-fit:cover!important;
  }
}


/* =========================
   V3.1 MENU + CTA
   ========================= */
html{scroll-behavior:smooth}
.mobile-menu-v31{
  position:fixed;
  top:78px;
  left:0;
  right:0;
  z-index:49;
  display:none;
  flex-direction:column;
  gap:0;
  background:#071f39;
  border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}
.mobile-menu-v31.open{display:flex}
.mobile-menu-v31 a{
  display:block;
  padding:15px 24px;
  color:#fff;
  text-decoration:none;
  font-weight:700;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu-v31 a:active{background:rgba(255,255,255,.06)}

.contact-v31{
  padding:58px 0;
  background:#fff;
}
.contact-v31-box{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:26px;
  align-items:center;
  padding:30px;
  border:1px solid #dce4eb;
  border-radius:18px;
  background:#f8fbfd;
}
.contact-v31-box h2{
  margin:8px 0 12px;
  color:#071f39;
  font-size:clamp(30px,4vw,44px);
  line-height:1.12;
}
.contact-v31-box p{
  margin:0;
  color:#59636f;
  line-height:1.65;
}
.contact-v31-actions{
  display:grid;
  gap:12px;
}
.contact-v31-actions .btn{
  width:100%;
  justify-content:center;
  text-align:center;
}
.contact-v31-note{
  grid-column:1/-1;
  color:#59636f;
  font-size:14px;
  padding-top:4px;
}

@media(max-width:900px){
  .contact-v31-box{grid-template-columns:1fr}
  .contact-v31-note{grid-column:auto}
}

@media(min-width:901px){
  .mobile-menu-v31{display:none!important}
}

@media(max-width:560px){
  .mobile-menu-v31{top:78px}
  .contact-v31{padding:42px 0}
  .contact-v31-box{padding:20px;border-radius:16px}
  .contact-v31-actions{grid-template-columns:1fr}
}


/* V3.2 MOBILE MENU OVERLAY */
body.menu-open-v32{overflow:hidden!important}

.mobile-menu-overlay-v32{
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  background:rgba(2,18,34,.56)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .22s ease,visibility .22s ease!important;
}
.mobile-menu-overlay-v32.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.mobile-menu-panel-v32{
  position:absolute!important;
  top:0!important;
  right:0!important;
  width:min(88vw,390px)!important;
  height:100%!important;
  background:#071f39!important;
  box-shadow:-18px 0 40px rgba(0,0,0,.24)!important;
  transform:translateX(100%)!important;
  transition:transform .26s ease!important;
  padding:28px 24px 26px!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
}
.mobile-menu-overlay-v32.open .mobile-menu-panel-v32{transform:translateX(0)!important}
.menu-close-v32{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-left:auto!important;
  width:46px!important;
  height:46px!important;
  border:1px solid rgba(255,255,255,.24)!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#fff!important;
  font-size:34px!important;
  line-height:1!important;
}
.mobile-menu-v32{
  display:flex!important;
  flex-direction:column!important;
  margin-top:26px!important;
}
.mobile-menu-v32 a{
  display:block!important;
  padding:16px 2px!important;
  color:#fff!important;
  text-decoration:none!important;
  font-size:18px!important;
  font-weight:800!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
}
.mobile-lang-v32{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin-top:28px!important;
}
.mobile-lang-v32 button{
  min-width:54px!important;
  height:44px!important;
  padding:0 14px!important;
  border-radius:999px!important;
  border:1px solid rgba(255,255,255,.28)!important;
  background:transparent!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:800!important;
}
.mobile-lang-v32 button.active{
  background:#fff!important;
  color:#071f39!important;
}
@media(min-width:901px){
  .mobile-menu-overlay-v32{display:none!important}
}


/* ==============================
   V3.3 FINAL MOBILE MENU OVERLAY
   unique ids/classes, isolated
   ============================== */
body.v33-menu-open{overflow:hidden!important; touch-action:none!important;}

#mobileMenuOverlayV33{
  position:fixed;
  inset:0;
  z-index:2147483000;
  background:rgba(0,15,30,.62);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}
#mobileMenuOverlayV33.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.mobile-menu-drawer-v33{
  position:absolute;
  top:0;
  right:0;
  width:min(88vw,390px);
  height:100dvh;
  padding:24px;
  box-sizing:border-box;
  background:#071f39;
  box-shadow:-18px 0 45px rgba(0,0,0,.28);
  transform:translate3d(100%,0,0);
  transition:transform .24s ease;
  overflow-y:auto;
}
#mobileMenuOverlayV33.open .mobile-menu-drawer-v33{
  transform:translate3d(0,0,0);
}
.menu-close-v33{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-left:auto;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:transparent;
  color:#fff;
  font-size:34px;
  line-height:1;
}
.mobile-menu-links-v33{
  display:flex;
  flex-direction:column;
  margin-top:24px;
}
.mobile-menu-links-v33 a{
  display:block;
  padding:16px 2px;
  color:#fff;
  text-decoration:none;
  font-size:18px;
  font-weight:800;
  border-bottom:1px solid rgba(255,255,255,.11);
}
.mobile-menu-lang-v33{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:28px;
}
.mobile-menu-lang-v33 button{
  min-width:54px;
  height:44px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:16px;
  font-weight:800;
}
.mobile-menu-lang-v33 button.active{
  background:#fff;
  color:#071f39;
}
@media(min-width:901px){
  #mobileMenuOverlayV33{display:none!important;}
}


/* =========================
   V3.4 CLEAN MOBILE MENU
   ========================= */
body.v34-menu-open{
  overflow:hidden!important;
}

.menu-toggle-v34{
  margin-left:auto!important;
  width:48px!important;
  height:48px!important;
  padding:8px!important;
  border:0!important;
  background:transparent!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:6px!important;
  position:relative!important;
  z-index:100!important;
}
.menu-toggle-v34 span{
  display:block!important;
  width:34px!important;
  height:3px!important;
  background:#fff!important;
  border-radius:2px!important;
}

#menuOverlayV34{
  position:fixed;
  inset:0;
  z-index:2147483646;
  background:rgba(2,17,31,.62);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}
#menuOverlayV34.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.menu-drawer-v34{
  position:absolute;
  top:0;
  right:0;
  width:min(88vw,390px);
  height:100dvh;
  padding:24px;
  box-sizing:border-box;
  background:#071f39;
  box-shadow:-18px 0 40px rgba(0,0,0,.3);
  transform:translateX(100%);
  transition:transform .24s ease;
  overflow-y:auto;
}
#menuOverlayV34.is-open .menu-drawer-v34{
  transform:translateX(0);
}
.menu-head-v34{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.menu-brand-v34{
  color:#fff;
  font-weight:800;
  letter-spacing:.06em;
  font-size:14px;
}
.menu-close-v34{
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:transparent;
  color:#fff;
  font-size:32px;
  line-height:1;
}
.menu-links-v34{
  display:flex;
  flex-direction:column;
}
.menu-links-v34 a{
  display:block;
  padding:16px 0;
  color:#fff;
  text-decoration:none;
  font-size:18px;
  font-weight:800;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.menu-langs-v34{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:28px;
}
.menu-langs-v34 button{
  min-width:54px;
  height:44px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:16px;
  font-weight:800;
}
.menu-langs-v34 button.active{
  background:#fff;
  color:#071f39;
}

@media(min-width:901px){
  .menu-toggle-v34{display:none!important;}
  #menuOverlayV34{display:none!important;}
}


/* =========================
   V3.5 SINGLE MENU BUTTON
   ========================= */

/* Hide every legacy menu trigger from earlier versions */
#menuToggle,
#menuToggleV34,
.menu-toggle,
.menu-toggle-v34,
.hamburger,
.hamburger-menu,
.menu-btn,
.mobile-menu-toggle{
  display:none!important;
}

.menu-toggle-v35{
  margin-left:auto!important;
  width:48px!important;
  height:48px!important;
  padding:8px!important;
  border:0!important;
  background:transparent!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:6px!important;
  position:relative!important;
  z-index:100!important;
  flex:0 0 auto!important;
}
.menu-toggle-v35 span{
  display:block!important;
  width:34px!important;
  height:3px!important;
  background:#fff!important;
  border-radius:2px!important;
}

body.v35-menu-open{overflow:hidden!important;}

#menuOverlayV35{
  position:fixed;
  inset:0;
  z-index:2147483646;
  background:rgba(2,17,31,.62);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease, visibility .2s ease;
}
#menuOverlayV35.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.menu-drawer-v35{
  position:absolute;
  top:0;
  right:0;
  width:min(88vw,390px);
  height:100dvh;
  padding:24px;
  box-sizing:border-box;
  background:#071f39;
  box-shadow:-18px 0 40px rgba(0,0,0,.3);
  transform:translateX(100%);
  transition:transform .24s ease;
  overflow-y:auto;
}
#menuOverlayV35.is-open .menu-drawer-v35{transform:translateX(0);}
.menu-head-v35{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;}
.menu-brand-v35{color:#fff;font-weight:800;letter-spacing:.06em;font-size:14px;}
.menu-close-v35{
  width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:50%;
  background:transparent;color:#fff;font-size:32px;line-height:1;
}
.menu-links-v35{display:flex;flex-direction:column;}
.menu-links-v35 a{
  display:block;padding:16px 0;color:#fff;text-decoration:none;font-size:18px;font-weight:800;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.menu-langs-v35{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;}
.menu-langs-v35 button{
  min-width:54px;height:44px;padding:0 14px;border:1px solid rgba(255,255,255,.28);
  border-radius:999px;background:transparent;color:#fff;font-size:16px;font-weight:800;
}
.menu-langs-v35 button.active{background:#fff;color:#071f39;}

@media(min-width:901px){
  .menu-toggle-v35{display:none!important;}
  #menuOverlayV35{display:none!important;}
}


/* =========================
   V3.6 COMPACT MOBILE HEADER
   ========================= */
@media(max-width:900px){

  header,
  .site-header,
  .header,
  .topbar,
  .header-inner{
    min-height:0!important;
  }

  header{
    height:92px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    display:flex!important;
    align-items:center!important;
  }

  header .container,
  header .header-inner,
  .site-header .container,
  .site-header .header-inner{
    min-height:92px!important;
    height:92px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    display:flex!important;
    align-items:center!important;
  }

  header img,
  .site-header img,
  .brand img,
  .logo img{
    max-height:48px!important;
    width:auto!important;
  }

  #menuToggleV35,
  .menu-toggle-v35{
    width:46px!important;
    height:46px!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }

  /* Remove accidental extra vertical space between header and hero */
  header + section,
  header + .hero,
  .site-header + section,
  .site-header + .hero{
    margin-top:0!important;
  }

  .hero,
  .hero-media,
  .hero-image,
  .hero-visual{
    margin-top:0!important;
  }
}


/* =========================
   V3.7 HEADER BALANCE
   ========================= */
@media(max-width:900px){

  header{
    height:72px!important;
  }

  header .container,
  header .header-inner,
  .site-header .container,
  .site-header .header-inner{
    min-height:72px!important;
    height:72px!important;
  }

  header img,
  .site-header img,
  .brand img,
  .logo img{
    max-height:52px!important;
    width:auto!important;
  }

  #menuToggleV35,
  .menu-toggle-v35{
    width:40px!important;
    height:40px!important;
    padding:6px!important;
  }

  .menu-toggle-v35 span{
    width:30px!important;
    height:3px!important;
  }
}


/* =========================
   V3.8 REMOVE HEADER/HERO GAP
   ========================= */
@media(max-width:900px){
  header,
  .site-header,
  .header,
  .topbar{
    margin-bottom:0!important;
    border-bottom:0!important;
  }

  header + *,
  .site-header + *,
  .header + *,
  .topbar + *{
    margin-top:0!important;
  }

  .hero,
  .hero-media,
  .hero-image,
  .hero-visual,
  .hero-banner,
  .hero-wrap{
    margin-top:0!important;
    padding-top:0!important;
    border-top:0!important;
  }

  .hero img,
  .hero-media img,
  .hero-image img,
  .hero-visual img,
  .hero-banner img{
    display:block!important;
    margin-top:0!important;
    vertical-align:top!important;
  }
}


/* =========================
   V3.9 FULL HERO IMAGE ON MOBILE
   ========================= */
@media(max-width:900px){

  /* Keep header touching hero with no white gap */
  header,
  .site-header,
  .header,
  .topbar{
    margin-bottom:0!important;
    border-bottom:0!important;
  }

  /* Do not crop the building image */
  .hero,
  .hero-media,
  .hero-image,
  .hero-visual,
  .hero-banner,
  .hero-wrap{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin-top:0!important;
    padding-top:0!important;
  }

  .hero img,
  .hero-media img,
  .hero-image img,
  .hero-visual img,
  .hero-banner img,
  .hero-wrap img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center top!important;
    margin:0!important;
    transform:none!important;
  }
}


/* =========================
   V4.0 HOMEPAGE CONTENT
   ========================= */
.section-products,.section-videos{background:#f5f8fb}
.section-about,.section-capability,.section-gallery,.why-v40{background:#fff}

.product-grid-v40{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px
}
.product-card-v40{
  background:#fff;border:1px solid #e1e8ef;border-radius:18px;overflow:hidden;
  box-shadow:0 10px 30px rgba(11,35,59,.06)
}
.product-card-v40 img{width:100%;height:210px;object-fit:cover;display:block}
.product-card-v40 .pad{padding:20px}
.product-card-v40 h3{margin:0 0 10px;color:#0b2239;font-size:22px}
.product-card-v40 p{margin:0 0 14px;color:#586474;line-height:1.65}
.product-card-v40 span{display:inline-block;color:#0b6ecb;font-weight:700;font-size:13px;letter-spacing:.02em}

.notice-v40{
  margin-top:22px;padding:18px 20px;border-radius:14px;
  background:#eef6fd;border:1px solid #d4e8f8;color:#31465a;line-height:1.65
}
.notice-v40 strong{color:#0b2239}

.source-v40{background:#f5f8fb}
.source-v40-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
.source-v40-copy h2{font-size:42px;margin:10px 0 16px;color:#0b2239}
.source-v40-copy p{font-size:18px;line-height:1.7;color:#485767}
.source-v40-markets{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.source-v40-markets span{
  border:1px solid #d6e2ec;background:#fff;border-radius:999px;padding:10px 15px;font-weight:750;color:#15304b
}
.source-v40-photo img{width:100%;display:block;border-radius:22px;box-shadow:0 18px 42px rgba(8,30,52,.12)}

.cap-grid-v40{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px
}
.cap-grid-v40 article{
  border:1px solid #dfe7ee;background:#f8fafc;border-radius:18px;padding:22px
}
.cap-grid-v40 article>b{color:#0b70cf;font-size:13px;letter-spacing:.14em}
.cap-grid-v40 h3{margin:12px 0 8px;color:#0b2239}
.cap-grid-v40 p{margin:0;color:#5a6876;line-height:1.65}

.why-v40{border-top:1px solid #edf1f5}
.why-grid-v40{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px
}
.why-grid-v40>div{
  border-left:4px solid #0b70cf;background:#f7fafc;border-radius:0 16px 16px 0;padding:22px 24px
}
.why-grid-v40 h3{margin:0 0 8px;color:#0b2239;font-size:21px}
.why-grid-v40 p{margin:0;color:#596777;line-height:1.7}

.section-gallery .gallery{margin-top:28px}
.section-videos .videos{margin-top:26px}
.contact .head>p{max-width:780px;color:#5a6876;line-height:1.7}

@media(max-width:900px){
  .product-grid-v40{grid-template-columns:1fr;gap:16px;margin-top:20px}
  .product-card-v40 img{height:220px}
  .product-card-v40 .pad{padding:18px}
  .product-card-v40 h3{font-size:21px}
  .source-v40-wrap{display:block}
  .source-v40-copy h2{font-size:34px;line-height:1.15}
  .source-v40-copy p{font-size:17px}
  .source-v40-photo{margin-top:20px}
  .source-v40-photo img{border-radius:18px}
  .cap-grid-v40{grid-template-columns:1fr;gap:12px}
  .cap-grid-v40 article{padding:20px}
  .why-grid-v40{grid-template-columns:1fr;gap:12px}
  .why-grid-v40>div{padding:20px}
  .notice-v40{font-size:15px}
}


/* =========================
   V4.1 MOBILE OPTIMIZATION
   ========================= */

.cta-v41{
  background:#082640;
  color:#fff;
}
.cta-v41-inner{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:28px;
  align-items:center;
}
.cta-v41 .eyebrow{color:#55a7ee}
.cta-v41 h2{margin:8px 0 12px;font-size:38px;line-height:1.15}
.cta-v41 p{margin:0;max-width:760px;color:#d6e1ea;line-height:1.7}
.cta-v41-actions{display:flex;gap:12px;flex-direction:column}
.cta-v41 .btn.ghost{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.45)
}

.more-videos-v41{margin-top:16px}
.more-videos-v41 summary{
  list-style:none;
  cursor:pointer;
  border:1px solid #d7e3ed;
  border-radius:14px;
  background:#fff;
  padding:15px 18px;
  font-weight:800;
  color:#0b2239;
}
.more-videos-v41 summary::-webkit-details-marker{display:none}
.more-videos-v41 summary:after{content:"＋";float:right;color:#0b70cf}
.more-videos-v41[open] summary:after{content:"－"}
.more-video-grid-v41{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:16px
}

@media(max-width:900px){
  /* Reduce overall section height without changing content */
  section{padding-top:52px!important;padding-bottom:52px!important}
  .hero{padding-top:0!important;padding-bottom:0!important}

  .head h2,
  .source-v40-copy h2,
  .why-v40 .head h2,
  .section-gallery .head h2,
  .section-videos .head h2,
  .contact .head h2{
    font-size:33px!important;
    line-height:1.14!important;
  }

  .section-about .head h2{
    font-size:34px!important;
    line-height:1.12!important;
  }

  .stats{
    gap:10px!important;
  }
  .stat{
    padding:24px 22px!important;
    min-height:0!important;
  }
  .stat strong{
    font-size:30px!important;
  }

  .checks{gap:10px!important}
  .check{
    padding:2px 0!important;
    line-height:1.5!important;
  }

  /* Product cards: much shorter on mobile */
  .product-grid-v40{
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
  }
  .product-card-v40{
    border-radius:14px!important;
  }
  .product-card-v40 img{
    height:132px!important;
  }
  .product-card-v40 .pad{
    padding:14px!important;
  }
  .product-card-v40 h3{
    font-size:17px!important;
    line-height:1.25!important;
  }
  .product-card-v40 p{
    font-size:14px!important;
    line-height:1.5!important;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .product-card-v40 span{
    font-size:11px!important;
    line-height:1.35!important;
  }

  .source-v40-markets{
    gap:8px!important;
  }
  .source-v40-markets span{
    padding:8px 12px!important;
    font-size:14px!important;
  }

  .supplier-card{
    padding:18px!important;
  }

  .cap-grid-v40{
    grid-template-columns:1fr 1fr!important;
  }
  .cap-grid-v40 article{
    padding:16px!important;
  }
  .cap-grid-v40 h3{
    font-size:18px!important;
  }
  .cap-grid-v40 p{
    font-size:14px!important;
    line-height:1.5!important;
  }

  .why-grid-v40{
    grid-template-columns:1fr 1fr!important;
  }
  .why-grid-v40>div{
    padding:16px!important;
  }
  .why-grid-v40 h3{
    font-size:17px!important;
  }
  .why-grid-v40 p{
    font-size:14px!important;
    line-height:1.5!important;
  }

  /* Gallery becomes compact 2-column grid */
  .compact-gallery-v41 .gallery{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .compact-gallery-v41 .gallery img{
    width:100%!important;
    height:150px!important;
    object-fit:cover!important;
    border-radius:12px!important;
    margin:0!important;
  }

  /* Only one video is visible by default */
  .videos-v41{
    display:block!important;
  }
  .featured-video-v41{
    width:100%!important;
    max-height:420px!important;
    object-fit:cover!important;
    border-radius:16px!important;
  }
  .more-video-grid-v41{
    grid-template-columns:1fr!important;
  }
  .more-video-grid-v41 video{
    width:100%!important;
    max-height:360px!important;
    border-radius:14px!important;
  }

  .cta-v41-inner{
    display:block!important;
  }
  .cta-v41 h2{
    font-size:31px!important;
  }
  .cta-v41-actions{
    margin-top:22px!important;
    flex-direction:row!important;
  }
  .cta-v41-actions .btn{
    flex:1!important;
    min-width:0!important;
    padding:14px 10px!important;
    font-size:14px!important;
  }

  .contact-grid{
    gap:18px!important;
  }
  .contact-card{
    padding:24px!important;
  }

  footer{
    padding-top:32px!important;
    padding-bottom:32px!important;
  }
}

@media(max-width:430px){
  .product-grid-v40{
    grid-template-columns:1fr 1fr!important;
  }
  .product-card-v40 img{
    height:118px!important;
  }
  .cap-grid-v40,
  .why-grid-v40{
    grid-template-columns:1fr 1fr!important;
  }
  .compact-gallery-v41 .gallery img{
    height:132px!important;
  }
}


/* V1.2 FINAL QA: accessibility, keyboard focus, stable media */
:focus-visible{outline:3px solid #69b8ff;outline-offset:3px}
.btn,button,a,summary{touch-action:manipulation}
img{max-width:100%}
video{display:block}
.field input:focus,.field textarea:focus,.field select:focus{border-color:#0b70cf;box-shadow:0 0 0 3px rgba(11,112,207,.12);outline:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{animation:none!important;transition:none!important}}

.b2b-note-final{max-width:1120px;margin:18px auto 0;padding:16px 18px;border:1px solid #d9e5ef;background:#f8fbfd;border-radius:14px;color:#435466;line-height:1.65}
.b2b-note-final strong{color:#0b2239}
@media(max-width:900px){.b2b-note-final{width:92%;box-sizing:border-box;margin-top:14px}}
