/* ==========================================================================
   TRUEKIND COMPLETE AUTHENTIC STYLESHEET
   Adapted for PT Inti Pesona Lestari
   100% Exact Typography (PP Mori & Editorial New), Scaled rems, Animations
   ========================================================================== */

@font-face {
  font-display: swap;
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/PPMori-Regular.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'PP Mori';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/PPMori-SemiBold.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Editorial New';
  font-style: italic;
  font-weight: 400;
  src: url('../fonts/EditorialNew-Italic.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Editorial New';
  font-style: italic;
  font-weight: 300;
  src: url('../fonts/EditorialNew-Lightitalic.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Editorial New';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/EditorialNew-Regular.woff2') format('woff2');
}

/* Base Reset & Variables */
h1, h2, h3, h4, h5, li, p, small, ul {
  margin: 0;
  padding: 0;
}

:root {
  --base-vw: 1920;
  --base-multiplier: 100vw;
  --swiper-theme-color: #007aff;
}

@media (max-width: 767.98px) {
  :root {
    --base-vw: 375;
  }
}

*, *::after, *::before {
  box-sizing: border-box;
  outline: none;
  -webkit-touch-callout: none;
  margin: 0;
  padding: 0;
}

html {
  font-size: 0.833333vw;
  scroll-behavior: auto;
  scrollbar-width: none !important;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
  text-size-adjust: none;
  text-rendering: optimizeLegibility;
}

@media (max-width: 767.98px) {
  html {
    font-size: 3.73333vw;
  }
}

html body {
  -ms-overflow-style: none;
}

html body::-webkit-scrollbar {
  height: 0 !important;
  width: 0 !important;
}

html {
  overflow-x: hidden;
  max-width: 100%;
}

body {
  background-color: #fff;
  color: #3b3b3b;
  font-family: 'PP Mori', sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  overflow-x: hidden;
  max-width: 100%;
  min-height: 100vh;
  width: 100%;
}

section {
  margin: 8rem 0;
}

@media (max-width: 767.98px) {
  section {
    margin: 4rem 0;
  }
}

a {
  color: inherit;
  display: inline-block;
  text-decoration: none;
}

h1, h2 {
  font-family: 'PP Mori', sans-serif;
  font-size: 4.5rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: uppercase;
}

@media (max-width: 767.98px) {
  h1, h2 {
    font-size: 2.5rem;
  }
}

h3 {
  font-family: 'PP Mori', sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: uppercase;
}

@media (max-width: 767.98px) {
  h3 {
    font-size: 1.1428571429rem;
  }
}

h4, h5 {
  font-family: 'PP Mori', sans-serif;
  font-size: 2.5rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

@media (max-width: 767.98px) {
  h4, h5 {
    font-size: 2.380952381rem;
  }
}

small {
  display: block;
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 0;
}

img, video {
  max-width: 100%;
  object-fit: cover;
}

input {
  border: 1px solid #d8d8d8;
  border-radius: 5rem;
  color: #3b3b3b;
  font-family: 'PP Mori', sans-serif;
  font-size: 1.1rem;
  height: 3.8rem;
  min-width: 90px;
  padding: 0.5rem 1.5rem;
  width: 100%;
}

input::placeholder {
  color: #3b3b3b;
  font-family: 'PP Mori', sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  opacity: 0.5;
  text-transform: uppercase;
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

svg {
  min-height: 1rem;
  min-width: 1rem;
}

i {
  font-style: italic;
}

ul {
  list-style: none;
}

/* Grid & Utilities */
.container {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  margin-left: auto;
  margin-right: auto;
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  position: relative;
  width: 100%;
}

@media (max-width: 767.98px) {
  .container {
    --bs-gutter-x: 3.2rem;
  }
}

@media (min-width: 767.99px) {
  .container {
    margin: 0 auto;
    max-width: 92%;
  }
}

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-left: calc(var(--bs-gutter-x) * -0.5);
  margin-right: calc(var(--bs-gutter-x) * -0.5);
}

.row > * {
  box-sizing: border-box;
  flex-shrink: 0;
  max-width: 100%;
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  padding-right: calc(var(--bs-gutter-x) * 0.5);
  width: 100%;
}

.col-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-6 { flex: 0 0 auto; width: 50%; }
.col-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-12 { flex: 0 0 auto; width: 100%; }

@media (min-width: 768px) {
  .col-md { flex: 1 0 0%; }
  .col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
  .col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
  .col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
  .col-md-6 { flex: 0 0 auto; width: 50%; }
  .col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
  .col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
}

.d-block { display: block !important; }
.d-flex { display: flex !important; }
.d-none { display: none !important; }
.flex-column { flex-direction: column !important; }
.justify-content-between { justify-content: space-between !important; }
.align-items-start { align-items: flex-start !important; }
.align-items-end { align-items: flex-end !important; }
.align-items-center { align-items: center !important; }
.order-1 { order: 1 !important; }
.order-2 { order: 2 !important; }

.mt-3 { margin-top: 1rem !important; }
.mt-5 { margin-top: 3rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.pe-0 { padding-right: 0 !important; }

@media (min-width: 768px) {
  .d-md-block { display: block !important; }
  .d-md-flex { display: flex !important; }
  .d-md-none { display: none !important; }
  .order-md-1 { order: 1 !important; }
  .order-md-2 { order: 2 !important; }
  .mt-md-0 { margin-top: 0 !important; }
  .mb-md-0 { margin-bottom: 0 !important; }
  .px-md-0 { padding-left: 0 !important; padding-right: 0 !important; }
  .px-md-5 { padding-left: 3rem !important; padding-right: 3rem !important; }
  .pe-md-5 { padding-right: 3rem !important; }
}

.desktop { display: block; }
@media (max-width: 767.98px) {
  .desktop { display: none; }
}
.mobile { display: none; }
@media (max-width: 767.98px) {
  .mobile { display: block; }
}

.overlay-black {
  background: #000;
  bottom: 0;
  height: 100%;
  left: 0;
  opacity: 0.3;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1;
}

.text-center { display: block; margin: auto; text-align: center; }
.text-gray2 { color: #a0a0a0; }
.text-gray3 { color: #787878; }
.flex-center { align-items: center; display: flex; flex-direction: row; justify-content: center; }
.w-full { width: 100%; }
.text-uppercase { text-transform: uppercase !important; }
.maxwidth-0 { max-width: 17.7rem; }
.maxwidth { max-width: 23rem; }
.position-relative { position: relative; }
.border { border-bottom: 1px solid #d8d8d8; width: 100%; }
.border-vertical { border-bottom: 1px solid #3b3b3b; height: 100%; width: 1px; }

/* Font Styles */
.font-body { font-size: 1rem; font-style: normal; font-weight: 400; letter-spacing: 0; line-height: 1.2; }
.font-heading { font-family: 'PP Mori', sans-serif; font-size: 4.5rem; font-weight: 600; letter-spacing: 0; line-height: 1.1; text-transform: uppercase; }
@media (max-width: 767.98px) { .font-heading { font-size: 2.5rem; } }
.font-subheading2 { font-family: 'PP Mori', sans-serif; font-size: 2.5rem; font-weight: 600; letter-spacing: 0; line-height: 1.1; text-transform: none; }
@media (max-width: 767.98px) { .font-subheading2 { font-size: 2.380952381rem; } }
.font-small { display: block; font-size: 0.8rem; font-weight: 400; letter-spacing: 0; }
.font-serif {
  font-family: 'Editorial New', serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -1px;
  text-transform: none;
}
.font-normal { font-style: normal !important; }
.text-none { text-transform: none !important; }
.text-underline { text-decoration: underline; }

.superscript { align-items: flex-start; display: flex; }
.superscript-text { font-size: 0.6em; }

/* Links & Underlines */
.link {
  color: #3b3b3b;
  cursor: pointer;
  position: relative;
  text-decoration: none;
  width: fit-content;
}

.link:after, .link:before {
  background: #3b3b3b;
  height: 1px;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 100%;
  width: 100%;
}

.link:before {
  content: "";
  transform: scaleX(0);
  transform-origin: 100% 50%;
  transition: transform 0.3s;
}

.link:hover:before {
  transform: scaleX(1);
  transform-origin: 0 50%;
}

.text-underline-border {
  position: relative;
}

.text-underline-border:after {
  background: #3b3b3b;
  bottom: 15%;
  content: "";
  height: 0.035em;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 100%;
}

@media (max-width: 767.98px) {
  .text-underline-border:after {
    bottom: 10%;
    height: 0.045em;
  }
}

.text-underline-border.active:after,
.text-underline-border:hover:after {
  transform: scaleX(1);
}

/* Pills & Icons */
.pill {
  border: 1px solid #c8c8c8;
  padding: 0.6rem 2rem 0.4rem;
  border-radius: 5rem;
  display: inline-block;
  font-size: 0.8rem;
  line-height: 1;
  text-transform: uppercase;
}

.pill-fill {
  background: #fff;
  color: #3b3b3b;
  padding: 0.8rem 2rem 0.6rem;
  border-radius: 5rem;
  display: inline-block;
  font-size: 0.8rem;
  line-height: 1;
  text-transform: uppercase;
}

.icon-global {
  align-items: center;
  border: 1px solid #c8c8c8;
  border-radius: 5rem;
  display: flex;
  max-width: 20rem;
  padding: 0.65rem 0.5rem;
  text-align: center;
  text-decoration: underline;
  width: 100%;
}

.icon-global span {
  flex: 1;
  margin-left: 2rem;
}

.icon-global-right {
  align-items: center;
  background: #3b3b3b;
  border-radius: 100%;
  display: flex;
  flex-direction: row;
  height: 3rem;
  justify-content: center;
  position: relative;
  width: 3rem;
}

@media (max-width: 767.98px) {
  .icon-global-right {
    height: 2.5rem;
    width: 2.5rem;
  }
}

.icon-round {
  align-items: center;
  border: 1px solid #c8c8c8;
  border-radius: 100%;
  display: flex;
  flex-direction: row;
  height: 5rem;
  justify-content: center;
  padding: 1.2rem;
  width: 5rem;
}

/* Signature Arrows & Buttons */
.slider-arrow {
  align-items: center;
  background: #ffffff;
  border: 1.5px solid #1a1a1a;
  color: #1a1a1a;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  height: 4rem;
  width: 4rem;
  justify-content: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
}

.slider-arrow:hover {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #ffffff;
  transform: scale(1.08);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.slider-arrow.white {
  background: #ffffff;
  border: 1.5px solid #1a1a1a;
  color: #1a1a1a;
}

.slider-arrow.white:hover {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #ffffff;
}

.slider-arrow svg {
  display: block;
}

.slider-arrow svg path {
  fill: currentColor;
  transition: fill 0.3s ease;
}

.slider-arrow:hover svg path {
  fill: #ffffff;
}

@media (max-width: 767.98px) {
  .slider-arrow {
    height: 3.4rem;
    width: 3.4rem;
  }
}

.arrowlong {
  align-items: center;
  background: #3b3b3b;
  border-radius: 100%;
  cursor: pointer;
  display: flex;
  flex-direction: row;
  height: 5rem;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 5rem;
}

@media (max-width: 767.98px) {
  .arrowlong {
    height: 4.8rem;
    width: 4.8rem;
  }
}

.arrowlong.white {
  background: #fff;
  color: #3b3b3b;
}

.arrowlong.white .icon-arrowlong path {
  fill: #3b3b3b;
}

.btn__icon {
  background: #fff;
  border-radius: 5rem;
  color: #3b3b3b;
  cursor: pointer;
  font-size: 0.8rem;
  padding: 1.5rem 0.5rem;
  position: relative;
  text-align: center;
  text-decoration: underline;
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.btn__icon-arrow {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: center;
  background: #3b3b3b;
  border-radius: 100%;
  height: 3rem;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(-25%, -50%);
  width: 3rem;
}

/* SVG Mask Animation */
.mask-path {
  fill: none;
  stroke: #fff;
  stroke-width: 5;
}

/* Parallax Container */
.parallax {
  height: 100vh;
  overflow: hidden;
  width: 100%;
}

.parallax-image {
  height: 110vh;
  object-fit: cover;
  width: 100%;
}

.media-img {
  position: relative;
  width: 100%;
}

.media-img img {
  height: 100%;
  width: 100%;
}

.media-video {
  overflow: hidden;
  position: relative;
  height: 100%;
  width: 100%;
}

.media-video video {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
#header {
  background-color: transparent;
  font-family: 'PP Mori', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  left: 0;
  position: fixed;
  top: 0;
  transition-duration: 0.8s;
  transition-property: background-color, box-shadow, transform;
  transition-timing-function: cubic-bezier(0.18, 0.71, 0.11, 1);
  user-select: none;
  width: 100%;
  z-index: 999;
}

#header.active,
#header.is--scrolled {
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 0 10px 2px #b8b8b82b;
}

#header .navbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 1rem 0;
  position: relative;
}

#header .navbar-logo {
  align-items: center;
  display: inline-flex;
  flex-direction: row;
  gap: 0.75rem;
  position: relative;
  z-index: 2;
  text-decoration: none;
}

#header .navbar-logo .navbar-logo-img {
  height: 2.35rem;
  width: auto;
  max-width: 2.35rem;
  object-fit: contain;
  flex-shrink: 0;
  display: block;
}

#header .navbar-logo .navbar-logo-text {
  font-family: 'PP Mori', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1a1a1a;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  #header .navbar-logo {
    gap: 0.5rem;
  }
  #header .navbar-logo .navbar-logo-img {
    height: 1.85rem;
    max-width: 1.85rem;
  }
  #header .navbar-logo .navbar-logo-text {
    font-size: 0.82rem;
    letter-spacing: 0.04em;
  }
}

#header .navbar-logo svg {
  max-width: 8rem;
  height: auto;
}

#header .navbar-logo svg path {
  fill: #3b3b3b;
  transition: fill 1s cubic-bezier(0.18, 0.71, 0.11, 1);
}

