@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@font-face {
  font-family: "SofiaRegular";
  src: url("/fonts/sofia/regular.otf") format("opentype");
  font-weight: 400;
}
@font-face {
  font-family: "SofiaMedium";
  src: url("/fonts/sofia/medium.otf") format("opentype");
  font-weight: 600;
}
@font-face {
  font-family: "SofiaBold";
  src: url("/fonts/sofia/bold.otf") format("opentype");
  font-weight: 900;
}

:root {
  --pry-color: #744F2C;
  --pry-color-rgb: 116, 79, 44;
  --cream-color: #F4F0E9;
  --grey-color: #374151;
  --green-color: #00A76E;
  --green-color-50: #00A76E77;
  --blue-color: #4D88BA;
  --blue-color-50: #4D88BA77;
  --brown-color: #8A3A34;
  --brown-color-50: #8A3A3477;
  --light-brown-color: #B17964;
  --red-color: #D14010;
  --orange-color: #FFC671;
  --orange-color-50: #CF935877;
}

body {
  font-family: 'SofiaRegular', Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 18px;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: #fff;
  color: #1E1E1E;
}
footer {
  margin-top: auto;
  padding-block: 100px;
  background-color: #000;
  color: #fff;
}
footer ul {
  list-style: none;
}
footer a {
  color: #fff !important;
  font-size: 16px;
  font-family: 'SofiaRegular';
  transition: .5s;
  padding-bottom: 5px;
  opacity: .9;
  transition: .5s;
}
footer a:hover {
  transition: .5s;
  opacity: 1;
}
footer .social {
  display: flex;
  gap: 5px;
}
footer .social img {
  height: 40px;
}
label {
  font-size: 15px;
  opacity: .9;
}
.visibility-hidden {
  visibility: hidden !important;
}
.text-blue {
  color: var(--blue-color);
}
.text-green {
  color: var(--green-color);
}
.text-red {
  color: var(--red-color);
}
.text-orange {
  color: var(--orange-color);
}
.text-brown {
  color: var(--brown-color);
}
.text-light-brown {
  color: var(--light-brown-color);
}
.bg-cream {
  background-color: var(--cream-color);
}
.bg-blue {
  background-color: var(--blue-color);
}
.bg-green {
  background-color: var(--green-color);
}
.bg-red {
  background-color: var(--red-color);
}
.bg-orange {
  background-color: var(--orange-color);
}
.bg-brown {
  background-color: var(--brown-color);
}
.bg-light-brown {
  background-color: var(--light-brown-color);
}
.rd-top {
  border-top-left-radius: 30px;
  border-top-right-radius: 30px;
}
.rd-bottom {
  border-bottom-left-radius: 30px;
  border-bottom-right-radius: 30px;
}
.text-18 {
  font-size: 18px !important;
}
a {
  text-decoration: none;
}
.fw-bold, b, strong {
  font-family: 'SofiaBold';
}
.inter, .inter * {
  font-family: 'Inter';
}
.logo {
  height: 30px
}
.app-container {
  padding-top: 50px;
}
#mainNav {
  transition: background-color 0.4s ease-in-out;
}
.navbar {
  position: relative;
  top: 0px;
  width: 100%;
  background-color: #ffffff;
  /* z-index: 101; */
  transition: all 0.5s ease;
}
.navbar .nav-link {
  font-size: 16px;
  color: #000000;
}
.navbar .underline {
  position: relative;
}
.navbar .underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 1px;
  width: 100%;
  height: 1px;
  background-color: currentColor;

  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s ease;
}

.navbar .underline:hover::after, .navbar .underline.active::after {
  transform: scaleX(1);
}
.navbar .btn-nav {
  position: relative;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  align-items: center;
  height: 34px;
  font-size: 16px;
  font-family: 'SofiaMedium';
  padding: 20px;
  color: #fff;
  background-color: #000;
  border-radius: 59px;
  border:1px solid rgba(161, 161, 161, .2);
  box-shadow: 0px 1px 8.6px 0 rgba(0, 0, 0, 0.09)
}
.btn-nav:hover, .btn-nav:focus {
  background-color: #000;
  color: #fff;
  box-shadow: none;
}
.navbar.brown-nav {
  background-color: #532A1F;
}
.navbar.brown-nav .nav-link, .navbar.brown-nav .icon-btn, .navbar.brown-nav .btn, .navbar.brown-nav .navbar-toggler {
  color: #fff;
}
.navbar.brown-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-teal-nav {
  background-color: #d1dce3;
}
.navbar.lt-teal-nav .nav-link, .navbar.lt-teal-nav .icon-btn, .navbar.lt-teal-nav .btn, .navbar.lt-teal-nav .navbar-toggler {
  color: #333;
}
.navbar.lt-teal-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-sandal-nav {
  background-color: #f4f0e9;
}
.navbar.lt-sandal-nav .nav-link, .navbar.lt-sandal-nav .icon-btn, .navbar.lt-sandal-nav .btn, .navbar.lt-sandal-nav .navbar-toggler {
  color: #333;
}
.navbar.lt-sandal-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.yellow-nav {
  background-color: #fff5d5;
}
.navbar.yellow-nav .nav-link, .navbar.yellow-nav .icon-btn, .navbar.yellow-nav .btn, .navbar.yellow-nav .navbar-toggler {
  color: #333;
}
.navbar.yellow-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-brown-nav {
  background-color: #6E4739;
}
.navbar.lt-brown-nav .nav-link, .navbar.lt-brown-nav .icon-btn, .navbar.lt-brown-nav .btn, .navbar.lt-brown-nav .navbar-toggler {
  color: #fff;
}
.navbar.lt-brown-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.blue-nav {
  background-color: #558DBD;
}
.navbar.blue-nav .nav-link, .navbar.blue-nav .icon-btn, .navbar.blue-nav .btn, .navbar.blue-nav .navbar-toggler {
  color: #fff;
}
.navbar.blue-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-blue-nav {
  background-color: #DFECF6;
}
.navbar.lt-blue-nav .nav-link, .navbar.lt-blue-nav .icon-btn, .navbar.lt-blue-nav .btn, .navbar.lt-blue-nav .navbar-toggler {
  color: #000;
}
.navbar.lt-blue-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-green-nav {
  background-color: #DAEEE7;
}
.navbar.lt-green-nav .nav-link, .navbar.lt-green-nav .icon-btn, .navbar.lt-green-nav .btn, .navbar.lt-green-nav .navbar-toggler {
  color: #000;
}
.navbar.lt-green-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.lt-grey-nav {
  background-color: #d1dce2;
}
.navbar.lt-grey-nav .nav-link, .navbar.lt-grey-nav .icon-btn, .navbar.lt-grey-nav .btn, .navbar.lt-grey-nav .navbar-toggler {
  color: #000;
}
.navbar.lt-grey-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.grey-nav {
  background-color: #42403a;
}
.navbar.grey-nav .nav-link, .navbar.grey-nav .icon-btn, .navbar.grey-nav .btn, .navbar.grey-nav .navbar-toggler {
  color: #fff;
}
.navbar.grey-nav .btn-nav {
  background-color: #000;
  color: #fff;
}
.navbar.sandal-nav {
  background-color: #58504a;
}
.navbar.sandal-nav .nav-link, .navbar.sandal-nav .icon-btn, .navbar.sandal-nav .btn, .navbar.sandal-nav .navbar-toggler {
  color: #fff;
}
.navbar.sandal-nav .btn-nav {
  background-color: #000;
  color: #fff;
}
.navbar.sky-nav {
  background-color: #355c79;
}
.navbar.sky-nav .nav-link, .navbar.sky-nav .icon-btn, .navbar.sky-nav .btn, .navbar.sky-nav .navbar-toggler {
  color: #fff;
}
.navbar.sky-nav .btn-nav {
  background-color: #fff;
  color: #000;
}
.navbar.dark-sky-nav {
  background-color: #27323f;
}
.navbar.dark-sky-nav .nav-link, .navbar.dark-sky-nav .icon-btn, .navbar.dark-sky-nav .btn, .navbar.dark-sky-nav .navbar-toggler {
  color: #fff;
}
.navbar.dark-sky-nav .btn-nav {
  background-color: #000;
  color: #fff;
}
.navbar.cream-nav {
  background-color: #CAB8AB;
}
.navbar.lt-cream-nav {
  background-color: #E6D8CE;
}
.dropdown-menu, .dropdown-menu.show {
  transition: opacity 0.5s ease;
  padding: 0;
  overflow: hidden;
  opacity: 0;
  right:0 !important;
  left:auto !important;
  border-radius: 10px;
  margin-top: -2px;
  margin-left: -1px;
  border-top-right-radius: 0 !important;
}

.navbar-nav .nav-item.dropdown:hover .dropdown-menu {
  opacity: 1;
}
.navbar-nav .nav-item.dropdown:hover .dropdown-menu {
  display: block;
}

.navbar-nav .nav-item.dropdown .dropdown-menu {
  display: none;
}

.dropdown-item {
  font-size: 14px;
  padding: 10px 40px 10px 20px;
  cursor: pointer;
}
.dropdown-item.active {
  background-color: #09415c;
  color: #fff;
}
.dropdown-item:focus, .dropdown-item:hover {
  background-color: #1F1F1F;
  color: #fff;
}
.hero {
  overflow: hidden;
  min-height: 700px;
}
.cream-bg {
  background-color: var(--cream-color);
}
.green-bg {
  background-color: #DAEEE7;
}

.btn-pry {
  background-color: var(--cream-color);
  color: #000;
  transition: .5s;
}
.btn-pry:hover, .btn-pry:focus {
  background-color: #09415c;
  color: #fff;
  transition: .5s;
}
.btn-brown {
  background-color: #40221A;
  color: #fff;
}
.btn-black {
  background-color: #000;
  color: #fff;
}
.btn-white {
  background-color: #fff;
  color: #000;
}
.btn-grey {
  background-color: #0A2633;
  color: #F7EAB4;
}
.btn-white-transparent {
  background-color: #ffffff !important;
  color: #0A2633 !important;
  transition: .5s;
}
.btn-white-transparent:hover, .btn-white-transparent:focus {
  opacity: .9;
  transition: .5s;
}
.orange-pill {
  background-color: #FFC671;
  color: #374151;
}
.centered {
  left: 50%;
  bottom: 15px;
  transform: translate(-50%, -15px);
}
.title {
  font-size: 62px;
  line-height: 70px;
  font-family: 'SofiaMedium';
  letter-spacing: -3px;
  /* color: var(--grey-color); */
}
.reg {
  font-family: 'SofiaRegular' !important;
}
.title.sm {
  font-size: 50px;
  line-height: 60px;
}
.subtitle {
  font-size: 40px;
  line-height: 50px;
  font-family: 'SofiaRegular';
  letter-spacing: -0.5px;
  /* color: var(--grey-color); */
}
.subtitle.sm {
  font-size: 34px;
  line-height: 42px;
}
.header {
  font-size: 30px;
  letter-spacing: -0.5px;
  color: var(--grey-color);
}
.subheader {
  font-size: 26px;
  letter-spacing: -0.5px;
  /* color: var(--grey-color); */
}
.hero-title {
  font-family: 'SofiaMedium';
  font-size: 87px;
  line-height: 87px;
  letter-spacing: -5px;
  color: #40221A;
}
.hero-headline {
  font-size: 22px;
  margin-top: 10px;
  letter-spacing: -1px;
  color: #7A7A7A;
}
.hero-headline.medium {
  font-size: 28px;
}
.swiper {
  overflow: hidden;
  /* height: 250px; */
  height: 85px;
  position: relative;
}
.swipes {
  transition: transform 0.6s ease;
}
.swipe {
  height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@property --gradient-stop {
  syntax: '<color>';
  initial-value: transparent;
  inherits: false;
}

.prg {
  --gradient-stop: var(--cream-color);
  background: linear-gradient(to bottom, var(--cream-color) 0%, var(--cream-color) 50%, var(--gradient-stop) 100%);
  padding: 20px;
  padding-bottom: 0;
  display: flex;
  flex-direction: column;
  border-radius: 24px;
  height:400px;
  transition: --gradient-stop 0.4s ease, transform 0.5s ease;
  position: relative;
  overflow: hidden;
}

.prg:hover {
  /* transform: translateY(-4px); */
}

.progress.gv-progress {
  height: 10px;
}

.prg.blue:hover { --gradient-stop: var(--blue-color-50); }
.prg.green:hover { --gradient-stop: var(--green-color-50); }
.prg.orange:hover { --gradient-stop: var(--orange-color-50); }
.prg.brown:hover { --gradient-stop: var(--brown-color-50); }

.prg>p {
  font-size: 1.2rem;
}
.prg img {
  margin-top: auto;
  width: 100%;
}

.prg.white {
    --gradient-stop: #fff;
  background: #fff linear-gradient(to right, #fff 0%, #fff0 40%, var(--gradient-stop) 100%);
  padding: 20px;
  padding-bottom: 0;
  display: flex;
  flex-direction: row;
  border-radius: 24px;
  transition: --gradient-stop 0.4s ease, transform 0.5s ease;
}
.prg.white img {
  width: 50%;
}
.prg .glass {
  position: absolute;
  color: #fff;
  opacity: 0;
  height:360px;
  width: 86%;
  transition: .5s;
}
.prg .glass .btn:hover {
  transform: translateY(-4px);
}
.prg:hover .glass {
  position: absolute;
  backdrop-filter:none;
  color: #fff;
  opacity: 1;
  height:360px;
  width: 86%;
  transition: .5s;
}
.prg.cgm-bg {
  background: linear-gradient(to left, #CF965B 0%, #E7BF7A 100%);
}
.prg.sleep-bg {
  background: linear-gradient(to bottom, #F3C763 0%, #D49F3F 100%);
}
.prg.bp-bg {
  background: linear-gradient(to bottom, #CDAF95 0%, #D4B89D 100%);
}
.prg.tens-bg {
  background: linear-gradient(to bottom, #B99362 0%, #81613C 100%);
}

.coverage {
  display: flex;
  justify-content: space-around;
  gap:40px;
  width: 100%;
}
.coverage img {
  width:140px;
  object-fit: contain;
}
.coverage img.sm {
  width: 92px;
}
.border-rounded {
  border-radius: 20px;
}
.border-rounded-sm {
  border-radius: 12px;
}
.brown-gradient {
  background-image: url('/img/brown-gradient.svg');
  background-size: cover;
  color: #fff;
}
.brown-gradient .clear-bg {
  background-color: rgba(59, 30, 20, .4);
}
.lt-brown-gradient {
  background-image: url('/img/lt-brown-gradient.svg');
  background-size: cover;
  color: #fff;
}
.lt-brown-gradient .clear-bg {
  background-color: rgba(59, 30, 20, .4);
}
.lt-cream-gradient {
  background-image: url('/img/lt-cream-gradient.svg');
  background-size: cover;
  background-position: top;
}
.lt-cream-gradient .clear-bg {
  background-color: rgba(255, 255, 255, .6);
}
.fda-approved img {
  margin-top: -150px;
}
.cream-gradient {
  background-image: url('/img/md-bg.svg');
  background-size: cover;
  color: #000;
}
.sunset-gradient {
  background-image: url('/img/sunset-bg.svg');
  background-size: cover;
  color: #000;
}
.yellow-gradient {
  background: linear-gradient(to bottom, #FFF5D4 0%, #FFFAE8 100%);
}

.slider-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 10px 0;
  transition: opacity 0.3s;
  --slide-width: 80vw;
  --slide-height: 600px;
  --slide-gap: 20px;
}
.slider-container.md {
  padding-top: 0;
  --slide-width:30vw;
  --slide-height:350px;
}
.slider-container.sm {
  padding-top: 0;
  --slide-width:28vw;
  --slide-height:280px;
}
.slider-container.vertical {
  height: 300px;
  overflow: visible;
}
.slide-grad { background: linear-gradient(135deg, #77E8E9 0%, #716FFF 100%); }
.ell-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;     /* number of lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #fff;
}
.slider-container.paused .slider-track {
  cursor: default;
}

.slider-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.slider-track {
  display: flex;
  gap: var(--slide-gap);
  cursor: grab;
  user-select: none;
  pointer-events: auto;
}

.slider-track:active {
  cursor: grabbing;
}

.slide {
  flex: 0 0 var(--slide-width);
  height: var(--slide-height);
  border-radius: 24px;
  display: flex;
  align-items: flex-start;
  padding: 40px;
  color: white;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease;
  background-size: cover;
}
.slider-container.vertical .slide{
  height: auto !important;
  flex: auto !important;
}
.testimonials .slide {
  /*min-height: 350px;*/
}

.slide:not(.rm-grad)::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.35), transparent);
}

.slide-content {
  position: relative;
  z-index: 1;
  color: #fff;
}

.slide-title {
  font-size: 45px;
  line-height: 50px;
  width: 40%;
  margin-bottom: 5px;
}

.slide-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(0,0,0,.6);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  opacity: 0;
  transition: all 0.3s;
  pointer-events: none;
}

.slider-container:hover .slide-btn {
  opacity: 1;
  pointer-events: auto;
}

.slide-btn:hover {
  background: rgba(0,0,0,.5);
}

.slide-btn.left { left: 40px; }
.slide-btn.right { right: 40px; }

/* Container for nav buttons */
#test-slider.owl-carousel .owl-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
}

/* Button styles */
#test-slider.owl-carousel .owl-nav button {
  position: static;
  transform: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items:center;
  background: #fff !important;
  color: #1F1F1F;
  border-radius: 50%;
  font-size: 18px;
  transition: all 0.3s ease;
}

