/* =================================
   PRODUCTS & CARDS
================================= */
main .recentlyadded .products,
main .products .products-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 50px;
  padding: 0 0 90px 0;
}

main .recentlyadded .products.accessories-wrapper,
main .products .products-wrapper.accessories-wrapper {
  gap: 35px;
  padding-top: 0;
}

/* Product Card */
main .recentlyadded .products .product,
main .products .products-wrapper .product {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-decoration: none;
  width: calc(50% - 25px);
  max-width: 420px;
  min-width: 280px;
  border: 3px solid var(--border);
  border-radius: var(--radius-large);
  background: var(--gradient-box);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

main .recentlyadded .products .product:hover,
main .products .products-wrapper .product:hover {
  border-color: var(--gold);
}

/* Product Image */
main .recentlyadded .products .product .img,
main .products .products-wrapper .product .img {
  display: flex;
  align-items: center;
  height: 300px;
  margin: 35px;
  overflow: hidden;
  filter: drop-shadow(0px 0px 22px rgba(153,47,235,0.3));
  transition: filter 0.3s ease-in-out;
}

main .products .products-wrapper .product .img.dark-shadow {
  filter: drop-shadow(0px 0px 24px rgba(0,0,0,0.8));
}

main .products .products-wrapper#products-container .product .img {
  height: 200px !important;
}

main .recentlyadded .products .product .img:hover,
main .products .products-wrapper .product .img:hover {
  filter: drop-shadow(0px 0px 22px rgba(153,47,235,0.5));
}

main .recentlyadded .products .product .img img,
main .products .products-wrapper .product .img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  transform: scale(1);
  transition: transform 1s;
}

main .recentlyadded .products .product .img.small,
main .products .products-wrapper .product .img.small {
  height: 150px;
}

/* Product Title/Price */
main .recentlyadded .products .product .title-price-wrapper,
main .products .products-wrapper .product .title-price-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 15px 20px;
}

main .recentlyadded .products .product .title-price-wrapper .name,
main .products .products-wrapper .product .title-price-wrapper .name {
  display: block;
  font-family: "good-timing";
  font-weight: 500;
  font-size: 24px;
  color: #fff;
}

main .recentlyadded .products .product .title-price-wrapper .price,
main .products .products-wrapper .product .title-price-wrapper .price {
  display: block;
  font-weight: bold;
  font-size: 16px;
  color: var(--white);
}

main .recentlyadded .products .product .title-price-wrapper .price-stack,
main .products .products-wrapper .product .title-price-wrapper .price-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

main .recentlyadded .products .product .title-price-wrapper .rrp,
main .products .products-wrapper .product .title-price-wrapper .rrp {
  color: var(--grey);
  font-size: 15px;
  text-decoration: line-through;
}

/* Product Details */
main .recentlyadded .products .product > .name,
main .products .products-wrapper .product > .name {
  display: block;
  font-size: 18px;
  color: #fff;
  font-weight: bold;
  padding: 5px 35px 10px 35px;
}

main .recentlyadded .products .product > .price,
main .products .products-wrapper .product > .price {
  display: block;
  font-size: 16px;
  color: var(--grey);
  padding: 0 35px 20px 35px;
}

main .recentlyadded .products .product > .price .rrp,
main .products .products-wrapper .product > .price .rrp {
  color: #c3bcc7;
  text-decoration: line-through;
  font-size: 14px;
  padding-left: 10px;
}

main .recentlyadded .products .product > .price-stack,
main .products .products-wrapper .product > .price-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding: 0 35px 20px 35px;
}

main .recentlyadded .products .product > .price-stack .price,
main .products .products-wrapper .product > .price-stack .price {
  display: block;
  font-size: 16px;
  color: var(--grey);
  padding: 0;
}

main .recentlyadded .products .product > .price-stack .rrp,
main .products .products-wrapper .product > .price-stack .rrp {
  color: #c3bcc7;
  text-decoration: line-through;
  font-size: 13px;
}

/* Product Features */
main .recentlyadded .products .product .features,
main .products .products-wrapper .product .features {
  border-top: 3px solid var(--border);
  width: 100%;
}

main .recentlyadded .products .product .features ul,
main .products .products-wrapper .product .features ul {
  display: flex;
  flex-wrap: wrap;
  padding: 10px 20px;
  list-style: none;
  margin: 0;
}