#header .navbar-menu {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

@media (max-width: 767.98px) {
  #header .navbar-menu {
    background: #fff;
    flex-direction: column;
    height: 100vh;
    left: 0;
    padding: 15vh 15px 20vh;
    pointer-events: none;
    position: fixed;
    top: 0;
    transform: translate(-100%);
    transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
    width: 100%;
    z-index: 1;
  }

  #header.menu-open .navbar-menu,
  #header .navbar.active .navbar-menu {
    pointer-events: inherit;
    transform: translate(0);
  }
}

#header .navbar-menu-list {
  align-items: stretch;
  display: flex;
  flex-direction: row;
  gap: 3rem;
}

@media (max-width: 767.98px) {
  #header .navbar-menu-list {
    flex-direction: column;
    gap: 1.2rem;
  }
}

#header .navbar-menu-list-item {
  align-items: center;
  display: flex;
  position: relative;
}

@media (min-width: 767.99px) {
  #header .navbar-menu-list-item {
    text-transform: uppercase;
  }
}

#header .navbar-cta {
  padding: 1rem 2rem;
  transition: background 1s cubic-bezier(0.18, 0.71, 0.11, 1);
  display: flex;
  align-items: center;
}

@media (min-width: 767.99px) {
  #header .navbar-cta {
    background: #333;
    border-radius: 5rem;
    color: #fff;
  }
}

#header .navbar-cta .border-vertical {
  background: #fff;
  height: 1.2rem;
  margin: 0 1rem;
  opacity: 0.4;
}

#header .navbar-cta svg path {
  stroke: #fff;
}

#header .navbar-hamburger {
  cursor: pointer;
  display: none;
  position: relative;
  z-index: 2;
}

@media (max-width: 767.98px) {
  #header .navbar-hamburger {
    display: block;
    order: 1;
  }
}

#header .navbar-hamburger-line {
  background: #333;
  height: 2px;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), background 1s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 35px;
}

#header .navbar-hamburger-line:not(:last-child) {
  margin-bottom: 5px;
}

/* ==========================================================================
   PRELOADER
   ========================================================================== */
.preloader {
  align-items: center;
  bottom: 0;
  color: #fff;
  height: 100vh;
  height: 100dvh;
  justify-content: center;
  position: fixed;
  right: 0;
  z-index: 9999;
  display: flex;
  left: 0;
  top: 0;
  width: 100%;
  pointer-events: none;
  transition: opacity 0.8s ease;
}

.preloader.done {
  opacity: 0;
  visibility: hidden;
}

.preloader .bg {
  display: flex;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: -1;
}

.preloader .bg .bg__left,
.preloader .bg .bg__right {
  background-color: #2f2f2f;
  height: 100%;
  transform-origin: top;
  width: 50%;
  transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.preloader.exit .bg .bg__left {
  transform: scaleY(0);
}

.preloader.exit .bg .bg__right {
  transform-origin: bottom;
  transform: scaleY(0);
}

.preloader__inner {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: center;
  padding: 20px;
  position: relative;
  width: 100%;
}

.preloader__inner .line {
  background-color: #ffffff1a;
  height: 100%;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translate(-50%);
  width: 1px;
}

.preloader .text {
  font-family: 'Editorial New', serif;
  font-size: 18rem;
  left: 50%;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

@media (max-width: 767.98px) {
  .preloader .text {
    font-size: 12rem;
  }
}

.preloader .text .number-wrapper {
  align-items: center;
  display: flex;
  justify-content: center;
  text-align: center;
}

.preloader .text .number-wrapper .left,
.preloader .text .number-wrapper .right {
  height: 0.9em;
  overflow: hidden;
  width: 0.6em;
}

.preloader .text .number-wrapper .left-inner,
.preloader .text .number-wrapper .right-inner {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 1.2s cubic-bezier(0.18, 0.71, 0.11, 1);
}

.preloader .text .number-wrapper .number {
  line-height: 1;
  padding-top: 0.05em;
}

.preloader .logo {
  display: flex;
  justify-content: center;
  max-width: 16rem;
  overflow: hidden;
  width: 100%;
  position: absolute;
  top: 65%;
  left: 50%;
  transform: translateX(-50%);
}

.preloader .logo .logo__left,
.preloader .logo .logo__right {
  transition: transform 1s cubic-bezier(0.18, 0.71, 0.11, 1);
  font-family: 'PP Mori', sans-serif;
  font-size: 1rem;
  letter-spacing: 0.2em;
  font-weight: 600;
  text-transform: uppercase;
}

.preloader .loading {
  bottom: 4rem;
  left: 50%;
  position: absolute;
  transform: translate(-50%);
}

.preloader .spinner {
  animation: spin 1s linear infinite;
  border: 1px solid #505050;
  border-radius: 50%;
  border-top-color: #fff;
  height: 4rem;
  width: 4rem;
}

@keyframes spin {
  to { transform: rotate(1turn); }
}

/* ==========================================================================
   CART & INQUIRY DRAWER
   ========================================================================== */
.cart-drawer {
  height: 100%;
  left: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  transition: all 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  visibility: hidden;
  width: 100vw;
  z-index: 1000;
  overflow: hidden;
}

@media (min-width: 767.99px) {
  .cart-drawer {
    display: flex;
    justify-content: flex-end;
  }
}

.cart-drawer.active {
  pointer-events: auto;
  visibility: visible;
}

.cart-drawer-overlay {
  background-color: #000;
  height: 100%;
  opacity: 0;
  position: absolute;
  transition: opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 100%;
  z-index: 1;
}

.cart-drawer.active .cart-drawer-overlay {
  opacity: 0.5;
}

.cart-drawer-content {
  background-color: #fff;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  padding: 2rem;
  position: relative;
  transform: translate(100%);
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  z-index: 2;
  overflow-y: auto;
}

@media (min-width: 767.99px) {
  .cart-drawer-content {
    max-width: 40rem;
    padding: 2.5rem 4rem;
    width: 100%;
  }
}

.cart-drawer.active .cart-drawer-content {
  transform: translate(0);
}

.cart-drawer__header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 3vh;
}

.cart-drawer__header-title {
  font-size: 2.5rem;
  line-height: 1;
}

.cart-drawer__header-close {
  cursor: pointer;
}

/* ==========================================================================
   SECTION 1: INTRO / HERO (#intro)
   ========================================================================== */
#intro {
  align-items: center;
  background: #f3e8e7;
  display: flex;
  height: 100vh;
  justify-content: center;
  margin: 0;
  overflow: hidden;
  position: relative;
}

@media (max-width: 767.98px) {
  #intro {
    height: 100vh;
    padding: 0 15px;
  }
}

#intro .intro__title h1 {
  color: #fff;
  font-size: 6.5rem;
  line-height: 1 !important;
  text-transform: none;
}

@media (max-width: 767.98px) {
  #intro .intro__title h1 {
    font-size: 3.25rem;
  }
}

#intro .intro__desc {
  color: #fff;
  margin-top: 1.5rem;
}

#intro .intro__image,
#intro .intro__image .parallax {
  bottom: 0;
  height: 100%;
  left: 0;
  position: absolute;
  width: 100%;
}

#intro .intro__image .overlay-black {
  opacity: 0.25;
  z-index: 2;
}

#intro .intro__text {
  margin-bottom: 24vh;
  position: relative;
  z-index: 3;
}

#intro .intro__cta {
  align-items: center;
  -webkit-backdrop-filter: blur(198px);
  backdrop-filter: blur(198px);
  background: #ffffffe6;
  border-radius: 5rem;
  bottom: 6%;
  display: flex;
  flex-direction: row;
  justify-content: center;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  max-width: 48%;
  padding: 1.8rem 0.5rem;
  position: absolute;
  text-align: center;
  text-decoration: underline;
  width: 100%;
  z-index: 3;
}

@media (max-width: 767.98px) {
  #intro .intro__cta {
    max-width: 90%;
    padding: 1.5rem 0.5rem;
  }
}

#intro .intro__cta:hover .intro__cta-arrow {
  transform: translate(-25%, -50%) scale(1.1);
}

#intro .intro__cta-arrow {
  align-items: center;
  background: #3b3b3b;
  border-radius: 100%;
  display: flex;
  flex-direction: row;
  height: 3.6rem;
  justify-content: center;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(-25%, -50%);
  transition: transform 0.3s ease;
  width: 3.6rem;
}

@media (max-width: 767.98px) {
  #intro .intro__cta-arrow {
    height: 3rem;
    width: 3rem;
  }
}

/* ==========================================================================
   SECTION 2: INGREDIENTS / VALUES (#ingredients)
   ========================================================================== */
#ingredients {
  position: relative;
  z-index: 1;
}

@media (min-width: 767.99px) {
  #ingredients {
    margin-top: 9rem;
  }
}

#ingredients .ingredients__text {
  margin-bottom: 8rem;
  position: relative;
  z-index: 4;
}

#ingredients .ingredients__title .masking-text {
  padding-bottom: 0.16em;
  margin-bottom: -0.16em;
}

#ingredients .ingredients__desc {
  margin-top: 1.6rem;
}

@media (max-width: 767.98px) {
  #ingredients .ingredients__desc {
    margin-left: auto;
    margin-top: 3rem;
    max-width: 250px;
  }
}

#ingredients .ingredients__title-serif {
  font-size: 1.4em;
}

@media (max-width: 767.98px) {
  #ingredients .ingredients__title-serif {
    font-size: 1.2em;
    line-height: 1 !important;
  }
}

#ingredients .ingredients__wrapper {
  position: relative;
  isolation: isolate;
}

#ingredients .ingredients__arrow {
  height: 180%;
  position: absolute;
  right: 15%;
  top: 0;
  pointer-events: none;
  z-index: 4;
}

@media (max-width: 767.98px) {
  #ingredients .ingredients__arrow {
    height: inherit;
    right: inherit;
    top: 70%;
    width: 30%;
  }
}

#ingredients .ingredients__image {
  height: 118%;
  margin-top: -9%;
  object-fit: cover;
  width: 100%;
  will-change: transform;
}

#ingredients .ingredients__image-wrapper {
  height: 50vh;
  margin-bottom: 2rem;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='826' height='725' viewBox='0 0 826 725' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M796.247 54.1196C880.767 159.12 777.762 382.306 566.179 552.62C354.595 722.933 114.556 775.881 30.0365 670.88C-54.4833 565.88 48.5219 342.694 260.105 172.38C471.688 2.06659 711.727 -50.8806 796.247 54.1196Z' fill='%23C4C4C4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg width='826' height='725' viewBox='0 0 826 725' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M796.247 54.1196C880.767 159.12 777.762 382.306 566.179 552.62C354.595 722.933 114.556 775.881 30.0365 670.88C-54.4833 565.88 48.5219 342.694 260.105 172.38C471.688 2.06659 711.727 -50.8806 796.247 54.1196Z' fill='%23C4C4C4'/%3E%3C/svg%3E");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

@media (min-width: 767.99px) {
  #ingredients .ingredients__image-wrapper {
    height: 75%;
    left: 50%;
    margin-bottom: 0;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 65%;
    z-index: 0;
  }
}

#ingredients .ingredients__image-1,
#ingredients .ingredients__image-2 {
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 17rem;
  z-index: 2;
}

#ingredients .ingredients__image-1 img,
#ingredients .ingredients__image-2 img {
  display: block;
  height: auto;
  width: 100%;
  will-change: transform;
}

#ingredients .ingredients__image-1 {
  right: 5%;
  top: 20%;
}

#ingredients .ingredients__image-2 {
  bottom: 7%;
  left: 25%;
}

