/* =========================================================
   BLACK GOLD SPACE THEME
   Full CSS
========================================================= */

:root {
  --black: #000000;
  --space-black: #020204;
  --space-dark: #07070c;
  --space-card: #0d0d12;

  --gold: #d4af37;
  --gold-light: #ffe08a;
  --gold-bright: #ffd54a;
  --gold-dark: #8a6515;

  --white: #ffffff;
  --text: #f5f5f5;
  --text-soft: #cfcfcf;
  --border: rgba(212, 175, 55, 0.35);
}


/* =========================================================
   RESET
========================================================= */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Arial', sans-serif;
}


/* =========================================================
   BODY - SPACE BACKGROUND
========================================================= */

html {
  scroll-behavior: smooth;
}

body {
  position: relative;
  min-height: 100vh;
  overflow-x: hidden;

  background:
    radial-gradient(
      circle at 15% 20%,
      rgba(212, 175, 55, 0.10),
      transparent 28%
    ),
    radial-gradient(
      circle at 85% 30%,
      rgba(255, 213, 74, 0.07),
      transparent 30%
    ),
    radial-gradient(
      circle at 50% 80%,
      rgba(138, 101, 21, 0.08),
      transparent 35%
    ),
    linear-gradient(
      180deg,
      #000000 0%,
      #040406 50%,
      #000000 100%
    );

  color: var(--text);
  line-height: 1.6;
}


/* =========================================================
   SPACE STARS
========================================================= */

body::before {
  content: "";
  position: fixed;
  inset: 0;

  pointer-events: none;
  z-index: -2;

  background-image:

    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.95) 0 1px,
      transparent 1.4px
    ),

    radial-gradient(
      circle,
      rgba(255, 216, 96, 0.90) 0 1px,
      transparent 1.5px
    ),

    radial-gradient(
      circle,
      rgba(255, 255, 255, 0.60) 0 0.8px,
      transparent 1.2px
    );

  background-size:
    95px 95px,
    155px 155px,
    210px 210px;

  background-position:
    10px 20px,
    35px 70px,
    80px 120px;

  opacity: 0.65;

  animation:
    spaceTwinkle 5s ease-in-out infinite alternate;
}


/* =========================================================
   SPACE NEBULA
========================================================= */

body::after {
  content: "";
  position: fixed;

  width: 700px;
  height: 700px;

  top: 25%;
  left: 50%;

  transform: translate(-50%, -50%);

  pointer-events: none;
  z-index: -3;

  border-radius: 50%;

  background:
    radial-gradient(
      circle,
      rgba(212, 175, 55, 0.12) 0%,
      rgba(138, 101, 21, 0.06) 30%,
      transparent 70%
    );

  filter: blur(40px);

  animation:
    nebulaMove 12s ease-in-out infinite alternate;
}


/* =========================================================
   SPACE ANIMATIONS
========================================================= */

@keyframes spaceTwinkle {

  0% {
    opacity: 0.35;
  }

  50% {
    opacity: 0.75;
  }

  100% {
    opacity: 0.50;
  }

}


@keyframes nebulaMove {

  0% {
    transform:
      translate(-55%, -50%)
      scale(0.95);
  }

  100% {
    transform:
      translate(-45%, -40%)
      scale(1.15);
  }

}


/* =========================================================
   HEADINGS
========================================================= */

h1,
h2,
h3 {
  color: var(--gold-light);

  text-shadow:
    0 0 5px rgba(212, 175, 55, 0.45),
    0 0 12px rgba(212, 175, 55, 0.20);
}


/* =========================================================
   HEADER
========================================================= */

header {
  position: relative;
  z-index: 10;

  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 1rem 5%;

  background:
    linear-gradient(
      135deg,
      rgba(0, 0, 0, 0.96),
      rgba(15, 12, 3, 0.96),
      rgba(0, 0, 0, 0.96)
    );

  border-bottom: 1px solid var(--gold);

  box-shadow:
    0 5px 30px rgba(0, 0, 0, 0.8),
    0 0 18px rgba(212, 175, 55, 0.15);

  backdrop-filter: blur(10px);

  gap: 2rem;
}


