/* Define global variables in the :root pseudo-class */
:root {
  /* Color Variables */
  --hero-color: #000000;
  --hero-color-light: #f3c4d7;
  --white-color: #ffffff;
  --black: rgb(28, 28, 28);
}

@font-face {
  font-family: "Avenir Next", "Montserrat", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("//www.harpertait.com/cdn/fonts/avenir_next/avenirnext_n4.7fd0287595be20cd5a683102bf49d073b6abf144.woff2?h1=aGFycGVydGFpdC5jb20&h2=aGFycGVyLXRhaXQuYWNjb3VudC5teXNob3BpZnkuY29t&hmac=97a47bd009851c3e99d6ad4d86c7df1e1a0617c87cd7ae28833a3c521193cd0f") format("woff2"),
    url("//www.harpertait.com/cdn/fonts/avenir_next/avenirnext_n4.a26a334a0852627a5f36b195112385b0cd700077.woff?h1=aGFycGVydGFpdC5jb20&h2=aGFycGVyLXRhaXQuYWNjb3VudC5teXNob3BpZnkuY29t&hmac=bb0b6b5f9b4c46b23513ba838632ba9ed819ed8900b15784ff5845aa00594a7b") format("woff");
}

/*

-- Font sizes (px)
10 / 12 / 14 / 16 / 18 / 20 / 24 / 30 / 36 / 44 / 52 / 62 / 74 / 86 / 98


  cursive ----- font-family: "Tenor Sans", sans-serif;


  less cursive --- font-family: "Avenir Next", "Montserrat", sans-serif;



-- Spacing system (px)
2 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 128

*/

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

ul,
li {
  list-style-type: none;
}

button {
  cursor: pointer;
  border: none;
}

a {
  text-decoration: none;
  color: inherit;
}

body {
  font-family: Arial, sans-serif;
  line-height: 1;
  font-weight: 400;
  margin: 0 auto;
  background-color: var(--white-color);
}

.container {
  margin: 0 4.8rem;
}

.top-header,
.bottom-header,
.left-h-part ul,
.review-box,
.text-part-box .btn-box,
.text-box-parallax,
.card__cont,
.card__cta,
.card-box,
.right-h-part ul,
.img-text-section .text-part-box,
.mid-header,
.img-text-section .img-part-box,
.mid-header ul,
.the-best-of,
.card-section .card-box,
.bottom-header ul,
.best-selling-section .collection div,
.banner-text-box {
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader {
  display: block;
  position: relative;
  width: 100vw;
  height: 100vh;
  position: fixed;
  z-index: 999;
}

.loading-page {
  position: absolute;
  top: 0;
  left: 0;
  background-color: #fb8bb4;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: rgb(255, 245, 245);
}

.preloader-logo {
  width: 70%;
  height: fit-content;
  animation: scaling 5s;
}


@keyframes scaling {
  0% {
    transform: scale(5);
    opacity: 0;
  }

  50% {
    transform: scale(.8);
    opacity: 1;
  }

  100% {
    transform: scale(5);
    opacity: 0;
  }
}


.title-box {
  display: block;
  text-align: center;
  font-family: "Tenor Sans", sans-serif;
  padding: 6.4rem 0 4.8rem 0;
}

.title-box .primary-text {
  padding-bottom: 1.2rem;
  font-size: 3rem;
  font-weight: 400;
  letter-spacing: 1px;
}

.title-box .secondary-text {
  display: inline-block;
  padding-top: .8rem;
  border-top: 1px solid var(--hero-color-light);
  font-size: 1.6rem;
  letter-spacing: 1px;
}

.banner-section-fw {
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
}

.banner-section-fw img,
.img-text-section div img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}


.top-header {
  justify-content: space-between;
  padding: .6rem 4rem;
  font-size: 1.3rem;
  border-bottom: 1px solid #e8e8e8;
  font-family: "Avenir Next", "Montserrat", sans-serif;
}

.left-h-part ul,
.right-h-part ul {
  gap: 1.6rem;
  color: #404040;
  letter-spacing: .75px;
}