#test-slider.owl-carousel .owl-nav button:hover {
  background: #333 !important;
}

.accordion-item {
  border:0;
  border-bottom: 0.1875rem solid rgba(0, 0, 0, 0.06);
}
.accordion-button:not(.collapsed), .accordion-button {
  border-radius: 0;
  background: none;
  box-shadow: none !important;
  font-size: 32px;
  color: #000000;
  font-family: 'SofiaMedium';
}
.accordion-button::after {
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    content: "\f067";
    background-image: none;
    transition: transform 0.25s ease, opacity 0.15s ease;
    width: 40px;
    height: 40px;
    background-color: #F3EFEF;
    border-radius: 100%;
    display: grid;
    place-items: center;
    font-size: 22px;
    transition: .3s;
}
.accordion-button:not(.collapsed)::after {
    background-image: none;
    content: "\f068";
    transition: transform 0.25s ease, opacity 0.15s ease;
    margin-top: 15px;
}
.accordion-button:not(.collapsed):hover::after {
  transform: scale(1.3) rotate(180deg);
}
.accordion-button:hover::after {
  transform: scale(1.3);
  background-color: #1E1E1E;
  color: #fff;
  transition: .3s;
}
.accordion-body {
  font-size: 22px;
}
.accordion-item:last-of-type, .accordion-item:first-of-type {
  border-radius: 0;
}
.parallax {
  background-position: center 0px;
  background-repeat: no-repeat;
  will-change: background-position;
}
.callout {
  height: 700px;
  background-image: url('/img/webp/callout.webp');
  background-size: cover;
}
.callout.about {
  background-image: url('/img/webp/callout-about.webp');
}
.page-hero {
  margin-top: 15px;
  min-height: 900px;
  background-color: rgba(0,0,0,0.2);
  border-radius: 30px;
  display: flex;
  flex-direction: column;
}
.page-hero.tens {
  background-image: url('/img/tens-hero.jpg');
  background-size: cover;
}
.page-hero.cgm {
  background-image: url('/img/cgm-hero.jpg');
  background-size: cover;
}
.page-hero.hypertension {
  background-image: url('/img/bp-hero.jpg');
  background-size: cover;
}
.page-hero.sleep {
  background-image: url('/img/sleep-hero.jpg');
  background-size: cover;
}
.page-hero.selfpay {
  background-image: url('/img/webp/selfpay-hero.webp');
  background-size: cover;
  min-height: 750px
}
.bg-telemedicine {
  background-image: url('/img/webp/steps/telemedicine.webp');
  background-size: cover;
}
.page-title {
  font-size: 52px;
  line-height: 58px;
  font-weight: 'SofiaMedium';
  letter-spacing: -2px
}
.page-hero p {
  font-size: 22px;
}
.page-hero .sm-text {
  font-size: 16px;
  color: #fff;
}
.glass {
  display: flex;
  flex-direction: column;
  min-height: 180px;
  background: rgba(38, 38, 38, .25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
.cards-wrapper {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cards-wrapper-h {
  position: relative;
}
.crd {
  background-image: url("/img/tens-target.jpg");
  border-radius: 16px;
  background-repeat: repeat;
  overflow: hidden;
}
.cards-wrapper.cgm .crd {
  background-image: url("/img/pg-cgm-new.jpg");
}
.cards-wrapper.sleep .crd {
  background-image: url("/img/pg-sleep-new.jpg");
}
.cards-wrapper.bp .crd {
  background-image: url("/img/pg-bp.jpg");
}

.crd-h {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  min-height: 350px;
  padding: 2rem;
  border-radius: 16px;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  position: relative;
  overflow: hidden;
}
.cards-wrapper-h.cgm .crd-h {
  background-image: url("/img/webp/using-cgm-simple.webp");
}
.cards-wrapper-h.sleep .crd-h {
  background-image: url("/img/using-sleep-simple.jpg");
}
.cards-wrapper-h.sleep-2 .crd-h {
  background-image: url("/img/sleep-custom-new.jpg");
}
.cards-wrapper-h.bp .crd-h {
  background-image: url("/img/using-bp-simple.jpg");
}
.cards-wrapper-h.bp-2 .crd-h {
  background-image: url("/img/bp-custom.jpg");
}
.num {
  height: 30px;
  width: 30px;
  line-height: 34px;
  background-color: #FFC671;
  color: #1F1F1F;
  display: grid;
  place-items: center;
  border-radius: 100%;
}
.blue-card {
  background-color: #DFECF6;
  color: #253F55;
}
.tst-container {
  background-image: url('/img/webp/testimonials.webp');
  background-size: cover;
  background-position: top;
  min-height: 1300px;
}
.tst-container.brown {
  background-image: url('/img/testimonials-2.jpg');
}
.opt-grad {
  background-image: url('/img/opt-gradient.png');
  background-size: cover;
  min-height: 400px;
  border-radius: 30px;
  transition: .7s;
  display: flex;
  flex-direction: column;
}
.opt-grad:hover {
  transform: translateY(-4px);
  transition: transform background .7s;
}
.sp-top {
  padding-top:120px;
  margin-top: 15px;
  box-shadow: inset 0 8px 8px -6px rgba(0, 0, 0, 0.05);
}
.about-section {
  margin-top: 15px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 900px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: linear-gradient(135deg,
      hsl(220, 60%, 70%),
      hsl(280, 55%, 65%),
      hsl(340, 50%, 60%));
  z-index: 0;
}

.about-content {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top-text {
    position: absolute;
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 20;
    opacity: 0;
    transition: opacity 0.5s ease;
    width: 90%;
    will-change: transform, opacity, filter;
}

.top-text {
    color: white;
    font-size: 20px;
    font-weight: 300;
}

.spinning-text-container {
    position: absolute;
    bottom: -72vw;
    left: 50%;
    width: 110vw;
    height: 110vw;
    pointer-events: none;
    will-change: transform, filter;
}

.white-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 76vw;
    height: 76vw;
    background: white;
    border-radius: 50%;
    z-index: 1;
}

.spinning-text {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 2;
}

.spinning-text text {
    fill: white;
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -1.7px;
}

.man-image {
    position: absolute;
    bottom:1%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 15;
    width:60vw;
    height: auto;
    opacity: 0;
    transition: opacity 0.5s ease;
    object-fit: cover;
}

.content-section {
    position: relative;
    margin-top: 820px;
    min-height: 100vh;
    background: white;
    z-index: 2;
    box-shadow: 0 -10px 60px rgba(0, 0, 0, 0.2);
    border-radius: 30px 30px 0 0;
}
.wistia_click_to_play {
  display: grid;
  place-items: center;
}
.wistia_click_to_play > div > div:nth-child(2),
.wistia_click_to_play > div > div:nth-child(3) {
  opacity: 0;
}
.wistia-popup {
  position: relative;
}
.wistia-popup .play-blue {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 180px;
  width: 180px;
  animation: pulse-animation 5s infinite;
  cursor: pointer;
}
.wistia-popup .play-white {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 120px;
  width: 120px;
  cursor: pointer;
  animation: pulse-animation 5s infinite;
}
.wistia-popup .play-white > img {
  width: 100%;
  height: 100%;
}

@keyframes pulse-animation {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
  50% {
    transform: translate(-50%, -50%) scale(1.1);
    opacity: 0.95;
  }
  100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}
.shd.purple {
  color: #6649B6;
}
.shd.mrn {
  color: #7F4A8B;
}
.shd.blue {
  color: #556FBA;
}
.why-exist {
  min-height: 800px;
  background-image: url('/img/webp/existing.webp');
  background-size: cover;
  border-radius: 30px;
  display: flex;
  align-items: center;
}
.article-hero {
  border-radius: 30px;
  min-height: 500px;
  background-size: cover;
  background-position: center;
  margin-top: 15px;
  display: flex;
  flex-direction: column;
}
.article-hero a {
  color: #fff;
  height: 40px;
  width: 40px;
  display: grid;
  place-items: center;
  border-radius: 100%;
  background: rgba(38, 38, 38, .25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: .5s;
}
.article-hero a:hover {
  background: rgba(255, 255, 255, .25);
  color: rgb(38,38,38);
  transition: .5s;
}
.article-soc a{
  color: #000;
  height: 40px;
  width: 40px;
  display: grid;
  place-items: center;
  border-radius: 100%;
  border: 1px solid rgba(0, 0, 0, 0.15);
  transition: .5s;
}
.article-soc a:hover {
  color: #B48970;
  transition: .5s;
}
.feedback-btn {
  background-color:#B48970;
  height: 50px;
  width: 50px;
  display: grid;
  place-items: center;
  border-radius: 100%;
  color: #fff;
  font-size: 20px;
}
.scroll-margin {
  scroll-margin-top: 80px;
}
.takeaway {
  color: #000000;
  transition: .5s;
}
.takeaway:hover {
  color: var(--blue-color);
  transition: .5s;
}
.article-container p, .article-container p *, .article-container li, .article-container li * {
  font-family: sans-serif;
  font-size: 17px;
  line-height: 27px;
  /* text-align: justify; */
}
.upshift-160-240 {
  margin-top: -240px;
}

.mt-path-gv {
  margin-top: -80px;
}

@media screen and (max-width:1399px) {
  .slider-container {
    --slide-width: 70vw;
    --slide-height: 500px;
  }
  .slider-container.sm {
    --slide-width:28vw;
    --slide-height:250px;
  }
  .slide-title {
    font-size: 40px;
    line-height: 50px;
    width: 60%;
  }
  .slide .subtitle.sm {
    font-size: 28px;
    line-height: 40px;
  }
  .callout {
    background-position: left;
    height: 600px;
  }
  .title {
    font-size: 54px;
    line-height: 64px;
  }
  .title.sm {
    font-size: 50px;
    line-height: 60px;
  }
  .page-hero {
    min-height: 800px;
  }
  .tst-container {
    min-height: 1000px;
  }
  .about-section {
    height: 750px;
  }
  .top-text {
    top:80px;
  }
  .content-section {
    margin-top: 650px;
  }
}
@media screen and (max-width:1299px) {
  .about-section {
    height: 700px;
  }
  .content-section {
    margin-top: 600px;
  }
}
@media screen and (max-width:1199px) {
  .about-section {
    height: 650px;
  }
  .content-section {
    margin-top: 550px;
  }
  .top-text {
    top:90px;
  }
  .page-hero {
    min-height: 750px
  }
  .page-hero.selfpay {
    min-height: 600px;
  }
  .hero-title {
    font-size: 67px;
    line-height: 67px;
  }
  .prg img {
    width: 80%;
    margin-inline: auto;
  }
  .coverage {
    flex-wrap: wrap;
    justify-content: center;
    gap:40px;
  }
  .coverage img {
    width: 120px;
  }
  .coverage img.sm {
    width: 80px;
  }
  .title {
    font-size: 52px;
    line-height: 60px;
  }
  .title.sm {
    font-size: 45px;
    line-height: 55px;
  }
  .subtitle {
    font-size: 32px;
    line-height: 40px;
  }
  .subtitle.sm {
    font-size: 30px;
    line-height: 38px;
  }
  .slider-container {
    --slide-width: 60vw;
    --slide-height: 400px;
  }
  .slider-container.sm {
    --slide-width:28vw;
    --slide-height:200px;
  }
  .slide-title {
    font-size: 30px;
    line-height: 40px;
    width: 60%;
  }
  .slide .subtitle.sm {
    font-size: 24px;
    line-height: 34px;
  }
  .callout {
    height: 600px;
  }
  .lt-brown-gradient .pricing-img {
    width: 60% !important;
    margin-left: auto;
    margin-top: -200px !important;
  }
  .lt-brown-gradient .fda-approved img {
    width: 40% !important;
    margin-top: -200px !important;
  }
  .opt-grad img {
    width: 70% !important;
  }
  .page-title {
    font-size: 45px;
    line-height: 55px;
  }
  .crd-h {
    min-height: 300px;
  }
}

@media screen and (max-width:1099px) {
  .about-section {
    height: 600px;
  }
  .content-section {
    margin-top: 500px;
  }
  .top-text {
    top: 100px;
  }
  .man-image {
    width: 55vw;
  }
}

@media screen and (max-width:991px) {
  .hero {
    min-height: auto;
    padding-block:50px;
  }
  .app-container {
    padding-top: 55px;
  }
  .about-section {
    height: 500px;
  }
  .content-section {
    margin-top: 400px;
  }
  .man-image {
    width: 55vw
  }
  .why-exist {
    min-height: auto;
  }
  .center {
    display: grid;
    place-items: center;
  }
  .page-hero {
    min-height: 500px;
    margin-top: 0;
    background-position: right;
  }
  .page-hero.selfpay {
    min-height: auto;
    background-image: url('/img/webp/selfpay-her.webp');
  }
  .sm-glass {
    background: rgba(38, 38, 38, .25);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
  .page-hero p {
    font-size: 18px;
  }

  .navbar .btn-nav {
    background-color: #000 !important;
    color: #fff !important;
  }
  .navbar-collapse {
      position: fixed;
      top: 0;
      left: -100%;
      width: 80%;
      max-width: 320px;
      height: 100vh;
      background: #fff;
      z-index: 110;
      overflow-y: auto;
      box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
      border-top-right-radius: 25px;
      border-bottom-right-radius: 25px;
    }

    .navbar-collapse.show {
        left: 0;
    }

    /* Overlay */
    .nav-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 100;
        display: none;
    }

    .nav-overlay.show {
        opacity: 1;
        visibility: visible;
    }

    /* Prevent body scroll when nav is open */
    body.nav-open {
        overflow: hidden;
    }
  .bar-container {
    padding: 15px 25px;
    background-color: #ffffff;
    height: 100vh;
    overflow: auto;
  }
  .collapse,
  .collapse.show {
    transition: none !important;
  }
  .navbar-toggler {
    font-size: 1.2rem;
    height: 40px;
    line-height: 39px;
    border:none;
  }
  #navBar .menu-close {
    font-size: 1.65rem;
    opacity: 0.5;
  }
  .navbar-toggler:focus{
    box-shadow: none;
  }
  .nav-link {
    color: #000000 !important;
    font-size: 14px;
  }
  .nav-link.active {
    color: var(--pry-color) !important;
  }
  .navbar-nav .nav-item.dropdown .dropdown-menu, .navbar-nav .nav-item.dropdown:hover .dropdown-menu {
    display: none;
  }
  .navbar-nav .nav-item.dropdown .dropdown-menu.show, .navbar-nav .nav-item.dropdown:hover .dropdown-menu.show {
    display: block;
  }
  .dropdown-menu, .dropdown-menu.show {
    opacity: 1;
    border-radius: 0;
    border: 0;
    margin-bottom:10px;
  }
  .dropdown-item {
    border-bottom: 1px solid #ddd;
  }
  .overlay {
    background-image: url('/img/overlay-mobile.svg');
    background-position: top left;
  }
  .br-separator {
    border:none;
  }
  .fda-approved img {
    margin-top: -200px;
  }
  .mb-100 {
    width: 100%;
  }
  .hero-title {
    font-size: 57px;
    line-height: 57px;
  }
  .coverage {
    gap:30px;
  }
  .coverage img {
    width: 140px;
  }
  .coverage img.sm {
    width: 100px;
  }
  .opt-grad img {
    width: 80% !important;
    margin-right:auto !important;
    margin-left:auto !important
  }
  .brown-gradient img {
    width: 70% !important;
  }
  .yellow-gradient img {
    width: 80% !important;
  }
  .yellow-gradient p {
    font-size: 18px !important;
  }
  .orange-pill {
    font-size: 16px;
  }
  .slide {
    padding: 20px;
  }
  .slide .subtitle.sm {
    font-size: 20px;
    line-height:30px
  }
  .slide-title {
    width: 100%;
    font-size: 25px;
    line-height: 35px;
  }
  .slider-container.sm {
    padding-top: 0;
    --slide-width:30vw;
    --slide-height:180px;
  }
  .slider-container.md {
    --slide-width: 45vw;
    --slide-height:320px;
  }
  .slider-container {
    --slide-width: 70vw;
    --slide-height: 300px;
  }
  .callout {
    background-position: left top;
  }
  .callout {
    height: auto;
  }
  .sp-top {
    padding-top: 50px;
  }
  .blue-card img, .ver-card img {
    margin-top: 0 !important;
  }
  .article-hero {
    min-height: 350px;
  }
  .page-hero {
    border-radius: 0;
  }
  .page-hero.page-pg {
    background-position: right top;
    min-height: 750px;
  }
  .page-hero.tens {
    background-image: url('/img/tens-tab.jpg');
  }
  .page-hero.cgm {
    background-image: url('/img/cgm-tab.jpg');
  }
  .page-hero.hypertension {
    background-image: url('/img/bp-tab.jpg');
  }
  .page-hero.sleep {
    background-image: url('/img/sleep-tab.jpg');
  }
  .title.sm {
    font-size: 40px;
    line-height: 50px;
  }

}

@media screen and (max-width:767px) {
  .wistia-popup .play-white {
    position: absolute;
    top: 47%;
    right: calc(50% - 50px);
    height: 100px;
    width: 100px;
    cursor: pointer;
  }
  .wistia-popup .play-white > img {
    width: 100%;
    height: 100%;
  }
  .mt-path-gv {
    margin-top: -43px;
  }
  .tst-container {
    background-image: url('/img/apnea-bg.png');
  }
  .hero-headline.medium {
    font-size: 22px;
  }
  .hero-headline.smaller {
    font-size: 17px;
  }
  .wistia-popup .play-blue {
    height: 130px;
    width: 130px;
  }
  .crd-h {
    padding: 0;
    background: #000;
  }
  .crd-h > div {
    min-height: 200px;
  }
  .crd:not(.no-blur) .row, .crd-h:not(.no-blur) > div {
    background: rgba(38, 38, 38, .25);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  }
  .crd.no-blur .row, .crd-h:not(.no-blur) > div {
    background: rgba(38, 38, 38, .5);
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  }
  .title {
    letter-spacing: -1.5px;
  }
  .callout {
    min-height: 700px;
    background-image: url('/img/callout-mobile.jpg');
    border-radius: 0 !important;
  }
  .callout.about {
    min-height: 700px;
    background-image: url('/img/callout-about-mobile.jpg');
    border-radius: 0 !important;
  }
  footer {
    border-radius: 0 !important;
  }
    .lt-brown-gradient .pricing-img, .lt-brown-gradient .fda-approved img {
      margin-top: 0 !important;
      margin-right: 0 !important;
    }

    .article-hero {
      min-height: 250px;
    }
    .opt-grad {
      min-height: 300px;
    }
    .opt-grad .subtitle {
      font-size: 28px;
      line-height: 38px;
    }
    .swiper, .swipe {
      height: 220px;
    }
    .hero-title {
      font-size: 50px;
      line-height: 50px;
    }
    .hero-headline {
      /* margin-bottom: 0; */
    }
    .fda-approved img {
      margin-top: -150px;
    }
    .brown-gradient img {
      width: 90% !important;
    }
    .brown-gradient img.img-fda-approved {
      width: 75% !important;
    }
    .brown-content {
      margin-top: -221px !important;
    }
    .title {
      font-size: 45px;
      line-height: 50px;
    }
    .title.sm {
      font-size: 40px;
      line-height: 48px;
    }
    .subheader {
      font-size: 22px;
    }
    .slider-container {
      --slide-width: 90vw;
      --slide-height: 280px;
    }
    .slider-container.md {
      --slide-width: 45vw;
      --slide-height:340px;
    }
    .slider-container.sm {
      --slide-width: 45vw;
      --slide-height:150px;
    }
    .slider-container.md p {
      font-size: 17px;
    }
    .coverage img {
      width: 130px;
    }
    .coverage img.sm {
      width: 100px;
    }
    .accordion-button:not(.collapsed), .accordion-button {
      font-size: 25px;
    }
    .accordion-body {
      font-size: 18px;
    }
    .accordion-button:not(.collapsed):hover::after {
      transform: scale(1.1) rotate(180deg);
    }
    .accordion-button:hover::after {
      transform: scale(1.1);
    }
    .accordion-button:not(.collapsed)::after {
      margin-top: 0;
    }
    .accordion-button::after {
      font-size: 18px;
      height: 38px;
      width: 38px;
    }
    .callout {
      height: auto;
    }
    .pg-img img {
      width: 60% !important;
    }
    .slide .subtitle.sm {
      font-size: 22px;
    }
    .sp-top {
      padding-top: 50px;
      margin-top: 0;
    }
    footer {
      padding-block:40px;
    }
    .header {
      font-size: 25px;
      line-height: 35px;
    }
    .tst-container {
      min-height: 700px;
    }
    .sm-100 {
      width: 100% !important;
    }

    .page-hero .subtitle {
      font-size: 26px;
      line-height: 36px;
    }
    .page-title {
      font-size: 42px;
      line-height: 52px;
    }
    .page-hero p {
      font-size: 20px;
    }
    .crd-h {
      min-height: 200px;
    }
    .spinning-text-container {
        width: 140vw;
        height: 140vw;
        bottom: -80vw;
    }
    .white-circle {
        width: 98vw;
        height: 98vw;
    }
  .fda-approved img {
    margin-top: 0px;
    margin-right: 0px;
  }
  .slide-text-contents {
    min-height: 180px !important;
  }
  .img-medical-director {
    width: 100% !important;
  }
  .w-100-mobile {
    width: 100% !important;
  }
  .upshift-160-240 {
    margin-top: -160px;
  }
}
@media screen and (max-width:575px) {
  .page-hero.tens {
    background-image: url('/img/tens-mobile.jpg');
  }
  .page-hero.cgm {
    background-image: url('/img/cgm-mobile.jpg');
  }
  .page-hero.sleep {
    background-image: url('/img/sleep-mobile.jpg');
  }
  .page-hero.hypertension {
    background-image: url('/img/bp-mobile.jpg');
  }
  .page-hero.page-pg {
    min-height: 940px;
  }
  .crd-h > div, .crd-h, .crd > .row {
    min-height: 300px;
  }
  .crd-h .header {
    font-size: 32px;
    line-height: 42px;
  }
  .hero-title {
    font-size: 38px;
    line-height: 38px;
    letter-spacing: -3px;
  }
  .article-hero {
    min-height: 200px;
  }
  .glass {
    min-height: auto;
  }
  .swiper, .swipe {
    /* height: 200px; */
    height: 45px;
  }
  .coverage {
    gap:20px;
  }
  .slider-container {
    --slide-width: 95vw;
    --slide-height: 280px;
  }
  .slider-container.sm {
    --slide-width: 60vw;
    --slide-height:150px;
  }
  .coverage img {
    width: 120px;
  }
  .coverage img.sm {
    width: 90px;
  }
  .title {
    font-size: 38px;
    line-height: 46px;
  }
  .title.sm {
    font-size: 34px;
    line-height: 44px;
  }
  .accordion-button {
    gap:15px;
  }
  .accordion-button:not(.collapsed), .accordion-button {
    letter-spacing: -1px;
    font-size: 22px;
  }

  .slide-title {
    font-size: 22px;
    line-height: 32px;
  }
  .slide-btn {
    height: 40px;
    width: 40px;
  }
  .slide-btn.left {
    left: 20px;
  }
  .slide-btn.right {
    right: 20px;
  }
  .page-hero {
    min-height: auto;
  }
  .lt-brown-gradient .pricing-img, .lt-brown-gradient .fda-approved img {
    width: 70% !important;
  }
  .opt-grad .subtitle {
    font-size: 30px;
    line-height: 34px;
  }
  .opt-grad {
    min-height: 400px;
  }
  .opt-grad img {
    width: 70% !important;
  }
  .spinning-text-container {
      width: 150vw;
      height: 150vw;
      bottom: -80vw;
  }
  .white-circle {
      width: 105vw;
      height: 105vw;
  }
  .man-image {
    width:110vw
  }
  .top-text .subtitle.sm {
    font-size: 24px;
    line-height: 34px;
  }
  .page-title {
    font-size: 38px;
    line-height: 46px;
  }
  .navbar-collapse {
    width: 100vw;
  }
}
@media screen and (max-width:400px) {
  p {
    font-size: 17px;
  }
  .hero-title {
    font-size: 34px;
    line-height: 34px;
    letter-spacing: -2px;
  }
  .hero-headline {
    font-size: 18px;
  }
  .swiper, .swipe {
    /* height: 150px; */
    height: 34px;
  }
  .title {
    font-size: 35px;
    line-height: 42px;
  }
  .title.sm {
    font-size: 27px;
    line-height: 40px;
  }
  .subtitle {
    font-size: 25px;
    line-height: 35px;
  }
  .subtitle.sm {
    font-size: 22px;
    line-height: 32px;
  }
  .subtitle.lg {
    font-size: 28px;
    line-height: 32px;
  }
  .fda-approved img {
    margin-top: 0px;
    margin-right: 0px;
  }
  .subheader {
    font-size: 18px;
  }
  .coverage {
    gap:12px;
  }
  .coverage img {
    width: 110px;
  }
  .coverage img.sm {
    width: 80px;
  }
  .yellow-gradient .subheader {
    font-size: 22px;
  }
  .opt-grad {
    min-height: 300px;
  }
  .opt-grad img {
    width: 60% !important;
  }
  .spinning-text-container {
      width: 165vw;
      height: 165vw;
      bottom: -90vw;
  }
  .white-circle {
      width: 115vw;
      height: 115vw;
  }
  .page-title {
    font-size: 34px;
    line-height: 46px;
  }
  .page-hero p {
    font-size: 19px
  }
  .page-hero.page-pg {
    min-height: 850px;
  }
}

@media screen and (min-width:1200px) {
  .tst-container.brown {
    background-position: -10px;
  }
}

.wistia_click_to_play {
  display: grid;
  place-items: center;
}
.wistia_click_to_play > div > div:nth-child(2),
.wistia_click_to_play > div > div:nth-child(3) {
  opacity: 0;
}
.wistia-popup {
  position: relative;
}
.wistia-popup .play-blue {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 180px;
  width: 180px;
  animation: pulse-animation 5s infinite;
  cursor: pointer;
}

.custom-nav {
  display: flex;
  align-items: center;
  gap:10px;
  margin-top: -1rem;
}
.custom-nav a {
  height: 35px;
  width: 35px;
  border-radius: 100%;
  background-color: #ffffff;
  color: #532a1f;
  display: grid;
  place-items:center;
  border:1px solid #532a1f;
}
.custom-works-dots {
  display: flex;
  gap:10px;
}
.custom-works-dots .dot {
  font-size: 13px;
  color: red;
  height: 15px;
  width: 15px;
}
.custom-works-dots .dot.active {
  background-color: var(--cgm-pry-color);
}

.people-carousel .h-100 {
  min-height: 478px;
}
.people-carousel img {
  min-height: 150px;
  object-fit: cover;
}
.people-carousel p {
  font-size: 15px;
}

.play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 20px;
  height: 65px;
  width: 65px;

  color: #fff !important;
  display: grid;
  place-items: center;
  border-radius: 100%;
  background: rgba(0, 62, 68, .4);
  backdrop-filter: blur(2px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.play.sm {
  height: 40px;
  width: 40px;
  font-size: 14px;
  animation: pulse 2.5s infinite;
}
.play.lg {
  height: 90px;
  width: 90px;
  font-size: 40px;
  animation: pulse 2.5s infinite;
}

.testimony-container {
  border-radius: 24px;
}
.testimony-container h5 {
  font-weight: bold;
}
.bg-testimony-light-brown {
  background: linear-gradient(180deg, #C9B7AA 0%, #E8E1DA 100%);

}
.bg-testimony-brown {
  background: linear-gradient(180deg, #8A3A34 0%, #B7804A 100%), linear-gradient(180deg, #706E6B 0%, #E8E1DA 100%);
  color: #fff;
}

.socials {
  gap:10px;
}
.socials a {
  height:35px;
  width:35px;
  display: grid;
  place-items: center;
  border: 1px solid #8A3A34;
  border-radius: 100%;
  transition: .7s;
  color: #8A3A34;
}
.socials a:hover {
  background-color: #fff;
  color: var(--pry-color);
  transition: .7s;
}

.wistia_click_to_play {
  display: grid;
  place-items: center;
}
.wistia_click_to_play > div > div:nth-child(2),
.wistia_click_to_play > div > div:nth-child(3) {
  opacity: 0;
}
.wistia-popup {
  position: relative;
}
.wistia-popup .play-blue {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 180px;
  width: 180px;
  animation: pulse-animation 5s infinite;
  cursor: pointer;
}

.gv-feat-section .gv-feat-intro {
  color: #7A7A7A;
  /* font-size: 15px; */
  /* line-height: 22px; */
}
.gv-feat-card {
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  display: block;
  color: inherit;
  min-height: 100%;
}
.gv-feat-card:hover {
  transform: translateY(-4px);
}
/* Brown CGM hero card */
.gv-feat-cgm {
  background: linear-gradient(180deg, #B99362 0%, #81613C 100%);
  color: #fff;
  min-height: 600px;
  padding: 36px 32px 0;
  position: relative;
}
.gv-feat-cgm:hover { color: #fff; }
.gv-feat-cgm .eyebrow {
  font-family: 'SofiaMedium';
  font-size: 36px;
  line-height: 48px;
  color: var(--orange-color);
  letter-spacing: -1.5px;
}
.gv-feat-cgm .p-title {
  font-family: 'SofiaMedium';
  font-size: 44px;
  line-height: 48px;
  letter-spacing: -2px;
  color: #fff;
  margin-bottom: 28px;
}
.gv-feat-cgm .bullet {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .15);
  font-size: 18px;
  color: rgba(255, 255, 255, .9);
}
.gv-feat-cgm .bullet .ic-wrap {
  height: 36px;
  width: 36px;
  border-radius: 100%;
  background: rgba(255, 255, 255, .12);
  display: grid;
  place-items: center;
  color: var(--orange-color);
  flex-shrink: 0;
}
.gv-feat-cgm .reviews { font-size: 15px; }
.gv-feat-cgm .gv-feat-img {
  max-height:450px;
  margin-top: auto;
  display: block;
  position: absolute;
  bottom: 0;
  right: 0;
}

/* Light blue Entero card */
.gv-feat-entero {
  background: linear-gradient(to top, #80A1D6 0%, #C0D2ED 50%, #C0D2ED 100%);
  color: var(--grey-color);
  padding: 30px;
  min-height: 290px;
}
.gv-feat-entero:hover { color: var(--grey-color); }
.gv-feat-entero .p-title {
  font-family: 'SofiaMedium';
  font-size: 28px;
  line-height: 32px;
  letter-spacing: -1px;
  margin-bottom: 25px;
}
.gv-feat-entero .ghost-text {
  font-family: 'SofiaRegular';
  font-size: 80px;
  line-height: 80px;
  letter-spacing: -5px;
  background: linear-gradient(to top, #244E8C, #7CA1D7);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  user-select: none;
  white-space: nowrap;
  display: flex;
  justify-content: space-between;
}
.gv-feat-entero .bottle {
  position: absolute;
  margin: auto;
  top: 0;
  left: 15px;
  max-height: 245px;
}

/* Dark photo WatchPat card */
.gv-feat-watchpat {
  background-color: #1F1F1F;
  background-image: url('/img/sleep-feat-bg.png');
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: 32px;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.gv-feat-watchpat:hover { color: #fff; }
.gv-feat-watchpat::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.05) 100%);
}
.gv-feat-watchpat > * { position: relative; z-index: 1; }
.gv-feat-watchpat .p-title {
  font-family: 'SofiaMedium';
  font-size: 28px;
  line-height: 32px;
  letter-spacing: -1px;
  color: #fff;
}
.gv-feat-watchpat .check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  color: rgba(255, 255, 255, .92);
  margin-bottom: 10px;
}

/* Shared pill buttons in featured cards */
.gv-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: 59px;
  font-family: 'SofiaMedium';
  font-size: 14px;
  transition: .3s;
  border: 1px solid transparent;
}
.gv-pill.dark {
  background-color: #000;
  color: #fff;
}
.gv-pill.dark:hover {
  background-color: #1E1E1E;
  color: #fff;
  transform: translateY(-1px);
}
.gv-pill.light {
  background-color: #fff;
  color: #1E1E1E;
  opacity: .85;
}
.gv-pill.light:hover {
  background-color: var(--cream-color);
  color: #1E1E1E;
  transform: translateY(-1px);
}
.gv-pill.orange {
  background-color: var(--orange-color);
  color: var(--grey-color);
}
.gv-pill.orange:hover {
  background-color: #ffb84a;
  color: var(--grey-color);
  transform: translateY(-1px);
}

/* Right column stack + Entero CTA placement */
.gv-feat-stack { gap: 20px; }
.gv-feat-entero .gv-cta-corner {
  position: absolute;
  bottom: 24px;
  right: 24px;
}

@media (max-width: 1399px) {
  .gv-feat-cgm .gv-feat-img {
    max-height:400px;
  }
  .gv-feat-cgm .p-title {
    font-size: 38px;
    line-height: 40px;
  }
  .gv-feat-entero .ghost-text {
    justify-content: flex-start;
    flex-direction: column;
    font-size: 70px;
    line-height: 62px;
  }
  .gv-feat-entero .bottle {
    max-height: 190px;
    right: 0;
    margin-right: 0;
  }
  .prg {
    height: 300px;
  }
  .prg .glass .subheader {
    font-size: 24px;
  }
  .prg .glass .btn {
    font-size: 14px;
  }
  .prg .glass, .prg:hover .glass {
    height: 260px;
  }
  .hero {
    min-height: auto;
    padding-block:50px;
  }
}
@media (max-width: 1199px) {
  .gv-feat-cgm {
    min-height: auto;
  }
  .gv-feat-cgm .gv-feat-img {
    max-height:450px;
  }
}
@media (max-width: 991px) {
  .gv-feat-entero .ghost-text {
    display: block;
  }
  .gv-feat-entero .bottle {
    max-height: 250px;
  }
  .gv-feat-cgm .gv-feat-img {
    max-height:400px;
  }
}
@media (max-width: 575px) {
  .gv-feat-cgm .gv-feat-img {
    max-height:300px;
    margin:auto;
    position: relative;
  }
  .gv-feat-cgm .gv-pill.dark {
    width: 100%;
    justify-content: center;
  }
  .gv-feat-entero .ghost-text {
    display: flex;
    font-size: 60px;
    line-height: 52px;
  }
  .gv-feat-entero .bottle {
    max-height: 200px;
    top:80px;
    right:-20px;
  }
  /* .gv-feat-cgm .product-title { font-size: 30px; line-height: 34px; }
  .gv-feat-entero .ghost-text { display: none; } */
}

.gv-col-section .gv-col-intro {
  color: #7A7A7A;
}
.gv-col-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 28px 28px;
  border-radius: 24px;
  min-height: 460px;
  color: var(--grey-color);
  overflow: hidden;
  transition: transform .5s ease, box-shadow .5s ease;
}
.gv-col-card:hover {
  transform: translateY(-4px);
  color: var(--grey-color);
}
.gv-col-card.brown {
  background: linear-gradient(180deg, #6E4739 0%, #8A5A3E 100%);
  color: #fff;
}
.gv-col-card.brown:hover { color: #fff; }
.gv-col-card.cream-1 { background-color: #E6D8CE; }
.gv-col-card.cream-2 { background-color: #E6D8CE; }
.gv-col-card .chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 18px;
  border-radius: 59px;
  font-size: 13px;
  font-family: 'SofiaMedium';
  background: transparent;
  border: 1px solid rgba(0, 0, 0, .15);
  color: var(--brown-color);
  margin-bottom: 18px;
}
.gv-col-card.brown .chip {
  background: var(--cream-color);
  border-color: transparent;
  color: var(--brown-color);
}
.gv-col-card .col-title {
  font-family: 'SofiaMedium';
  font-size: 38px;
  line-height: 44px;
  letter-spacing: -1.5px;
  margin-bottom: 24px;
}
.gv-col-card .col-img {
  width: 100%;
  height:200px;
  /* object-fit: cover; */
  margin-top: auto;
  margin-bottom: 24px;
  object-fit: contain;
}
.gv-col-card .col-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  border-radius: 59px;
  font-family: 'SofiaMedium';
  font-size: 14px;
  transition: .3s;
}
.gv-col-card .col-cta.dark {
  background-color: #000;
  color: #fff;
}
.gv-col-card .col-cta.dark:hover {
  background-color: #1E1E1E;
  color: #fff;
}
.gv-col-card .col-cta.orange {
  background-color: var(--orange-color);
  color: var(--grey-color);
}
.gv-col-card .col-cta.orange:hover {
  background-color: #ffb84a;
  color: var(--grey-color);
}
.gv-col-footer {
  color: #7A7A7A;
  font-size: 14px;
}
.gv-col-shop-now {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  border-radius: 59px;
  background: #000;
  color: #fff;
  font-family: 'SofiaMedium';
  font-size: 14px;
  transition: .3s;
}
.gv-col-shop-now:hover {
  background: #1E1E1E;
  color: #fff;
  transform: translateY(-1px);
}

@media (max-width: 991px) {
  .gv-col-card { min-height: 420px; padding: 28px 20px 24px; }
  .gv-col-card .col-title { font-size: 30px; line-height: 36px; }
}
.gv-auth {
  padding-top: 40px;
  padding-bottom: 60px;
}
.gv-auth-card {
  background-color: #ffffff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.04);
}
.gv-auth-form {
  padding: 48px 44px;
}
.gv-auth-side {
  background-color: #f6f4f0;
  padding: 48px 44px;
}
.gv-auth h1.gv-title {
  font-family: 'SofiaMedium';
  font-size: 40px;
  line-height: 46px;
  letter-spacing: -1.5px;
  color: var(--grey-color);
  margin-bottom: 8px;
}
.gv-auth .gv-sub {
  font-size: 16px;
  color: #7A7A7A;
  margin-bottom: 28px;
}
.gv-auth .gv-field {
  display: flex;
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 14px;
  padding: 4px 16px;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.gv-auth .gv-field:focus-within {
  border-color: var(--pry-color);
  box-shadow: 0 0 0 4px rgba(0, 92, 101, 0.08);
}
.gv-auth .gv-field .gv-ic {
  width: 28px;
  color: var(--pry-color);
  font-size: 16px;
  text-align: center;
  margin-right: 6px;
}
.gv-auth .gv-field .form-control {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0px 4px;
  font-size: 15px;
  color: #1E1E1E;
}
.gv-auth .gv-field .form-control::placeholder {
  color: #9A9A9A;
}
.gv-auth .gv-eye {
  color: #7A7A7A;
  padding: 4px 8px;
}
.gv-auth .gv-eye:hover {
  color: var(--pry-color);
}
.gv-auth .btn-google {
  background-color: #ffffff;
  color: #1E1E1E;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 59px;
  height: 52px;
  font-size: 15px;
  font-family: 'SofiaMedium';
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .3s;
}
.gv-auth .btn-google:hover {
  background-color: var(--cream-color);
  border-color: rgba(0, 0, 0, 0.25);
}
.gv-auth .btn-google img {
  height: 20px;
  margin-right: 10px;
}
.gv-auth .gv-divider {
  position: relative;
  text-align: center;
  margin: 22px 0 18px;
}
.gv-auth .gv-divider::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(0, 0, 0, 0.1);
}
.gv-auth .gv-divider span {
  position: relative;
  background: #ffffff;
  padding: 0 14px;
  font-size: 13px;
  letter-spacing: 1px;
  color: #9A9A9A;
  text-transform: uppercase;
}
.gv-auth .gv-meta p {
  margin-bottom: 6px;
  font-size: 15px;
  color: var(--grey-color);
}
.gv-auth .alert {
  border-radius: 12px;
  border: none;
  font-size: 14px;
  padding: 12px 14px;
}
.gv-auth .alert-danger {
  background-color: rgba(209, 64, 16, 0.1);
  color: var(--red-color);
}
.gv-auth .alert-success {
  background-color: rgba(0, 167, 110, 0.12);
  color: #007a51;
}
.gv-auth .gv-recap-error {
  color: var(--red-color);
  font-size: 13px;
  margin-top: 8px;
  display: inline-block;
}

@media (max-width: 991px) {
  .gv-auth-form { padding: 36px 24px; }
  .gv-auth-side { padding: 0; }
  .gv-auth h1.gv-title { font-size: 34px; line-height: 40px; }
}

/* ── Products page ── */

/* Filter sidebar */
.filter-holder {
  font-size: 14px;
}
.filter-holder > .filter-form > .border-bottom {
  padding-bottom: 12px;
  margin-bottom: 12px !important;
}
.attribute-label {
  font-size: 13px !important;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #555 !important;
}
.filter-holder .form-control-sm {
  border-radius: 8px !important;
  border: 1px solid #e8e8e8 !important;
  background: #f7f7f7 !important;
  font-size: 13px;
}
.filter-holder label {
  font-size: 14px;
  color: #333;
  gap: 8px;
}
.filter-holder input[type=checkbox] {
  accent-color: var(--pry-color);
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}
.filter-holder .btn-outline-secondary {
  border-radius: 30px !important;
  font-size: 13px;
  padding: 8px 0;
  border-color: #ddd;
  color: #555;
}
.filter-holder .btn-outline-secondary:hover {
  background: #f5f5f5;
  color: #222;
  border-color: #ccc;
}

/* Hero bar — sort + view toggle */
.gv-products-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}
.gv-products-bar .gv-view-toggle {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  padding: 4px;
  gap: 2px;
}
.gv-products-bar .gv-view-toggle a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 7px;
  color: #999;
  font-size: 15px;
  transition: background .15s, color .15s;
}
.gv-products-bar .gv-view-toggle a.text-pry {
  background: var(--pry-color);
  color: #fff !important;
}
.gv-products-bar .gv-sort-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.gv-products-bar .gv-sort-wrap::before {
  content: '\f0b0';
  font-family: 'Font Awesome 5 Pro', 'Font Awesome 5 Free';
  font-weight: 900;
  position: absolute;
  left: 12px;
  color: #888;
  font-size: 12px;
  pointer-events: none;
  z-index: 1;
}
.gv-products-bar select.form-control {
  appearance: none;
  -webkit-appearance: none;
  padding-left: 30px;
  padding-right: 30px;
  height: 40px !important;
  font-size: 13px !important;
  border: 1px solid #e4e4e4 !important;
  border-radius: 10px !important;
  background: #fff !important;
  cursor: pointer;
  min-width: 170px;
  color: #333;
  box-shadow: none !important;
}
.gv-products-bar .gv-sort-wrap::after {
  content: '\f107';
  font-family: 'Font Awesome 5 Pro', 'Font Awesome 5 Free';
  font-weight: 900;
  position: absolute;
  right: 12px;
  color: #888;
  font-size: 12px;
  pointer-events: none;
}

/* Active filter pills */
.gv-products-bar .badge.bg-pry,
#heroComponent .badge.bg-pry {
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 10px !important;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  letter-spacing: .01em;
}

/* Product cards */
.flex-products > div {
  border-radius: 16px !important;
  /* border-color: #f0f0f0 !important; */
  transition: box-shadow .2s, transform .2s !important;
}
.flex-products > div:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
  transform: translateY(-3px) !important;
}
.flex-products a {
  padding: 16px 16px 8px !important;
}
.pe-img-container {
  height: auto !important;
  aspect-ratio: 1 / 1;
  background: #f9f9f9;
  border-radius: 12px !important;
  overflow: visible;
  padding: 10px;
  margin-bottom: 10px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.flex-products .product-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
  transition: transform .3s;
}
.flex-products > div:hover .product-img {
  transform: scale(1.04);
}
.flex-products h5 {
  font-size: 13px !important;
  font-weight: 700;
  margin-bottom: 2px !important;
  letter-spacing: .01em;
}
.flex-products > div > a > p {
  font-size: 13px !important;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #444;
  margin-bottom: 0 !important;
  min-height: 2.8em;
}
.flex-products .mt-auto {
  padding: 8px 16px 16px !important;
}
.flex-products .ge-add-to-cart {
  font-size: 13px !important;
  padding: 8px 16px !important;
  border-radius: 30px !important;
}

/* ── Single product page ── */

/* Gallery layout: thumbnails left strip + main image fills right */
.singleProduct {
  display: flex !important;
  flex-direction: row-reverse !important; /* main image left, thumbs right */
  gap: 12px;
  align-items: flex-start;
}
.singleProduct > .w-100 {
  flex: 1;
  min-width: 0;
}
.thumbnails {
  flex-shrink: 0;
  width: 76px;
}
.thumbnails .additional {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Main image frame */
.singleProduct span.zoom,
.singleProduct span {
  height: 460px !important;
  width: 100% !important;
  background: #f7f7f7 !important;
  border-radius: 16px !important;
  border: 1px solid #efefef !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.selectedImage {
  height: 100% !important;
  max-height: 420px;
  width: 100%;
  object-fit: contain;
}

/* Mobile image */
.singleProduct .text-center.mobile span {
  height: 320px !important;
  border-radius: 16px !important;
  border: 1px solid #efefef !important;
  background: #f7f7f7 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

/* Thumbnails */
.add-img {
  width: 70px !important;
  height: 70px !important;
  border-radius: 10px !important;
  border: 2px solid #e8e8e8 !important;
  background: #fafafa !important;
  margin: 0 !important;
  overflow: hidden;
  transition: border-color .2s;
}
.add-img:hover { border-color: #aaa !important; }
.add-img.active { border-color: var(--pry-color) !important; background: #fff !important; }
.additional_images {
  width: 100% !important;
  height: 60px !important;
  object-fit: contain;
}

/* Share row */
.share { margin-top: 20px; }
.share > div > span {
  font-size: 13px;
  font-weight: 600;
  color: #999;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-right: 4px;
}
.socials {
  height: 38px !important;
  width: 38px !important;
  border-radius: 50% !important;
  font-size: 15px !important;
}

/* Right column — meta */
.product-title {
  font-size: 28px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #111;
}
.col-lg-6.ps-lg-4 > small:first-child {
  font-size: 12px;
  letter-spacing: .05em;
  color: #bbb;
  text-transform: uppercase;
}
.col-lg-6.ps-lg-4 h6.text-muted {
  font-size: 15px !important;
  font-weight: 500;
}

/* Quantity selector */
.add-qt .form-control {
  font-size: 16px !important;
  border: none !important;
  text-align: center;
  font-weight: 600;
}

/* Subscribe & Save options */
.sp-sub {
  border-radius: 14px !important;
  border-width: 2px !important;
  padding: 16px 18px !important;
  font-size: 15px !important;
  transition: border-color .2s, background .2s;
}
.sp-sub:has(input:checked) {
  border-color: var(--pry-color) !important;
  background-color: #f5faf7 !important;
}
.sp-sub .alert-success {
  border-radius: 8px !important;
  font-size: 14px !important;
  padding: 8px 14px !important;
}

/* CTA buttons */
#addToCartForm .d-flex > button[type=submit] {
  border-radius: 30px !important;
  padding: 14px 28px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

/* Wishlist / favourite button */
.wish .btn-outline-pry,
.wish .btn {
  border-radius: 30px !important;
  font-size: 14px !important;
  padding: 10px 20px !important;
}

/* Shipping note */
.col-lg-6.ps-lg-4 .mt-3 small {
  font-size: 13px !important;
  color: #888;
  line-height: 1.6;
}

/* Accordion (Supplement Facts / Suggested Usage / Caution) */
.single-product-details > .card {
  border: 1px solid #efefef !important;
  border-radius: 14px !important;
  overflow: hidden;
  box-shadow: none !important;
  margin-bottom: 10px !important;
}
.single-product-details .card-header {
  background: #fff !important;
  border-bottom: 1px solid #f0f0f0 !important;
  padding: 0 !important;
}
.single-product-details .card-header button {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #111 !important;
  padding: 16px 20px !important;
  width: 100%;
  text-align: left;
}
.single-product-details .card-header button:hover {
  color: var(--pry-color) !important;
}
.single-product-details .card-body {
  padding: 18px 22px !important;
  font-size: 15px !important;
  line-height: 1.75;
  color: #444;
}

/* Description / Reviews tab pills → underline style */
#pills .nav-link {
  padding: 0 0 12px !important;
  margin-right: 32px;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent;
  color: #999;
  background: none !important;
}
#pills .nav-link.active {
  background: none !important;
  border-bottom-color: var(--pry-color);
  color: #111 !important;
}
#pills .nav-link h4 {
  font-size: 17px !important;
  font-weight: 600;
  margin: 0 !important;
}

/* ── Cart ── */

/* Deal items card — clean monochromatic overhaul */
.shopping-cart.with-promotion {
  background: #fff !important;
  border: 1px solid #ebebeb !important;
  border-radius: 16px !important;
  padding: 0 !important;
  /* overflow: hidden; */
}
/* Promo code badge — left edge */
.shopping-cart.with-promotion .card-header .code,
.cde {
  background: var(--orange-color) !important;
  color: #000 !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 10px 14px !important;
  top: -17px !important;
  left: 10px !important;
  display: inline-block;
  line-height: 12px;
}
/* Remove deal button — right edge */
.shopping-cart.with-promotion .card-header .del-form {
  top: -10px !important;
  right: -5px !important;
}
.shopping-cart.with-promotion .card-header .delete {
  background: #e53935 !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
  font-size: 12px !important;
  transition: background .2s;
}
.shopping-cart.with-promotion .card-header .delete:hover {
  background: #c62828 !important;
}

.shopping-cart.with-promotion .bg-pry {
  background: var(--cream-color) !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  margin-bottom: 0 !important;
}
.shopping-cart.with-promotion .bg-pry h6 {
  color: #555 !important;
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.shopping-cart.with-promotion .border-bottom.pb-3.mb-3 {
  padding-block: 10px !important;
  margin-bottom: 0 !important;
}
/* Deal item rows — add border */
.shopping-cart.with-promotion .item {
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  padding: 16px 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
/* Deal item product image */
.shopping-cart.with-promotion .item .details .photo {
  width: 90px !important;
  height: 90px !important;
  border-radius: 10px !important;
  border: 1px solid #f0f0f0 !important;
  background: #f8f8f8 !important;
  padding: 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}
.shopping-cart.with-promotion .item .details .photo a {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.shopping-cart.with-promotion .item .details .photo a img {
  width: 100% !important;
  height: 78px !important;
  object-fit: contain;
}

/* Save badge on deals */
.shopping-cart.with-promotion .bg-danger {
  background: #f5f5f5 !important;
  color: #e53935 !important;
  border-radius: 20px !important;
  font-weight: 700;
  font-size: 12px !important;
}

/* Standard item cards only — leave deal card (.with-promotion) untouched */
.shopping-cart:not(.with-promotion) {
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
}
.shopping-cart:not(.with-promotion) .card-body {
  padding: 0 !important;
}
.shopping-cart:not(.with-promotion) .item {
  background: #fff;
  border-radius: 16px !important;
  padding: 18px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transition: box-shadow .2s;
}
.shopping-cart:not(.with-promotion) .item:not(:last-child) {
  margin-bottom: 12px !important;
}
.shopping-cart:not(.with-promotion) .item:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

/* Product image — standard items */
.shopping-cart:not(.with-promotion) .item .details .photo {
  width: 110px !important;
  height: 110px !important;
  border-radius: 12px !important;
  border: 1px solid #f0f0f0 !important;
  background: #f8f8f8 !important;
  padding: 8px !important;
  flex-shrink: 0;
}
.shopping-cart:not(.with-promotion) .item .details .photo a {
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
}
.shopping-cart:not(.with-promotion) .item .details .photo a img {
  width: 100%;
  height: 90px !important;
  object-fit: contain;
}

/* Trash & wishlist icons */
.shopping-cart:not(.with-promotion) .item .delete {
  color: #ccc !important;
  font-size: 14px !important;
  transition: color .2s;
}
.shopping-cart:not(.with-promotion) .item .delete:hover {
  color: #e53935 !important;
}
.shopping-cart:not(.with-promotion) .item .wishlist {
  color: #ccc !important;
  transition: color .2s;
}
.shopping-cart:not(.with-promotion) .item .wishlist.active,
.shopping-cart:not(.with-promotion) .item .wishlist:hover {
  color: var(--pry-color) !important;
}

/* Item total */
.shopping-cart .item .summary h4 {
  font-size: 18px !important;
  font-weight: 700 !important;
}
.shopping-cart .item .summary small {
  font-size: 11px !important;
  color: #bbb !important;
}

/* Subscribe & Save panel */
.sub-save {
  border-radius: 14px !important;
  border: 1px solid #e8e8e8 !important;
  background: #fafafa !important;
  padding: 16px 18px !important;
}
.sub-save .alert-success {
  border-radius: 30px !important;
  font-size: 13px !important;
  padding: 7px 14px !important;
  border: none !important;
  background: #edf7f0 !important;
  color: #2e7d52 !important;
  display: inline-flex !important;
  width: auto !important;
  align-items: center;
  gap: 6px;
  margin-bottom: 14px !important;
}
.sub-save > div[style*="line-height"] {
  font-size: 13px !important;
  color: #666 !important;
  line-height: 1.6 !important;
  margin-bottom: 12px !important;
}
.sub-save p {
  font-size: 13px !important;
  color: #666;
  margin-bottom: 6px !important;
}
.sub-save select.form-control {
  height: 36px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  border-color: #ddd !important;
  max-width: 75px;
  padding: 0 8px !important;
}
.sub-save .d-flex.mt-3 a.ge-switch-to-subscribe {
  border-radius: 30px !important;
  padding: 8px 22px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}
.sub-save .d-flex.mt-3 a.bg-white {
  border-radius: 30px !important;
  padding: 8px 22px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border: 1px solid #ddd !important;
  color: #555 !important;
}

/* Summary panel */

.coupons-sub-total h5 {
  font-size: 17px !important;
  font-weight: 700 !important;
}

/* Promo code */
.apply-coupon .form-control {
  border-radius: 10px !important;
  font-size: 14px !important;
  height: 44px !important;
  border-color: #e4e4e4 !important;
}
.apply-coupon .btn-outline-pry {
  border-radius: 10px !important;
  font-size: 14px !important;
  padding: 10px 20px !important;
  white-space: nowrap;
}

/* Checkout button */
.checkout-form .btn-pry {
  border-radius: 30px !important;
  padding: 14px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}
.checkout-form .text-center small {
  font-size: 12px;
  color: #aaa;
  line-height: 1.6;
}

/* Mobile sticky bar */
.checkout-mb .btn-pry {
  font-size: 16px !important;
  font-weight: 600 !important;
}

/* Empty cart */
.border.border-rounded.text-center.p-5 {
  border-radius: 16px !important;
  border-color: #efefef !important;
  background: #fafafa;
  padding: 60px 40px !important;
}
.border.border-rounded.text-center.p-5 h4 { font-size: 48px !important; margin-bottom: 16px; }
.border.border-rounded.text-center.p-5 h5 { font-size: 20px !important; font-weight: 700 !important; color: #222; margin-bottom: 10px; }
.border.border-rounded.text-center.p-5 p { font-size: 15px; color: #888; margin-bottom: 24px; }
.border.border-rounded.text-center.p-5 .btn-pry {
  border-radius: 30px !important;
  padding: 12px 32px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* ── Profile ── */

/* Sidebar card */
.col-lg-4 .bg-white.shd {
  border-radius: 16px !important;
  padding: 20px !important;
}

/* User display name */
.col-lg-4 .bg-white.shd > div:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 16px;
  border-bottom: 1px solid #f0f0f0;
}
.col-lg-4 .bg-white.shd > div:first-child i {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f4f4f4;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}
.col-lg-4 .bg-white.shd > div:first-child b {
  font-size: 15px;
  color: #111;
}

/* Sidebar section labels */
.col-lg-4 .bg-white.shd h6.font-weight-bold {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #aaa !important;
  margin-bottom: 4px !important;
}
.col-lg-4 .bg-white.shd h6.font-weight-bold i { color: #aaa !important; }

/* Sidebar nav links */
.nav-pills .nav-link.settings {
  border-bottom: none !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 500;
  color: #555 !important;
  padding: 10px 12px !important;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: background .15s, color .15s;
}
.nav-pills .nav-link.settings:hover {
  background: #f5f5f5;
  color: #111 !important;
}
.nav-pills .nav-link.settings.active {
  background: #f0f0f0 !important;
  color: var(--pry-color) !important;
  border-bottom: none !important;
}
.nav-pills .nav-link.settings i {
  font-size: 14px;
  width: 20px;
  text-align: center;
  flex-shrink: 0;
}

/* Account balance */
.col-lg-4 .bg-white.shd .mt-3 > h6 {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #aaa !important;
  margin-bottom: 6px !important;
}
.col-lg-4 .bg-white.shd [style*="font-size: 40px"] {
  font-size: 32px !important;
  font-weight: 800 !important;
  color: #111;
  line-height: 1;
  margin-bottom: 12px;
}

/* Gift card redeem input */
#redeemGiftCardComponent .form-control {
  border-radius: 10px !important;
  height: 40px !important;
  font-size: 13px !important;
  border-color: #e4e4e4 !important;
}
#redeemGiftCardComponent .btn-outline-pry {
  border-radius: 10px !important;
  font-size: 13px !important;
  height: 40px;
  padding: 0 16px !important;
  white-space: nowrap;
}

/* Right-side content panels */
.tab-content .border,
.tab-content .shd {
  border-radius: 16px !important;
  /* border-color: #f0f0f0 !important; */
  overflow: hidden;
}
.tab-content .bg-white.p-3 {
  padding: 24px !important;
}
.tab-content h4.font-weight-bold,
.tab-content h4.pb-2 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #111;
  padding-bottom: 16px !important;
  border-bottom: 1px solid #f5f5f5;
  margin-bottom: 16px !important;
}

/* Settings rows (name, password, login toggles) */


.settings-content h5 {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #111;
}
.settings-content h6.fw-normal {
  font-size: 15px !important;
  color: #444;
}

/* Settings buttons */
.settings-content .btn,
.settings-content a.btn {
  border-radius: 30px !important;
  font-size: 13px !important;
  /* padding: 7px 18px !important; */
}

/* Orders — tab pills → underline style */
.order-list #pills .nav-link {
  background: none !important;
  border-radius: 0 !important;
  border-bottom: 2px solid transparent !important;
  padding: 0 0 10px !important;
  margin-right: 28px;
  color: #999 !important;
}
.order-list #pills .nav-link.active {
  border-bottom-color: var(--pry-color) !important;
  color: #111 !important;
}
.order-list #pills .nav-link h5 {
  font-size: 15px !important;
  font-weight: 600;
  margin: 0;
}

/* Add new address card */
.border-dashed {
  border: 1.5px dashed #ddd !important;
  border-radius: 14px !important;
  background: #fafafa !important;
  color: #aaa !important;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s, background .2s;
}
.border-dashed:hover {
  border-color: var(--pry-color) !important;
  background: #f5faf7 !important;
  color: var(--pry-color) !important;
}
.border-dashed h3 {
  font-size: 28px !important;
  margin-bottom: 8px;
}
.border-dashed p {
  font-size: 14px !important;
  margin: 0;
}

/* Payment profile cards — superseded by gv-pp-* block below */

/* Modals */
.modal-dialog .modal-header {
  border-radius: 0 !important;
  padding: 14px 20px !important;
  font-size: 15px !important;
}
.modal-dialog .modal-content {
  border-radius: 16px !important;
  overflow: hidden;
  border: none;
  box-shadow: 0 20px 60px rgba(0,0,0,.14);
}
.modal-dialog .modal-body {
  padding: 24px !important;
}
.modal-dialog .modal-footer {
  padding: 12px 20px !important;
  border-top: 1px solid #f0f0f0;
}
.modal-dialog .modal-footer .btn {
  border-radius: 30px !important;
  font-size: 14px !important;
  padding: 8px 22px !important;
}

/* shared modal typography */
.gv-modal-title {
  font-size: 17px;
  font-weight: 700;
  color: #111;
  margin: 0 0 2px;
  line-height: 1.3;
}
.gv-modal-sub {
  font-size: 13.5px;
  color: #777;
  margin: 0;
  line-height: 1.5;
}

/* shared modal form fields */
.gv-modal-label {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #aaa;
  margin-bottom: 5px;
}
.gv-modal-input {
  border-radius: 10px !important;
  border-color: #e8e8e8 !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  background: #fafafa !important;
  color: #111 !important;
  transition: border-color .15s, box-shadow .15s !important;
}
.gv-modal-input:focus {
  background: #fff !important;
  border-color: var(--pry-color) !important;
  box-shadow: 0 0 0 3px rgba(var(--pry-color-rgb),.1) !important;
}

/* close × link */
.modal-body > .d-flex > a[data-bs-dismiss="modal"] {
  color: #bbb;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
  flex-shrink: 0;
  margin-top: 2px;
}
.modal-body > .d-flex > a[data-bs-dismiss="modal"]:hover {
  color: #c0392b;
}

/* ── Reviews ── */
.gv-no-reviews {
  text-align: center;
  padding: 40px 20px;
  border: 1.5px dashed #e4e4e4;
  border-radius: 14px;
  margin-bottom: 20px;
  background: #fafafa;
}
.gv-no-reviews-icon {
  font-size: 36px;
  color: #ddd;
  display: block;
  margin-bottom: 14px;
}
.gv-no-reviews-title {
  font-size: 17px;
  font-weight: 600;
  color: #333;
  margin-bottom: 6px;
}
.gv-no-reviews-sub {
  font-size: 14px;
  color: #999;
  margin: 0;
}
.gv-write-review-btn,
.gv-login-review-btn {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--pry-color);
  color: var(--pry-color) !important;
  border-radius: 30px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.gv-write-review-btn:hover,
.gv-login-review-btn:hover {
  background: var(--pry-color);
  color: #fff !important;
}

/* "Source: Manufacturer" label */
.manufacturer-citation {
  background: none !important;
  padding: 0 0 10px !important;
  margin-bottom: 4px !important;
}
.manufacturer-citation h6 {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #bbb !important;
  letter-spacing: .03em;
  font-style: normal !important;
}
.manufacturer-citation h6 i {
  font-style: normal;
}

/* Product description body text */
.product-description {
  font-size: 15px !important;
  line-height: 1.8 !important;
  color: #444;
  max-width: 100%;
  overflow-x: hidden;
  word-break: break-word;
}

/* ── Responsive tables inside raw product description HTML ── */
/* The description comes from the DB as raw HTML and may contain
   tables with fixed widths or wide content. Wrap them in a
   scrollable block so they never break outside their column.  */
.product-description table {
  display: block;
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-collapse: collapse;
  font-size: 14px;
}
.product-description table td,
.product-description table th {
  padding: 10px 16px;
  border: 1px solid #e5e7eb;
  vertical-align: top;
  word-break: break-word;
  min-width: 100px;
}
.product-description table th {
  background: #f9f8f6;
  font-weight: 600;
  color: #374151;
  white-space: nowrap;
}
/* First column (label) — keep narrow */
.product-description table td:first-child,
.product-description table th:first-child {
  white-space: nowrap;
  font-weight: 600;
  color: #374151;
  background: #fafaf8;
}

/* Tags & category chips */
.tags .btn-outline-pry {
  border-radius: 20px !important;
  font-size: 13px !important;
  padding: 5px 16px !important;
  border-color: #ddd !important;
  color: #555 !important;
}
.tags .btn-outline-pry:hover {
  background: var(--pry-color) !important;
  border-color: var(--pry-color) !important;
  color: #fff !important;
}

/* Mobile: stack gallery vertically */
@media (max-width: 991px) {
  .singleProduct {
    flex-direction: column !important;
  }
  .thumbnails {
    width: 100%;
  }
  .thumbnails .additional {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .singleProduct span.zoom,
  .singleProduct span {
    height: 320px !important;
  }
}

/* ── Product page: mobile overflow guard ── */
@media (max-width: 767px) {
  /* Prevent any child from punching outside the viewport */
  .tab-content,
  .product-description,
  .gv-pd-body {
    overflow-x: hidden;
    max-width: 100%;
  }

  /* Nav-pills tabs — shrink h4 to fit side-by-side */
  #pills .nav-link h4 {
    font-size: 15px;
    margin: 0;
  }
  #pills.nav-pills {
    gap: 16px;
  }

  /* Description text — comfortable mobile reading */
  .product-description {
    font-size: 14px !important;
  }

  /* Specs table: let it scroll, don't clip it */
  .product-description table {
    font-size: 13px;
  }
  .product-description table td,
  .product-description table th {
    padding: 8px 12px;
    min-width: 80px;
  }
}

/* ── List view ── */
.gv-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #f0f0f0;
  padding: 14px 16px;
  margin-bottom: 10px;
  transition: box-shadow .2s, border-color .2s;
}
.gv-list-row:hover {
  box-shadow: 0 4px 18px rgba(0,0,0,.07);
  border-color: #e4e4e4;
}
.gv-list-info {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.gv-list-info:hover { color: inherit; }
.gv-list-img {
  flex-shrink: 0;
  width: 88px;
  height: 88px;
  border-radius: 10px;
  background: #f7f7f7;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  padding: 8px;
}
.gv-list-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .25s;
}
.gv-list-row:hover .gv-list-img img {
  transform: scale(1.06);
}
.gv-list-meta {
  min-width: 0;
  flex: 1;
}
.gv-list-brand {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--pry-color);
  margin-bottom: 3px;
}
.gv-list-name {
  font-size: 14px;
  line-height: 1.4;
  color: #222;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gv-list-price {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.gv-list-compare {
  font-size: 13px;
  opacity: .45;
  color: #333;
}
.gv-list-amount {
  font-size: 17px;
  font-weight: 700;
  color: #111;
}
.gv-list-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  flex-shrink: 0;
}
.gv-list-wishlist {
  color: var(--pry-color) !important;
  padding: 0 !important;
  font-size: 16px;
  line-height: 1;
  width: auto !important;
  position: static !important;
}
.gv-list-wishlist.active { color: var(--pry-color) !important; }
.gv-out-of-stock {
  font-size: 13px;
  font-weight: 600;
  color: #e53935;
}
.gv-list-actions .btn-pry {
  font-size: 13px !important;
  padding: 8px 16px !important;
}