main .recentlyadded .products .product .features ul li,
main .products .products-wrapper .product .features ul li {
  min-width: 50%;
  display: flex;
  font-family: mont-med;
  align-items: center;
  font-size: 15px;
  color: var(--grey);
  padding: 5px 0;
}

main .recentlyadded .products .product .features ul li:before,
main .products .products-wrapper .product .features ul li:before {
  content: "";
  display: inline-block;
  width: 11px;
  height: 11px;
  background-color: #992feb;
  border-radius: 50%;
  margin-right: 10px;
}

/* Windows License Badge */
main .products .products-wrapper .product .windows-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 10px 20px;
  border-top: 3px solid var(--border);
  background-color: transparent; /* match card background */
}

main .products .products-wrapper .product .windows-badge span {
  font-size: 15px;        /* match features list */
  font-family: mont-med;  /* match features list */
  color: var(--grey);     /* match features list */
}

main .products .products-wrapper .product .windows-badge span strong {
  font-size: 15px;
  font-family: mont-med; /* no bold, match features list */
  color: var(--grey);
}
main .products .products-wrapper .product .windows-badge .windows-logo {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

main .products .products-wrapper .product .windows-badge span {
  font-size: 14px;
  font-family: mont-med;
  color: var(--grey);
}

main .products .products-wrapper .product .windows-badge span strong {
  color: #fff;
  font-size: 14px;
  font-family: mont-bold;
  color: var(--white);
}

/* Product Links */
main .recentlyadded .products .product a,
main .recentlyadded .products .product .view,
main .products .products-wrapper .product a,
main .products .products-wrapper .product .view {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-decoration: none;
  font-weight: bold;
  color: var(--gold);
  transition: var(--transition);
}

main .recentlyadded .products .product a:hover,
main .recentlyadded .products .product .view:hover,
main .products .products-wrapper .product a:hover,
main .products .products-wrapper .product .view:hover {
  color: #d8d8d8;
}

main .recentlyadded .products .product .view,
main .products .products-wrapper .product .view {
  width: 100%;
  font-size: 16px;
  border-top: 3px solid var(--border);
}

/* Product States */
main .recentlyadded .products .product.no-stock,
main .products .products-wrapper .product.no-stock {
  opacity: 0.5;
}

main .products .products-wrapper .product .out-of-stock {
  color: #e74c3c;
  font-weight: 700;
}

main .recentlyadded .products .product.accessory,
main .products .products-wrapper .product.accessory {
  width: calc(33.3333333333% - 34px);
  min-width: 250px;
}

main .recentlyadded .products.monitors-wrapper .product,
main .products .products-wrapper.monitors-wrapper .product {
  max-width: 300px;
}

main .recentlyadded .products.monitors-wrapper .product .name,
main .products .products-wrapper.monitors-wrapper .product .name {
  width: 100%;
  text-align: center;
}


/* =================================
   PRODUCT DETAIL PAGE
================================= */
main > .product {
  display: flex;
  gap: 7rem;
}

main > .product h1,
main > .product h2 {
  display: block;
  width: 100%;
  font-size: 34px;
  font-weight: 500;
  font-family: "good-timing";
  margin: 0;
  padding: 15px 0 10px 0;
  color: var(--gold);
}

main > .product .product-img-large {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

main > .product .product-img-large img,
main > .product .product-img-small img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

main > .product .product-img-large img {
  border-radius: 3px;
}

main > .product .product-small-imgs {
  display: flex;
  flex-flow: wrap;
  justify-content: center;
}

main > .product .product-small-imgs .product-img-small {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-basis: 31%;
  border: 2px solid var(--border);
  cursor: pointer;
  margin: 20px 12px 0 0;
  border-radius: 3px;
  overflow: hidden;
}

main > .product .product-small-imgs .product-img-small:nth-child(3n) {
  margin-right: 0;
}

main > .product .product-small-imgs .product-img-small.selected {
  border-color: var(--gold);
}

main > .product .product-imgs {
  flex: 1;
  padding: 15px;
}

main > .product .product-wrapper {
  flex: 1;
}

main > .product .prices {
  display: flex;
}

main > .product .price {
  display: block;
  font-size: 21px;
  font-weight: 700;
  color: #e7e3e7;
}

main > .product .description {
  padding-top: 10px;
}

main > .product .description p {
  color: var(--grey);
}


main > .product .sub-period-type {
  display: block;
  font-size: 16px;
  color: #e7e3e7;
}

main > .product .rrp {
  color: #c3bcc7;
  text-decoration: line-through;
  font-size: 22px;
  padding-left: 10px;
}

main > .product .product-form {
  display: flex;
  flex-flow: column;
  max-width: 440px;
  width: 100%;
  margin: 25px 0 40px 0;
}

main > .product .product-form .add-to-wishlist,
main > .product .product-form .added-to-wishlist {
  display: inline-flex;
  align-items: center;
  padding: 20px 0 10px 0;
  text-decoration: none;
  appearance: none;
  border: 0;
  background-color: transparent;
  cursor: pointer;
  font-weight: 500;
  font-size: 14px;
  color: #cdc7ce;
}

main > .product .product-form .add-to-wishlist svg,
main > .product .product-form .added-to-wishlist svg {
  fill: #cdc7ce;
  margin-right: 5px;
}

main > .product .product-form .add-to-wishlist:hover,
main > .product .product-form .added-to-wishlist:hover {
  color: #e5e2e6;
}

main > .product .product-form .added-to-wishlist {
  color: #dd3030;
}

main > .product .product-form .added-to-wishlist svg {
  fill: #dd3030;
}

main > .product .product-form .added-to-wishlist:hover {
  color: #d12222;
}

main > .product .product-form .btn {
  /* 
  margin-top: 40px;
  width: 100%;
  */
  display: block;
  margin: 40px auto 0;
  width: fit-content;
  min-width: 180px;
}

main > .product .product-form > label:first-child {
  margin-top: 0;
}

main > .product .product-form > label {
  display: block;
  font-size: 17px;
  font-family: mont-bold;
  margin-top: 25px;
  padding: 25px 0 18px 0;
  color: var(--white);
  border-top: 5px solid var(--border);
}


/* =================================
   FEATURES & SPECIFICATIONS
================================= */
.static-features {
  max-width: 900px;
  margin: 25px auto;
  padding: 0;
  border-top: 5px solid var(--border);
}

.static-features ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 0;
  padding: 0;
  list-style: none;
  margin-top: 25px;
}

.static-features ul li {
  display: flex;
  align-items: center;
}

.static-features ul li::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  background-color: var(--purple);
  border-radius: 50%;
  margin-right: 20px;
  flex-shrink: 0;
}