.right-h-part li {
  display: grid;
}

.right-h-part ion-icon {
  font-size: 2rem;
  color: var(--hero-color);
}

.mid-header {
  padding: 3.2rem 0;
  background-color: var(--white-color);
}

.mid-header ul {
  font-family: "Tenor Sans", sans-serif;
  font-size: 3.6rem;
  flex-direction: column;
}

.mid-header ul .mid-top-logo span {
  font-size: 4.4rem;
}

.mid-header ul .mid-top-logo {
  text-align: center;
  padding-bottom: .8rem;
}

.mid-header ul .mid-bottom-logo {
  font-size: 2.2rem;
  padding-top: .8rem;
  text-align: center;
  width: fit-content;
  border-top: 1px solid var(--hero-color-light);
}

.bottom-header {
  font-size: 1.4rem;
  font-weight: 600;
  font-family: 'Tenor sans';
  letter-spacing: 2px;
  padding-bottom: 1.2rem;
  box-shadow: 0 4px 4px -2px rgba(0, 0, 0, 0.1);
  background-color: var(--white-color);
}

.bottom-header ul {
  gap: 3.2rem;
}

.bottom-header ul li {
  position: relative;
  cursor: pointer;
}

.bottom-header ul li:after {
  content: "";
  display: block;
  position: absolute;
  bottom: -5px;
  left: 0;
  right: 100%;
  margin: 0 5px;
  border-bottom: 1px solid var(--hero-color-light);
  transition: right 0.5s ease;
}

.bottom-header ul li:hover:after {
  right: 0;
}

.sliding-section .to-left-box,
.sliding-section .to-right-box {
  overflow: hidden;
  width: 100%;
  background-color: var(--white-color);
  border: 1px solid #e8e8e8;
  padding: 1.2rem 0;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  color: var(--hero-color);
}

.sliding-section .marquee {
  display: flex;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
}

.marquee strong {
  display: inline-block;
  padding-left: 100%;
}

.sliding-section .to-left-box .marquee strong {
  animation: marquee-l 180s linear infinite;
}

.sliding-section .to-right-box .marquee strong {
  animation: marquee-r 180s linear infinite;
}


@keyframes marquee-l {
  0% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-100%);
  }
}

@keyframes marquee-r {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(0%);
  }
}

.best-selling-section {
  display: grid;
  place-content: center;
  padding-bottom: 4.8rem;
}


.best-selling-section .collection {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3.2rem;
  position: relative;
}

.best-selling-section .collection div,
.grid-collection .grid-col-box {
  overflow: hidden;
  position: relative;
}

.best-selling-section .collection img,
.grid-collection .grid-col-box img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.best-selling-section .collection span {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  padding: 1.2rem;
  font-family: "Tenor Sans", sans-serif;
  font-size: 1.8rem;
  border-top: 1px solid var(--hero-color);
  color: var(--hero-color);
  width: 80%;
  text-align: left;
}


.grid-collection {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  position: relative;
  padding: 4.8rem 0;
}

.grid-collection .grid-col-box .big-span,
.grid-collection .grid-col-box span {
  position: absolute;
  bottom: 17%;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.8rem 1.2rem;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  font-size: 1rem;
  letter-spacing: 2px;
  color: var(--hero-color);
  text-align: center;
}

