/* Maison Valmaure — landing page (v2, white and disciplined; see STYLE.md) */
:root {
  --white: #FFFFFF;
  --paper: #F6F4EF;        /* product tiles, quiet bands */
  --tile: #F2F1EE;
  --beige: #EDE6DA;        /* secondary button */
  --ink: #111111;
  --ink-soft: #5C5A55;
  --line: #E4E1DA;
  --absinthe: #A8B86B;
  --absinthe-deep: #6F8040;
  --bouteille: #1F3326;
  --or: #B89B6A;
  --serif: "Newsreader", "Times New Roman", serif;
  --sans: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --wrap: 1200px;
  --gutter: clamp(16px, 4vw, 48px);
  --section: clamp(56px, 7vw, 104px);
  --ease: cubic-bezier(.22, .61, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.6; letter-spacing: -.005em; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: #fff; padding: 8px 14px; z-index: 200; }
.skip:focus { left: 8px; top: 8px; }
:focus-visible { outline: 1px solid var(--ink); outline-offset: 3px; }

/* ---------- Type ---------- */
.h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(28px, 2.8vw, 40px); line-height: 1.15; letter-spacing: -.01em; margin: 0 0 18px; }
.h3 { font-family: var(--serif); font-weight: 300; font-size: clamp(21px, 1.7vw, 25px); line-height: 1.25; margin: 0 0 8px; }
.center { text-align: center; }
.kicker { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 14px; }

.ulink {
  display: inline-block; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase;
  padding-bottom: 3px; border-bottom: 1px solid currentColor; transition: opacity .3s;
}
.ulink:hover { opacity: .55; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 32px;
  font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase;
  background: var(--ink); color: #fff; border: 1px solid var(--ink); transition: background .3s, color .3s;
}
.btn:hover { background: #fff; color: var(--ink); }
.btn--white { background: #fff; color: var(--ink); border-color: #fff; }
.btn--white:hover { background: transparent; color: #fff; }
.btn--beige { background: var(--beige); border-color: var(--beige); color: var(--ink); }

/* ---------- Announcement ---------- */
.announce { position: relative; background: var(--bouteille); color: #EFEDE6; text-align: center; font-size: 12px; padding: 9px 44px; }
.announce p { margin: 0; }
.announce a { text-decoration: underline; text-underline-offset: 3px; }
.announce__close { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 18px; line-height: 1; color: inherit; }

/* ---------- Header ---------- */
.header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid transparent; transition: border-color .3s; }
.header.is-scrolled { border-bottom-color: var(--line); }
.header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 18px var(--gutter) 6px; transition: padding .35s var(--ease); }
.header.is-scrolled .header__bar { padding-top: 10px; padding-bottom: 4px; }
.header__side { display: flex; align-items: center; gap: 22px; }
.header__side--right { justify-content: flex-end; }
.icon-link { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; position: relative; }
.icon-link svg { width: 18px; height: 18px; }
.wordmark { font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 3.6vw, 52px); letter-spacing: .14em; text-transform: uppercase; line-height: 1; margin-right: -.14em; transition: font-size .35s var(--ease); }
.header.is-scrolled .wordmark { font-size: clamp(24px, 2.4vw, 34px); }
.bag__count { position: absolute; top: -6px; right: -9px; font-size: 9px; min-width: 15px; height: 15px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; transform: scale(0); transition: transform .3s var(--ease); }
.bag.has-items .bag__count { transform: scale(1); }
.nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 30px; padding: 12px var(--gutter) 14px; font-size: 11.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.nav a { position: relative; padding: 4px 0; white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transition: transform .35s var(--ease); }
.nav a:hover::after { transform: scaleX(1); }
.nav__cabinet { display: inline-flex; align-items: center; gap: 6px; }
.nav__cabinet svg { width: 8px; height: 11px; color: var(--or); }
.header__menu { display: none; width: 30px; height: 30px; position: relative; }
.header__menu span { position: absolute; left: 5px; right: 5px; height: 1px; background: currentColor; transition: transform .3s var(--ease); }
.header__menu span:first-child { top: 11px; }
.header__menu span:last-child { top: 18px; }
.header__menu[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.header__menu[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.drawer { display: flex; flex-direction: column; padding: 4px var(--gutter) 24px; }
.drawer a { font-family: var(--serif); font-weight: 300; font-size: 24px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.drawer[hidden] { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; height: min(84svh, 860px); min-height: 520px; overflow: hidden; color: #fff; }
.hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.42) 100%); pointer-events: none; }
.hero__copy { position: absolute; left: 0; right: 0; bottom: clamp(40px, 8vh, 80px); text-align: center; z-index: 1; padding: 0 var(--gutter); }
.hero__title { font-family: var(--serif); font-weight: 300; font-size: clamp(44px, 5.4vw, 76px); line-height: 1; margin: 0 0 12px; letter-spacing: -.01em; }
.hero__lede { font-size: 16px; margin: 0 0 26px; opacity: .95; }

/* ---------- Sections ---------- */
.section { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: var(--section) var(--gutter) 0; }
.section--tight { padding-top: clamp(40px, 5vw, 72px); }
.section > .h2.center { margin-bottom: clamp(26px, 3vw, 40px); }

/* categories */
.cats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.cat { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.cat__img { display: block; width: 100%; overflow: hidden; background: var(--tile); }
.cat__img img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform 1s var(--ease); }
.cat:hover .cat__img img { transform: scale(1.04); }

/* two-up */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2vw, 24px); }
.duo__item { display: flex; flex-direction: column; align-items: center; text-align: center; }
.duo__img { display: block; width: 100%; overflow: hidden; margin-bottom: 22px; background: var(--tile); }
.duo__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.2s var(--ease); }
.duo__item:hover .duo__img img { transform: scale(1.03); }
.duo__item p { margin: 0 0 16px; color: var(--ink-soft); max-width: 420px; }