.static-features ul li .feature-block {
  display: flex;
  flex-direction: column;
}

.static-features ul li .feature-label {
  font-size: 17px;
  font-weight: bold;
  color: #ffffff;
  margin-bottom: 3px;
}

.static-features ul li .feature-value {
  font-size: 17px;
  color: var(--white);
}

/* Features Wrapper */
main .features-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 45px;
  padding-bottom: 30px;
}

main .features-wrapper .feature {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 300px;
  padding: 25px;
  border-radius: var(--radius-medium);
  background: var(--gradient-box);
  font-weight: 500;
  color: #fff;
}

/* Specification Wrapper */
main .specification-wrapper {
  display: flex;
  gap: 60px;
  align-items: center;
}

main .specification-wrapper .spec-image {
  flex: 0 0 450px;
}

main .specification-wrapper .spec-image img {
  max-width: 100%;
  object-fit: contain;
  border-radius: var(--radius-large);
}

main .specification-wrapper .spec-columns {
  display: flex;
  gap: 40px;
  flex: 1;
}

main .specification-wrapper .spec-columns .spec-first,
main .specification-wrapper .spec-columns .spec-last {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1;
}

main .specification-wrapper .spec-columns .spec {
  display: flex;
  max-width: 100%;
  padding-top: 10px;
  padding-bottom: 10px;
  align-items: center;
}

main .specification-wrapper .spec .num {
  width: 32px;
  min-width: 32px;
  height: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: var(--radius-medium);
  border: 3px solid #9b3be4;
  font-weight: bold;
  margin-right: 15px;
  margin-top: 2px;
}

main .specification-wrapper .spec .content .title {
  margin: 0;
  font-size: 16px;
  font-family: mont-bold;
  color: var(--gold);
}

main .specification-wrapper .spec .content p {
  margin: 0;
  padding-top: 3px;
  font-size: 16px;
  color: #f7f7f7;
  color: var(--white);
}

/* Selling Points */
.selling-points {
  margin: 0 auto;
}