#ingredients .ingredients__item {
  text-align: center;
  width: 100%;
  will-change: transform;
}

@media (min-width: 767.99px) {
  #ingredients .ingredients__item {
    background: #f5f5f5;
    border-radius: 14px;
    max-width: 20rem;
    padding: 4rem 2.5rem 3rem;
  }

  #ingredients .ingredients__item:first-child {
    margin-right: 1.8rem;
    margin-top: 12%;
  }
}

#ingredients .ingredients__item-icon {
  align-items: center;
  background-color: #fff;
  border-radius: 100%;
  display: flex;
  flex-direction: row;
  height: 7rem;
  justify-content: center;
  margin: auto;
  padding: 1rem;
  width: 7rem;
}

#ingredients .ingredients__item-icon img {
  max-height: 4rem;
  min-height: 3rem;
}

#ingredients .ingredients__item-title {
  margin-left: auto;
  margin-right: auto;
  margin-top: 1rem;
  max-width: 60%;
}

@media (min-width: 767.99px) {
  #ingredients .ingredients__item-title {
    margin: 2rem auto;
  }
}

#ingredients .ingredients__firstrow {
  align-items: flex-start;
  display: flex;
  position: relative;
  z-index: 3;
}

#ingredients .ingredients__secondrow {
  display: flex;
  position: relative;
  z-index: 3;
}

#ingredients .ingredients__thirdrow {
  display: flex;
  position: relative;
  z-index: 3;
}

@media (min-width: 767.99px) {
  #ingredients .ingredients__secondrow {
    align-items: flex-start;
    justify-content: flex-end;
    margin-top: -6%;
  }

  #ingredients .ingredients__thirdrow {
    align-items: flex-start;
    justify-content: flex-start;
    margin-top: -4%;
  }

  #ingredients .ingredients__thirdrow .ingredients__item:first-child {
    margin-right: 1.8rem;
    margin-top: 6%;
  }
}

@media (max-width: 767.98px) {
  #ingredients .ingredients__firstrow,
  #ingredients .ingredients__secondrow,
  #ingredients .ingredients__thirdrow {
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 2rem;
  }
}

/* ==========================================================================
   SECTION 3: EXPLORE & PRODUCTS (#explore)
   ========================================================================== */
#explore .explore__title {
  line-height: 1;
  margin-bottom: 7rem;
}

#explore .explore__title span {
  display: block;
  font-size: 1.4em;
  letter-spacing: -4px;
}

#explore .half__grid {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  overflow: hidden;
  width: 100%;
  margin-bottom: 6rem;
}

@media (min-width: 767.99px) {
  #explore .half__grid {
    min-height: 52rem;
    height: auto;
  }
}

@media (max-width: 767.98px) {
  #explore .half__grid {
    flex-direction: column;
    margin-bottom: 2rem;
  }
}

#explore .half__grid:nth-of-type(odd) {
  flex-direction: row-reverse;
}

#explore .half__grid-content,
#explore .half__grid-img {
  width: 50%;
}

@media (max-width: 767.98px) {
  #explore .half__grid-content,
  #explore .half__grid-img {
    width: 100%;
  }
}

#explore .half__grid-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  min-height: 48rem;
  overflow: visible;
  padding: 2rem calc(4% + 0.75rem);
}

#explore .half__grid-img img {
  height: 110% !important;
  object-fit: cover;
  width: 100%;
}

#explore .half__grid-text {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
}

#explore .half__grid-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 4rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1 !important;
  max-width: 20rem;
  text-transform: none;
}

#explore .half__grid-product {
  align-items: stretch;
  display: flex;
  height: auto;
  min-height: 440px;
  width: 100%;
  overflow: hidden;
  position: relative;
  margin: 1.5rem 0;
}

#explore .half__grid-product .swiper {
  width: 100% !important;
  height: 100% !important;
  overflow: hidden;
  position: relative;
}

#explore .half__grid-product .swiper-wrapper {
  display: flex;
  align-items: stretch;
}

#explore .half__grid-product .swiper-slide {
  height: auto !important;
  display: flex !important;
  flex-shrink: 0;
}

#explore .half__grid-product .swiper-slide .product__card {
  width: 100%;
  height: 100%;
  min-height: 400px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  box-sizing: border-box;
}

/* Product Card Component */
.product__card {
  background-color: #f0cbce;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 400px;
  justify-content: space-between;
  overflow: hidden;
  padding: 1.5rem 1rem;
  position: relative;
  user-select: none;
  width: 100%;
  min-width: 260px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
}

.product__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.06);
}

.product__content {
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
  position: relative;
  width: 100%;
  margin-top: 1rem;
}

.product__card-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 3;
}

.product__card-foot {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.product__card-title {
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  max-width: 70%;
  position: relative;
}

.product__card-img,
.product__card-img2 {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 22rem;
  margin: 0.5rem auto 1rem;
  max-height: 38vh;
  transform: scale(1);
  transition: opacity 0.4s ease, transform 0.4s ease;
  width: 100%;
  z-index: 1;
  position: relative;
}

.product__card-img img,
.product__card-img2 img {
  object-fit: contain;
  height: 100%;
  max-height: 100%;
  width: 100%;
  display: block;
}

.product__card-img2 {
  left: 0;
  margin-top: 0;
  opacity: 0;
  position: absolute !important;
  top: 0;
  z-index: 2;
}

.product__card:hover .product__card-img {
  opacity: 0;
}

.product__card:hover .product__card-img2 {
  opacity: 1;
  transform: scale(1.05);
}

/* ==========================================================================
   SECTION 4: ETHOS (#ethos)
   ========================================================================== */
#ethos {
  position: relative;
}

@media (min-width: 767.99px) {
  #ethos {
    background: #f5f5f5;
    margin: 0;
    padding-bottom: 24rem;
    padding-top: 16rem;
  }
}

#ethos .ethos__title {
  font-size: 10vw;
  position: relative;
  text-align: center;
}

#ethos .ethos__title:before {
  border: 1px solid #3b3b3b;
  border-radius: 5rem;
  content: "ETHOS";
  font-size: 0.8rem;
  left: 10%;
  opacity: 0.6;
  padding: 0.6rem 4rem 0.4rem;
  position: absolute;
  top: 5vw;
}

#ethos .ethos__title-2 {
  font-size: 10vw;
  margin: auto;
  position: relative;
  text-align: left;
}

@media (min-width: 767.99px) {
  #ethos .ethos__title-2 {
    transform: translate(40%);
  }
}

#ethos .ethos__image {
  width: 40rem;
}

@media (min-width: 767.99px) {
  #ethos .ethos__image {
    left: 17%;
    position: absolute;
    top: 30%;
  }
}

#ethos .ethos__arrow {
  align-items: center;
  display: flex;
  flex-direction: row;
  text-decoration: underline;
  text-transform: uppercase;
}

#ethos .ethos__arrow:hover .arrowlong {
  transform: scale(1.1);
}

@media (min-width: 767.99px) {
  #ethos .ethos__arrow {
    justify-content: center;
    left: 5%;
    position: absolute;
    top: 20vw;
  }
}

#ethos .ethos__arrow .arrowlong {
  margin-right: 1rem;
  transition: transform 0.3s ease;
}

#ethos .ethos__item {
  margin-top: 2rem;
}

#ethos .ethos__icon {
  height: 45px;
  object-fit: contain;
  width: 45px;
}

@media (min-width: 767.99px) {
  #ethos .ethos__icon {
    margin-right: 15px;
  }
}

/* ==========================================================================
   SECTION 5: QUIZ & OFFERS (#quiz)
   ========================================================================== */
#quiz {
  margin: 0;
}

.section-certification {
  background-color: #FFF5FA;
}

.cert-badge-card {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}

.cert-badge-card:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 16px 36px rgba(222, 3, 124, 0.14) !important;
}

#quiz .half__grid {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  overflow: hidden;
  width: 100%;
}

@media (max-width: 767.98px) {
  #quiz .half__grid {
    flex-direction: column-reverse;
    padding-bottom: 4rem;
  }
}

#quiz .half__grid-content {
  height: auto;
  overflow: visible;
  position: relative;
  width: 50%;
  padding: 0 calc(4% + 0.75rem);
}

@media (max-width: 767.98px) {
  #quiz .half__grid-content {
    width: 100%;
  }
}

#quiz .half__grid-content svg {
  left: -0.75rem;
  max-width: 90%;
  position: absolute;
  top: -40%;
  z-index: -1;
}

#quiz .half__grid-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
  margin-bottom: 0.8rem;
  margin-top: 1.2rem;
  text-transform: none;
}

#quiz .half__grid-img {
  position: relative;
  width: 50%;
}

@media (max-width: 767.98px) {
  #quiz .half__grid-img {
    width: 100%;
  }
}

#quiz .half__grid .offer__text {
  left: 4.375rem;
  pointer-events: none;
  position: absolute;
  top: 5rem;
  z-index: 2;
}

#quiz .half__grid .offer__text .title {
  line-height: 0.8;
}

#quiz .half__grid .offer__text .title i {
  display: inline-block;
  font-family: 'Editorial New', serif;
  font-size: 5rem;
  font-weight: 300;
  text-transform: none;
}

#quiz .half__grid .offer__text .description {
  color: #737373;
  margin-top: 1.25rem;
  max-width: 25rem;
  width: 100%;
}

#quiz .half__grid .offer__cta {
  position: absolute;
  right: 5rem;
  top: 9.75rem;
  z-index: 3;
}

#quiz .half__grid .offer__cta .offer__more {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#quiz .half__grid .offer__cta .offer__more:hover .arrowlong {
  transform: scale(1.1);
}

#quiz .half__grid .offer__cta .offer__more .arrowlong {
  margin-bottom: 1rem;
  transition: transform 0.3s ease;
}

/* ==========================================================================
   SECTION 6: JOURNAL (#journal)
   ========================================================================== */
#journal {
  background: #222;
  color: #fff;
  margin: 0;
  padding: 8rem 0;
}

#journal .journal__title {
  line-height: 0.8;
  margin-bottom: 1.2rem;
  text-align: center;
}

#journal .journal__title .font-serif {
  font-size: 1.4em;
}

#journal .journal__desc {
  margin: 0;
  text-align: center;
}

.journal__card {
  background: #fff;
  color: #3b3b3b;
  margin-bottom: 3.3rem;
  margin-top: 6rem;
  overflow: hidden;
  width: 100%;
}

.journal__card.featured {
  margin: 0;
}

.journal__card.featured .journal__card-title {
  font-size: 1.75rem;
  font-weight: 400;
}

.journal__card.featured .journal__card-image {
  height: 37rem;
}

.journal__card .ribbon {
  background: #fff;
  border-radius: 5rem;
  font-weight: 600;
  left: 2.6875rem;
  line-height: 1;
  padding: 0.55rem 1.5rem 0.4rem;
  position: absolute;
  text-transform: uppercase;
  top: 2rem;
  z-index: 2;
}

.journal__card-image {
  height: 15rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.journal__card img {
  height: 100%;
  object-fit: cover;
  transform: scale(1.1);
  transition: transform 1s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 100%;
}

.journal__card:hover img {
  transform: scale(1);
}

.journal__card-text {
  padding: 2rem;
}

.journal__card-title {
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.journal__card-desc {
  color: #787878;
}

.journal__card-detail {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
}

#journal .journal__more {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#journal .journal__more:hover .arrowlong {
  transform: scale(1.1);
}

#journal .journal__more .arrowlong {
  margin-bottom: 1rem;
  transition: transform 0.3s ease;
}

/* ==========================================================================
   SECTION 7: CONNECT (#connect)
   ========================================================================== */
#connect {
  margin-bottom: 0;
  margin-top: 15%;
  padding-bottom: 20rem;
  position: relative;
}

#connect .connect__title-1,
#connect .connect__title-2 {
  left: 50%;
  position: absolute;
  text-align: center;
  transform: translate(-50%);
}

#connect .connect__title-1 {
  top: -6.2rem;
}

#connect .connect__title-2 {
  bottom: -6rem;
  font-size: 6.3rem;
  line-height: 0.65;
}

#connect .connect__image {
  height: 100%;
  object-fit: cover;
  position: relative;
  width: 100%;
  z-index: -1;
}

#connect .connect__socmed {
  bottom: -17rem;
  left: 50%;
  max-width: 20rem;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 100%;
}

/* ==========================================================================
   SECTION 8: FOOTER (#footer)
   ========================================================================== */
#footer {
  margin-top: 6rem;
  padding: 0;
  position: relative;
  overflow: hidden;
  background: #f7f5f0;
}

#footer .footer__parallax {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}

#footer .footer__parallax-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(1.02);
}

#footer .footer__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(250, 248, 245, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