@media (max-width: 576px) {
  .gv-list-row {
    flex-wrap: wrap;
  }
  .gv-list-info {
    width: 100%;
  }
  .gv-list-actions {
    flex-direction: row;
    align-items: center;
    width: 100%;
    justify-content: space-between;
  }
}

/* ── Mobile filter bar & bottom-sheet ── */
.gv-filter-bar {
  z-index: 50;
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.gv-filter-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  padding: 13px 16px;
  font-size: 15px;
  font-weight: 600;
  color: #222;
  cursor: pointer;
  letter-spacing: .01em;
}
.gv-filter-btn:focus { outline: none; }
.gv-filter-chevron {
  font-size: 12px;
  color: #888;
  transition: transform .25s;
}
.gv-filter-sheet.show ~ * .gv-filter-chevron,
body.gv-filter-open .gv-filter-chevron {
  transform: rotate(180deg);
}

/* overlay */
.gv-filter-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 110;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.gv-filter-overlay.show { display: block; }

/* bottom sheet */
.gv-filter-sheet {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 120;
  background: #fff;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -4px 24px rgba(0,0,0,.14);
  transform: translateY(100%);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  max-height: 88vh;
  display: flex;
  flex-direction: column;
}
.gv-filter-sheet.show {
  transform: translateY(0);
}