/* =========================================================
   LOGO
========================================================= */

.logo img {
  max-height: 50px;

  filter:
    drop-shadow(
      0 0 6px rgba(212, 175, 55, 0.40)
    );

  transition:
    transform 0.3s ease,
    filter 0.3s ease;
}

.logo img:hover {

  transform: scale(1.05);

  filter:
    drop-shadow(
      0 0 10px rgba(255, 213, 74, 0.75)
    );

}


/* =========================================================
   NAVIGATION
========================================================= */

header nav ul {

  display: flex;

  list-style: none;

  margin: 0;
  padding: 0;

  gap: 1.5rem;
}


header nav ul li a {

  text-decoration: none;

  color: #f5f5f5;

  font-weight: 500;
  font-size: 1rem;

  position: relative;

  transition:
    color 0.3s ease,
    text-shadow 0.3s ease;
}


header nav ul li a::after {

  content: "";

  position: absolute;

  width: 0;
  height: 2px;

  bottom: -4px;
  left: 0;

  background:
    linear-gradient(
      90deg,
      transparent,
      var(--gold-light),
      var(--gold),
      transparent
    );

  box-shadow:
    0 0 8px rgba(255, 213, 74, 0.8);

  transition:
    width 0.3s ease;
}


header nav ul li a:hover {

  color: var(--gold-light);

  text-shadow:
    0 0 8px rgba(212, 175, 55, 0.60);
}


header nav ul li a:hover::after {
  width: 100%;
}


/* =========================================================
   HEADER RIGHT
========================================================= */

.header-right {

  display: flex;

  align-items: center;

  gap: 1.5rem;
}


/* =========================================================
   SEARCH BOX
========================================================= */

.search-box {

  display: flex;

  align-items: center;

  border: 1px solid var(--gold);

  border-radius: 25px;

  padding: 0.3rem 0.8rem;

  gap: 0.5rem;

  background:
    rgba(255, 255, 255, 0.03);

  box-shadow:
    inset 0 0 10px rgba(212, 175, 55, 0.05),
    0 0 10px rgba(212, 175, 55, 0.08);

  transition:
    border 0.3s ease,
    box-shadow 0.3s ease;
}


.search-box:focus-within {

  border-color: var(--gold-light);

  box-shadow:
    0 0 15px rgba(212, 175, 55, 0.30);
}


.search-box input {

  border: none;

  outline: none;

  font-size: 0.9rem;

  width: 180px;

  background: transparent;

  color: #ffffff;
}


.search-box input::placeholder {
  color: #a9a9a9;
}


/* =========================================================
   ICONS
========================================================= */

.icons {

  display: flex;

  gap: 1rem;

  font-size: 1.2rem;

  cursor: pointer;

  color: var(--gold);
}


.icons i {

  transition:
    transform 0.3s ease,
    color 0.3s ease,
    text-shadow 0.3s ease;
}


.icons i:hover {

  color: var(--gold-light);

  transform: translateY(-2px);

  text-shadow:
    0 0 10px var(--gold);
}


/* =========================================================
   PRODUCT SECTION
========================================================= */

.product {

  position: relative;

  display: flex;

  justify-content: space-between;

  align-items: flex-start;

  padding: 3rem 5%;

  gap: 3rem;

  background:
    radial-gradient(
      circle at center,
      rgba(212, 175, 55, 0.045),
      transparent 55%
    );
}


/* =========================================================
   GALLERY
========================================================= */

.gallery {

  flex: 1;

  text-align: center;
}


/* =========================================================
   MAIN IMAGE
========================================================= */

.main-img {

  width: 100%;

  max-width: 500px;

  border-radius: 15px;

  border: 1px solid var(--gold);

  background: #050505;

  padding: 4px;

  box-shadow:
    0 0 10px rgba(212, 175, 55, 0.25),
    0 0 30px rgba(212, 175, 55, 0.08),
    0 15px 40px rgba(0, 0, 0, 0.8);

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}


