
:root {
  --rose-900: #573344;
  --rose-800: #74475d;
  --rose-700: #8f5870;
  --rose-600: #a86b82;
  --rose-500: #bd8297;
  --rose-300: #dfbdca;
  --rose-200: #ecd6df;
  --rose-100: #f7edf1;
  --peach-200: #f6dfd2;
  --cream: #fffaf7;
  --white: #ffffff;
  --ink: #2e2530;
  --muted: #756a72;
  --line: #eadfe4;
  --success: #4f7a64;
  --danger: #a34e5a;
  --shadow: 0 18px 55px rgba(87, 51, 68, .12);
  --shadow-soft: 0 10px 32px rgba(87, 51, 68, .08);
  --radius-lg: 30px;
  --radius-md: 20px;
  --radius-sm: 13px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(246, 223, 210, .55), transparent 28rem),
    linear-gradient(180deg, var(--cream), #fff 32rem);
  min-height: 100vh;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; }
[hidden] { display: none !important; }

.announcement {
  min-height: 34px;
  padding: 7px 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  text-align: center;
  color: #fff;
  background: var(--rose-900);
  font-size: .82rem;
  letter-spacing: .02em;
}
.dot { opacity: .55; }

.site-header {
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto;
  min-height: 86px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  color: inherit;
  text-decoration: none;
}
.brand-mark {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, var(--rose-600), var(--rose-900));
  font-family: Georgia, serif;
  font-size: 1.55rem;
  box-shadow: 0 8px 22px rgba(116, 71, 93, .22);
}
.brand-mark.small { width: 38px; height: 38px; font-size: 1.25rem; }
.brand strong {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.42rem;
  letter-spacing: .01em;
}
.brand small {
  display: block;
  color: var(--muted);
  font-size: .74rem;
  margin-top: 1px;
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: 6px;
}
.nav-link {
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 11px 13px;
  border-radius: 999px;
}
.nav-link:hover { background: var(--rose-100); color: var(--rose-800); }
.cart-trigger {
  justify-self: end;
  border: 1px solid var(--rose-200);
  background: var(--white);
  padding: 10px 12px 10px 14px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--rose-900);
  box-shadow: var(--shadow-soft);
}
.cart-trigger strong {
  min-width: 25px;
  height: 25px;
  padding: 0 6px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--rose-800);
  color: white;
  font-size: .78rem;
}

main { overflow: hidden; }
.hero {
  width: min(calc(100% - 32px), var(--max));
  margin: 30px auto 70px;
  min-height: 570px;
  padding: clamp(34px, 6vw, 76px);
  border-radius: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  align-items: center;
  gap: 50px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(247,237,241,.88)),
    linear-gradient(135deg, var(--peach-200), var(--rose-200));
  border: 1px solid rgba(255,255,255,.85);
  box-shadow: var(--shadow);
  position: relative;
}
.hero::before {
  content: "";
  width: 260px;
  height: 260px;
  position: absolute;
  left: -120px;
  bottom: -120px;
  border-radius: 50%;
  background: rgba(223, 189, 202, .28);
}
.eyebrow {
  margin: 0 0 10px;
  color: var(--rose-700);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .73rem;
  font-weight: 800;
}
.hero h1 {
  margin: 0;
  max-width: 720px;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--rose-900);
  font-size: clamp(2.7rem, 5.8vw, 5.35rem);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.04em;
}
.hero-text {
  max-width: 650px;
  margin: 26px 0 0;
  color: #625761;
  font-size: clamp(1rem, 1.8vw, 1.18rem);
  line-height: 1.7;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}
.button {
  min-height: 49px;
  padding: 0 21px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 750;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.button:hover { transform: translateY(-1px); }
.button.primary {
  background: linear-gradient(135deg, var(--rose-700), var(--rose-900));
  color: #fff;
  box-shadow: 0 12px 28px rgba(116, 71, 93, .22);
}
.button.secondary {
  border-color: var(--rose-200);
  color: var(--rose-800);
  background: rgba(255,255,255,.82);
}
.button.full { width: 100%; }
.hero-points {
  margin-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  color: var(--muted);
  font-size: .86rem;
}
.hero-card {
  min-height: 420px;
  position: relative;
  display: grid;
  place-items: center;
}
.hero-orbit {
  position: absolute;
  border: 1px solid rgba(143, 88, 112, .19);
  border-radius: 50%;
}
.orbit-one { width: 350px; height: 350px; }
.orbit-two { width: 260px; height: 260px; }
.hero-bottle {
  width: 190px;
  height: 300px;
  border-radius: 34px 34px 48px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--rose-900);
  text-align: center;
  background:
    linear-gradient(165deg, rgba(255,255,255,.96), rgba(236,214,223,.78)),
    var(--rose-100);
  border: 1px solid rgba(255,255,255,.95);
  box-shadow:
    inset 0 0 0 8px rgba(255,255,255,.35),
    0 28px 70px rgba(87, 51, 68, .18);
  position: relative;
}
.hero-bottle::before {
  content: "";
  width: 92px;
  height: 42px;
  position: absolute;
  top: -31px;
  border-radius: 14px 14px 7px 7px;
  background: linear-gradient(145deg, var(--rose-700), var(--rose-900));
  box-shadow: 0 10px 20px rgba(87,51,68,.18);
}
.hero-bottle span {
  font-size: .69rem;
  letter-spacing: .22em;
  font-weight: 800;
}
.hero-bottle strong {
  display: block;
  margin: 11px 18px 6px;
  font-family: Georgia, serif;
  font-size: 1.65rem;
}
.hero-bottle small { color: var(--muted); }
.floating-card {
  position: absolute;
  min-width: 112px;
  padding: 13px 18px;
  border-radius: 16px;
  background: rgba(255,255,255,.9);
  color: var(--rose-800);
  font-weight: 750;
  text-align: center;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(255,255,255,.9);
}
.floating-one { left: 0; top: 82px; transform: rotate(-6deg); }
.floating-two { right: 0; top: 132px; transform: rotate(7deg); }
.floating-three { right: 30px; bottom: 46px; transform: rotate(-3deg); }

.how-it-works,
.catalogue-section {
  width: min(calc(100% - 32px), var(--max));
  margin-left: auto;
  margin-right: auto;
}
.how-it-works { margin-bottom: 92px; }
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 27px;
}
.section-heading.compact { display: block; text-align: center; }
.section-heading h2 {
  margin: 0;
  color: var(--rose-900);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 500;
  letter-spacing: -.02em;
}
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 30px;
}
.steps article {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow-soft);
}
.steps article > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--rose-100);
  color: var(--rose-800);
  font-weight: 850;
}
.steps h3 { margin: 18px 0 8px; }
.steps p { margin: 0; color: var(--muted); line-height: 1.6; }