/* drag handle */
.gv-filter-sheet-handle {
  padding: 12px 0 4px;
  text-align: center;
  cursor: pointer;
  flex-shrink: 0;
}
.gv-handle-bar {
  display: inline-block;
  width: 40px;
  height: 4px;
  background: #ddd;
  border-radius: 4px;
}

/* sheet header */
.gv-filter-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 20px 14px;
  border-bottom: 1px solid #f0f0f0;
  flex-shrink: 0;
}
.gv-filter-sheet-title {
  font-size: 16px;
  font-weight: 700;
  color: #111;
}
.gv-filter-close {
  background: #f4f4f4;
  border: none;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #555;
  cursor: pointer;
  flex-shrink: 0;
}
.gv-filter-close:focus { outline: none; }

/* scrollable body */
.gv-filter-sheet-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px 20px 32px;
  flex: 1 1 auto;
}

/* prevent body scroll while sheet is open */
body.gv-filter-open { overflow: hidden; }

/* ── Payment profile ── */
.gv-pp-section-hd {
  margin-bottom: 12px;
}
.gv-pp-title {
  font-size: 18px;
  font-weight: 700;
  color: #111;
  margin: 0;
}

/* saved cards list */
.gv-pp-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gv-pp-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1.5px solid #ebebeb;
  border-radius: 14px;
  padding: 14px 18px;
  cursor: pointer;
  transition: border-color .18s, box-shadow .18s;
}
.gv-pp-card:hover {
  border-color: #d0d0d0;
  box-shadow: 0 4px 16px rgba(0,0,0,.05);
}
.gv-pp-card--selected {
  border-color: var(--pry-color) !important;
  box-shadow: 0 0 0 3px rgba(var(--pry-color-rgb),.08) !important;
}