#footer .footer__content-container {
  position: relative;
  z-index: 2;
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}

#footer .footer__card {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.08), 0 4px 20px rgba(0, 0, 0, 0.03);
  padding: 3.5rem 3.5rem 2.5rem 3.5rem;
}

@media (max-width: 991.98px) {
  #footer .footer__content-container {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  #footer .footer__card {
    padding: 2.25rem 1.75rem 1.75rem 1.75rem;
    border-radius: 18px;
  }
}

#footer .footer__grid {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr 1.8fr 2.6fr;
  gap: 2.5rem;
  align-items: start;
}

@media (max-width: 1024px) {
  #footer .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}

@media (max-width: 600px) {
  #footer .footer__grid {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
}

#footer .footer__col .subtitle {
  font-size: 0.8rem;
  margin-bottom: 1.1rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #888;
}

#footer .footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#footer .footer__col li {
  font-size: 1.05rem;
  line-height: 1.85;
}

#footer .footer__col li a.link {
  color: #2a2a2a;
  text-decoration: none;
  transition: color 0.2s ease;
}

#footer .footer__col li a.link:hover {
  color: #9C7A5B;
}

#footer .footer__factory-info li {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #444;
}

#footer .footer__minimap-box {
  width: 100%;
  height: 155px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e2ddd5;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
  background: #f0ede8;
}

#footer .footer__minimap-box iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

#footer .footer__minimap-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.65rem;
  flex-wrap: wrap;
  gap: 0.5rem;
}

#footer .footer__minimap-btn {
  font-size: 0.8rem;
  font-weight: 600;
  color: #1a1a1a;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  transition: color 0.2s ease;
}

#footer .footer__minimap-btn:hover {
  color: #9C7A5B;
}

#footer .footer__copyright {
  border-top: 1px solid #eee8df;
  padding-top: 1.75rem;
  margin-top: 2.5rem;
}

#footer .footer__email-title {
  font-size: 4.5rem;
  line-height: 0.85;
  margin-bottom: 2rem;
}

#footer .footer__email input {
  color: #fff;
  height: inherit;
  margin: 4rem 0;
  padding: 1.3rem;
}

#footer .footer__email .arrowlong {
  background-color: #787878;
  height: 6.5rem;
  transition: background-color 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), color 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 6.5rem;
}

#footer .footer__submit {
  overflow: inherit;
}

#footer .footer__submit:hover .arrowlong {
  background-color: #fff;
  color: #232323;
  transform: scale(1.1);
}

#footer .footer__submit:hover svg path {
  fill: #232323;
}

#footer .footer__submit:hover span {
  color: #fff;
}

#footer .footer__copyright {
  font-size: 0.8rem;
}

#footer .footer__copyright-wrapper {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

#footer .footer__copyright-links {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: center;
}

#footer .footer__copyright-links li {
  color: #a0a0a0;
}

#footer .footer__copyright-links li:not(:last-child) {
  margin-right: 2rem;
}


/* ==========================================================================
   TRUEKIND AUTHENTIC ANIMATION CLASSES (.icon-clone, .masking-text, .scrollbar)
   ========================================================================== */
.masking-text {
  display: block;
  overflow: hidden;
}
.masking-text .line,
.masking-text .word {
  position: relative;
  will-change: transform;
}
.scrollbar {
  bottom: 0;
  padding: 24px 0;
  position: fixed;
  right: 0;
  top: 0;
  width: 16px;
  user-select: none;
  z-index: 99999;
  cursor: pointer;
  touch-action: none;
}
@media (max-width: 767.98px) {
  .scrollbar {
    display: none;
  }
}
.scrollbar.is--hidden {
  display: none;
}
.scrollbar .inner {
  height: 100%;
  position: relative;
  width: 100%;
}
.scrollbar .thumb {
  background-color: #000;
  border-radius: 50px;
  cursor: grab;
  min-height: 70px;
  opacity: 0.45;
  position: absolute;
  right: 3px;
  transition: width 0.2s ease, opacity 0.2s ease, background-color 0.2s ease;
  width: 8px;
  touch-action: none;
}
.scrollbar:hover .thumb,
.scrollbar.is--dragging .thumb {
  opacity: 0.85;
  width: 10px;
  background-color: #111;
}
.scrollbar.is--dragging,
.scrollbar.is--dragging .thumb,
body.is--scrollbar-dragging,
body.is--scrollbar-dragging * {
  cursor: grabbing !important;
  user-select: none !important;
}
.icon-clone[data-clone="true"] {
  overflow: hidden;
}
.icon-clone[data-clone="true"] .arrowlong,
.icon-clone[data-clone="true"].slider-arrow {
  overflow: hidden;
  position: relative;
}
.icon-clone[data-clone="true"] .icon-arrowlong {
  transform-origin: center;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-arrowlong:first-child {
  transform: translate(0) scaleX(1);
}
.icon-clone[data-clone="true"] .icon-arrowlong:first-child.active {
  opacity: 0;
  transform: translate(200%, -200%);
}
.icon-clone[data-clone="true"] .icon-arrowlong:last-child {
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-290%, 220%);
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-arrowlong:last-child.active {
  opacity: 1;
  transform: translate(-50%, -50%);
}
.icon-clone[data-clone="true"] .icon-arrow {
  transform-origin: center;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-arrow:first-child {
  transform: translate(0) scaleX(1);
}
.icon-clone[data-clone="true"] .icon-arrow:first-child.active {
  opacity: 0;
  transform: translate(350%) scaleX(2);
}
.icon-clone[data-clone="true"] .icon-arrow:last-child {
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-300%, -50%) scaleX(2);
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-arrow:last-child.active {
  opacity: 1;
  transform: translate(-50%, -50%) scaleX(1);
}


/* ==========================================================================
   TRUEKIND PHILOSOPHY PAGE STYLES (#philosophy, .p-ingradients, #p-proven, #p-benefit)
   ========================================================================== */
.blank-space {
  margin: 24rem 0;
}
@media (max-width: 767.98px) {
  .blank-space {
    margin: 8rem 0;
  }
}
.icon-circle {
  align-items: center;
  background: #3b3b3b;
  border-radius: 100%;
  display: flex;
  flex-direction: row;
  height: 3.6rem;
  justify-content: center;
  width: 3.6rem;
}
@media (max-width: 767.98px) {
  .icon-circle {
    height: 4rem;
    width: 4rem;
  }
}
.font-serif-italic {
  font-family: 'Editorial New', serif;
  font-style: italic;
  font-weight: 300;
  letter-spacing: -1px;
  text-transform: none;
}
.font-weight-normal {
  font-weight: 400 !important;
}
.text-none {
  text-transform: none !important;
}
.half__grid.philosophy {
  align-items: center;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  overflow: hidden;
  width: 100%;
}
@media (min-width: 767.99px) {
  .half__grid.philosophy {
    height: 120vh;
    min-height: 65rem;
  }
}
@media (max-width: 767.98px) {
  .half__grid.philosophy {
    flex-direction: column;
  }
}
.half__grid.philosophy .half__grid-content,
.half__grid.philosophy .half__grid-img {
  width: 50%;
}
@media (max-width: 767.98px) {
  .half__grid.philosophy .half__grid-content,
  .half__grid.philosophy .half__grid-img {
    width: 100%;
  }
}
.half__grid.philosophy .half__grid-img {
  height: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-around;
}
.half__grid.philosophy .half__grid-img img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
@media (min-width: 767.99px) {
  .half__grid.philosophy .half__grid-img img {
    height: 110% !important;
  }
}
.half__grid.philosophy .half__grid-content {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 85%;
  justify-content: space-between;
  max-height: 52rem;
  padding: 0 calc(4% + 0.75rem);
}
@media (max-width: 767.98px) {
  .half__grid.philosophy .half__grid-content {
    order: 1;
    padding: 3rem 1.5rem;
  }
  .half__grid.philosophy .half__grid-img {
    order: 2;
  }
}
.half__grid.philosophy .half__grid-text {
  text-align: center;
}
.half__grid.philosophy .half__grid-text .icon-1 {
  margin-bottom: 2rem;
  min-height: 2rem;
  min-width: 2rem;
}
.half__grid.philosophy .half__grid-text .icon-2 {
  margin: 6rem 0;
}
@media (max-width: 767.98px) {
  .half__grid.philosophy .half__grid-text .icon-2 {
    margin: 4rem 0;
  }
}
.half__grid.philosophy .half__grid-bottom img {
  display: block;
  margin-bottom: 3rem;
  margin-left: auto;
  margin-right: auto;
  width: 42%;
}
@media (max-width: 767.98px) {
  .half__grid.philosophy .half__grid-bottom img {
    margin-top: 3rem;
  }
}
.half__grid.philosophy .half__grid-desc {
  margin: auto;
  text-align: center;
  max-width: 31.3rem;
}
.half__grid.philosophy .half__grid-desc-2 {
  font-size: 6.5rem;
  line-height: 0.5;
  margin-bottom: 2rem;
}
.half__grid.philosophy .half__grid-desc-2 span {
  font-size: 3rem;
}
.half__grid.philosophy .half__grid-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
  max-width: 21.8rem;
  text-transform: none;
}
@media (max-width: 767.98px) {
  .half__grid.philosophy .half__grid-title {
    font-size: 2.380952381rem;
  }
}
.icon-clone[data-clone="true"] .icon-down {
  transform-origin: center;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-down:first-child {
  transform: translate(0) scaleY(1);
}
.icon-clone[data-clone="true"] .icon-down:first-child.active {
  opacity: 0;
  transform: translateY(200%) scaleY(2);
}
.icon-clone[data-clone="true"] .icon-down:last-child {
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -250%) scaleY(2);
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), opacity 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}
.icon-clone[data-clone="true"] .icon-down:last-child.active {
  opacity: 1;
  transform: translate(-50%, -50%) scaleY(1);
}
#philosophy{margin-top:0;position:relative}#philosophy .philosophy__intro{display:flex;flex-direction:column;height:100vh;justify-content:space-between;padding-bottom:5vh;padding-top:15vh;position:relative}@media (max-width:767.98px){#philosophy .philosophy__intro{height:100vh;height:calc(var(--vhmobilebar, 1vh)*100)}}#philosophy .philosophy__intro-bg{background-position:50%;background-repeat:no-repeat;background-size:contain;height:100vh;left:0;position:absolute;top:0;width:100%}#philosophy .philosophy__intro h1{font-size:10.3rem;position:relative;text-transform:none;top:-1rem;white-space:nowrap;z-index:2}@media (max-width:767.98px){#philosophy .philosophy__intro h1{font-size:25vw}}#philosophy .philosophy__intro img,#philosophy .philosophy__intro img{height:auto;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:75%}#philosophy .philosophy__intro .arrowlong{position:absolute;right:10%;top:33%}@media (max-width:767.98px){#philosophy .philosophy__intro .arrowlong{left:50%;margin-top:2rem;position:relative;transform:translate(-50%)}}#philosophy .philosophy__intro-bottom{align-items:flex-end;display:flex;justify-content:space-between}@media (max-width:767.98px){#philosophy .philosophy__intro-bottom{align-items:flex-start;flex-direction:column-reverse}}.p-ingradients-bottom{align-items:flex-end;display:flex;justify-content:space-between}.p-ingradients .icon-circle-wrapper{cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (min-width:767.99px){.p-ingradients .icon-circle-wrapper{align-items:center;display:flex;height:4.8rem;justify-content:center;width:4.8rem}}@media (max-width:767.98px){.p-ingradients .icon-circle-wrapper{margin-top:1rem;pointer-events:none}}.p-ingradients .icon-circle-wrapper svg{width:1.5rem}.p-ingradients .icon-circle{position:relative;will-change:transform}@media (min-width:767.99px){.p-ingradients .icon-circle{height:4.8rem;width:4.8rem}}.p-ingradients-desc{display:flex;flex-direction:row}@media (max-width:767.98px){.p-ingradients-desc{flex-direction:column}}.p-ingradients-desc p:not(:last-child){margin-right:2rem}@media (max-width:767.98px){.p-ingradients-desc p:not(:last-child){margin-bottom:1.5rem}}@media (min-width:767.99px){.p-ingradients.right h2{text-align:right}.p-ingradients.right .p-ingradients-bottom{flex-direction:row-reverse}}.p-ingradients .leaf-action{bottom:0;height:100%;left:0;overflow:visible;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:5}.p-ingradients .leaf-action svg{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.philosophy-page .parallax:not(.half__grid-img){height:80rem}.philosophy-page .parallax:not(.half__grid-img) .parallax-image{height:calc(80rem + 10vh)}@media (max-width:767.98px){.philosophy-page .parallax:not(.half__grid-img){height:25rem}.philosophy-page .parallax:not(.half__grid-img) .parallax-image{height:calc(25rem + 10vh)}}#p-proven .half__grid{position:relative}#p-proven .half__grid .marquee-container{display:flex;gap:2.5rem;height:100%;overflow:hidden;position:relative}@media (max-width:767.98px){#p-proven .half__grid .marquee-container{flex-direction:row;height:auto;width:100%}}#p-proven .half__grid .marquee-y{height:100%;overflow:hidden;position:relative;width:calc(50% - 1.25rem)}@media (max-width:767.98px){#p-proven .half__grid .marquee-y{height:18rem;width:100%}#p-proven .half__grid .marquee-y:last-child{display:none}}#p-proven .half__grid .philosophy__ingredients{align-items:center;display:flex;flex-direction:column;font-size:1.2rem;font-style:normal;font-weight:400;gap:2rem;height:-moz-fit-content;height:fit-content;letter-spacing:0;line-height:1.2;will-change:transform}@media (max-width:767.98px){#p-proven .half__grid .philosophy__ingredients{flex-direction:row;height:auto;width:100%}}#p-proven .half__grid .philosophy__ingredients.reverse{flex-direction:column-reverse}@media (max-width:767.98px){#p-proven .half__grid .philosophy__ingredients.reverse{flex-direction:row-reverse;height:auto;width:-moz-fit-content;width:fit-content}}#p-proven .half__grid .ingredients__card{background:#fff;color:#3b3b3b;height:25rem;padding:1.5rem 1rem;width:22rem}@media (max-width:767.98px){#p-proven .half__grid .ingredients__card{height:18rem;min-width:16rem;width:100%}}#p-proven .half__grid .ingredients__card-content{align-items:flex-start;display:flex;flex-direction:column;height:100%;justify-content:space-between;max-width:30%}#p-proven .half__grid .ingredients__card .img-wrapper{background-color:#f3f3f3;border-radius:100%;height:5rem;overflow:hidden;padding:.5rem;width:5rem}@media (max-width:767.98px){#p-proven .half__grid .ingredients__card .img-wrapper{height:70px;width:70px}}#p-proven .half__grid .ingredients__card img,#p-proven .half__grid .ingredients__card img{border-radius:100%;height:100%;mix-blend-mode:multiply;-o-object-fit:cover;object-fit:cover;width:100%}#p-proven .half__grid-img{justify-content:flex-start;padding:0 calc(4% + .75rem);position:relative;width:55%}@media (max-width:767.98px){#p-proven .half__grid-img{height:auto;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:100%}}#p-proven .half__grid-content{overflow:visible!important;overflow:initial!important}@media (max-width:767.98px){#p-proven .half__grid-content{max-height:none}}@media (min-width:767.99px){#p-proven .half__grid-content{width:45%}}#p-proven .half__grid-content .half__grid-title{max-width:40rem}@media (min-width:767.99px){#p-proven .half__grid-content .half__grid-title{font-size:4rem}}#p-proven .half__grid-bottom{width:100%}#p-proven .half__grid-desc2{font-size:2.5rem}@media (max-width:767.98px){#p-proven .half__grid-desc2{font-size:2.380952381rem}}#p-proven .half__grid-desc2 span{font-size:inherit}#p-proven .half__grid .btn__icon{margin-top:4rem}@media (min-width:767.99px){#p-proven .half__grid .btn__icon{margin:auto;max-width:90%}}#p-benefit{margin-bottom:0}#p-benefit .p-benefit-icon{align-items:center;background:#f9f9f9;border-radius:100%;display:block;display:flex;flex-direction:row;height:8.4rem;justify-content:center;margin-bottom:1rem;margin-left:auto;margin-right:auto;width:8.4rem}#p-benefit .p-benefit-icon .image{height:1.9rem;width:auto}#p-benefit .p-benefit-icon svg{height:3.2rem;max-width:3.2rem;width:auto}#p-benefit .p-benefit-text{max-width:50%;text-align:center}#p-benefit .row>*{align-items:center;display:flex;flex-direction:column;justify-content:center}