.catalogue-section { padding-bottom: 100px; }
.result-count { color: var(--muted); margin: 0 0 4px; }
.catalogue-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 13px;
  margin-bottom: 17px;
}
.search-box {
  min-height: 56px;
  border: 1px solid var(--line);
  border-radius: 17px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 0 15px;
  background: white;
  box-shadow: var(--shadow-soft);
}
.search-box > span { color: var(--rose-700); font-size: 1.4rem; }
.search-box input {
  width: 100%;
  height: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ink);
}
.search-box button {
  width: 31px;
  height: 31px;
  border: 0;
  border-radius: 50%;
  background: var(--rose-100);
  color: var(--rose-800);
}
#sortSelect {
  min-width: 210px;
  border: 1px solid var(--line);
  border-radius: 17px;
  padding: 0 16px;
  color: var(--ink);
  background: white;
  box-shadow: var(--shadow-soft);
}
.category-strip {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  padding: 5px 2px 14px;
  scrollbar-width: thin;
}
.category-chip {
  flex: 0 0 auto;
  padding: 10px 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink);
  background: white;
}
.category-chip:hover,
.category-chip.active {
  color: white;
  border-color: var(--rose-800);
  background: var(--rose-800);
}
.category-chip small { opacity: .75; }
.active-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 1px 0 18px;
  padding: 10px 14px;
  border-radius: var(--radius-sm);
  background: var(--rose-100);
  color: var(--rose-800);
}
.active-filter button {
  border: 0;
  background: transparent;
  color: inherit;
  text-decoration: underline;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.product-card {
  overflow: hidden;
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: white;
  box-shadow: var(--shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease;
}
.product-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.product-open {
  width: 100%;
  border: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  text-align: left;
}
.product-image-wrap {
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 40%, white, var(--rose-100));
}
.product-image {
  width: 86%;
  height: 86%;
  object-fit: contain;
  transition: transform .25s ease;
}
.product-card:hover .product-image { transform: scale(1.035); }
.product-category {
  position: absolute;
  top: 12px;
  left: 12px;
  max-width: calc(100% - 24px);
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--rose-800);
  background: rgba(255,255,255,.9);
  font-size: .69rem;
  font-weight: 750;
  box-shadow: 0 5px 15px rgba(87,51,68,.08);
}
.product-card-body { padding: 17px 17px 66px; }
.product-reference {
  color: var(--rose-700);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-name {
  min-height: 44px;
  margin: 7px 0 6px;
  font-size: 1rem;
  line-height: 1.35;
}
.product-format {
  min-height: 20px;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
}
.product-bottom {
  margin-top: 13px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 8px;
}
.product-price { color: var(--rose-900); font-size: 1.08rem; }
.details-link { color: var(--muted); font-size: .74rem; }
.add-button {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 15px;
  height: 39px;
  border: 0;
  border-radius: 12px;
  color: white;
  background: var(--rose-800);
  font-weight: 800;
}
.add-button:hover { background: var(--rose-900); }
.empty-state {
  padding: 65px 20px;
  text-align: center;
  color: var(--muted);
}
.empty-state > span { font-size: 2.8rem; }
.empty-state h3 { color: var(--ink); }
.load-more-wrap { display: flex; justify-content: center; margin-top: 34px; }

footer {
  padding: 34px max(22px, calc((100% - var(--max)) / 2));
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  border-top: 1px solid var(--line);
  background: var(--rose-100);
}
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand p, .footer-note { margin: 4px 0 0; color: var(--muted); font-size: .84rem; }
.footer-note { max-width: 460px; text-align: right; line-height: 1.55; }

.overlay {
  position: fixed;
  z-index: 40;
  inset: 0;
  background: rgba(44, 32, 40, .48);
  backdrop-filter: blur(4px);
}
.cart-drawer {
  width: min(460px, 100%);
  height: 100dvh;
  position: fixed;
  z-index: 50;
  right: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  padding: 25px;
  background: white;
  box-shadow: -20px 0 60px rgba(44,32,40,.18);
  transform: translateX(105%);
  visibility: hidden;
  transition: transform .23s ease, visibility 0s linear .23s;
}
.cart-drawer.open {
  transform: translateX(0);
  visibility: visible;
  transition: transform .23s ease, visibility 0s linear 0s;
}
.drawer-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.drawer-header h2 { margin: 0; font-family: Georgia, serif; font-size: 2rem; color: var(--rose-900); }
.icon-button, .dialog-close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  color: var(--rose-800);
  background: var(--rose-100);
  font-size: 1.5rem;
}
.cart-lines {
  overflow-y: auto;
  flex: 1;
  padding: 15px 0;
}
.cart-line {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 13px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.cart-line img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 13px;
  background: var(--rose-100);
}
.cart-line-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.cart-line h4 { margin: 0; font-size: .91rem; line-height: 1.35; }
.cart-line small { display: block; margin-top: 4px; color: var(--muted); }
.remove-line {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
}
.cart-line-bottom {
  margin-top: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.qty-control {
  display: inline-grid;
  grid-template-columns: 30px 35px 30px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  overflow: hidden;
}
.qty-control button { height: 30px; border: 0; background: white; color: var(--rose-800); }
.qty-control span { text-align: center; font-size: .85rem; }
.cart-empty {
  margin: auto;
  padding: 40px 10px;
  text-align: center;
  color: var(--muted);
}
.cart-empty > span { font-size: 3rem; }
.cart-empty h3 { color: var(--ink); }
.cart-summary {
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.cart-summary > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cart-summary strong { color: var(--rose-900); font-size: 1.25rem; }
.cart-summary p { color: var(--muted); font-size: .82rem; line-height: 1.5; }
.text-button {
  width: 100%;
  margin-top: 12px;
  padding: 8px;
  border: 0;
  background: transparent;
}
.text-button.danger { color: var(--danger); }

dialog {
  border: 0;
  padding: 0;
  color: inherit;
  background: white;
  box-shadow: 0 30px 100px rgba(44,32,40,.28);
}
dialog::backdrop {
  background: rgba(44,32,40,.5);
  backdrop-filter: blur(5px);
}
.product-dialog {
  width: min(920px, calc(100% - 26px));
  max-height: calc(100dvh - 30px);
  overflow: auto;
  border-radius: 28px;
}
.dialog-close {
  position: sticky;
  float: right;
  z-index: 4;
  top: 14px;
  right: 14px;
  margin: 14px 14px -54px 0;
}
.product-detail {
  display: grid;
  grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr);
}
.product-detail-image {
  min-height: 560px;
  padding: 55px 35px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 40%, white, var(--rose-100));
}
.product-detail-image img {
  width: 100%;
  max-height: 450px;
  object-fit: contain;
}
.product-detail-content { padding: 62px 54px 48px; }
.product-detail-content h2 {
  margin: 7px 0 10px;
  color: var(--rose-900);
  font-family: Georgia, serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.04;
  font-weight: 500;
}
.detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 17px 0;
}
.detail-meta span {
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--rose-100);
  color: var(--rose-800);
  font-size: .76rem;
}
.detail-description { color: var(--muted); line-height: 1.7; }
.detail-price { margin: 22px 0; color: var(--rose-900); font-size: 1.65rem; }
.note-pyramid {
  margin: 24px 0;
  display: grid;
  gap: 10px;
}
.note-pyramid div {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
.note-pyramid strong { display: block; margin-bottom: 4px; color: var(--rose-800); font-size: .78rem; }
.note-pyramid span { color: var(--muted); font-size: .84rem; line-height: 1.5; }
.detail-actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.copy-link {
  min-width: 49px;
  border: 1px solid var(--rose-200);
  border-radius: 999px;
  color: var(--rose-800);
  background: white;
}
.checkout-dialog {
  width: min(640px, calc(100% - 26px));
  max-height: calc(100dvh - 30px);
  overflow: auto;
  border-radius: 28px;
  padding: 45px;
}
.checkout-dialog h2 {
  margin: 4px 0 10px;
  color: var(--rose-900);
  font-family: Georgia, serif;
  font-size: 2.25rem;
  font-weight: 500;
}
.checkout-intro { color: var(--muted); line-height: 1.6; }
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-top: 24px;
}
.form-grid label > span { display: block; margin: 0 0 7px; font-size: .82rem; font-weight: 750; }
.form-grid input,
.form-grid select,
.form-grid textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 13px 14px;
  outline: none;
  background: #fff;
}
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus { border-color: var(--rose-600); box-shadow: 0 0 0 3px var(--rose-100); }
.full-field { grid-column: 1 / -1; }
.checkout-recap {
  margin: 19px 0 14px;
  padding: 14px;
  border-radius: 13px;
  display: flex;
  justify-content: space-between;
  background: var(--rose-100);
  color: var(--rose-800);
}
.consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
  align-items: start;
  margin: 15px 0 20px;
  color: var(--muted);
  font-size: .79rem;
  line-height: 1.45;
}
.form-status { min-height: 22px; margin: 12px 0 0; text-align: center; color: var(--danger); font-size: .84rem; }
.bot-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.success-panel { text-align: center; padding: 20px 5px 5px; }
.success-icon {
  width: 66px;
  height: 66px;
  margin: 0 auto 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--success);
  font-size: 2rem;
}
.success-panel h2 { margin-top: 5px; }
.success-panel p { color: var(--muted); line-height: 1.6; }
.request-number {
  margin: 20px 0;
  padding: 14px;
  border-radius: 13px;
  color: var(--rose-800);
  background: var(--rose-100);
  font-weight: 850;
  letter-spacing: .04em;
}
.toast {
  position: fixed;
  z-index: 100;
  left: 50%;
  bottom: 25px;
  transform: translate(-50%, 20px);
  padding: 12px 17px;
  border-radius: 999px;
  color: white;
  background: var(--rose-900);
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  transition: .2s ease;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .hero { grid-template-columns: 1fr; padding-bottom: 40px; }
  .hero-card { min-height: 360px; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .announcement { font-size: .72rem; }
  .site-header { min-height: 74px; }
  .brand small, .cart-trigger > span:nth-child(2) { display: none; }
  .hero { margin-top: 12px; border-radius: 27px; min-height: auto; padding: 34px 23px; }
  .hero h1 { font-size: clamp(2.4rem, 12vw, 4rem); }
  .hero-card { display: none; }
  .hero-points { display: grid; }
  .steps { grid-template-columns: 1fr; }
  .section-heading { display: block; }
  .result-count { margin-top: 8px; }
  .catalogue-toolbar { grid-template-columns: 1fr; }
  #sortSelect { min-height: 51px; width: 100%; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  .product-card-body { padding: 13px 13px 60px; }
  .product-name { font-size: .9rem; }
  .product-bottom { display: block; }
  .details-link { display: none; }
  .add-button { left: 12px; right: 12px; bottom: 12px; }
  footer { display: block; }
  .footer-note { margin-top: 20px; text-align: left; }
  .product-detail { grid-template-columns: 1fr; }
  .product-detail-image { min-height: 310px; padding: 45px 25px 25px; }
  .product-detail-image img { max-height: 260px; }
  .product-detail-content { padding: 32px 24px; }
  .checkout-dialog { padding: 42px 22px 25px; }
  .form-grid { grid-template-columns: 1fr; }
  .full-field { grid-column: auto; }
}
@media (max-width: 410px) {
  .product-grid { grid-template-columns: 1fr 1fr; }
  .product-image-wrap { aspect-ratio: 1 / 1.12; }
}


/* SENSORIA V1.3 · direction visuelle corail, or et végétal */
:root {
  --rose-900: #523329;
  --rose-800: #6f4437;
  --rose-700: #9b5949;
  --rose-600: #d96f5d;
  --rose-500: #e88974;
  --rose-300: #efb39f;
  --rose-200: #f5cfc1;
  --rose-100: #fff0e8;
  --peach-200: #f7d7bd;
  --cream: #fff9ea;
  --ink: #342820;
  --muted: #74655c;
  --line: #ead7c8;
  --gold: #b9833c;
  --gold-soft: #f1d8a7;
  --olive: #596037;
  --olive-soft: #e7e8d3;
  --coral: #df6e5a;
  --shadow: 0 22px 65px rgba(86,55,37,.16);
  --shadow-soft: 0 12px 34px rgba(86,55,37,.10);
}
body {
  background:
    radial-gradient(circle at 8% 5%, rgba(240,183,122,.22), transparent 28rem),
    radial-gradient(circle at 92% 20%, rgba(223,110,90,.12), transparent 28rem),
    linear-gradient(180deg,#fff9ea,#fffdf8 38rem,#fff);
}
.announcement { background: linear-gradient(90deg,#5b392e,#7b4c3c,#596037); }
.brand-emblem { width: 54px; height: 54px; object-fit: cover; border-radius: 50%; box-shadow: 0 8px 22px rgba(100,61,35,.18); }
.brand strong { color:#4d3328; font-size:1.55rem; }
.brand small { color:#8b6a55; letter-spacing:.03em; }
.nav-link:hover { background:#fff0df; color:#8b4b3e; }
.cart-trigger { border-color:#f0c7b9; background:#fffaf2; }
.cart-trigger strong,.add-button { background:linear-gradient(135deg,#df6e5a,#8b4b3e); }
.button.primary { background:linear-gradient(135deg,#df6e5a,#934c3e); box-shadow:0 14px 30px rgba(163,76,59,.25); }
.button.secondary { border-color:#e7b69e; color:#6f4437; background:rgba(255,250,239,.9); }
.eyebrow { color:#a7604f; }

.hero {
  min-height:620px;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  background:
    linear-gradient(120deg,rgba(255,252,240,.98),rgba(255,237,222,.90)),
    linear-gradient(135deg,#fff4dc,#f1c4aa);
  border:1px solid rgba(207,147,95,.28);
  overflow:hidden;
}
.hero::before { width:360px;height:360px;left:-170px;bottom:-180px;background:rgba(223,110,90,.13); }
.hero::after { content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-120px;top:-120px;background:rgba(89,96,55,.10); }
.hero h1 { color:#58382e; font-size:clamp(3rem,5.4vw,5rem); line-height:1.01; }
.hero-text { color:#68574d; }
.hero-points span { padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.66);border:1px solid rgba(224,176,145,.34); }
.hero-visual { min-height:480px;position:relative;z-index:1; }
.hero-logo-card { position:absolute;left:0;top:18px;width:48%;padding:12px;border-radius:30px;background:rgba(255,250,237,.82);box-shadow:var(--shadow-soft);transform:rotate(-3deg);border:1px solid rgba(219,171,119,.35); }
.hero-logo-card img { display:block;width:100%;border-radius:22px; }
.hero-chibi-card { position:absolute;right:0;bottom:-56px;width:72%;height:500px;overflow:hidden;border-radius:44px 44px 20px 20px;background:#e2b387;box-shadow:0 28px 70px rgba(74,44,26,.24);border:5px solid rgba(255,247,229,.85); }
.hero-chibi-card img { width:100%;height:100%;object-fit:cover;object-position:center 8%; }
.hero-colibri { position:absolute;right:-18px;top:12px;width:135px;mix-blend-mode:multiply;transform:rotate(7deg);filter:saturate(1.1); }
.hero-tag { position:absolute;padding:11px 16px;border-radius:999px;background:#fffaf0;color:#704536;font-weight:800;box-shadow:var(--shadow-soft);border:1px solid #efd4bb; }
.tag-one { left:8%;bottom:78px;transform:rotate(-6deg); }
.tag-two { right:1%;top:190px;transform:rotate(6deg);background:#fff0e8;color:#a65342; }
.tag-three { right:25%;bottom:3px;transform:rotate(-2deg);background:#f0f1de;color:#596037; }

.how-it-works { position:relative; }
.how-it-works::before { content:"";position:absolute;inset:-35px -100vw;background:linear-gradient(90deg,rgba(255,240,225,.55),rgba(232,235,211,.45));z-index:-1; }
.section-heading h2,.drawer-header h2,.product-detail-content h2,.checkout-dialog h2 { color:#58382e; }
.steps article { background:rgba(255,253,247,.9);border-color:#ead4c2;min-height:145px;display:flex;align-items:center;gap:18px; }
.steps article > span { flex:0 0 auto;background:linear-gradient(135deg,#f9d0c1,#f0e1b5);color:#784538; }
.steps h3 { margin:0;font-family:Georgia,serif;font-size:1.26rem;color:#443229;line-height:1.35; }

.universe-switch { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;padding:7px;border-radius:22px;background:#f7eadc;border:1px solid #ead5c2; }
.universe-switch button { min-height:68px;border:0;border-radius:17px;background:transparent;color:#715e52;text-align:left;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:800; }
.universe-switch button span { font-size:1.02rem; }
.universe-switch button small { font-weight:650;opacity:.74; }
.universe-switch button.active { color:#fff;background:linear-gradient(135deg,#df6e5a,#945040);box-shadow:0 10px 25px rgba(161,75,58,.22); }
.universe-switch button[data-universe="essentiels"].active { background:linear-gradient(135deg,#737a48,#4f5731); }
.search-box,#sortSelect { border-color:#e8d2c2;background:#fffdf8; }
.category-strip { scrollbar-color:#c98d6d transparent; }
.category-chip { border-color:#ead5c5;background:#fffdf7; }
.category-chip:hover,.category-chip.active { border-color:#9b5949;background:#9b5949; }
.active-filter { background:#fff0e7;color:#8e4c3d; }

.product-card { border-color:#ead6c7;background:#fffdf9; }
.product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#fff0e7 64%,#f1d3c3); }
.product-card.family-floral .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#ffe8ee 62%,#edc4d0); }
.product-card.family-fruite .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#fff0d9 62%,#f3c991); }
.product-card.family-hesperide .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#fff4c8 62%,#f0cb63); }
.product-card.family-boise .product-image-wrap,.product-card.family-cuir .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#eee3d5 62%,#c8a888); }
.product-card.family-oriental .product-image-wrap,.product-card.family-epice .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#f8ded0 62%,#d99a7d); }
.product-card.family-aromatique .product-image-wrap,.product-card.family-fougere .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#e9f0df 62%,#adbd8e); }
.product-card.family-chypre .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#edf0d5 62%,#b5b977); }
.product-card.family-musque .product-image-wrap { background:radial-gradient(circle at 50% 38%,#fff,#f4ecf3 62%,#d6c2d4); }
.product-badges { position:absolute;top:11px;left:11px;right:11px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px; }
.product-category { position:static;max-width:74%;color:#734839;background:rgba(255,253,247,.93); }
.product-range { padding:6px 10px;border-radius:999px;font-size:.69rem;font-weight:850;box-shadow:0 5px 15px rgba(74,44,26,.10); }
.product-range.luxe,.range-detail.luxe { color:#6d4d18;background:linear-gradient(135deg,#fff2bc,#e2b95c); }
.product-range.luxury,.range-detail.luxury { color:#fff;background:linear-gradient(135deg,#8a6536,#4f3620); }
.product-reference { color:#a05a49; }
.product-family { min-height:18px;margin:5px 0 3px;color:#8b6b5c;font-size:.76rem;font-weight:700; }
.product-format { font-size:.76rem;line-height:1.4; }
.product-price { color:#6f4437; }
.details-link { color:#9d6654;font-weight:700; }
.add-button { box-shadow:0 8px 18px rgba(150,71,55,.18); }

.product-detail-image { background:radial-gradient(circle at 50% 38%,#fff,#fff0e7); }
.product-detail.family-floral .product-detail-image { background:radial-gradient(circle at 50% 38%,#fff,#ffe8ee); }
.product-detail.family-boise .product-detail-image,.product-detail.family-cuir .product-detail-image { background:radial-gradient(circle at 50% 38%,#fff,#eadbca); }
.product-detail.family-oriental .product-detail-image,.product-detail.family-epice .product-detail-image { background:radial-gradient(circle at 50% 38%,#fff,#f6d7c8); }
.product-detail.family-aromatique .product-detail-image,.product-detail.family-fougere .product-detail-image { background:radial-gradient(circle at 50% 38%,#fff,#e6edd9); }
.detail-kicker { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.range-detail { padding:7px 11px;border-radius:999px;font-size:.75rem;font-weight:850; }
.detail-meta span { background:#fff0e7;color:#864c3e; }
.note-pyramid div { display:grid;grid-template-columns:35px 1fr;align-items:start;background:#fffdf8;border-color:#ead4c3; }
.note-pyramid i { width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#f5dfc9;color:#a66345;font-style:normal; }
.note-pyramid strong,.note-pyramid em { display:block; }
.note-pyramid em { color:var(--muted);font-size:.84rem;line-height:1.5;font-style:normal; }
.variant-selector { margin:24px 0 12px;padding:0;border:0; }
.variant-selector legend { margin-bottom:11px;color:#57382e;font-weight:850; }
.variant-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
.variant-options label { cursor:pointer; }
.variant-options input { position:absolute;opacity:0;pointer-events:none; }
.variant-options label > span { min-height:64px;padding:10px 12px;border:1px solid #ead6c8;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fffdf9;transition:.15s ease; }
.variant-options input:checked + span { border-color:#d46e5c;background:#fff0e8;box-shadow:0 0 0 3px rgba(223,110,90,.12); }
.variant-options strong,.variant-options small { display:block; }
.variant-options small { margin-top:2px;color:#8a7467;font-size:.72rem; }
.variant-options b { color:#6d4033;white-space:nowrap; }
.pocket-note { margin:10px 2px 0;color:#7b6b61;font-size:.76rem;line-height:1.45; }
.detail-price { color:#6f4437; }

.note-field small { display:block;margin:-2px 0 8px;color:#8a7468;font-size:.76rem;line-height:1.4; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:#d76f5e;box-shadow:0 0 0 3px #fff0e8; }
.checkout-recap,.request-number { background:#fff0e8;color:#884c3e; }
footer { background:linear-gradient(90deg,#fff0e4,#eef0dc);border-color:#e4d2c0; }
.footer-emblem { width:46px;height:46px; }

@media (max-width:980px){
  .hero { grid-template-columns:1fr; }
  .hero-visual { min-height:470px;max-width:620px;width:100%;margin:0 auto; }
}
@media (max-width:720px){
  .brand-emblem { width:44px;height:44px; }
  .hero { padding:34px 22px 24px; }
  .hero h1 { font-size:clamp(2.45rem,11vw,4rem); }
  .hero-visual { display:block;min-height:390px;margin-top:22px; }
  .hero-logo-card { width:47%;top:12px;left:-4px;border-radius:22px; }
  .hero-chibi-card { height:380px;width:76%;right:-15px;bottom:-28px;border-radius:32px 32px 18px 18px; }
  .hero-colibri { width:90px;right:-18px;top:1px; }
  .hero-tag { font-size:.75rem;padding:8px 11px; }
  .tag-one { left:0;bottom:66px; }.tag-two { right:-8px;top:160px; }.tag-three { right:18%;bottom:-3px; }
  .steps article { min-height:auto; }
  .universe-switch { grid-template-columns:1fr; }
  .universe-switch button { min-height:58px; }
  .variant-options { grid-template-columns:1fr; }
}
@media (max-width:410px){
  .hero-visual { min-height:340px; }
  .hero-chibi-card { height:330px; }
  .hero-logo-card { width:50%; }
}


/* V1.4.1 - visuel officiel logo + Chibi */
.hero-visual {
  min-height: 540px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.hero-brand-image {
  display: block;
  width: min(100%, 500px);
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: contain;
  border-radius: 32px;
  box-shadow: 0 28px 70px rgba(74,44,26,.20);
  border: 4px solid rgba(255,247,229,.88);
}
@media (max-width: 980px) {
  .hero-visual { min-height: 520px; max-width: 520px; }
}
@media (max-width: 720px) {
  .hero-visual { min-height: auto; margin-top: 24px; }
  .hero-brand-image { width: min(100%, 430px); border-radius: 25px; }
}
@media (max-width: 410px) {
  .hero-visual { min-height: auto; }
  .hero-brand-image { width: 100%; border-radius: 20px; border-width: 3px; }
}


/* V1.5.1 - liens utiles et bandeau simplifie */
.announcement {
  min-height: 36px;
  padding-inline: 20px;
  line-height: 1.35;
}
.hero-visual {
  flex-direction: column;
  gap: 14px;
}
.telegram-invite {
  width: min(100%, 500px);
  min-height: 58px;
  padding: 9px 15px 9px 10px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #563a31;
  text-decoration: none;
  border: 1px solid rgba(185,131,60,.28);
  border-radius: 18px;
  background: rgba(255,253,247,.86);
  box-shadow: 0 12px 30px rgba(86,55,37,.10);
  backdrop-filter: blur(8px);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.telegram-invite:hover {
  transform: translateY(-1px);
  border-color: rgba(35,158,217,.42);
  box-shadow: 0 16px 36px rgba(86,55,37,.14);
}
.telegram-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(145deg,#35aee2,#238ac4);
  box-shadow: 0 8px 18px rgba(35,138,196,.22);
}
.telegram-icon svg { width: 23px; height: 23px; fill: currentColor; }
.telegram-invite strong,
.telegram-invite small { display: block; }
.telegram-invite strong { font-size: .94rem; line-height: 1.25; }
.telegram-invite small { margin-top: 2px; color: #806c61; font-size: .75rem; line-height: 1.3; }
.footer-actions {
  max-width: 500px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
}
.full-catalogue-link {
  color: #6f4437;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 750;
  border-bottom: 1px solid rgba(111,68,55,.28);
}
.full-catalogue-link:hover { color: #9b5949; border-bottom-color: currentColor; }
@media (max-width:720px) {
  .announcement { padding-block: 8px; }
  .telegram-invite { width: min(100%, 430px); border-radius: 16px; }
  .footer-actions { margin-top: 18px; align-items: flex-start; }
  .footer-note { margin-top: 0; }
}


/* SENSORIA · sélections saisonnières, exclusivités et formulaire drive */
.button.ghost {
  color: #6f4437;
  background: rgba(255,255,255,.72);
  border: 1px dashed #d9a67a;
}
.button.ghost:hover { background: #fff; border-style: solid; }

.featured-selections {
  width: min(calc(100% - 32px), var(--max));
  margin: 0 auto 96px;
  scroll-margin-top: 24px;
}
.selection-block {
  position: relative;
  overflow: hidden;
  padding: 36px;
  border: 1px solid #ead7c8;
  border-radius: 34px;
  box-shadow: 0 22px 64px rgba(82,51,41,.09);
}
.selection-block + .selection-block { margin-top: 28px; }
.summer-block {
  background:
    radial-gradient(circle at 92% 8%, rgba(255,197,89,.28), transparent 22rem),
    radial-gradient(circle at 5% 100%, rgba(81,154,137,.18), transparent 24rem),
    linear-gradient(145deg,#fff9e8,#fffdf8 58%,#eef5e7);
}
.exclusives-block {
  background:
    radial-gradient(circle at 92% 12%, rgba(185,131,60,.18), transparent 21rem),
    radial-gradient(circle at 4% 100%, rgba(215,111,94,.15), transparent 22rem),
    linear-gradient(145deg,#fffdf7,#fff7f1 55%,#f4eddf);
}
.selection-heading { margin-bottom: 24px; }
.selection-heading h2 { margin-bottom: 8px; }
.selection-subtitle { margin: 0; color: var(--muted); max-width: 680px; line-height: 1.6; }

.selection-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
}
.selection-card {
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  border: 1px solid rgba(201,164,126,.42);
  border-radius: 22px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 30px rgba(82,51,41,.08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.selection-card:hover {
  transform: translateY(-5px);
  border-color: #d79a71;
  box-shadow: 0 20px 42px rgba(82,51,41,.14);
}
.selection-visual {
  position: relative;
  height: 188px;
  display: block;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 38%,#fff,#fff1e7 68%,#f0d7bf);
}
.selection-visual img {
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 12px 12px rgba(72,45,34,.14));
}
.duo-visual img {
  position: absolute;
  bottom: 8px;
  width: 58%;
  height: 87%;
}
.duo-visual img:first-child { left: 0; transform: rotate(-4deg); }
.duo-visual img:nth-child(2) { right: 0; transform: rotate(4deg); }
.trio-visual img {
  position: absolute;
  bottom: 7px;
  width: 48%;
  height: 84%;
}
.trio-visual img:first-child { left: -4%; transform: rotate(-7deg) scale(.9); }
.trio-visual img:nth-child(2) { left: 26%; z-index: 2; }
.trio-visual img:nth-child(3) { right: -4%; transform: rotate(7deg) scale(.9); }
.selection-visual b {
  position: absolute;
  z-index: 4;
  left: 12px;
  top: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(82,51,41,.88);
  font-size: .72rem;
  letter-spacing: .02em;
  box-shadow: 0 8px 18px rgba(82,51,41,.14);
}
.myth-card .selection-visual {
  background:
    radial-gradient(circle at 50% 30%,rgba(255,255,255,.16),transparent 35%),
    linear-gradient(145deg,#142332,#4d2741 58%,#93613c);
}
.myth-card .selection-visual img { filter: drop-shadow(0 12px 10px rgba(0,0,0,.3)); }
.myth-card .selection-visual b { color:#422b20; background:#f0d29a; }

.myth-grid-visual {
  height: 188px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  grid-template-rows: repeat(2,1fr);
  gap: 2px;
  padding: 3px;
  background: #1d2630;
}
.myth-grid-visual img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  opacity: .88;
  filter: saturate(.9);
}
.myth-grid-visual img:last-of-type { grid-column: span 2; }
.myth-grid-visual b {
  position: absolute;
  z-index: 4;
  left: 12px;
  top: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  color:#422b20;
  background:#f0d29a;
  font-size:.72rem;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}
.selection-copy {
  min-height: 136px;
  padding: 17px 18px 18px;
  display: flex;
  flex-direction: column;
}
.selection-copy small {
  color: #9b5949;
  font-weight: 750;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.selection-copy strong {
  margin: 8px 0 16px;
  font-family: Georgia,"Times New Roman",serif;
  font-size: 1.12rem;
  line-height: 1.3;
}
.selection-copy em {
  margin-top: auto;
  color: #6f4437;
  font-style: normal;
  font-size: .8rem;
  font-weight: 800;
}

.checkout-dialog .checkout-intro { max-width: 690px; }
#contactValueLabel { transition: color .15s ease; }
.form-grid input:invalid:not(:placeholder-shown) { border-color: #cf877d; }
.consent span { line-height: 1.45; }

@media (max-width: 1080px) {
  .selection-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .featured-selections { width: min(calc(100% - 22px),var(--max)); margin-bottom: 68px; }
  .selection-block { padding: 25px 17px 20px; border-radius: 27px; }
  .selection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
  .selection-visual,.myth-grid-visual { height: 158px; }
  .selection-copy { min-height: 128px; padding: 14px; }
  .selection-copy strong { font-size: 1rem; }
  .hero-actions .button.ghost { width: 100%; }
}
@media (max-width: 430px) {
  .selection-visual,.myth-grid-visual { height: 142px; }
  .selection-copy small { font-size: .61rem; }
  .selection-copy strong { font-size: .9rem; }
  .selection-copy em { font-size: .72rem; }
}

.product-card.brand-mytologik .product-image-wrap { background:#211d1b; }
.product-card.brand-mytologik .product-image { width:100%;height:100%;object-fit:cover; }
.product-card.brand-mytologik .product-category { color:#3f2a20;background:rgba(246,222,178,.92); }
.product-detail.brand-mytologik .product-detail-image { background:#211d1b; }
.product-detail.brand-mytologik .product-detail-image img { width:100%;height:100%;max-height:620px;object-fit:contain; }
.product-range.mytologik,.range-detail.mytologik { background:#2c2724;color:#f2d6a2; }
.product-range.special,.range-detail.special { background:#785060;color:#fff; }
.product-range.limitée,.range-detail.limitée { background:#211d1b;color:#e2b77d; }


/* SENSORIA · confort mobile, en-tête intelligent et verrouillage des fenêtres */
.site-header {
  position: sticky;
  top: 0;
  z-index: 32;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 0 0 22px 22px;
  transition: transform .22s ease, background-color .22s ease, box-shadow .22s ease, border-color .22s ease;
  will-change: transform;
}
.site-header.is-scrolled {
  background: rgba(255,250,242,.94);
  border-color: rgba(226,183,158,.62);
  box-shadow: 0 12px 34px rgba(82,51,41,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.site-header.is-hidden { transform: translateY(calc(-100% - 12px)); }
#catalogue, #selections, #steps { scroll-margin-top: 105px; }

html.scroll-locked { overflow: hidden; overscroll-behavior: none; }
body.scroll-locked {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}
.cart-drawer,
.cart-lines,
.product-dialog,
.checkout-dialog {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.product-dialog,
.checkout-dialog { touch-action: pan-y; }
.overlay { touch-action: none; }

.toast {
  z-index: 1200;
  width: max-content;
  max-width: min(430px, calc(100% - 24px));
  min-height: 58px;
  bottom: max(22px, calc(env(safe-area-inset-bottom) + 14px));
  padding: 10px 16px 10px 10px;
  border-radius: 18px;
  display: grid;
  grid-template-columns: 38px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  text-align: left;
  background: rgba(62,42,34,.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.toast-check {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #4f7a64;
  font-size: 1.2rem;
  font-weight: 900;
}
.toast strong,.toast small { display:block; }
.toast strong { font-size: .9rem; line-height: 1.2; }
.toast small { margin-top: 3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:rgba(255,255,255,.78); font-size:.72rem; }
.cart-trigger.cart-bump { animation: cart-bump .5s ease; }
@keyframes cart-bump { 0%,100%{transform:scale(1)} 35%{transform:scale(1.1) rotate(-2deg)} 65%{transform:scale(.98) rotate(1deg)} }

@media (max-width: 720px) {
  .site-header { width: calc(100% - 12px); min-height: 68px; padding: 6px 10px; border-radius: 0 0 18px 18px; }
  .site-header.is-scrolled .brand-emblem { width: 44px; height: 44px; }
  .site-header.is-scrolled .brand strong { font-size: 1.28rem; }
  #catalogue, #selections, #steps { scroll-margin-top: 84px; }
  .product-dialog,.checkout-dialog { max-height: calc(100dvh - 12px); width: calc(100% - 12px); border-radius: 22px; }
  .product-dialog { margin-block: 6px; }
  .dialog-close { top: 8px; right: 8px; margin: 8px 8px -48px 0; }
  .toast { bottom: max(14px, calc(env(safe-area-inset-bottom) + 10px)); }
}


/* SENSORIA V1.9 · informations légales, confidentialité et finitions */
.catalogue-load-error { grid-column: 1 / -1; }
.legal-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 15px;
}
.legal-links a {
  color: #6f4437;
  font-size: .76rem;
  font-weight: 750;
  text-decoration: none;
  border-bottom: 1px solid rgba(111,68,55,.25);
}
.legal-links a:hover { color: #9b5949; border-bottom-color: currentColor; }
.privacy-notice {
  margin: 15px 0 20px;
  color: var(--muted);
  font-size: .79rem;
  line-height: 1.5;
}
.privacy-notice a, .legal-card a { color: #8b4b3e; font-weight: 750; }

.legal-body { min-height: 100vh; }
.legal-header {
  width: min(var(--max), calc(100% - 36px));
  min-height: 88px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.legal-back { min-height: 44px; }
.legal-main {
  width: min(900px, calc(100% - 36px));
  margin: 25px auto 80px;
}
.legal-intro {
  padding: clamp(30px, 6vw, 58px);
  margin-bottom: 24px;
  border: 1px solid rgba(207,147,95,.28);
  border-radius: 28px;
  background: linear-gradient(125deg, rgba(255,252,240,.98), rgba(255,237,222,.9));
  box-shadow: var(--shadow-soft);
}
.legal-intro h1, .not-found-main h1 {
  margin: 4px 0 13px;
  color: #4d3328;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.25rem, 7vw, 4.5rem);
  line-height: .98;
}
.legal-intro > p:last-child { max-width: 680px; margin-bottom: 0; color: var(--muted); line-height: 1.7; }
.legal-card {
  padding: clamp(23px, 4vw, 34px);
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 30px rgba(86,55,37,.06);
}
.legal-card h2 { margin-top: 0; color: #5b392e; font-size: 1.28rem; }
.legal-card p, .legal-card li { color: var(--muted); line-height: 1.7; }
.legal-card ul { padding-left: 20px; }
.legal-details { margin: 0; }
.legal-details > div {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(0, 1.8fr);
  gap: 20px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(234,215,200,.72);
}
.legal-details > div:last-child { border-bottom: 0; }
.legal-details dt { color: #6f4437; font-weight: 800; }
.legal-details dd { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.legal-note { margin: 18px 0 0; padding: 13px 15px; border-radius: 13px; background: var(--rose-100); }
.legal-updated { margin: 28px 5px 0; color: var(--muted); font-size: .78rem; }
.legal-footer { align-items: flex-end; }
.not-found-main {
  width: min(760px, calc(100% - 36px));
  margin: 45px auto 80px;
  padding: 35px;
  text-align: center;
}
.not-found-main img { width: min(330px, 80%); max-height: 330px; object-fit: contain; }
.not-found-main p:not(.eyebrow) { color: var(--muted); }
.not-found-main .button { margin-top: 15px; }

@media (max-width: 720px) {
  .legal-links { justify-content: flex-start; }
  .legal-header { min-height: 76px; }
  .legal-header .brand strong { font-size: 1.3rem; }
  .legal-header .brand-emblem { width: 46px; height: 46px; }
  .legal-back { padding-inline: 14px; font-size: .78rem; }
  .legal-main { margin-top: 12px; }
  .legal-details > div { grid-template-columns: 1fr; gap: 5px; }
  .legal-footer { align-items: flex-start; }
}

/* SENSORIA V1.9.1 · accueil allégé, palette colibri et offres mises en avant */
:root {
  --colibri-green: #6f8061;
  --colibri-deep: #46573f;
  --colibri-coral: #df8b70;
  --colibri-peach: #f3c4a8;
  --colibri-gold: #c79a4d;
  --colibri-cream: #fff8e9;
}

.hero {
  min-height: 650px;
  grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr);
  gap: clamp(38px, 5vw, 68px);
  padding: clamp(42px, 5vw, 68px);
  background:
    radial-gradient(circle at 96% 4%, rgba(111,128,97,.30), transparent 24rem),
    radial-gradient(circle at 3% 96%, rgba(223,139,112,.23), transparent 23rem),
    radial-gradient(circle at 62% 12%, rgba(199,154,77,.13), transparent 17rem),
    linear-gradient(130deg, rgba(255,250,234,.98), rgba(255,242,229,.95) 54%, rgba(236,240,219,.92));
  border: 1px solid rgba(173,143,92,.34);
  box-shadow: 0 24px 70px rgba(73,67,42,.15);
}
.hero::before {
  width: 330px;
  height: 330px;
  left: -150px;
  bottom: -170px;
  background: rgba(223,139,112,.20);
}
.hero::after {
  content: "";
  position: absolute;
  width: 300px;
  height: 300px;
  right: -145px;
  top: -155px;
  border-radius: 50%;
  background: rgba(111,128,97,.18);
}
.hero-copy,
.hero-visual { position: relative; z-index: 1; }
.hero .eyebrow {
  margin-bottom: 13px;
  color: var(--colibri-deep);
  font-size: .82rem;
  letter-spacing: .15em;
}
.hero h1 {
  max-width: 650px;
  color: #543a30;
  font-size: clamp(3rem, 4.8vw, 4.65rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.hero-text {
  max-width: 650px;
  margin-top: 22px;
  color: #64584e;
  font-size: clamp(1rem, 1.45vw, 1.13rem);
  line-height: 1.68;
}
.hero-actions {
  margin-top: 18px;
}
.hero .button.primary {
  background: linear-gradient(135deg, var(--colibri-coral), #ad604e);
  box-shadow: 0 12px 28px rgba(159,88,69,.22);
}
.hero .button.secondary {
  color: var(--colibri-deep);
  border-color: rgba(70,87,63,.28);
  background: rgba(255,253,246,.88);
}
.hero .button.secondary:hover {
  border-color: rgba(70,87,63,.48);
  background: #fffdf7;
}

.offers-spotlight {
  width: 100%;
  min-height: 122px;
  margin-top: 27px;
  padding: 19px 18px 18px 22px;
  display: grid;
  grid-template-columns: minmax(0,1fr) 155px;
  align-items: center;
  gap: 14px;
  overflow: hidden;
  position: relative;
  text-align: left;
  color: #fffdf5;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255,213,139,.28), transparent 10rem),
    linear-gradient(125deg, #526345 0%, #77835c 52%, #bd765f 100%);
  box-shadow: 0 18px 36px rgba(70,87,63,.22);
  transition: transform .18s ease, box-shadow .18s ease;
}
.offers-spotlight::before {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: 73px;
  bottom: -100px;
  border-radius: 50%;
  background: rgba(255,255,255,.10);
}
.offers-spotlight:hover {
  transform: translateY(-2px);
  box-shadow: 0 23px 42px rgba(70,87,63,.28);
}
.offers-copy { position: relative; z-index: 2; min-width: 0; }
.offers-copy small,
.offers-copy strong,
.offers-copy em { display: block; }
.offers-copy small {
  margin-bottom: 6px;
  color: #ffe4ad;
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.offers-copy strong {
  max-width: 390px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.18rem, 2vw, 1.52rem);
  font-weight: 600;
  line-height: 1.22;
}
.offers-copy em {
  margin-top: 10px;
  color: rgba(255,255,255,.92);
  font-size: .81rem;
  font-style: normal;
  font-weight: 800;
}
.offers-products {
  align-self: stretch;
  position: relative;
  min-height: 88px;
  z-index: 2;
}
.offers-products img {
  position: absolute;
  bottom: -17px;
  width: 72px;
  height: 112px;
  object-fit: contain;
  filter: drop-shadow(0 10px 9px rgba(27,34,25,.26));
}
.offers-products img:nth-child(1) { left: -2px; transform: rotate(-8deg) scale(.92); }
.offers-products img:nth-child(2) { left: 42px; z-index: 2; transform: scale(1.08); }
.offers-products img:nth-child(3) { right: -1px; transform: rotate(8deg) scale(.91); }

.featured-selections {
  margin-top: 0;
}
#catalogue, #selections { scroll-margin-top: 105px; }

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { max-width: 760px; }
}
@media (max-width: 720px) {
  .hero { padding: 32px 21px 24px; }
  .hero h1 { font-size: clamp(2.55rem, 11vw, 3.75rem); }
  .hero-text { margin-top: 18px; line-height: 1.62; }
  .offers-spotlight {
    min-height: 116px;
    grid-template-columns: minmax(0,1fr) 112px;
    padding: 17px 13px 16px 17px;
    border-radius: 20px;
  }
  .offers-copy strong { font-size: 1.12rem; }
  .offers-products img { width: 56px; height: 96px; bottom: -15px; }
  .offers-products img:nth-child(1) { left: -6px; }
  .offers-products img:nth-child(2) { left: 28px; }
  .offers-products img:nth-child(3) { right: -5px; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; }
}
@media (max-width: 430px) {
  .offers-spotlight { grid-template-columns: minmax(0,1fr) 92px; }
  .offers-products img { width: 49px; height: 87px; }
  .offers-products img:nth-child(2) { left: 22px; }
}


/* V1.9.2 — harmonisation du titre d’accueil et rappel de marque */
.site-header .brand > span {
  display: grid;
  gap: 1px;
  line-height: 1;
}
.site-header .brand strong {
  font-size: 1.48rem;
  line-height: 1;
}
.site-header .brand small {
  display: block;
  margin-top: 4px;
  color: #7f6657;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.hero h1 {
  max-width: 620px;
  font-size: clamp(3rem, 3.7vw, 3.35rem);
  line-height: 1.06;
  letter-spacing: -.03em;
}
.hero h1 > span {
  display: block;
}
.hero h1 > span:last-child {
  margin-top: .08em;
}

@media (max-width: 980px) {
  .hero h1 { max-width: 680px; }
}
@media (max-width: 720px) {
  .site-header .brand strong { font-size: 1.23rem; }
  .site-header .brand small { font-size: .56rem; letter-spacing: .07em; }
  .hero h1 {
    font-size: clamp(2.42rem, 10.7vw, 3.55rem);
    line-height: 1.03;
  }
}


/* V1.9.3 — hiérarchie du mode d’emploi et lignes harmonisées */
.hero-how-title {
  margin: 24px 0 0;
  color: var(--colibri-deep);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.2;
}
.hero-how-title + .hero-text {
  margin-top: 10px;
}
.hero-text > span {
  display: block;
}
@media (min-width: 981px) {
  .hero-text > span {
    white-space: nowrap;
  }
}
@media (max-width: 980px) {
  .hero-text > span + span {
    margin-top: .18em;
  }
}
@media (max-width: 720px) {
  .hero-how-title {
    margin-top: 19px;
    font-size: 1.08rem;
  }
  .hero-how-title + .hero-text {
    margin-top: 8px;
  }
  .hero-text > span {
    display: inline;
  }
  .hero-text > span + span::before {
    content: " ";
  }
}

/* V1.9.4 — alignement final du bloc d’accueil sur ordinateur */
@media (min-width: 981px) {
  .hero {
    align-items: stretch;
  }
  .hero-copy {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    padding-top: clamp(38px, 4.2vw, 64px);
  }
  .hero-how-title {
    margin-top: 25px;
  }
  .hero-text {
    line-height: 1.62;
  }
  .offers-spotlight {
    margin-top: auto;
  }
  .hero-actions {
    margin-top: 18px;
    padding-top: 0;
    flex-wrap: nowrap;
  }
  .hero-visual {
    align-self: stretch;
    justify-content: flex-start;
  }
  .telegram-invite {
    margin-top: auto;
  }
}

/* V1.9.5 — l’offre du moment rejoint le groupe d’actions en bas du bloc sur ordinateur */

/* V1.9.6 — répartition verticale harmonisée sur ordinateur */
@media (min-width: 981px) {
  .hero-how-title {
    margin-top: 50px;
  }
  .hero-actions {
    margin-top: 27px;
  }
}

/* SENSORIA V1.9.12 · offres détaillées, pays et gamme maison COP */
.selection-card {
  width: 100%;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.offer-cover-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: none;
}
.offer-dialog {
  width: min(980px, calc(100% - 26px));
  max-height: calc(100dvh - 30px);
  overflow: auto;
  border-radius: 28px;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}
.offer-detail {
  display: grid;
  grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr);
}
.offer-detail-image {
  position: sticky;
  top: 0;
  min-height: 620px;
  height: 100dvh;
  max-height: 760px;
  padding: 40px 26px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 36%,#fff,#fff1e7 70%,#ead7c8);
}
.offer-detail-image img {
  width: 100%;
  height: 100%;
  max-height: 680px;
  object-fit: contain;
  border-radius: 18px;
}
.offer-detail-content { padding: 62px 50px 48px; }
.offer-detail-content h2 {
  margin: 7px 0 8px;
  color: var(--rose-900);
  font-family: Georgia,serif;
  font-size: clamp(2rem,4vw,3.15rem);
  line-height: 1.05;
  font-weight: 500;
}
.offer-subtitle { margin: 0 0 16px; color: #9b5949; font-weight: 800; }
.offer-intro { color: var(--muted); line-height: 1.7; }
.offer-facts { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 24px; }
.offer-facts span { padding:8px 11px; border-radius:999px; background:var(--rose-100); color:var(--rose-800); font-size:.78rem; font-weight:750; }
.offer-items { display:grid; gap:12px; }
.offer-item { padding:16px 17px; border:1px solid var(--line); border-radius:16px; background:#fffdfb; }
.offer-item-heading { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.offer-item h3 { margin:0; color:#58382e; font-size:1rem; line-height:1.35; }
.offer-item small { flex:0 0 auto; color:#9b7468; font-size:.72rem; font-weight:750; }
.offer-item p { margin:8px 0 0; color:var(--muted); font-size:.86rem; line-height:1.55; }
.offer-item .offer-family { color:#9b5949; font-weight:800; }
.offer-item .offer-notes strong { color:#6f4437; }
.offer-total { position:sticky; bottom:0; z-index:2; margin:24px -8px -8px; padding:17px; display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center; border:1px solid #ead7c8; border-radius:18px; background:rgba(255,253,249,.96); box-shadow:0 -10px 30px rgba(82,51,41,.08); backdrop-filter:blur(12px); }
.offer-total span small,.offer-total span strong { display:block; }
.offer-total span small { color:var(--muted); font-size:.75rem; }
.offer-total span strong { margin-top:3px; color:var(--rose-900); font-size:1.55rem; }
.country-help { grid-column:1/-1; margin:-5px 2px 0; color:#8a5f50; font-size:.79rem; line-height:1.5; }
.message-field textarea { min-height:105px; resize:vertical; }

@media (max-width: 760px) {
  .offer-dialog { width:calc(100% - 12px); max-height:calc(100dvh - 12px); margin-block:6px; border-radius:22px; }
  .offer-detail { display:block; }
  .offer-detail-image { position:relative; width:100%; height:290px; min-height:0; padding:25px 22px 14px; }
  .offer-detail-image img { max-height:250px; }
  .offer-detail-content { padding:30px 20px 24px; }
  .offer-item-heading { display:block; }
  .offer-item small { display:block; margin-top:5px; }
  .offer-total { grid-template-columns:1fr; }
  .offer-total .button { width:100%; }
}

/* V1.9.15 · fiches essentielles */
.detail-points,.detail-composition ul{margin:0 0 1.15rem;padding-left:1.2rem;display:grid;gap:.45rem;color:var(--ink-soft)}
.detail-points li::marker,.detail-composition li::marker{color:var(--terracotta)}
.detail-composition{margin:0 0 1.15rem;padding:1rem 1.05rem;border:1px solid rgba(105,64,47,.14);border-radius:18px;background:rgba(255,249,242,.72)}
.detail-composition h3{font-size:.92rem;margin:0 0 .7rem;color:var(--ink)}
.detail-composition ul{margin-bottom:0}


/* V1.9.16 · harmonisation de toutes les fiches produits */
.detail-information-card {
  margin: 1.05rem 0;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(105,64,47,.14);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,253,249,.98), rgba(255,247,239,.82));
  box-shadow: 0 9px 24px rgba(88,56,46,.045);
}
.detail-card-heading {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: .78rem;
}
.detail-card-heading > span {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f4dfcf;
  color: #925a45;
  font-weight: 800;
  line-height: 1;
}
.detail-card-heading h3 {
  margin: 0;
  color: var(--ink);
  font-size: .94rem;
  letter-spacing: .01em;
}
.detail-essential-card .detail-points,
.detail-composition ul {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: .55rem;
  color: var(--ink-soft);
}
.detail-essential-card .detail-points li,
.detail-composition li {
  padding-left: .12rem;
  line-height: 1.55;
}
.detail-essential-card .detail-points li::marker,
.detail-composition li::marker { color: var(--terracotta); }
.detail-notes-card { padding-bottom: 1.05rem; }
.detail-notes-card .note-pyramid { margin: 0; }
.detail-notes-card .note-pyramid em {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: normal;
  overflow-wrap: anywhere;
}
.detail-composition { margin: 1.05rem 0; }
.detail-description { display: none; }
@media (max-width: 760px) {
  .detail-information-card { padding: .9rem; border-radius: 16px; }
  .detail-essential-card .detail-points,
  .detail-composition ul { padding-left: 1.05rem; }
}


/* SENSORIA V1.9.17 · visuels combinés pour duos, kits et packs */
.combined-offer-visual {
  background: #f7efe6;
}
.combined-offer-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: none;
}
.combined-offer-visual.contain-image img {
  object-fit: contain;
}

/* V1.9.21 · Troisième univers Gammes et filtre secondaire par marque */
.universe-switch { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.universe-switch button[data-universe="gammes"].active {
  background: linear-gradient(135deg, #b68a45, #77602f);
  color: #fff;
}
.category-chip:disabled {
  cursor: not-allowed;
  opacity: .42;
  filter: grayscale(.2);
}
.brand-filter-panel {
  margin: 0 0 18px;
  border: 1px solid #ead5c2;
  border-radius: 18px;
  background: #fffaf5;
  overflow: hidden;
}
.brand-filter-panel[hidden] { display: none; }
.brand-filter-panel summary {
  min-height: 54px;
  padding: 0 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  cursor: pointer;
  color: var(--rose-900);
  font-weight: 800;
  list-style: none;
}
.brand-filter-panel summary::-webkit-details-marker { display: none; }
.brand-filter-panel summary::after {
  content: "+";
  font-size: 1.2rem;
  color: var(--rose-700);
}
.brand-filter-panel[open] summary::after { content: "−"; }
.brand-filter-panel summary small {
  margin-left: auto;
  color: var(--muted);
  font-size: .77rem;
  font-weight: 650;
}
.brand-filter-content {
  padding: 4px 17px 17px;
  border-top: 1px solid #f0e1d4;
}
.brand-filter-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 12px;
  padding-top: 13px;
}
.brand-filter-option {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 11px;
  cursor: pointer;
  color: var(--ink);
  font-size: .86rem;
}
.brand-filter-option:hover { border-color: #ead5c2; background: #fff; }
.brand-filter-option input {
  width: 17px;
  height: 17px;
  accent-color: var(--rose-800);
  flex: 0 0 auto;
}
.brand-filter-option span {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  flex: 1;
}
.brand-filter-option small { color: var(--muted); font-size: .7rem; }
.brand-clear {
  width: auto;
  margin: 13px 0 0 auto;
  color: var(--rose-800);
  font-weight: 750;
}
.product-name { max-height: none; overflow: visible; -webkit-line-clamp: unset; }

@media (max-width: 980px) {
  .brand-filter-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 740px) {
  .universe-switch { grid-template-columns: 1fr; }
  .brand-filter-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brand-filter-panel summary { align-items: flex-start; padding-top: 14px; padding-bottom: 14px; }
}
@media (max-width: 430px) {
  .brand-filter-options { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
}


/* SENSORIA V1.9.31 · accès rapides colorés et confirmation de partage */
.hero-shortcuts {
  width: 100%;
  margin-top: 27px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.hero-shortcut {
  width: 100%;
  height: 58px;
  min-height: 58px;
  padding: 10px 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.22;
}
.hero-novelty {
  width: min(100%, 500px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  border: 4px solid rgba(255,247,229,.88);
  border-radius: 32px;
  background: #fffaf2;
  box-shadow: 0 28px 70px rgba(74,44,26,.20);
}
.novelty-stage,
.novelty-slide,
.novelty-slide img,
.novelty-slide video {
  width: 100%;
  height: 100%;
}
.novelty-stage { position: relative; }
.novelty-slide {
  display: block;
  overflow: hidden;
  position: relative;
  padding: 0;
  border: 0;
  background: #fffaf2;
}
.novelty-slide img,
.novelty-slide video {
  display: block;
  object-fit: contain;
  object-position: center;
}
.novelty-slide-link { cursor: pointer; }
.novelty-link-label {
  max-width: calc(100% - 38px);
  position: absolute;
  left: 50%;
  bottom: 25px;
  transform: translateX(-50%);
  padding: 10px 15px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  background: rgba(76,49,39,.84);
  box-shadow: 0 9px 24px rgba(50,31,25,.22);
  backdrop-filter: blur(8px);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
.novelty-arrow {
  width: 42px;
  height: 42px;
  position: absolute;
  top: 50%;
  z-index: 3;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  color: #5a3a31;
  background: rgba(255,251,244,.88);
  box-shadow: 0 8px 24px rgba(66,44,35,.18);
  font-family: Georgia, serif;
  font-size: 1.8rem;
  line-height: 1;
}
.novelty-arrow:hover { background: #fff; }
.novelty-prev { left: 12px; }
.novelty-next { right: 12px; }
.novelty-dots {
  position: absolute;
  left: 50%;
  bottom: 9px;
  z-index: 4;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 6px;
}
.novelty-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(87,51,68,.30);
  box-shadow: 0 0 0 1px rgba(255,255,255,.55);
  transition: width .18s ease, background .18s ease;
}
.novelty-dot.active {
  width: 23px;
  background: rgba(87,51,68,.88);
}
.offer-total-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.offer-total-actions .button { white-space: nowrap; }
.offer-total-actions .copy-link {
  width: 49px;
  height: 49px;
  flex: 0 0 49px;
  display: grid;
  place-items: center;
  padding: 0;
}
#catalogue, #selections, #exclus, #offres { scroll-margin-top: 105px; }

@media (min-width: 981px) {
  .hero-shortcuts { margin-top: auto; padding-top: 27px; }
}
@media (max-width: 720px) {
  .hero-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 22px;
  }
  .hero-shortcut {
    height: 58px;
    min-height: 58px;
    padding: 9px 11px;
    font-size: .84rem;
  }
  .hero-novelty {
    width: min(100%, 430px);
    border-radius: 25px;
  }
  .novelty-link-label {
    bottom: 22px;
    max-width: calc(100% - 30px);
    padding: 9px 12px;
    font-size: .72rem;
    white-space: normal;
  }
  .novelty-arrow { width: 38px; height: 38px; }
  .offer-total-actions { width: 100%; }
}
@media (max-width: 410px) {
  .hero-shortcuts { gap: 7px; }
  .hero-shortcut { height: 58px; min-height: 58px; padding-inline: 8px; font-size: .78rem; }
  .hero-novelty { width: 100%; border-width: 3px; border-radius: 20px; }
  .novelty-arrow { width: 34px; height: 34px; font-size: 1.55rem; }
  .novelty-prev { left: 8px; }
  .novelty-next { right: 8px; }
}

/* Accès rapides : hiérarchie et couleurs validées */
.hero-shortcut {
  position: relative;
  overflow: hidden;
  border-width: 1px;
  box-shadow: 0 10px 24px rgba(83, 52, 42, .12);
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.hero-shortcut::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255,255,255,.28), transparent 42%);
}
.hero-shortcut:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(83, 52, 42, .18);
  filter: saturate(1.06);
}
.hero .hero-shortcut-offers {
  color: #fff;
  border-color: rgba(159, 70, 54, .34);
  background: linear-gradient(135deg, #df6e5a, #a94f40);
}
.hero .hero-shortcut-exclusives {
  color: #fff;
  border-color: rgba(67, 82, 50, .38);
  background: linear-gradient(135deg, #7b8959, #4d5f3d);
}
.hero .hero-shortcut-perfumes {
  color: #6f3f35;
  border-color: rgba(208, 126, 102, .38);
  background: linear-gradient(135deg, #f7d6c5, #efaa91);
}
.hero .hero-shortcut-care {
  color: #405238;
  border-color: rgba(104, 124, 76, .34);
  background: linear-gradient(135deg, #eef0d8, #c9d3a8);
}
.hero .hero-shortcut-offers:hover,
.hero .hero-shortcut-exclusives:hover,
.hero .hero-shortcut-perfumes:hover,
.hero .hero-shortcut-care:hover {
  border-color: rgba(78, 54, 43, .30);
}

/* Le retour de copie reste visible au-dessus de la fiche ouverte. */
.product-dialog .toast,
.offer-dialog .toast,
.checkout-dialog .toast {
  z-index: 9999;
}