/* brand icon box */
.gv-pp-brand-wrap {
  flex-shrink: 0;
  width: 54px;
  height: 36px;
  background: #f7f7f7;
  border: 1px solid #ebebeb;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 7px;
  overflow: hidden;
}
.gv-pp-brand-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* card info */
.gv-pp-info {
  flex: 1 1 auto;
  min-width: 0;
}
.gv-pp-card-label {
  font-size: 14px;
  font-weight: 700;
  color: #111;
  line-height: 1.3;
}
.gv-pp-card-num {
  font-size: 13px;
  color: #888;
  letter-spacing: .06em;
  margin-top: 2px;
}
.gv-pp-card-holder {
  font-size: 12px;
  color: #bbb;
  margin-top: 2px;
}

/* expiry */
.gv-pp-expiry {
  flex-shrink: 0;
  text-align: right;
  line-height: 1.4;
}
.gv-pp-expiry-label {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #bbb;
  margin-bottom: 1px;
}
.gv-pp-expiry-val {
  font-size: 13px;
  font-weight: 600;
  color: #555;
}

/* remove button */
.gv-pp-card-actions {
  flex-shrink: 0;
  margin-left: 4px;
}
.gv-pp-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff0f0;
  color: #c0392b;
  text-decoration: none !important;
  font-size: 13px;
  transition: background .15s, color .15s;
}
.gv-pp-remove:hover {
  background: #c0392b;
  color: #fff !important;
}

