/* ================================================= */
/* RESET */
/* ================================================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{

  background:#fdfbf8;

  color:#111;

  font-family:'Manrope',sans-serif;

  overflow-x:hidden;

  cursor:none;
}

/* ================================================= */

img{
  width:100%;
  display:block;
}

.container{
  width:min(1400px,90%);
  margin:auto;
}

h1,h2,h3{

  font-family:'Cormorant Garamond',serif;

  font-weight:400;

  line-height:.95;

  letter-spacing:-2px;
}

/* ================================================= */
/* PARTICLES */
/* ================================================= */

#particles-js{

  position:fixed;
  inset:0;

  z-index:-10;
}

/* ================================================= */
/* CURSOR */
/* ================================================= */

.cursor{

  width:18px;
  height:18px;

  border:
  1px solid rgba(214,176,123,.6);

  border-radius:50%;

  position:fixed;

  pointer-events:none;

  z-index:99999;

  backdrop-filter:blur(5px);
}

/* ================================================= */
/* NAVBAR */
/* ================================================= */

.navbar{

  position:fixed;

  top:0;
  left:0;

  width:100%;

  z-index:1000;

  padding:2rem 0;

  transition:.4s ease;
}

.nav-content{

  display:flex;

  align-items:center;

  justify-content:space-between;
}

.logo{

  font-size:1.2rem;

  font-weight:700;

  letter-spacing:4px;

  text-transform:uppercase;
}

.nav-menu{

  display:flex;

  gap:3rem;
}

.nav-menu a{

  text-decoration:none;

  color:#111;

  font-size:.78rem;

  text-transform:uppercase;

  letter-spacing:2px;

  position:relative;
}

.nav-menu a::after{

  content:'';

  position:absolute;

  left:0;
  bottom:-8px;

  width:0%;
  height:1px;

  background:#d6b07b;

  transition:.5s;
}

.nav-menu a:hover::after,
.nav-menu .active::after{

  width:100%;
}

/* ================================================= */
/* MOBILE MENU */
/* ================================================= */

.menu-toggle{

  display:none;

  flex-direction:column;

  gap:6px;

  cursor:pointer;
}

.menu-toggle span{

  width:28px;
  height:1px;

  background:#111;
}

/* ================================================= */
/* MENU TOGGLE ANIMATION */
/* ================================================= */

.menu-toggle{
  position:relative;
  z-index:2000;
}

.menu-toggle span{
  transition:.4s ease;
}

/* TOP LINE */

.menu-toggle.active span:nth-child(1){

  transform:
  rotate(45deg)
  translate(5px,5px);
}

/* MIDDLE LINE */

.menu-toggle.active span:nth-child(2){

  opacity:0;
}

/* BOTTOM LINE */

.menu-toggle.active span:nth-child(3){

  transform:
  rotate(-45deg)
  translate(5px,-5px);
}

/* ================================================= */
/* HERO */
/* ================================================= */

.hero{

  min-height:100vh;

  display:grid;

  grid-template-columns:1fr 1fr;

  align-items:center;

  gap:4rem;

  padding:
  8rem
  8%
  5rem;

  position:relative;

  overflow:hidden;
}

/* VIDEO */

.hero-video{

  position:absolute;
  inset:0;

  width:100%;
  height:100%;

  object-fit:cover;

  opacity:.07;

  z-index:-3;
}

/* OVERLAY */

.hero-overlay{

  position:absolute;
  inset:0;

  background:
  linear-gradient(
    to right,
    rgba(253,251,248,.96),
    rgba(253,251,248,.82)
  );

  z-index:-2;
}

/* LEFT */

.mini-title{

  font-size:.7rem;

  letter-spacing:5px;

  text-transform:uppercase;

  color:#c59d67;
}

.hero h1{

  font-size:clamp(4rem,7vw,7rem);

  max-width:620px;

  margin-top:1.5rem;
}

.hero p{

  margin-top:2rem;

  max-width:500px;

  line-height:1.9;

  color:#666;

  font-size:1.05rem;
}

/* BUTTONS */

.hero-buttons{

  display:flex;

  gap:1rem;

  margin-top:2.5rem;
}

.btn-dark,
.btn-light{

  padding:
  1rem
  2.2rem;

  border:none;

  cursor:pointer;

  font-size:.72rem;

  letter-spacing:2px;

  text-transform:uppercase;

  transition:.5s ease;
}

.btn-dark{

  background:#111;
  color:white;
}

.btn-dark:hover{

  transform:translateY(-5px);

  box-shadow:
  0 20px 50px rgba(0,0,0,.12);
}