/* ==========================================================================
   TRUEKIND GALLERY PAGE STYLES (#gallerydrag, .gallery-container, #header.is--draggallery)
   ========================================================================== */
#header.is--draggallery {
  color: #fff;
  mix-blend-mode: difference;
}
#header.is--draggallery a,
#header.is--draggallery span {
  color: #fff !important;
}
#header.is--draggallery .navbar-cta svg path {
  stroke: #fff !important;
}
#header.is--draggallery .navbar-hamburger .navbar-hamburger-line {
  background: #fff !important;
}

.gallerydrag {
  cursor: grab;
  height: 100vh;
  margin: 0;
  overflow: hidden;
  overscroll-behavior: none;
  padding: 0;
  position: relative;
  touch-action: none;
  transition: transform 0.5s cubic-bezier(0.18, 0.71, 0.11, 1), background-color 0.5s cubic-bezier(0.18, 0.71, 0.11, 1), color 0.5s cubic-bezier(0.18, 0.71, 0.11, 1);
  user-select: none;
  width: 100%;
  will-change: transform;
}
.gallerydrag.active {
  background-color: #222;
  color: #fff;
  cursor: grabbing;
  transform: scale(1.1);
}
.gallerydrag.active .title-wrapper {
  transform: translate(-50%, -50%) scale(0.9);
}
.gallerydrag .content {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  pointer-events: none;
  width: max-content;
  grid-gap: 10vw;
  gap: 10vw;
  padding: 5vw;
}
.gallerydrag .media {
  aspect-ratio: 1;
  user-select: none;
  width: 25vw;
  will-change: transform, clip-path, opacity;
}
@media (max-width: 767.98px) {
  .gallerydrag .media {
    width: 65vw;
  }
}
.gallerydrag .media img,
.gallerydrag .media video {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}
.gallerydrag .title-wrapper {
  left: 50%;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.5s cubic-bezier(0.18, 0.71, 0.11, 1);
  z-index: 5;
}
.gallerydrag .title-wrapper h1 {
  font-size: 6.5rem;
  line-height: 1 !important;
  text-transform: none;
}
@media (max-width: 767.98px) {
  .gallerydrag .title-wrapper h1 {
    font-size: 3.25rem;
  }
}
.gallerydrag .gallery-container {
  backface-visibility: hidden;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  pointer-events: none;
  user-select: none;
  width: max-content;
  will-change: transform;
}

.preloader {
  display: none !important;
}

/* ==========================================================================
   PRODUCTS / SHOP PAGE STYLES (truekindskincare.com/products)
   ========================================================================== */

.gx-0 {
  --bs-gutter-x: 0;
}

@media (min-width: 768px) {
  .col-md-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
  }
  .col-md-9 {
    flex: 0 0 auto;
    width: 75%;
  }
}

.text-underline-border-2 {
  position: relative;
  --border-color: #3b3b3b;
}

.text-underline-border-2:after {
  background: var(--border-color);
  bottom: 15%;
  content: "";
  height: 0.07em;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 100%;
}

@media (max-width: 767.98px) {
  .text-underline-border-2:after {
    bottom: 10%;
    height: 0.045em;
  }
}

.text-underline-border-2.active:after,
.text-underline-border-2:hover:after {
  transform: scaleX(1);
}

.mask-path-intro {
  fill: none;
  stroke: #fff;
  stroke-width: 5;
}

@media (max-width: 767.98px) {
  .accordion,
  .accordion-toggle {
    border-bottom: 1px solid #d8d8d8;
    position: relative;
  }
}

.accordion-toggle__title,
.accordion__title {
  cursor: pointer;
  display: flex;
  font-size: 1.2rem;
  font-weight: 600;
  justify-content: space-between;
  line-height: 1;
  padding: 1.5rem 0;
  user-select: none;
}

@media (max-width: 767.98px) {
  .accordion-toggle__title,
  .accordion__title {
    font-size: 1.1428571429rem;
  }
}

.accordion-toggle__content,
.accordion__content {
  overflow: hidden;
  transition: max-height 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  will-change: max-height;
}

.accordion .icon-chevron,
.accordion-toggle .icon-chevron {
  min-height: 1em;
  min-width: 1em;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
}

.accordion-toggle.is--active > .accordion-toggle__title .icon-chevron {
  transform: rotate(90deg);
}

.product__list {
  display: block;
  width: 100%;
}

.product__list:not(:last-child) {
  margin-bottom: 10.5rem;
}

@media (max-width: 767.98px) {
  .product__list:not(:last-child) {
    margin-bottom: 5.8333333333rem;
  }
}

.product__list-head {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
}

@media (max-width: 767.98px) {
  .product__list-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

.product__list .slider-arrow:not(:last-child) {
  margin-right: 20px;
}

.product__list .slider-arrow-wrapper {
  display: flex;
}

@media (max-width: 767.98px) {
  .product__list .slider-arrow-wrapper {
    margin-top: 2rem;
  }
}

.product__list .slider-arrow svg path {
  fill: currentColor;
}

.product__list-item {
  display: flex;
  margin: 2rem 0;
}

.product__title {
  font-family: PP Mori, sans-serif;
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

@media (max-width: 767.98px) {
  .product__title {
    font-family: PP Mori, sans-serif;
    font-size: 2.5rem;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.1;
    text-transform: none !important;
  }
}

/* Section: #collection */
#collection {
  margin-top: 0;
  overflow: hidden;
}

@media (max-width: 767.98px) {
  #collection {
    margin: 0;
  }
}

#collection h1 {
  font-size: 6.5rem;
}

@media (max-width: 767.98px) {
  #collection h1 {
    font-size: 12vw;
  }
}

#collection .cta {
  background: #fff;
  border-radius: 14px;
  max-width: 25rem;
  padding: 2rem;
}

#collection .cta h2 {
  font-family: PP Mori, sans-serif;
  font-size: 2.8rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-transform: none;
}

@media (max-width: 767.98px) {
  #collection .cta h2 {
    font-size: 2.6666666667rem;
  }
}

#collection .cta p {
  color: #737373;
  opacity: 0.65;
}

#collection .cta .btn {
  margin-top: 6rem;
  text-align: center;
  width: 100%;
}

#collection .row-bottom {
  align-items: flex-end;
  bottom: 7%;
  display: flex;
  left: 0;
  padding-left: calc(4% + 0.75rem);
  padding-right: calc(4% + 0.75rem);
  position: absolute;
  width: 100%;
  z-index: 2;
}

#collection .arrow-text {
  height: 44vh;
  position: absolute;
  right: 18%;
  top: 3%;
  width: 37vw;
  z-index: -1;
}

@media (max-width: 767.98px) {
  #collection .arrow-text {
    height: 30vh;
    right: 10%;
    top: 53%;
    width: auto;
    z-index: -1;
  }
}

#collection .collection__title2 {
  line-height: 1;
}

@media (max-width: 767.98px) {
  #collection .collection__title2 {
    font-size: 3.8095238095rem;
  }
  #collection .collection__title2 span {
    margin-left: 24%;
  }
}

@media (min-width: 767.99px) {
  #collection .collection__title2 {
    font-size: 8rem;
  }
}

#collection .collection__intro {
  background: #edeff0;
  height: 100vh;
  padding-top: 8rem;
  position: relative;
}

@media (max-width: 767.98px) {
  #collection .collection__intro {
    height: 100vh;
    height: calc(var(--vhmobilebar, 1vh) * 100);
  }
}

#collection .collection__intro .row {
  position: relative;
  z-index: 2;
}

#collection .collection__intro-img {
  align-items: flex-end;
  bottom: 0;
  display: flex;
  height: 100%;
  justify-content: center;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1;
}

#collection .collection__intro-img .media-img {
  height: 100%;
  width: 100%;
}

#collection .collection__intro-img img {
  height: 100%;
  object-position: bottom;
  width: 100%;
}

/* Section: #product */
#product {
  overflow: hidden;
}

@media (max-width: 767.98px) {
  #product {
    margin-top: -25px;
    position: relative;
    z-index: 2;
  }
}

#product .cta {
  background: #fff;
  border-radius: 7px;
  margin-bottom: 2rem;
  max-width: 25rem;
  padding: 2rem;
}

@media (max-width: 767.98px) {
  #product .cta {
    margin-bottom: 1rem;
    max-width: inherit;
    width: 100%;
  }
}

#product .cta h2 {
  font-family: PP Mori, sans-serif;
  font-size: 2.5rem;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  text-transform: none;
}

@media (max-width: 767.98px) {
  #product .cta h2 {
    font-size: 2.380952381rem;
  }
}

#product .cta .btn {
  margin-top: 6rem;
  text-align: center;
  width: 100%;
}

#product .row {
  position: relative;
}

#product .filter-toggle {
  align-items: center;
  background: #fff;
  border: 1px solid #d8d8d8;
  border-radius: 7px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: 0.8rem 1rem;
  position: relative;
}