.selling-points h2 {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 2rem;
}

.points-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem 4rem;
  justify-content: center;
}

.point {
  min-width: 300px;
  max-width: 33.333%;
  background: var(--gradient-box);
  border-radius: var(--radius-medium);
  padding: 30px;
  flex: 1;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.point img {
  width: 50px;
  filter: drop-shadow(var(--shadow-gold));
  margin-bottom: 20px;
}

.point h3 {
  font-size: 17px;
  margin: 0 0 15px 0;
}

.point p {
  font-size: 16px;
  color: var(--grey);
  margin: 0;
}

.spec-headline {
  color: var(--gold);
  font-size: 21px;
  padding-left: 5px;
  font-family: mont-bold;
  margin: 60px 0 20px 0;
}

.spec-headline:first-of-type {
  margin-top: 0;
}

.accessory-list {
  list-style-type: disc;
  padding-left: 20px;
  margin: 0;
}

.accessory-list li {
  margin-bottom: 6px;
}


/* =================================
   CONTENT LAYOUTS
================================= */
.content-layout {
  display: flex;
  flex-direction: column;
  gap: 60px;
  text-align: center;
}

.large-image-block img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-medium);
}

.large-product-column h3 {
  font-size: 28px;
  color: var(--gold);
  font-style: italic;
  font-weight: 700;
  margin: 0 0 25px 0;
}

.large-product-column h4 {
  font-size: 20px;
  font-style: italic;
  font-weight: 700;
  margin: 0 0 30px 0;
}

.large-product-column p {
  padding: 0 60px;
  margin: 0;
  color: var(--grey);
}

.product-columns {
  display: flex;
  gap: 60px;
  flex-wrap: wrap;
}

.product-column {
  flex: 1 1 45%;
  text-align: center;
}

.product-column img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 0 35px 0;
  border-radius: var(--radius-medium);
}

.product-column h4 {
  font-size: 21px;
  font-family: mont-bold;
  margin: 0 0 15px 0;
  color: var(--gold);
}

.product-column p {
  margin: 0;
  color: var(--grey);
}

.text-left-image-right {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
  margin: 0;
}

.text-left-image-right .text {
  flex: 1;
  text-align: left;
}

.text-left-image-right .image {
  flex: 1;
}

.text-left-image-right .image img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-medium);
}

.text-left-image-right.reverse {
  flex-direction: row-reverse;
}

.text-left-image-right .text h4 {
  font-size: 21px;
  font-family: mont-bold;
  margin: 0 0 15px 0;
  color: var(--gold);
}

.text-left-image-right .text p {
  margin: 0;
  color: var(--grey);
}


/* =================================
   PRODUCTS PAGE FILTERS
================================= */
main > .products .products-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 40px;
}

main > .products .products-header p {
  font-size: 14px;
  font-weight: 500;
  color: #e7e3e7;
  margin: 0;
}

main > .products .products-form {
  display: flex;
}

main > .products .products-form .products-filters {
  flex-grow: 0;
  align-self: flex-start;
  border-radius: var(--radius-medium);
  background: var(--gradient-box);
  border: 3px solid var(--border);
  width: 200px;
  padding: 20px 0;
  margin-right: 30px;
}

main > .products .products-form .products-filters .products-filter {
  border-top: 3px solid var(--border);
  padding: 20px 0;
}

main > .products .products-form .products-filters .products-filter:first-child {
  border-top: 0;
  padding-top: 0;
}

main > .products .products-form .products-filters .products-filter .filter-title {
  display: flex;
  color: #f9f9f9;
  justify-content: space-between;
  font-family: mont-bold;
  align-items: center;
  margin-bottom: 6px;
  padding: 0 25px;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
}

main > .products .products-form .products-filters .products-filter .filter-title::after {
  content: "";
  background: url(../images/product-pages/arrow-up.svg) no-repeat center;
  width: 16px;
  height: 16px;
  margin: 0 0 0 15px;
}

main > .products .products-form .products-filters .products-filter .filter-options {
  padding: 0 25px;
}

main > .products .products-form .products-filters .products-filter label {
  display: flex;
  align-items: center;
  height: 34px;
  font-size: 16px;
  user-select: none;
}

main > .products .products-form .products-filters .products-filter label input {
  margin-right: 15px;
}