.btn-light{

  background:transparent;

  border:
  1px solid rgba(0,0,0,.08);
}

.btn-light:hover{

  background:#111;
  color:white;
}

/* ================================================= */
/* HERO RIGHT */
/* ================================================= */

.hero-right{

  position:relative;

  height:750px;

  display:flex;

  align-items:center;

  justify-content:center;
}

/* PHONE */

.phone{

  width:330px;
  height:670px;

  background:#111;

  border-radius:42px;

  padding:12px;

  box-shadow:
  0 40px 100px rgba(0,0,0,.15);

  transform:
  rotateY(-10deg)
  rotateX(5deg);

  transition:1s cubic-bezier(0.22,1,0.36,1);

  z-index:2;
}

.phone:hover{

  transform:
  rotateY(0deg)
  rotateX(0deg)
  translateY(-10px);
}

.phone-screen{

  width:100%;
  height:100%;

  overflow:hidden;

  border-radius:32px;

  position:relative;
}

.phone-screen img{

  width:100%;
  height:100%;

  object-fit:cover;

  transition:1.5s;
}

.phone:hover img{

  transform:scale(1.06);
}

/* OVERLAY */

.phone-overlay{

  position:absolute;
  inset:0;

  background:
  linear-gradient(
    to top,
    rgba(0,0,0,.8),
    rgba(0,0,0,.1)
  );

  display:flex;

  flex-direction:column;

  justify-content:flex-end;

  padding:2rem;

  color:white;
}

.phone-overlay span{

  font-size:.7rem;

  letter-spacing:4px;

  text-transform:uppercase;
}

.phone-overlay h3{

  margin-top:1rem;

  font-size:3rem;
}

.phone-overlay p{

  margin-top:1rem;

  color:white;
}

/* ================================================= */
/* COUNTDOWN */
/* ================================================= */

.countdown{

  display:grid;

  grid-template-columns:
  repeat(4,1fr);

  gap:.55rem;

  margin-top:2rem;
}

.countdown div{

  background:
  rgba(255,255,255,.10);

  border:
  1px solid rgba(255,255,255,.08);

  backdrop-filter:blur(10px);

  border-radius:18px;

  padding:
  .8rem
  .3rem;

  text-align:center;

  transition:.5s ease;
}

.countdown div:hover{

  transform:
  translateY(-4px);

  background:
  rgba(255,255,255,.16);
}

.countdown strong{

  display:block;

  font-size:1rem;

  font-weight:700;

  line-height:1;
}

.countdown small{

  display:block;

  margin-top:.35rem;

  font-size:.52rem;

  letter-spacing:1.5px;

  text-transform:uppercase;

  opacity:.8;
}

/* ================================================= */
/* FLOATING CARD */
/* ================================================= */

.floating-card{

  position:absolute;

  top:80px;
  right:-60px;

  width:220px;

  background:
  rgba(255,255,255,.72);

  backdrop-filter:blur(20px);

  border:
  1px solid rgba(255,255,255,.5);

  border-radius:30px;

  overflow:hidden;

  box-shadow:
  0 30px 80px rgba(0,0,0,.08);

  z-index:3;

  transform:
  rotate(6deg);

  transition:
  1s cubic-bezier(0.22,1,0.36,1);
}

.floating-card:hover{

  transform:
  rotate(2deg)
  translateY(-10px);

  box-shadow:
  0 40px 100px rgba(0,0,0,.12);
}

.floating-card img{

  width:100%;
  height:160px;

  object-fit:cover;

  transition:1.2s ease;
}

.floating-card:hover img{

  transform:scale(1.08);
}

.floating-content{

  padding:1.2rem;
}

.floating-content span{

  font-size:.68rem;

  letter-spacing:3px;

  text-transform:uppercase;

  color:#c59d67;
}

.floating-content p{

  margin-top:.7rem;

  color:#555;

  line-height:1.6;

  font-size:.88rem;
}

/* ================================================= */
/* BRANDS */
/* ================================================= */

.brands{

  padding:
  2rem
  8%;

  display:grid;

  grid-template-columns:repeat(4,1fr);

  gap:2rem;

  border-top:
  1px solid rgba(0,0,0,.05);

  border-bottom:
  1px solid rgba(0,0,0,.05);
}

.brands span{

  text-align:center;

  font-size:.72rem;

  letter-spacing:3px;

  text-transform:uppercase;

  color:#777;
}

/* ================================================= */
/* ABOUT */
/* ================================================= */

.about{

  padding:
  5rem
  0;

  display:grid;

  grid-template-columns:1fr 1fr;

  gap:4rem;

  align-items:center;
}

/* IMAGES */