/* empty state */
.gv-pp-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  background: #fafafa;
  border: 1.5px dashed #e0e0e0;
  border-radius: 14px;
  color: #bbb;
  text-align: center;
}
.gv-pp-empty-icon {
  font-size: 32px;
  margin-bottom: 10px;
}
.gv-pp-empty-text {
  font-size: 14px;
  margin: 0;
}

/* add new card section */
.gv-pp-add .accordion {
  border: 1.5px solid #ebebeb !important;
  border-radius: 14px !important;
  overflow: hidden;
  box-shadow: none !important;
}
.gv-pp-add .accordion-item {
  border: none !important;
  border-top: 1px solid #f0f0f0 !important;
}
.gv-pp-add .accordion-item:first-child {
  border-top: none !important;
}
.gv-pp-add .accordion-button {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #111 !important;
  padding: 14px 18px !important;
  background: #fff !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.gv-pp-add .accordion-button:not(.collapsed) {
  background: #fafafa !important;
}
.gv-pp-add .accordion-body {
  padding: 16px 18px 20px !important;
  border-top: 1px solid #f0f0f0;
  background: #fff;
}
.gv-pp-add .form-control {
  border-radius: 10px !important;
  font-size: 14px !important;
  border-color: #e8e8e8 !important;
  /* padding: 10px 14px !important;
  background: #fafafa !important; */
  color: #111 !important;
}
.gv-pp-add .form-control:focus {
  background: #fff !important;
  border-color: var(--pry-color) !important;
  box-shadow: 0 0 0 3px rgba(var(--pry-color-rgb),.1) !important;
}
.gv-pp-add .btn-primary {
  background: var(--pry-color) !important;
  border-color: var(--pry-color) !important;
  border-radius: 20px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 8px 22px !important;
  transition: opacity .15s !important;
}
.gv-pp-add .btn-primary:hover {
  opacity: .88 !important;
}