/* split blocks */
.split {
  max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: var(--section) var(--gutter) 0;
  display: grid; grid-template-columns: 5fr 7fr; gap: clamp(28px, 5vw, 80px); align-items: center;
}
.split--reverse { grid-template-columns: 7fr 5fr; }
.split--reverse .split__copy { order: 2; }
.split__copy { max-width: 420px; justify-self: center; text-align: center; }
.split__copy > p:not(.kicker) { color: var(--ink-soft); margin: 0 0 24px; }
.split__media { overflow: hidden; background: var(--tile); }
.split__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.actions { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.reps { list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-family: var(--serif); font-size: 19px; font-weight: 300; }
.reps li + li::before { content: "·"; margin-right: 18px; color: var(--or); }

/* door + keyhole */
.split__media--door { position: relative; }
.keyhole { position: absolute; width: 96px; height: 96px; transform: translate(-50%, -50%); border-radius: 50%; left: 50%; top: 40%; }
.keyhole::before, .keyhole::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(232, 214, 170, .7); animation: pulse 3.2s var(--ease) infinite; }
.keyhole::after { animation-delay: 1.6s; }
@keyframes pulse { 0% { transform: scale(.5); opacity: 0; } 30% { opacity: 1; } 100% { transform: scale(1.3); opacity: 0; } }

