/** Shopify CDN: Minification failed

Line 631:17 Unexpected "}"

**/
/* ==========================================================================
   SIMPLE — base.css
   Structure inspired by large fashion e-commerce (announcement bar, sticky
   header with mega menu, full-bleed hero, dense product grids, campaign
   tiles), tuned for a small-batch Brussels label: quiet type, warm neutrals.
   ========================================================================== */

:root {
  --c-bg: #f4f2ed;
  --c-fg: #111111;
  --c-paper: #e9e6df;
  --c-accent: #5b4636;
  --c-muted: color-mix(in srgb, var(--c-fg) 55%, var(--c-bg));
  --c-line: color-mix(in srgb, var(--c-fg) 14%, var(--c-bg));
  --font: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --page-max: 1800px;
  --gutter: clamp(16px, 2.4vw, 40px);
  --announce-h: 32px;
  --header-h: 60px;
  --header-total: calc(var(--announce-h) + var(--header-h));
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--c-bg);
  color: var(--c-fg);
  font-family: var(--font);
  font-size: 13px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, video, svg { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, p { margin: 0; }
ul { list-style: none; margin: 0; padding: 0; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--c-fg); color: var(--c-bg); padding: 8px 12px; }
.skip-link:focus { left: 8px; top: 8px; }
:focus-visible { outline: 1px solid var(--c-fg); outline-offset: 2px; }

.page-width { width: 100%; max-width: var(--page-max); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.page--narrow { max-width: 760px; }
.muted { color: var(--c-muted); }
.placeholder { width: 100%; height: 100%; background: var(--c-paper); fill: color-mix(in srgb, var(--c-fg) 18%, var(--c-paper)); }

/* ---------- Type ---------- */
.eyebrow {
  display: block;
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.section-title {
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1.05;
  text-transform: uppercase;
}
.page-title {
  font-size: clamp(28px, 3.4vw, 52px);
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1;
  text-transform: uppercase;
  margin: 48px 0 32px;
}
.rte p + p { margin-top: 1em; }
.rte a { text-decoration: underline; text-underline-offset: 3px; }
.link-arrow {
  font-size: 11px; letter-spacing: .05em; text-transform: uppercase;
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
  transition: opacity .2s;
}
.link-arrow::after { content: " \2192"; }
.link-arrow:hover { opacity: .6; }

/* ---------- Buttons & chips ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 46px; padding: 0 30px; white-space: nowrap;
  font-size: 11px; letter-spacing: .02em; text-transform: uppercase; font-weight: 500;
  border: 1px solid currentColor;
  transition: background .25s var(--ease), color .25s var(--ease), border-color .25s;
}
.btn--dark { background: var(--c-fg); color: var(--c-bg); border-color: var(--c-fg); }
.btn--dark:hover { background: var(--c-bg); color: var(--c-fg); }
.btn--light { background: #fff; color: #111; border-color: #fff; }
.btn--light:hover { background: transparent; color: #fff; }
.btn--ghost { background: transparent; color: var(--c-fg); border-color: var(--c-line); }
.btn--ghost:hover { border-color: var(--c-fg); }
.btn--block { width: 100%; }
.btn[disabled] { opacity: .35; pointer-events: none; }

.chip {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 42px; height: 34px; padding: 0 10px;
  font-size: 12px;
  background: var(--c-bg); border: 1px solid var(--c-line);
  transition: border-color .2s, background .2s, color .2s;
}
.chip:hover { border-color: var(--c-fg); }
.chip[disabled] { color: var(--c-muted); text-decoration: line-through; pointer-events: none; }
.chip--wide { padding: 0 16px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.chip.is-loading { opacity: .5; }

.badge {
  display: inline-block; padding: 4px 8px;
  font-size: 10px; letter-spacing: .05em; text-transform: uppercase;
  background: var(--c-bg); color: var(--c-fg);
}
.badge--accent { background: var(--c-accent); color: #fff; }
/* Product labels (Précommande, Soldes): plain coloured text, no frame */
.card__badges .badge, .product__info .badge { background: none; padding: 0; font-size: 12px; letter-spacing: .04em; color: var(--c-badge, #fff); }
/* on the product page the label sits on white: keep it readable */
.product__info .badge { color: var(--c-fg); }

.icon { width: 20px; height: 20px; }
.icon--sm { width: 12px; height: 12px; }
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; position: relative; }

/* ---------- Announcement ---------- */
/* Announcement bar: sits at the very top of the page (scrolls away, see theme.js);
   one message at a time, next one every few seconds. */
.announce { height: var(--announce-h); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; overflow: hidden; }
.announce__track { position: relative; height: 100%; }
.announce__item { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 16px; text-align: center; white-space: nowrap; opacity: 0; transform: translateY(8px); transition: opacity .45s var(--ease), transform .45s var(--ease); }
.announce__item.is-active { opacity: 1; transform: none; }
.announce__item.is-leaving { opacity: 0; transform: translateY(-8px); }

/* ---------- Header ---------- */
/* V2: floating, transparent header, all elements white */
.section-header { position: fixed; top: 0; left: 0; right: 0; z-index: 40; pointer-events: none; }
.header { background: transparent; color: #111; transform: translate3d(0, calc(var(--header-shift, 0px) * -1), 0); will-change: transform; }
.header .announce, .header .header__inner, .header .mega, .section-header .drawer.is-open { pointer-events: auto; }
.header .announce { color: inherit; }
/* Mode "invert": white over images, black over light backgrounds.
   The blend must sit on the fixed layer itself to reach the page beneath. */
/* Header tone: solid black by default, solid white when it sits on a dark image.
   No blending, no transparency: theme.js reads data-header-tone on what is under the header. */
.header .header__logo-img { filter: invert(1); }
.section-header.is-light .header { color: #fff; }
.section-header.is-light .header .header__logo-img { filter: none; }
.header .cart-count { background: #111; color: #fff; }
.section-header.is-light .header .cart-count { background: #fff; color: #111; }
/* content under the fixed header on pages that don't open on a full-bleed hero */
body:not(.template-index) main { padding-top: var(--header-total); }
body:not(.template-index) main:has(> .shopify-section:first-child [data-page-banner]),
body:not(.template-index) main:has(> [data-page-banner]) { padding-top: 0; }
.header__inner {
  display: grid; grid-template-columns: 1fr auto 1fr; grid-template-areas: "nav logo icons"; align-items: center; gap: 32px;
  height: var(--header-h);
}
/* logo centred; menu on the left, icons on the right */
.header__burger { grid-area: nav; }
.header__logo { grid-area: logo; justify-self: center; }
.header__nav { grid-area: nav; justify-self: start; }
.header__icons { grid-area: icons; justify-self: end; }
.header__burger { display: inline-flex; justify-self: start; width: auto; padding: 0; }
.header__burger-label { font-size: 14px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500; }
/* all categories are grouped behind MENU (drawer), at every screen size */
.header__nav { display: none; }
.header__wordmark { font-size: 20px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.header__logo { display: block; line-height: 0; }
.header__logo-img { width: var(--logo-w, 120px); height: auto; }
/* bundled logo is white: invert it wherever it sits on a light background */
.drawer__logo { width: 96px; height: auto; filter: invert(1); }
.drawer__home { display: block; line-height: 0; }
.logo--dark { width: 180px; height: auto; filter: invert(1); }
.header__inner { position: relative; }
.header__icons { display: flex; align-items: center; gap: 4px; margin-right: -10px; }
/* Playful cart: a wicker laundry basket (handles on the sides). 0 empty, 1 a folded piece on top, then the pile keeps rising one piece per item (6 max) */
.icon--bag { overflow: visible; }
.bag-item { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; transform: translateY(-140%) rotate(-6deg); transition: opacity .2s, transform .6s cubic-bezier(.34, 1.6, .64, 1); }
.header__cart[data-cart-state="1"] .bag-item--1,
.header__cart[data-cart-state="2"] .bag-item--1, .header__cart[data-cart-state="2"] .bag-item--2,
.header__cart[data-cart-state="3"] .bag-item--1, .header__cart[data-cart-state="3"] .bag-item--2, .header__cart[data-cart-state="3"] .bag-item--3,
.header__cart[data-cart-state="4"] .bag-item--1, .header__cart[data-cart-state="4"] .bag-item--2, .header__cart[data-cart-state="4"] .bag-item--3, .header__cart[data-cart-state="4"] .bag-item--4,
.header__cart[data-cart-state="5"] .bag-item--1, .header__cart[data-cart-state="5"] .bag-item--2, .header__cart[data-cart-state="5"] .bag-item--3, .header__cart[data-cart-state="5"] .bag-item--4, .header__cart[data-cart-state="5"] .bag-item--5,
.header__cart[data-cart-state="6"] .bag-item--1, .header__cart[data-cart-state="6"] .bag-item--2, .header__cart[data-cart-state="6"] .bag-item--3, .header__cart[data-cart-state="6"] .bag-item--4, .header__cart[data-cart-state="6"] .bag-item--5, .header__cart[data-cart-state="6"] .bag-item--6 { opacity: 1; transform: none; }
/* Playful cart: grows with the number of items, bounces on every add */
.header__cart .icon { transform: scale(var(--cart-scale, 1)); transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); transform-origin: 50% 60%; }
.header__cart.is-bump .icon { animation: cart-bump .7s cubic-bezier(.34, 1.56, .64, 1); }
/* "puff": the bag inflates sideways like a balloon, then settles a bit bigger */
@keyframes cart-bump {
  0% { transform: scale(var(--cart-scale, 1)) rotate(0); }
  20% { transform: scale(calc(var(--cart-scale, 1) * 1.5), calc(var(--cart-scale, 1) * 1.25)) rotate(-8deg); }
  45% { transform: scale(calc(var(--cart-scale, 1) * .88), calc(var(--cart-scale, 1) * 1.08)) rotate(6deg); }
  70% { transform: scale(calc(var(--cart-scale, 1) * 1.12), calc(var(--cart-scale, 1) * .95)) rotate(-2deg); }
  100% { transform: scale(var(--cart-scale, 1)) rotate(0); }
}
.cart-plus { position: absolute; left: 50%; top: 0; font-size: 11px; font-weight: 500; pointer-events: none; animation: cart-plus .9s ease-out forwards; }
@keyframes cart-plus { 0% { opacity: 0; transform: translate(-50%, 6px); } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -22px); } }
@media (prefers-reduced-motion: reduce) { .header__cart.is-bump .icon, .cart-plus { animation: none; } .bag-item, .bag-body { transition: none; } }
.cart-count {
  position: absolute; top: 4px; right: 2px;
  min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
  background: #fff; color: #111;
  font-size: 10px; line-height: 16px; text-align: center;
  transition: transform .4s cubic-bezier(.34, 1.56, .64, 1);
}
/* as soon as the basket holds something, the count steps aside so what sticks out stays visible */
.header__cart[data-cart-state]:not([data-cart-state="0"]) .cart-count { transform: translate(5px, 21px); }

.nav { display: flex; gap: 28px; height: var(--header-h); }
.nav__item { display: flex; align-items: center; }
.nav__link {
  position: relative; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500;
  padding: 8px 0;
}
.nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: currentColor;
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease);
}
.nav__item:hover .nav__link::after, .nav__link.is-active::after { transform: scaleX(1); }

.mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: rgba(17, 17, 17, .78); color: #fff;
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s .25s;
}
.nav__item--mega:hover .mega, .nav__item--mega:focus-within .mega {
  opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.mega__inner { display: grid; grid-template-columns: 1fr auto; gap: 40px; padding-top: 32px; padding-bottom: 40px; }
.mega__promos { display: flex; gap: 12px; }
.mega__promos:empty { display: none; }
.mega__cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 24px 40px; align-content: start; }
.mega__heading { display: block; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500; margin-bottom: 12px; }
.mega__list li + li { margin-top: 6px; }
.mega__list a { color: rgba(255, 255, 255, .62); transition: color .2s; }
.mega__list a:hover { color: #fff; }
.mega__promo { position: relative; display: block; width: 220px; aspect-ratio: 4 / 5; overflow: hidden; background: rgba(255, 255, 255, .08); }
.mega__promo img, .mega__promo svg { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
@media (hover: hover) { .mega__promo:hover img { transform: scale(1.04); } }
.mega__promo::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.45)); }
.mega__promo-label { z-index: 1; position: absolute; left: 14px; bottom: 12px; color: #fff; font-size: 15px; font-weight: 500; text-transform: uppercase; }
.mega__promo-label .eyebrow { font-size: 10px; font-weight: 400; margin-bottom: 4px; opacity: .8; }

/* Drawer (mobile menu) */
.drawer { position: fixed; inset: 0; z-index: 60; visibility: hidden; }
.drawer.is-open { visibility: visible; }
.drawer__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.3); opacity: 0; transition: opacity .3s; }
.drawer.is-open .drawer__overlay { opacity: 1; }
.drawer__panel {
  position: absolute; top: 0; bottom: 0; left: 0; width: min(420px, 88vw);
  background: var(--c-bg); color: var(--c-fg); display: flex; flex-direction: column;
  transform: translateX(-100%); transition: transform .35s var(--ease);
}
.drawer.is-open .drawer__panel { transform: none; }
.drawer__head { display: flex; justify-content: space-between; align-items: center; height: var(--header-h); padding: 0 16px; border-bottom: 1px solid var(--c-line); }
.drawer__nav { flex: 1; overflow-y: auto; padding: 8px 16px; }
.drawer__nav > li { border-bottom: 1px solid var(--c-line); }
.drawer__nav > li > a, .drawer__nav summary {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 0; font-size: 15px; letter-spacing: .02em; text-transform: uppercase; font-weight: 500;
  list-style: none; cursor: pointer;
}
.drawer__nav summary::-webkit-details-marker { display: none; }
.drawer__nav details[open] summary .icon { transform: rotate(45deg); }
.drawer__nav details ul { padding: 0 0 16px; }
.drawer__nav details li a { display: block; padding: 7px 0; color: var(--c-muted); }
.drawer__foot { display: flex; gap: 24px; padding: 20px 16px; border-top: 1px solid var(--c-line); font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }

/* ---------- Hero ---------- */
.hero { position: relative; display: grid; overflow: hidden; background: var(--c-paper); }
.hero--full { min-height: max(600px, 100svh); }
/* top shade so the white header stays legible on light photos */
.hero::before { content: ""; position: absolute; inset: 0 0 auto; height: 180px; z-index: 1; pointer-events: none; background: linear-gradient(rgba(0,0,0,.28), transparent); }
.hero--large { min-height: max(520px, 80svh); }
.hero--medium { min-height: max(420px, 60svh); }
.hero__media, .hero__content { grid-area: 1 / 1; }
.hero__media { position: relative; }
.hero__media picture, .hero__img, .hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__overlay { position: absolute; inset: 0; background: #000; pointer-events: none; }
.hero__content { position: relative; z-index: 1; display: flex; flex-direction: column; padding-top: 48px; padding-bottom: clamp(32px, 5vw, 72px); }
.hero--align-bottom-left .hero__content { justify-content: flex-end; align-items: flex-start; }
.hero--align-bottom-center .hero__content { justify-content: flex-end; align-items: center; text-align: center; }
.hero__corner { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding-bottom: clamp(24px, 3vw, 44px); pointer-events: none; }
.hero .hero__corner .hero__text { margin: 0; max-width: 34ch; font-size: 12px; text-align: left; }
.hero--align-bottom-right .hero__content { justify-content: flex-end; align-items: flex-end; text-align: right; }
.hero--align-bottom-right .hero__links { justify-content: flex-end; }
.hero--align-center .hero__content { justify-content: center; align-items: center; text-align: center; }
.hero--text-light { color: #fff; }
.hero--text-dark { color: #111; }
.hero__title {
  font-size: clamp(44px, 8vw, 136px);
  font-weight: 500; line-height: .9; letter-spacing: -.035em;
  text-transform: uppercase; max-width: 12ch;
}
.hero__text { margin-top: 18px; max-width: 42ch; font-size: 15px; }
.hero--title-small .hero__title { font-size: clamp(22px, 2.4vw, 34px); line-height: 1.05; letter-spacing: -.01em; max-width: none; }
.hero--title-small .hero__text { font-size: 13px; margin-top: 10px; }
.hero--align-center .hero__text { margin-left: auto; margin-right: auto; }
/* category links on the hero: text only, fade slightly on hover */
.hero__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; margin-top: 26px; }
.hero--align-bottom-left .hero__links { justify-content: flex-start; }
.hero__link { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; font-weight: 500; padding: 4px 0; transition: opacity .3s var(--ease); }
.hero__link:hover, .hero__link:focus-visible { opacity: .55; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }

/* ---------- Sections ---------- */
.section--none { padding: 0; }
.section--sm { padding: 8px 0 40px; }
.section--md { padding: clamp(40px, 5vw, 72px) 0; }
.section--lg { padding: clamp(64px, 9vw, 140px) 0; }
.section--paper { background: var(--c-paper); }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 24px; }
.section-sub { margin-top: 8px; font-size: 12px; color: var(--c-muted); }
.section-head__right { display: flex; align-items: center; gap: 20px; }
.carousel-nav { display: flex; gap: 4px; }
.carousel-nav .icon-btn { border: 1px solid var(--c-line); width: 36px; height: 36px; transition: border-color .2s; }
.carousel-nav .icon-btn:hover { border-color: var(--c-fg); }
.carousel-nav .icon { width: 16px; height: 16px; }

/* ---------- Grid ---------- */
.grid { display: grid; gap: 40px 12px; }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

.carousel {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 36px) / 4);
  gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter);
  scroll-padding: 0 var(--gutter);
}
.carousel::-webkit-scrollbar { display: none; }
.carousel__slide { scroll-snap-align: start; }

/* ---------- Product card ---------- */
.card__media { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-paper); }
.card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* hover = hard cut to the next photo, no crossfade */
.card__img--alt { visibility: hidden; }
@media (hover: hover) {
  .card:hover .card__img--alt { visibility: visible; }
  .card:hover .card__media:has(.card__img--alt) .card__img--main { visibility: hidden; }
}
.card__badges { position: absolute; top: 14px; left: 16px; display: flex; gap: 4px; z-index: 1; }
/* Card is a 1-column grid: image, then info */
.card { display: grid; grid-template-rows: auto auto; }
.card__media { grid-row: 1; grid-column: 1; }

.card__info { grid-row: 2; grid-column: 1; }
/* centred, stacked product info: name / price / colour dots */
.card__info { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 8px 0; text-align: center; }
.card__title { font-size: 12px; font-weight: 400; line-height: 1.4; letter-spacing: .03em; text-transform: uppercase; }
.card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.card .price { font-size: 12px; white-space: nowrap; }
.card__soldout { font-size: 12px; letter-spacing: .03em; text-transform: uppercase; text-decoration: line-through; }
.card--sold-out .card__img--main { opacity: .55; }
.card--sold-out .card__img--alt { opacity: .55; }

.price__from { color: var(--c-muted); }
.price__compare { color: var(--c-muted); margin-left: 6px; }

/* ---------- Campaign tiles ---------- */
.tiles { display: grid; }
.tiles--1 { grid-template-columns: 1fr; }
.tiles--2 { grid-template-columns: repeat(2, 1fr); }
.tiles--3 { grid-template-columns: repeat(3, 1fr); }
.tiles--gap { gap: 12px; }
.tile { position: relative; display: block; overflow: hidden; background: var(--c-paper); }
.tiles--portrait .tile { aspect-ratio: 4 / 5; }
.tiles--square .tile { aspect-ratio: 1; }
.tiles--landscape .tile { aspect-ratio: 3 / 2; }
.tile__media, .tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tile__img { transition: transform 1.4s var(--ease); }
@media (hover: hover) { .tile:hover .tile__img { transform: scale(1.03); } }
.tile::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.28)); pointer-events: none; }
.tile--text-dark::after { display: none; }
.tile__content { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: clamp(20px, 2.4vw, 36px); display: flex; flex-direction: column; align-items: flex-start; }
.tile--text-light { color: #fff; }
.tile--text-dark { color: #111; }
.tile__title { font-size: clamp(26px, 3.2vw, 52px); font-weight: 500; line-height: .95; letter-spacing: -.025em; text-transform: uppercase; }
.tiles--3 .tile__title { font-size: clamp(22px, 2.2vw, 34px); }
.tile__cta { margin-top: 14px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* ---------- Split / manifesto ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 0; }
.split--reverse .split__media { order: 2; }
.split__media { aspect-ratio: 4 / 5; overflow: hidden; }
.split__media img, .split__media svg { width: 100%; height: 100%; object-fit: cover; }
.split__text { padding: clamp(32px, 6vw, 120px); max-width: 640px; }
.split__title { font-size: clamp(28px, 3vw, 48px); font-weight: 500; letter-spacing: -.02em; line-height: 1; text-transform: uppercase; margin-bottom: 20px; }
.split__text .btn { margin-top: 28px; }

.manifesto__text { font-size: clamp(24px, 3.1vw, 50px); line-height: 1.12; letter-spacing: -.02em; max-width: 30ch; }
.manifesto--center { text-align: center; }
.manifesto--center .manifesto__text { margin: 0 auto; }
.manifesto .link-arrow { display: inline-block; margin-top: 32px; }

/* ---------- Newsletter ---------- */
.newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; }
.newsletter__text { margin-top: 12px; color: var(--c-muted); max-width: 44ch; }
.newsletter--dark { background: var(--c-fg); color: var(--c-bg); }
.newsletter--dark .newsletter__text { color: color-mix(in srgb, var(--c-bg) 65%, var(--c-fg)); }
.newsletter__form { display: flex; gap: 0; border-bottom: 1px solid currentColor; }
.newsletter__form input { flex: 1; min-width: 0; background: transparent; border: 0; padding: 14px 0; outline: none; font-size: 16px; }
.newsletter__form input::placeholder { color: inherit; opacity: .5; }
.newsletter__form .btn { border: 0; height: auto; padding: 0 0 0 20px; background: transparent; color: inherit; }
.newsletter__form .btn:hover { opacity: .6; }
.newsletter__msg { padding: 14px 0; }

/* ---------- Footer ---------- */
.footer { border-top: 1px solid var(--c-line); padding-top: 48px; }
.footer__top { display: grid; grid-template-columns: 1fr minmax(280px, 440px); gap: 40px; align-items: start; padding-bottom: 48px; border-bottom: 1px solid var(--c-line); }
.footer__logo { display: block; width: clamp(140px, 14vw, 220px); height: auto; filter: invert(1); }
.footer__tagline { margin-top: 16px; max-width: 36ch; color: var(--c-muted); }
.footer__newsletter .newsletter__form { margin-top: 4px; }
.footer__newsletter .btn { height: auto; padding: 0 0 0 16px; border: 0; background: transparent; color: var(--c-fg); }
.footer__small { margin-top: 10px; font-size: 11px; color: var(--c-muted); }
.footer__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding: 40px 0 56px; }
.footer__row { display: grid; grid-template-columns: minmax(0, 1.2fr) repeat(var(--cols, 2), minmax(0, 1fr)) minmax(260px, 1.4fr); gap: 40px; align-items: start; padding: 0 0 56px; }
.footer__row .footer__logo { width: clamp(110px, 10vw, 150px); }
.footer__row .footer__tagline { font-size: 12px; margin-top: 12px; }
.footer__heading { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; font-weight: 500; margin-bottom: 14px; }
.footer__list li + li { margin-top: 6px; }
.footer__list a, .footer__text { color: var(--c-muted); }
.footer__list a:hover { color: var(--c-fg); }
.footer__text p + p { margin-top: 10px; }

/* Utility bar */
.utility { background: var(--c-fg); color: var(--c-bg); font-size: 11px; }
.utility__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; min-height: 48px; padding-top: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
.utility__copy { margin-right: auto; opacity: .75; }
.utility__links, .utility__social { display: flex; flex-wrap: wrap; gap: 6px 20px; text-transform: uppercase; letter-spacing: .04em; }
.utility a { opacity: .75; transition: opacity .2s; }
.utility a:hover { opacity: 1; }
.utility__pay { display: flex; gap: 6px; flex-wrap: wrap; }
.pay-icon { width: 34px; height: 22px; }

/* Collection en vedette */
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.feature { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 56px); align-items: start; }
.feature--reverse .feature__media { order: 2; }
.feature__media { position: sticky; top: calc(var(--header-h) + 16px); display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-paper); color: #fff; }
.feature__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
@media (hover: hover) { .feature__media:hover .feature__img { transform: scale(1.03); } }
.feature__media::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.3)); }
.feature__overlay { position: absolute; left: 0; bottom: 0; z-index: 1; padding: clamp(20px, 2.4vw, 36px); }
.feature__title { display: block; font-size: clamp(28px, 3.4vw, 56px); font-weight: 500; line-height: .95; letter-spacing: -.03em; text-transform: uppercase; }
.feature__text { max-width: 46ch; margin-bottom: 24px; color: color-mix(in srgb, var(--c-fg) 80%, var(--c-bg)); }
.feature__cta { margin-top: 32px; }