#product .filter-toggle span {
  font-weight: 600;
  text-transform: uppercase;
}

#product .filter-toggle span svg {
  height: 90%;
  margin-left: 0.3rem;
  min-height: inherit;
  min-width: inherit;
  position: relative;
  top: 0.1rem;
  width: auto;
}

#product .filter-toggle .filter-count {
  align-items: center;
  background: #222;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 0.8rem;
  height: 1.5rem;
  justify-content: center;
  line-height: 0;
  margin-right: 0.5rem;
  min-width: 1.5rem;
  padding: 0 0.3rem;
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
}

#product .filter-toggle svg {
  transition: transform 0.3s ease;
}

#product .filter-toggle svg.rotate-180 {
  transform: rotate(180deg);
}

@media (max-width: 767.98px) {
  #product .product-sticky {
    margin: 0;
    padding: 0;
    position: static;
    width: 100%;
  }
}

#product .product__filters {
  line-height: 1;
  padding: 1rem 0 0;
  text-transform: uppercase;
  user-select: none;
}

#product .product__filters .filters-clear {
  align-items: center;
  color: #a0a0a0;
  display: flex;
  flex-direction: row;
  font-size: 1rem;
  font-style: normal;
  font-weight: 600;
  justify-content: space-between;
  letter-spacing: 0;
  line-height: 1.2;
  margin-bottom: 1rem;
  padding: 0;
  position: relative;
  text-transform: uppercase;
}

#product .product__filters .filters-clear .filters-clear__all {
  cursor: pointer;
  text-decoration: underline;
  color: #3b3b3b;
}

#product .product__filters-collection a.active,
#product .product__filters-collection a:hover {
  font-weight: 600;
}

#product .product__filters .accordion-toggle__content,
#product .product__filters .accordion__content {
  background: inherit;
}

#product .product__filters .accordion-toggle {
  border-bottom: 1px solid #d8d8d8;
  position: relative;
}

#product .product__filters .accordion-toggle__title {
  align-items: baseline;
  font: inherit;
  font-size: 0.8rem;
  padding: 0.8rem 0;
}

#product .product__filters .accordion-toggle__title p {
  line-height: 1;
}

#product .product__filters .accordion-toggle__content {
  color: #000;
}

@media (min-width: 767.99px) {
  #product .product__filters .accordion__title {
    cursor: auto;
  }
  #product .product__filters .accordion__title svg {
    display: none;
  }
}

#product .product__filters p {
  color: #a0a0a0;
}

#product .product__filters ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

#product .product__filters ul li {
  cursor: pointer;
  padding: 0.5rem 0;
  transition: opacity 0.25s ease;
}

#product .product__filters ul li:hover {
  opacity: 0.7;
}

#product .product__filters ul li span.active,
#product .product__filters ul li.active {
  font-weight: 600;
}

.filter-backdrop {
  animation: fadeInBackdrop 0.3s ease-out forwards;
  background: #00000080;
  bottom: 0;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 999;
}

@keyframes fadeInBackdrop {
  0% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.mobile-filters-panel {
  background: #fff;
  bottom: 0;
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  left: 0;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateY(100%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
  z-index: 1000;
}

.mobile-filters-panel.is--open {
  transform: translateY(0);
}

.mobile-filters-panel .mobile-filters-header {
  align-items: center;
  border-bottom: 1px solid #d8d8d8;
  display: flex;
  justify-content: space-between;
  padding: 1rem;
}

.mobile-filters-panel .mobile-filters-header h3 {
  font-weight: 600;
  margin: 0;
  text-transform: uppercase;
}

.mobile-filters-panel .mobile-filters-header .close-filters {
  align-items: center;
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  gap: 0.5rem;
  padding: 0;
}

.mobile-filters-panel .mobile-filters-header .close-filters span {
  font-size: 0.8rem;
  text-transform: uppercase;
}

.mobile-filters-panel .mobile-filters-header .close-filters svg {
  height: 1rem;
  width: 1rem;
}

.mobile-filters-panel .filters-clear {
  display: flex;
  justify-content: flex-end;
  padding: 1rem;
}

.mobile-filters-panel .filters-clear__all {
  cursor: pointer;
  font-size: 0.9rem;
  text-decoration: underline;
  text-transform: uppercase;
}

.mobile-filters-panel .mobile-filters-content {
  flex: 1;
  overflow-y: auto;
  padding: 0 1rem;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle {
  border-bottom: 1px solid #d8d8d8;
  text-transform: uppercase;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__title {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  padding: 0.8rem 0;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__title p {
  color: #a0a0a0;
  margin: 0;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__title svg {
  transition: transform 0.3s ease;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__content {
  padding-bottom: 0.5rem;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__content ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__content ul li {
  cursor: pointer;
  padding: 0.5rem 0;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle__content ul li span.active {
  font-weight: 600;
}

.mobile-filters-panel .mobile-filters-content .product__filters-collection .accordion-toggle.is--active svg {
  transform: rotate(90deg);
}

.mobile-filters-panel .mobile-filters-footer {
  border-top: 1px solid #d8d8d8;
  padding: 1rem;
}

.mobile-filters-panel .mobile-filters-footer .apply-filters-btn {
  background: #000;
  border: none;
  border-radius: 7px;
  color: #fff;
  cursor: pointer;
  font-weight: 600;
  padding: 1rem;
  text-transform: uppercase;
  width: 100%;
}

#productlist {
  display: block;
  opacity: 1;
}

@media (max-width: 767.98px) {
  #productlist {
    margin-top: 3rem;
  }
}

#productgrid {
  display: none;
  opacity: 0;
}

@media (max-width: 767.98px) {
  #productgrid {
    margin-top: 3rem;
  }
}

#productgrid .grid__title {
  font-family: Editorial New, serif;
  font-size: 4rem;
  font-weight: 400;
  margin-bottom: 1.5rem;
  text-transform: none;
}

@media (max-width: 767.98px) {
  #productgrid .grid__title {
    font-size: 2.5rem;
  }
}

#productgrid .grid__title .separator {
  display: inline-block;
  font-style: italic;
  font-weight: 300;
  position: relative;
}

#productgrid .grid__title .separator:after {
  background: #d8d8d8;
  bottom: 0.1em;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.grid__list,
#productlist .grid__list,
#productgrid .grid__list,
.product__category-section .grid__list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-gap: 1.5rem !important;
  gap: 1.5rem !important;
  width: 100% !important;
}

@media (max-width: 767.98px) {
  .grid__list,
  #productlist .grid__list,
  #productgrid .grid__list,
  .product__category-section .grid__list {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}

.grid__list .card-wrapper,
#productlist .card-wrapper,
#productgrid .card-wrapper,
.product__category-section .grid__list .card-wrapper {
  overflow: hidden;
  perspective: 1000px;
  position: relative;
  transform-origin: center top;
  transform-style: preserve-3d;
  will-change: transform, opacity;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.grid__list .card-wrapper:hover,
#productlist .card-wrapper:hover,
#productgrid .card-wrapper:hover,
.product__category-section .grid__list .card-wrapper:hover {
  z-index: 2;
}

.grid__list .card-wrapper .product__card,
#productlist .product__card,
#productgrid .product__card,
.product__category-section .grid__list .card-wrapper .product__card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#productgrid .no-results {
  border-radius: 14px;
  grid-column: 1 / -1;
  padding: 4rem 2rem;
  text-align: center;
}

#productgrid .no-results p {
  color: #787878;
  font-size: 1.2rem;
}

/* ==========================================================================
   JOURNAL LISTING (#blog) & ARTICLE DETAIL (#article) STYLES
   ========================================================================== */

.tooltip {
  border: 1px solid #c8c8c8;
  border-radius: 5rem;
  font-size: 0.8rem;
  line-height: 1;
  opacity: 0;
  padding: 0.5rem 1.5rem;
  pointer-events: none;
  position: absolute;
  right: -100%;
  text-transform: none;
  top: 130%;
  transform: translateY(10px);
  transition: opacity 0.4s cubic-bezier(0.18, 0.71, 0.11, 1), transform 0.4s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: auto;
  background: #fff;
  color: #3b3b3b;
}

.tooltip.active {
  opacity: 1;
  transform: translateY(0);
}

.tooltip-big {
  align-items: center;
  background: #232323;
  border: 1px solid #c8c8c8;
  border-radius: 7px;
  display: flex;
  gap: 0.85rem;
  left: 0;
  line-height: 0;
  opacity: 0;
  pointer-events: none;
  padding: 0.65rem 1.1rem;
  position: absolute;
  text-transform: none;
  top: 150%;
  transform: translateY(10px);
  transition: opacity 0.4s cubic-bezier(0.18, 0.71, 0.11, 1), transform 0.4s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: auto;
  z-index: 10;
}

.tooltip-big.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.tooltip-big-item {
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tooltip-big .tooltip {
  right: -705%;
  top: -40%;
  background: #232323;
  color: #fff;
}

.blog__title {
  font-size: 1.75rem;
  font-weight: 400;
  margin: 1.5rem 0;
  max-width: 35rem;
  text-transform: none;
}

.blog__date,
.blog__desc {
  color: #787878;
  max-width: 34.4rem;
}

.blog__date {
  display: block;
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 0;
  margin-top: 2rem;
}

.blog__feed {
  display: block;
  margin-top: 8rem;
}

@media (max-width: 767.98px) {
  .blog__feed {
    display: flex;
    flex-direction: column;
    gap: 4rem;
    margin-top: 4rem;
  }
}

.blog__feed-item {
  overflow: hidden;
  display: block;
}

.blog__feed-item:hover .blog__title {
  text-decoration: underline;
}

.blog__feed-item .media-img {
  overflow: hidden;
  border-radius: 14px;
}

.blog__feed-item img {
  object-fit: cover;
  height: 100%;
  transition: transform 0.8s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 100%;
}

.blog__feed-item:hover img {
  transform: scale(1.04);
}

@media (max-width: 767.98px) {
  .blog__feed-item {
    width: 100%;
  }
}

@media (min-width: 767.99px) {
  .blog__feed .blog__feed-item:first-of-type {
    display: block;
    width: 51.5%;
  }
  .blog__feed .blog__feed-item:first-of-type .media-img {
    height: 38.5rem;
  }
  .blog__feed .blog__feed-item:nth-of-type(2),
  .blog__feed .blog__feed-item:nth-of-type(3) {
    display: inline-block;
    float: right;
    margin: 8rem 0;
    width: 35%;
  }
  .blog__feed .blog__feed-item:nth-of-type(2) .media-img,
  .blog__feed .blog__feed-item:nth-of-type(3) .media-img {
    height: 28rem;
  }
  .blog__feed .blog__feed-item:nth-of-type(2) {
    margin-left: 2rem;
  }
  .blog__feed .blog__feed-item:nth-of-type(4) {
    display: inline-block;
    float: left;
    width: 45%;
  }
  .blog__feed .blog__feed-item:nth-of-type(4) .media-img {
    height: 48rem;
  }
  .blog__feed .blog__feed-item:nth-of-type(5) {
    display: inline-block;
    float: right;
    margin-top: 22rem;
    width: 50%;
  }
  .blog__feed .blog__feed-item:nth-of-type(5) .media-img {
    height: 38rem;
  }
}

#blog {
  background-position: 50% 0%;
  background-repeat: no-repeat;
  background-size: contain;
  margin-top: 0;
}

@media (max-width: 767.98px) {
  #blog {
    background-position: top;
  }
}

.blog__intro {
  margin-top: 12rem;
  position: relative;
}

@media (max-width: 767.98px) {
  .blog__intro {
    margin-top: 10rem;
  }
}

.blog__intro p {
  color: #414141;
  opacity: 0.5;
}

.blog__intro-title {
  font-size: 6.5rem;
  line-height: 0.8;
  margin-bottom: 2.5rem;
  text-align: center;
}

@media (max-width: 767.98px) {
  .blog__intro-title {
    font-size: 3.25rem;
  }
}

.blog__intro-title .font-serif {
  font-size: 1.3em;
}

.blog__intro .arrow-text {
  height: 35rem;
  position: absolute;
  right: -22rem;
  top: 9rem;
  width: 90rem;
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .blog__intro .arrow-text {
    display: none;
  }
}

.blog__intro .arrowlong {
  margin-top: 1.5rem;
  position: absolute;
  right: 15rem;
  cursor: pointer;
}

@media (max-width: 767.98px) {
  .blog__intro .arrowlong {
    left: 0;
    right: 0;
    margin: 2rem auto 0;
    position: relative;
    transform: none;
  }
}

/* Section: #article & .article-next */
.article-next-wrapper {
  margin-top: 4rem;
}

.article-next__title {
  line-height: 0.75;
  position: relative;
}

@media (min-width: 767.99px) {
  .article-next__title {
    margin-top: 11rem;
  }
}