.main-img:hover {

  transform:
    translateY(-5px);

  box-shadow:
    0 0 18px rgba(255, 213, 74, 0.35),
    0 0 50px rgba(212, 175, 55, 0.12),
    0 20px 50px rgba(0, 0, 0, 0.9);
}


/* =========================================================
   PRICE
========================================================= */

.price {

  font-size: 1.5rem;

  color: var(--gold-light);

  font-weight: bold;

  margin: 1rem 0;

  text-shadow:
    0 0 10px rgba(212, 175, 55, 0.50);
}


/* =========================================================
   THUMBNAILS
========================================================= */

.thumbnails {

  display: flex;

  justify-content: center;

  margin-top: 1rem;

  gap: 1rem;
}


.thumbnails img {

  width: 60px;

  border-radius: 10px;

  border:
    2px solid rgba(212, 175, 55, 0.15);

  cursor: pointer;

  opacity: 0.85;

  transition:
    border 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease,
    opacity 0.3s ease;
}


.thumbnails img:hover {

  opacity: 1;

  border:
    2px solid var(--gold);

  transform:
    translateY(-3px);

  box-shadow:
    0 0 15px rgba(212, 175, 55, 0.35);
}


/* =========================================================
   DETAILS
========================================================= */

.details {
  flex: 1;
}


.details h3 {

  color: #c6b878;

  font-size: 1rem;

  margin-bottom: 0.5rem;
}


.details h1 {

  margin-bottom: 0.5rem;

  font-size: 1.8rem;

  color: var(--gold-light);

  text-shadow:
    0 0 12px rgba(212, 175, 55, 0.30);
}


/* =========================================================
   RATING
========================================================= */

.rating {

  color: var(--gold-bright);

  font-size: 1.2rem;

  text-shadow:
    0 0 7px rgba(255, 213, 74, 0.35);
}


.rating .reviews {

  color: var(--gold);

  font-size: 0.9rem;

  margin-left: 0.5rem;
}


/* =========================================================
   STOCK
========================================================= */

.stock {

  color: #d8d8d8;

  font-size: 0.9rem;

  margin: 0.5rem 0;
}


.stock .in-stock {

  color: var(--gold-light);

  font-weight: bold;
}


/* =========================================================
   COLORS
========================================================= */

.colors {

  display: flex;

  gap: 10px;

  margin: 1rem 0;
}


.colors span {

  width: 25px;
  height: 25px;

  border-radius: 50%;

  cursor: pointer;

  border:
    2px solid rgba(212, 175, 55, 0.30);

  transition:
    transform 0.2s,
    border 0.2s,
    box-shadow 0.2s;
}


.colors span:hover {

  transform:
    scale(1.2);

  border:
    2px solid var(--gold);

  box-shadow:
    0 0 12px rgba(212, 175, 55, 0.60);
}


/* =========================================================
   SPECS LIST
========================================================= */

.specs {

  list-style: none;

  margin: 1rem 0;

  padding: 0;

  color: #dddddd;
}


.specs li {

  margin: 0.4rem 0;

  padding-left: 8px;

  border-left:
    2px solid rgba(212, 175, 55, 0.45);
}


/* =========================================================
   DESCRIPTION
========================================================= */

.desc {

  font-size: 0.9rem;

  color: #cfcfcf;

  margin: 1rem 0;

  line-height: 1.8;
}


/* =========================================================
   QUANTITY
========================================================= */

.quantity {

  margin: 1.5rem 0;
}


.qty-box {

  display: flex;

  align-items: center;

  border:
    1px solid var(--gold);

  border-radius: 12px;

  overflow: hidden;

  width: 120px;

  background:
    rgba(0, 0, 0, 0.75);

  box-shadow:
    0 0 12px rgba(212, 175, 55, 0.12);
}


.qty-box button {

  flex: 1;

  border: none;

  background:
    linear-gradient(
      135deg,
      var(--gold-dark),
      var(--gold),
      var(--gold-light)
    );

  color: #000000;

  font-size: 1.2rem;

  font-weight: bold;

  padding: 0.5rem;

  cursor: pointer;

  transition:
    background 0.3s,
    transform 0.2s,
    box-shadow 0.3s;
}