/* ---------- Product page ---------- */
.product { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(24px, 3vw, 56px); padding-top: 12px; padding-bottom: 64px; }
.product__gallery { display: grid; gap: 8px; }
.product__gallery--grid { grid-template-columns: 1fr 1fr; }
.product__gallery--grid .product__media:first-child { grid-column: 1 / -1; }
.product__media { margin: 0; background: var(--c-paper); aspect-ratio: 4 / 5; overflow: hidden; }
.product__gallery--grid .product__media:first-child { aspect-ratio: 5 / 5.2; }
.product__media img, .product__media video, .product__media svg { width: 100%; height: 100%; object-fit: cover; }
.product__sticky { position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px) + 24px); padding-top: 24px; }
.product__title { font-size: clamp(22px, 2vw, 30px); font-weight: 500; letter-spacing: -.01em; line-height: 1.1; text-transform: uppercase; margin: 12px 0 8px; }
.product__price { font-size: 15px; margin-bottom: 28px; }
.option { border: 0; padding: 0; margin: 0 0 22px; }
.option__label { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 10px; padding: 0; }
.option__label span { color: var(--c-muted); margin-left: 6px; }
.option__values { display: flex; flex-wrap: wrap; gap: 6px; }
.chip--option { position: relative; cursor: pointer; }
.chip--option input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip--option:has(input:checked) { background: var(--c-fg); color: var(--c-bg); border-color: var(--c-fg); }
.chip--option.is-unavailable span { text-decoration: line-through; color: var(--c-muted); }
.chip--option:has(input:checked).is-unavailable span { color: var(--c-bg); }
.product__form { margin-bottom: 16px; }
.product__note { font-size: 13px; color: var(--c-accent); margin-bottom: 24px; }
.product__desc { margin: 28px 0; color: color-mix(in srgb, var(--c-fg) 80%, var(--c-bg)); }
.form-error { color: #a1231b; font-size: 13px; margin-top: 10px; }

.accordions { border-top: 1px solid var(--c-line); }
.accordion { border-bottom: 1px solid var(--c-line); }
.accordion summary { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; cursor: pointer; list-style: none; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary .icon { transition: transform .25s var(--ease); }
.accordion[open] summary .icon { transform: rotate(45deg); }
.accordion__body { padding: 0 0 18px; color: var(--c-muted); }

/* ---------- Drop countdown ---------- */
.drop-cd { text-align: center; }
.drop-cd__inner { display: grid; justify-items: center; }
.crumbs { display: flex; gap: 10px; font-size: 12px; color: var(--c-muted); margin-bottom: clamp(40px, 6vw, 72px); }
.crumbs a:hover { color: var(--c-fg); }
.drop-cd__live, .drop-cd__done { display: grid; justify-items: center; }
.drop-cd__title { font-size: clamp(26px, 3vw, 40px); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; line-height: 1.1; }
.drop-cd__sub { margin-top: 10px; font-size: 16px; color: var(--c-muted); }
.drop-cd__text { margin-top: 22px; font-size: 14px; max-width: 56ch; }
.drop-cd__timer { display: flex; gap: clamp(22px, 4vw, 44px); margin-top: 34px; }
.drop-cd__unit { display: grid; justify-items: center; gap: 6px; min-width: 56px; }
.drop-cd__num { font-size: clamp(26px, 3vw, 36px); font-weight: 500; font-variant-numeric: tabular-nums; line-height: 1; }
.drop-cd__label { font-size: 12px; color: var(--c-muted); }
.drop-cd__signup { margin-top: 34px; display: grid; justify-items: center; }
.drop-cd__btn { height: 60px; padding: 0 44px; background: #ededed; font-size: 14px; letter-spacing: .02em; transition: background .2s; }
.drop-cd__btn:hover { background: #e2e2e2; }
.drop-cd__form { display: none; gap: 0; width: min(420px, 100%); border-bottom: 1px solid var(--c-fg); }
.drop-cd__form input[type=email] { flex: 1; min-width: 0; border: 0; padding: 14px 0; outline: none; background: transparent; font-size: 16px; }
.drop-cd__form .btn { height: auto; border: 0; background: transparent; color: var(--c-fg); padding: 0 0 0 16px; }
.drop-cd__signup.is-open .drop-cd__btn, .drop-cd__signup:has(.drop-cd__msg) .drop-cd__btn { display: none; }
.drop-cd__signup.is-open .drop-cd__form, .drop-cd__form:has(.drop-cd__msg) { display: flex; }
.drop-cd__form:has(.drop-cd__msg) { border: 0; justify-content: center; }
.drop-cd__msg { padding: 14px 0; }
.drop-cd + .shopify-section .collection, .section-drop-countdown + .shopify-section .plp { margin-top: 0; }

/* ---------- Workshop ---------- */
/* Workshop: black & white, the only colours are the workshop-type code */
:root { --ws-paper: #f4f4f4; --ws-debutant: #d2693c; --ws-projet: #3f6ea6; --ws-libre: #5e8a48; }
.ws-cards-sec.section--paper, .ws-sched-sec.section--paper, [data-page^="ws"] .section--paper, [data-page="workshop"] .section--paper, .ws-others { background: #f4f4f4; }
.ws-intro { padding: 36px 0 clamp(40px, 5vw, 72px); border-bottom: 1px solid var(--c-line); }
.ws-intro__title { font-size: clamp(44px, 8vw, 128px); font-weight: 500; line-height: .88; letter-spacing: -.05em; text-transform: uppercase; }
.ws-intro__text { margin-top: 20px; max-width: 52ch; font-size: 15px; }
.ws-intro__addr { margin-top: 18px; font-size: 12px; color: var(--c-muted); }
.ws-intro__addr::before { content: "\2192  "; }
.ws-steps { display: flex; flex-wrap: wrap; gap: 6px 0; margin-top: 32px; }
.ws-step { display: inline-flex; align-items: baseline; gap: 8px; padding: 4px 0; margin-right: 22px; border-bottom: 1px solid transparent; transition: border-color .2s; }
.ws-step__n { font-size: 11px; color: var(--c-muted); }
.ws-step__label { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
@media (hover: hover) { .ws-step:hover { border-bottom-color: var(--c-fg); } }

.ws-head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
.ws-head__n { flex-shrink: 0; min-width: 32px; padding-top: 6px; font-size: 13px; color: var(--c-muted); }
.ws-head__title { font-size: clamp(24px, 2.6vw, 38px); font-weight: 500; letter-spacing: -.02em; line-height: 1.05; text-transform: uppercase; }
.ws-head__sub { margin-top: 6px; color: var(--c-muted); }

.ws-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
/* colour code by workshop type */
.ws-tag::before, .ws-dot { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ws-projet); }
.ws-tag--debutant::before, .ws-dot--debutant { background: var(--ws-debutant); }
.ws-tag--libre::before, .ws-dot--libre { background: var(--ws-libre); }

.ws-cards { display: grid; gap: 40px 16px; }
.ws-cards--3 { grid-template-columns: repeat(3, 1fr); }
/* Aller plus loin: one wide card, drawing left, text right */
.ws-cards--1 { grid-template-columns: 1fr; }
.ws-cards--1 .ws-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(24px, 4vw, 72px); align-items: center; }
.ws-cards--1 .ws-card__paper { aspect-ratio: 5 / 4; }
.ws-cards--1 .ws-card__body { padding-top: 0; gap: 14px; }
.ws-cards--1 .ws-card__title { font-size: clamp(26px, 3vw, 44px); letter-spacing: -.02em; line-height: 1; }
.ws-cards--1 .ws-card__text { font-size: 15px; max-width: 44ch; }
.ws-cards--1 .ws-card__meta { font-size: 13px; color: var(--c-fg); padding: 12px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); width: 100%; }
.ws-cards--4 { grid-template-columns: repeat(4, 1fr); }
.ws-card { display: flex; flex-direction: column; }
.ws-card__paper { position: relative; display: block; aspect-ratio: 4 / 5; background: var(--ws-paper); overflow: visible; transition: transform .35s var(--ease); }
.section--paper .ws-card__paper { background: var(--c-bg); }
.ws-card__img { position: absolute; inset: 8%; width: 84%; height: 84%; object-fit: contain; mix-blend-mode: multiply; transition: transform .45s var(--ease); }
@media (hover: hover) {
  .ws-card:hover .ws-card__paper { transform: rotate(-1.5deg); }
  .ws-card:hover .ws-card__img { transform: scale(1.05) rotate(1deg); }
  .ws-card:hover .ws-card__cta { border-bottom-color: currentColor; }
}
/* same as product labels on the shop/drop pages: white text, top-left, no frame */
.ws-sticker { position: absolute; top: 14px; left: 16px; z-index: 1; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-badge, #fff); }
.ws-sticker--lg { top: 18px; left: 20px; }
.ws-card__body { display: grid; justify-items: start; gap: 8px; padding-top: 16px; }
.ws-card__title { font-size: 15px; font-weight: 500; text-transform: uppercase; letter-spacing: .02em; line-height: 1.25; }
.ws-card__text { font-size: 13px; color: color-mix(in srgb, var(--c-fg) 78%, var(--c-bg)); }
.ws-card__meta { font-size: 11px; color: var(--c-muted); }
.ws-card__cta { margin-top: 4px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid transparent; padding-bottom: 2px; transition: border-color .2s; }
.ws-card__cta::after { content: " \2192"; }

/* Programme */
.ws-sched__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 32px; padding-bottom: 12px; border-bottom: 1px solid var(--c-fg); }
.ws-months { display: flex; gap: 20px; overflow-x: auto; scrollbar-width: none; }
.ws-month { font-size: clamp(15px, 1.2vw, 18px); font-weight: 500; text-transform: uppercase; letter-spacing: -.01em; color: var(--c-muted); white-space: nowrap; padding-bottom: 2px; border-bottom: 2px solid transparent; transition: color .2s; }
.ws-month:hover { color: var(--c-fg); }
.ws-month.is-active { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.ws-month sup { font-size: 9px; margin-left: 4px; font-weight: 400; }
.ws-filters { display: flex; flex-wrap: wrap; gap: 6px 0; }
.ws-filter { flex-shrink: 0; white-space: nowrap; display: inline-flex; align-items: center; gap: 7px; padding: 6px 0; margin-left: 20px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.ws-filter:first-child { margin-left: 0; }
.ws-filter:hover { color: var(--c-fg); }
.ws-filter.is-active { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.ws-sessions { list-style: none; margin: 0; padding: 0; }
.ws-session { display: grid; grid-template-columns: 64px 84px minmax(0, 1fr) 150px 120px; align-items: center; gap: 16px; padding: 11px 0 11px 14px; border-bottom: 1px solid var(--c-line); position: relative; }
.ws-session::before { content: ""; position: absolute; left: 0; top: 11px; bottom: 11px; width: 2px; border-radius: 2px; background: var(--ws-projet); }
.ws-session--debutant::before { background: var(--ws-debutant); }
.ws-session--libre::before { background: var(--ws-libre); }
.ws-session__date { display: grid; }
.ws-session__day { font-size: 24px; font-weight: 500; line-height: .95; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ws-session__wd { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.ws-session__time { display: grid; font-size: 12px; font-variant-numeric: tabular-nums; }
.ws-session__time span { color: var(--c-muted); }
.ws-session__time span::before { content: "\2192 "; }
.ws-session__main { display: grid; justify-items: start; gap: 3px; }
.ws-session__title { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .01em; }
.ws-session__title:hover { text-decoration: underline; text-underline-offset: 4px; }
.ws-session__note { font-size: 11px; color: var(--c-muted); }
.ws-session__mtime { display: none; font-size: 12px; color: var(--c-muted); font-variant-numeric: tabular-nums; }
.ws-session__places { display: grid; gap: 4px; }
.ws-seats { display: flex; flex-wrap: wrap; gap: 4px; }
.ws-seats i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--c-fg); }
.ws-seats i.is-taken { background: var(--c-fg); }
.ws-session__left { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.ws-session__cta { justify-self: end; }
.ws-session__cta .btn { height: 32px; padding: 0 16px; font-size: 10px; }
.ws-session.is-full { opacity: .5; }
.ws-session.is-full .ws-session__left { text-decoration: line-through; }
.btn.is-disabled { pointer-events: none; }
.ws-session__cta .btn--ghost { border: 0; padding: 0; height: auto; color: var(--c-muted); }
.ws-empty { padding: 40px 0; color: var(--c-muted); }
.ws-faq { max-width: 860px; margin-left: 60px; }

/* Animated sewing machine */
.ws-machine { position: absolute; inset: 8%; display: grid; place-items: center; }
.ws-machine__art { position: relative; width: 100%; max-height: 100%; aspect-ratio: 508 / 420; }
.ws-machine__art img { position: absolute; display: block; }
.ws-machine__base { inset: 0; width: 100%; height: 100%; }
.ws-machine__needle { left: 29.134%; top: 50.476%; width: 3.15%; height: 6.429%; transform-origin: 50% 0; animation: ws-needle .34s ease-in-out infinite; }
.ws-machine__spool { left: 54.921%; top: 12.381%; width: 10.63%; height: 8.571%; transform-origin: 60% 60%; animation: ws-spool .68s ease-in-out infinite; }
@media (hover: hover) {
  .ws-card:hover .ws-machine__needle { animation-duration: .17s; }
  .ws-card:hover .ws-machine__spool { animation-duration: .34s; }
  .ws-card:hover }
@keyframes ws-needle { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.3); } }
@keyframes ws-spool { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
@media (prefers-reduced-motion: reduce) { .ws-machine * { animation: none !important; } }

/* Animated collage: Formule Moelleuse (6 drawings, each gently moving on its own) */
.ws-collage { position: absolute; inset: 6%; display: grid; place-items: center; }
.ws-collage__art { position: relative; height: 100%; max-width: 100%; aspect-ratio: 548 / 815; }
.ws-collage__art img { position: absolute; display: block; animation-timing-function: ease-in-out; animation-iteration-count: infinite; }
.ws-collage__machine { left: 2.007%; top: 3.313%; width: 37.956%; height: 24.663%; transform-origin: 50% 100%; animation: ws-bob 3.2s 0s ease-in-out infinite; }
.ws-collage__hood { left: 41.241%; top: 3.926%; width: 58.759%; height: 26.503%; transform-origin: 10% 50%; animation: ws-float 4.2s -.8s ease-in-out infinite; }
.ws-collage__dress { left: 1.642%; top: 31.166%; width: 33.577%; height: 40.982%; transform-origin: 50% 0; animation: ws-sway 3.6s -1.6s ease-in-out infinite; }
.ws-collage__kimono { left: 32.482%; top: 29.571%; width: 67.518%; height: 29.202%; transform-origin: 50% 0; animation: ws-sway-r 4.4s -.4s ease-in-out infinite; }
.ws-collage__bag { left: 26.825%; top: 53.865%; width: 34.489%; height: 43.681%; transform-origin: 50% 0; animation: ws-swing 3s -2.1s ease-in-out infinite; }
.ws-collage__skirt { left: 66.971%; top: 59.387%; width: 33.029%; height: 39.264%; transform-origin: 50% 0; animation: ws-sway 4s -1.1s ease-in-out infinite; }
@media (hover: hover) { .ws-card:hover .ws-collage__art img { animation-duration: 1.4s; } }
@keyframes ws-sway { 0%, 100% { transform: rotate(-1.4deg); } 50% { transform: rotate(1.4deg); } }
@keyframes ws-sway-r { 0%, 100% { transform: rotate(1.1deg); } 50% { transform: rotate(-1.1deg); } }
@keyframes ws-swing { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes ws-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2.5%) rotate(1.5deg); } }
@keyframes ws-bob { 0%, 70%, 100% { transform: translateY(0) scaleY(1); } 80% { transform: translateY(-2%) scaleY(1.03); } 90% { transform: translateY(0) scaleY(.98); } }
@media (prefers-reduced-motion: reduce) { .ws-collage__art img { animation: none !important; } }

/* Workshop (service) page */
.ws-backbar, .backbar { padding-top: 18px; }
.backbar + .shopify-section .plp-head, .backbar + .shopify-section .ws-intro { padding-top: 16px; }
.backbar + .shopify-section .drop-cd { padding-top: 16px; }
.ws-back { display: inline-flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid transparent; transition: border-color .2s, gap .2s; }
.ws-back .icon { width: 16px; height: 16px; }
.ws-back:hover { border-bottom-color: currentColor; gap: 14px; }
.ws-page { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 72px); padding-top: 24px; padding-bottom: 72px; }
.ws-page__paper { position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px) + 20px); aspect-ratio: 4 / 5; background: var(--ws-paper); }
.ws-page__img { position: absolute; inset: 8%; width: 84%; height: 84%; object-fit: contain; mix-blend-mode: multiply; }
.crumbs--left { justify-content: flex-start; margin-bottom: 28px; }
.ws-page__title { font-size: clamp(32px, 4vw, 60px); font-weight: 500; line-height: .95; letter-spacing: -.03em; text-transform: uppercase; margin: 12px 0 10px; }
.ws-page__price { font-size: 15px; margin-bottom: 22px; }
.ws-page__desc { max-width: 56ch; margin-bottom: 28px; }
.ws-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 28px; border-top: 1px solid var(--c-line); }
.ws-facts > div { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--c-line); }
.ws-facts dt { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 4px; }
.ws-facts dd { margin: 0; font-size: 13px; }
.ws-dates { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; }
.ws-date { justify-content: flex-start; height: auto; min-height: 40px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--c-line); text-align: left; font-size: 13px; background: transparent; }
.ws-date span::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 10px; border-radius: 50%; border: 1px solid var(--c-fg); vertical-align: -1px; }
.chip--option.ws-date:has(input:checked) { background: transparent; color: var(--c-fg); border-color: var(--c-fg); }
.chip--option.ws-date:has(input:checked) span::before { background: var(--c-fg); }
.ws-dates { gap: 0 24px !important; }
.ws-fallback { position: absolute; inset: 14%; display: grid; place-items: center; font-size: 12px; text-transform: uppercase; text-align: center; padding: 12px; color: var(--c-muted); }
/* Formula booking: one cycle = several dates booked together */
.ws-cycles { display: grid; border-top: 1px solid var(--c-line); }
.chip--option.ws-cycle { display: grid; gap: 10px; height: auto; min-height: 0; padding: 16px 0; border: 0; border-bottom: 1px solid var(--c-line); background: transparent; text-align: left; justify-content: stretch; cursor: pointer; }
.ws-cycle__head { display: flex; align-items: center; gap: 12px; font-size: 13px; text-transform: uppercase; letter-spacing: .03em; }
.ws-cycle__head::before { content: ""; flex-shrink: 0; width: 12px; height: 12px; border-radius: 50%; border: 1px solid var(--c-fg); }
.ws-cycle__left { margin-left: auto; font-size: 11px; color: var(--c-muted); }
.ws-cycle__dates { list-style: none; margin: 0; padding: 0 0 0 24px; display: grid; gap: 4px; font-size: 13px; }
.ws-cycle__dates li { display: grid; grid-template-columns: 74px 1fr; }
.ws-cycle__dates li span { font-size: 11px; letter-spacing: .03em; text-transform: uppercase; color: var(--c-muted); padding-top: 1px; }
.chip--option.ws-cycle:has(input:checked) { background: transparent; color: var(--c-fg); }
.chip--option.ws-cycle:has(input:checked) .ws-cycle__head::before { background: var(--c-fg); }
.chip--option.ws-cycle.is-unavailable { opacity: .45; }
.chip--option.ws-cycle.is-unavailable span { text-decoration: none; }
.chip--option.ws-cycle.is-unavailable .ws-cycle__left { text-decoration: line-through; }
.ws-page__note { font-size: 12px; color: var(--c-muted); margin-top: 10px; }
.ws-plan { margin-top: 40px; }
.ws-plan__title { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500; margin-bottom: 14px; }
.ws-plan__steps { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.ws-plan__steps li { counter-increment: step; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--c-line); }
.ws-plan__steps li::before { content: counter(step, decimal-leading-zero); font-size: 11px; color: var(--c-muted); }