/* override old generic payment profile rules */
#paymentProfileComponent label.d-block { display: none !important; }

@media (max-width: 575.98px) {
  .gv-pp-expiry { display: none; }
  .gv-pp-card { padding: 12px 14px; }
}

/* ── Shipping address cards ── */
.gv-addr-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}
.gv-addr-title {
  font-size: 18px;
  font-weight: 700;
  color: #111;
  margin: 0;
}
.gv-addr-add-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
  color: var(--pry-color);
  border: 1.5px solid var(--pry-color);
  border-radius: 20px;
  padding: 5px 14px;
  text-decoration: none !important;
  transition: background .18s, color .18s;
}
.gv-addr-add-btn:hover {
  background: var(--pry-color);
  color: #fff !important;
}

/* card */
.gv-addr-card {
  background: #fff;
  border: 1.5px solid #ebebeb;
  border-radius: 14px;
  padding: 18px 20px 14px;
  display: flex;
  flex-direction: column;
  transition: border-color .18s, box-shadow .18s;
}
.gv-addr-card:hover {
  border-color: #d0d0d0;
  box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.gv-addr-card--default {
  border-color: var(--pry-color) !important;
  box-shadow: 0 0 0 3px rgba(var(--pry-color-rgb),.08);
}

/* top row: icon + name + badge */
.gv-addr-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}
.gv-addr-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(var(--pry-color-rgb),.1);
  color: var(--pry-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  margin-top: 1px;
}
.gv-addr-card--default .gv-addr-icon {
  background: var(--pry-color);
  color: #fff;
}
.gv-addr-name {
  font-size: 15px;
  font-weight: 700;
  color: #111;
  line-height: 1.3;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* badges */
.gv-addr-badge {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  border-radius: 20px;
  padding: 3px 10px;
  text-decoration: none !important;
}
.gv-addr-badge--default {
  background: rgba(var(--pry-color-rgb),.12);
  color: var(--pry-color);
}
.gv-addr-badge--set {
  background: #f3f3f3;
  color: #777;
  border: 1px solid #e8e8e8;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.gv-addr-badge--set:hover {
  background: rgba(var(--pry-color-rgb),.1);
  color: var(--pry-color);
  border-color: var(--pry-color);
}

/* body */
.gv-addr-body {
  flex: 1 1 auto;
  padding-left: 48px;
  margin-bottom: 14px;
}
.gv-addr-line {
  font-size: 13.5px;
  color: #555;
  margin: 0 0 3px;
  line-height: 1.5;
}
.gv-addr-line:last-child { margin-bottom: 0; }

/* actions */
.gv-addr-actions {
  display: flex;
  gap: 8px;
  padding-left: 48px;
  border-top: 1px solid #f0f0f0;
  padding-top: 12px;
  margin-top: auto;
}
.gv-addr-btn {
  display: inline-flex;
  align-items: center;
  font-size: 12.5px;
  font-weight: 600;
  border-radius: 20px;
  padding: 5px 14px;
  text-decoration: none !important;
  transition: background .15s, color .15s;
}
.gv-addr-btn--edit {
  background: #f3f3f3;
  color: #444;
}
.gv-addr-btn--edit:hover {
  background: #e8e8e8;
  color: #111;
}
.gv-addr-btn--remove {
  background: #fff0f0;
  color: #c0392b;
}
.gv-addr-btn--remove:hover {
  background: #c0392b;
  color: #fff;
}

@media (max-width: 575.98px) {
  .gv-addr-body,
  .gv-addr-actions {
    padding-left: 0;
  }
  .gv-addr-top {
    flex-wrap: wrap;
  }
}


/* ============================================================
   Global Alert Redesign
   Overrides Bootstrap defaults site-wide with a clean,
   icon-accented, pill-free style.
   ============================================================ */

/* ── Base reset ── */
.alert {
  border: none;
  border-radius: 10px;
  padding: 13px 16px 13px 48px;
  font-size: 14px;
  line-height: 1.5;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* Left icon via ::before */
.alert::before {
  font-family: "Font Awesome 6 Pro", "Font Awesome 5 Pro", "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  font-size: 15px;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  line-height: 1;
}

/* ── Success ── */
.alert-success {
  background-color: #edf7f2;
  color: #1a6644;
}
.alert-success::before {
  content: "\f058"; /* fa-check-circle */
  color: #28a264;
}

/* ── Danger / Error ── */
.alert-danger {
  background-color: #fdf0ee;
  color: #8b2211;
}
.alert-danger::before {
  content: "\f06a"; /* fa-exclamation-circle */
  color: #d63b1f;
}

/* ── Warning ── */
.alert-warning {
  background-color: #fef9ec;
  color: #7a5500;
}
.alert-warning::before {
  content: "\f071"; /* fa-exclamation-triangle */
  color: #e6a817;
}

/* ── Info ── */
.alert-info {
  background-color: #edf4fb;
  color: #174a7a;
}
.alert-info::before {
  content: "\f05a"; /* fa-info-circle */
  color: #2b87d1;
}

/* ── Dismiss button ── */
.alert .btn-close,
.alert .close {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  opacity: .45;
  font-size: 12px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  color: inherit;
}
.alert .btn-close:hover,
.alert .close:hover {
  opacity: .85;
}

/* Legacy <a> dismiss links (fa-times icon) */
.alert a[data-bs-dismiss="alert"] {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  opacity: .4;
  color: inherit !important;
  text-decoration: none;
  font-size: 13px;
}
.alert a[data-bs-dismiss="alert"]:hover { opacity: .9; }
.alert a[data-bs-dismiss="alert"] i { color: inherit !important; }

/* ── Page-notification bar (rounded-0 full-width banners) ── */
.alert.rounded-0 {
  border-radius: 0 !important;
  padding: 10px 20px 10px 48px;
}

/* ── Compact inline alerts (p-1, p-2 helpers) ── */
.alert.p-1,
.alert.p-2 {
  padding: 10px 16px 10px 44px !important;
}

/* ── Remove old Bootstrap coloured borders that sometimes bleed through ── */
.alert.border,
.alert.border-success,
.alert.border-danger {
  border: none !important;
}


/* ============================================================
   Full-Screen Search Overlay
   ============================================================ */

/* Lock scroll when overlay is open */
body.search-overlay-open {
  overflow: hidden;
}

/* ── Overlay shell ── */
.gv-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9990;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  /* Hidden by default */
  visibility: hidden;
  pointer-events: none;
}
.gv-search-overlay.is-open {
  visibility: visible;
  pointer-events: all;
}

/* ── Backdrop ── */
.gv-search-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.76);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.gv-search-overlay.is-open .gv-search-backdrop {
  opacity: 1;
}

/* ── Panel ── */
.gv-search-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  max-height: 100dvh;
  transform: translateY(-28px);
  opacity: 0;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
}
.gv-search-overlay.is-open .gv-search-panel {
  transform: translateY(0);
  opacity: 1;
}

/* ── Top bar ── */
.gv-search-topbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 28px 24px 20px;
}

/* ── Field wrapper ── */
.gv-search-field-wrap {
  position: relative;
  flex: 1;
}
.gv-search-icon-prefix {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  color: rgba(0,0,0,0.3);
  pointer-events: none;
  transition: color 0.2s;
}
.gv-search-field-wrap:focus-within .gv-search-icon-prefix {
  color: var(--pry-color);
}

/* ── Big search input ── */
.gv-search-field {
  width: 100%;
  background: #fff;
  border: 1.5px solid #d8d8d8;
  border-radius: 16px;
  color: #111;
  font-size: 18px;
  font-weight: 400;
  padding: 12px 52px 12px 60px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.gv-search-field::placeholder {
  color: rgba(0,0,0,0.28);
}
.gv-search-field:focus {
  border-color: var(--pry-color);
  box-shadow: 0 0 0 3px rgba(0, 104, 95, 0.1);
}
/* Hide browser default clear button */
.gv-search-field::-webkit-search-cancel-button { display: none; }

/* ── Clear button (×) inside field ── */
.gv-search-clear {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(0,0,0,0.3);
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  transition: color 0.15s;
}
.gv-search-clear:hover { color: #111; }

/* ── Close button (top-right) ── */
.gv-search-close-btn {
  background: #f0f0f0;
  border: 1.5px solid #e0e0e0;
  border-radius: 12px;
  color: rgba(0,0,0,0.5);
  font-size: 18px;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.gv-search-close-btn:hover {
  background: #e4e4e4;
  color: #111;
  border-color: #ccc;
}

/* ── Results body (scrollable) ── */
.gv-search-body {
  flex: 1;
  overflow-y: auto;
  padding: 0 24px 40px;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.12) transparent;
}
.gv-search-body::-webkit-scrollbar { width: 5px; }
.gv-search-body::-webkit-scrollbar-track { background: transparent; }
.gv-search-body::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); border-radius: 10px; }

/* ── Loading ── */
.gv-search-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(0,0,0,0.4);
  font-size: 15px;
  padding: 40px 0;
  justify-content: center;
}

/* ── Result label ── */
.gv-search-result-label {
  color: rgba(0,0,0,0.4);
  font-size: 13px;
  margin-bottom: 20px;
  letter-spacing: .3px;
}
.gv-search-result-label strong { color: rgba(0,0,0,0.7); }