@media (max-width: 767.98px) {
  .article-next__title {
    margin-bottom: 4rem;
    margin-right: 2rem;
    text-align: center;
  }
}

.article-next__title .font-serif {
  font-size: 1.25em;
}

.article-next__title .ms-6 {
  margin-left: 4rem;
}

.article-next .arrow-text {
  left: -1rem;
  position: absolute;
  top: 6rem;
}

.article-next .blog__feed-item {
  width: 100% !important;
}

.article-next .blog__feed-item .media-img {
  height: 28rem;
}

#article {
  margin: 0;
  overflow: hidden;
  position: relative;
}

#article .article__image {
  height: 100vh !important;
  margin: 0;
  padding: 0;
  width: 100%;
  overflow: hidden;
  position: relative;
}

@media (max-width: 767.98px) {
  #article .article__image {
    height: 50vh !important;
  }
}

#article .article__image .parallax-image {
  height: 100%;
  width: 100%;
}

#article .article__image img {
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

#article .article__header {
  background: #232323;
  color: #fff;
  position: relative;
  z-index: 2;
}

@media (min-width: 767.99px) {
  #article .article__header {
    margin-top: -20%;
    min-height: 45rem;
  }
  #article .article__header:after {
    background: #232323;
    content: "";
    height: 100%;
    position: absolute;
    right: -40rem;
    top: 0;
    width: 100%;
    z-index: -1;
  }
}

#article .article__header-top {
  display: flex;
  font-size: 1.1rem;
  gap: 4rem;
  opacity: 0.65;
}

@media (max-width: 767.98px) {
  #article .article__header-top {
    gap: 3rem;
  }
}

#article .article__title {
  font-weight: 400;
  line-height: 0.9;
  margin: 4rem 0;
  text-transform: none;
  color: #fff;
}

#article .article__excerpt {
  font-size: 1.3rem;
  line-height: 1.3;
  max-width: 80%;
  opacity: 0.65;
  color: #fff;
}

#article .article__share {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 1rem;
  margin-top: 5rem;
  position: relative;
  width: fit-content;
  -webkit-tap-highlight-color: transparent;
}

#article .article__share-text {
  opacity: 0.8;
  color: #fff;
}

#article .article__content {
  font-size: 1.1rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.4;
  position: relative;
}

@media (max-width: 767.98px) {
  #article .article__content {
    margin-top: 5rem;
  }
}

#article .article__content p {
  font-size: 1.1rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
}

#article .article__content p:not(:last-child) {
  margin-bottom: 2em;
}

#article .article__content h1,
#article .article__content h2,
#article .article__content h3,
#article .article__content h4,
#article .article__content h5,
#article .article__content h6 {
  font-size: 1.5em;
  font-weight: 400;
  line-height: 0.9;
  margin-bottom: 1rem;
  text-transform: none;
}

#article .article__content h1,
#article .article__content h2 {
  font-size: 3.5em;
  margin: 5rem 0;
}

@media (max-width: 767.98px) {
  #article .article__content h1,
  #article .article__content h2 {
    font-size: 2.25em;
    margin: 3rem 0;
  }
}

#article .article__content h3,
#article .article__content h4,
#article .article__content h5,
#article .article__content h6 {
  margin-bottom: 2.5rem;
}

#article .article__content em,
#article .article__content i {
  font-family: Editorial New, serif;
  font-style: italic;
  font-weight: 400;
}

#article .article__content img {
  display: block;
  margin-bottom: 5rem;
  margin-left: -7rem;
  margin-top: 5rem;
  max-width: inherit;
  position: relative;
  width: calc(100% + 14rem);
  border-radius: 14px;
}

@media (max-width: 767.98px) {
  #article .article__content img {
    margin-left: -2rem;
    width: calc(100% + 4rem);
  }
}

#article .arrowlong-down {
  bottom: -4.5rem;
  height: 9rem;
  position: absolute;
  right: 2rem;
  width: 9rem;
  z-index: 2;
  cursor: pointer;
}

@media (max-width: 767.98px) {
  #article .arrowlong-down {
    bottom: -3rem;
    height: 6rem;
    right: 15px;
    width: 6rem;
  }
}

.article-maxwidth {
  margin: 0 auto;
  max-width: 60rem;
  padding: 5rem;
  width: 100%;
}

@media (max-width: 767.98px) {
  .article-maxwidth {
    padding: 4rem 15px;
  }
}

.article-share {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: absolute;
  right: 9%;
  top: 7%;
}

@media (max-width: 767.98px) {
  .article-share {
    display: none;
  }
}

.article-share-item {
  align-items: center;
  cursor: pointer;
  display: flex;
  height: 2rem;
  justify-content: center;
  padding: 1rem;
  position: relative;
  transition: border-color 0.8s cubic-bezier(0.18, 0.71, 0.11, 1), transform 0.4s cubic-bezier(0.18, 0.71, 0.11, 1);
  width: 2rem;
}

.article-share-item:hover {
  border-color: #3b3b3b;
  transform: scale(1.2);
}

/* ==========================================================================
   CONTACT US / CONNECT PAGE STYLES (#contact-main)
   ========================================================================== */

#contact-main {
  margin-top: 8rem;
  margin-bottom: 10rem;
  position: relative;
}

@media (max-width: 767.98px) {
  #contact-main {
    margin-top: 4rem;
    margin-bottom: 6rem;
  }
}

.contact-section-subtitle {
  color: #a0a0a0;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.contact-section-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 1.05;
  margin-bottom: 2rem;
  text-transform: none;
}

@media (max-width: 767.98px) {
  .contact-section-title {
    font-size: 2.3rem;
  }
}

.consultant-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

@media (max-width: 575.98px) {
  .consultant-grid {
    grid-template-columns: 1fr;
  }
}

.consultant-card {
  background: #f5f5f5;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.75rem;
  text-decoration: none;
  color: #3b3b3b;
  transition: background-color 0.4s cubic-bezier(0.18, 0.71, 0.11, 1), transform 0.4s cubic-bezier(0.18, 0.71, 0.11, 1);
}

.consultant-card:hover {
  background: #eaeaea;
  transform: translateY(-4px);
}

.consultant-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.consultant-card__badge {
  background: #fff;
  border-radius: 5rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 0.4rem 0.9rem;
  text-transform: uppercase;
}

.consultant-card__arrow {
  align-items: center;
  background: #3b3b3b;
  border-radius: 100%;
  display: flex;
  height: 2.6rem;
  justify-content: center;
  width: 2.6rem;
  transition: transform 0.4s cubic-bezier(0.18, 0.71, 0.11, 1);
}

.consultant-card:hover .consultant-card__arrow {
  transform: scale(1.12);
}

.consultant-card__name {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 0.35rem;
  text-transform: none;
}

.consultant-card__role {
  color: #787878;
  font-size: 0.85rem;
  line-height: 1.3;
  margin-bottom: 0.85rem;
}

.consultant-card__phone {
  color: #3b3b3b;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.contact-info-box {
  background: #232323;
  border-radius: 14px;
  color: #fff;
  padding: 2.5rem;
}

.contact-info-box h3 {
  color: #fff;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.15;
  margin-bottom: 1.5rem;
  text-transform: none;
}

.contact-info-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.contact-info-list li span.label {
  color: #a0a0a0;
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-bottom: 0.3rem;
  text-transform: uppercase;
}

.contact-info-list li p {
  color: #fff;
  font-size: 1rem;
  line-height: 1.4;
  margin: 0;
  opacity: 0.9;
}

.contact-form-card {
  background: #f5f5f5;
  border-radius: 18px;
  padding: 3.5rem;
}

@media (max-width: 767.98px) {
  .contact-form-card {
    margin-top: 3rem;
    padding: 2rem 1.5rem;
  }
}

.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

@media (max-width: 575.98px) {
  .contact-form-grid {
    grid-template-columns: 1fr;
  }
}

.contact-form-group {
  display: flex;
  flex-direction: column;
}

.contact-form-group.full-width {
  grid-column: 1 / -1;
}

.contact-form-group label {
  color: #3b3b3b;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  margin-bottom: 0.55rem;
  text-transform: uppercase;
}

.contact-form-group input,
.contact-form-group select,
.contact-form-group textarea {
  background: #fff;
  border: 1px solid #d8d8d8;
  border-radius: 5rem;
  color: #3b3b3b;
  font-family: 'PP Mori', sans-serif;
  font-size: 0.95rem;
  height: 3.4rem;
  outline: none;
  padding: 0.6rem 1.5rem;
  transition: border-color 0.3s ease;
  width: 100%;
}

.contact-form-group textarea {
  border-radius: 1.25rem;
  height: auto;
  min-height: 8.5rem;
  padding: 1rem 1.5rem;
  resize: vertical;
}

.contact-form-group input:focus,
.contact-form-group select:focus,
.contact-form-group textarea:focus {
  border-color: #3b3b3b;
}

.contact-submit-btn {
  width: 100%;
  margin-top: 2rem;
  padding: 1.15rem 2rem;
  background: #18181b;
  color: #ffffff;
  border: none;
  border-radius: 9999px;
  font-family: 'PP Mori', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  cursor: pointer;
  position: relative;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  outline: none;
}

.contact-submit-btn:hover {
  background: #000000;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
  color: #ffffff;
}

.contact-submit-btn:active {
  transform: translateY(0);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}

.contact-submit-btn__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.contact-submit-btn__arrow {
  margin-left: 0.35rem;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.contact-submit-btn:hover .contact-submit-btn__arrow {
  transform: scale(1.12);
}

.contact-map-section {
  margin-bottom: 8rem;
}

.contact-map-wrapper {
  background: #f5f5f5;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  height: 28rem;
  width: 100%;
}

@media (max-width: 767.98px) {
  .contact-map-wrapper {
    height: 22rem;
  }
}

.contact-map-wrapper iframe {
  border: 0;
  filter: grayscale(100%) contrast(1.05);
  height: 100%;
  transition: filter 0.5s ease;
  width: 100%;
}

.contact-map-wrapper:hover iframe {
  filter: grayscale(20%) contrast(1);
}





/* ==========================================================================
   PRODUCT DETAIL PAGE SPECIFIC STYLES (#p-detail, #p-summary, #p-slider, #p-notoxic, #p-featured)
   ========================================================================== */
#p-detail {
  margin-top: 0;
  padding-top: 5.5rem;
  padding-bottom: 0;
  background: transparent;
  position: relative;
  overflow: hidden;
}

#p-detail .p-detail__intro {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  min-height: 620px;
  width: 100%;
  position: relative;
  gap: 0;
  background: transparent !important;
}

@media (max-width: 991.98px) {
  #p-detail .p-detail__intro {
    flex-direction: column;
    padding-top: 0;
    min-height: auto;
  }
}

#p-detail .p-detail__img {
  width: 50%;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: #FAF6F0;
  transition: background-color 0.5s ease;
  padding: 3rem 2rem;
}

@media (max-width: 991.98px) {
  #p-detail .p-detail__img {
    width: 100%;
    min-height: 380px;
    padding: 2.5rem 1.5rem;
  }
}

#p-detail .p-detail__img .media-img {
  width: 100%;
  max-width: 440px;
  height: auto;
  max-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  margin: auto;
}

#p-detail .p-detail__img .media-img img {
  max-width: 100%;
  max-height: 480px;
  width: auto;
  height: auto;
  object-fit: contain !important;
  filter: drop-shadow(0 20px 35px rgba(0, 0, 0, 0.12));
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

#p-detail .p-detail__img:hover .media-img img {
  transform: scale(1.04) translateY(-6px);
}

#p-detail .p-detail__img .arrow-text {
  position: absolute;
  right: 5%;
  top: 15%;
  max-width: 200px;
  z-index: 3;
  pointer-events: none;
}

@media (max-width: 991.98px) {
  #p-detail .p-detail__img .arrow-text {
    right: 5%;
    top: 10%;
    max-width: 140px;
  }
}

#p-detail .p-detail__detail {
  width: 50%;
  background: #fcfcfc;
  padding: 4rem 4.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

@media (max-width: 1200px) {
  #p-detail .p-detail__detail {
    padding: 3rem 2.5rem;
  }
}

@media (max-width: 991.98px) {
  #p-detail .p-detail__detail {
    width: 100%;
    padding: 2.5rem 1.5rem;
  }
}

#p-detail .p-detail__detail .pill {
  border: 1px solid #3b3b3b;
  border-radius: 50px;
  padding: 0.35rem 1.25rem;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #3b3b3b;
  width: fit-content;
  display: inline-block;
  margin-bottom: 1rem;
  text-decoration: none;
  font-weight: 500;
}

#p-detail .p-detail__detail-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 2.85rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin: 0.5rem 0 1.25rem 0;
  color: #1a1a1a;
  text-transform: none !important;
}