/* products */
.pieces__head { text-align: center; }
.filters { display: inline-flex; gap: 22px; margin: 0 0 30px; flex-wrap: wrap; justify-content: center; }
.filters button { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); padding-bottom: 3px; border-bottom: 1px solid transparent; }
.filters button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.pieces__track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px 16px; }
.piece { display: flex; flex-direction: column; text-align: center; }
.piece.is-hidden { display: none; }
.piece__media { position: relative; overflow: hidden; background: var(--tile); aspect-ratio: 4 / 5; }
.piece__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.piece:hover .piece__media img { transform: scale(1.04); }
.piece__badge { position: absolute; top: 12px; left: 12px; font-size: 9.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); display: inline-flex; align-items: center; gap: 6px; }
.piece__badge i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.piece--boutique .piece__badge i { background: var(--absinthe); }
.piece--salon .piece__badge i { border: 1px solid var(--or); }
.piece--cabinet .piece__badge { color: #E8D6AA; }
.piece--cabinet .piece__badge i { background: var(--or); }
.piece__body { padding: 16px 8px 0; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.piece__collection { display: none; }
.piece__name { font-family: var(--serif); font-weight: 300; font-size: 18px; line-height: 1.25; margin: 0; }
.piece__spec { font-size: 13px; color: var(--ink-soft); margin: 0; }
.piece__price { font-size: 13px; margin: 6px 0 0; }
.piece__price em { font-style: normal; color: var(--ink-soft); }
.piece__action { margin-top: 12px; font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.piece__action:hover { opacity: .55; }
.piece--cabinet .piece__media img { filter: blur(14px) brightness(.5) saturate(.7); transform: scale(1.1); }
.piece--cabinet .piece__media::after { content: "By invitation"; position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--serif); font-weight: 300; font-size: 21px; color: #E8D6AA; }
.piece--cabinet.is-unlocked .piece__media img { filter: none; transform: none; }
.piece--cabinet.is-unlocked .piece__media::after { content: none; }

/* experience */
.experience { padding-bottom: 0; }
.exp { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 64px); text-align: center; }
.exp__item p { color: var(--ink-soft); margin: 0 0 16px; }

/* reveal */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
.hero .reveal { animation: rise 1s var(--ease) forwards; }
.hero .reveal:nth-child(2) { animation-delay: .15s; }
.hero .reveal:nth-child(3) { animation-delay: .3s; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* ---------- Footer ---------- */
.footer { margin-top: var(--section); background: var(--paper); padding: clamp(48px, 6vw, 80px) var(--gutter) 24px; font-size: 13px; }
.footer__grid { max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr 1.5fr; gap: 32px; }
.footer__col { display: flex; flex-direction: column; gap: 9px; }
.footer__col h4 { font-family: var(--serif); font-weight: 400; font-size: 17px; margin: 0 0 6px; }
.footer__col a { color: var(--ink-soft); }
.footer__col a:hover { color: var(--ink); }
.footer__col p { color: var(--ink-soft); margin: 0 0 6px; }
.signup { display: flex; border-bottom: 1px solid var(--ink); max-width: 360px; }
.signup input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 14px; padding: 10px 0; }
.signup input:focus { outline: none; }
.signup button { font-size: 18px; padding: 0 4px; }
.signup__done { font-family: var(--serif); font-size: 16px; }
.footer__brand { text-align: center; font-family: var(--serif); font-weight: 300; font-size: clamp(36px, 5vw, 64px); letter-spacing: .14em; text-transform: uppercase; margin: clamp(40px, 5vw, 64px) 0 24px; }
.footer__bottom { max-width: var(--wrap); margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 12px; color: var(--ink-soft); }
.footer__bottom nav { display: flex; gap: 20px; flex-wrap: wrap; }

/* ---------- Modals ---------- */
.modal { width: min(540px, calc(100vw - 32px)); max-height: calc(100svh - 32px); border: 0; padding: clamp(28px, 5vw, 48px); background: #fff; color: var(--ink); }
.modal::backdrop { background: rgba(17,17,17,.45); }
.modal[open] { animation: modalIn .4s var(--ease); }
@keyframes modalIn { from { opacity: 0; transform: translateY(10px); } }
.modal__close { position: absolute; top: 12px; right: 16px; font-size: 26px; line-height: 1; }
.modal__title { font-family: var(--serif); font-weight: 300; font-size: 30px; line-height: 1.15; margin: 0 0 14px; }
.modal p { color: var(--ink-soft); }
.modal__piece { font-family: var(--serif); font-style: italic; color: var(--absinthe-deep) !important; margin: -4px 0 16px; }
.modal__done, .modal__error { font-family: var(--serif); font-size: 18px; }
.modal__error { color: #9B3B2B !important; font-size: 15px; }
.form { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form label { display: flex; flex-direction: column; gap: 6px; font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.form input, .form select, .form textarea { font: inherit; font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 8px 0; border-radius: 0; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-bottom-color: var(--ink); }
.form .btn { align-self: flex-start; margin-top: 6px; }

/* ---------- Toast ---------- */
.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 16px); background: var(--ink); color: #fff; padding: 13px 22px; font-size: 13px; opacity: 0; pointer-events: none; transition: all .4s var(--ease); z-index: 120; max-width: calc(100vw - 32px); }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .nav { display: none; }
  .header__menu { display: block; }
  .header__bar { padding-bottom: 14px; }
  .icon-link span, .icon-link--hide { display: none; }
  .pieces__track { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .split, .split--reverse { grid-template-columns: 1fr; }
  .split--reverse .split__copy { order: 2; }
  .split__copy { order: 2; }
  .split__media { order: 1; }
  .exp { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__col--signup { grid-column: span 2; }
}
@media (max-width: 760px) {
  .hero { height: 78svh; min-height: 480px; }
  .cats { grid-template-columns: repeat(5, 42vw); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); }
  .cats::-webkit-scrollbar { display: none; }
  .cat { scroll-snap-align: start; }
  .duo { grid-template-columns: 1fr; gap: 48px; }
  .pieces__track, .pieces__track--5 { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 66vw; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); }
  .pieces__track::-webkit-scrollbar { display: none; }
  .piece { scroll-snap-align: start; }
  .form__row { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .footer__col--signup { grid-column: auto; }
  .announce { font-size: 11px; }
  .header__bar { padding: 12px var(--gutter); }
  .header__side { gap: 14px; }
  .wordmark, .header.is-scrolled .wordmark { font-size: 24px; letter-spacing: .1em; margin-right: -.1em; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ============ v3: multi-page additions ============ */
.nav a[aria-current="page"]::after { transform: scaleX(1); }
.kicker--light { color: rgba(255,255,255,.85); }
.split__media--tall img { aspect-ratio: 4 / 5; }
.more { margin: 28px 0 0; }
.lede-narrow { max-width: 560px; margin: 0 auto 36px; color: var(--ink-soft); }

/* product card (now a link with spans) */
a.piece { color: inherit; }
.piece__media { display: block; }
.piece__body > span { display: block; }
.piece__alt { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--ease); }
.piece:hover .piece__alt { opacity: 1; }
.piece--cabinet:not(.is-unlocked) .piece__alt { display: none; }
.pieces__track--2 { grid-template-columns: repeat(2, minmax(0, 360px)); justify-content: center; }
.pieces__track--5 { grid-template-columns: repeat(5, 1fr); }

/* banner (collection, house, engagement) */
.banner { position: relative; height: min(72svh, 720px); min-height: 440px; overflow: hidden; color: #fff; }
.banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.5) 100%); }
.banner__copy { position: absolute; left: 0; right: 0; bottom: clamp(36px, 7vh, 72px); text-align: center; z-index: 1; padding: 0 var(--gutter); }
.banner__title { font-family: var(--serif); font-weight: 300; font-size: clamp(42px, 5vw, 72px); line-height: 1; margin: 0 0 10px; }
.banner__copy p:last-child { margin: 0; font-size: 16px; }

.intro { text-align: center; }
.intro__text { font-family: var(--serif); font-weight: 300; font-size: clamp(20px, 1.9vw, 26px); line-height: 1.45; max-width: 780px; margin: 0 auto; }

/* listing pages */
.page-head { text-align: center; }
.page-title { font-family: var(--serif); font-weight: 300; font-size: clamp(38px, 4.4vw, 60px); line-height: 1.05; margin: 0 0 14px; }
.page-lede { color: var(--ink-soft); max-width: 600px; margin: 0 auto 26px; }
.section--flush { padding-top: 36px; }
.chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-bottom: 18px; }
.chips button { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 10px 16px; border: 1px solid var(--line); }
.chips button[aria-selected="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.count { text-align: center; font-size: 12px; color: var(--ink-soft); margin: 0 0 22px; letter-spacing: .04em; }
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 16px; }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

/* product page */
.crumbs { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 22px var(--gutter) 0; font-size: 12px; color: var(--ink-soft); display: flex; gap: 8px; flex-wrap: wrap; }
.crumbs a:hover { color: var(--ink); }
.pdp { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 22px var(--gutter) 0; display: grid; grid-template-columns: 7fr 5fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.pdp__gallery { display: grid; grid-template-columns: 76px 1fr; gap: 14px; }
.pdp__main { grid-column: 2; grid-row: 1; position: relative; background: var(--tile); overflow: hidden; }
.pdp__main img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pdp__thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; }
.pdp__thumb { width: 76px; background: var(--tile); border: 1px solid transparent; opacity: .7; transition: opacity .3s, border-color .3s; }
.pdp__thumb img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pdp__thumb.is-active, .pdp__thumb:hover { opacity: 1; border-color: var(--ink); }
.pdp--locked .pdp__main img, .pdp--locked .pdp__thumb img { filter: blur(16px) brightness(.5); }
.pdp__lock { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--serif); font-size: 28px; font-weight: 300; color: #E8D6AA; }
.pdp:not(.pdp--locked) .pdp__lock { display: none; }
.pdp__info { position: sticky; top: 140px; text-align: left; }
.pdp__title { font-family: var(--serif); font-weight: 300; font-size: clamp(30px, 2.8vw, 40px); line-height: 1.1; margin: 4px 0 8px; }
.pdp__spec { color: var(--ink-soft); margin: 0 0 22px; }
.pdp__price { font-size: 16px; margin: 0 0 18px; }
.pdp__actions { display: flex; flex-direction: column; gap: 10px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.pdp__note { font-size: 13px; color: var(--ink-soft); margin: 6px 0 0; }
.btn--block { width: 100%; }
.pdp__desc p { margin: 22px 0; }
.pdp__acc { border-top: 1px solid var(--line); padding: 16px 0; }
.pdp__acc:last-child { border-bottom: 1px solid var(--line); }
.pdp__acc summary { cursor: pointer; list-style: none; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; display: flex; justify-content: space-between; }
.pdp__acc summary::after { content: "+"; font-size: 16px; line-height: 1; }
.pdp__acc[open] summary::after { content: "–"; }
.pdp__acc summary::-webkit-details-marker { display: none; }
.pdp__acc ul { margin: 14px 0 0; padding-left: 18px; color: var(--ink-soft); }
.pdp__acc p { margin: 14px 0 0; color: var(--ink-soft); }

/* house + engagement + representatives */
.trio, .guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.guide { grid-template-columns: repeat(4, 1fr); }
.trio figure, .guide figure, figure.duo__item { margin: 0; }
.trio img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.guide img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.trio figcaption, .guide figcaption { padding-top: 16px; color: var(--ink-soft); text-align: center; }
.trio figcaption strong, .guide figcaption strong { display: block; font-family: var(--serif); font-weight: 300; font-size: 22px; color: var(--ink); margin-bottom: 4px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); text-align: center; padding: 8px 0 0; border-top: 1px solid var(--line); }
.steps > div { padding-top: 28px; }
.steps__n { font-family: var(--serif); font-style: italic; color: var(--or); font-size: 18px; }
.steps p { color: var(--ink-soft); margin: 0; }
.cities { display: grid; grid-template-columns: repeat(6, 1fr); gap: 36px 20px; }
.city { grid-column: span 2; text-align: center; }
.city:nth-child(4) { grid-column: 2 / span 2; }
.city img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 18px; }
.city p { color: var(--ink-soft); margin: 0 0 12px; }

@media (max-width: 1100px) {
  .grid, .grid--4 { grid-template-columns: repeat(3, 1fr); }
  .guide { grid-template-columns: repeat(2, 1fr); }
  .cities { grid-template-columns: repeat(2, 1fr); }
  .city, .city:nth-child(4) { grid-column: auto; }
}
@media (max-width: 900px) {
  .pdp { grid-template-columns: 1fr; }
  .pdp__info { position: static; }
  .pdp__gallery { grid-template-columns: 1fr; }
  .pdp__main { grid-column: 1; }
  .pdp__thumbs { grid-column: 1; grid-row: 2; flex-direction: row; overflow-x: auto; }
  .pdp__thumb { flex: 0 0 64px; width: 64px; }
  .trio, .steps { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .grid, .grid--4 { grid-template-columns: repeat(2, 1fr); gap: 26px 10px; }
  .pieces__track--2 { grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0; overflow: visible; }
  .guide, .cities { grid-template-columns: 1fr; }
  .banner { height: 70svh; }
  .piece__alt { display: none; }
}
@media (max-width: 1100px) { .pieces__track--5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .pieces__track--5 { grid-template-columns: none; } .pieces__track--2 { grid-auto-flow: row; } }

/* ---------- Home hero v2: La Goutte diptych + text band (Tiffany-style) ---------- */
.diptych { display: grid; grid-template-columns: 1fr 1fr; height: min(calc(100svh - 150px), 820px); min-height: 480px; }
.diptych__img { display: block; overflow: hidden; background: var(--tile); }
.diptych__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; transition: transform 1.6s var(--ease); }
.diptych__img--product img { object-position: 50% 50%; }
.diptych__img:hover img { transform: scale(1.025); }
.hero-band { text-align: center; padding: clamp(36px, 4.5vw, 60px) var(--gutter) 0; }
.hero-band .kicker { margin-bottom: 10px; }
.hero-band__title { font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 4.6vw, 64px); line-height: 1; letter-spacing: -.01em; margin: 0 0 14px; }
.hero-band__lede { color: var(--ink-soft); max-width: 520px; margin: 0 auto 26px; font-size: 16px; }
.hero-band .reveal { opacity: 0; transform: translateY(14px); animation: rise 1s var(--ease) forwards; }
.hero-band .reveal:nth-child(2) { animation-delay: .1s; }
.hero-band .reveal:nth-child(3) { animation-delay: .2s; }
.hero-band .reveal:nth-child(4) { animation-delay: .3s; }
@media (max-width: 760px) {
  .diptych { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .diptych__img { aspect-ratio: 4 / 5; }
  .diptych__img--product { display: none; }
}
.credits { text-align: center; font-size: 11px; color: var(--ink-soft); margin: 36px auto 0; max-width: 760px; }
.credits a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Home hero v3: single full-width La Goutte image ---------- */
.hero--goutte { height: min(calc(100svh - 140px), 860px); background: #1a120c; }
.hero--goutte .hero__media img { object-position: 50% 74%; }
.hero--goutte::after { background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.55) 100%); }
.hero .reveal:nth-child(4) { animation-delay: .45s; }
@media (max-width: 760px) {
  .hero--goutte { height: auto; min-height: 0; max-height: none; }
  .hero--goutte .hero__media { display: block; position: relative; aspect-ratio: 4 / 5; overflow: hidden; }
  .hero--goutte::after { display: none; }
  .hero--goutte .hero__copy { position: static; padding: 30px var(--gutter) 40px; }
  .hero--goutte .hero__media img { object-position: 50% 50%; }
}

/* ---------- Home hero v4: the House cover, text on the left ---------- */
.hero--cover { height: min(calc(100svh - 140px), 860px); background: #2a2218; }
.hero--cover .hero__media img { object-position: 62% 50%; }
.hero--cover::after { background: linear-gradient(90deg, rgba(24,18,12,.62) 0%, rgba(24,18,12,.38) 32%, rgba(24,18,12,0) 58%), linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,.25) 100%); }
.hero--cover .hero__copy { left: var(--gutter); right: auto; bottom: clamp(48px, 11vh, 120px); max-width: 500px; text-align: left; padding: 0; }
.hero--cover .hero__title { font-size: clamp(46px, 5.6vw, 84px); margin-bottom: 16px; }
.hero--cover .hero__lede { max-width: 420px; line-height: 1.55; }
.hero__ctas { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.ulink--light { color: #fff; }
@media (max-width: 760px) {
  .hero--cover { height: auto; min-height: 0; max-height: none; }
  .hero--cover .hero__media { display: block; position: relative; aspect-ratio: 4 / 5; overflow: hidden; }
  .hero--cover .hero__media img { object-position: 50% 60%; }
  .hero--cover::after { display: none; }
  .hero--cover .hero__copy { position: static; max-width: none; padding: 30px var(--gutter) 40px; }
}

/* ============ v5: Tiffany-style product page ============ */
.pdp2 { max-width: 1440px; margin: 0 auto; padding: 18px var(--gutter) 0; display: grid; grid-template-columns: minmax(280px, 360px) 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.pdp2__info { position: sticky; top: 130px; padding-top: 24px; }
.pdp2__info .pdp__title { font-size: clamp(28px, 2.4vw, 36px); }
.pdp2__info .pdp__price { font-size: 15px; margin: 4px 0 22px; }
.pdp2__info .pdp__actions { border-bottom: 0; padding-bottom: 12px; }
.metals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 22px; }
.metal { display: flex; flex-direction: column; align-items: center; gap: 8px; padding-bottom: 8px; border-bottom: 1px solid transparent; font-size: 11px; color: var(--ink-soft); text-align: center; }
.metal img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--tile); border: 1px solid transparent; }
.metal.is-active { color: var(--ink); border-bottom-color: var(--ink); }
.metal.is-active img, .metal:hover img { border-color: var(--line); }
.pdp__size { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.pdp__size select { font: inherit; font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--ink); padding: 12px; border: 1px solid var(--line); background: #fff; }
.pdp__perks { list-style: none; padding: 16px 0 0; margin: 10px 0 0; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-soft); display: grid; gap: 8px; }
.pdp__perks li::before { content: "·"; color: var(--or); margin-right: 8px; }