.qty-box button:hover {

  background:
    linear-gradient(
      135deg,
      var(--gold-light),
      var(--gold)
    );

  transform:
    scale(1.05);

  box-shadow:
    0 0 12px rgba(212, 175, 55, 0.50);
}


.qty-box input {

  width: 50px;

  text-align: center;

  border: none;

  outline: none;

  background: #080808;

  color: var(--gold-light);

  font-size: 1.2rem;

  font-weight: 600;
}


/* =========================================================
   BUTTONS
========================================================= */

.buttons {

  display: flex;

  gap: 1rem;
}


.add-cart,
.buy-now {

  position: relative;

  overflow: hidden;

  flex: 1;

  padding: 0.8rem 1rem;

  font-size: 1rem;

  font-weight: bold;

  border-radius: 25px;

  cursor: pointer;

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease;

  text-align: center;

  text-decoration: none;

  display: inline-block;
}


/* =========================================================
   LOGIN BUTTON
========================================================= */

.add-cart {

  border:
    1px solid var(--gold-light);

  background:
    linear-gradient(
      135deg,
      #8a6515,
      #d4af37,
      #ffe08a,
      #d4af37,
      #8a6515
    );

  background-size:
    200% auto;

  color: #000000;

  box-shadow:
    0 4px 15px rgba(212, 175, 55, 0.18);
}


.add-cart:hover {

  background-position:
    right center;

  color: #000000;

  transform:
    translateY(-3px);

  box-shadow:
    0 0 15px rgba(255, 213, 74, 0.45),
    0 8px 25px rgba(0, 0, 0, 0.50);
}


/* =========================================================
   REGISTER BUTTON
========================================================= */

.buy-now {

  background:
    rgba(0, 0, 0, 0.75);

  border:
    2px solid var(--gold);

  color: var(--gold-light);

  box-shadow:
    inset 0 0 12px rgba(212, 175, 55, 0.05);
}


.buy-now:hover {

  background:
    linear-gradient(
      135deg,
      #8a6515,
      #d4af37,
      #ffe08a
    );

  color: #000000;

  transform:
    translateY(-3px);

  box-shadow:
    0 0 18px rgba(212, 175, 55, 0.40);
}


/* =========================================================
   BUTTON SHINE
========================================================= */

.add-cart::before,
.buy-now::before {

  content: "";

  position: absolute;

  top: -50%;
  left: -80%;

  width: 50%;
  height: 200%;

  transform:
    rotate(25deg);

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.50),
      transparent
    );

  transition:
    left 0.6s ease;
}


.add-cart:hover::before,
.buy-now:hover::before {

  left: 140%;
}


/* =========================================================
   REVIEWS
========================================================= */

.gallery .reviews {

  margin-top: 2rem;

  text-align: left;
}


.reviews {

  position: relative;

  margin-top: 1.5rem;

  padding: 1rem;

  background:
    linear-gradient(
      145deg,
      rgba(15, 15, 18, 0.92),
      rgba(3, 3, 5, 0.95)
    );

  border:
    1px solid rgba(212, 175, 55, 0.28);

  border-radius: 12px;

  box-shadow:
    0 4px 15px rgba(0, 0, 0, 0.55),
    inset 0 0 20px rgba(212, 175, 55, 0.025);

  animation:
    fadeInUp 1s ease-in-out;
}


.reviews h3 {

  font-size: 1.3rem;

  color: var(--gold-light);

  margin-bottom: 1rem;

  text-align: left;
}


.review {

  padding: 0.8rem;

  color: #dddddd;

  border-bottom:
    1px solid rgba(212, 175, 55, 0.18);

  opacity: 0;

  transform:
    translateY(20px);

  animation:
    fadeSlide 0.8s ease forwards;
}


.review:last-child {

  border-bottom: none;
}


.review:nth-child(2) {

  animation-delay: 0.3s;
}


.review:nth-child(3) {

  animation-delay: 0.6s;
}


/* =========================================================
   CONTENT ANIMATIONS
========================================================= */