/* ---------- Product page (PDP) ---------- */
.pdp-gallery { position: relative; }
.pdp-gallery__bar { display: flex; justify-content: space-between; align-items: center; height: 40px; }
.pdp-gallery__nav { display: flex; gap: 2px; margin-left: -10px; }
.pdp-gallery__nav .icon { width: 16px; height: 16px; }
.pdp-gallery__count { font-size: 11px; letter-spacing: .04em; color: var(--c-muted); font-variant-numeric: tabular-nums; }
.pdp-gallery__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc(100% / 3); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; background: var(--c-paper); }
.pdp-gallery__track::-webkit-scrollbar { display: none; }
.pdp-gallery__item { margin: 0; aspect-ratio: 1; overflow: hidden; scroll-snap-align: start; background: #f3f3f3; }
.pdp-gallery__item img, .pdp-gallery__item video, .pdp-gallery__item svg { width: 100%; height: 100%; object-fit: cover; }

.pdp-info { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; padding-top: 28px; padding-bottom: 72px; align-items: start; }
.pdp-brand { font-size: 12px; letter-spacing: .02em; }
.pdp-title { font-size: clamp(22px, 2vw, 30px); font-weight: 500; line-height: 1.1; letter-spacing: -.01em; text-transform: uppercase; margin-top: 2px; }
.pdp-tabs { display: grid; justify-items: start; gap: 6px; margin-top: 44px; }
.pdp-tab { white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); padding: 2px 0; transition: color .2s; }
.pdp-tab::before { content: "\25B8"; font-size: 10px; opacity: 0; transition: opacity .2s; }
.pdp-tab:hover { color: var(--c-fg); }
.pdp-tab.is-active { color: var(--c-fg); }
.pdp-tab.is-active::before { opacity: 1; }