.about-images{

  position:relative;

  height:600px;
}

.img-one{

  width:65%;

  height:430px;

  object-fit:cover;

  border-radius:32px;

  position:absolute;

  top:0;
  left:0;

  transition:1.2s;

  box-shadow:
  0 30px 80px rgba(0,0,0,.08);
}

.img-two{

  width:55%;

  height:320px;

  object-fit:cover;

  border-radius:32px;

  position:absolute;

  right:0;
  bottom:0;

  transition:1.2s;

  box-shadow:
  0 30px 80px rgba(0,0,0,.08);
}

.img-one:hover,
.img-two:hover{

  transform:
  translateY(-10px)
  scale(1.03);
}

/* CONTENT */

.about-content h2{

  font-size:clamp(3rem,5vw,5.5rem);

  margin-top:1rem;

  max-width:650px;
}

.about-content p{

  margin-top:2rem;

  line-height:1.9;

  color:#666;

  max-width:520px;
}

/* ================================================= */
/* FEATURES */
/* ================================================= */

.features{

  padding:
  2rem
  0
  5rem;
}

.section-title{

  margin-bottom:3rem;
}

.section-title h2{

  margin-top:1rem;

  font-size:clamp(3rem,5vw,5rem);

  max-width:700px;
}

.features-grid{

  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:1.5rem;
}

/* ================================================= */
/* FEATURE CARDS PREMIUM */
/* ================================================= */

.feature-card{

  position:relative;

  padding:2.8rem;

  background:
  rgba(255,255,255,.55);

  backdrop-filter:blur(20px);

  border:
  1px solid rgba(214,176,123,.12);

  border-radius:34px;

  overflow:hidden;

  transition:
  transform .8s cubic-bezier(0.22,1,0.36,1),
  box-shadow .8s ease,
  border .8s ease,
  background .8s ease;

  box-shadow:
  0 10px 30px rgba(0,0,0,.04);

  transform-style:preserve-3d;
}

/* GLOW EFFECT */

.feature-card::before{

  content:'';

  position:absolute;

  inset:0;

  background:
  linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,.25),
    transparent
  );

  transform:
  translateX(-140%);

  transition:1.4s ease;

  z-index:1;
}

/* HOVER */

.feature-card:hover{

  transform:
  perspective(1200px)
  rotateY(4deg)
  translateY(-14px);

  background:
  rgba(255,255,255,.78);

  border:
  1px solid rgba(214,176,123,.35);

  box-shadow:
  0 35px 90px rgba(197,157,103,.18);
}

.feature-card:hover::before{

  transform:
  translateX(140%);
}

/* ICON */

.feature-card i{

  position:relative;

  z-index:2;

  font-size:2.2rem;

  color:#c59d67;

  transition:
  transform .7s ease,
  color .7s ease,
  text-shadow .7s ease;
}

.feature-card:hover i{

  transform:
  scale(1.15)
  rotate(-6deg);

  color:#b88a52;

  text-shadow:
  0 0 25px rgba(197,157,103,.45);
}

/* TITLE */

.feature-card h3{

  position:relative;

  z-index:2;

  margin-top:1.5rem;

  font-size:2.2rem;

  transition:
  transform .7s ease,
  color .7s ease;
}

.feature-card:hover h3{

  transform:
  translateX(4px);

  color:#b88a52;
}

/* TEXT */

.feature-card p{

  position:relative;

  z-index:2;

  margin-top:1rem;

  color:#666;

  line-height:1.9;

  transition:
  color .6s ease,
  transform .6s ease;
}

.feature-card:hover p{

  color:#444;

  transform:
  translateX(3px);
}

/* ================================================= */
/* GALLERY */
/* ================================================= */

.gallery{

  padding:
  2rem
  0
  5rem;
}

.gallery-grid{

  display:grid;

  grid-template-columns:
  repeat(12,1fr);

  gap:1.5rem;
}

/* ITEMS */

.gallery-item{

  position:relative;

  overflow:hidden;

  border-radius:32px;

  transition:.8s ease;
}

.gallery-item img{

  width:100%;
  height:100%;

  object-fit:cover;

  transition:
  transform 1.4s cubic-bezier(0.22,1,0.36,1),
  filter 1s ease;
}

/* HOVER */

.gallery-item:hover img{

  transform:
  scale(1.08);

  filter:
  brightness(1.05);
}

.gallery-item:hover{

  transform:
  translateY(-10px);
}

/* SHINE EFFECT */

.gallery-item::before{

  content:'';

  position:absolute;

  inset:0;

  background:
  linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,.2),
    transparent
  );

  transform:
  translateX(-120%);

  transition:1.4s;

  z-index:3;
}