@keyframes fadeInUp {

  from {

    opacity: 0;

    transform:
      translateY(30px);
  }

  to {

    opacity: 1;

    transform:
      translateY(0);
  }

}


@keyframes fadeSlide {

  to {

    opacity: 1;

    transform:
      translateY(0);
  }

}


/* =========================================================
   FOOTER
========================================================= */

.footer {

  position: relative;

  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(212, 175, 55, 0.07),
      transparent 40%
    ),
    linear-gradient(
      180deg,
      #080808,
      #000000
    );

  padding:
    3rem 5%;

  font-family:
    Arial,
    sans-serif;

  color:
    #d8d8d8;

  border-top:
    1px solid var(--gold);

  box-shadow:
    0 -10px 40px rgba(212, 175, 55, 0.04);
}


/* =========================================================
   FOOTER CONTAINER
========================================================= */

.footer-container {

  display: grid;

  grid-template-columns:
    2fr
    1fr
    1fr
    1fr;

  gap: 2rem;
}


/* =========================================================
   FOOTER TITLES
========================================================= */

.footer-col h3,
.footer-col .logo {

  margin-bottom: 1rem;

  font-weight: bold;

  color:
    var(--gold-light);
}


.footer-col p {

  margin:
    0.5rem 0;

  color:
    #bfbfbf;
}


/* =========================================================
   FOOTER LIST
========================================================= */

.footer-col ul {

  list-style: none;

  padding: 0;
}


.footer-col ul li {

  margin:
    0.4rem 0;
}


.footer-col ul li a {

  position: relative;

  text-decoration: none;

  color:
    #d2d2d2;

  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}


.footer-col ul li a:hover {

  color:
    var(--gold-light);

  padding-left:
    5px;
}


/* =========================================================
   SUBSCRIBE
========================================================= */

.subscribe {

  margin-top: 1rem;

  display: flex;

  flex-direction: column;

  gap: 0.5rem;
}


.subscribe input {

  padding: 0.6rem;

  border: none;

  border-bottom:
    2px solid var(--gold);

  background:
    transparent;

  color:
    #ffffff;

  outline: none;
}


.subscribe input::placeholder {

  color:
    #888888;
}


.subscribe button {

  background:
    linear-gradient(
      135deg,
      var(--gold-dark),
      var(--gold),
      var(--gold-light)
    );

  color:
    #000000;

  border:
    1px solid var(--gold-light);

  padding:
    0.6rem;

  font-weight:
    bold;

  cursor:
    pointer;

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}


.subscribe button:hover {

  transform:
    translateY(-2px);

  box-shadow:
    0 0 15px rgba(212, 175, 55, 0.40);
}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.socials {

  display: flex;

  gap: 1rem;

  margin-top: 1rem;
}


.socials a {

  color:
    var(--gold);

  font-size:
    1.5rem;

  transition:
    color 0.3s ease,
    transform 0.3s ease,
    text-shadow 0.3s ease;
}