.pdp2__gallery { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.g-tile { margin: 0; position: relative; background: var(--tile); overflow: hidden; }
.g-tile img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.g-tile--full { grid-column: 1 / -1; }
.g-tile--full img { aspect-ratio: 5 / 4; }
.g-tile--paper { background: #F6F1E6; }
.g-tile--paper img { object-fit: contain; aspect-ratio: 4 / 3; }
.g-tile figcaption { position: absolute; left: 12px; bottom: 10px; font-size: 11px; color: #fff; background: rgba(0,0,0,.35); padding: 4px 8px; }
.g-tile--3d { aspect-ratio: 1; display: grid; place-items: center; background: radial-gradient(circle at 50% 45%, #fff 0%, var(--tile) 70%); }
.g-tile--3d canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; cursor: grab; }
.g-3d__label { position: absolute; top: 12px; left: 12px; font-size: 10.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); z-index: 1; }
.g-3d__start { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding: 14px 22px; border: 1px solid var(--ink); background: rgba(255,255,255,.7); }
.g-tile--3d.is-live .g-3d__start { display: none; }
.pdp--locked .g-tile img { filter: blur(18px) brightness(.5); }
.pdp--locked .g-tile--3d, .pdp--locked .g-tile--paper { display: none; }
.pdp__lockwrap { position: absolute; inset: 0; z-index: 2; display: grid; place-items: start center; padding-top: 30%; pointer-events: none; }

.pdp2__about { max-width: 1440px; margin: 0 auto; padding: clamp(48px, 6vw, 88px) var(--gutter) 0; display: grid; grid-template-columns: minmax(280px, 360px) 1fr; gap: clamp(28px, 4vw, 64px); }
.pdp2__about-text { grid-column: 2; max-width: 760px; }
.pdp2__lead { font-family: var(--serif); font-weight: 300; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.45; margin: 0 0 22px; }
.pdp2__facts { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 14px; color: var(--ink-soft); }
.pdp2__facts li::before { content: "•"; margin-right: 8px; color: var(--ink); }
.pdp2__guide { width: 100%; max-width: 680px; margin: 18px auto 0; display: block; }
.pdp2__service { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); text-align: center; border-top: 1px solid var(--line); margin-top: var(--section); }
.pdp2__service > div { padding-top: 36px; }
.pdp2__service p { color: var(--ink-soft); margin: 0 0 12px; }
.pdp2__faq { max-width: 820px; }
.piece__metals { display: flex; gap: 6px; justify-content: center; margin-top: 8px; }
.piece__metals i { width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); }
.m-rose { background: #E9B49A; } .m-yellow { background: #E7C373; } .m-white { background: #E4E4E1; }

@media (max-width: 900px) {
  .pdp2, .pdp2__about { grid-template-columns: 1fr; }
  .pdp2__info { position: static; order: 2; padding-top: 0; }
  .pdp2__gallery { order: 1; grid-template-columns: 1fr; }
  .pdp2__about-text { grid-column: 1; }
  .pdp2__service { grid-template-columns: 1fr; }
}
.piece__body > .piece__metals { display: flex; }
.piece__metals i { display: block; flex: none; }
@media (max-width: 900px) {
  .pdp2__gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 6px; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); scrollbar-width: none; }
  .pdp2__gallery::-webkit-scrollbar { display: none; }
  .pdp2__gallery .g-tile { flex: 0 0 88%; scroll-snap-align: center; }
  .pdp2__gallery .g-tile img { aspect-ratio: 1; }
  .pdp2__gallery .g-tile--3d { aspect-ratio: 1; }
}