.gallery-item:hover::before{

  transform:
  translateX(120%);
}

/* LAYOUT */

.large{

  grid-column:span 7;

  height:360px;
}

.small{

  grid-column:span 5;

  height:360px;
}

.vertical{

  grid-column:span 4;

  height:520px;
}

.horizontal{

  grid-column:span 8;

  height:520px;
}

/* ================================================= */
/* CTA */
/* ================================================= */

.cta{

  padding:
  6rem
  8%;

  text-align:center;
}

.cta h2{

  font-size:clamp(3rem,6vw,6rem);

  margin-top:1rem;
}

.cta p{

  margin:
  1.5rem auto;

  max-width:600px;

  line-height:1.9;

  color:#666;
}

/* ================================================= */
/* FOOTER */
/* ================================================= */

footer{

  padding:
  5rem
  8%
  3rem;

  text-align:center;

  border-top:
  1px solid rgba(0,0,0,.05);
}

.footer-logo{

  font-size:3rem;

  font-family:'Cormorant Garamond',serif;
}

footer p{

  margin-top:1rem;

  color:#666;
}

/* SOCIALS */

.socials{

  display:flex;

  justify-content:center;

  gap:1rem;

  margin-top:2rem;
}

.socials a{

  width:50px;
  height:50px;

  border-radius:50%;

  border:
  1px solid rgba(214,176,123,.2);

  display:flex;

  align-items:center;
  justify-content:center;

  text-decoration:none;

  color:#111;

  transition:.5s ease;
}

.socials a:hover{

  background:#111;
  color:white;

  transform:
  translateY(-5px);

  box-shadow:
  0 20px 50px rgba(0,0,0,.12);
}

.footer-bottom{

  margin-top:3rem;

  padding-top:2rem;

  border-top:
  1px solid rgba(0,0,0,.05);

  font-size:.75rem;

  letter-spacing:3px;

  text-transform:uppercase;

  color:#777;
}

/* ================================================= */
/* RESPONSIVE */
/* ================================================= */

@media(max-width:1100px){

  body{
    cursor:auto;
  }

  .cursor{
    display:none;
  }

  .hero,
  .about{

    grid-template-columns:1fr;
  }

  .features-grid{

    grid-template-columns:1fr;
  }

  .gallery-grid{

    grid-template-columns:1fr;
  }

  .large,
  .small,
  .vertical,
  .horizontal{

    grid-column:unset;

    height:400px;
  }

  .brands{

    grid-template-columns:1fr 1fr;
  }

  /* MOBILE MENU */

  .nav-menu{

    position:fixed;

    top:0;
    right:-100%;

    width:100%;
    height:100vh;

    background:
    rgba(253,251,248,.98);

    backdrop-filter:blur(20px);

    flex-direction:column;

    align-items:center;
    justify-content:center;

    transition:.6s cubic-bezier(0.22,1,0.36,1);
  }

  .nav-menu.active{
    right:0;
  }

  .menu-toggle{
    display:flex;
  }

}

@media(max-width:768px){

  .hero{

    padding-top:9rem;
  }

  .hero h1{

    font-size:4rem;
  }

  .hero-buttons{

    flex-direction:column;
  }

  .btn-dark,
  .btn-light{

    width:100%;
  }

  .phone{

    width:280px;
    height:560px;
  }

  .floating-card{

    width:190px;

    right:0;
  }

  .about-images{

    height:500px;
  }

  .img-one{

    height:320px;
  }

  .img-two{

    height:240px;
  }

  .brands{

    grid-template-columns:1fr;
  }

}

/* ================================================= */
/* MOBILE FIX FLOATING CARD */
/* ================================================= */

@media(max-width:768px){

  .hero-right{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:2rem;

    height:auto;
  }

  .floating-card{

    position:relative;

    top:auto;
    right:auto;
    bottom:auto;

    width:220px;

    transform:none;

    margin-top:-20px;
  }

  .floating-card:hover{

    transform:
    translateY(-6px);
  }

}

.whatsapp-float{
  position:fixed;
  right:28px;
  bottom:28px;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#25D366;
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
  text-decoration:none;
  z-index:9999;
  box-shadow:0 20px 50px rgba(37,211,102,.35);
  transition:.5s ease;
}

.whatsapp-float:hover{
  transform:translateY(-8px) scale(1.05);
  box-shadow:0 30px 70px rgba(37,211,102,.45);
}

@media(max-width:768px){
  .whatsapp-float{
    width:54px;
    height:54px;
    right:20px;
    bottom:20px;
    font-size:1.6rem;
  }
}