/* ── Product grid ── */
.gv-search-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 767px) {
  .gv-search-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
  .gv-search-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ── Product card ── */
.gv-search-card {
  background: #f8f8f8;
  border: 1px solid #e8e8e8;
  border-radius: 14px;
  padding: 16px 12px 14px;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s, transform 0.18s, box-shadow 0.18s;
  text-align: center;
}
.gv-search-card:hover {
  background: #fff;
  border-color: var(--pry-color);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,104,95,0.1);
}
.gv-search-card-img {
  width: 100%;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.gv-search-card-img img {
  max-width: 100%;
  max-height: 120px;
  object-fit: contain;
}
.gv-search-card-name {
  color: #1a1a1a;
  font-size: 13px;
  line-height: 1.4;
  margin: 0 0 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gv-search-card-price {
  color: var(--pry-color);
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}

/* ── View all ── */
.gv-search-view-all {
  margin-top: 32px;
  text-align: center;
}

/* ── Empty state ── */
.gv-search-empty {
  text-align: center;
  padding: 60px 20px;
  color: rgba(0,0,0,0.4);
}
.gv-search-empty-icon {
  font-size: 48px;
  display: block;
  margin-bottom: 16px;
  opacity: .25;
}
.gv-search-empty p {
  font-size: 18px;
  color: rgba(0,0,0,0.65);
  margin-bottom: 6px;
}
.gv-search-empty small { font-size: 14px; }
.gv-search-empty a { color: var(--pry-color); }

/* ── Idle state ── */
.gv-search-idle {
  padding: 32px 0 20px;
  text-align: center;
}
.gv-search-idle-hint {
  color: rgba(0,0,0,0.35);
  font-size: 15px;
  margin-bottom: 24px;
}
.gv-search-quick-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.gv-search-quick-links a {
  background: #f0f0f0;
  border: 1px solid #e0e0e0;
  color: rgba(0,0,0,0.6);
  border-radius: 30px;
  padding: 8px 20px;
  font-size: 13px;
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.gv-search-quick-links a:hover {
  background: #e6e6e6;
  color: #111;
  border-color: #ccc;
}

/* ── Mobile padding ── */
@media (max-width: 575px) {
  .gv-search-topbar { padding: 20px 16px 16px; gap: 10px; }
  .gv-search-field { font-size: 18px; padding: 15px 46px 15px 52px; }
  .gv-search-icon-prefix { font-size: 18px; left: 16px; }
  .gv-search-close-btn { width: 46px; height: 46px; font-size: 16px; }
  .gv-search-body { padding: 0 16px 32px; }
}


/* ════════════════════════════════════════════════════════
   Promo / Gift-card code — cart summary
   ════════════════════════════════════════════════════════ */

.gv-promo-wrap {
  padding-top: 16px;
  padding-bottom: 4px;
}

/* Success strip */
.gv-promo-success {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #f0faf7;
  border: 1px solid #bbdfd8;
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 14px;
  font-size: 13px;
  color: #1a6644;
  font-weight: 500;
}
.gv-promo-success i {
  color: #00685f;
  font-size: 15px;
  flex-shrink: 0;
}

/* Toggle button */
.gv-promo-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #374151;
  font-size: 14px;
  font-weight: 500;
  font-family: inherit;
  text-align: left;
}
.gv-promo-toggle:hover { color: #111; }
.gv-promo-toggle:focus-visible {
  outline: 2px solid var(--pry-color);
  outline-offset: 3px;
  border-radius: 4px;
}
.gv-promo-tag-ic {
  color: var(--pry-color);
  font-size: 12px;
}
.gv-promo-chevron {
  font-size: 11px;
  color: #9ca3af;
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
.gv-promo-toggle[aria-expanded="true"] .gv-promo-chevron {
  transform: rotate(180deg);
}

/* Collapse form */
.gv-promo-form {
  padding-top: 12px;
}
.gv-promo-field-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.gv-promo-field {
  position: relative;
  flex: 1;
}
.gv-promo-field-ic {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: #b0b8c4;
  font-size: 12px;
  pointer-events: none;
}
.gv-promo-input {
  width: 100%;
  height: 44px;
  padding: 0 14px 0 36px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.6px;
  color: #111;
  background: #fff;
  border: 1.5px solid #e0e0e0;
  border-radius: 10px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  font-family: inherit;
}
.gv-promo-input::placeholder {
  color: #b0b8c4;
  font-weight: 400;
  letter-spacing: 0;
}
.gv-promo-input:focus {
  border-color: var(--pry-color);
  box-shadow: 0 0 0 3px rgba(0, 104, 95, 0.1);
}

/* Apply button */
.gv-promo-btn {
  height: 44px;
  padding: 0 22px;
  background: #111;
  color: #fff;
  border: none;
  border-radius: 22px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
  transition: background 0.15s, transform 0.1s;
  flex-shrink: 0;
}
.gv-promo-btn:hover  { background: #333; }
.gv-promo-btn:active { transform: scale(0.97); }

/* Add more items link */
.gv-promo-addmore {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 14px;
  font-size: 13px;
  color: #9ca3af;
  text-decoration: none;
  transition: color 0.15s;
}
.gv-promo-addmore:hover { color: #374151; }


/* ════════════════════════════════════════════════════════
   Category landing page — hero + attribute cards
   ════════════════════════════════════════════════════════ */

/* ── Hero banner ── */
.gv-cat-hero {
  position: relative;
  min-height: 360px;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  padding: 64px 0;
}
.gv-cat-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(116, 79, 44,0.82) 0%,
    rgba(116, 79, 44,0.55) 40%,
    rgba(116, 79, 44,0.05)  100%
  );
}
.gv-cat-hero-plain {
  background: linear-gradient(135deg, #0a2f2c 0%, #00685f 100%);
}
.gv-cat-hero-plain::before { display: none; }
.gv-cat-hero .container { position: relative; z-index: 1; }

/* Breadcrumb inside hero */
.gv-cat-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  font-size: 13px;
  flex-wrap: wrap;
}
.gv-cat-breadcrumb a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: color 0.15s;
}
.gv-cat-breadcrumb a:hover { color: #fff; }
.gv-cat-breadcrumb i { color: rgba(255,255,255,0.35); font-size: 9px; }
.gv-cat-breadcrumb span { color: rgba(255,255,255,0.92); font-weight: 500; }

/* Title */
.gv-cat-hero-title {
  font-size: 52px;
  font-weight: 800;
  color: #fff;
  line-height: 1.08;
  letter-spacing: -1.5px;
  margin: 0 0 18px;
  text-transform: capitalize;
}

/* Description (may contain HTML from editor) */
.gv-cat-hero-desc {
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255,255,255,0.82);
  max-width: 540px;
  margin-bottom: 32px;
}
.gv-cat-hero-desc p { margin: 0; }

/* CTA button */
.gv-cat-hero-cta {
  display: inline-flex;
  align-items: center;
  background: #fff;
  color: #111;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 32px;
  text-decoration: none;
  transition: background 0.15s, transform 0.12s;
  letter-spacing: 0.1px;
}
.gv-cat-hero-cta:hover {
  background: #f0f0f0;
  color: #111;
  transform: translateY(-2px);
}

/* ── Section headers ── */
.gv-cat-section {
  margin-bottom: 56px;
}
.gv-cat-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1.5px solid #f0f0f0;
}
.gv-cat-section-title {
  font-size: 22px;
  font-weight: 700;
  color: #0a0a0a;
  margin: 0;
  letter-spacing: -0.4px;
}
.gv-cat-section-all {
  font-size: 13px;
  font-weight: 600;
  color: var(--pry-color);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.gv-cat-section-all:hover { color: #004d46; text-decoration: underline; }

/* ── Attribute cards ── */
.gv-attr-card {
  display: block;
  text-decoration: none;
}
.gv-attr-card-img-wrap {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: #f3f3f3;
}
.gv-attr-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.gv-attr-card:hover .gv-attr-card-img {
  transform: scale(1.06);
}

/* Hover overlay */
.gv-attr-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.52) 0%, transparent 60%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 20px;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.gv-attr-card:hover .gv-attr-card-overlay { opacity: 1; }
.gv-attr-card-cta {
  background: #fff;
  color: #111;
  font-size: 13px;
  font-weight: 700;
  padding: 8px 22px;
  border-radius: 22px;
  white-space: nowrap;
}

/* Card text */
.gv-attr-card-body {
  padding: 14px 2px 6px;
}
.gv-attr-card-title {
  font-size: 15px;
  font-weight: 700;
  color: #0a0a0a;
  margin: 0 0 4px;
  letter-spacing: -0.2px;
  line-height: 1.3;
}
.gv-attr-card-link {
  font-size: 13px;
  color: var(--pry-color);
  font-weight: 500;
}
.gv-attr-card:hover .gv-attr-card-link { text-decoration: underline; }

/* ── Responsive ── */
@media (max-width: 767px) {
  .gv-cat-hero { min-height: 200px; padding: 44px 0; }
  .gv-cat-hero-title { font-size: 34px; letter-spacing: -0.8px; }
  .gv-cat-hero-desc { font-size: 15px; }
  .gv-cat-section-title { font-size: 19px; }
}
@media (max-width: 575px) {
  .gv-attr-card-title { font-size: 13px; }
  .gv-attr-card-link { font-size: 12px; }
  .gv-cat-hero-cta { font-size: 14px; padding: 12px 22px; }
}


/* ════════════════════════════════════════════════════════
   Attribute listing page (single category drill-down)
   ════════════════════════════════════════════════════════ */

/* Description truncation inside hero */
/* .gv-cat-hero-desc.ellipsis-container {
  max-height: 80px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, #000 50%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 50%, transparent 100%);
  transition: max-height 0.4s ease;
}
.gv-cat-hero-desc.ellipsis-container.view {
  max-height: 600px;
  -webkit-mask-image: none;
  mask-image: none;
} */

/* Show-more / show-less toggle button */
.gv-cat-hero-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.32);
  color: rgba(255,255,255,0.9);
  font-size: 13px;
  font-weight: 600;
  padding: 7px 18px;
  border-radius: 22px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s;
  font-family: inherit;
}
.gv-cat-hero-toggle:hover {
  background: rgba(255,255,255,0.25);
  color: #fff;
  text-decoration: none;
}

/* Desktop filter sidebar */
.gv-listing-sidebar {
  width: 280px;
  flex-shrink: 0;
  background: #fff;
  border-radius: 16px;
  border: 1px solid #eeeeee;
  padding: 22px 18px;
  height: fit-content;
  position: sticky;
  top: 12px;
  overflow: auto;
}

/* Prevent product grid from overflowing its flex lane */
.min-w-0 { min-width: 0; }


/* ════════════════════════════════════════════════════════
   Product detail accordion — single product page
   ════════════════════════════════════════════════════════ */

.gv-pd-accordion {
  border: 1.5px solid #ebebeb;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

.gv-pd-item {
  border-bottom: 1.5px solid #f2f2f2;
}
.gv-pd-item:last-child { border-bottom: none; }

/* Trigger button */
.gv-pd-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: #f6f3ee;
  border: none;
  padding: 18px 20px;
  font-size: 15px;
  font-weight: 600;
  color: #0a0a0a;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s;
  gap: 12px;
}
.gv-pd-trigger:hover { background: #efe9df; }
.gv-pd-trigger:focus-visible {
  outline: 2px solid var(--pry-color);
  outline-offset: -2px;
}

/* Chevron */
.gv-pd-chevron {
  font-size: 12px;
  color: #b0b8c4;
  flex-shrink: 0;
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), color 0.15s;
}
.gv-pd-trigger[aria-expanded="true"] .gv-pd-chevron {
  transform: rotate(180deg);
  color: var(--pry-color);
}

/* Body */
.gv-pd-body {
  padding: 2px 20px 20px;
  font-size: 14px;
  line-height: 1.75;
  color: #4b5563;
}

/* Sizes table */
.gv-pd-table { border-collapse: collapse; width: 100%; }
.gv-pd-table thead th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: #9ca3af;
  padding: 6px 0 10px;
  border-bottom: 1.5px solid #f0f0f0;
  border-top: none;
  background: transparent;
}
.gv-pd-table tbody td {
  font-size: 14px;
  color: #374151;
  padding: 11px 0;
  border-bottom: 1px solid #f7f7f7;
  border-top: none;
  vertical-align: middle;
}
.gv-pd-table tbody tr:last-child td { border-bottom: none; }

/* ============================================================
   GV – Seal Certifications  (.gv-cert-*)
   ============================================================ */

/* Breadcrumb */
.gv-cert-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #9ca3af;
  flex-wrap: wrap;
}
.gv-cert-breadcrumb a {
  color: #6b7280;
  text-decoration: none;
  transition: color .15s;
}
.gv-cert-breadcrumb a:hover { color: var(--pry-color); }
.gv-cert-breadcrumb i { font-size: 9px; color: #d1d5db; }
.gv-cert-breadcrumb span { color: #374151; font-weight: 500; }

/* Hero card */
.gv-cert-hero {
  display: flex;
  align-items: flex-start;
  gap: 36px;
  background: #ffffff;
  border: 1.5px solid #ebebeb;
  border-radius: 20px;
  padding: 44px 48px;
  box-shadow: 0 2px 4px rgba(0,0,0,.03), 0 8px 32px rgba(0,0,0,.05);
}

/* Badge */
.gv-cert-badge-wrap {
  flex-shrink: 0;
  width: 130px;
  height: 130px;
  background: #f8f7f4;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.gv-cert-badge {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  padding: 10px;
}

/* Info */
.gv-cert-info {
  flex: 1;
  min-width: 0;
}
.gv-cert-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--pry-color);
  margin-bottom: 8px;
}
.gv-cert-title {
  font-size: 30px;
  font-weight: 800;
  color: #0a0a0a;
  letter-spacing: -0.5px;
  margin-bottom: 14px;
  line-height: 1.2;
}
.gv-cert-desc {
  font-size: 15px;
  line-height: 1.75;
  color: #4b5563;
  margin: 0;
  max-width: 620px;
}

/* Products section header */
.gv-cert-products-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 1.5px solid #f0f0f0;
  padding-bottom: 14px;
  margin-bottom: 24px;
}
.gv-cert-products-title {
  font-size: 20px;
  font-weight: 700;
  color: #0a0a0a;
  letter-spacing: -0.3px;
  margin: 0;
}
.gv-cert-count {
  font-size: 13px;
  color: #9ca3af;
  font-weight: 500;
}

/* Product card */
.gv-cert-product-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1.5px solid #ebebeb;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.gv-cert-product-card:hover {
  border-color: var(--pry-color);
  box-shadow: 0 6px 24px rgba(0,104,95,.1);
  transform: translateY(-2px);
  color: inherit;
}

/* Product image area */
.gv-cert-product-img {
  aspect-ratio: 1 / 1;
  background: #f8f8f8;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow: hidden;
}
.gv-cert-product-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform .3s ease;
}
.gv-cert-product-card:hover .gv-cert-product-img img {
  transform: scale(1.04);
}

/* Product body */
.gv-cert-product-body {
  padding: 12px 14px 14px;
  border-top: 1px solid #f0f0f0;
}
.gv-cert-product-brand {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--pry-color);
  margin-bottom: 4px;
}
.gv-cert-product-name {
  font-size: 13px;
  font-weight: 500;
  color: #111;
  line-height: 1.45;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gv-cert-product-price {
  font-size: 15px;
  font-weight: 700;
  color: #0a0a0a;
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.gv-cert-product-compare {
  font-size: 12px;
  font-weight: 400;
  color: #9ca3af;
}

/* ── Responsive ── */
@media (max-width: 767px) {
  .gv-cert-hero {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 24px;
    gap: 24px;
  }
  .gv-cert-desc { max-width: 100%; }
  .gv-cert-title { font-size: 24px; }
}

/* ============================================================
   GV – Pagination  (.gv-pg-*)
   ============================================================ */

.gv-pg-nav {
  display: flex;
  justify-content: center;
  padding: 8px 0;
}

/* ── Desktop list ── */
.gv-pg-full {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
  padding: 0;
  margin: 0;
  flex-wrap: nowrap; /* no wrapping — desktop has room */
}

/* Base link — aggressively reset any Bootstrap bleed */
.gv-pg-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 36px;
  height: 36px;
  padding: 0 6px;
  border-radius: 8px !important;
  font-size: 14px;
  font-weight: 400;
  color: #6b7280 !important;
  text-decoration: none !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  line-height: 1;
  transition: color .12s ease;
  cursor: pointer;
  user-select: none;
}

/* Hover — inactive pages only */
.gv-pg-item:not(.active) .gv-pg-link:hover {
  color: #111 !important;
  background: transparent !important;
}

/* Active page */
.gv-pg-item.active .gv-pg-link {
  color: #111 !important;
  font-weight: 600;
  cursor: default;
  position: relative;
  background: transparent !important;
}
.gv-pg-item.active .gv-pg-link::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 2px;
  border-radius: 2px;
  background: #111 !important;
}

/* Disabled arrows */
.gv-pg-item.disabled .gv-pg-link,
.gv-pg-link.disabled {
  color: #d1d5db !important;
  background: transparent !important;
  cursor: default;
  pointer-events: none;
}

/* Arrows (chevrons) */
.gv-pg-link.gv-pg-arrow {
  font-size: 10px;
  color: #9ca3af !important;
}
.gv-pg-item:not(.disabled) .gv-pg-link.gv-pg-arrow:hover {
  color: #111 !important;
}

/* Dots separator */
.gv-pg-link.gv-pg-dots {
  color: #c9cdd4 !important;
  cursor: default;
  pointer-events: none;
  letter-spacing: 1px;
  font-size: 12px;
  background: transparent !important;
}

/* ── Mobile compact version ── */
.gv-pg-mobile {
  display: none; /* hidden on desktop */
  align-items: center;
  gap: 12px;
}
.gv-pg-mobile-label {
  font-size: 14px;
  color: #6b7280;
  white-space: nowrap;
  min-width: 100px;
  text-align: center;
}
.gv-pg-mobile-label strong {
  color: #111;
  font-weight: 600;
}

@media (max-width: 639px) {
  .gv-pg-full  { display: none; }   /* hide full list on mobile */
  .gv-pg-mobile { display: flex; }  /* show compact version     */
}