/* ============ v6: Tiffany-style listing ============ */
.page-head--list { padding-top: 28px; padding-bottom: 0; }
.page-head--list .kicker { margin: 0; }
.listing { max-width: 1440px; margin: 0 auto; padding: 18px var(--gutter) 0; }
.cat-row { display: flex; justify-content: center; gap: 14px; margin: 0 0 26px; overflow-x: auto; scrollbar-width: none; }
.cat-row::-webkit-scrollbar { display: none; }
.cat-row__item { flex: 0 0 140px; display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 10.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.cat-row__img { display: block; width: 140px; aspect-ratio: 1; overflow: hidden; background: var(--tile); border: 1px solid transparent; transition: border-color .3s; }
.cat-row__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.cat-row__item:hover img { transform: scale(1.05); }
.cat-row__item.is-active { color: var(--ink); }
.cat-row__item.is-active .cat-row__img { border-color: var(--ink); }

.toolbar { position: sticky; top: 104px; z-index: 20; background: #fff; display: grid; grid-template-columns: auto auto 1fr auto auto; align-items: center; gap: 22px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 18px; }
.header.is-scrolled ~ main .toolbar { top: 88px; }
.toolbar__sort { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.toolbar__sort select { font: inherit; font-size: 13px; letter-spacing: 0; text-transform: none; border: 0; background: transparent; padding: 4px 2px; cursor: pointer; }
.toolbar__count { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.toolbar__title { font-family: var(--serif); font-weight: 300; font-size: clamp(24px, 2.2vw, 32px); margin: 0; text-align: center; }
.toolbar__chips { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.fchip { font-size: 11px; padding: 6px 10px; background: var(--tile); }
.toolbar__filters { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 10px 16px; border: 1px solid var(--line); }
.toolbar__filters svg { width: 18px; height: 18px; }

.lgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 16px; }
.lgrid .piece__media { aspect-ratio: 1 / 1.05; }
.lgrid .piece__name { font-size: 20px; }
.lgrid__empty { text-align: center; color: var(--ink-soft); padding: 40px 0; }
.ed-tile { position: relative; display: block; overflow: hidden; background: #111; min-height: 100%; }
.ed-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.ed-tile:hover img { transform: scale(1.04); }
.ed-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.55) 100%); }
.ed-tile--wide { grid-column: span 2; }
.ed-tile__copy { position: absolute; left: 26px; right: 26px; bottom: 24px; z-index: 1; color: #fff; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ed-tile__kicker { font-size: 10.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.ed-tile__title { font-family: var(--serif); font-weight: 300; font-size: clamp(24px, 2.2vw, 34px); line-height: 1.1; }
.ed-tile__cta { margin-top: 8px; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; background: #fff; color: var(--ink); padding: 11px 18px; }

.fdrawer { margin: 0 0 0 auto; height: 100svh; max-height: 100svh; width: min(420px, 100vw); border: 0; padding: 0; background: #fff; display: none; flex-direction: column; }
.fdrawer[open] { display: flex; animation: drawerIn .35s var(--ease); }
@keyframes drawerIn { from { transform: translateX(30px); opacity: 0; } }
.fdrawer::backdrop { background: rgba(17,17,17,.35); }
.fdrawer__head { display: flex; justify-content: space-between; align-items: center; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.fdrawer__head .modal__close { position: static; }
.fdrawer__body { flex: 1; overflow-y: auto; padding: 8px 26px; }
.fgroup { border: 0; border-bottom: 1px solid var(--line); padding: 18px 0; margin: 0; }
.fgroup legend { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding: 0; margin-bottom: 12px; }
.fcheck { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-size: 14px; cursor: pointer; }
.fcheck input { width: 16px; height: 16px; accent-color: var(--ink); }
.fdrawer__foot { display: flex; justify-content: space-between; align-items: center; padding: 18px 26px; border-top: 1px solid var(--line); }

@media (max-width: 1100px) { .toolbar { grid-template-columns: auto 1fr auto; } .toolbar__count, .toolbar__chips { display: none; } }
@media (max-width: 900px) { .lgrid { grid-template-columns: repeat(2, 1fr); } .toolbar { top: 64px; } }
@media (max-width: 760px) {
  .lgrid { gap: 24px 8px; }
  .ed-tile { min-height: 70vw; }
  .ed-tile--wide { grid-column: 1 / -1; }
  .cat-row { justify-content: flex-start; }
  .cat-row__item { flex-basis: 100px; } .cat-row__img { width: 100px; }
  .toolbar__title { font-size: 20px; }
  .toolbar__sort span, .toolbar__sort { font-size: 0; } .toolbar__sort select { font-size: 13px; }
}

/* ======================= v7: site services (search, bag, wishlist, consent, small pages) ======================= */
button { cursor: pointer; }
:focus-visible { outline: 1px solid var(--ink); outline-offset: 3px; }
.wish-link.has-items .bag__count { transform: scale(1); }
.footer__linkbtn { font: inherit; color: inherit; padding: 0; }
.footer__linkbtn:hover { color: var(--ink); }
.footer__lang { display: inline-flex; gap: 6px; align-items: baseline; }
.drawer__sub { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; padding-top: 14px; }
.drawer__sub a { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; padding: 10px 0; border: 0; }

/* Card: save heart */
.piece { position: relative; }
.piece__link { display: flex; flex-direction: column; color: inherit; }
.piece__save { position: absolute; top: 8px; right: 8px; z-index: 2; width: 36px; height: 36px; display: grid; place-items: center; color: var(--ink); opacity: 0; transition: opacity .3s var(--ease); }
.piece__save svg, .pdp__save svg { width: 18px; height: 18px; transition: transform .3s var(--ease); }
.piece:hover .piece__save, .piece__save:focus-visible, .piece__save.is-saved { opacity: 1; }
.piece__save.is-saved svg path, .pdp__save.is-saved svg path { fill: currentColor; }
.piece__save:active svg, .pdp__save:active svg { transform: scale(.85); }
.piece--cabinet:not(.is-unlocked) .piece__save { color: #E8D6AA; }
@media (hover: none) { .piece__save { opacity: 1; } }
.pdp__titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pdp__save { flex: none; width: 40px; height: 40px; display: grid; place-items: center; margin-top: 2px; }
.pdp__size.is-error select { border-color: #9B3B2B; }

/* Side drawer (bag) */
.side-drawer { margin: 0 0 0 auto; height: 100svh; max-height: 100svh; width: min(440px, 100vw); border: 0; padding: 0; background: #fff; color: var(--ink); display: none; flex-direction: column; }
.side-drawer[open] { display: flex; animation: drawerIn .35s var(--ease); }
.side-drawer::backdrop { background: rgba(17,17,17,.35); }
.sd__head { display: flex; justify-content: space-between; align-items: center; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.sd__head .h3 { margin: 0; }
.sd__head .modal__close { position: static; }
.sd__body { flex: 1; overflow-y: auto; padding: 0 26px; }
.sd__empty { padding: 48px 0; text-align: center; color: var(--ink-soft); display: grid; gap: 18px; justify-items: center; }
.sd__foot { padding: 20px 26px 24px; border-top: 1px solid var(--line); display: grid; gap: 10px; }
.sd__total { display: flex; justify-content: space-between; font-size: 14px; padding: 4px 0; }
.sd__total--muted { color: var(--ink-soft); }
.sd__total--grand { font-family: var(--serif); font-size: 20px; border-top: 1px solid var(--line); margin-top: 8px; padding-top: 14px; }
.sd__note { font-size: 12.5px; color: var(--ink-soft); margin: 0 0 6px; }
.bline { display: grid; grid-template-columns: 92px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.bline__img { background: var(--tile); aspect-ratio: 4 / 5; overflow: hidden; }
.bline__img img { width: 100%; height: 100%; object-fit: cover; }
.bline__info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bline__name { font-family: var(--serif); font-weight: 300; font-size: 18px; line-height: 1.25; }
.bline__meta { font-size: 12.5px; color: var(--ink-soft); }
.bline__row { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.bline__price { font-size: 14px; }
.bline__remove { align-self: flex-start; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); border-bottom: 1px solid currentColor; padding: 0 0 1px; margin-top: 8px; }
.bline__remove:hover { color: var(--ink); }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line); }
.qty button { width: 30px; height: 30px; font-size: 15px; }
.qty span { min-width: 22px; text-align: center; font-size: 13px; }

/* Search overlay */
.search { width: 100vw; max-width: none; height: auto; max-height: 100svh; margin: 0; border: 0; padding: 0; background: #fff; color: var(--ink); overflow-y: auto; }
.search[open] { animation: searchIn .35s var(--ease); }
.search::backdrop { background: rgba(17,17,17,.35); }
@keyframes searchIn { from { transform: translateY(-14px); opacity: 0; } }
.search__inner { max-width: 1200px; margin: 0 auto; padding: 26px var(--gutter) 44px; }
.search__form { display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--ink); padding-bottom: 10px; }
.search__form svg { width: 20px; height: 20px; flex: none; }
.search__form input { flex: 1; min-width: 0; font: inherit; font-family: var(--serif); font-weight: 300; font-size: clamp(22px, 2.6vw, 32px); border: 0; background: transparent; color: var(--ink); padding: 4px 0; }
.search__form input:focus { outline: none; }
.search__form input::-webkit-search-cancel-button { display: none; }
.search__form .modal__close { position: static; }
.search__results { display: grid; grid-template-columns: 220px 1fr; gap: 48px; padding-top: 30px; }
.search__col { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.search__pop, .search__page { font-family: var(--serif); font-weight: 300; font-size: 19px; padding: 3px 0; text-align: left; }
.search__pop:hover, .search__page:hover { color: var(--absinthe-deep); }
.search__none { color: var(--ink-soft); margin: 0 0 4px; }
.search__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; width: 100%; margin-bottom: 14px; }
.search__item { display: flex; flex-direction: column; gap: 4px; text-align: center; }
.search__img { background: var(--tile); aspect-ratio: 1; overflow: hidden; margin-bottom: 8px; }
.search__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.search__item:hover .search__img img { transform: scale(1.04); }
.search__name { font-family: var(--serif); font-weight: 300; font-size: 16px; line-height: 1.25; }
.search__price { font-size: 12px; color: var(--ink-soft); }
.search__form--page { max-width: 640px; margin: 10px auto 18px; }
.search__form--page .btn { flex: none; }
.search__pagesh { margin-top: 56px; }
.search__pages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.search__pages a { border-top: 1px solid var(--line); padding: 16px 0; display: grid; gap: 4px; }
.search__pages strong { font-family: var(--serif); font-weight: 300; font-size: 20px; }
.search__pages span { font-size: 13px; color: var(--ink-soft); }

/* Cookie consent */
.consent { position: fixed; right: 24px; bottom: 24px; z-index: 80; width: min(440px, calc(100vw - 32px)); background: #fff; color: var(--ink); padding: 26px 28px; box-shadow: 0 18px 50px rgba(17,17,17,.14); border: 1px solid var(--line); transform: translateY(24px); opacity: 0; visibility: hidden; transition: all .5s var(--ease); }
.consent.is-on { transform: none; opacity: 1; visibility: visible; }
.consent p:not(.kicker) { font-size: 13.5px; color: var(--ink-soft); margin: 0 0 18px; }
.consent p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.consent__actions .btn { padding-left: 22px; padding-right: 22px; }
.consent__form { display: grid; gap: 4px; margin-top: 6px; }
.toggle { display: flex !important; flex-direction: row !important; justify-content: space-between; align-items: center; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--ink-soft); text-transform: none !important; letter-spacing: 0 !important; }
.toggle strong { color: var(--ink); font-weight: 500; }
.toggle input { appearance: none; flex: none; width: 40px; height: 22px; border-radius: 11px; background: var(--line); position: relative; cursor: pointer; transition: background .25s; }
.toggle input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease); }
.toggle input:checked { background: var(--bouteille); }
.toggle input:checked::after { transform: translateX(18px); }
.toggle input:disabled { opacity: .55; cursor: default; }
.consent__form .btn { margin-top: 18px; justify-self: start; }
.toast a { color: var(--absinthe); margin-left: 10px; border-bottom: 1px solid currentColor; pointer-events: auto; }
.toast.is-on { pointer-events: auto; }

/* Small info pages */
.info__head { max-width: 760px; margin: 0 auto; padding: clamp(36px, 5vw, 64px) var(--gutter) 0; text-align: center; }
.info__draft { display: inline-block; font-size: 12px; color: #7A5B1E; background: #F7F0DF; padding: 8px 14px; margin: 0 0 8px; }
.info__hero { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 26px auto 0; padding: 0 var(--gutter); }
.info__hero img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; }
.info__layout { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: clamp(40px, 5vw, 72px) var(--gutter) 0; display: grid; grid-template-columns: 220px 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.info__nav { position: sticky; top: 150px; display: flex; flex-direction: column; gap: 2px; }
.info__nav a { font-size: 14px; color: var(--ink-soft); padding: 7px 0 7px 14px; border-left: 1px solid var(--line); }
.info__nav a:hover { color: var(--ink); }
.info__nav a[aria-current] { color: var(--ink); border-left-color: var(--ink); }
.info__body { max-width: 720px; }
.info__sec { margin-bottom: 52px; }
.info__sec > .h3 { font-size: clamp(24px, 2vw, 30px); margin-bottom: 16px; }
.info__sec p, .info__sec li { color: var(--ink-soft); line-height: 1.7; }
.info__sec ul { padding-left: 18px; }
.info__sec a:not(.btn) { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.info__sec .ulink { text-decoration: none; }
.info__help { background: var(--paper); padding: 32px; margin-top: 16px; }
.info__help p { color: var(--ink-soft); }
table.sizes { width: 100%; border-collapse: collapse; font-size: 14px; margin: 8px 0 18px; }
table.sizes th, table.sizes td { text-align: left; padding: 11px 10px; border-bottom: 1px solid var(--line); }
table.sizes th { font-size: 10.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.form--page { margin-top: 18px; }
.form__done { font-family: var(--serif); font-size: 20px; color: var(--ink) !important; }
.form label.is-error { color: #9B3B2B; }
.form label.is-error input, .form label.is-error select { border-bottom-color: #9B3B2B; }
.form .fcheck { flex-direction: row; align-items: flex-start; text-transform: none; letter-spacing: 0; font-size: 13.5px; font-weight: 400; color: var(--ink-soft); }
.form .fcheck input { margin-top: 2px; flex: none; }
.form .fcheck a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

/* Le Journal */
.jfeature { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: center; margin-bottom: clamp(48px, 6vw, 88px); }
.jfeature__img, .jcard__img { display: block; overflow: hidden; background: var(--tile); }
.jfeature__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--ease); }
.jfeature:hover img, .jcard:hover img { transform: scale(1.03); }
.jfeature__copy { display: grid; gap: 14px; justify-items: start; color: var(--ink-soft); }
.jfeature__copy .h2 { color: var(--ink); margin: 0; }
.jgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px 20px; }
.jcard { display: grid; gap: 8px; align-content: start; }
.jcard__img { margin-bottom: 10px; }
.jcard__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.2s var(--ease); }
.jcard .kicker { margin: 0; }
.jcard .h3 { margin: 0; }
.jcard__lede { font-size: 14px; color: var(--ink-soft); }
.article__head { max-width: 760px; margin: 0 auto; padding: clamp(36px, 5vw, 64px) var(--gutter) 0; text-align: center; }
.article__hero { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 30px auto 0; padding: 0 var(--gutter); }
.article__hero img { width: 100%; max-height: 78svh; aspect-ratio: 3 / 2; object-fit: cover; }
.article__body { max-width: 680px; margin: 0 auto; padding: clamp(40px, 5vw, 64px) var(--gutter) 0; }
.article__body p { font-family: var(--serif); font-weight: 300; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.65; margin: 0 0 1.2em; }
.article__first::first-letter { float: left; font-size: 4.2em; line-height: .8; padding: 6px 10px 0 0; color: var(--absinthe-deep); }
.article__links { display: flex; flex-wrap: wrap; gap: 14px 28px; padding-top: 18px; border-top: 1px solid var(--line); margin-top: 32px; }

/* Account, bag page, checkout */
.account { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 24px var(--gutter) 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.account__col { padding: clamp(28px, 4vw, 52px); border: 1px solid var(--line); }
.account__col--alt { background: var(--paper); border-color: var(--paper); }
.account__col p { color: var(--ink-soft); }
.account__note { font-size: 13px; color: var(--ink-soft); margin: 0; }
.actions--left { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: 14px 22px; margin: 22px 0; }
.account__links { list-style: none; padding: 18px 0 0; margin: 0; border-top: 1px solid var(--line); display: grid; gap: 10px; font-size: 14px; }
.account__links a { border-bottom: 1px solid currentColor; }
.checkout { max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 8px var(--gutter) 0; display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.checkout fieldset { border: 0; padding: 0 0 30px; margin: 0 0 8px; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 18px; }
.checkout legend { padding: 0; margin-bottom: 18px; }
.checkout__summary { position: sticky; top: 150px; background: var(--paper); padding: 30px; }
.checkout__summary .bline { border-color: rgba(0,0,0,.08); }
.checkout__summary .bline__img { background: #fff; }
.checkout__summary .pdp__perks { border-color: rgba(0,0,0,.08); margin-top: 18px; }
.checkout__error { color: #9B3B2B !important; font-size: 14px; margin: 0; }
.checkout .btn--block { margin-top: 18px; }
.radios { display: grid; gap: 10px; }
.radio { flex-direction: row !important; align-items: flex-start; gap: 12px !important; border: 1px solid var(--line); padding: 14px 16px; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; font-weight: 400 !important; }
.radio strong { color: var(--ink); font-weight: 500; }
.radio input { accent-color: var(--ink); margin-top: 3px; }
.radio:has(input:checked) { border-color: var(--ink); }
.confirm .btn { margin-top: 10px; }
.notfound .actions { margin-top: 20px; }

@media (max-width: 900px) {
  .info__layout { grid-template-columns: 1fr; }
  .info__nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .info__nav .kicker { width: 100%; }
  .info__nav a { border: 1px solid var(--line); padding: 7px 12px; font-size: 13px; }
  .info__nav a[aria-current] { border-color: var(--ink); }
  .checkout, .account, .jfeature { grid-template-columns: 1fr; }
  .checkout__summary { position: static; order: -1; }
  .search__results { grid-template-columns: 1fr; gap: 28px; }
  .search__grid { grid-template-columns: repeat(2, 1fr); }
  .search__pages { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .consent { right: 0; bottom: 0; width: 100%; padding: 22px var(--gutter) calc(22px + env(safe-area-inset-bottom)); border-width: 1px 0 0; }
  .info__hero img { aspect-ratio: 4 / 3; }
  .search__inner { padding-top: 16px; }
  .search__form .btn { padding-left: 18px; padding-right: 18px; }
  .search__col:first-child { flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
  .search__col:first-child .kicker { width: 100%; margin-bottom: 4px; }
  .search__pop, .search__page { font-size: 17px; }
  .info__help { padding: 24px; }
}
.info__figure { width: 100%; margin-top: 12px; background: var(--paper); }