@media (max-width: 767.98px) {
  #p-detail .p-detail__detail-title {
    font-size: 2.1rem;
  }
}

#p-detail .p-detail__detail-variant {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

#p-detail .p-detail__detail .pill-fill {
  background: #2a2a2a;
  color: #fff;
  border-radius: 50px;
  padding: 0.35rem 1.15rem;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 600;
  display: inline-block;
}

#p-detail .p-detail__detail-desc {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #555;
  margin-bottom: 2rem;
  max-width: 95%;
}

#p-detail .p-detail__detail-btn {
  margin-top: 0.5rem;
  margin-bottom: 2.5rem;
}

#p-detail .p-detail__detail .btn__icon {
  background: #9c8769;
  color: #fff;
  font-size: 0.95rem;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border-radius: 999px;
  padding: 1.15rem 2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  transition: all 0.3s ease;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

#p-detail .p-detail__detail .btn__icon:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
}

#p-detail .p-detail__detail .btn__icon-arrow {
  margin-left: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}

#p-detail .p-detail__detail .btn__icon:hover .btn__icon-arrow {
  transform: scale(1.1);
}

#p-detail .p-detail__recommend {
  background: #fff;
  border: 1px solid #ebebeb;
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
  margin-bottom: 2rem;
}

#p-detail .p-detail__recommend-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.75rem;
}

#p-detail .p-detail__recommend-item-wrapper {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  text-decoration: none;
  color: inherit;
}

#p-detail .p-detail__recommend-item-img {
  width: 4rem;
  height: 4rem;
  border-radius: 10px;
  overflow: hidden;
  background: #f4ede4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#p-detail .p-detail__recommend-item-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#p-detail .p-detail__recommend-item-title h3 {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.25rem 0;
  color: #222;
}

#p-detail .p-detail__recommend-item-title span {
  font-size: 0.85rem;
  color: #777;
}

#p-detail .p-detail__pros {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  padding-top: 1.5rem;
  border-top: 1px solid #ebebeb;
}

@media (max-width: 640px) {
  #p-detail .p-detail__pros {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

#p-detail .p-detail__pros .icon-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

#p-detail .p-detail__pros .list-icon-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#p-detail .p-detail__pros .list-icon-text {
  font-size: 0.75rem;
  line-height: 1.25;
  color: #444;
  font-weight: 500;
  margin: 0;
}

/* #p-summary styles */
#p-summary {
  padding: 5rem 0;
  position: relative;
  z-index: 2;
  background: #fbf9f6;
  border-top: 1px solid #ede8e1;
}

#p-summary .p-summary-img1 {
  height: 24rem;
  max-width: 18rem;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  margin-top: 0;
}

#p-summary .p-summary-img2 {
  height: 26rem;
  max-width: 20rem;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
  margin-left: auto;
  margin-top: 0;
}

#p-summary .p-summary__benefit-head {
  text-align: center;
  max-width: 65rem;
  margin: 0 auto 3rem auto;
}

#p-summary .p-summary__benefit-head h2 {
  font-family: 'PP Mori', sans-serif;
  font-size: 2.5rem;
  line-height: 1.25;
  color: #222;
  font-weight: 500;
}

@media (max-width: 767.98px) {
  #p-summary .p-summary__benefit-head h2 {
    font-size: 1.8rem;
    text-align: left;
  }
}

#p-summary .p-summary__benefit-list-wrap {
  display: flex;
  justify-content: center;
  gap: 4rem;
  flex-wrap: wrap;
}

#p-summary .p-summary__benefit-list {
  display: inline-block;
}

#p-summary .p-summary__benefit-list p {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: #888;
  margin-bottom: 1rem;
}

#p-summary .p-summary__benefit-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#p-summary .p-summary__benefit-list li {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #333;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* #p-slider styles */
#p-slider {
  background-color: #f7f5f1;
  padding: 6rem 0;
  margin-top: 0;
}

#p-slider .p-slider__title {
  text-align: center;
  margin-bottom: 3.5rem;
  font-family: 'PP Mori', sans-serif;
  font-size: 2.75rem;
  line-height: 1.15;
}

#p-slider .p-slider__tab {
  background-color: #fff;
  border-radius: 10rem;
  padding: 6px;
  max-width: 680px;
  margin: 0 auto 4rem auto;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  position: relative;
}

#p-slider .p-slider__tab ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 2;
}

#p-slider .p-slider__tab ul li {
  flex: 1;
  text-align: center;
  padding: 0.85rem 1rem;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 500;
  transition: color 0.3s ease;
  color: #444;
}

#p-slider .p-slider__tab ul li.active {
  color: #fff;
}

#p-slider .p-slider__tab-active {
  background-color: #2a2a2a;
  border-radius: 10rem;
  position: absolute;
  top: 6px;
  bottom: 6px;
  z-index: 1;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-slider__ingredients-items {
  display: grid;
  grid-gap: 0 25px;
  align-items: center;
  background: #fff;
  border-radius: 14px;
  grid-template-columns: auto 1fr;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 4px 14px rgba(0,0,0,0.03);
}

.p-slider__ingredients-icon {
  background: #f8f6f2;
  border-radius: 100%;
  height: 70px;
  width: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.p-slider__ingredients-title {
  font-family: 'PP Mori', sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 0.4rem;
  color: #222;
}

.p-slider__ingredients-desc {
  color: #666;
  font-size: 0.9rem;
  line-height: 1.45;
  margin: 0;
}

.p-slider__ingredients-table table {
  width: 100%;
  border-collapse: collapse;
}

.p-slider__ingredients-table table th {
  border-bottom: 2px solid #3b3b3b;
  padding: 0.75rem 0.5rem;
  text-align: left;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #222;
}

.p-slider__ingredients-table table td {
  border-bottom: 1px solid #e5e5e5;
  padding: 0.85rem 0.5rem;
  font-size: 0.9rem;
  color: #444;
}

/* FAQ styling */
.faq_container {
  border-bottom: 1px solid #e0e0e0;
  padding: 1.25rem 0;
}

.faq_container .accordion__title {
  font-size: 1.15rem;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #222;
}

.faq_container .accordion__title::after {
  content: "+";
  font-size: 1.5rem;
  font-weight: 400;
  color: #666;
}

.faq_container.is--active .accordion__title::after {
  content: "−";
}

.faq_container .content {
  padding-top: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #666;
}

/* #p-notoxic guarantee section */
#p-notoxic {
  padding: 6rem 0;
  background: #fff;
  border-top: 1px solid #eaeaea;
}

#p-notoxic .p-notoxic__title {
  font-family: 'PP Mori', sans-serif;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 2rem;
}

@media (max-width: 767.98px) {
  #p-notoxic .p-notoxic__title {
    font-size: 2rem;
  }
}

#p-notoxic .p-notoxic__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

#p-notoxic .p-notoxic__list-icon {
  display: grid;
  grid-template-columns: 4rem 1fr;
  align-items: center;
  gap: 1.5rem;
}

#p-notoxic .p-notoxic__list-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: #1a1a1a;
  text-transform: none;
}

#p-notoxic .p-notoxic__list-text p {
  color: #666;
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0;
}

/* #p-featured section */
#p-featured {
  padding: 5rem 0 7rem 0;
  background: #fbf9f6;
  border-top: 1px solid #ebe5dc;
  overflow: hidden;
}

#p-featured h3 {
  font-family: 'Editorial New', serif;
  font-style: italic;
  font-size: 2.25rem;
  text-align: center;
  margin-bottom: 3.5rem;
}

#p-featured .product__card {
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  text-decoration: none;
  color: inherit;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  min-height: 380px;
}

#p-featured .product__card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.08);
}

/* ==========================================================================
   FLOATING WHATSAPP BUTTON & MULTI-CONSULTANT SHUFFLE POPUP WIDGET
   ========================================================================== */
.ipl-wa-widget {
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 999999;
  font-family: 'PP Mori', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Floating Trigger Button */
.ipl-wa-float-btn {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #25D366;
  color: #ffffff;
  border: 2.5px solid #ffffff;
  box-shadow: 0 10px 25px rgba(37, 211, 102, 0.4), 0 4px 12px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  outline: none;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

.ipl-wa-float-btn:hover {
  background: #20bd5a;
  transform: scale(1.08) translateY(-2px);
  box-shadow: 0 14px 30px rgba(37, 211, 102, 0.5), 0 6px 16px rgba(0, 0, 0, 0.2);
}

.ipl-wa-float-btn:active {
  transform: scale(0.96);
}

.ipl-wa-float-btn.is-active {
  background: #18181b;
  border-color: #ffffff;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.ipl-wa-float-btn .ipl-wa-icon-open,
.ipl-wa-float-btn .ipl-wa-icon-close {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.ipl-wa-float-btn .ipl-wa-icon-close {
  display: none;
}

.ipl-wa-float-btn.is-active .ipl-wa-icon-open {
  display: none;
}

.ipl-wa-float-btn.is-active .ipl-wa-icon-close {
  display: flex;
  transform: rotate(90deg);
}

/* Pulse Animation Ring */
.ipl-wa-float-btn::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid #25D366;
  opacity: 0.75;
  animation: iplWaPulse 2.2s infinite;
  pointer-events: none;
}

.ipl-wa-float-btn.is-active::before {
  display: none;
}

@keyframes iplWaPulse {
  0% { transform: scale(0.95); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 0; }
  100% { transform: scale(0.95); opacity: 0; }
}

/* Popup Modal Card */
.ipl-wa-popup {
  position: fixed;
  right: 26px;
  bottom: 98px;
  width: 360px;
  max-width: calc(100vw - 32px);
  background: #ffffff;
  border-radius: 22px;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.18), 0 4px 15px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px) scale(0.96);
  transform-origin: bottom right;
  transition: all 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 999998;
}

.ipl-wa-popup.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Popup Header */
.ipl-wa-header {
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #ffffff;
  padding: 1.4rem 1.4rem 1.25rem;
  position: relative;
}

.ipl-wa-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ipl-wa-header-brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ipl-wa-header-icon {
  width: 24px;
  height: 24px;
  color: #ffffff;
  flex-shrink: 0;
}

.ipl-wa-header-title {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
  color: #ffffff;
}

.ipl-wa-header-close {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: #ffffff;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0.75rem;
  transition: background 0.2s ease;
}

.ipl-wa-header-close:hover {
  background: rgba(255, 255, 255, 0.35);
}

.ipl-wa-header-sub {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.92);
  margin-top: 0.5rem;
  margin-bottom: 0;
  line-height: 1.45;
}

/* Status / Response Time Bar */
.ipl-wa-badge-bar {
  padding: 0.85rem 1.4rem 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #64748b;
  font-weight: 500;
}

.ipl-wa-badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #25D366;
  display: inline-block;
  box-shadow: 0 0 0 2px rgba(37, 211, 102, 0.25);
  animation: iplWaDot 1.8s infinite;
}

@keyframes iplWaDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.85); }
}

/* Contact List */
.ipl-wa-list {
  padding: 0.5rem 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  max-height: 330px;
  overflow-y: auto;
}

.ipl-wa-list::-webkit-scrollbar {
  width: 5px;
}

.ipl-wa-list::-webkit-scrollbar-track {
  background: transparent;
}

.ipl-wa-list::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 9999px;
}

/* Contact Card Item */
.ipl-wa-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.8rem 1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.ipl-wa-item:hover {
  background: #ffffff;
  border-color: #25D366;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(37, 211, 102, 0.16);
  color: inherit;
}

.ipl-wa-item-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #25D366;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(37, 211, 102, 0.3);
  transition: transform 0.25s ease;
}

.ipl-wa-item:hover .ipl-wa-item-avatar {
  transform: scale(1.08);
}

.ipl-wa-item-avatar svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.ipl-wa-item-body {
  flex: 1;
  min-width: 0;
}

.ipl-wa-item-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  line-height: 1.25;
}

.ipl-wa-item-phone {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.15rem 0 0;
  font-family: monospace, sans-serif;
  letter-spacing: -0.01em;
}

.ipl-wa-item-role {
  display: block;
  font-size: 0.68rem;
  color: #059669;
  font-weight: 600;
  margin-top: 0.2rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ipl-wa-item-arrow {
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.25s ease, color 0.25s ease;
  flex-shrink: 0;
}

.ipl-wa-item:hover .ipl-wa-item-arrow {
  color: #25D366;
  transform: translateX(3px);
}

@media (max-width: 575.98px) {
  .ipl-wa-widget {
    right: 18px;
    bottom: 18px;
  }
  .ipl-wa-popup {
    right: 16px;
    bottom: 86px;
    width: calc(100vw - 32px);
  }
  .ipl-wa-float-btn {
    width: 54px;
    height: 54px;
  }
}