.socials a:hover {

  color:
    var(--gold-light);

  transform:
    translateY(-3px);

  text-shadow:
    0 0 10px rgba(212, 175, 55, 0.70);
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.footer-bottom {

  margin-top:
    2rem;

  text-align:
    center;

  font-size:
    0.9rem;

  color:
    #a9a9a9;

  border-top:
    1px solid rgba(212, 175, 55, 0.25);

  padding-top:
    1rem;
}


/* =========================================================
   SCROLLBAR
========================================================= */

::-webkit-scrollbar {

  width:
    9px;
}


::-webkit-scrollbar-track {

  background:
    #020202;
}


::-webkit-scrollbar-thumb {

  border-radius:
    10px;

  background:
    linear-gradient(
      180deg,
      var(--gold-light),
      var(--gold-dark)
    );
}


::-webkit-scrollbar-thumb:hover {

  background:
    var(--gold-light);
}


/* =========================================================
   SELECTION
========================================================= */

::selection {

  background:
    var(--gold);

  color:
    #000000;
}


/* =========================================================
   FOOTER TABLET
========================================================= */

@media (max-width: 768px) {

  .footer-container {

    grid-template-columns:
      1fr 1fr;
  }

}


/* =========================================================
   FOOTER MOBILE SMALL
========================================================= */

@media (max-width: 480px) {

  .footer-container {

    grid-template-columns:
      1fr;

    text-align:
      center;
  }


  .socials {

    justify-content:
      center;
  }

}


/* =========================================================
   TABLETS
========================================================= */

@media (max-width: 1024px) {

  .product {

    flex-direction:
      column;

    align-items:
      center;

    text-align:
      center;
  }


  .details {

    display:
      flex;

    flex-direction:
      column;

    text-align:
      left;

    margin-top:
      2rem;

    width:
      100%;
  }


  /* Order for product details */

  .details .buttons {

    order:
      1;

    margin-bottom:
      1.5rem;

    flex-direction:
      column;

    display:
      flex;
  }


  .details h3 {

    order:
      2;
  }


  .details h1 {

    order:
      3;
  }


  .stock {

    order:
      4;
  }


  .rating {

    order:
      5;
  }


  .colors {

    order:
      6;
  }


  .quantity {

    order:
      7;
  }


  .price {

    order:
      8;
  }


  .desc,
  .specs {

    order:
      9;

    margin-top:
      1rem;
  }


  .reviews {

    order:
      10;

    margin-top:
      2rem;
  }


  .gallery .reviews {

    text-align:
      center;
  }


  .qty-box {

    width:
      140px;
  }

}


/* =========================================================
   MOBILE LARGE
========================================================= */

@media (max-width: 768px) {

  header {

    flex-direction:
      column;

    gap:
      1rem;

    text-align:
      center;

    padding:
      1rem 4%;
  }


  header nav ul {

    flex-wrap:
      wrap;

    justify-content:
      center;

    gap:
      1rem;
  }


  .header-right {

    flex-direction:
      column;

    gap:
      1rem;
  }


  .product {

    flex-direction:
      column;

    gap:
      2rem;

    padding:
      2rem 4%;
  }


  .main-img {

    order:
      0;

    max-width:
      90%;
  }


  /* Buttons under image */

  .gallery .buttons {

    order:
      2;

    display:
      flex;

    justify-content:
      center;

    flex-direction:
      column;

    gap:
      1rem;

    margin-top:
      1rem;

    width:
      100%;
  }


  .gallery .buttons a {

    flex:
      1;

    min-width:
      120px;

    text-align:
      center;
  }


  .footer-container {

    grid-template-columns:
      1fr 1fr;

    gap:
      1.5rem;
  }


  body::after {

    width:
      450px;

    height:
      450px;
  }

}


/* =========================================================
   MOBILE SMALL
========================================================= */

@media (max-width: 480px) {

  body {

    font-size:
      0.9rem;
  }


  header {

    padding:
      1rem 2%;
  }


  .logo img {

    max-height:
      40px;
  }


  .search-box {

    width:
      100%;

    max-width:
      280px;
  }


  .search-box input {

    width:
      100%;

    font-size:
      0.8rem;
  }


  .main-img {

    order:
      0;

    max-width:
      100%;
  }


  /* Stack buttons vertically */

  .gallery .buttons {

    order:
      2;

    flex-direction:
      column;

    margin-top:
      10px;

    width:
      100%;
  }


  .gallery .buttons a {

    width:
      100%;

    text-align:
      center;
  }


  .thumbnails {

    gap:
      0.5rem;

    flex-wrap:
      wrap;
  }


  .thumbnails img {

    width:
      45px;
  }


  .qty-box {

    width:
      100px;
  }


  .qty-box button {

    font-size:
      1rem;

    padding:
      0.4rem;
  }


  .qty-box input {

    width:
      35px;

    font-size:
      1rem;
  }


  .footer-container {

    grid-template-columns:
      1fr;

    text-align:
      center;
  }


  .socials {

    justify-content:
      center;
  }


  .details h1 {

    font-size:
      1.5rem;
  }


  body::after {

    width:
      300px;

    height:
      300px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {

    animation-duration:
      0.01ms !important;

    animation-iteration-count:
      1 !important;

    transition-duration:
      0.01ms !important;
  }

}