/* Native controls for the captured storefront, scoped to their own components. */
#__nuxt [data-testid="category-product-card"][hidden],
#__nuxt .caudalie-sort-menu[hidden],
#__nuxt .grid > [hidden] { display: none !important; }
#__nuxt .caudalie-sort-menu {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 45;
  width: 215px; padding: 8px 0; border: 1px solid #dedbd7;
  background: #fff; color: #2d1946; border-radius: 4px; box-shadow: 0 6px 20px #2d19461a;
}
#__nuxt .caudalie-sort-menu button { display: block; width: 100%; padding: 10px 16px; text-align: left; font-weight: 300; }
#__nuxt .caudalie-sort-menu button:hover,
#__nuxt .caudalie-sort-menu button[aria-pressed="true"] { background: #f4f3f1; }
#__nuxt .caudalie-sort-menu button:focus-visible,
.caudalie-filter-dialog :is(button, input):focus-visible,
#__nuxt .caudalie-description-toggle:focus-visible { outline: 2px solid #2d1946; outline-offset: 3px; }
#__nuxt .caudalie-result-status { font-size: 14px; font-weight: 300; margin-top: 16px; color: #3b3e3d; }
.caudalie-filter-dialog {
  margin: 0 0 0 auto; width: min(450px, 100%); max-width: 100%; height: 100dvh;
  max-height: 100dvh; padding: 26px; border: 0; color: #2d1946; background: #fff;
  font: inherit; overflow-y: auto;
}
.caudalie-filter-dialog::backdrop { background: #0006; }
.caudalie-filter-dialog form { display: flex; flex-direction: column; gap: 26px; min-height: 100%; }
.caudalie-filter-heading { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #dedbd7; padding-bottom: 16px; }
.caudalie-filter-heading h2 { font-size: 24px; font-weight: 700; }
.caudalie-filter-heading button { font-size: 32px; line-height: 1; padding: 2px 6px; }
.caudalie-filter-dialog fieldset { border: 0; padding: 0; min-width: 0; }
.caudalie-filter-dialog legend { font-weight: 700; font-size: 18px; margin-bottom: 12px; }
.caudalie-filter-dialog [data-filter-ranges] label { display: flex; gap: 10px; align-items: center; padding: 6px 0; font-weight: 300; }
.caudalie-filter-dialog input[type="checkbox"] { width: 18px; height: 18px; accent-color: #2d1946; }
.caudalie-price-fields { display: flex; gap: 16px; }
.caudalie-price-fields label { display: flex; flex-direction: column; gap: 7px; font-size: 14px; width: 50%; }
.caudalie-price-fields input { border: 1px solid #aaa; border-radius: 3px; width: 100%; height: 42px; padding: 6px 10px; background: #fff; color: #2d1946; }
.caudalie-filter-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 18px; border-top: 1px solid #dedbd7; }
.caudalie-filter-actions [data-filter-reset] { text-decoration: underline; font-size: 14px; }
.caudalie-filter-actions [type="submit"] { background: #2d1946; color: #fff; border-radius: 4px; padding: 12px 18px; }
#__nuxt .caudalie-description { max-height: 160px; overflow: hidden; position: relative; }
#__nuxt .caudalie-description:not(.is-expanded)::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 35px; background: linear-gradient(transparent, #fff); pointer-events: none; }
#__nuxt .caudalie-description.is-expanded { max-height: none; }
#__nuxt .caudalie-description-toggle { display: inline-block; margin-top: 12px; text-decoration: underline; font-size: 14px; color: #2d1946; }
@media (max-width: 600px) { .caudalie-filter-dialog { padding: 20px; } }

body:has(.caudalie-filter-dialog[open]) { overflow: hidden; }
#__nuxt [data-testid="wishlist-button"].is-wishlisted .empty { display: none; }
#__nuxt [data-testid="wishlist-button"].is-wishlisted .not-empty { display: inline-block; }
:is([data-caudalie-recommendations], [data-caudalie-routine]) .carousel-slider {
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  touch-action: pan-x pan-y;
}
:is([data-caudalie-recommendations], [data-caudalie-routine]) .carousel-slider::-webkit-scrollbar { display: none; }
:is([data-caudalie-recommendations], [data-caudalie-routine]) .swiper-slide { scroll-snap-align: start; }
