 :root{
    --accent:#4d7fc4;
    --dark:#0b0d10;
    --nav-h:78px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{height:100%;}
  body{
    font-family:'Helvetica Neue', Arial, sans-serif;
    
    color:#fff;
    overflow-x:hidden;
  }

  /* ============ HERO SLIDER (Swiper) ============ */
  .hero-slider{
    position:relative;
    width:100%;
    height:100vh;
    min-height:560px;
    background:#000;
  }
  .hero-slider .swiper-slide{
    position:relative;
    display:block;
    overflow:hidden;
    background:linear-gradient(160deg,#2b2f36,#111318 70%);
  }
  .slide-video{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    z-index:0;
  }
  .slide-video-placeholder{
    position:absolute; inset:0;
    background:
      repeating-linear-gradient(115deg, #23262c 0 2px, #1a1c20 2px 46px),
      linear-gradient(160deg,#2b2f36,#111318 70%);
  }
  .slide-scrim{
    position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.15) 42%, rgba(0,0,0,.55) 100%);
    z-index:1;
  }
  .slide-copy{
    position:absolute;
    left:5vw; right:5vw;
    bottom:14%;
    z-index:2;
    max-width:820px;
  }
  .slide-copy h1{
    font-size:clamp(34px,6vw,76px);
    line-height:1;
    letter-spacing:-1px;
    font-weight:700;
    color:rgba(255,255,255,.92);
  }
  .slide-copy .slide-sub{
    margin-top:18px;
    font-size:clamp(15px,2vw,20px);
    color:rgba(255,255,255,.72);
    font-weight:400;
  }
  .slide-cta{
    display:inline-block;
    margin-top:30px;
    padding:15px 46px;
    border:1.5px solid rgba(255,255,255,.8);
    color:#fff;
    text-decoration:none;
    font-size:14px;
    letter-spacing:.06em;
    transition:background .25s ease, color .25s ease;
  }
  .slide-cta:hover{ background:#fff; color:var(--dark); }

  .hero-slider .swiper-button-prev,
  .hero-slider .swiper-button-next{
    color:#fff;
    width:44px; height:44px;
    top:52%;
    opacity:.7;
    transition:opacity .2s ease;
  }
  .hero-slider .swiper-button-prev:hover,
  .hero-slider .swiper-button-next:hover{ opacity:1; }
  .hero-slider .swiper-button-prev:after,
  .hero-slider .swiper-button-next:after{ font-size:22px; }
  .hero-slider .swiper-button-prev{ left:3vw; }
  .hero-slider .swiper-button-next{ right:3vw; }

  .hero-slider .swiper-pagination{
    bottom:6% !important;
    display:flex; justify-content:center; gap:10px;
  }
  .hero-slider .swiper-pagination-bullet{
    width:26px; height:3px;
    border-radius:0;
    background:rgba(255,255,255,.4);
    opacity:1;
    transition:background .25s ease;
  }
  .hero-slider .swiper-pagination-bullet-active{ background:#fff; }

  
  /* ============ NEW PRODUCTS ============ */
  .products-sec{ position:relative; padding:90px 5vw 100px; overflow:hidden; }
  .products-bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    background-color:#fff;
    background-attachment:fixed;
  
  }
  .products-scrim{ position:absolute; inset:0; background:#fff; }
  .products-inner{ position:relative; z-index:2; max-width:1320px; margin:0 auto; }
  .products-heading{
    margin:0 0 56px; text-align:center; color:#111318;
    font-size:clamp(28px,4vw,46px); font-weight:800; letter-spacing:.01em;
    opacity:0; transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .products-sec.in-view .products-heading{ opacity:1; transform:translateY(0); }
  .products-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; }
  .product-card{
    opacity:0; transform:translateY(50px);
    transition:opacity .65s ease, transform .65s ease;
  }
  .products-sec.in-view .product-card{ opacity:1; transform:translateY(0); }
  .products-sec.in-view .product-card:nth-child(1){ transition-delay:.1s; }
  .products-sec.in-view .product-card:nth-child(2){ transition-delay:.25s; }
  .products-sec.in-view .product-card:nth-child(3){ transition-delay:.4s; }
  .product-link{
    position:relative; display:block; height:440px; overflow:hidden;
    text-decoration:none; box-shadow:0 16px 36px rgba(0,0,0,.28);
  }
  .product-media{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    background-color:#22242a;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,.05) 0 2px, transparent 2px 46px),
      linear-gradient(160deg,#2b2f36,#111318 70%);
    transform:scale(1);
    transition:transform .6s ease;
  }
  .product-card:hover .product-media{ transform:scale(1.08); }
  .product-overlay{
    position:absolute; left:0; right:0; bottom:0;
    padding:28px 26px 26px;
    background:linear-gradient(0deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.15) 75%, rgba(0,0,0,0) 100%);
    display:flex; flex-direction:column; gap:10px;
    transform:translateY(100%);
    transition:transform .45s cubic-bezier(.22,.61,.36,1);
  }
  .product-card:hover .product-overlay,
  .product-card:focus-within .product-overlay{ transform:translateY(0); }
  .product-name{
    color:#fff; font-size:26px; font-weight:800; font-style:italic;
    letter-spacing:-.5px; transform:skewX(-4deg);
  }
  .product-cta{
    display:inline-flex; align-items:center; gap:8px; width:fit-content;
    color:rgba(255,255,255,.9); font-size:13px; letter-spacing:.05em; text-transform:uppercase;
    padding-bottom:2px; border-bottom:1px solid rgba(255,255,255,.4);
    transition:border-color .25s ease, gap .25s ease;
  }
  .product-cta svg{ width:14px; height:14px; stroke:#fff; fill:none; stroke-width:2; transition:transform .25s ease; }
  .product-card:hover .product-cta{ border-color:rgba(255,255,255,.9); }
  .product-card:hover .product-cta svg{ transform:translateX(4px); }

  @media (max-width:960px){
    .products-grid{ grid-template-columns:1fr; }
    .products-bg{ background-attachment:scroll; }
    .product-link{ height:320px; }
    .product-overlay{ transform:translateY(0); background:linear-gradient(0deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.1) 80%); }
  }

  /* ============ CONTACT CTA ============ */
  .cta-sec{ position:relative; height:72vh; min-height:480px; overflow:hidden; }
  .cta-bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    background-color:#1a1c20;
    background-image:
      repeating-linear-gradient(115deg, rgba(255,255,255,.03) 0 2px, transparent 2px 46px),
      linear-gradient(160deg,#2b2f36,#111318 70%);
  }
  .cta-scrim{
    position:absolute; inset:0;
    background:linear-gradient(100deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.15) 48%, rgba(0,0,0,.05) 100%);
  }
  .cta-content{
    position:relative; z-index:2; height:100%;
    display:flex; flex-direction:column; justify-content:center;
    max-width:620px; padding:0 6vw;
  }
  .cta-heading{
    margin:0; color:#fff; font-size:clamp(28px,4vw,44px); font-weight:700; letter-spacing:-.5px;
    opacity:0; transform:translateY(26px);
    transition:opacity .6s ease .1s, transform .6s ease .1s;
  }
  .cta-sub{
    margin:18px 0 0; color:rgba(255,255,255,.82);
    font-size:clamp(14px,1.5vw,17px); line-height:1.6; max-width:480px;
    opacity:0; transform:translateY(26px);
    transition:opacity .6s ease .25s, transform .6s ease .25s;
  }
  .cta-btn{
    position:relative; align-self:flex-start; margin-top:30px; padding:14px 36px;
    border:1.5px solid rgba(255,255,255,.85); color:#fff; text-decoration:none;
    font-size:14px; letter-spacing:.03em; overflow:hidden;
    opacity:0; transform:translateY(26px);
    transition:opacity .6s ease .4s, transform .6s ease .4s, color .3s ease;
  }
  .cta-btn span{ position:relative; z-index:1; }
  .cta-btn::before{
    content:""; position:absolute; inset:0; background:#fff;
    transform:scaleX(0); transform-origin:left center; transition:transform .35s ease;
  }
  .cta-btn:hover{ color:#111; }
  .cta-btn:hover::before{ transform:scaleX(1); }
  .cta-sec.in-view .cta-heading,
  .cta-sec.in-view .cta-sub,
  .cta-sec.in-view .cta-btn{ opacity:1; transform:translateY(0); }

  @media (max-width:760px){
    .cta-sec{ height:auto; min-height:440px; padding:70px 0; }
  }