.grid-collection .grid-col-box.full-width {
  grid-column: span 3;
  height: 12.6rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.grid-collection .grid-col-box.full-width span {
  top: 17%;
}

.grid-collection .grid-col-box.full-width .big-span {
  bottom: 40%;
  transform: translate(-50%, 50%);
}

.grid-collection .grid-col-box .big-span {
  font-size: 2.6rem;
  bottom: 8%;
  letter-spacing: 1px;
}

.banner-text-box {
  position: absolute;
  right: 4%;
  top: 50%;
  transform: translateY(-50%);
  flex-direction: column;
  align-items: flex-end;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  gap: 1.2rem;
  color: var(--hero-color);
  z-index: 1;
}

.banner-text-box p {
  font-size: 1.8rem;
  letter-spacing: 2.5px;
}

.banner-text-box h4 {
  font-size: 4rem;
  font-weight: 400;
  letter-spacing: 2px;
}

.banner-text-box span {
  font-size: 2rem;
  letter-spacing: 1px;
}

.btn-box {
  padding-top: 1.2rem;
}

.btn-box button {
  background-color: var(--white-color);
  color: var(--hero-color);
  padding: 1.2rem 2.4rem;
  letter-spacing: 2px;
  border: none;
  cursor: pointer;
  margin: 0 6px;
  border-radius: 3px;
}

.btn-box button:hover {
  opacity: 0.8;
}

.the-best-of {
  flex-direction: column;
  font-family: "Montserrat", sans-serif;
  text-align: center;
  gap: 2.6rem;
  padding: 4.8rem 0 0 0;
}

.the-best-of img {
  width: 20rem;
}

.the-best-of span {
  font-size: 1.6rem;
}

.the-best-of h5 {
  font-size: 3.6rem;
  font-weight: 400;
}

.the-best-of p {
  font-size: 1.8rem;
  width: 74vw;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 1px;
}

.bg-img-fix {
  padding: 4.8rem 0;
}

.bg-img-parallax {
  position: relative;
  background-image: url('/designing-images/YJC-wedding-rings-banner.webp');
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 75vh;
  z-index: -1;
}

.mobile-nav,
.mid-header ion-icon {
  display: none;
}

.text-box-parallax {
  position: absolute;
  top: 6rem;
  left: 6rem;
  background-color: var(--white-color);
  padding: 3.6rem 2.4rem;
  font-family: "Avenir Next", sans-serif;
  color: var(--hero-color);
  width: 27vw;
  gap: 1.2rem;
  flex-direction: column;
  align-items: flex-start;
}

.text-box-parallax span {
  letter-spacing: 3px;
  font-size: 1.4rem;
}

.text-box-parallax h4 {
  font-size: 2.4rem;
  font-weight: 500;
}

.text-box-parallax p {
  line-height: 1.2;
  padding: 8px 0;
  font-size: 1.8rem;
}

.text-box-parallax button {
  padding: 1.2rem 3rem;
  color: var(--white-color);
  letter-spacing: 3px;
  font-weight: 600;
  background-color: var(--hero-color);
  border: none;
}

.img-text-section {
  display: grid;
  grid-template-columns: 55% 45%;
  place-content: center;
  padding-bottom: 4.8rem;
  background-color: white;
}

.img-text-section .img-part-box img {
  width: 80%;
}

.img-text-section .text-part-box {
  flex-direction: column;
  gap: 2.4rem;
  align-items: flex-start;
  font-family: "Avenir Next", "Montserrat", sans-serif;
}

.text-part-box span,
.review-box span {
  font-size: 1.6rem;
  letter-spacing: 2px;
}

.text-part-box h4,
.review-box h4 {
  font-size: 3rem;
  font-weight: 400;
  font-family: "Tenor Sans", sans-serif;
}

.text-part-box .span-breathe {
  padding: 1.2rem 0;
  line-height: 1.2;
}

.text-part-box p,
.review-box p {
  font-size: 1.8rem;
  line-height: 1.2;
  letter-spacing: 2px;
}

.text-part-box button,
.review-box button {
  color: var(--white-color);
  background-color: var(--hero-color);
}

.visit-showroom {
  margin: 1.6rem 0 .4rem 0;
}

.visit-showroom img {
  height: 80vh;
}

.visit-txt-box {
  background-color: var(--white-color);
  padding: 3.2rem;
  right: auto;
  left: 4%;
  width: 40vw;
  align-items: flex-start;
}

.visit-showroom p {
  font-size: 2.4rem;
  font-family: "Tenor Sans", sans-serif;
  letter-spacing: 0;
}

.visit-showroom span {
  font-size: 1.6rem;
}

.visit-showroom .dynamic-address {
  line-height: 1.5;
}

.visit-showroom button {
  background-color: var(--hero-color);
  color: var(--white-color);
}

.card-section {
  padding: 4.8rem 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  place-content: center;
}

.card-box {
  margin: 2rem 0;
}

.card {
  perspective: 150rem;
  width: 54rem;
  height: 36rem;
  position: relative;
}


.card__side {
  height: 100%;
  width: 100%;
  transition: all 0.8s ease;
  position: absolute;
  top: 0;
  left: 0;
  backface-visibility: hidden;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, -0.6);
}

