/* TattooClub — « Me prévenir » modal (desktop) / bottom sheet (mobile). */
.tc-bis { --bis-ink: #111111; --bis-muted: #68645E; --bis-line: #E8E4DC; --bis-green: #B7E41C; --bis-green-soft: #F1F8D9; --bis-red: #D92D20; --bis-red-soft: #FDECEA; --bis-blue: #2F6FDB; --bis-blue-soft: #E8EFFC;
	position: fixed; inset: 0; z-index: 100050; display: flex; align-items: center; justify-content: center; padding: 20px; font-family: 'Space Grotesk', system-ui, sans-serif; color: var(--bis-ink); }
.tc-bis[hidden] { display: none; }
.tc-bis *, .tc-bis *::before, .tc-bis *::after { box-sizing: border-box; }
.tc-bis__backdrop { position: absolute; inset: 0; background: rgba(17, 17, 17, .55); opacity: 0; transition: opacity .2s; }
.tc-bis.is-open .tc-bis__backdrop { opacity: 1; }
.tc-bis__panel { position: relative; width: 100%; max-width: 440px; max-height: calc(100vh - 40px); overflow-y: auto; padding: 32px 30px 26px; border-radius: 20px; background: #fff; text-align: center; box-shadow: 0 24px 60px rgba(0, 0, 0, .25); outline: none; opacity: 0; transform: translateY(12px) scale(.98); transition: opacity .2s, transform .2s; }
.tc-bis.is-open .tc-bis__panel { opacity: 1; transform: none; }
.tc-bis__grab { display: none; }
.tc-bis__close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--bis-ink); cursor: pointer; box-shadow: none; }
.tc-bis__close:hover { background: #F3F0E9; color: var(--bis-ink); }
.tc-bis__svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tc-bis__ico { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 auto 14px; border-radius: 50%; }
.tc-bis__ico .tc-bis__svg { width: 28px; height: 28px; }
.tc-bis__ico--green { background: var(--bis-green-soft); color: #4F7A00; }
.tc-bis[data-state="success"] .tc-bis__ico--green, .tc-bis[data-state="instock"] .tc-bis__ico--green { background: var(--bis-green); color: var(--bis-ink); }
.tc-bis__ico--red { background: var(--bis-red); color: #fff; }
.tc-bis__ico--blue { background: var(--bis-blue-soft); color: var(--bis-blue); }
.tc-bis .tc-bis__title { margin: 0 0 8px; color: var(--bis-ink); font: 800 22px/1.2 'Space Grotesk', system-ui, sans-serif; letter-spacing: -.01em; text-transform: none; }
.tc-bis .tc-bis__lead { margin: 0 auto 20px; max-width: 340px; color: var(--bis-muted); font-size: 15px; line-height: 1.5; }
.tc-bis__prod { display: flex; align-items: center; gap: 14px; margin: 0 0 20px; padding: 12px; border: 1px solid var(--bis-line); border-radius: 14px; text-align: left; }
.tc-bis__img { flex: 0 0 auto; width: 72px; height: 72px; overflow: hidden; border-radius: 10px; background: #F9F5EF; }
.tc-bis__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tc-bis__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; color: var(--bis-muted); }
.tc-bis__meta strong { color: var(--bis-ink); font-size: 16px; overflow-wrap: anywhere; }
.tc-bis__price { color: var(--bis-ink); font-weight: 700; }
.tc-bis__form { margin: 0; }
.tc-bis__row { margin: 0 0 12px; text-align: left; }
.tc-bis__field { position: relative; display: block; }
.tc-bis__field .tc-bis__svg { position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--bis-muted); pointer-events: none; }
.tc-bis .tc-bis__field input { width: 100%; height: 52px; margin: 0; padding: 0 16px 0 44px; border: 1.5px solid var(--bis-line); border-radius: 12px; background: #fff; color: var(--bis-ink); font: 400 16px/1 'Space Grotesk', system-ui, sans-serif; box-shadow: none; }
.tc-bis .tc-bis__field input:focus { outline: none; border-color: var(--bis-ink); box-shadow: 0 0 0 3px rgba(183, 228, 28, .35); }
.tc-bis .tc-bis__field.is-invalid input, .tc-bis .tc-bis__field input.tc-fv-invalid { border-color: var(--bis-red); box-shadow: 0 0 0 3px rgba(217, 45, 32, .12); }
.tc-bis .tc-fv-error { display: block; margin-top: 6px; color: var(--bis-red); font-size: 13px; font-weight: 500; }
.tc-bis .tc-fv-error:empty { display: none; }
.tc-bis__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 52px; padding: 0 18px; border: 1.5px solid transparent; border-radius: 12px; background: #fff; color: var(--bis-ink); font: 800 15px/1 'Space Grotesk', system-ui, sans-serif; letter-spacing: 0; text-transform: none; cursor: pointer; box-shadow: none; transition: background .15s, border-color .15s, opacity .15s; }
.tc-bis__btn .tc-bis__svg { width: 18px; height: 18px; }
.tc-bis__btn--green { background: var(--bis-green); border-color: var(--bis-green); color: var(--bis-ink); }
.tc-bis__btn--green:hover { background: #A6D30F; border-color: #A6D30F; color: var(--bis-ink); }
.tc-bis__btn--outline { background: #fff; border-color: var(--bis-line); color: var(--bis-ink); }
.tc-bis__btn--outline:hover { border-color: var(--bis-ink); background: #fff; color: var(--bis-ink); }
.tc-bis__btn:disabled { opacity: .6; cursor: default; }
.tc-bis[data-state="invalid"] [data-bis-submit] { background: #E4E0D7; border-color: #E4E0D7; color: #8B867D; }
.tc-bis__btn:focus-visible, .tc-bis__close:focus-visible { outline: 2px solid var(--bis-ink); outline-offset: 2px; }
.tc-bis__note { margin: 12px 0 0; color: var(--bis-muted); font-size: 12.5px; line-height: 1.5; }
.tc-bis__actions { display: grid; gap: 10px; }
.tc-bis__actions[hidden], .tc-bis__actions [hidden], .tc-bis__form[hidden] { display: none; }
body.tc-bis-open { overflow: hidden; }

@media (max-width: 767px) {
	.tc-bis { align-items: flex-end; padding: 0; }
	.tc-bis__panel { max-width: none; max-height: 92vh; max-height: 92dvh; padding: 12px 20px calc(22px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; transform: translateY(100%); }
	.tc-bis.is-open .tc-bis__panel { transform: none; }
	.tc-bis__grab { display: block; width: 44px; height: 5px; margin: 0 auto 14px; border-radius: 99px; background: #D9D3C7; }
	.tc-bis__close { top: 14px; right: 10px; }
	.tc-bis .tc-bis__title { font-size: 20px; padding: 0 28px; }
	.tc-bis .tc-bis__lead { font-size: 14px; margin-bottom: 16px; }
	.tc-bis__ico { width: 54px; height: 54px; margin-bottom: 10px; }
	.tc-bis__prod { margin-bottom: 16px; }
	.tc-bis__img { width: 64px; height: 64px; }
}
@media (prefers-reduced-motion: reduce) { .tc-bis__panel, .tc-bis__backdrop { transition: none; } }

/* PDP: out-of-stock CTA pair (existing product page markup) */
.tc-pdp-addtocart.is-oos:disabled { opacity: 1; background: #BDB8AF; color: #fff; cursor: not-allowed; }
.tc-pdp-notify.tc-pdp-notify--cta { margin-top: 12px; padding: 0; background: none; }
.tc-pdp-notify__btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 18px; border: 1.5px solid #111111; border-radius: 999px; background: #fff; color: #111111; font: 700 14px/1 'Space Grotesk', system-ui, sans-serif; letter-spacing: 0; text-transform: none; cursor: pointer; box-shadow: none; transition: background .15s, color .15s; }
.tc-pdp-notify__btn:hover, .tc-pdp-notify__btn:focus { background: #111111; color: #fff; }
.tc-pdp-notify__btn:focus-visible { outline: 2px solid #111111; outline-offset: 3px; }
.tc-pdp-notify__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tc-pdp-mobile-bar__cta.is-notify { background: #fff; color: #111111; box-shadow: inset 0 0 0 1.5px #111111; opacity: 1; }