.pdp-option { border: 0; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.pdp-option__label { float: left; padding: 0; margin-right: 4px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.pdp-option__values { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.chip--option.pdp-choice { height: auto; min-width: 0; padding: 2px 0; border: 0; background: transparent; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid transparent; }
.chip--option.pdp-choice:hover { border-bottom-color: var(--c-line); }
.chip--option.pdp-choice:has(input:checked) { background: transparent; color: var(--c-fg); border-bottom-color: var(--c-fg); }
.chip--option.pdp-choice.is-unavailable span { color: var(--c-muted); text-decoration: line-through; }
.pdp-stock { display: flex; align-items: center; gap: 8px; margin: 4px 0 28px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.pdp-stock::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3f9a52; flex-shrink: 0; }
.pdp-stock--pre::before { background: #d2693c; }
.pdp-stock.is-out { color: var(--c-muted); }
.pdp-stock.is-out::before { background: var(--c-muted); }
.pdp-panel { font-size: 13px; line-height: 1.7; max-width: 58ch; }
.pdp-panel ul { padding-left: 0; list-style: none; margin: 1em 0 0; }

.pdp-info__buy { display: grid; justify-items: end; text-align: right; }
/* compact add-to-cart: bag icon + label + price, on the same line as "Couleur" */
.pdp-add { display: inline-flex; align-items: center; gap: 10px; padding: 2px 0; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid var(--c-fg); transition: opacity .2s; }
.pdp-add .icon { width: 16px; height: 16px; margin-top: -2px; }
.pdp-add__label { font-weight: 500; }
.pdp-add__price { color: var(--c-muted); }
.pdp-add__price::before { content: "· "; }
.pdp-add__price .price { font-size: 12px; }
.pdp-add:hover { border-bottom-width: 2px; }
.pdp-add[disabled] { opacity: .4; pointer-events: none; }
.pdp-buy-note { margin-top: 10px; font-size: 11px; color: var(--c-muted); }

.pdp-kicker { font-size: 11px; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 16px; }
.pdp-look { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; padding-bottom: 72px; align-items: start; }
.pdp-look__img { grid-column: 2; aspect-ratio: 4 / 5; background: #f3f3f3; overflow: hidden; }
.pdp-look__img img { width: 100%; height: 100%; object-fit: cover; }
.pdp-look__list { grid-column: 3; display: grid; gap: 14px; }
.pdp-look__item { display: grid; grid-template-columns: 90px 1fr; gap: 16px; align-items: start; }
.pdp-look__thumb { aspect-ratio: 1; background: #f3f3f3; overflow: hidden; }
.pdp-look__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pdp-look__txt { display: grid; gap: 2px; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; padding-top: 4px; }
.pdp-look__item:hover .pdp-look__name { text-decoration: underline; text-underline-offset: 3px; }
.pdp-more { padding-bottom: 48px; }
.pdp-more__links { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.pdp-more__links a { color: var(--c-muted); border-bottom: 1px solid transparent; padding-bottom: 2px; }
.pdp-more__links a:hover { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.pdp-reco { background: #f3f3f3; }
.pdp-reco__title { font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; margin-bottom: 24px; }

/* ---------- Collection ---------- */
/* PLP, Diesel-style: big title + count, filter column on the left, sort on the right */
.plp-head { padding: 28px 0 24px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 18px; }
.plp-head__title { font-size: clamp(36px, 5vw, 80px); font-weight: 500; line-height: .9; letter-spacing: -.04em; text-transform: uppercase; }
.plp-head__count { font-size: 12px; color: var(--c-muted); }
.plp-head__desc { flex: 0 0 100%; max-width: none; margin-top: 6px; color: var(--c-muted); font-size: 13px; }
.plp-head__desc > * { max-width: 60ch; }
.plp-bar {
  position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px)); z-index: 6;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  height: 50px; background: var(--c-bg); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line);
}
.plp-bar__sort label { display: flex; align-items: center; gap: 10px; }
.plp-bar__label { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.plp-bar__sort select { border: 0; background: transparent; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; padding: 6px 0; }

.plp { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px; padding-top: 24px; transition: grid-template-columns .35s var(--ease); }
.plp--no-bar { border-top: 1px solid var(--c-line); }
.plp--no-filters { grid-template-columns: minmax(0, 1fr) !important; gap: 0; }
.plp .grid { gap: 40px 12px; }

.swatch { flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(0,0,0,.14); }

.card__format { margin-top: 6px; text-align: center; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.card__colors { display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 10px; }
.swatch--sm { width: 11px; height: 11px; }
.card__colors-more { font-size: 11px; color: var(--c-muted); }

.loadmore { display: grid; justify-items: center; gap: 12px; padding: 56px 0 24px; }
.loadmore__count { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); }
.loadmore__bar { width: 200px; height: 2px; background: var(--c-line); }
.loadmore__bar span { display: block; height: 100%; background: var(--c-fg); transition: width .4s var(--ease); }
.loadmore__btn { min-width: 220px; margin-top: 8px; }
.loadmore__btn.is-loading { opacity: .5; pointer-events: none; }

.coll-hero { position: relative; display: grid; overflow: hidden; background: var(--c-paper); color: #fff; }
.coll-hero--small { min-height: max(360px, 45svh); }
.coll-hero--medium { min-height: max(440px, 62svh); }
.coll-hero--large { min-height: max(560px, 85svh); }
.coll-hero__media, .coll-hero__content { grid-area: 1 / 1; }
.coll-hero__media { position: relative; }
.coll-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.coll-hero__media::before { content: ""; position: absolute; inset: 0 0 auto; height: 180px; z-index: 1; background: linear-gradient(rgba(0,0,0,.3), transparent); }
.coll-hero__media::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.35)); }
.coll-hero__content { position: relative; z-index: 1; align-self: end; padding-top: 48px; padding-bottom: clamp(28px, 4vw, 56px); }
.coll-hero__title { font-size: clamp(44px, 9vw, 150px); font-weight: 500; line-height: .88; letter-spacing: -.05em; text-transform: uppercase; }
.coll-hero__desc { margin-top: 16px; max-width: 52ch; font-size: 13px; opacity: .9; }
.collection--has-banner { padding-top: 20px; }

.pills { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(var(--gutter) * -1) 14px; padding: 0 var(--gutter); }
.pills::-webkit-scrollbar { display: none; }
/* category links: plain text, no frame; active = black + underline */
.pills { gap: 28px; }
.pill { flex-shrink: 0; display: inline-flex; align-items: center; padding: 6px 0; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; color: var(--c-muted); border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.pill:hover { color: var(--c-fg); }
.pill.is-active { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.toolbar__right { display: flex; align-items: center; gap: 20px; }
.density { display: flex; gap: 2px; }
.density__btn { display: inline-flex; gap: 2px; align-items: stretch; height: 22px; padding: 4px; opacity: .35; transition: opacity .2s; }
.density__btn span { display: block; width: 4px; background: currentColor; }
.density__btn.is-active, .density__btn:hover { opacity: 1; }
.collection__head { padding: 48px 0 28px; }
.collection__title { font-size: clamp(36px, 5.5vw, 96px); font-weight: 500; letter-spacing: -.035em; line-height: .9; text-transform: uppercase; }
.collection__desc { margin-top: 16px; max-width: 60ch; color: var(--c-muted); }
.toolbar { position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px)); z-index: 5; background: var(--c-bg); display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 10px 0; margin-bottom: 20px; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.toolbar__filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.filter { position: relative; }
.filter summary { list-style: none; cursor: pointer; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; padding: 6px 0; }
.filter summary::-webkit-details-marker { display: none; }
.filter summary::after { content: " +"; }
.filter[open] summary::after { content: " \2212"; }
.filter__panel { position: absolute; top: 100%; left: 0; z-index: 10; min-width: 220px; background: var(--c-bg); border: 1px solid var(--c-line); padding: 14px; display: grid; gap: 8px; }
.filter__opt { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.filter__opt.is-disabled { opacity: .4; }
.filter__price { display: flex; align-items: center; gap: 8px; }
.filter__price input { width: 80px; padding: 6px 8px; border: 1px solid var(--c-line); }
.toolbar__clear { font-size: 11px; color: var(--c-muted); text-decoration: underline; }
.toolbar__sort select { border: 0; background: transparent; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; }
.pagination { display: flex; justify-content: center; gap: 24px; padding: 48px 0; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.empty { color: var(--c-muted); padding: 24px 0; }

.coll-card { display: block; }
.coll-card__media { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--c-paper); margin-bottom: 12px; }
.coll-card__media img, .coll-card__media svg { width: 100%; height: 100%; object-fit: cover; }
.coll-card__title { font-size: 13px; text-transform: uppercase; letter-spacing: .02em; }

/* ---------- Cart (page + drawer share the same vocabulary: text only, no frames) ---------- */
.cart { padding-bottom: 80px; }
.cart__form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 64px; align-items: start; }
.cart__lines { border-top: 1px solid var(--c-line); }
.line { display: grid; grid-template-columns: 112px 1fr auto; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--c-line); }
.line__media, .cd-line__media, .cd-quick__media { display: block; aspect-ratio: 4 / 5; background: var(--c-paper); overflow: hidden; }
.line__media img, .cd-line__media img, .cd-quick__media img { width: 100%; height: 100%; object-fit: cover; }
.line__info .pdp-brand { margin-bottom: 2px; }
.line__title, .cd-line__title, .cd-quick__title { display: block; font-size: 13px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.line__meta, .cd-line__meta { margin-top: 6px; font-size: 12px; color: var(--c-muted); line-height: 1.6; }
.pdp-stock.line__status, .pdp-stock.cd-line__status { margin: 8px 0 0; font-size: 10px; order: 0; }
.line__actions, .cd-line__actions { display: flex; align-items: center; gap: 20px; margin-top: 14px; }
.line__price, .cd-line__price { font-size: 13px; text-align: right; display: grid; align-content: start; gap: 2px; white-space: nowrap; }
.qty { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; }
.qty__btn { width: 24px; height: 24px; display: inline-grid; place-items: center; font-size: 15px; line-height: 1; transition: opacity .2s; }
.qty__btn:hover { opacity: .5; }
.qty input { width: 32px; height: 24px; border: 0; padding: 0; text-align: center; background: none; -moz-appearance: textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty__val { min-width: 24px; text-align: center; }
.line__remove { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); text-decoration: underline; text-underline-offset: 3px; }
.line__remove:hover { color: var(--c-fg); }
.cart__summary { position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px) + 24px); display: grid; gap: 10px; border-top: 1px solid var(--c-fg); padding-top: 16px; }
.cart__summary .pdp-kicker { margin-bottom: 6px; }
.cart__row { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; }
.cart__row--total { font-size: 15px; font-weight: 500; text-transform: uppercase; letter-spacing: .02em; padding-top: 10px; border-top: 1px solid var(--c-line); }
.cart__tax { font-size: 11px; color: var(--c-muted); }
.cart__note summary { cursor: pointer; list-style: none; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; padding: 6px 0; }
.cart__note summary::-webkit-details-marker { display: none; }
.cart__note textarea { width: 100%; margin-top: 8px; border: 0; border-bottom: 1px solid var(--c-fg); padding: 8px 0; background: none; resize: vertical; font: inherit; font-size: 13px; }
.cart__checkout { width: 100%; display: flex; justify-content: space-between; align-items: center; height: 52px; padding: 0 18px; background: var(--c-fg); color: var(--c-bg); font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; margin-top: 8px; transition: opacity .2s; }
.cart__checkout:hover { opacity: .85; }
.cart__reassure { display: grid; gap: 4px; margin-top: 10px; font-size: 11px; color: var(--c-muted); }
.cart__reassure li::before { content: "✳ "; color: var(--c-fg); }
.cart__pay { margin-top: 8px; }
.cart__ship { margin-bottom: 16px; font-size: 12px; }
.cart__ship-bar { display: block; height: 2px; background: var(--c-line); margin-top: 8px; }
.cart__ship-bar span { display: block; height: 100%; background: var(--c-fg); }
.cart__bar { display: none; }
.cart__empty { padding: 40px 0 120px; }
.cart__empty-title { font-size: clamp(18px, 2vw, 24px); text-transform: uppercase; letter-spacing: .02em; margin-bottom: 28px; }
.cart__empty-links { display: flex; gap: 28px; justify-content: flex-start; }

/* Cart drawer: slides in from the right over part of the screen */
.cd { position: fixed; inset: 0; z-index: 70; visibility: hidden; transition: visibility 0s .45s; }
.cd.is-open { visibility: visible; transition: none; }
.cd__overlay { position: absolute; inset: 0; background: rgba(17,17,17,.25); opacity: 0; transition: opacity .4s var(--ease); cursor: pointer; }
.cd.is-open .cd__overlay { opacity: 1; }
.cd__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(520px, calc(100vw - 40px)); background: var(--c-bg); color: var(--c-fg); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .45s cubic-bezier(.22, .8, .2, 1); }
.cd.is-open .cd__panel { transform: none; }
.cd.is-busy .cd__panel { cursor: progress; }
.cd.is-busy .cd__body, .cd.is-busy .cd__foot { opacity: .5; pointer-events: none; transition: opacity .2s; }
.cd__head { display: flex; justify-content: space-between; align-items: baseline; padding: 28px 32px 0; }
.cd__title { font-size: 15px; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; }
.cd__title sup { font-size: 9px; margin-left: 2px; vertical-align: 7px; }
.cd__close { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); transition: color .2s; }
.cd__close:hover { color: var(--c-fg); }
.cd__body { flex: 1; overflow-y: auto; padding: 36px 32px 32px; }
.cd__lines { display: grid; gap: 24px; }
.cd-line { display: grid; grid-template-columns: 96px 1fr auto; gap: 16px; }
/* Workshop booking in the cart: drawing shown whole, places fixed (tied to the names) */
.line--ws .line__media img, .line--ws .cd-line__media img { object-fit: contain; padding: 10%; }
.line__places { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.cd-line__actions { margin-top: 12px; }
.cd__empty { display: grid; gap: 18px; justify-items: start; font-size: 15px; text-transform: uppercase; letter-spacing: .02em; }
.cd__link { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; transition: opacity .2s; }
.cd__empty .cd__link { font-size: 15px; }
.cd__link:hover { opacity: .55; }
.cd__quick { margin-top: 56px; }
.cd__kicker { font-size: 13px; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 18px; }
.cd__quick-track { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: -32px; padding-right: 32px; }
.cd__quick-track::-webkit-scrollbar { display: none; }
.cd-quick { display: grid; grid-template-columns: 44% 1fr; gap: 16px; scroll-snap-align: start; }
.cd-quick__info { display: grid; align-content: start; gap: 8px; }
.cd-quick__info .price { font-size: 13px; }
.cd-quick__info .cd__link { justify-self: start; margin-top: 4px; }
.cd__foot { padding: 18px 32px 24px; border-top: 1px solid var(--c-line); display: grid; gap: 6px; }
.cd__view { justify-self: center; margin-top: 8px; font-size: 11px; }
@media (prefers-reduced-motion: reduce) { .cd__panel, .cd__overlay { transition: none; } }

/* ---------- Forms, search, misc ---------- */
.search-form { display: flex; gap: 8px; margin-bottom: 32px; }
.search-form input { flex: 1; height: 46px; border: 1px solid var(--c-line); padding: 0 14px; }
.stack-form { display: grid; gap: 14px; margin-bottom: 24px; }
.stack-form label { display: grid; gap: 6px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.stack-form input:not([type=checkbox]), .stack-form select { height: 46px; border: 1px solid var(--c-line); padding: 0 12px; font-size: 14px; letter-spacing: 0; text-transform: none; }
.stack-form .check { display: flex; align-items: center; gap: 8px; }
.table { width: 100%; border-collapse: collapse; margin: 16px 0 40px; }
.table th, .table td { text-align: left; padding: 12px 8px 12px 0; border-bottom: 1px solid var(--c-line); }
.table th { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; font-weight: 500; }
.address { padding: 16px 0; border-bottom: 1px solid var(--c-line); }
.article__img { margin: 0 0 32px; }
.empty-state { padding: 80px var(--gutter); }
.password { padding-top: 20vh; display: grid; gap: 24px; }
.giftcard__code { font-size: 28px; letter-spacing: .03em; margin-bottom: 16px; }

.toast {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 70;
  display: flex; gap: 20px; align-items: center;
  background: var(--c-fg); color: var(--c-bg); padding: 14px 18px;
  font-size: 12px; letter-spacing: .02em; text-transform: uppercase;
  animation: toast-in .35s var(--ease);
}
.toast[hidden] { display: none; }
.toast__link { text-decoration: underline; text-underline-offset: 3px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

/* ---------- Responsive ---------- */
@media (max-width: 989px) {
  .header__inner { gap: 8px; }
  .header__account { display: none; }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .carousel { grid-auto-columns: calc((100% - 12px) / 2.3); }
  .product { grid-template-columns: 1fr; }
  .product__gallery--grid, .product__gallery--stack {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 88%;
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter);
  }
  .product__gallery::-webkit-scrollbar { display: none; }
  .product__media { scroll-snap-align: start; aspect-ratio: 4 / 5 !important; grid-column: auto !important; }
  .product__sticky { position: static; padding-top: 0; }
  .pdp-gallery__track { grid-auto-columns: 50%; }
  .pdp-info { grid-template-columns: 1fr 1fr; }
  .pdp-info__buy { grid-column: 1 / -1; }
  .pdp-look { grid-template-columns: 1fr 1fr; }
  .pdp-look__img { grid-column: 1; }
  .pdp-look__list { grid-column: 2; }
  .ws-session { grid-template-columns: 80px 80px minmax(0, 1fr) 150px 130px; gap: 14px; }
  .footer__grid { grid-template-columns: repeat(2, 1fr); }
  .feature { grid-template-columns: 1fr; }
  .footer__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .footer__row .footer__brand, .footer__row .footer__newsletter { grid-column: 1 / -1; }
  .feature__media { position: relative; top: 0; }
  .feature--reverse .feature__media { order: 0; }
  .cart__form { grid-template-columns: 1fr; gap: 32px; }
  .cart { padding-bottom: 120px; }
  .line { grid-template-columns: 88px 1fr auto; gap: 14px; }
  .cart__summary { position: static; }
  .cart__summary .cart__checkout { display: none; }
  .cart__bar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--c-bg); border-top: 1px solid var(--c-line); }
  .cart__bar .cart__checkout { margin: 0; }
  .cd__head { padding: 22px 20px 0; }
  .cd__body { padding: 28px 20px 24px; }
  .cd__foot { padding: 14px 20px calc(18px + env(safe-area-inset-bottom)); }
  .cd-line { grid-template-columns: 80px 1fr auto; gap: 12px; }
  .cd__quick-track { margin-right: -20px; padding-right: 20px; }
}

@media (max-width: 749px) {

  body { font-size: 13px; }
  .grid { gap: 28px 8px; }
  .card__info { gap: 4px; padding-top: 10px; }
  .tiles--2, .tiles--3 { grid-template-columns: 1fr; }
  .tiles--3.tiles--square .tile { aspect-ratio: 4 / 3; }
  .split { grid-template-columns: 1fr; }
  .split--reverse .split__media { order: 0; }
  .split__text { padding: 36px var(--gutter) 48px; }
  .newsletter__inner { grid-template-columns: 1fr; gap: 24px; }
  .section-head { margin-bottom: 18px; }
  .section-head__right { flex-shrink: 0; }
  .carousel-nav { display: none; }
  .carousel { grid-auto-columns: calc((100% - 12px) / 1.7); gap: 8px; }
  .hero__content { padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
  .hero__title { font-size: clamp(34px, 11vw, 56px); }
  .hero__text { font-size: 13px; }
  .hero__corner .hero__text { font-size: 11px; max-width: 26ch; }
  .hero__ctas { width: 100%; }
  .hero__ctas .btn { flex: 1; padding: 0 12px; }
  .manifesto__text { font-size: clamp(19px, 5.6vw, 26px); line-height: 1.25; }
  .tile__title { font-size: clamp(24px, 8vw, 36px); }
  /* static strip: one message on phones */
  .icon-btn { width: 44px; height: 44px; }
  .header__logo-img { width: min(var(--logo-w, 120px), 100px); }
  /* iOS zooms into any field under 16px */
  input, select, textarea { font-size: 16px !important; }
  .filter__panel { position: static; min-width: 0; border: 0; padding: 8px 0 12px; }
  .toolbar { position: static; }
  .pdp-gallery__track { grid-auto-columns: 88%; }
  .pdp-info { grid-template-columns: 1fr; gap: 20px; padding-top: 18px; }
  .pdp-info__id, .pdp-info__main { display: contents; }
  .pdp-info .pdp-brand { order: 1; margin-bottom: -18px; }
  .pdp-info .pdp-title { order: 1; }
  .pdp-form { order: 2; }
  .pdp-stock { order: 3; margin: -8px 0 0; }
  .pdp-info__buy { order: 4; justify-items: start; text-align: left; }
  .pdp-tabs { order: 5; margin-top: 12px; grid-auto-flow: column; justify-content: start; gap: 18px; overflow-x: auto; }
  .pdp-panel { order: 6; }
  .pdp-look { grid-template-columns: 1fr; gap: 20px; }
  .pdp-look__img, .pdp-look__list { grid-column: auto; }
  .ws-cards--3, .ws-cards--4 { grid-template-columns: repeat(2, 1fr); gap: 28px 10px; }
  .ws-cards--1 .ws-card { grid-template-columns: 1fr; gap: 16px; }
  .ws-cards--1 .ws-card__text { display: block; }
  .ws-card__text { display: none; }
  .ws-card__title { font-size: 13px; }
  .ws-sticker { width: 50px; height: 50px; font-size: 9px; }
  .ws-sched__bar { flex-direction: column; align-items: flex-start; }
  .ws-filters { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
  .ws-session { grid-template-columns: 48px minmax(0, 1fr) auto; grid-template-areas: "date main main" "date places cta"; gap: 8px 12px; padding-left: 12px; }
  .ws-session__date { grid-area: date; align-self: start; }
  .ws-session__day { font-size: 22px; }
  .ws-session__time { display: none; }
  .ws-session__main { grid-area: main; }
  .ws-session__places { grid-area: places; }
  .ws-session__cta { grid-area: cta; }
  .ws-session__cta .btn { height: 32px; padding: 0 12px; }
  .ws-session__mtime { display: block !important; }
  .ws-faq { margin-left: 0; }
  .ws-page { grid-template-columns: 1fr; }
  .ws-page__paper { position: relative; top: 0; }
  .ws-facts { grid-template-columns: 1fr; }
  .drop-cd__timer { gap: 18px; }
  .drop-cd__unit { min-width: 48px; }
  .drop-cd__btn { width: 100%; max-width: 320px; }
  .density { display: none; }
  .plp { grid-template-columns: 1fr !important; gap: 0; padding-top: 16px; }
  .plp-bar__label { display: none; }
  /* keep 16px (no iOS zoom) but render it at label size */
  .plp-bar__sort select { max-width: 60vw; text-align: right; transform: scale(.7); transform-origin: right center; margin-right: -2px; }
  .toolbar__sort select { max-width: 60vw; }
  .coll-hero__title { font-size: clamp(40px, 14vw, 72px); }
  .footer__top { grid-template-columns: 1fr; gap: 32px; padding-bottom: 36px; }
  .footer__grid { gap: 28px 16px; padding: 32px 0 40px; }
  .utility__inner { flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 18px; }
  .utility__copy { margin-right: 0; order: 9; }
  .feature__cta { width: 100%; }
  .line { grid-template-columns: 88px 1fr; }
  .line__price { grid-column: 2; }
  .toolbar { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
.cd__foot .cart__row--total { border-top: 0; padding-top: 0; }

/* ---------- Booking page: Réserve ma place (calendar → time → infos, text only) ---------- */
.bk { padding-bottom: 96px; }
.bk__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 72px; align-items: start; }
.bk-label { display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.bk-h { font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 14px; }
.bk-pick { display: grid; gap: 8px; padding-bottom: 22px; border-bottom: 1px solid var(--c-line); }
.bk-pick__tag { display: flex; gap: 14px; align-items: center; }
.bk-pick__title { font-size: clamp(24px, 2.6vw, 36px); font-weight: 500; text-transform: uppercase; letter-spacing: -.02em; line-height: 1; }
.bk-when { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 56px; padding: 28px 0 36px; border-bottom: 1px solid var(--c-line); }
.bk-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.bk-cal__month { font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.bk-cal__nav { width: 28px; height: 28px; font-size: 18px; line-height: 1; transition: opacity .2s; }
.bk-cal__nav:hover { opacity: .5; }
.bk-cal__nav[disabled] { opacity: .2; pointer-events: none; }
.bk-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.bk-cal__grid > span:nth-child(-n+7) { font-size: 10px; color: var(--c-muted); padding-bottom: 8px; }
.bk-day { width: 36px; height: 36px; justify-self: center; display: grid; place-items: center; font-size: 12px; color: color-mix(in srgb, var(--c-fg) 30%, var(--c-bg)); font-variant-numeric: tabular-nums; position: relative; }
.bk-day.has { color: var(--c-fg); font-weight: 500; cursor: pointer; }
.bk-day.has::after { content: ""; position: absolute; bottom: 3px; left: 50%; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: currentColor; }
.bk-day.has:hover { text-decoration: underline; text-underline-offset: 3px; }
.bk-day.full { text-decoration: line-through; }
.bk-day.is-on { background: var(--c-fg); color: var(--c-bg); border-radius: 50%; }
.bk-day.is-on::after { background: var(--c-bg); }
.bk-cal__none { margin-top: 14px; font-size: 12px; color: var(--c-muted); }
.bk-link { font-size: 12px; text-decoration: underline; text-underline-offset: 3px; color: var(--c-fg); }
.bk-slots .bk-label { margin: 6px 0 14px; color: var(--c-fg); font-size: 11px; }
.bk-slot { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 13px 0 13px 22px; border-top: 1px solid var(--c-line); cursor: pointer; }
.bk-slot:last-child { border-bottom: 1px solid var(--c-line); }
.bk-slot input { position: absolute; opacity: 0; pointer-events: none; }
.bk-slot::before { content: ""; position: absolute; left: 0; top: 17px; width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--c-fg); }
.bk-slot:has(input:checked)::before { background: var(--c-fg); box-shadow: inset 0 0 0 2px var(--c-bg); }
.bk-slot:has(input:focus-visible) { outline: 1px solid var(--c-fg); outline-offset: 2px; }
.bk-slot__time { font-size: 15px; font-weight: 500; font-variant-numeric: tabular-nums; }
.bk-slot__left { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.bk-slot__sub { grid-column: 1 / -1; font-size: 11px; color: var(--c-muted); }
.bk-slot.is-full { opacity: .4; cursor: default; }
.bk-empty { font-size: 12px; color: var(--c-muted); }
.bk-who { padding-top: 28px; }
.bk-qty { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid var(--c-line); }
.bk-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; margin-top: 18px; }
.bk-person__n { grid-column: 1 / -1; margin-bottom: -8px; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.bk-f { display: grid; gap: 4px; }
.bk-f input { width: 100%; border: 0; border-bottom: 1px solid var(--c-line); padding: 8px 0; background: none; font: inherit; font-size: 14px; color: var(--c-fg); border-radius: 0; transition: border-color .2s; }
.bk-f input:focus, .bk-f textarea:focus { outline: none; border-bottom-color: var(--c-fg); }
.bk-f textarea { width: 100%; border: 0; border-bottom: 1px solid var(--c-line); padding: 8px 0; background: none; font: inherit; font-size: 14px; color: var(--c-fg); border-radius: 0; resize: vertical; }
.bk-f--full { margin-top: 24px; }
.bk-label em { font-style: normal; opacity: .7; margin-left: 6px; }
.bk-level { border: 0; padding: 0; margin: 26px 0 0; }
.bk-chips { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-top: 8px; }
.bk-chip input { position: absolute; opacity: 0; pointer-events: none; }
.bk-chip span { display: inline-block; padding: 4px 0; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--c-muted); border-bottom: 1px solid transparent; cursor: pointer; transition: color .2s, border-color .2s; }
.bk-chip span:hover { color: var(--c-fg); }
.bk-chip input:checked + span { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.bk-chip input:focus-visible + span { outline: 1px solid var(--c-fg); outline-offset: 3px; }
.bk-f.is-invalid input { border-bottom-color: #c0392b; }
.bk-f.is-invalid .bk-label { color: #c0392b; }
.bk__recap { position: sticky; top: calc(var(--header-total) - var(--header-shift, 0px) + 24px); display: grid; gap: 10px; border-top: 1px solid var(--c-fg); padding-top: 18px; }
.bk-recap__ws { display: grid; gap: 6px; }
.bk-recap__ws > span { display: flex; gap: 12px; align-items: center; }
.bk-recap__lvl { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.bk-recap__title { font-size: 20px; font-weight: 500; text-transform: uppercase; letter-spacing: -.01em; line-height: 1.1; }
.bk-recap__list { display: grid; margin: 6px 0 0; }
.bk-recap__list > div { display: grid; grid-template-columns: 64px 1fr; gap: 12px; padding: 9px 0; border-top: 1px solid var(--c-line); font-size: 12px; }
.bk-recap__list dt { color: var(--c-muted); text-transform: uppercase; font-size: 10px; letter-spacing: .06em; padding-top: 2px; }
.bk-recap__list dd { margin: 0; white-space: pre-line; }
.bk__recap .cart__checkout[disabled] { opacity: .35; pointer-events: none; }
.bk-recap__note { font-size: 11px; color: var(--c-muted); }
@media (max-width: 989px) {
  .bk__grid { grid-template-columns: 1fr; gap: 28px; }
  .bk__recap { position: static; }
  .bk-when { grid-template-columns: 1fr; gap: 28px; }
  .bk-cal { max-width: 360px; }
}
@media (max-width: 749px) {
  .bk-fields { grid-template-columns: 1fr; gap: 16px; }
  .bk-person.bk-fields { grid-template-columns: 1fr 1fr; gap: 16px 14px; }
  .bk-f input, .bk-f textarea { font-size: 16px; }
  .bk-cal { max-width: none; }
}

/* ---------- Search panel (magnifier) : drops from the top, over the header ---------- */
.search-ov { position: fixed; inset: 0; z-index: 70; visibility: hidden; pointer-events: auto; } /* the header section is pointer-events: none */
.search-ov.is-open { visibility: visible; }
.search-ov__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.3); opacity: 0; transition: opacity .3s; }
.search-ov.is-open .search-ov__overlay { opacity: 1; }
.search-ov__panel { position: relative; background: var(--c-bg); color: var(--c-fg); max-height: 100%; overflow-y: auto; transform: translateY(-100%); transition: transform .45s var(--ease); padding-bottom: 40px; }
.search-ov.is-open .search-ov__panel { transform: none; }
.search-ov__form { display: flex; align-items: center; gap: 14px; height: calc(var(--header-h) + 24px); border-bottom: 1px solid var(--c-fg); }
.search-ov__icon { display: inline-flex; }
.search-ov__input { flex: 1; min-width: 0; border: 0; background: none; padding: 0; height: 100%; font: inherit; font-size: clamp(20px, 2.6vw, 34px); letter-spacing: -.01em; text-transform: uppercase; color: var(--c-fg); outline: none; border-radius: 0; -webkit-appearance: none; }
.search-ov__input::placeholder { color: var(--c-muted); }
.search-ov__input::-webkit-search-cancel-button { display: none; }
.search-ov__clear { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); padding: 8px 0; }
.search-ov__clear:hover { color: var(--c-fg); }
.search-ov__close { margin-right: -10px; }
.search-ov.is-busy .search-ov__icon { animation: search-pulse .8s ease-in-out infinite; }
@keyframes search-pulse { 50% { opacity: .3; } }
.search-ov__body { padding-top: 32px; }
.search-ov__kicker { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 14px; }
.search-ov__start { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 48px; }
.search-ov__terms, .search-ov__explore, .search-ov__list { display: grid; gap: 10px; }
.search-ov__terms a, .search-ov__explore a { font-size: 14px; text-transform: uppercase; letter-spacing: .02em; }
.search-ov__terms a:hover, .search-ov__explore a:hover, .search-ov__list a:hover { text-decoration: underline; text-underline-offset: 4px; }
.search-ov__grid { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 48px; }
.search-ov__side { display: grid; gap: 28px; align-content: start; }
.search-ov__list li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.search-ov__list mark { background: none; color: var(--c-muted); }
.search-ov__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.search-ov__all { display: inline-flex; gap: 10px; margin-top: 32px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 5px; }
.search-ov__none { font-size: 16px; text-transform: uppercase; margin: 0 0 8px; }
.search-ov__hint { font-size: 12px; color: var(--c-muted); margin: 0; }
@media (max-width: 749px) {
  .search-ov__form { height: var(--header-h); gap: 10px; }
  .search-ov__body { padding-top: 24px; }
  .search-ov__start, .search-ov__grid { grid-template-columns: 1fr; gap: 28px; }
  .search-ov__products { order: -1; }
  .search-ov__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (prefers-reduced-motion: reduce) { .search-ov__panel, .search-ov__overlay { transition: none; } }

/* ---------- Search results page ---------- */
.search-page .search-form { gap: 14px; align-items: center; border-bottom: 1px solid var(--c-fg); margin: 0 0 36px; }
.search-page .search-form input { height: 56px; border: 0; padding: 0; font: inherit; font-size: clamp(18px, 2vw, 26px); text-transform: uppercase; background: none; outline: none; border-radius: 0; }
.search-page .search-form input::placeholder { color: var(--c-muted); }
.search-page .search-form button { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }
.search-page__none { display: grid; gap: 14px; }
.search-page__none p { margin: 0; }
.search-ov__cards .card, .search-page .card { align-content: start; }

/* ---------- Collabs: catalogue cards on paper + index ---------- */
.collabs { padding-bottom: clamp(48px, 7vw, 120px); }
.collabs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 36px); margin-top: 12px; }
.cb { background: var(--c-paper); padding: clamp(12px, 1.2vw, 18px); display: flex; flex-direction: column; }
.cb__link { display: contents; }
.cb__media { aspect-ratio: 4 / 5; overflow: hidden; background: color-mix(in srgb, var(--c-fg) 6%, var(--c-paper)); }
.cb__media img { width: 100%; height: 100%; object-fit: cover; transition: filter .4s var(--ease); }
.collabs--mono .cb__media img { filter: grayscale(1) contrast(1.05); }
.collabs--mono .cb:hover .cb__media img { filter: none; }
.cb__plate { height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(14px, 1.4vw, 22px); background: var(--c-bg); }
.cb__plate-top { display: flex; justify-content: space-between; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.cb__plate-name { font-size: clamp(26px, 3vw, 48px); font-weight: 500; line-height: .92; letter-spacing: -.04em; text-transform: uppercase; overflow-wrap: anywhere; transition: letter-spacing .5s var(--ease); }
.cb:hover .cb__plate-name { letter-spacing: -.02em; }
.cb__body { display: grid; grid-template-columns: 1fr auto 1fr; align-items: baseline; row-gap: 14px; padding: 18px 2px 0; font-size: 12px; }
.cb__num { grid-column: 1; font-size: 11px; }
.cb__partner { grid-column: 2; margin: 0; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; text-align: center; }
.cb__line { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 16px; margin: 0; padding: 0 12%; }
.cb__text { grid-column: 1 / -1; color: var(--c-muted); line-height: 1.55; font-size: 11px; }
.cb__text > * { margin: 0; }
.cb__foot { display: flex; justify-content: space-between; margin: auto 0 0; padding: 28px 2px 2px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.collabs__index { margin-top: clamp(56px, 8vw, 120px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 24px; }
.collabs__index-title { margin: 0; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.collabs__list { display: grid; gap: 12px; font-size: 12px; }
.collabs__list li > a, .collabs__list li { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; }
.collabs__list li:nth-child(3n+2) { padding-left: 22%; }
.collabs__list li:nth-child(3n) { padding-left: 46%; }
.collabs__what { color: var(--c-muted); }
.collabs__year { font-size: 10px; color: var(--c-muted); }
.collabs__list a:hover .collabs__name { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 989px) { .collabs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 749px) {
  /* phone: two projects side by side, card scaled down */
  .collabs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cb { padding: 8px; }
  .cb__plate { padding: 10px; }
  .cb__plate-top { font-size: 8px; letter-spacing: .04em; }
  .cb__plate-name { font-size: 17px; }
  .cb__body { padding-top: 12px; row-gap: 8px; font-size: 10px; }
  .cb__num, .cb__partner { font-size: 9px; }
  .cb__partner { letter-spacing: .2em; }
  .cb__line { padding: 0; gap: 8px; }
  .cb__text { font-size: 9.5px; line-height: 1.5; }
  .cb__foot { padding-top: 16px; font-size: 8px; letter-spacing: .08em; gap: 6px; }
  .collabs__index { grid-template-columns: 1fr; }
  .collabs__list li:nth-child(3n+2) { padding-left: 12%; }
  .collabs__list li:nth-child(3n) { padding-left: 28%; }
}
.collabs__grid { padding: 0; list-style: none; }
/* without a photo the plate is shorter, and the partner is not repeated under it */
.cb__media:has(.cb__plate) { aspect-ratio: 4 / 3; }
.cb:has(.cb__plate) .cb__partner { visibility: hidden; }

/* ---------- Contact ---------- */
.contact { padding-bottom: clamp(56px, 8vw, 120px); }
.contact__grid { display: grid; grid-template-columns: minmax(0, 640px) minmax(0, 260px); justify-content: space-between; gap: 48px; margin-top: 16px; }
.contact__form .bk-fields { margin-top: 28px; }
.contact__form textarea { min-height: 150px; }
.contact__send { width: 100%; max-width: 320px; display: flex; justify-content: space-between; align-items: center; height: 52px; padding: 0 18px; margin-top: 32px; background: var(--c-fg); color: var(--c-bg); font-size: 13px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; transition: opacity .2s; }
.contact__send:hover { opacity: .85; }
.contact__side { display: grid; gap: 26px; align-content: start; font-size: 13px; line-height: 1.6; padding-top: 4px; }
.contact__side p { margin: 0; }
.contact__side .bk-label { margin-bottom: 6px; }
.contact__side a { text-decoration: underline; text-underline-offset: 4px; }
.contact__sent { padding: 24px 0; display: grid; gap: 10px; }
.contact__sent-title { margin: 0; font-size: 18px; text-transform: uppercase; }
.contact__sent-text { margin: 0; color: var(--c-muted); font-size: 13px; }
@media (max-width: 749px) {
  .contact__grid { grid-template-columns: 1fr; gap: 40px; }
  .contact__form .bk-fields { grid-template-columns: 1fr; }
  .contact__send { max-width: none; }
}
.contact__subject { border: 0; padding: 0; margin: 0; min-width: 0; }
.contact__subject legend { padding: 0; margin-bottom: 4px; }

/* ---------- FAQ page ---------- */
.faq-page { padding-bottom: clamp(56px, 8vw, 120px); }
.faq-page__grid { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 760px); gap: clamp(32px, 6vw, 120px); margin-top: 16px; }
.faq-page__nav ul { position: sticky; top: calc(var(--header-total) + 24px); display: grid; gap: 12px; }
.faq-page__nav a { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--c-muted); padding-bottom: 2px; border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.faq-page__nav a:hover, .faq-page__nav a.is-active { color: var(--c-fg); border-bottom-color: var(--c-fg); }
.faq-page__groups { display: grid; gap: clamp(40px, 5vw, 64px); }
.faq-group { scroll-margin-top: calc(var(--header-total) + 24px); }
.faq-group__title { margin: 0 0 14px; font-size: 10px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.faq-page .accordion summary { font-size: 13px; letter-spacing: .02em; text-transform: none; gap: 16px; padding: 18px 0; }
.faq-page .accordion__body { font-size: 13px; line-height: 1.6; max-width: 62ch; }
.faq-page__more { margin: 0; font-size: 13px; }
.faq-page__more a { text-decoration: underline; text-underline-offset: 4px; margin-left: 6px; }
@media (max-width: 749px) {
  .faq-page__grid { grid-template-columns: 1fr; gap: 28px; }
  .faq-page__nav ul { position: static; display: flex; flex-wrap: wrap; gap: 10px 20px; }
}
.faq-page .accordion summary .icon { flex-shrink: 0; }
/* Info page (livraison, retours, paiement): text blocks in the FAQ layout */
.info-block__body { border-top: 1px solid var(--c-line); padding-top: 18px; font-size: 13px; line-height: 1.7; max-width: 62ch; display: grid; gap: 10px; }
.info-block__body p { margin: 0; }
.info-block__body strong { font-weight: 500; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }

/* ---------- Shopify policy pages (CGV, confidentialité, mentions légales): markup generated by Shopify ---------- */
.shopify-policy__container { width: 100%; max-width: var(--page-max) !important; margin: 0 auto; padding: calc(var(--header-total) + 28px) var(--gutter) clamp(56px, 8vw, 120px) !important; }
.shopify-policy__title h1 { margin: 0 0 clamp(28px, 4vw, 48px); font-size: clamp(32px, 4.4vw, 72px); font-weight: 500; line-height: .95; letter-spacing: -.04em; text-transform: uppercase; text-wrap: balance; }
.shopify-policy__body { max-width: 68ch; font-size: 13px; line-height: 1.7; }
.shopify-policy__body h2, .shopify-policy__body h3, .shopify-policy__body h4 { margin: 40px 0 12px; padding-top: 16px; border-top: 1px solid var(--c-line); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.shopify-policy__body p, .shopify-policy__body ul, .shopify-policy__body ol { margin: 0 0 12px; }
.shopify-policy__body ul, .shopify-policy__body ol { padding-left: 1.2em; }
.shopify-policy__body li { list-style: disc; margin-bottom: 4px; }
.shopify-policy__body a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Minimal footer: one row of capitals on white ---------- */
.footer--minimal { border-top: 1px solid var(--c-line); padding: 0; background: var(--c-bg); }
.footer__links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px 32px; padding-top: 36px; padding-bottom: calc(40px + env(safe-area-inset-bottom)); }
.footer__links a { font-size: 13px; letter-spacing: .02em; text-transform: uppercase; color: var(--c-fg); text-underline-offset: 5px; }
.footer__links a:hover { text-decoration: underline; }
.footer__news { padding-top: 32px; }
.footer__news .newsletter__form { max-width: 440px; }
@media (max-width: 749px) {
  .footer__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; padding-top: 28px; }
}
.faq-page__nav-sep { display: grid; gap: 12px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--c-line); }
.faq-page__nav-sep a { color: var(--c-fg); }
@media (max-width: 749px) { .faq-page__nav-sep { display: flex; gap: 20px; width: 100%; margin-top: 4px; padding-top: 12px; } }


/* ==========================================================================
   Direction ivoire (v78): natural ivory ground, smaller type,
   bold titles (700) against light running text (300).
   ========================================================================== */
body { font-size: 12px; font-weight: 300; line-height: 1.65; }
strong, b { font-weight: 600; }
/* every title: bold, tighter, smaller than before */
h1, h2, h3,
.hero__title, .tile__title, .split__title, .feature__title, .product__title, .drop-cd__title,
.ws-intro__title, .ws-head__title, .ws-card__title, .ws-page__title, .pdp-title, .pdp-reco__title,
.plp-head__title, .coll-hero__title, .collection__title, .cart__empty-title, .bk-pick__title,
.shopify-policy__title h1, .section-title, .cb__plate-name, .search-ov__none, .contact__sent-title, .cd__title {
  font-weight: 700; letter-spacing: -.02em;
}
.plp-head__title { font-size: clamp(26px, 3.2vw, 46px); letter-spacing: -.03em; }
.hero--title-small .hero__title { font-size: clamp(20px, 2vw, 28px); }
.tile__title { font-size: clamp(20px, 2.4vw, 36px); }
.tiles--3 .tile__title { font-size: clamp(18px, 1.8vw, 26px); }
.split__title, .feature__title { font-size: clamp(22px, 2.4vw, 36px); }
.product__title, .pdp-title { font-size: clamp(18px, 1.6vw, 24px); }
.drop-cd__title { font-size: clamp(22px, 2.4vw, 32px); }
.ws-intro__title { font-size: clamp(34px, 5.6vw, 88px); }
.ws-head__title { font-size: clamp(20px, 2vw, 28px); }
.ws-cards--1 .ws-card__title { font-size: clamp(22px, 2.4vw, 32px); }
.ws-page__title { font-size: clamp(26px, 3vw, 44px); }
.coll-hero__title { font-size: clamp(34px, 6vw, 96px); }
.collection__title { font-size: clamp(26px, 3.6vw, 60px); }
.bk-pick__title { font-size: clamp(20px, 2vw, 28px); }
.shopify-policy__title h1 { font-size: clamp(24px, 3vw, 44px); }
.cb__plate-name { font-size: clamp(22px, 2.4vw, 36px); }
/* small labels and product names stay medium so they read against the light text */
.card__title, .eyebrow, .bk-label, .footer__links a, .lab { font-weight: 500; }
@media (max-width: 749px) {
  .hero__title { font-size: clamp(26px, 8vw, 40px); }
  .tile__title { font-size: clamp(20px, 6vw, 28px); }
  .coll-hero__title { font-size: clamp(32px, 10vw, 52px); }
  .cb__plate-name { font-size: 15px; }
}
/* colour swatches: small squares instead of dots */
.swatch { border-radius: 0; }
.swatch--sm { width: 10px; height: 10px; }

/* Titles, smaller still (v80): bold but small, catalogue-like */
.plp-head__title, .collection__title, .shopify-policy__title h1, .ws-page__title { font-size: clamp(18px, 1.6vw, 24px); letter-spacing: -.01em; line-height: 1.1; }
.coll-hero__title, .ws-intro__title { font-size: clamp(22px, 2.2vw, 32px); letter-spacing: -.01em; }
.hero__title, .hero--title-small .hero__title { font-size: clamp(18px, 1.6vw, 24px); }
.tile__title, .tiles--3 .tile__title, .split__title, .feature__title, .drop-cd__title, .ws-cards--1 .ws-card__title { font-size: clamp(16px, 1.4vw, 20px); }
.section-title, .ws-head__title, .bk-pick__title, .pdp-reco__title { font-size: clamp(15px, 1.2vw, 18px); }
.product__title, .pdp-title { font-size: clamp(14px, 1.1vw, 16px); }
.cb__plate-name { font-size: clamp(18px, 1.8vw, 26px); }
.plp-head { padding: 24px 0 20px; }
@media (max-width: 749px) {
  .hero__title { font-size: 20px; }
  .tile__title { font-size: 16px; }
  .coll-hero__title { font-size: 24px; }
  .cb__plate-name { font-size: 13px; }
}
/* lead texts and drawer menu follow the smaller scale */
.ws-intro__text, .hero__text, .drop-cd__sub, .ws-cards--1 .ws-card__text { font-size: 13px; }
.product__price, .ws-page__price { font-size: 13px; }
.drawer__nav > li > a, .drawer__nav summary { font-size: 13px; font-weight: 700; }
.ws-session__day { font-size: 18px; font-weight: 700; }
.ws-month { font-size: 14px; font-weight: 700; }
.cart__row--total { font-size: 13px; font-weight: 700; }
/* Projects are open to beginners and initiated: two gommettes, orange + green */
.ws-tag--projet::before, .ws-dot--projet { background: var(--ws-debutant); box-shadow: 10px 0 0 var(--ws-libre); margin-right: 10px; }
.ws-session--projet::before { background: linear-gradient(var(--ws-debutant) 50%, var(--ws-libre) 50%); }
/* Sewing level on patterns and boxes (cards + product page) */
.level-tag { margin: 0; }
.level-tag .ws-tag { font-size: 9.5px; gap: 5px; }
.level-tag .ws-tag::before { width: 7px; height: 7px; }
.level-tag .ws-tag--projet::before { box-shadow: 9px 0 0 var(--ws-libre); margin-right: 9px; }
.card__level { display: flex; justify-content: center; margin-top: 6px; }
.pdp-level { margin-top: 8px; }
@media (max-width: 989px) { .pdp-info .pdp-level, .pdp-info [data-pv-level] { order: 1; margin-top: -10px; } }

/* ---------- Collabs, minimal (v84): lined grid, empty cells, small captions ---------- */
.collabs__grid { gap: 0; margin-top: 8px; border-top: 1px solid var(--c-line); border-left: 1px solid var(--c-line); }
.collabs .cb { background: none; padding: clamp(12px, 1.4vw, 20px) clamp(12px, 1.4vw, 20px) 14px; border-right: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 10px; }
.collabs .cb--empty { padding: 0; }
.collabs .cb__media { aspect-ratio: 4 / 5; background: var(--c-paper); }
.collabs .cb__media:has(.cb__plate) { aspect-ratio: 4 / 5; }
.collabs .cb__plate { background: var(--c-paper); justify-content: flex-end; padding: clamp(12px, 1.2vw, 18px); }
.collabs .cb__plate-name { font-size: clamp(13px, 1.1vw, 16px); line-height: 1.15; letter-spacing: -.01em; }
.cb__cap { display: flex; justify-content: space-between; gap: 12px; margin: 0; font-size: 10px; line-height: 1.45; letter-spacing: .03em; text-transform: uppercase; }
.cb__cap > span:last-child { text-align: right; }
.cb__muted { color: var(--c-muted); }
.collabs .cb:hover .cb__plate-name { letter-spacing: -.01em; }
@media (max-width: 749px) {
  .collabs .cb--empty { display: none; }
  .collabs .cb { padding: 10px 10px 12px; gap: 8px; }
  .collabs .cb__plate-name { font-size: 12px; }
  .cb__cap { font-size: 9px; flex-direction: column; gap: 2px; }
  .cb__cap > span:last-child { text-align: left; }
}

/* ---------- À propos ---------- */
.about { padding-bottom: clamp(64px, 9vw, 140px); }
.about__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 620px); gap: clamp(32px, 8vw, 160px); margin-top: 24px; }
.about__side { position: sticky; top: calc(var(--header-total) + 24px); align-self: start; display: grid; gap: 22px; }
.about__cloud { width: clamp(120px, 14vw, 200px); animation: cloud-float 6s ease-in-out infinite; }
.about__cloud img { width: 100%; height: auto; }
@keyframes cloud-float { 50% { transform: translate(6px, -6px) rotate(-2deg); } }
.about__side-text { font-size: 11px; line-height: 1.6; color: var(--c-muted); }
.about__side-text a { color: var(--c-fg); text-decoration: underline; text-underline-offset: 3px; }
.about__intro { font-size: clamp(15px, 1.3vw, 18px); line-height: 1.45; margin-bottom: clamp(36px, 4vw, 56px); max-width: 34ch; }
.about__intro strong { font-weight: 700; }
.about__chap { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 20px 0 22px; border-top: 1px solid var(--c-line); }
.about__n { margin: 0; font-size: 10px; color: var(--c-muted); padding-top: 2px; }
.about__t { margin: 0 0 8px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.about__txt { font-size: 13px; line-height: 1.7; max-width: 52ch; }
.about__txt p { margin: 0; }
.about__links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0; padding-top: 22px; border-top: 1px solid var(--c-line); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.about__links a { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 749px) {
  .about__grid { grid-template-columns: 1fr; gap: 28px; }
  .about__side { position: static; grid-template-columns: auto 1fr; align-items: end; }
  .about__cloud { width: 110px; }
}
@media (prefers-reduced-motion: reduce) { .about__cloud { animation: none; } }
/* About v87: image zone instead of the cloud, no rules between paragraphs */
.about__img { width: 100%; max-width: 420px; aspect-ratio: 4 / 5; background: var(--c-paper); overflow: hidden; display: grid; place-items: center; }
.about__img img { width: 100%; height: 100%; object-fit: cover; }
.about__img-empty { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.about__chap, .about__links { border-top: 0; }
.about__chap { padding: 14px 0 16px; }
@media (max-width: 749px) { .about__side { grid-template-columns: 1fr; } .about__img { max-width: none; } }