main > .products .products-form .products-filters .products-filter label input:disabled {
  border-color: #511d79;
}

main > .products .products-form .products-filters .products-filter label input[type=checkbox] {
  border-radius: var(--radius-small);
}

main > .products .products-form .products-filters .products-filter label.hidden {
  display: none;
}

main > .products .products-form .products-filters .products-filter .price-range {
  display: flex;
  flex-flow: column;
  padding: 10px 15px 0 25px;
  gap: 15px;
}

.filter-options.price-range input[type="number"] {
  font-size: 14px;
  width: 120px;
  padding: 5px 15px;
  border-radius: 8px;
  border: 3px solid var(--border);
  background-color: #0f0914;
  color: #e7e3e7;
  transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
  -moz-appearance: textfield;
}

.filter-options.price-range input[type="number"]:focus {
  border-color: var(--gold);
  background-color: #1d112a;
  color: var(--white);
  outline: none;
}

.filter-options.price-range input[type="number"]::-webkit-inner-spin-button,
.filter-options.price-range input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

main > .products .products-form .products-filters .products-filter .show-more {
  display: block;
  text-decoration: none;
  color: #e7e3e7;
  font-size: 14px;
  padding: 10px 0 0 0;
}

main > .products .products-form .products-filters .products-filter .show-more:hover {
  text-decoration: underline;
}

main > .products .products-form .products-filters .products-filter.closed .filter-title {
  margin: 0;
}

main > .products .products-form .products-filters .products-filter.closed .filter-title::after {
  background: url(../images/product-pages/arrow-down.svg) no-repeat center;
}

main > .products .products-form .products-filters .products-filter.closed .filter-options {
  display: none;
}

main > .products .products-form .products-filters .products-filter.center-reset-link {
  padding-top: 20px;
  padding-bottom: 0;
  text-align: center;
}

main > .products .products-form .products-view {
  flex: 1;
}




/* =================================
   CUSTOM PC SECTION
================================= */
main .custom-product {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 50px;
}

main .custom-product .category-title,
main .custom-product .category-paragraph {
  text-align: left;
}

main .custom-product form {
  padding: 0;
}

main .custom-product img {
  width: clamp(280px, 40vw, 450px);
  height: auto;
  transition: width 0.3s ease;
  filter: drop-shadow(0px 0px 28px rgba(0, 0, 0, 0.9));
}

main .custom-product > div {
  max-width: 500px;
}

/* =================================
   FAQ SECTION
================================= */
main .faq-wrapper {
  display: flex;
  gap: 30px;
  flex-flow: column;
  width: 80%;
  max-width: 800px;
  margin: 0 auto;
}

main .faq-wrapper .faq {
  display: flex;
  flex-flow: column;
  border: 3px solid var(--border);
  background: var(--gradient-box-alt);
  border-radius: var(--radius-medium);
  overflow: hidden;
  transition: border-color 0.3s ease;
}

main .faq-wrapper .faq:hover {
  border-color: var(--gold);
}

main .faq-wrapper .faq-question {
  padding: 25px 85px 25px 35px;
  font-size: 16px;
  font-weight: bold;
  color: #f7f7f7;
  cursor: pointer;
  position: relative;
}

main .faq-wrapper .faq-question::after {
  content: url(../images/product-pages/arrow-down.svg);
  width: 28px;
  height: 28px;
  position: absolute;
  right: 25px;
  top: 25px;
  font-size: 1.2em;
}

main .faq-wrapper .faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(.4,0,.2,1);
  margin: 0 85px 0 35px;
  border-top: 3px solid var(--border);
}

main .faq-wrapper .faq-answer-content {
  padding: 20px 0 40px 0;
  line-height: 1.5;
  color: var(--grey);
}

main .faq-wrapper .faq-answer a {
  color: #9b3be4;
  text-decoration: none;
  font-weight: bold;
}

main .faq-wrapper .faq-answer a:hover {
  text-decoration: underline;
}

main .faq-wrapper input[type=checkbox] {
  display: none;
}

main .faq-wrapper input[type=checkbox]:checked + .faq-question::after {
  content: url(../images/product-pages/arrow-up.svg);
}

main .faq-wrapper input[type=checkbox]:checked + .faq-question + .faq-answer {
  max-height: 2000px;
}

main .faq-wrapper .faq:has(input[type=checkbox]:checked) {
  border-color: var(--gold);
}