/*
 * Shared Home Row max width: --puva-home-content-width (1420px).
 * Puva Product Review Banner · Home section.
 * Native Flatsome section / row / col hold editable card shortcodes.
 * Scoped so the original Flatsome header and future sections are unaffected.
 */
:root {
  --puva-home-content-width: 1420px;
}
body.home .page-wrapper {
  padding-top: 0;
  padding-bottom: 0;
}
.puva-featured-section.section {
  background: linear-gradient(0deg, #f4f3f3 0%, #d3ceff 100%);
  padding: 22px 0 50px !important;
}
.puva-featured-section .section-bg {
  background: transparent !important;
}
.puva-featured-section .section-content {
  padding: 0;
}
.puva-featured-section .row.puva-featured-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 28px;
  width: calc(100% - 48px) !important;
  max-width: 1604px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.puva-featured-section .puva-featured-row > .col {
  padding: 0 !important;
  margin: 0;
  min-width: 0;
}
.puva-featured-section .puva-featured-row > .puva-featured-left,
.puva-featured-section .puva-featured-row > .puva-featured-right {
  flex: 0 0 calc((100% - 56px) / 4);
  width: calc((100% - 56px) / 4);
  max-width: calc((100% - 56px) / 4);
}
.puva-featured-section .puva-featured-row > .puva-featured-middle {
  flex: 0 0 calc((100% - 56px) / 2);
  width: calc((100% - 56px) / 2);
  max-width: calc((100% - 56px) / 2);
}
.puva-featured-section .puva-featured-row > .puva-featured-middle > .col-inner {
  height: 100%;
  display: flex;
}
.puva-featured-card {
  color: #0c1933;
  font-family: "DM Sans", Arial, sans-serif;
}
.puva-featured-section .puva-featured-card a,
.puva-featured-section .puva-featured-card a:hover {
  text-decoration: none;
}
.puva-featured-section .puva-featured-card--small {
  margin: 0 0 45px;
}
.puva-featured-section
  .puva-featured-side
  > .col-inner
  > .puva-featured-card:last-child {
  margin-bottom: 0;
}
.puva-featured-card--small .puva-featured-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 382 / 210;
  overflow: hidden;
  border-radius: 7px;
}
.puva-featured-card--small .puva-featured-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 382 / 210;
  object-fit: cover;
  border-radius: 7px;
  transition: transform 0.35s ease;
}
.puva-featured-card--small:hover .puva-featured-thumb img {
  transform: scale(1.08);
}
.puva-featured-card--small .puva-featured-copy {
  padding-top: 25px;
}
.puva-featured-section .puva-featured-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  border-radius: 50px;
  margin: 0 0 15px;
  padding: 4px 12px;
  background: #c3bcff;
  color: #0c1933 !important;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.55;
  white-space: nowrap;
}
.puva-featured-section .puva-featured-badge--technology {
  background: #c3bcff;
}
.puva-featured-section .puva-featured-badge--lifestyle {
  background: #72ccff;
}
.puva-featured-section .puva-featured-badge--laptops {
  background: #f3e8de;
}
.puva-featured-section .puva-featured-badge--health-wellness {
  background: #ffc1c4;
}
.puva-featured-section .puva-featured-badge--travel {
  background: #c0efff;
}
.puva-featured-section .puva-featured-title {
  font-family: "DM Sans", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: #0c1933;
}
.puva-featured-section .puva-featured-title a {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  background-image: linear-gradient(to right, currentColor, currentColor);
  background-position: 0 96%;
  background-size: 0 2px;
  background-repeat: no-repeat;
  transition: background-size 0.25s ease;
}
.puva-featured-section .puva-featured-title a:hover {
  color: #0c1933;
  background-size: 100% 2px;
}
.puva-featured-card--small .puva-featured-title {
  font-size: 23.5px;
  line-height: 1.5;
  margin: 0 0 12px;
}
.puva-featured-section .puva-featured-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  column-gap: 29px;
  row-gap: 7px;
}
.puva-featured-section .puva-featured-meta li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #0c1933;
  white-space: nowrap;
}
.puva-featured-section .puva-featured-meta li i {
  font-size: 15px;
  line-height: 1;
}
.puva-featured-card--hero {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 750px;
  border-radius: 7px;
  overflow: hidden;
  isolation: isolate;
}
.puva-featured-hero-photo,
.puva-featured-hero-photo > img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.puva-featured-hero-photo > img {
  object-fit: cover;
  object-position: center center;
}
.puva-featured-hero-link {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.puva-featured-hero-copy {
  position: absolute;
  left: 50%;
  bottom: 65px;
  z-index: 2;
  transform: translateX(-50%);
  width: 74%;
  max-width: 580px;
  margin: 0;
  padding: 35px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.37);
  -webkit-backdrop-filter: blur(8.7px);
  backdrop-filter: blur(8.7px);
  transition: background-color 0.25s ease;
}
.puva-featured-card--hero .puva-featured-hero-copy:hover {
  background-color: rgba(255, 255, 255, 0.87);
}
.puva-featured-card--hero .puva-featured-badge {
  margin-bottom: 17px;
}
.puva-featured-card--hero .puva-featured-title {
  font-size: 25.5px;
  line-height: 1.5;
  margin: 0 0 12px;
}
.puva-featured-section .puva-featured-bottom {
  display: flex;
  gap: 15px;
  justify-content: space-between;
  align-items: center;
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #dad9d9;
}
.puva-featured-section .puva-featured-author {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: #4c5063;
}
.puva-featured-author .puva-featured-avatar {
  display: block;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
}
.puva-featured-section .puva-featured-details {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  color: #555d6e;
}
.puva-featured-section .puva-featured-details:hover {
  color: #5740ff;
}
.puva-featured-details i {
  font-size: 15px;
}
@media (max-width: 1199px) {
  .puva-featured-section .row.puva-featured-row {
    width: calc(100% - 48px) !important;
    gap: 22px;
  }
  .puva-featured-section .puva-featured-row > .puva-featured-left,
  .puva-featured-section .puva-featured-row > .puva-featured-right {
    flex-basis: calc((100% - 44px) / 4);
    width: calc((100% - 44px) / 4);
    max-width: calc((100% - 44px) / 4);
  }
  .puva-featured-section .puva-featured-row > .puva-featured-middle {
    flex-basis: calc((100% - 44px) / 2);
    width: calc((100% - 44px) / 2);
    max-width: calc((100% - 44px) / 2);
  }
  .puva-featured-card--small .puva-featured-title {
    font-size: 19px;
    line-height: 1.4;
  }
  .puva-featured-hero-copy {
    width: 88%;
    padding: 24px;
  }
  .puva-featured-card--hero .puva-featured-title {
    font-size: 22px;
  }
  .puva-featured-section .puva-featured-meta {
    column-gap: 15px;
  }
  .puva-featured-section .puva-featured-meta li {
    font-size: 13px;
  }
}
@media (max-width: 849px) {
  .puva-featured-section.section {
    padding: 32px 0 42px !important;
  }
  .puva-featured-section .row.puva-featured-row {
    flex-wrap: wrap;
    gap: 25px;
    width: calc(100% - 32px) !important;
    max-width: 730px !important;
  }
  .puva-featured-section .puva-featured-row > .puva-featured-middle {
    order: -1;
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
  .puva-featured-section .puva-featured-row > .puva-featured-left,
  .puva-featured-section .puva-featured-row > .puva-featured-right {
    flex: 0 0 calc(50% - 12.5px);
    width: calc(50% - 12.5px);
    max-width: calc(50% - 12.5px);
  }
  .puva-featured-card--hero {
    height: 640px;
    min-height: 0;
  }
  .puva-featured-hero-copy {
    max-width: 540px;
    bottom: 28px;
  }
  .puva-featured-card--small .puva-featured-title {
    font-size: 19px;
  }
  .puva-featured-card--small .puva-featured-copy {
    padding-top: 17px;
  }
}
@media (max-width: 549px) {
  .puva-featured-section .row.puva-featured-row {
    width: calc(100% - 24px) !important;
    gap: 30px;
  }
  .puva-featured-section .puva-featured-row > .puva-featured-left,
  .puva-featured-section .puva-featured-row > .puva-featured-right {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
  .puva-featured-card--hero {
    height: 520px;
  }
  .puva-featured-hero-copy {
    width: calc(100% - 28px);
    bottom: 14px;
    padding: 16px;
  }
  .puva-featured-card--hero .puva-featured-title {
    font-size: 19px;
    line-height: 1.4;
  }
  .puva-featured-card--hero .puva-featured-badge {
    margin-bottom: 11px;
  }
  .puva-featured-section .puva-featured-meta {
    gap: 8px 12px;
  }
  .puva-featured-section .puva-featured-meta li {
    font-size: 12px;
  }
  .puva-featured-section .puva-featured-bottom {
    margin-top: 12px;
    padding-top: 12px;
  }
  .puva-featured-section .puva-featured-author,
  .puva-featured-section .puva-featured-details {
    font-size: 12px;
  }
  .puva-featured-card--small {
    margin-bottom: 30px !important;
  }
  .puva-featured-card--small .puva-featured-title {
    font-size: 21px;
  }
}
/* Puva circular categories — live WordPress taxonomy and local media images. */
.puva-categories-section.section {
  background: #f4f3f3;
  padding: 100px 0 94px !important;
}
.puva-categories-section .section-bg {
  background: transparent !important;
}
.puva-categories-section .row.puva-categories-row {
  max-width: var(--puva-home-content-width, 1420px) !important;
  width: calc(100% - 48px) !important;
  margin: 0 auto !important;
}
.puva-categories-section .puva-categories-row > .col {
  padding: 0 !important;
}
.puva-category-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 24px 14px;
  align-items: start;
}
.puva-category-card {
  min-width: 0;
  color: #0b1734;
  text-align: center;
  transition: transform 0.3s ease;
}
.puva-category-card:hover {
  transform: translateY(-5px);
}
.puva-category-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 156px;
  height: 156px;
  max-width: 100%;
  aspect-ratio: 1;
  margin: 0 auto;
  border: 3px solid #fff;
  border-radius: 50%;
  overflow: hidden;
  background: #e5e3ec;
}
.puva-category-photo img.puva-category-image,
.puva-category-placeholder {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: 50%;
  transition: transform 0.35s ease;
}
.puva-category-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #aaa5bc;
  font-size: 38px;
}
.puva-category-card:hover .puva-category-image {
  transform: scale(1.08);
}
.puva-categories-section .puva-category-name {
  margin: 25px 0 0;
  color: #0b1734;
  font:
    600 18px/1.35 "DM Sans",
    Arial,
    sans-serif;
  letter-spacing: 0;
  text-transform: none;
}
.puva-categories-section .puva-category-name a {
  color: inherit;
  text-decoration: none;
}
.puva-categories-section .puva-category-name a:hover {
  color: #5740ff;
}
.puva-categories-section .puva-category-count {
  display: block;
  margin-top: 12px;
  color: #707288;
  font:
    400 14px/1.5 "DM Sans",
    Arial,
    sans-serif;
  white-space: nowrap;
}
@media (max-width: 1199px) {
  .puva-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 40px 18px;
  }
  .puva-categories-section.section {
    padding: 72px 0 78px !important;
  }
}
@media (max-width: 699px) {
  .puva-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 35px 12px;
  }
  .puva-category-photo {
    width: 132px;
    height: 132px;
  }
  .puva-categories-section .puva-category-name {
    margin-top: 16px;
    font-size: 17px;
  }
  .puva-categories-section .puva-category-count {
    margin-top: 8px;
    font-size: 12px;
  }
}
@media (max-width: 479px) {
  .puva-categories-section.section {
    padding: 56px 0 58px !important;
  }
  .puva-categories-section .row.puva-categories-row {
    width: calc(100% - 24px) !important;
  }
  .puva-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 12px;
  }
  .puva-category-photo {
    width: min(140px, 100%);
    height: auto;
  }
  .puva-categories-section .puva-category-name {
    font-size: 18px;
  }
  .puva-categories-section .puva-category-count {
    font-size: 12px;
  }
}