.card__cont,
.card__cta {
  height: 100%;
  width: 100%;
}

.card__cont img,
.card__cta img {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}

/* Front Side */
.card__side--front {
  transform: rotateY(0deg);
}

/* Back Side */
.card__side--back {
  transform: rotateY(180deg);
}

/* Flip on hover */
.card:hover .card__side--front {
  transform: rotateY(-180deg);
}

.card:hover .card__side--back {
  transform: rotateY(0deg);
}

.review-box {
  flex-direction: column;
  text-align: center;
  gap: 1.6rem;
}

.review-box button {
  letter-spacing: 2px;
  font-weight: 600;
  padding: 1.2rem 2.4rem;
}

footer {
  background-color: var(--hero-color);
  color: white;
  padding: 6.4rem 6.4rem 3.2rem 6.4rem;
}

footer .footer-box {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  row-gap: 6.4rem;
  margin-bottom: 2.4rem;
}

.footer-box .footer-items {
  text-align: left;
  max-width: 80%;
}

footer .footer-box .footer-items:nth-child(5) {
  grid-column: 1/3;
}

.footer-items h4 {
  font-size: 2.4rem;
  font-family: "Tenor Sans", sans-serif;
  padding-bottom: 8px;
  margin-bottom: 3.2rem;
  font-weight: 600;
  position: relative;
}

.footer-items h4:before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: var(--hero-color-light);
  width: 6rem;
  height: 2px;
}

.footer-items li {
  font-size: 1.8rem;
  line-height: 2;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
}

.social-icons {
  display: flex;
  justify-content: left;
  align-items: center;
  gap: 1.2rem;
}

.social-icons ion-icon,
.footer-items ion-icon {
  width: 24px;
  height: 24px;
}

.img-slider {
  display: none;
}

.ico {
  display: grid;
}

.footer-bottom {
  background-color: var(--hero-color);
  color: white;
  padding: 1.6rem;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 10rem;
}

.footer-bottom p {
  border-top: 1px solid #666;
  width: 80%;
  padding-top: 1.2rem;
  font-weight: 200;
  letter-spacing: 1px;
  line-height: 1.4;
  font-size: 1.4rem;
}

/* Add this to your CSS */

.mid-header,
.bottom-header {
  position: relative;
  z-index: 10;
  transition: transform 0.3s ease-in-out;
}

.sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  transform: translateY(0);
  z-index: 10;
}

.mobile-bottom-navigation {
  display: none;
}

.mid-header.sticky {
  top: 0;
  padding: 1.2rem 0;
}

.bottom-header.sticky {
  top: 8rem;
  padding-top: 2rem;
}

.mid-header.sticky .mid-top-logo span,
.mid-header.sticky ul {
  font-size: 3rem;
}

.mid-header.sticky .mid-bottom-logo {
  font-size: 1.8rem;
}

/* Smooth transition when scrolling */
/* .announcement-bar {
  margin-bottom: 10px;
} */

.top-header {
  margin-bottom: 10px;
}

main {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem;
  padding: 8rem 0;
}

main div {
  display: flex;
  /* Center the image in the div */
  justify-content: center;
  align-items: center;
}

main img {
  max-width: 100%;
  /* Ensure images are responsive */
  height: auto;
  /* Maintain aspect ratio */
  border-radius: 0.5rem;
  /* Optional: add rounded corners */
}

footer ul li:hover {
  text-decoration: underline;
}


.since-section {
  display: none;
}

/* Wrapper to handle horizontal scrolling */
.video-grid-wrapper {
  width: 100%;
  /* Full width */
  overflow-x: auto;
  /* Enable horizontal scrolling */
  white-space: nowrap;
  /* Prevent line breaks */
}

/* The video grid will use flexbox for horizontal alignment */
.video-grid {
  display: flex;
  gap: 10px;
  /* Space between slides */
  width: max-content;
  /* Make the container as wide as its children */
}

/* Individual video slides */
.video-grid .video-slide {
  min-width: 260px;
  /* Fixed width for each video slide */
  flex-shrink: 0;
  /* Prevent shrinking */
}

.lazy-video {
  width: 100%;
  height: auto;
  display: block;
}

.ig-grid-box {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, 1fr);
  max-width: 100vw;
}


.visit-ig .ig-grid-box img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ig--1 {
  grid-row: 1/2;
  grid-column: 1/3;
}

.ig--2 {
  grid-row: 3/5;
}

.bp-container .bp-wrap {
  position: relative;
  left: 0;
  text-align: center;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 3fr);
  grid-column-gap: 0px;
  grid-row-gap: 10px;
  border: 1px solid #06234E;
  border-radius: 10px;
  padding: 15px 0;
  width: 80%;
}

.bp-container .bp-wrap .bp-item {
  width: 100%;
}

.bp-container .bp-wrap .bp-item img {
  width: 65%;
  height: auto;
}

.bp-container .bp-wrap .bp-item h2 {
  font-size: 14px;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  line-height: 19px;
  font-weight: 400;
  margin: 0;
}

.hallmark-box {
  display: grid;
  place-items: center;
  grid-template-columns: repeat(5, 1fr);
  max-width: 100vw;
}

.hallmark-box img {
  width: 55%;
  height: auto;
  object-fit: cover;
}

.collection-section {
  padding: 6.4rem 0;
}

.collection-section .collection-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  gap: 20px;
  box-sizing: border-box;
  padding: 10px 20px 0;
}

.collection-section .collection-grid .collection-item {
  transition: transform 1.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.collection-section .collection-grid.active .collection-item:nth-child(odd) {
  transform: translateX(calc(100% + 20px));
}

.collection-section .collection-grid.active .collection-item:nth-child(even) {
  transform: translateX(calc(-100% - 20px));
}


.collection-section .collection-grid .collection-item .img-wrap {
  background: #FFF8F9;
  border-radius: 24px;
  box-shadow: 2px 2px 5px 0px rgba(221, 197, 197, 0.25);
  border: 0.3px solid rgba(221, 197, 197, 0.5);
  transition: all .5s ease;
}

.collection-section .collection-grid .collection-item .img-wrap img {
  display: block;
  margin: 0 auto;
  max-width: 180px;
  max-height: 100%;
  height: auto;
  width: 100%;
}

.collection-section .collection-grid .collection-item .title {
  color: #BFB9BD;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 16px;
  margin: 10px 0 0 0;
  text-align: center;
}


.review-block-section {
  padding: 4.8rem 0;
}

.review-block-section .review-block-content {
  padding-top: 40px;
}

.review-block-content.slider-1 {
  margin-top: -20px;
}

.slider-1 {
  background: pr;
  height: auto;
  margin: auto;
  overflow: hidden;
  position: relative;
}

.review-block-section .review-block-content .gridpad {
  padding-top: 30px;
}

.slider-1 .slide-track {
  -webkit-animation: scroll 60s linear infinite;
  animation: scroll 60s linear infinite;
  display: flex;
  flex-wrap: nowrap;
  width: calc(4000px);
}

.grid-4 {
  width: 33.33333%;
}

.review-block {
  background: rgb(255, 245, 245);
  padding: 35px 30px;
  height: 100%;
  box-shadow: 4px 4px 30px rgba(0, 0, 0, 0.06);
  background-image: url(../images/testimonial-bg.png);
  background-size: cover;
  background-position: 100% center;
  position: relative;
  margin: 0 5px;
}

.review-block .head-block {
  float: right;
  position: absolute;
  right: 35px;
  top: -40px;
  display: block;
}

.user-img {
  width: 90px;
  height: 90px;
  margin-bottom: 12px;
  margin-left: auto;
}

.user-img img {
  height: auto;
  width: 100%;
  filter: brightness(-1);
  max-width: 100%;
  border-radius: 50%;
}

.user-name {
  padding-left: 10px;
  text-align: right;
}

.user-name .title {
  font-style: normal;
  font-weight: 700;
  font-size: 20px;
  line-height: 24px;
  margin: 0 0 1px;
  color: #1c1b1b;
}

.user-name span {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 500;
  font-size: 16px;
  line-height: 20px;
  color: #595959;
}

.user-details {
  margin: 26px 0 0;
}

.user-details .rating-star {
  margin-bottom: 14px;
}

.user-details .rating-star img {
  height: 16px;
  object-fit: cover;
  display: flex;
  width: auto;
  background-color: var(--white-color);
  margin: 0;
}

.user-details .title {
  margin: 0 0 14px;
  font-style: normal;
  font-weight: 600;
  font-size: 18px;
  line-height: 22px;
  color: #1c1b1b;
}

.user-details .user-review {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-size: 16px;
  line-height: 26px;
  color: #595959;
  margin-bottom: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  max-width: 650px;
  width: 100%;
}

.review-block-section .review-block-content {
  padding-top: 40px;
}

.slider-2 {
  background: pr;
  height: auto;
  margin: auto;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.slider-2 .slide-track-2 {
  -webkit-animation: scroll 60s linear reverse infinite;
  animation: scroll 60s linear reverse infinite;
  display: flex;
  flex-wrap: nowrap;
  width: calc(4000px);
}

.gridpad {
  margin-left: -15px;
  margin-right: -15px;
  display: -ms-flexbox;
  display: flex;
}

.review-block-section .review-block-content .gridpad {
  padding-top: 30px;
}

@keyframes scroll {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  100% {
    -webkit-transform: translateX(calc(-1800px));
    transform: translateX(calc(-1800px));
  }
}


.how-it-works {
  background: rgb(246, 243, 249);
  padding-bottom: 6.4rem;
}

.how-it-works .how-box {
  max-width: 80vw;
  margin: 0 auto;
}

.how-it-works h3,
.ig-section-red h3 {
  padding: 6.4rem 0 4.8rem 0;
  text-align: center;
  margin: 0 auto;
  font-weight: 300;
  font-size: 3rem;
  color: var(--hero-color);
}

.how-it-works .how-box ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.how-it-works .how-box ul li {
  width: 100%;
  display: inline-block;
  padding: 9px 10px;
}

.how-box ul li div {
  width: 100%;
  display: inline-block;
  text-align: center;
  background: rgb(255, 255, 255);
  border-radius: 19px;
}

.how-box ul li div img {
  display: block;
  width: 100%;
  border-radius: 19px 19px 0px 0px;
}

.how-box .how-details {
  width: calc(100% - 40px);
  text-align: center;
  margin: -20px auto 23px;
  background: rgb(255, 255, 255);
  border-radius: 19px 19px 0px 0px !important;
  font-family: "Avenir Next", "Montserrat", sans-serif;
}

.how-details .how-step {
  margin: -18px auto 0px;
  max-width: 96px;
  min-height: 36px;
  line-height: 36px;
  background: rgb(136, 99, 251);
  color: rgb(255, 255, 255);
  border-radius: 12px;
  text-transform: uppercase;
  font-size: 1.8rem;
  box-shadow: rgba(85, 62, 156, 0.5) 0px 0px 9px;
}

.how-details .how-heading {
  padding: 15px 0px 8px;
  font-size: 1.6rem;
  color: rgb(79, 50, 103);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.how-details .how-desc {
  padding: 0px 25px;
  font-size: 1.4rem;
  letter-spacing: .25px;
  line-height: 1.2;
  color: rgb(79, 50, 103);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Full-width container */
.image-slider-fw {
  width: 100vw;
  /* Full viewport width */
  overflow: hidden;
  /* Hide any overflow */
}

/* Slider-sh container to allow horizontal scroll */
.slider-sh {
  display: flex;
  /* Align items in a row */
  overflow-x: auto;
  /* Horizontal scrolling */
  scroll-behavior: smooth;
  /* Smooth scroll effect */
  width: 100%;
  height: auto;
  gap: 4px;
  padding: 4px;
}

/* Hide the scrollbar */
.slider-sh::-webkit-scrollbar {
  display: none;
}

/* Slide-sh styles */
.slide-sh {
  flex: 0 0 auto;
}

.slide-sh img {
  min-height: 166px;
  width: 60vw;
  height: 100%;
  object-fit: cover;
  border-radius: 15px;
  transition: transform 0.3s ease-in-out;
}

.map {
  max-width: 100vw;
  height: 70vh;
  margin: 2rem 0 0 0;
}

.map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 15px;
  text-align: center;
  padding: 2rem;
}

@keyframes silverShine {
  0% {
    background-position: 0% 50%;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
  }

  50% {
    background-position: 100% 50%;
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
  }

  100% {
    background-position: 0% 50%;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
  }
}

.category-box {
  background: linear-gradient(120deg, #d9d9d9, #ffffff, #b3b3b3, #d9d9d9);
  background-size: 300% 300%;
  padding: 24px;
  font-family: 'Tenor Sans', sans-serif;
  text-align: center;
  border-radius: 10px;
  display: grid;
  place-content: center;
  transition: 0.3s;
  font-size: 16px;
  text-transform: uppercase;
  font-weight: bold;
  cursor: pointer;
  animation: silverShine 3s infinite linear;
  box-shadow: 0 0 15px rgba(255, 255, 255, 0.6);
}

.category-box a {
  text-decoration: none;
  color: black;
}

.category-box:hover {
  background: #e0e0e0;
}

.unique-announcement-bar {
  width: 100%;
  background-color: #fb8bb4;
  padding: 8px 0;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.unique-announcement-wrapper {
  display: flex;
  animation: unique-scroll-text 18s linear infinite;
}

.unique-announcement-text {
  color: #fffff9;
  font-size: 12px;
  font-weight: bold;
  margin-right: 25px;
}

@keyframes unique-scroll-text {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

/*

-- Font sizes (px)
10 / 12 / 14 / 16 / 18 / 20 / 24 / 30 / 36 / 44 / 52 / 62 / 74 / 86 / 98

cursive ----- font-family: "Tenor Sans", sans-serif;

less cursive --- font-family: "Avenir Next", "Montserrat", sans-serif;


-- Spacing system (px)
2 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 128

*/

/* ========== Diamond Exclusive Collection Styles ========== */


.dexclv-collection-wrapper {
  padding: 0 20px 20px 20px;
  background-color: #fdfdfd;
}

.dexclv-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* Tablet */
@media (max-width: 1023px) {
  .dexclv-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Mobile */
@media (max-width: 767px) {
  .dexclv-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}

.dexclv-category-item {
  text-align: center;
}

.dexclv-category-img {
  width: 100%;
  border-radius: 10px;
  transition: transform 0.3s ease;
  cursor: pointer;
}

.dexclv-category-title {
  font-family: "Tenor Sans", sans-serif;
  font-size: 2.4rem;
  border-bottom: 1px solid;
  padding: 1.2rem 0;
  font-weight: 400;
  text-transform: capitalize;
}

/* ========== Gallery Layout ========== */

/* Default: Mobile (1 column) — no enforced aspect ratio */
.dexclv-gallery {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 12px;
}

.dexclv-gallery-img {
  width: 100%;
  border: 1px solid #ccc;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.3s ease;
  object-fit: cover;
  display: block;
  background-color: #f0f0f0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='60' height='60' fill='%23e0e0e0'/%3E%3Ctext x='50%' y='50%' dominant-baseline='middle' text-anchor='middle' font-size='10' fill='%23999999'%3ELoading...%3C/text%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 40%;

}

/* Tablet (768px – 1023px): 2 columns, portrait layout */
@media (min-width: 768px) and (max-width: 1023px) {
  .dexclv-gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .dexclv-gallery-img {
    aspect-ratio: 2 / 3;
    height: auto;
  }
}

/* Laptop (≥1024px): 3 columns, portrait layout */
@media (min-width: 1024px) {
  .dexclv-gallery {
    grid-template-columns: repeat(3, 1fr);
  }

  .dexclv-gallery-img {
    aspect-ratio: 2 / 3;
    height: auto;
  }
}

/* ========== Fullscreen Image Viewer ========== */

.dexclv-lightbox {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.9);
  justify-content: center;
  align-items: center;
  padding: 30px;
  z-index: 9999;
}

.dexclv-lightbox img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 10px;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.6);
}

.dexclv-close-btn {
  position: absolute;
  bottom: 30px;
  background-color: #ffffffcc;
  color: #000;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 14px;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  cursor: pointer;
  transition: 0.3s ease;
}

.gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding: 20px;
}

.gallery-item-sd {
  width: 100%;
}

.gallery-item-sd img {
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* Gallery Grid Layout */
.inside-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* mobile default */
  gap: 1px;
  padding: 0;
  grid-auto-flow: dense;
  background-color: #fff;
  /* Ensures 1px gaps are visible */
}

/* Larger layout for desktops/laptops */
@media (min-width: 1024px) {
  .inside-gallery-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* Basic image styling */
.inside-gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Container required for grid item control */
.inside-gallery-grid .gallery-item {
  width: 100%;
  height: 100%;
  position: relative;
}

/* Make some items span 2x2 (like Instagram big tiles) */
.inside-gallery-grid .large {
  grid-column: span 2;
  grid-row: span 2;
}

/* Wrapper Section */
.gk-video-section {
  position: relative;
  width: 100vw;
  overflow: hidden;
}

/* Fullscreen Video */
.gk-fullscreen-video {
  width: 100%;
  height: 80vh;
  object-fit: cover;
  display: block;
}

/* Soft Gradient Overlay for Contrast */
.gk-video-section::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
  z-index: 1;
}

/* Overlay Text Container */
.gk-video-overlay {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #fff;
  z-index: 2;
  padding: 0 20px;
  width: 100%;
  animation: fadeInUp 1.5s ease-out forwards;
}

/* Heading and Subheading Styles */
.gk-video-heading {
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 1.2px;
  margin: 0;
  font-family: "Playfair Display", serif;
  text-transform: uppercase;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
}

.gk-video-subheading {
  font-size: 1.8rem;
  margin-top: 12px;
  letter-spacing: 0.5px;
  font-family: "Poppins", sans-serif;
  font-weight: 400;
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.5);
  opacity: 0.9;
}

/* Simple Fade-Up Animation */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate(-50%, 30px);
  }

  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}


/* Mobile View */
@media (max-width: 768px) {

  .gk-video-overlay {
    bottom: 15%;
    padding: 0 15px;
  }

  .gk-video-heading {
    letter-spacing: 1px;
  }

}

.book-appointment-link {
  position: fixed;
  bottom: 20px;
  /* Adjust for margin at the bottom */
  left: 50%;
  transform: translateX(-50%);
  background-color: #000;
  /* Black background */
  color: #fff;
  /* White text */
  text-decoration: none;
  padding: 12px 24px;
  font-family: "Avenir Next", "Montserrat", sans-serif;
  border-radius: 50px;
  /* Smooth rounded corners */
  font-size: 18px;
  width: max-content;
  font-weight: 500;
  border: 2px solid #fff;
  /* Subtle border for contrast */
  z-index: 1000;
  /* Always on top */
  transition: all 0.3s ease;
}

/* Hover Effect */
.book-appointment-link:hover {
  background-color: #fff;
  color: #000;
  border-color: #000;
}