@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@500;600;700;800&family=Montserrat:wght@400;500;600;700;800&display=swap');

:root {
  --font-site: "Century Gothic", "CenturyGothic", "Montserrat", AppleGothic, sans-serif;
  color-scheme: light;
  --ink: #10162e;
  --ink-soft: #566078;
  --paper: #f8f9fc;
  --surface: #ffffff;
  --line: #e6e9f2;
  --violet: #7257ff;
  --violet-deep: #5540db;
  --cyan: #22d3ee;
  --coral: #ff7a68;
  --amber: #ffc857;
  --mint: #53dfb0;
  --night: #0a1026;
  --night-2: #111936;
  --night-line: rgba(181, 194, 255, 0.16);
  --shadow-sm: 0 8px 24px rgba(29, 39, 83, .07);
  --shadow-md: 0 18px 44px rgba(29, 39, 83, .13);
  --radius-lg: 1.2rem;
  --radius-xl: 1.5rem;
  --button-radius: .68rem;
}

/* Typographie globale du site. La police locale est privilégiée lorsqu'elle
   est disponible, avec des équivalents proches sur les appareils qui ne
   l'embarquent pas. */
html,
body,
body * {
  font-family: var(--font-site) !important;
}

* {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
}

.hidden {
  display: none !important;
}

html {
  min-height: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(800px 420px at 100% -5%, rgba(114, 87, 255, .1), transparent 64%),
    radial-gradient(720px 420px at -5% 12%, rgba(255, 122, 104, .08), transparent 62%),
    var(--paper);
  font-family: var(--font-site) !important;
  letter-spacing: -.01em;
}

h1, h2, h3, h4, h5, h6, .font-heading {
  font-family: Garamond, "EB Garamond", "Times New Roman", Times, serif !important;
  letter-spacing: -.045em;
}

button, input, select, textarea {
  font: inherit;
}

button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
  font-family: var(--font-site) !important;
}

button, a, select {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

/* Nouveau langage des contrôles : angles doux, silhouette plus compacte */
button:not(.hero-editorial-control):not(.hero-editorial-dots button),
input[type="submit"],
input[type="button"] {
  border-radius: var(--button-radius);
}

button svg,
a svg,
label svg {
  stroke-width: 1.85;
}

/* -------------------------------------------------------------------------- */
/* Shared navigation                                                          */
/* -------------------------------------------------------------------------- */

.utility-bar {
  display: block;
  padding: .55rem 0;
  color: rgba(255,255,255,.86);
  background:
    linear-gradient(90deg, #ff6f61 0%, #7257ff 48%, #13bddb 100%);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .015em;
}

.utility-bar > div {
  min-height: 1.15rem;
}

.utility-pill {
  display: inline-flex;
  align-items: center;
  padding: .24rem .6rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  color: #fff;
  background: rgba(9,16,38,.22);
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.site-header {
  position: relative;
  background: rgba(255,255,255,.82);
  border-bottom: 1px solid rgba(224,228,240,.9);
  box-shadow: 0 8px 28px rgba(24,35,76,.06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.site-header-main {
  min-height: 78px;
}

.brand-lockup {
  color: var(--ink);
}

.brand-mark,
.footer-brand-mark {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  height: 2.55rem;
  overflow: hidden;
  border-radius: .95rem;
  color: #fff;
  background: linear-gradient(135deg, var(--coral), var(--violet) 58%, var(--cyan));
  box-shadow: 0 9px 20px rgba(114,87,255,.23);
  transition: transform .2s ease, box-shadow .2s ease;
}

.brand-mark::before,
.footer-brand-mark::before {
  content: "";
  position: absolute;
  width: 1.2rem;
  height: 1.2rem;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: .42rem;
  transform: rotate(45deg);
}

.brand-mark::after,
.footer-brand-mark::after {
  content: "";
  position: absolute;
  width: .34rem;
  height: .34rem;
  border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 0 .18rem rgba(255,255,255,.16);
}

.brand-symbol {
  display: none;
}

.brand-lockup:hover .brand-mark {
  transform: translateY(-2px) rotate(-3deg);
  box-shadow: 0 13px 25px rgba(114,87,255,.32);
}

.brand-lockup > div:last-child > div {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.12rem;
  letter-spacing: -.06em;
}

.brand-lockup > div:last-child > div span {
  color: var(--violet) !important;
}

.brand-lockup > div:last-child span {
  color: #79839b;
  letter-spacing: .13em;
}

.main-nav-link {
  position: relative;
  color: #6d758b !important;
  font-size: .72rem !important;
  font-weight: 700 !important;
  border-radius: .55rem !important;
  transition: color .2s ease, background .2s ease, transform .2s ease;
}

.main-nav-link:hover,
.main-nav-link.active {
  color: var(--ink) !important;
  background: #f0efff !important;
}

.main-nav-link.active {
  box-shadow: inset 0 -2px 0 var(--violet);
}

.header-actions {
  color: var(--ink);
}

.header-icon-button,
.cart-action {
  border: 1px solid transparent;
  color: #626d85 !important;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.header-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 50% !important;
  background: rgba(114,87,255,.06);
}

.header-icon-button svg {
  width: 1.08rem;
  height: 1.08rem;
}

.header-icon-button:hover,
.cart-action:hover {
  color: var(--violet) !important;
  border-color: #ddd9ff;
  background: #f4f2ff !important;
  transform: translateY(-1px);
}

.cart-action {
  position: relative;
  border-radius: .7rem !important;
}

.cart-action-label,
.cart-total-header {
  color: inherit;
}

.header-cart-badge {
  position: absolute;
  top: -.25rem;
  right: -.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.12rem;
  height: 1.12rem;
  padding: 0 .25rem;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: var(--coral);
  font-size: .6rem;
  font-weight: 800;
}

#mobile-menu {
  border-color: var(--line) !important;
}

#mobile-menu button {
  color: #5f6980 !important;
}

#mobile-menu .mobile-auth-link {
  margin-top: .35rem;
  margin-bottom: .35rem;
  border: 1px solid #ded9ff;
  color: var(--violet-deep) !important;
  background: #f5f3ff !important;
  font-weight: 800 !important;
}

#mobile-menu .mobile-auth-link:hover {
  border-color: #c9c1ff;
  background: #ece9ff !important;
}

#mobile-menu button:hover {
  color: var(--violet) !important;
  background: #f4f2ff !important;
}

/* -------------------------------------------------------------------------- */
/* Shared page surfaces                                                       */
/* -------------------------------------------------------------------------- */

main {
  position: relative;
}

main .bg-white,
.glass-panel {
  border-color: var(--line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-sm);
}

main .bg-white:hover {
  border-color: #d9d3ff !important;
}

main input:not([type="checkbox"]):not([type="radio"]),
main textarea,
main select {
  color: var(--ink);
  border-color: #dfe3ef !important;
  background: #fbfcff !important;
  border-radius: .85rem !important;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

main input:not([type="checkbox"]):not([type="radio"]):focus,
main textarea:focus,
main select:focus {
  outline: none;
  border-color: var(--violet) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(114,87,255,.12) !important;
}

main .input-dark {
  color: #e8edff !important;
  border-color: rgba(181,194,255,.16) !important;
  background: rgba(7,13,35,.58) !important;
}

/* Saisie lisible dans les formulaires clairs, y compris avec l'autoremplissage
   du navigateur. Les champs .input-dark conservent leur contraste sombre. */
input:not([type="checkbox"]):not([type="radio"]):not(.input-dark),
textarea:not(.input-dark),
select:not(.input-dark) {
  color: #1f2937 !important;
  -webkit-text-fill-color: #1f2937;
  caret-color: #1f2937;
}

input:not([type="checkbox"]):not([type="radio"]):not(.input-dark)::placeholder,
textarea:not(.input-dark)::placeholder {
  color: #9ca3af !important;
  opacity: 1;
}

input:not(.input-dark):-webkit-autofill,
input:not(.input-dark):-webkit-autofill:hover,
input:not(.input-dark):-webkit-autofill:focus,
textarea:not(.input-dark):-webkit-autofill {
  -webkit-text-fill-color: #1f2937 !important;
  caret-color: #1f2937;
}

main .bg-indigo-600,
main .bg-indigo-500 {
  background: linear-gradient(135deg, var(--violet), #9a67ff) !important;
}

main .hover\:bg-indigo-700:hover {
  background: linear-gradient(135deg, var(--violet-deep), #7951e9) !important;
}

main .text-indigo-600,
main .text-indigo-700 {
  color: var(--violet-deep) !important;
}

main .bg-indigo-50 {
  background: #f1efff !important;
}

main .border-indigo-100,
main .border-indigo-200 {
  border-color: #ded9ff !important;
}

main .shadow-indigo-200,
main .shadow-indigo-100 {
  --tw-shadow-color: rgba(114,87,255,.2) !important;
}

main .bg-slate-900 {
  background: var(--ink) !important;
}

.page-view:not(.hidden) {
  animation: pageIn .38s cubic-bezier(.16,1,.3,1) both;
}

@keyframes pageIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* -------------------------------------------------------------------------- */
/* Dark editorial pages: home, catalogue and the index store                 */
/* -------------------------------------------------------------------------- */

html[data-page="home"] body,
html[data-page="store"] body {
  color: #eef1ff !important;
  background:
    radial-gradient(900px 520px at 92% -8%, rgba(34,211,238,.17), transparent 65%),
    radial-gradient(850px 540px at -8% 12%, rgba(114,87,255,.22), transparent 64%),
    radial-gradient(600px 500px at 54% 100%, rgba(255,122,104,.1), transparent 65%),
    var(--night) !important;
}

html[data-page="home"] .site-header,
html[data-page="store"] .site-header {
  background: rgba(10,16,38,.74);
  border-bottom-color: rgba(181,194,255,.14);
  box-shadow: 0 10px 34px rgba(0,0,0,.16);
}

html[data-page="home"] .brand-lockup,
html[data-page="store"] .brand-lockup {
  color: #fff;
}

html[data-page="home"] .brand-lockup > div:last-child > div,
html[data-page="store"] .brand-lockup > div:last-child > div {
  color: #fff !important;
}

html[data-page="home"] .brand-lockup > div:last-child span,
html[data-page="store"] .brand-lockup > div:last-child span {
  color: #aeb8db;
}

html[data-page="home"] .main-nav-link,
html[data-page="store"] .main-nav-link,
html[data-page="home"] .header-icon-button,
html[data-page="store"] .header-icon-button,
html[data-page="home"] .cart-action {
  color: #b7c1e4 !important;
}

html[data-page="home"] .main-nav-link:hover,
html[data-page="home"] .main-nav-link.active,
html[data-page="store"] .main-nav-link:hover,
html[data-page="store"] .main-nav-link.active,
html[data-page="home"] .header-icon-button:hover,
html[data-page="store"] .header-icon-button:hover,
html[data-page="home"] .cart-action:hover {
  color: #fff !important;
  border-color: rgba(114,87,255,.55);
  background: rgba(114,87,255,.2) !important;
}

html[data-page="home"] #mobile-menu,
html[data-page="store"] #mobile-menu {
  border-color: var(--night-line) !important;
  background: rgba(10,16,38,.95);
}

html[data-page="home"] #mobile-menu button,
html[data-page="store"] #mobile-menu button {
  color: #c1c9e5 !important;
}

html[data-page="home"] main .bg-white,
html[data-page="store"] main .bg-white {
  color: #eef1ff;
  background: rgba(17,25,54,.74) !important;
  border-color: var(--night-line) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.14);
}

html[data-page="home"] main .text-slate-900,
html[data-page="store"] main .text-slate-900 {
  color: #f4f6ff !important;
}

html[data-page="home"] main .text-slate-800,
html[data-page="store"] main .text-slate-800 {
  color: #e7ebff !important;
}

html[data-page="home"] main .text-slate-700,
html[data-page="store"] main .text-slate-700 {
  color: #c7cfea !important;
}

html[data-page="home"] main .text-slate-600,
html[data-page="store"] main .text-slate-600,
html[data-page="home"] main .text-slate-500,
html[data-page="store"] main .text-slate-500,
html[data-page="home"] main .text-slate-400,
html[data-page="store"] main .text-slate-400 {
  color: #9da8cb !important;
}

html[data-page="home"] main .border-slate-100,
html[data-page="store"] main .border-slate-100,
html[data-page="home"] main .border-slate-200,
html[data-page="store"] main .border-slate-200,
html[data-page="home"] main .divide-slate-100 > :not([hidden]) ~ :not([hidden]),
html[data-page="store"] main .divide-slate-100 > :not([hidden]) ~ :not([hidden]) {
  border-color: var(--night-line) !important;
}

/* Editorial hero on the index page */
.hero-editorial {
  position: relative;
  width: 100vw;
  height: min(610px, 70vh);
  min-height: 500px;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
  color: #fff;
  background: #101734;
}

.hero-editorial-image,
.hero-editorial-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-editorial-image {
  object-fit: cover;
  object-position: center;
  filter: saturate(1.12) contrast(1.08);
  transform: scale(1.025);
  transition: opacity .35s ease, transform 8s ease;
}

.hero-editorial-overlay {
  background:
    linear-gradient(90deg, rgba(7,12,34,.92) 0%, rgba(11,19,53,.7) 43%, rgba(15,22,55,.2) 100%),
    linear-gradient(180deg, rgba(20,18,60,.08), rgba(7,12,34,.68));
}

.hero-editorial-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  height: 100%;
  max-width: 80rem;
  margin: 0 auto;
  padding: 3rem 1.5rem 4rem;
}

.hero-editorial-content {
  width: min(100%, 680px);
  text-align: left;
}

.hero-editorial-kicker {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  margin-bottom: 1.25rem;
  color: #8ff4e0;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.hero-editorial-kicker span:first-child {
  width: 2rem;
  height: 2px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--coral), var(--cyan));
}

.hero-editorial h1 {
  margin: 0;
  max-width: 740px;
  color: #fff;
  font-size: clamp(2.8rem, 6.8vw, 6.25rem);
  font-weight: 800;
  line-height: .96;
  letter-spacing: -.07em;
}

.hero-editorial h1 strong {
  display: block;
  color: #9bf6df;
  font-weight: 800;
  text-shadow: 0 10px 40px rgba(83,223,176,.15);
}

.hero-editorial-content p {
  max-width: 590px;
  margin: 1.55rem 0 0;
  color: rgba(239,244,255,.78);
  font-size: clamp(.92rem, 1.4vw, 1.08rem);
  line-height: 1.7;
}

.hero-editorial-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin-top: 2rem;
}

.hero-primary-action,
.hero-secondary-action {
  min-height: 50px;
  padding: .8rem 1.35rem;
  border-radius: .68rem;
  font-size: .78rem;
  font-weight: 800;
  transition: transform .2s ease, filter .2s ease, background .2s ease;
}

.hero-primary-action {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #0a1026;
  background: linear-gradient(135deg, #9bf6df, #44d8e9);
  box-shadow: 0 16px 30px rgba(34,211,238,.18);
}

.hero-primary-action:hover {
  filter: brightness(1.06);
  transform: translateY(-2px);
}

.hero-secondary-action {
  color: #fff;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}

.hero-secondary-action:hover {
  background: rgba(255,255,255,.16);
  transform: translateY(-2px);
}

.hero-editorial-control {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0 0 .2rem;
  color: #fff;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  background: rgba(11,18,47,.25);
  font-family: Georgia, serif;
  font-size: 2rem;
  line-height: 1;
  transform: translateY(-50%);
  backdrop-filter: blur(8px);
  transition: background .2s ease, border-color .2s ease;
}

.hero-editorial-control:hover {
  border-color: rgba(155,246,223,.8);
  background: rgba(114,87,255,.45);
}

.hero-editorial-control-left { left: 1.35rem; }
.hero-editorial-control-right { right: 1.35rem; }

.hero-editorial-dots {
  position: absolute;
  z-index: 2;
  bottom: 1.4rem;
  left: 50%;
  display: flex;
  gap: .45rem;
  transform: translateX(-50%);
}

.hero-editorial-dots button {
  width: .5rem;
  height: .5rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.45);
  transition: width .2s ease, background .2s ease;
}

.hero-editorial-dots button.is-active {
  width: 2rem;
  background: #9bf6df;
}

.hero-trust-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .65rem;
  padding: 1.05rem;
  border: 1px solid var(--night-line);
  border-radius: 1.25rem;
  background: rgba(17,25,54,.76) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.16);
  backdrop-filter: blur(16px);
}

.hero-trust-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-width: 0;
  color: #bec8e9;
  font-size: .7rem;
  font-weight: 700;
  text-align: center;
}

.hero-trust-item svg {
  flex: 0 0 auto;
  width: 1.18rem;
  height: 1.18rem;
  color: var(--cyan);
}

/* Cards rendered by app.js and the boutique pages */
.glass {
  border: 1px solid var(--night-line) !important;
  background: rgba(17,25,54,.7) !important;
  box-shadow: 0 15px 40px rgba(0,0,0,.12);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.hc-card,
.product-card {
  transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.hc-card:hover,
.product-card:hover {
  border-color: rgba(34,211,238,.5) !important;
  box-shadow: 0 22px 52px rgba(0,0,0,.22), 0 0 0 1px rgba(34,211,238,.06);
  transform: translateY(-6px);
}

.neon-text {
  background: linear-gradient(90deg, #8ff4e0 0%, #63c9ff 42%, #b994ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

.neon-btn {
  color: #fff !important;
  background: linear-gradient(135deg, #17c7de 0%, #7257ff 53%, #ff7a68 100%) !important;
  border-radius: .68rem !important;
  box-shadow: 0 12px 28px rgba(114,87,255,.28);
  transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
}

.neon-btn:hover {
  filter: brightness(1.08);
  box-shadow: 0 16px 34px rgba(114,87,255,.4);
  transform: translateY(-2px);
}

.chip {
  border: 1px solid rgba(155,246,223,.38) !important;
  color: #9bf6df !important;
  background: rgba(83,223,176,.1) !important;
}

.glow-ring {
  box-shadow: 0 0 0 1px rgba(114,87,255,.22), 0 18px 42px rgba(0,0,0,.18) !important;
}

.input-dark {
  color: #e8edff !important;
  border: 1px solid rgba(181,194,255,.16) !important;
  background: rgba(7,13,35,.58) !important;
}

.input-dark::placeholder {
  color: #7380a5 !important;
}

.input-dark:focus {
  border-color: var(--cyan) !important;
  background: rgba(7,13,35,.84) !important;
  box-shadow: 0 0 0 3px rgba(34,211,238,.13) !important;
}

/* -------------------------------------------------------------------------- */
/* Footer                                                                     */
/* -------------------------------------------------------------------------- */

.site-footer {
  margin-top: 4rem;
  color: #aab4d3;
  background:
    radial-gradient(500px 260px at 90% 0%, rgba(114,87,255,.2), transparent 70%),
    radial-gradient(500px 300px at 0% 100%, rgba(255,122,104,.12), transparent 70%),
    #080d21;
}

.footer-main {
  padding-top: 3.6rem;
  padding-bottom: 3rem;
}

.footer-brand-mark {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: .7rem;
  box-shadow: none;
}

.footer-heading {
  margin-bottom: 1rem;
  color: #f2f5ff;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.footer-links a {
  color: #99a5c6;
  transition: color .2s ease;
}

.footer-links a:hover {
  color: #9bf6df;
}

.footer-trust li {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: #c8d0e8;
}

.footer-status-dot {
  display: inline-block;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 0 .25rem rgba(83,223,176,.12);
}

.footer-business-details {
  display: flex;
  flex-direction: column;
  gap: .16rem;
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(181,194,255,.13);
  color: #8996b5;
  font-size: .66rem;
  line-height: 1.45;
}

.footer-business-details strong {
  color: #dfe7f4;
  font-size: .72rem;
}

.footer-service-note {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  margin-top: .85rem;
  padding: .7rem .75rem;
  border: 1px solid rgba(114, 184, 159, .24);
  border-radius: .45rem;
  color: #b8d8cf;
  background: rgba(41, 111, 112, .14);
  font-size: .66rem;
  line-height: 1.45;
}

.footer-service-note svg {
  flex: 0 0 auto;
  color: #9bd8cf;
}

.footer-bottom {
  padding: 1.25rem 0;
  color: #6e7a9e;
  border-top: 1px solid rgba(181,194,255,.13);
  font-size: .67rem;
}

.footer-bottom-separator {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #596585;
}

/* Status labels / utility details */
.admin-activity-details {
  display: grid;
  gap: 5px;
  min-width: 250px;
  max-width: 420px;
  margin: 0;
}

.admin-activity-detail {
  display: grid;
  grid-template-columns: minmax(105px, 42%) minmax(0, 1fr);
  gap: 8px;
  padding: 5px 7px;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #f8fafc;
  line-height: 1.35;
}

.admin-activity-detail dt {
  color: #64748b;
  font-weight: 700;
}

.admin-activity-detail dd {
  min-width: 0;
  margin: 0;
  color: #1e293b;
  font-weight: 600;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.badge-status-payee,
.badge-status-livree {
  color: #087b63;
  border: 1px solid #a6efd5;
  background: #e9fff7;
}

.badge-status-expediee {
  color: #3d59ae;
  border: 1px solid #bfccff;
  background: #eef1ff;
}

.badge-status-en-attente,
.badge-status-en-preparation {
  color: #a56a00;
  border: 1px solid #ffe09a;
  background: #fff8df;
}

.shipping-progress-bar {
  background: linear-gradient(90deg, var(--violet), var(--cyan), var(--mint)) !important;
  transition: width .5s cubic-bezier(.16,1,.3,1);
}

.account-nav-item.active {
  color: #fff !important;
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--violet), #9a67ff) !important;
  box-shadow: 0 8px 18px rgba(114,87,255,.22);
}

/* Icônes d’action : pastilles nettes, reconnaissables et homogènes */
.product-card button[title],
.product-card button[aria-label],
.wishlist-header-action,
#prod-page-wish-btn,
#cart-page-checkout-btn + button {
  border-radius: 50% !important;
}

.product-card button[title] {
  width: 2.45rem;
  height: 2.45rem;
  padding: 0 !important;
  border: 1px solid rgba(181,194,255,.2);
}

.product-card button[title] svg {
  width: 1rem;
  height: 1rem;
}

.hero-primary-action svg,
.hero-secondary-action svg,
.neon-btn svg,
main button svg {
  flex: 0 0 auto;
}

/* Page-specific light layouts retain the colorful common accent */
html[data-page="cart"] body {
  background:
    radial-gradient(650px 340px at 95% 0%, rgba(83,223,176,.14), transparent 70%),
    var(--paper) !important;
}

html[data-page="account"] body {
  background:
    radial-gradient(650px 360px at 95% 0%, rgba(188,157,255,.17), transparent 70%),
    var(--paper) !important;
}

html[data-page="admin"] body,
html[data-page="contact"] body,
html[data-page="faq"] body,
html[data-page="about"] body,
html[data-page="legal"] body,
html[data-page="privacy"] body,
html[data-page="cgv"] body,
html[data-page="product"] body {
  background:
    radial-gradient(650px 360px at 95% 0%, rgba(114,87,255,.1), transparent 70%),
    var(--paper) !important;
}

/* Navigation du back-office : sections regroupées par usage */
.admin-navigation {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1.15fr;
  gap: .7rem;
  padding: .7rem;
  border: 1px solid #e6e1d9;
  border-radius: 1rem;
  background: #fffdfa;
  box-shadow: 0 8px 24px rgba(29, 39, 83, .05);
}

.admin-navigation-group {
  min-width: 0;
  padding: .35rem .45rem;
}

.admin-navigation-group + .admin-navigation-group {
  border-left: 1px solid #ece7df;
  padding-left: .9rem;
}

.admin-navigation-label {
  display: block;
  margin: 0 0 .45rem .25rem;
  color: #9a8f83;
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.admin-navigation-items {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.admin-tab {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.25rem;
  padding: .5rem .7rem;
  border: 1px solid transparent;
  border-radius: .55rem;
  color: #637080;
  background: transparent;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1.2;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.admin-tab:hover {
  color: #296f70;
  background: #edf4f1;
  border-color: #d7e8e2;
  transform: translateY(-1px);
}

.admin-tab.active {
  color: #fff;
  background: #296f70;
  border-color: #296f70;
  box-shadow: 0 6px 14px rgba(41, 111, 112, .18);
}

.admin-tab svg {
  stroke-width: 2;
}

.admin-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 .25rem;
  border-radius: 999px;
  color: #296f70;
  background: #edf4f1;
  font-size: .6rem;
  font-weight: 900;
}

.admin-tab.active .admin-tab-count {
  color: #296f70;
  background: #f9e4a8;
}

@media (max-width: 900px) {
  .admin-navigation {
    grid-template-columns: 1fr;
  }

  .admin-navigation-group + .admin-navigation-group {
    padding-top: .7rem;
    padding-left: .45rem;
    border-top: 1px solid #ece7df;
    border-left: 0;
  }
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #edf0f7;
}

::-webkit-scrollbar-thumb {
  border: 2px solid #edf0f7;
  border-radius: 999px;
  background: #b9c1d8;
}

::-webkit-scrollbar-thumb:hover {
  background: #8e9ab9;
}

/* Modal polish */
[id$="-modal"] > div {
  border-color: var(--line) !important;
  border-radius: 1.35rem !important;
  box-shadow: 0 28px 80px rgba(6,12,34,.28) !important;
}

/* Invoice preview and print layout */
.invoice-modal-shell {
  width: 100% !important;
  max-width: 920px !important;
  margin: 2rem 0;
  background: #f4f6fb !important;
  overflow: hidden;
}

.invoice-toolbar {
  min-height: 72px;
  padding: 0.9rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: rgba(248, 250, 252, .94);
  border-bottom: 1px solid #e4e9f2;
}

.invoice-toolbar-title {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  color: #334155;
  font-size: .76rem;
  letter-spacing: .01em;
}

.invoice-toolbar-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  color: #296f70;
  background: #edf4f1;
  border-radius: .7rem;
}

.invoice-download-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 2.65rem;
  padding: .65rem 1rem;
  border: 0;
  border-radius: .75rem;
  color: #fff;
  background: linear-gradient(135deg, #296f70, #1d5558);
  box-shadow: 0 8px 20px rgba(41, 111, 112, .2);
  font-size: .76rem;
  font-weight: 800;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.invoice-download-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 11px 24px rgba(41, 111, 112, .28);
}

.invoice-download-button:disabled {
  opacity: .7;
  cursor: wait;
  transform: none;
}

.invoice-close-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  color: #94a3b8;
  background: transparent;
  border: 0;
  border-radius: .75rem;
  cursor: pointer;
}

.invoice-close-button:hover {
  color: #475569;
  background: #e9edf5;
}

.invoice-preview {
  padding: 2.1rem;
  max-height: min(78vh, 820px);
  overflow: auto;
  background: #f4f6fb;
}

.invoice-sheet {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
  padding: 2.7rem 3rem 1.45rem;
  color: #172033;
  background: #fff;
  border: 1px solid #e8edf5;
  border-radius: 1rem;
  box-shadow: 0 18px 42px rgba(31, 43, 73, .1);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.invoice-sheet-header,
.invoice-company-line,
.invoice-status,
.invoice-section-heading,
.invoice-bottom,
.invoice-sheet-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.invoice-sheet-header {
  align-items: flex-start;
  gap: 2rem;
}

.invoice-brand {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.invoice-brand-mark {
  display: grid;
  place-items: center;
  width: 3.1rem;
  height: 3.1rem;
  color: #fff;
  background: #d96d55;
  border-radius: 1rem;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: -.06em;
  box-shadow: none;
}

.invoice-brand-name {
  color: #111827;
  font-size: 1.45rem;
  font-weight: 900;
  letter-spacing: -.05em;
}

.invoice-brand-subtitle {
  margin-top: .2rem;
  color: #8792a7;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.invoice-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.invoice-eyebrow,
.invoice-label {
  color: #909bb0;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.invoice-heading h1 {
  margin: .2rem 0 .25rem;
  color: #296f70;
  font-size: 2rem;
  font-weight: 950;
  letter-spacing: -.06em;
  line-height: 1;
}

.invoice-heading strong {
  color: #27324a;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .7rem;
}

.invoice-heading > span:last-child {
  margin-top: .35rem;
  color: #8994a8;
  font-size: .68rem;
}

.invoice-accent-bar {
  height: .28rem;
  margin: 1.7rem 0 .85rem;
  background: linear-gradient(90deg, #d96d55 0 24%, #296f70 24% 34%, #edf4f1 34% 100%);
  border-radius: 99px;
}

.invoice-company-line {
  flex-wrap: wrap;
  gap: .35rem 1.2rem;
  color: #7c879d;
  font-size: .62rem;
}

.invoice-status {
  justify-content: flex-start;
  gap: .45rem;
  margin: 1.2rem 0 1.5rem;
  padding: .68rem .85rem;
  color: #995615;
  background: #fff6dc;
  border: 1px solid #f9e5a8;
  border-radius: .75rem;
  font-size: .66rem;
}

.invoice-status > span:last-child {
  margin-left: auto;
  color: #b77928;
  font-weight: 700;
}

.invoice-status-dot {
  width: .45rem;
  height: .45rem;
  background: #e3a52c;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(227, 165, 44, .15);
}

.invoice-parties {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.8rem;
}

.invoice-party {
  min-height: 6rem;
  padding: 1rem 1.1rem;
  background: #f7f8fc;
  border: 1px solid #edf0f6;
  border-radius: .9rem;
}

.invoice-party-delivery {
  background: #fafaff;
}

.invoice-party h2 {
  margin: .45rem 0 .35rem;
  color: #202a40;
  font-size: .9rem;
  font-weight: 850;
}

.invoice-party p {
  margin: .2rem 0;
  color: #66738b;
  font-size: .7rem;
  line-height: 1.4;
}

.invoice-party strong {
  display: block;
  margin-top: .45rem;
  color: #296f70;
  font-size: .68rem;
}

.invoice-section-heading {
  margin-bottom: .65rem;
}

.invoice-section-heading > span:last-child {
  color: #a1aabd;
  font-size: .66rem;
  font-weight: 700;
}

.invoice-items {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.invoice-items th {
  padding: .7rem .55rem;
  color: #8b96aa;
  background: #f7f8fb;
  font-size: .61rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-align: right;
  text-transform: uppercase;
}

.invoice-items th:first-child,
.invoice-items td:first-child {
  width: 52%;
  text-align: left;
}

.invoice-items th:first-child {
  border-radius: .55rem 0 0 .55rem;
}

.invoice-items th:last-child {
  border-radius: 0 .55rem .55rem 0;
}

.invoice-items td {
  padding: .82rem .55rem;
  color: #66738b;
  border-bottom: 1px solid #edf0f5;
  font-size: .72rem;
  text-align: right;
}

.invoice-items td strong {
  color: #27324a;
  font-weight: 750;
}

.invoice-items tbody tr:last-child td {
  border-bottom: 0;
}

.invoice-bottom {
  align-items: stretch;
  gap: 2rem;
  margin-top: 1.7rem;
  padding-top: 1.35rem;
  border-top: 1px solid #e7ebf2;
}

.invoice-payment-card {
  flex: 1 1 50%;
  padding: 1rem 1.1rem;
  background: linear-gradient(145deg, #edf4f1, #fbfdfc);
  border: 1px solid #d6ebe6;
  border-radius: .85rem;
}

.invoice-payment-card > strong {
  display: block;
  margin-top: .45rem;
  color: #29334b;
  font-size: .82rem;
}

.invoice-payment-card p {
  max-width: 23rem;
  margin: .45rem 0 .7rem;
  color: #748098;
  font-size: .64rem;
  line-height: 1.45;
}

.invoice-payment-reference {
  display: inline-flex;
  padding: .3rem .5rem;
  color: #296f70;
  background: #edf4f1;
  border-radius: .4rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .62rem;
  font-weight: 800;
}

.invoice-totals {
  flex: 0 0 44%;
  align-self: center;
  color: #7d899e;
  font-size: .72rem;
}

.invoice-totals > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: .3rem 0;
}

.invoice-totals strong {
  color: #354158;
  font-weight: 800;
  text-align: right;
}

.invoice-total-line {
  margin-top: .5rem;
  padding-top: .75rem !important;
  color: #202a40;
  border-top: 1px solid #cfd6e3;
  font-size: .86rem;
  font-weight: 900;
  text-transform: uppercase;
}

.invoice-total-line strong {
  color: #296f70;
  font-size: 1.15rem;
}

.invoice-sheet-footer {
  margin-top: 2rem;
  padding-top: .9rem;
  color: #9aa4b6;
  border-top: 1px solid #edf0f4;
  font-size: .6rem;
}

.invoice-sheet-footer span:last-child {
  text-align: right;
}

/* Print invoice */
@media print {
  @page {
    size: A4;
    margin: 0;
  }

  body * {
    visibility: hidden;
  }

  #invoice-printable-content,
  #invoice-printable-content * {
    visibility: visible;
  }

  #invoice-printable-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 100vh;
    padding: 0;
    background: #fff;
  }

  .invoice-preview {
    max-height: none;
    overflow: visible;
    padding: 0;
    background: #fff;
  }

  .invoice-sheet {
    max-width: none;
    min-height: 0;
    padding: 2.15rem 2.35rem 1.1rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .no-print {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .invoice-toolbar {
    align-items: flex-start;
    flex-direction: column;
    padding: .8rem;
  }

  .invoice-toolbar > div {
    width: 100%;
  }

  .invoice-download-button {
    flex: 1;
  }

  .invoice-preview {
    padding: .7rem;
  }

  .invoice-sheet {
    padding: 1.45rem 1rem 1rem;
    border-radius: .75rem;
  }

  .invoice-sheet-header {
    gap: 1rem;
  }

  .invoice-brand-mark {
    width: 2.5rem;
    height: 2.5rem;
  }

  .invoice-brand-name {
    font-size: 1.1rem;
  }

  .invoice-brand-subtitle {
    font-size: .48rem;
  }

  .invoice-heading h1 {
    font-size: 1.45rem;
  }

  .invoice-heading strong,
  .invoice-heading > span:last-child {
    font-size: .56rem;
  }

  .invoice-company-line {
    display: block;
    font-size: .55rem;
    line-height: 1.55;
  }

  .invoice-company-line span {
    display: block;
  }

  .invoice-status {
    align-items: flex-start;
    flex-wrap: wrap;
    font-size: .58rem;
  }

  .invoice-status > span:last-child {
    width: 100%;
    margin-left: .9rem;
  }

  .invoice-parties,
  .invoice-bottom {
    grid-template-columns: 1fr;
    flex-direction: column;
    gap: .7rem;
  }

  .invoice-party {
    min-height: auto;
  }

  .invoice-items {
    min-width: 520px;
  }

  .invoice-items-section {
    overflow-x: auto;
  }

  .invoice-bottom {
    margin-top: 1rem;
    padding-top: 1rem;
  }

  .invoice-totals {
    flex-basis: auto;
    width: 100%;
  }

  .invoice-sheet-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: .35rem;
  }

  .invoice-sheet-footer span:last-child {
    text-align: left;
  }
}

@media (max-width: 1023px) {
  .site-header-main {
    min-height: 70px;
  }

  .hero-editorial-content {
    max-width: 620px;
  }

  .hero-trust-bar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 639px) {
  .utility-bar {
    padding: .48rem 0;
  }

  .utility-bar > div > div:last-child {
    display: none;
  }

  .site-header-main {
    min-height: 64px;
  }

  .brand-mark {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .78rem;
  }

  .brand-lockup > div:last-child span {
    display: none;
  }

  .header-icon-button,
  .wishlist-header-action {
    display: none;
  }

  .hero-editorial {
    height: 560px;
    min-height: 0;
  }

  .hero-editorial-inner {
    align-items: flex-end;
    padding: 2.3rem 1.25rem 4.8rem;
  }

  .hero-editorial-content {
    text-align: left;
  }

  .hero-editorial-kicker {
    margin-bottom: 1rem;
    font-size: .59rem;
    letter-spacing: .15em;
  }

  .hero-editorial h1 {
    font-size: clamp(2.45rem, 13vw, 4.2rem);
  }

  .hero-editorial-content p {
    margin-top: 1.1rem;
    font-size: .88rem;
  }

  .hero-editorial-actions {
    margin-top: 1.45rem;
  }

  .hero-primary-action,
  .hero-secondary-action {
    width: min(100%, 18rem);
    justify-content: center;
  }

  .hero-editorial-control {
    top: auto;
    bottom: 1rem;
    width: 2.35rem;
    height: 2.35rem;
    font-size: 1.7rem;
    transform: none;
  }

  .hero-editorial-control-left { left: 1rem; }
  .hero-editorial-control-right { right: 1rem; }

  .hero-trust-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem .55rem;
    padding: 1rem .75rem;
  }

  .hero-trust-item {
    justify-content: flex-start;
    font-size: .64rem;
    text-align: left;
  }

  .hero-trust-item:last-child {
    grid-column: 1 / -1;
    justify-content: center;
  }

  .footer-bottom {
    align-items: flex-start;
  }
}

/* Confirmation de commande : écran final premium après dépôt du justificatif. */
.confirmation-page-redesign {
  --confirmation-ink: #0f172a;
  --confirmation-muted: #64748b;
  width: min(100%, 56rem);
  margin-right: auto;
  margin-left: auto;
  padding-top: 1.5rem;
  padding-bottom: 3rem;
  color: var(--confirmation-ink);
  font-family: var(--font-site) !important;
  text-align: center;
}

.confirmation-page-redesign .confirmation-main-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  overflow: hidden;
  padding: 2.5rem 1.5rem;
  border: 1px solid rgba(226,232,240,.9);
  border-radius: 2.5rem;
  background:
    radial-gradient(circle at 100% 0, rgba(99,102,241,.12), transparent 35%),
    radial-gradient(circle at 0% 100%, rgba(16,185,129,.08), transparent 35%),
    linear-gradient(165deg, #ffffff 0%, #f8fafc 100%);
  box-shadow: 0 25px 70px rgba(15,23,42,.08);
  font-family: var(--font-site) !important;
}

.confirmation-page-redesign .confirmation-main-card > .text-center {
  display: grid;
  justify-items: center;
  gap: 1rem;
}

.confirmation-page-redesign .confirmation-main-card > .text-center > div:last-child {
  display: grid;
  justify-items: center;
  gap: .65rem;
}

.confirmation-page-redesign .confirmation-hero-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem !important;
  height: 4.5rem !important;
  border-radius: 1.25rem !important;
  background: linear-gradient(135deg, #10b981, #0f9f83) !important;
}

.confirmation-page-redesign .confirmation-status-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .8rem;
  border: 1px solid #a7f3d0;
  border-radius: 999px;
  color: #047857;
  background: #ecfdf5;
  font-family: var(--font-site) !important;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.confirmation-page-redesign .confirmation-title {
  max-width: none;
  margin: 0;
  color: #10162e !important;
  font-family: var(--font-site) !important;
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.055em !important;
  line-height: 1.04 !important;
}

.confirmation-page-redesign .confirmation-intro {
  max-width: 42rem;
  margin: 0 auto;
  color: #566078 !important;
  font-family: var(--font-site) !important;
  font-size: .9rem !important;
  line-height: 1.65 !important;
}

.confirmation-page-redesign .confirmation-tracking-card,
.confirmation-page-redesign .confirmation-next-steps,
.confirmation-page-redesign .confirmation-bank-card {
  font-family: var(--font-site) !important;
}

.confirmation-page-redesign .confirmation-tracking-card {
  padding: 1.35rem 1.5rem !important;
  border: 1px solid #e6e9f2 !important;
  border-radius: 1.25rem !important;
  background: #fff !important;
  box-shadow: var(--shadow-sm);
}

.confirmation-page-redesign .confirmation-tracking-card > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid #eef0f6;
}

.confirmation-page-redesign .confirmation-section-title {
  color: #10162e !important;
  font-family: var(--font-site) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  line-height: 1.35 !important;
  text-transform: uppercase;
}

.confirmation-page-redesign .confirmation-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.confirmation-page-redesign .confirmation-step {
  display: grid;
  justify-items: center;
  gap: .55rem;
  color: #64748b;
  font-family: var(--font-site) !important;
  font-size: .68rem !important;
  font-weight: 700;
  line-height: 1.35 !important;
  text-align: center;
}

.confirmation-page-redesign .confirmation-step > div {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem !important;
  height: 2.25rem !important;
  border-radius: .75rem !important;
}

.confirmation-page-redesign .confirmation-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.confirmation-page-redesign .confirmation-next-steps,
.confirmation-page-redesign .confirmation-bank-card {
  min-width: 0;
  padding: 1.35rem !important;
  border-radius: 1.25rem !important;
}

.confirmation-page-redesign .confirmation-next-steps {
  border: 1px solid #dbe4ff !important;
  background: linear-gradient(135deg, #f5f7ff, #f8fbff) !important;
}

.confirmation-page-redesign .confirmation-bank-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100%;
  border: 1px solid #e7dfc9 !important;
  background: linear-gradient(135deg, #fffdf8, #fff8e8) !important;
}

.confirmation-page-redesign .confirmation-bank-details {
  flex: 1;
  width: 100%;
}

.confirmation-page-redesign .confirmation-payment-status {
  color: #b42318 !important;
  border: 1px solid #fecaca;
  background: #fff1f2;
}

.confirmation-page-redesign .confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .65rem;
}

.confirmation-page-redesign .confirmation-actions button {
  min-height: 2.75rem;
  font-family: var(--font-site) !important;
  font-size: .72rem !important;
  line-height: 1.3 !important;
}

@media (max-width: 640px) {
  .confirmation-page-redesign .confirmation-main-card {
    padding: 2rem 1rem;
  }

  .confirmation-page-redesign .confirmation-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 1rem;
  }

  .confirmation-page-redesign .confirmation-info-grid {
    grid-template-columns: 1fr;
  }
}

.confirmation-page-redesign .confirmation-main-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: .4rem;
  background: linear-gradient(90deg, #4f46e5, #06b6d4, #10b981);
  content: '';
}

@keyframes confirmation-pop {
  0% { opacity: 0; transform: scale(.75) translateY(12px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@media (min-width: 640px) {
  .confirmation-page-redesign .confirmation-main-card {
    padding: 3.5rem 3.5rem;
  }
}

@media (max-width: 639px) {
  .confirmation-page-redesign .confirmation-main-card {
    border-radius: 1.75rem;
  }
}

/* Panier : interface plus éditoriale et centrée sur la décision d'achat. */
.cart-page-design {
  max-width: 76rem;
}

.cart-eyebrow,
.cart-card-kicker {
  display: block;
  color: #6366f1;
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.cart-back-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #4f46e5;
  font-size: .76rem;
  font-weight: 800;
  transition: transform .2s ease, color .2s ease;
}

.cart-back-link:hover {
  color: #312e81;
  transform: translateX(-3px);
}

.cart-progress-card {
  padding: 1.15rem 1.35rem;
  border: 1px solid #c7d2fe;
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 100% 0, rgba(129,140,248,.23), transparent 36%),
    linear-gradient(110deg, #eef2ff, #f0fdf4);
  box-shadow: 0 12px 30px rgba(79,70,229,.08);
}

.cart-progress-percent {
  padding: .28rem .55rem;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: #4338ca;
  font-size: .68rem;
  font-weight: 900;
}

.cart-progress-track {
  width: 100%;
  height: .55rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(165,180,252,.42);
}

.cart-progress-track .shipping-progress-bar {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6366f1, #10b981);
  box-shadow: 0 0 12px rgba(16,185,129,.35);
  transition: width .45s ease;
}

.cart-items-card,
.cart-coupon-card,
.cart-total-card {
  border: 1px solid #e2e8f0;
  border-radius: 1.65rem;
  background: #fff;
  box-shadow: 0 14px 36px rgba(15,23,42,.06);
}

.cart-items-card {
  padding: 1.5rem;
}

.cart-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.15rem;
  margin-bottom: .25rem;
  border-bottom: 1px solid #f1f5f9;
}

.cart-card-heading h2 {
  margin-top: .3rem;
  color: #0f172a;
  font-family: var(--font-heading, inherit);
  font-size: 1.1rem;
  font-weight: 800;
}

.cart-card-lock {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .65rem;
  border-radius: 999px;
  background: #f0fdf4;
  color: #047857;
  font-size: .65rem;
  font-weight: 800;
  white-space: nowrap;
}

.cart-item-row {
  border-bottom: 1px solid #f1f5f9;
  transition: background .2s ease;
}

.cart-item-row:hover {
  background: #f8fafc;
}

.cart-item-image-wrap {
  width: 4.25rem;
  height: 4.25rem;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #f8fafc;
}

.cart-item-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-qty-control {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  padding: .25rem;
  border: 1px solid #e2e8f0;
  border-radius: .85rem;
  background: #fff;
}

.cart-qty-btn {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: .55rem;
  color: #475569;
  font-size: .9rem;
  font-weight: 900;
  line-height: 1;
}

.cart-qty-btn:hover {
  background: #eef2ff;
  color: #4f46e5;
}

.cart-qty-value {
  min-width: 1.55rem;
  color: #0f172a;
  font-size: .72rem;
  font-weight: 900;
  text-align: center;
}

.cart-remove-btn {
  padding: .45rem;
  border-radius: .65rem;
  color: #94a3b8;
  transition: background .2s ease, color .2s ease;
}

.cart-remove-btn:hover {
  background: #fff1f2;
  color: #e11d48;
}

.cart-coupon-card,
.cart-total-card {
  padding: 1.35rem;
}

.cart-coupon-card input {
  background: #f8fafc;
}

.cart-total-icon {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: .85rem;
  background: #eef2ff;
  color: #4f46e5;
}

.cart-total-card .border-t {
  border-color: #e2e8f0;
}

.cart-checkout-btn {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .9rem 1rem;
  border: 0;
  border-radius: .9rem;
  background: linear-gradient(135deg, #4f46e5, #3730a3);
  color: #fff;
  box-shadow: 0 12px 22px rgba(79,70,229,.22);
  font-size: .8rem;
  font-weight: 900;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.cart-checkout-btn:hover {
  filter: brightness(1.06);
  box-shadow: 0 16px 28px rgba(79,70,229,.3);
  transform: translateY(-1px);
}

.cart-checkout-btn:disabled {
  cursor: not-allowed;
  filter: grayscale(.35);
  opacity: .45;
  transform: none;
}

.cart-trust-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  color: #94a3b8;
  font-size: .65rem;
  font-weight: 700;
  text-align: center;
}

/* Récapitulatif compact du checkout : les titres ne poussent jamais le prix
   ni les boutons hors de la carte. */
#page-checkout > form > div:last-child > div {
  min-width: 0;
}

#checkout-sidebar-items {
  display: grid;
  gap: .65rem;
  max-height: 15rem;
  overflow-y: auto;
  overflow-x: hidden;
  padding: .2rem .25rem .2rem 0;
  scrollbar-width: thin;
  scrollbar-color: #c7d2fe transparent;
}

.checkout-order-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem;
  min-width: 0;
  padding: .55rem .1rem;
  border-bottom: 1px solid #f1f5f9;
}

.checkout-order-item:last-child {
  border-bottom: 0;
}

.checkout-order-image {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: cover;
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  background: #f8fafc;
}

.checkout-order-content {
  min-width: 0;
  overflow: hidden;
}

.checkout-order-title {
  display: block;
  overflow: hidden;
  color: #1e293b;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.checkout-order-meta {
  display: block;
  margin-top: .2rem;
  overflow: hidden;
  color: #64748b;
  font-size: .62rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.checkout-order-total {
  min-width: 4.6rem;
  color: #0f172a;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .68rem;
  font-weight: 900;
  text-align: right;
  white-space: nowrap;
}

#btn-full-submit {
  min-height: 3rem;
  line-height: 1.3;
  white-space: normal;
}

@media (max-width: 639px) {
  #page-checkout > form > div:last-child > div {
    position: static;
  }

  #checkout-sidebar-items {
    max-height: 13rem;
  }

  .checkout-order-item {
    grid-template-columns: 2.35rem minmax(0, 1fr) auto;
    gap: .55rem;
  }

  .checkout-order-image {
    width: 2.35rem;
    height: 2.35rem;
  }

  .checkout-order-total {
    min-width: 4.2rem;
    font-size: .64rem;
  }
}

@media (max-width: 639px) {
  .cart-items-card {
    padding: 1rem;
    border-radius: 1.35rem;
  }

  .cart-card-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .cart-card-lock {
    align-self: flex-start;
  }

  .cart-items-card table {
    min-width: 42rem;
  }
}

/* Carrousel d'articles associés de la fiche produit */
.related-products-section {
  padding: 1.5rem;
  border: 1px solid rgba(226, 232, 240, .9);
  border-radius: 1.5rem;
  background: linear-gradient(135deg, #ffffff, #f8fafc);
  box-shadow: 0 12px 35px -28px rgba(15, 23, 42, .55);
}

.related-products-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.related-products-kicker {
  display: block;
  margin-bottom: .25rem;
  color: #4f46e5;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.related-products-heading h2 {
  margin: 0;
  color: #0f172a;
  font-family: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 900;
}

.related-products-controls {
  display: flex;
  gap: .5rem;
}

.related-products-controls button {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  color: #475569;
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  background: #fff;
  transition: color .2s ease, border-color .2s ease, transform .2s ease;
}

.related-products-controls button:hover {
  color: #4f46e5;
  border-color: #a5b4fc;
  transform: translateY(-1px);
}

.related-products-track {
  display: grid;
  grid-auto-columns: minmax(220px, 260px);
  grid-auto-flow: column;
  gap: 1rem;
  overflow-x: auto;
  padding: .25rem .15rem .65rem;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-color: #a5b4fc #e2e8f0;
  scrollbar-width: thin;
}

.related-product-card {
  min-width: 0;
  overflow: hidden;
  color: inherit;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.related-product-card:hover {
  border-color: #a5b4fc;
  box-shadow: 0 14px 28px -22px rgba(79, 70, 229, .8);
  transform: translateY(-3px);
}

.related-product-image-wrap {
  position: relative;
  height: 150px;
  overflow: hidden;
  background: #f1f5f9;
}

.related-product-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.related-product-card:hover .related-product-image-wrap img {
  transform: scale(1.05);
}

.related-product-badge {
  position: absolute;
  top: .65rem;
  left: .65rem;
  padding: .25rem .45rem;
  color: #fff;
  border-radius: .45rem;
  background: #e11d48;
  font-size: .65rem;
  font-weight: 900;
}

.related-product-content {
  padding: .8rem .85rem .9rem;
}

.related-product-category {
  display: block;
  margin-bottom: .3rem;
  overflow: hidden;
  color: #6366f1;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.related-product-content h3 {
  display: -webkit-box;
  min-height: 2.5rem;
  margin: 0;
  overflow: hidden;
  color: #0f172a;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.related-product-meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .35rem .5rem;
  margin-top: .7rem;
}

.related-product-price {
  color: #0f172a;
  font-size: .9rem;
  font-weight: 900;
}

.related-product-old-price {
  color: #94a3b8;
  font-size: .68rem;
  text-decoration: line-through;
}

.related-product-rating {
  margin-left: auto;
  color: #d97706;
  font-size: .68rem;
  font-weight: 800;
}

@media (max-width: 640px) {
  .related-products-section {
    padding: 1rem;
  }

  .related-products-track {
    grid-auto-columns: minmax(205px, 78vw);
  }
}

/* Checkout : lecture confortable sur les étapes livraison, récapitulatif et paiement */
#page-checkout .text-xs,
#page-checkout .text-\[11px\],
#page-checkout .text-\[10px\],
#bank-transfer-modal .text-xs,
#bank-transfer-modal .text-\[11px\],
#bank-transfer-modal .text-\[10px\] {
  font-size: .95rem !important;
  line-height: 1.5;
}

#page-checkout .text-sm,
#bank-transfer-modal .text-sm {
  font-size: 1rem !important;
  line-height: 1.5;
}

#page-checkout label,
#page-checkout input,
#page-checkout select,
#bank-transfer-modal label,
#bank-transfer-modal input {
  font-size: .95rem;
}

#page-checkout h3,
#bank-transfer-modal h2 {
  letter-spacing: .01em;
}

#checkout-step-2 p,
#checkout-step-2 span,
#bank-transfer-modal p,
#bank-transfer-modal span {
  line-height: 1.5;
}

/* Modale de virement : palette claire et hiérarchie plus professionnelle */
#bank-transfer-modal .payment-modal-dialog {
  width: min(100%, 36rem);
  margin: 0 auto;
  border: 1px solid #dbe4ef !important;
  border-radius: 1.5rem !important;
  box-shadow: 0 26px 70px rgba(15, 23, 42, .2) !important;
  font-family: var(--font-site) !important;
}

#bank-transfer-modal,
#bank-transfer-modal * {
  font-family: var(--font-site) !important;
}

#bank-transfer-modal h2,
#bank-transfer-modal button,
#bank-transfer-modal input,
#bank-transfer-modal label {
  font-family: var(--font-site) !important;
}

#bank-transfer-modal .payment-modal-content {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.5rem;
}

#bank-transfer-modal .payment-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, #f8fafc 0%, #edf4ff 100%) !important;
  color: #0f172a !important;
  border-bottom: 1px solid #e2e8f0;
}

#bank-transfer-modal .payment-modal-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .65rem;
  border: 1px solid;
  border-radius: 999px;
  color: #9a6700 !important;
  background: #fff8e6 !important;
  border-color: #f2d28b !important;
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

#bank-transfer-modal .payment-modal-header h2 {
  margin: .65rem 0 .2rem;
  color: #172554 !important;
  font-size: 1.55rem !important;
  font-weight: 800 !important;
  letter-spacing: -.04em !important;
  line-height: 1.15 !important;
}

#bank-transfer-modal .payment-modal-subtitle {
  color: #64748b !important;
}

#bank-transfer-modal .payment-modal-close {
  color: #64748b !important;
}

#bank-transfer-modal .payment-modal-close:hover {
  color: #1e293b !important;
  background: #e2e8f0 !important;
}

#bank-transfer-modal .payment-bank-card {
  padding: 1.25rem;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #f8fbff 0%, #eef2ff 100%) !important;
  color: #1e293b !important;
  border: 1px solid #d3dded !important;
  box-shadow: 0 14px 30px rgba(79, 70, 229, .1) !important;
}

#bank-transfer-modal .payment-bank-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .8rem;
  border-bottom-color: #d9e2ef !important;
}

#bank-transfer-modal .payment-bank-card .text-indigo-300 {
  color: #6575b9 !important;
}

#bank-transfer-modal .payment-bank-card .text-white {
  color: #1e293b !important;
}

#bank-transfer-modal .payment-bank-card .text-amber-300 {
  color: #a66b00 !important;
}

#bank-transfer-modal .payment-bank-card .text-emerald-400 {
  color: #16866b !important;
}

#bank-transfer-modal .payment-bank-detail {
  padding: .85rem;
  border: 1px solid;
  border-radius: .85rem;
  background: rgba(255, 255, 255, .82) !important;
  border-color: #dbe4ef !important;
  box-shadow: 0 2px 5px rgba(15, 23, 42, .03);
}

#bank-transfer-modal .payment-bank-detail .text-slate-400 {
  color: #718096 !important;
}

#bank-transfer-modal .payment-copy-button {
  color: #3347a8 !important;
  background: #e8edff !important;
  border: 1px solid #cbd5f5;
}

#bank-transfer-modal .payment-copy-button:hover {
  color: #24358d !important;
  background: #dbe4ff !important;
}

#bank-transfer-modal .payment-reference-box {
  background: #fff8e6 !important;
  border-color: #f0cc75 !important;
}

#bank-transfer-modal .payment-reference-box .text-amber-300 {
  color: #9a6700 !important;
}

#bank-transfer-modal .payment-reference-box .text-amber-200 {
  color: #7c4f00 !important;
}

#bank-transfer-modal .payment-reference-copy {
  background: #f5bd36 !important;
  color: #4a3000 !important;
  border: 1px solid #e5a91c;
}

#bank-transfer-modal .payment-reference-copy:hover {
  background: #f8c94f !important;
}

#bank-transfer-modal #payment-proof-submit {
  background: linear-gradient(135deg, #4f46c7 0%, #3730a3 100%) !important;
  box-shadow: 0 12px 22px rgba(79, 70, 229, .18) !important;
}

#bank-transfer-modal #payment-proof-submit:hover {
  background: linear-gradient(135deg, #4338b5 0%, #312e81 100%) !important;
}

/* -------------------------------------------------------------------------- */
/* Direction éditoriale : moins d'effets, plus de matière et de personnalité  */
/* -------------------------------------------------------------------------- */

:root {
  --violet: #296f70;
  --violet-deep: #1d5558;
  --cyan: #5bb7b1;
  --coral: #d96d55;
  --amber: #d7a74b;
  --mint: #72b89f;
  --night: #111a2a;
  --night-2: #18243a;
  --night-line: rgba(191, 205, 220, .18);
  --button-radius: .45rem;
}

body {
  letter-spacing: -.005em;
}

.utility-bar {
  background: #1d5558;
  color: #eff8f5;
}

.utility-pill {
  border-radius: .35rem;
  background: #d96d55;
  border-color: transparent;
}

.site-header {
  background: #fbfaf7;
  border-bottom-color: #e7e1d8;
  box-shadow: 0 1px 0 rgba(28, 39, 49, .04), 0 5px 15px rgba(28, 39, 49, .035);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.brand-mark,
.footer-brand-mark {
  border-radius: .55rem;
  background: #d96d55;
  box-shadow: none;
}

.brand-mark::before,
.footer-brand-mark::before {
  width: .95rem;
  height: .95rem;
  border-width: 1.5px;
  border-radius: .18rem;
  transform: rotate(45deg);
}

.brand-mark::after,
.footer-brand-mark::after {
  width: .25rem;
  height: .25rem;
  background: #f9e4a8;
  box-shadow: none;
}

.brand-lockup > div:last-child > div span {
  color: #296f70 !important;
}

.main-nav-link:hover,
.main-nav-link.active {
  color: #1d5558 !important;
  background: #edf4f1 !important;
}

.main-nav-link.active {
  box-shadow: inset 0 -2px 0 #d96d55;
}

.header-icon-button,
.cart-action {
  background: transparent;
}

.header-icon-button:hover,
.cart-action:hover {
  color: #1d5558 !important;
  border-color: #c9dfd9;
  background: #edf4f1 !important;
  transform: none;
}

.header-cart-badge {
  background: #d96d55;
}

/* Pages sombres : aplats opaques et contrastes francs */
html[data-page="home"] .site-header,
html[data-page="store"] .site-header {
  background: #111a2a;
  border-bottom-color: #2a3b56;
  box-shadow: 0 1px 0 rgba(255,255,255,.04);
}

html[data-page="home"] .brand-lockup > div:last-child > div,
html[data-page="store"] .brand-lockup > div:last-child > div {
  color: #f6f4ee !important;
}

html[data-page="home"] .main-nav-link:hover,
html[data-page="home"] .main-nav-link.active,
html[data-page="store"] .main-nav-link:hover,
html[data-page="store"] .main-nav-link.active,
html[data-page="home"] .header-icon-button:hover,
html[data-page="store"] .header-icon-button:hover,
html[data-page="home"] .cart-action:hover {
  color: #d7eee9 !important;
  border-color: #3e6f73;
  background: #1a2a3f !important;
}

html[data-page="home"] main .bg-white,
html[data-page="store"] main .bg-white,
html[data-page="home"] .glass,
html[data-page="store"] .glass {
  background: #151f34 !important;
  border-color: #2a3b56 !important;
  box-shadow: none !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-page="home"] .tech-grid-bg,
html[data-page="store"] .tech-grid-bg {
  background-image: none !important;
}

.glass,
.glass-panel {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.hc-card:hover,
.product-card:hover {
  border-color: #4d8885 !important;
  box-shadow: 0 9px 18px rgba(0,0,0,.13) !important;
  transform: translateY(-3px);
}

.neon-text {
  background: none;
  color: #8bd5c8 !important;
}

.neon-btn {
  background: #d96d55 !important;
  box-shadow: none;
}

.neon-btn:hover {
  background: #c45d48 !important;
  filter: none;
  box-shadow: none;
  transform: translateY(-1px);
}

.chip {
  border-radius: .4rem !important;
  border-color: #4d8885 !important;
  color: #9bd8cf !important;
  background: #1a343e !important;
}

.glow-ring {
  box-shadow: none !important;
}

.hero-primary-action {
  color: #fffdf8;
  background: #d96d55;
  box-shadow: none;
}

.hero-primary-action:hover {
  background: #c45d48;
  filter: none;
  transform: translateY(-1px);
}

.hero-secondary-action {
  border-color: rgba(255,255,255,.42);
  border-radius: .45rem;
  background: rgba(15, 23, 42, .2);
}

.hero-secondary-action:hover {
  background: rgba(15, 23, 42, .42);
  transform: none;
}

.hero-editorial-control {
  border-radius: .45rem;
  background: rgba(17,26,42,.64);
  backdrop-filter: none;
}

.hero-editorial-control:hover {
  border-color: #9bd8cf;
  background: #1d5558;
}

.hero-editorial-dots button.is-active {
  background: #d96d55;
}

.hero-trust-bar {
  border-radius: .75rem;
  background: #151f34 !important;
  box-shadow: none;
  backdrop-filter: none;
}

main .bg-white,
.glass-panel {
  border-radius: .85rem !important;
  box-shadow: 0 7px 18px rgba(33, 41, 58, .055);
}

main .bg-white:hover {
  border-color: #d6cfc3 !important;
}

main .bg-indigo-600,
main .bg-indigo-500 {
  background: #296f70 !important;
}

main .hover\:bg-indigo-700:hover {
  background: #1d5558 !important;
}

main .text-indigo-600,
main .text-indigo-700 {
  color: #1d5558 !important;
}

main .bg-indigo-50 {
  background: #edf4f1 !important;
}

main .border-indigo-100,
main .border-indigo-200 {
  border-color: #c9dfd9 !important;
}

.account-nav-item.active {
  background: #296f70 !important;
  box-shadow: none;
}

.product-card button[title] {
  border-radius: .45rem !important;
  background: rgba(255,255,255,.06);
}

.footer-brand-mark {
  border-radius: .45rem;
}

.site-footer {
  background: #111a2a;
}

/* Témoignages : une section éditoriale calme, sans effet de carte générique */
.home-testimonials {
  padding: 2.5rem 0 .5rem;
}

.home-testimonials-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

.home-section-kicker {
  display: block;
  margin-bottom: .45rem;
  color: #d96d55;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.home-testimonials-heading h2 {
  margin: 0;
  color: #f4f5fa;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.05;
}

.home-testimonials-heading p {
  max-width: 24rem;
  margin: 0;
  color: #9da8cb;
  font-size: .78rem;
  line-height: 1.6;
  text-align: right;
}

.home-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.testimonial-card {
  display: flex;
  flex-direction: column;
  min-height: 13rem;
  padding: 1.3rem;
  border: 1px solid #2a3b56;
  border-radius: .75rem;
  background: #151f34;
}

.testimonial-stars {
  color: #d7a74b;
  font-size: .72rem;
  letter-spacing: .18em;
}

.testimonial-card blockquote {
  flex: 1;
  margin: 1.15rem 0 1.2rem;
  color: #d9dfef;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: .82rem;
  line-height: 1.65;
}

.testimonial-card footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .85rem;
  border-top: 1px solid #2a3b56;
  color: #f3f5fb;
  font-size: .74rem;
}

.testimonial-card footer span {
  color: #8c99ba;
  font-size: .65rem;
}

@media (max-width: 767px) {
  .home-testimonials-heading {
    display: block;
  }

  .home-testimonials-heading p {
    margin-top: .75rem;
    text-align: left;
  }

  .home-testimonials-grid {
    grid-template-columns: 1fr;
  }
}

/* Catégories photo de l'accueil */
.home-categories {
  padding-top: .35rem;
}

.home-categories-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.2rem;
}

.home-categories-heading h2 {
  margin: 0;
  color: #f4f5fa;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.05;
}

.home-categories-link {
  color: #9bd8cf;
  font-size: .75rem;
  font-weight: 700;
  transition: color .2s ease;
}

.home-categories-link:hover {
  color: #fff;
}

.home-categories-link span {
  padding-left: .25rem;
  color: #d96d55;
  font-size: 1rem;
}

.home-featured-section {
  padding-top: .35rem;
}

.home-featured-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.2rem;
}

.home-featured-heading h2 {
  margin: 0;
  color: #f4f5fa;
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.05;
}

.home-categories-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, 10rem);
  gap: .8rem;
}

.home-category-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #2a3b56;
  border-radius: .7rem;
  background: #151f34;
}

.home-category-card-large {
  grid-row: span 2;
  grid-column: span 2;
}

.home-category-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.88);
  transition: transform .45s ease, filter .45s ease;
}

.home-category-card:hover img {
  filter: saturate(1.06);
  transform: scale(1.04);
}

.home-category-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,16,32,.04) 20%, rgba(10,16,32,.88) 100%);
}

.home-category-content {
  position: absolute;
  right: 1rem;
  bottom: .9rem;
  left: 1rem;
  display: flex;
  flex-direction: column;
  color: #fff;
}

.home-category-content strong {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.1;
}

.home-category-card-large .home-category-content strong {
  font-size: 1.45rem;
}

.home-category-content small {
  margin-top: .3rem;
  color: rgba(234,240,250,.74);
  font-size: .65rem;
}

@media (max-width: 767px) {
  .home-categories-heading {
    display: block;
  }

  .home-categories-link {
    display: inline-block;
    margin-top: .75rem;
  }

  .home-featured-heading {
    display: block;
  }

  .home-categories-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(3, 9rem);
  }

  .home-category-card-large {
    grid-row: span 2;
    grid-column: span 2;
  }

  .home-category-card-large .home-category-content strong {
    font-size: 1.25rem;
  }
}

/* Pages éditoriales et informations : textes plus respirants, illustrés */
.editorial-page-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr);
  align-items: stretch;
  gap: 1.25rem;
}

.editorial-page-copy,
.editorial-page-visual,
.editorial-info-panel {
  border: 1px solid #e6e1d9;
  border-radius: .85rem;
  background: #fffdfa;
}

.editorial-page-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.5rem, 4vw, 2.8rem);
}

.editorial-page-copy h2 {
  margin: .55rem 0 .8rem;
  color: #182431;
  font-size: clamp(1.45rem, 3vw, 2.25rem);
  line-height: 1.08;
}

.editorial-page-copy p,
.editorial-prose p {
  color: #637080;
  font-size: .86rem;
  line-height: 1.8;
}

.editorial-page-copy p + p,
.editorial-prose p + p {
  margin-top: .8rem;
}

.editorial-page-visual {
  position: relative;
  min-height: 270px;
  overflow: hidden;
}

.editorial-page-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 270px;
  object-fit: cover;
  filter: saturate(.86);
}

.editorial-page-visual figcaption {
  position: absolute;
  right: 1rem;
  bottom: .85rem;
  left: 1rem;
  padding: .65rem .75rem;
  border-left: 2px solid #d96d55;
  color: #fff;
  background: rgba(17,26,42,.78);
  font-size: .68rem;
  line-height: 1.45;
}

.editorial-kicker {
  color: #d96d55;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.editorial-info-panel {
  padding: 1.15rem 1.3rem;
}

.editorial-info-panel h3 {
  margin: 0 0 .6rem;
  color: #182431;
  font-size: .9rem;
}

.editorial-info-panel p,
.editorial-info-panel address {
  color: #637080;
  font-size: .76rem;
  line-height: 1.7;
}

.editorial-info-panel address {
  font-style: normal;
}

.editorial-info-panel strong {
  color: #296f70;
}

.editorial-prose {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .65fr);
  align-items: start;
  gap: 1.5rem;
}

.editorial-prose-image {
  width: 100%;
  height: 220px;
  border-radius: .75rem;
  object-fit: cover;
  filter: saturate(.84);
}

.legal-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1.25rem;
}

.legal-meta > div {
  padding: .9rem 1rem;
  border-left: 2px solid #d96d55;
  background: #f7f3ec;
}

.legal-meta span {
  display: block;
  margin-bottom: .25rem;
  color: #8a766c;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.legal-meta strong {
  color: #25313f;
  font-size: .78rem;
  font-weight: 700;
}

@media (max-width: 767px) {
  .editorial-page-hero,
  .editorial-prose {
    grid-template-columns: 1fr;
  }

  .editorial-page-visual,
  .editorial-page-visual img {
    min-height: 220px;
  }

  .legal-meta {
    grid-template-columns: 1fr;
  }
}

/* Nouveau pied de page : plus éditorial, plus lisible, moins compact */
.site-footer {
  position: relative;
  margin-top: 5.5rem;
  border-top: 4px solid #d96d55;
  background: #0e1827;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: -4px;
  left: 10%;
  width: 26%;
  height: 4px;
  background: #72b89f;
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) repeat(3, minmax(0, 1fr));
  gap: 2.75rem;
  padding-top: 4rem;
  padding-bottom: 3.4rem;
}

.footer-main > div:first-child {
  grid-column: span 1;
  padding-right: 1.5rem;
}

.footer-brand {
  margin-bottom: .25rem;
}

.footer-brand-mark {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: .65rem;
}

.footer-main > div:first-child > p {
  max-width: 20rem;
  margin-top: 1.1rem;
  color: #a7b3c9 !important;
  font-size: .75rem;
  line-height: 1.7;
}

.footer-main > div:not(:first-child) {
  padding-top: .35rem;
}

.footer-heading {
  margin-bottom: 1.15rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid rgba(181,194,255,.14);
  color: #f5f7fb;
  font-size: .66rem;
  letter-spacing: .13em;
}

.footer-links {
  display: grid;
  gap: .65rem;
}

.footer-links a {
  display: inline-flex;
  align-items: center;
  color: #9aa8c1;
  font-size: .72rem;
}

.footer-links a::before {
  content: "→";
  margin-right: .45rem;
  color: #d96d55;
  opacity: .85;
  transition: transform .2s ease;
}

.footer-links a:hover::before {
  transform: translateX(3px);
}

.footer-service-note {
  max-width: 20rem;
  margin-top: 1.25rem;
}

.footer-business-details {
  max-width: 20rem;
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top-color: rgba(181,194,255,.14);
}

.footer-bottom {
  min-height: 4.2rem;
  border-top-color: rgba(181,194,255,.16);
  color: #7787a4;
}

.footer-bottom > div {
  color: #91a0ba;
}

@media (max-width: 1023px) {
  .footer-main {
    grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr));
    gap: 1.75rem;
  }
}

@media (max-width: 639px) {
  .site-footer {
    margin-top: 3.5rem;
  }

  .footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.25rem;
    padding-top: 2.8rem;
    padding-bottom: 2.5rem;
  }

  .footer-main > div:first-child {
    grid-column: 1 / -1;
    padding-right: 0;
  }

  .footer-main > div:first-child > p,
  .footer-service-note,
  .footer-business-details {
    max-width: 100%;
  }
}

/* -------------------------------------------------------------------------- */
/* Panier : composition éditoriale inspirée de la maquette de référence       */
/* -------------------------------------------------------------------------- */

html[data-page="cart"] body {
  background: var(--paper) !important;
}

html[data-page="cart"] main {
  max-width: none !important;
}

.checkout-flow-page {
  width: 100%;
  max-width: none;
  margin-right: auto;
  margin-left: auto;
}

.checkout-summary-grid {
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem) !important;
  align-items: start;
  justify-content: space-between !important;
  gap: clamp(1.25rem, 2.5vw, 2.75rem) !important;
}

.checkout-summary-main,
.checkout-summary-aside {
  min-width: 0;
}

.checkout-summary-aside {
  width: 100%;
  justify-self: end;
}

.checkout-summary-main > .bg-white:first-child {
  width: 100%;
  min-height: 20rem;
  padding-right: clamp(1.5rem, 3vw, 3rem);
  padding-left: clamp(1.5rem, 3vw, 3rem);
}

.checkout-summary-card {
  min-width: 0;
}

.checkout-item-payment-status {
  display: block;
  margin-top: .25rem;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.3;
}

/* La ligne d'article doit garder une vraie zone pour le libellé et le
   montant. Sur les écrans intermédiaires, le montant passe sous le produit
   plutôt que de sortir de la carte. */
#checkout-summary-items {
  width: 100%;
  min-height: 11rem;
  overflow: hidden;
  padding-right: .25rem;
}

.checkout-summary-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, auto);
  align-items: start !important;
  gap: 1.5rem;
  min-width: 0;
  min-height: 9.5rem;
  padding: 1.5rem .35rem !important;
}

.checkout-summary-item-main,
.checkout-summary-item-price {
  min-width: 0;
}

.checkout-summary-item-price {
  width: 100%;
  min-width: 15rem;
  max-width: 21rem;
}

/* Hiérarchie dédiée au récapitulatif : les règles générales du checkout
   restent lisibles ailleurs, mais ne doivent pas transformer les métadonnées
   de cet encart en gros titres. */
#checkout-step-2 .checkout-summary-header {
  gap: 1rem;
  min-width: 0;
}

#checkout-step-2 .checkout-summary-title {
  min-width: 0;
  font-size: .82rem !important;
  letter-spacing: .08em;
  line-height: 1.25 !important;
}

#checkout-step-2 .checkout-summary-control {
  flex: 0 0 auto;
  padding: .42rem .7rem;
  font-size: .68rem !important;
  letter-spacing: .02em;
  line-height: 1.2 !important;
  white-space: nowrap;
}

#checkout-step-2 .checkout-summary-item-main .font-bold {
  font-size: .95rem !important;
  line-height: 1.3 !important;
}

#checkout-step-2 .checkout-summary-item-main .text-\[11px\] {
  font-size: .74rem !important;
  line-height: 1.35 !important;
}

#checkout-step-2 .checkout-summary-item-price > span:first-child {
  color: #17233c;
  font-size: 1.15rem !important;
  line-height: 1.2 !important;
}

#checkout-step-2 .checkout-item-payment-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: flex-end;
  margin-top: .4rem;
  padding: .38rem .65rem;
  color: #a45f13 !important;
  background: #fff7e6;
  border: 1px solid #f5d99d;
  border-radius: 999px;
  font-size: .7rem !important;
  font-weight: 800;
  line-height: 1.2 !important;
  white-space: nowrap;
}

@media (max-width: 860px) {
  .checkout-summary-main > .bg-white:first-child {
    width: calc(100% + 1.5rem);
    min-height: 20rem;
    margin-left: -.75rem;
    padding-right: clamp(1.25rem, 4vw, 2.25rem);
    padding-left: clamp(1.25rem, 4vw, 2.25rem);
  }

  .checkout-summary-item {
    grid-template-columns: minmax(0, 1fr);
    min-height: 12rem;
    gap: 1rem;
  }

  .checkout-summary-item-price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    max-width: none;
    text-align: left;
  }

  .checkout-summary-item-price .checkout-item-payment-status {
    margin-top: 0;
    justify-content: flex-start;
    text-align: right;
  }
}

@media (max-width: 480px) {
  .checkout-summary-item {
    min-height: 12rem;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .checkout-summary-item-main {
    align-items: flex-start;
  }

  .checkout-summary-item-price {
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
  }

  .checkout-summary-item-price .checkout-item-payment-status {
    text-align: left;
  }
}

.checkout-summary-card button[onclick="openPaymentModal()"] {
  min-height: 4.25rem;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  font-size: .9rem;
  line-height: 1.35;
}

@media (max-width: 1020px) {
  .checkout-summary-grid {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem) !important;
    gap: 1.5rem !important;
  }
}

@media (max-width: 860px) {
  .checkout-summary-grid {
    grid-template-columns: 1fr !important;
  }

  .checkout-summary-aside {
    order: -1;
  }

  .checkout-summary-card {
    position: static !important;
  }
}

.cart-page-design {
  width: 100%;
  max-width: 118rem;
  margin: 0 auto;
  padding-top: 2.4rem;
  padding-bottom: 2rem;
}

.cart-page-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 .15rem 1rem;
  border-bottom: 1px solid #7a8190;
  color: #7f8793;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.72fr) minmax(21rem, .82fr);
  align-items: start;
  gap: clamp(2rem, 4vw, 4.75rem);
  padding-top: 1rem;
}

.cart-selection-column {
  min-width: 0;
}

.cart-selection-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: 4rem;
}

.cart-eyebrow {
  margin-bottom: .45rem;
  color: var(--coral);
  font-size: .63rem;
  letter-spacing: .14em;
}

.cart-selection-heading h1 {
  margin: 0;
  color: var(--ink);
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(1.75rem, 3vw, 2.45rem);
  font-weight: 700;
  letter-spacing: -.055em;
}

.cart-back-link {
  flex: 0 0 auto;
  color: var(--violet-deep);
  font-size: .72rem;
}

.cart-back-link:hover {
  color: var(--coral);
}

.cart-item-list {
  margin-top: 1.45rem;
}

.cart-item-list-inner {
  display: grid;
  gap: 1rem;
}

.cart-item-row {
  display: grid;
  grid-template-columns: 2rem 8.7rem minmax(12rem, 1fr) 5.5rem 7.1rem 6rem;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  padding: 1.3rem 1.35rem;
  border: 1px solid rgba(230, 233, 242, .95);
  border-radius: 1.35rem;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 12px 28px rgba(29, 39, 83, .045);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.cart-item-row:hover {
  border-color: rgba(114, 87, 255, .28);
  box-shadow: 0 16px 34px rgba(29, 39, 83, .09);
  transform: translateY(-2px);
}

.cart-item-index {
  align-self: center;
  color: var(--coral);
  font-size: .72rem;
  font-weight: 900;
}

.cart-item-image-wrap {
  width: 8.7rem;
  height: 8.7rem;
  border: 0;
  border-radius: 1.05rem;
  background: #eef0f4;
}

.cart-item-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cart-item-details {
  min-width: 0;
  align-self: center;
}

.cart-item-meta,
.cart-item-unit > span,
.cart-item-total > span {
  display: block;
  margin-bottom: .55rem;
  color: #8d94a1;
  font-size: .59rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cart-item-details h2 {
  max-width: 21rem;
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.25;
  text-overflow: ellipsis;
}

.cart-remove-btn {
  display: inline-flex;
  padding: 0;
  margin-top: .8rem;
  border: 0;
  border-radius: 0;
  color: var(--coral);
  background: transparent;
  font-size: .66rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(255, 122, 104, .35);
  text-underline-offset: .2rem;
}

.cart-remove-btn:hover {
  color: var(--violet-deep);
  background: transparent;
}

.cart-item-unit,
.cart-item-total {
  min-width: 0;
}

.cart-item-unit strong,
.cart-item-total strong {
  display: block;
  color: var(--ink);
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: .88rem;
  font-weight: 800;
  white-space: nowrap;
}

.cart-item-unit strong {
  text-align: right;
}

.cart-item-total strong {
  font-size: 1rem;
  text-align: right;
}

.cart-qty-control {
  justify-self: center;
  gap: .15rem;
  padding: .35rem;
  border: 1px solid #e1e3e8;
  border-radius: .95rem;
  background: rgba(255, 255, 255, .8);
}

.cart-qty-btn {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: .6rem;
  color: var(--coral);
}

.cart-qty-btn:hover {
  color: #fff;
  background: var(--coral);
}

.cart-qty-value {
  min-width: 1.7rem;
  color: var(--ink);
  font-size: .74rem;
}

.cart-delivery-note {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-height: 6.15rem;
  padding: 1rem 1.35rem;
  margin-top: 1.45rem;
  border-radius: 1.3rem;
  background: #deeff6;
  color: #607789;
}

.cart-delivery-icon {
  display: grid;
  width: 3.2rem;
  height: 3.2rem;
  place-items: center;
  border-radius: 50%;
  color: var(--coral);
  background: rgba(255, 255, 255, .9);
}

.cart-delivery-copy {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.cart-delivery-copy strong {
  color: var(--ink);
  font-size: .84rem;
}

.cart-delivery-copy > span {
  color: #607789;
  font-size: .8rem;
  line-height: 1.45;
}

.cart-delivery-arrow {
  width: 1.1rem;
  color: var(--coral);
}

.cart-summary-column {
  position: sticky;
  top: 1.25rem;
  min-width: 0;
}

.cart-total-card {
  position: relative;
  overflow: hidden;
  padding: 3.65rem 2.25rem 1.65rem;
  border: 0;
  border-radius: 1.55rem;
  color: #edf0f4;
  background: linear-gradient(150deg, #20262c 0%, #171d23 100%);
  box-shadow: 0 22px 42px rgba(29, 39, 83, .2);
}

.cart-total-card::before {
  position: absolute;
  top: 0;
  left: 2.55rem;
  width: 5.1rem;
  height: .62rem;
  border-radius: 0 0 .25rem .25rem;
  background: var(--coral);
  content: "";
}

.cart-summary-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.cart-summary-topline .cart-card-kicker {
  color: #f29a87;
}

.cart-summary-step {
  color: #aab6c2;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .57rem;
  font-weight: 700;
  letter-spacing: .05em;
}

.cart-summary-rule {
  height: 1px;
  margin: 1rem 0 2.35rem;
  background: rgba(225, 215, 197, .7);
}

.cart-total-card h2 {
  margin: 0 0 2.9rem;
  color: #fff;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(2rem, 3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -.065em;
  line-height: 1;
}

.cart-summary-dot {
  color: var(--coral);
}

.cart-summary-rows {
  display: grid;
}

.cart-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.45rem;
  border-bottom: 1px solid rgba(178, 192, 205, .18);
  color: #aebac6;
  font-size: .73rem;
}

.cart-summary-row strong {
  color: #f7f7f5;
  font-size: .75rem;
  font-weight: 800;
  text-align: right;
}

.cart-summary-row small {
  color: #8d9aa7;
  font-size: .65rem;
}

.cart-summary-row.cart-discount-row {
  color: #f39a86;
}

.cart-summary-row.cart-discount-row strong {
  color: #f39a86;
}

.cart-summary-row.cart-vat-row {
  min-height: 2.8rem;
  border-bottom: 0;
  color: #84919e;
  font-size: .66rem;
}

.cart-summary-row.cart-vat-row strong {
  color: #aebac6;
  font-size: .68rem;
}

.cart-summary-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0 2rem;
  color: #e5e9ed;
  font-size: .73rem;
}

.cart-summary-total strong {
  color: #f19a85;
  font-size: clamp(1.8rem, 3vw, 2.2rem);
  font-weight: 800;
  letter-spacing: -.06em;
  white-space: nowrap;
}

.cart-checkout-btn {
  min-height: 4rem;
  border-radius: 1rem;
  color: #fff;
  background: var(--coral);
  box-shadow: 0 13px 25px rgba(255, 122, 104, .2);
  font-size: .84rem;
}

.cart-checkout-btn:hover {
  background: #f36e5b;
  box-shadow: 0 16px 30px rgba(255, 122, 104, .3);
}

.cart-coupon-inline {
  padding: 1.05rem 0 1.2rem;
  border-bottom: 1px solid rgba(178, 192, 205, .18);
}

.cart-coupon-inline label {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-bottom: .55rem;
  color: #aebac6;
  font-size: .67rem;
  font-weight: 700;
}

.cart-coupon-form {
  display: flex;
  gap: .45rem;
}

.cart-coupon-form input {
  min-width: 0;
  flex: 1;
  border: 1px solid rgba(178, 192, 205, .22);
  border-radius: .65rem;
  outline: 0;
  padding: .65rem .7rem;
  color: #f7f7f5;
  background: rgba(255, 255, 255, .06);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .65rem;
  text-transform: uppercase;
}

.cart-coupon-form input:focus {
  border-color: var(--coral);
}

.cart-coupon-form button {
  border: 0;
  border-radius: .65rem;
  padding: .55rem .7rem;
  color: #f9fafb;
  background: rgba(255, 255, 255, .12);
  font-size: .64rem;
  font-weight: 800;
}

.cart-coupon-form button:hover {
  background: var(--coral);
}

.cart-coupon-inline #cart-page-coupon-msg {
  margin-top: .5rem;
  font-size: .64rem;
}

.cart-payment-note {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1.35rem 0 1.15rem;
  border-bottom: 1px solid rgba(225, 215, 197, .7);
  color: #f29a87;
}

.cart-payment-note > div {
  display: grid;
  gap: .55rem;
  min-width: 0;
}

.cart-payment-note strong {
  color: #d8dee4;
  font-size: .83rem;
  font-weight: 500;
  line-height: 1.35;
}

.cart-payment-note span {
  color: #83909d;
  font-size: .6rem;
}

.cart-summary-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: 1.1rem;
  color: #f29a87;
  font-size: .66rem;
}

.cart-summary-footer button {
  display: grid;
  width: 1.75rem;
  height: 1.75rem;
  place-items: center;
  border: 0;
  color: #f29a87;
  background: transparent;
}

.cart-summary-footer button:hover {
  color: #fff;
  transform: translateX(3px);
}

.cart-empty-state {
  padding: 4rem 1rem;
  border: 1px dashed #cbd1dd;
  border-radius: 1.35rem;
  color: #9ca5b4;
  text-align: center;
}

.cart-empty-state h2 {
  margin: 1rem 0 .35rem;
  color: var(--ink);
  font-size: 1rem;
}

.cart-empty-state p {
  margin: 0;
  font-size: .75rem;
}

.cart-empty-button {
  margin-top: 1.15rem;
  padding: .7rem 1rem;
  border: 0;
  border-radius: .7rem;
  color: #fff;
  background: var(--violet);
  font-size: .72rem;
  font-weight: 800;
}

@media (max-width: 1120px) {
  .cart-layout {
    grid-template-columns: minmax(0, 1.45fr) minmax(19rem, .85fr);
    gap: 1.5rem;
  }

  .cart-item-row {
    grid-template-columns: 1.5rem 6.5rem minmax(10rem, 1fr) 4.7rem 6.2rem 5.2rem;
    gap: .7rem;
    padding: 1.05rem;
  }

  .cart-item-image-wrap {
    width: 6.5rem;
    height: 6.5rem;
  }

  .cart-total-card {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
}

@media (max-width: 900px) {
  .cart-layout {
    grid-template-columns: 1fr;
  }

  .cart-summary-column {
    position: static;
  }

  .cart-total-card {
    max-width: 44rem;
    margin: 0 auto;
  }
}

@media (max-width: 680px) {
  .cart-page-design {
    padding-top: 1.35rem;
  }

  .cart-page-topline {
    font-size: .56rem;
  }

  .cart-page-topline span:last-child {
    display: none;
  }

  .cart-selection-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: .85rem;
  }

  .cart-back-link {
    align-self: flex-start;
  }

  .cart-item-row {
    grid-template-columns: 1.5rem 5.7rem minmax(0, 1fr);
    grid-template-areas:
      "index image details"
      "index image unit"
      "index image quantity"
      "index image total";
    align-items: start;
    column-gap: .7rem;
    row-gap: .5rem;
    padding: .9rem;
  }

  .cart-item-index {
    grid-area: index;
    padding-top: .2rem;
  }

  .cart-item-image-wrap {
    grid-area: image;
    width: 5.7rem;
    height: 5.7rem;
  }

  .cart-item-details {
    grid-area: details;
  }

  .cart-item-details h2 {
    font-size: .88rem;
  }

  .cart-remove-btn {
    font-size: .61rem;
  }

  .cart-item-unit {
    grid-area: unit;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
  }

  .cart-item-total {
    grid-area: total;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
    padding-top: .45rem;
    border-top: 1px solid #e6e9f2;
  }

  .cart-item-unit > span,
  .cart-item-total > span {
    margin: 0;
  }

  .cart-item-unit strong,
  .cart-item-total strong {
    font-size: .82rem;
    text-align: right;
  }

  .cart-qty-control {
    grid-area: quantity;
    justify-self: start;
  }

  .cart-delivery-note {
    grid-template-columns: 2.7rem minmax(0, 1fr);
    gap: .75rem;
    padding: .9rem;
  }

  .cart-delivery-icon {
    width: 2.7rem;
    height: 2.7rem;
  }

  .cart-delivery-arrow {
    display: none;
  }

  .cart-total-card {
    padding: 3.2rem 1.25rem 1.35rem;
    border-radius: 1.25rem;
  }

  .cart-total-card h2 {
    margin-bottom: 2.15rem;
  }
}

/* Panier : aucune largeur fixe ne doit pouvoir repousser la page sur mobile. */
.cart-layout,
.cart-selection-column,
.cart-summary-column,
.cart-item-list,
.cart-item-list-inner,
.cart-item-row,
.cart-item-details,
.cart-item-unit,
.cart-item-total {
  min-width: 0;
}

.cart-item-row {
  max-width: 100%;
  overflow: hidden;
}

.cart-item-image,
.cart-item-image-wrap {
  max-width: 100%;
}

.cart-item-details h2 {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cart-item-unit strong,
.cart-item-total strong {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.cart-coupon-form input {
  min-width: 0;
}

.cart-coupon-form button {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 899px) {
  .cart-item-row {
    grid-template-columns: 1.35rem 6.25rem minmax(0, 1fr);
    grid-template-areas:
      "index image details"
      "index image unit"
      "index image quantity"
      "index image total";
    align-items: start;
    column-gap: .75rem;
    row-gap: .55rem;
    padding: 1rem;
  }

  .cart-item-index {
    grid-area: index;
    padding-top: .2rem;
  }

  .cart-item-image-wrap {
    grid-area: image;
    width: 6.25rem;
    height: 6.25rem;
  }

  .cart-item-details {
    grid-area: details;
  }

  .cart-item-details h2 {
    max-width: none;
    font-size: .92rem;
  }

  .cart-item-unit {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .6rem;
    grid-area: unit;
  }

  .cart-item-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .6rem;
    grid-area: total;
    padding-top: .45rem;
    border-top: 1px solid #e6e9f2;
  }

  .cart-item-unit > span,
  .cart-item-total > span {
    margin: 0;
  }

  .cart-item-unit strong,
  .cart-item-total strong {
    font-size: .82rem;
    text-align: right;
  }

  .cart-qty-control {
    grid-area: quantity;
    justify-self: start;
  }
}

@media (max-width: 640px) {
  .cart-item-row {
    grid-template-columns: 1.15rem 4.75rem minmax(0, 1fr);
    column-gap: .6rem;
    row-gap: .45rem;
    padding: .8rem;
  }

  .cart-item-image-wrap {
    width: 4.75rem;
    height: 4.75rem;
  }

  .cart-item-details h2 {
    font-size: .84rem;
    line-height: 1.3;
  }

  .cart-item-meta,
  .cart-item-unit > span,
  .cart-item-total > span {
    font-size: .55rem;
  }

  .cart-remove-btn {
    max-width: 100%;
    font-size: .58rem;
    overflow-wrap: anywhere;
  }

  .cart-coupon-form {
    align-items: stretch;
  }

  .cart-coupon-form input {
    width: 0;
  }
}

/* -------------------------------------------------------------------------- */
/* Palette globale claire : fraîche, lisible et cohérente sur tout le site   */
/* -------------------------------------------------------------------------- */

:root {
  --ink: #17233c;
  --ink-soft: #60708a;
  --paper: #f5f8fc;
  --surface: #ffffff;
  --line: #e2e9f2;
  --violet: #6475df;
  --violet-deep: #4658c5;
  --cyan: #3bb8c3;
  --coral: #e47d6b;
  --amber: #d9ad4a;
  --mint: #43b995;
  --night: #edf3fa;
  --night-2: #e5edf7;
  --night-line: rgba(104, 122, 153, .18);
  --shadow-sm: 0 10px 28px rgba(39, 60, 102, .07);
  --shadow-md: 0 20px 48px rgba(39, 60, 102, .11);
}

html,
body {
  background:
    radial-gradient(900px 480px at 100% -8%, rgba(121, 137, 232, .12), transparent 68%),
    radial-gradient(760px 420px at -8% 10%, rgba(91, 203, 190, .1), transparent 66%),
    var(--paper) !important;
}

body {
  color: var(--ink) !important;
}

/* Accueil et boutique : surfaces claires, texte sombre et accents colorés. */
html[data-page="home"] body,
html[data-page="store"] body {
  color: var(--ink) !important;
  background:
    radial-gradient(900px 520px at 92% -8%, rgba(91, 203, 190, .14), transparent 66%),
    radial-gradient(850px 540px at -8% 12%, rgba(121, 137, 232, .12), transparent 66%),
    var(--paper) !important;
}

html[data-page="home"] .site-header,
html[data-page="store"] .site-header {
  background: rgba(255, 255, 255, .92) !important;
  border-bottom-color: #e2e9f2 !important;
  box-shadow: 0 8px 25px rgba(39, 60, 102, .06) !important;
}

html[data-page="home"] .brand-lockup,
html[data-page="store"] .brand-lockup,
html[data-page="home"] .brand-lockup > div:last-child > div,
html[data-page="store"] .brand-lockup > div:last-child > div {
  color: var(--ink) !important;
}

html[data-page="home"] .brand-lockup > div:last-child span,
html[data-page="store"] .brand-lockup > div:last-child span {
  color: #71809b !important;
}

html[data-page="home"] .main-nav-link,
html[data-page="store"] .main-nav-link,
html[data-page="home"] .header-icon-button,
html[data-page="store"] .header-icon-button,
html[data-page="home"] .cart-action {
  color: #5f6d86 !important;
}

html[data-page="home"] .main-nav-link:hover,
html[data-page="home"] .main-nav-link.active,
html[data-page="store"] .main-nav-link:hover,
html[data-page="store"] .main-nav-link.active,
html[data-page="home"] .header-icon-button:hover,
html[data-page="store"] .header-icon-button:hover,
html[data-page="home"] .cart-action:hover {
  color: var(--violet-deep) !important;
  border-color: #cfd8fa !important;
  background: #f0f3ff !important;
}

html[data-page="home"] #mobile-menu,
html[data-page="store"] #mobile-menu {
  border-color: #e2e9f2 !important;
  background: rgba(255, 255, 255, .98) !important;
}

html[data-page="home"] #mobile-menu button,
html[data-page="store"] #mobile-menu button {
  color: #566681 !important;
}

html[data-page="home"] main .bg-white,
html[data-page="store"] main .bg-white,
html[data-page="home"] .glass,
html[data-page="store"] .glass {
  color: var(--ink) !important;
  background: rgba(255, 255, 255, .92) !important;
  border-color: #e1e8f2 !important;
  box-shadow: 0 16px 38px rgba(39, 60, 102, .07) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

html[data-page="home"] main .text-slate-900,
html[data-page="store"] main .text-slate-900 {
  color: #17233c !important;
}

html[data-page="home"] main .text-slate-800,
html[data-page="store"] main .text-slate-800 {
  color: #273750 !important;
}

html[data-page="home"] main .text-slate-700,
html[data-page="store"] main .text-slate-700 {
  color: #4e607b !important;
}

html[data-page="home"] main .text-slate-600,
html[data-page="store"] main .text-slate-600,
html[data-page="home"] main .text-slate-500,
html[data-page="store"] main .text-slate-500,
html[data-page="home"] main .text-slate-400,
html[data-page="store"] main .text-slate-400 {
  color: #71809b !important;
}

html[data-page="home"] main .text-white,
html[data-page="store"] main .text-white {
  color: #17233c !important;
}

html[data-page="home"] main .border-slate-100,
html[data-page="store"] main .border-slate-100,
html[data-page="home"] main .border-slate-200,
html[data-page="store"] main .border-slate-200,
html[data-page="home"] main .border-slate-800,
html[data-page="store"] main .border-slate-800 {
  border-color: #e2e9f2 !important;
}

html[data-page="home"] .product-card,
html[data-page="store"] .product-card,
html[data-page="home"] .hc-card,
html[data-page="store"] .hc-card {
  color: var(--ink) !important;
  border-color: #e1e8f2 !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 14px 34px rgba(39, 60, 102, .08) !important;
}

html[data-page="home"] .product-card .text-white,
html[data-page="store"] .product-card .text-white {
  color: #17233c !important;
}

html[data-page="home"] .product-card .text-slate-400,
html[data-page="store"] .product-card .text-slate-400 {
  color: #71809b !important;
}

html[data-page="home"] .product-card .border-slate-800,
html[data-page="store"] .product-card .border-slate-800 {
  border-color: #e7edf5 !important;
}

html[data-page="home"] .product-card:hover,
html[data-page="store"] .product-card:hover {
  border-color: #b9c6f6 !important;
  box-shadow: 0 22px 48px rgba(77, 94, 175, .15) !important;
}

html[data-page="store"] .input-dark,
html[data-page="home"] .input-dark {
  color: #34445f !important;
  border-color: #dce5ef !important;
  background: #f8fafd !important;
}

html[data-page="store"] .input-dark::placeholder,
html[data-page="home"] .input-dark::placeholder {
  color: #8996aa !important;
}

html[data-page="store"] .input-dark:focus,
html[data-page="home"] .input-dark:focus {
  border-color: var(--violet) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(100, 117, 223, .14) !important;
}

/* Le hero reste visuel et contrasté, tandis que les zones autour s'éclaircissent. */
html[data-page="home"] .hero-trust-bar {
  border-color: #dce6f0;
  background: rgba(255, 255, 255, .9) !important;
  box-shadow: 0 18px 42px rgba(39, 60, 102, .1);
  backdrop-filter: blur(16px);
}

html[data-page="home"] .hero-trust-item {
  color: #53647e;
}

html[data-page="home"] .hero-trust-item svg {
  color: #2ea99f;
}

html[data-page="home"] .home-section-kicker,
html[data-page="home"] .home-categories-link {
  color: var(--violet-deep) !important;
}

/* Boutique : les outils et boutons gardent leurs accents sans aplats noirs. */
html[data-page="store"] .neon-btn {
  color: #fff !important;
  background: linear-gradient(135deg, #4ebbc1, #6475df) !important;
  box-shadow: 0 12px 24px rgba(89, 113, 213, .2) !important;
}

html[data-page="store"] .chip {
  color: #3f8d91 !important;
  border-color: #bfe4e1 !important;
  background: #edfafa !important;
}

html[data-page="store"] .tech-grid-bg {
  background-image:
    linear-gradient(rgba(100, 117, 223, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(100, 117, 223, .045) 1px, transparent 1px) !important;
}

/* Récapitulatif du panier : clair mais suffisamment contrasté pour rester lisible. */
.cart-total-card {
  color: #3b4b64 !important;
  border: 1px solid #dce6f0 !important;
  background: linear-gradient(145deg, #ffffff 0%, #eef4ff 100%) !important;
  box-shadow: 0 22px 42px rgba(39, 60, 102, .1) !important;
}

.cart-total-card h2,
.cart-summary-row strong {
  color: #17233c !important;
}

.cart-summary-topline .cart-card-kicker,
.cart-summary-total strong,
.cart-summary-row.cart-discount-row,
.cart-summary-row.cart-discount-row strong {
  color: var(--coral) !important;
}

.cart-summary-step,
.cart-summary-row,
.cart-summary-row.cart-vat-row,
.cart-summary-row small,
.cart-summary-total,
.cart-payment-note span {
  color: #71809b !important;
}

.cart-summary-row,
.cart-coupon-inline,
.cart-payment-note {
  border-color: #dfe7f0 !important;
}

.cart-coupon-form input {
  color: #34445f !important;
  border-color: #d6e0eb !important;
  background: rgba(255, 255, 255, .8) !important;
}

.cart-coupon-form button {
  color: #4658c5 !important;
  background: #edf0ff !important;
}

.cart-coupon-form button:hover {
  color: #fff !important;
  background: var(--violet) !important;
}

.cart-payment-note strong {
  color: #3b4b64 !important;
}

.cart-summary-footer {
  color: var(--coral) !important;
}

/* Pied de page plus léger pour que la page reste lumineuse jusqu'en bas. */
.site-footer {
  color: #61718b !important;
  background:
    radial-gradient(520px 260px at 90% 0%, rgba(100, 117, 223, .13), transparent 70%),
    radial-gradient(520px 300px at 0% 100%, rgba(67, 185, 149, .1), transparent 70%),
    #eaf1f8 !important;
}

.footer-heading {
  color: #243651 !important;
}

.footer-links a,
.footer-trust li,
.footer-bottom,
.footer-business-details {
  color: #65758e !important;
}

.footer-links a:hover {
  color: var(--violet-deep) !important;
}

.footer-business-details strong {
  color: #30415e !important;
}

.footer-bottom,
.footer-business-details {
  border-color: #d5e0ec !important;
}

.footer-service-note {
  color: #4f7e79 !important;
  border-color: #bfe1da !important;
  background: #effaf7 !important;
}

.site-footer .footer-main > div:first-child > p,
.site-footer .footer-bottom > div {
  color: #65758e !important;
}

.hero-editorial-overlay {
  background:
    linear-gradient(90deg, rgba(15, 33, 58, .76) 0%, rgba(22, 45, 74, .54) 43%, rgba(22, 45, 74, .16) 100%),
    linear-gradient(180deg, rgba(20, 34, 64, .08), rgba(15, 33, 58, .48));
}

@media (max-width: 640px) {
  .hero-editorial {
    min-height: 460px;
  }

  .hero-editorial h1 {
    font-size: clamp(2.45rem, 13vw, 4.2rem);
  }
}

/* Titres produits : plus présents et immédiatement repérables. */
.product-card h3,
.hc-card h3 {
  color: #3d51d2 !important;
  font-family: var(--font-site) !important;
  font-size: clamp(1.08rem, 1.8vw, 1.32rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.035em !important;
  line-height: 1.16 !important;
  text-wrap: balance;
}

.product-card h3:hover,
.hc-card h3:hover {
  color: #0b9ca8 !important;
}

#prod-page-title {
  color: #354bc4 !important;
  font-family: var(--font-site) !important;
  font-size: clamp(2.1rem, 4.5vw, 3.45rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.055em !important;
  line-height: 1.04 !important;
  text-wrap: balance;
}

#prod-page-title-bread {
  color: #3d51d2 !important;
}

.cart-item-details h2 {
  color: #3d51d2 !important;
  font-family: var(--font-site) !important;
  font-size: 1.08rem;
  font-weight: 800;
}

/* Signature de marque : un titre plus distinctif et un slogan plus mémorable. */
.brand-lockup > div:last-child > div {
  background: linear-gradient(100deg, #3045b7 0%, #0b9ca8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  font-family: var(--font-site) !important;
  font-size: 1.22rem !important;
  font-weight: 900 !important;
  letter-spacing: -.055em !important;
}

.brand-lockup > div:last-child > div span {
  color: transparent !important;
}

.brand-lockup > div:last-child > span {
  display: block;
  max-width: 14rem;
  margin-top: .25rem;
  color: #6374b9 !important;
  font-family: var(--font-site) !important;
  font-size: .54rem !important;
  font-weight: 800 !important;
  letter-spacing: .105em !important;
  line-height: 1.35;
  text-transform: uppercase;
}

/* Slider desktop : composition plus équilibrée et contenu mieux cadré. */
@media (min-width: 1024px) {
  .hero-editorial {
    height: clamp(500px, 64vh, 640px);
    min-height: 500px;
    border-radius: 0 0 1.5rem 1.5rem;
    background: #dbe8f1;
  }

  .hero-editorial-image {
    object-position: 70% center;
    transform: scale(1.01);
  }

  .hero-editorial-overlay {
    background:
      linear-gradient(90deg, rgba(15, 33, 58, .88) 0%, rgba(18, 43, 73, .68) 34%, rgba(18, 43, 73, .28) 62%, rgba(18, 43, 73, .04) 100%),
      linear-gradient(180deg, rgba(15, 33, 58, .08), rgba(15, 33, 58, .42));
  }

  .hero-editorial-inner {
    max-width: 88rem;
    padding: 4rem 5rem 5rem;
  }

  .hero-editorial-content {
    width: min(55%, 620px);
  }

  .hero-editorial h1 {
    max-width: 16ch;
    font-size: clamp(3.35rem, 5.2vw, 5.7rem);
    line-height: .98;
  }

  .hero-editorial-content p {
    max-width: 34rem;
  }

  .hero-editorial-actions {
    margin-top: 1.75rem;
  }

  .hero-editorial-control {
    width: 2.75rem;
    height: 2.75rem;
    border-color: rgba(255, 255, 255, .4);
    background: rgba(15, 33, 58, .34);
    font-size: 1.75rem;
  }

  .hero-editorial-control-left {
    left: 1.75rem;
  }

  .hero-editorial-control-right {
    right: 1.75rem;
  }

  .hero-editorial-dots {
    bottom: 1.6rem;
  }
}

/* Pied de page : textes plus affirmés et plus lisibles. */
.site-footer {
  font-weight: 700;
}

.site-footer .footer-heading {
  font-weight: 900 !important;
}

.site-footer .footer-links a,
.site-footer .footer-trust li,
.site-footer .footer-main p,
.site-footer .footer-service-note,
.site-footer .footer-business-details,
.site-footer .footer-bottom {
  font-weight: 700 !important;
}

.site-footer .footer-brand {
  font-weight: 900 !important;
}

/* Navigation autonome : les rubriques restent visibles même sans utilitaires CDN. */
@media (min-width: 1024px) {
  #main-nav-bar,
  .site-header nav[aria-label="Navigation principale"] {
    display: flex !important;
    align-items: center;
    gap: .25rem;
  }

  #mobile-menu {
    display: none !important;
  }
}

@media (max-width: 1023px) {
  #main-nav-bar,
  .site-header nav[aria-label="Navigation principale"] {
    display: none !important;
  }

  #mobile-menu:not(.hidden) {
    display: block !important;
  }
}

/* Fiche produit : galerie éditoriale, informations hiérarchisées et achat mis en avant. */
.product-detail-shell {
  overflow: hidden;
  border: 1px solid #dfe7f1 !important;
  border-radius: 2rem !important;
  background:
    radial-gradient(520px 260px at 0% 0%, rgba(100, 117, 223, .08), transparent 72%),
    linear-gradient(145deg, #ffffff 0%, #f7faff 100%) !important;
  box-shadow: 0 22px 55px rgba(39, 60, 102, .1) !important;
}

.product-detail-shell > .grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: stretch;
}

.product-gallery-panel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.product-hero-media {
  min-height: 22rem;
  border: 1px solid #dfe7f1 !important;
  border-radius: 1.5rem !important;
  background:
    radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .98), rgba(238, 245, 252, .92)),
    #eef4fa !important;
  box-shadow: inset 0 0 0 8px rgba(255, 255, 255, .42), 0 18px 35px rgba(39, 60, 102, .08);
}

.product-hero-media img {
  display: block;
  transition: transform .45s ease, filter .45s ease;
}

.product-hero-media:hover img {
  filter: saturate(1.05);
  transform: scale(1.035);
}

.product-thumbnails {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem;
  padding: .2rem;
}

#prod-page-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-thumbnails button {
  overflow: hidden;
  border-radius: .9rem !important;
  background: #fff;
  box-shadow: 0 4px 12px rgba(39, 60, 102, .06);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.product-thumbnails button:hover {
  border-color: #9eabed !important;
  box-shadow: 0 8px 18px rgba(77, 94, 175, .14);
  transform: translateY(-2px);
}

.product-detail-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: .5rem 0;
}

.product-category-label {
  display: inline-flex;
  align-items: center;
  padding: .35rem .65rem;
  border: 1px solid #c9d1ff;
  border-radius: 999px;
  color: #4658c5 !important;
  background: #eef0ff;
  font-size: .68rem !important;
  letter-spacing: .12em;
}

.product-detail-title,
#prod-page-title {
  max-width: 15ch;
  margin-top: .7rem !important;
  color: #3045b7 !important;
  font-family: var(--font-site) !important;
  font-size: clamp(2rem, 4vw, 3.35rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.055em !important;
  line-height: 1.04 !important;
  text-wrap: balance;
}

.product-rating-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  width: fit-content;
  padding: .45rem .7rem;
  border: 1px solid #f3dfaa;
  border-radius: .8rem;
  background: #fffaf0;
}

.product-rating-row a {
  color: #4658c5 !important;
}

.product-price-panel {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .75rem;
  min-width: 0;
  padding: 1.05rem 1.15rem !important;
  border: 1px solid #d8e2f2 !important;
  border-radius: 1.15rem !important;
  background: linear-gradient(135deg, #edf3ff 0%, #f0fbfa 100%) !important;
}

.product-price-panel > div {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .75rem;
}

.product-price-panel .text-3xl,
#prod-page-price {
  color: #1f36a7 !important;
  font-size: clamp(1.8rem, 3vw, 2.5rem) !important;
  letter-spacing: -.045em;
}

.product-description {
  max-width: 38rem;
  color: #5f7089 !important;
  font-size: .92rem !important;
  line-height: 1.75 !important;
}

.product-availability {
  width: fit-content;
  padding: .4rem .65rem;
  border-radius: .75rem;
  background: #eefaf5;
}

.product-availability span:last-child {
  color: #13846a !important;
}

.product-purchase-panel {
  padding: 1rem !important;
  border: 1px solid #e0e7f0 !important;
  border-radius: 1.2rem !important;
  background: rgba(255, 255, 255, .78);
}

.product-purchase-panel > div:first-child {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .75rem;
}

.product-purchase-panel > div:first-child > div:first-child {
  flex: 0 0 auto;
  border-color: #d7e0eb !important;
  border-radius: .85rem !important;
  background: #f7faff !important;
}

.product-purchase-panel input[type="number"] {
  color: #263a63 !important;
  font-weight: 800;
}

.product-purchase-panel button[onclick^="addToCartFromPhp"],
.product-purchase-panel button[onclick="addProductPageToCart()"] {
  min-height: 3.25rem;
  border: 0 !important;
  border-radius: .9rem !important;
  background: linear-gradient(135deg, #4f61d8, #1ca7ad) !important;
  box-shadow: 0 13px 25px rgba(74, 96, 203, .2);
}

.product-purchase-panel button[onclick^="addToCartFromPhp"]:hover,
.product-purchase-panel button[onclick="addProductPageToCart()"]:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}

.product-purchase-panel button[onclick="buyNowFromProductPage()"] {
  min-height: 2.9rem;
  border-radius: .85rem !important;
  color: #3045b7 !important;
  background: #edf0ff !important;
}

.product-benefits {
  margin-top: .35rem;
}

.product-benefit-card {
  min-height: 4.5rem;
  display: grid;
  align-content: center;
  gap: .25rem;
  border-color: #e1e8f2 !important;
  border-radius: .85rem !important;
  background: #f8faff !important;
  font-weight: 700;
}

.product-benefit-card svg {
  margin-bottom: .1rem !important;
}

.product-reviews-section {
  border: 1px solid #dfe7f1 !important;
  border-radius: 1.75rem !important;
  background: rgba(255, 255, 255, .92) !important;
  box-shadow: 0 16px 38px rgba(39, 60, 102, .07);
}

@media (max-width: 767px) {
  .product-detail-shell > .grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .product-detail-shell {
    border-radius: 1.35rem !important;
    padding: 1rem !important;
  }

  .product-hero-media {
    min-height: 17rem;
    border-radius: 1.15rem !important;
  }

  .product-detail-title,
  #prod-page-title {
    max-width: none;
    font-size: clamp(1.85rem, 9vw, 2.55rem) !important;
  }

  .product-purchase-panel > div:first-child {
    align-items: stretch;
  }

  .product-purchase-panel button[onclick^="addToCartFromPhp"],
  .product-purchase-panel button[onclick="addProductPageToCart()"] {
    flex: 1 1 12rem;
  }
}

/* Navigation principale : plus sombre, plus lisible et légèrement agrandie. */
.main-nav-link {
  color: #26344d !important;
  font-size: .82rem !important;
  font-weight: 800 !important;
  letter-spacing: -.01em;
}

.main-nav-link:hover,
.main-nav-link.active {
  color: #3f51bd !important;
}

@media (min-width: 1024px) {
  #main-nav-bar,
  .site-header nav[aria-label="Navigation principale"] {
    gap: .45rem;
  }
}

@media (max-width: 1023px) {
  #mobile-menu button {
    font-size: .78rem !important;
    font-weight: 800 !important;
  }
}

/* Pied de page sombre : contraste net avec les pages claires. */
.site-footer {
  color: #d9e4f0 !important;
  border-top: 4px solid #3bb8c3 !important;
  background:
    radial-gradient(560px 280px at 90% 0%, rgba(100, 117, 223, .2), transparent 70%),
    radial-gradient(520px 300px at 0% 100%, rgba(59, 184, 195, .12), transparent 70%),
    #111a2a !important;
}

.site-footer .footer-heading {
  color: #f5f8ff !important;
}

.site-footer .footer-links a,
.site-footer .footer-trust li,
.site-footer .footer-bottom,
.site-footer .footer-business-details,
.site-footer .footer-main > div:first-child > p,
.site-footer .footer-bottom > div {
  color: #b9c8da !important;
}

.site-footer .footer-links a:hover {
  color: #8ee8df !important;
}

.site-footer .footer-business-details {
  border-color: rgba(191, 205, 220, .2) !important;
}

.site-footer .footer-business-details strong {
  color: #f1f6fb !important;
}

.site-footer .footer-service-note {
  color: #b7e1dc !important;
  border-color: rgba(114, 184, 159, .36) !important;
  background: rgba(41, 111, 112, .28) !important;
}

@media (min-width: 900px) {
  .cart-item-unit,
  .cart-item-total {
    justify-self: center;
    text-align: center;
  }

  .cart-item-unit > span,
  .cart-item-total > span,
  .cart-item-unit strong,
  .cart-item-total strong {
    text-align: center !important;
  }
}

.site-footer .footer-bottom {
  border-color: rgba(191, 205, 220, .2) !important;
}

/* Boutique : bordure visible et pagination compacte pour les grands catalogues. */
html[data-page="store"] .product-card {
  border: 1px solid #cbd7e6 !important;
  border-radius: 1.15rem !important;
}

html[data-page="store"] .product-card:hover {
  border-color: #8495e8 !important;
}

.catalog-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: 2rem;
}

.catalog-page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.35rem;
  height: 2.35rem;
  padding: 0 .7rem;
  border: 1px solid #d2dceb;
  border-radius: .7rem;
  color: #52627d;
  background: #fff;
  font-size: .75rem;
  font-weight: 800;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

.catalog-page-button:hover:not(:disabled) {
  border-color: #8d9bea;
  color: #3f51bd;
  background: #f0f3ff;
  transform: translateY(-1px);
}

.catalog-page-button.is-active {
  border-color: #596bd7;
  color: #fff;
  background: linear-gradient(135deg, #596bd7, #1ca7ad);
  box-shadow: 0 8px 18px rgba(81, 102, 207, .2);
}

.catalog-page-button:disabled {
  cursor: not-allowed;
  opacity: .4;
}

.catalog-page-arrow {
  font-size: 1.1rem;
  line-height: 1;
}

.catalog-page-ellipsis {
  color: #8a98ac;
  font-size: .8rem;
  font-weight: 800;
}

/* -------------------------------------------------------------------------- */
/* Boutique : fond clair et couleurs fidèles sur les visuels produits         */
/* -------------------------------------------------------------------------- */

html[data-page="store"] body {
  color: #24324a !important;
  background:
    radial-gradient(900px 520px at 92% -8%, rgba(91, 183, 177, .09), transparent 65%),
    radial-gradient(850px 540px at -8% 12%, rgba(217, 109, 85, .06), transparent 64%),
    #e6ebf0 !important;
}

html[data-page="store"] .site-header {
  background: rgba(255, 253, 250, .96) !important;
  border-bottom-color: #e7e1d8 !important;
  box-shadow: 0 4px 16px rgba(41, 61, 91, .06) !important;
}

html[data-page="store"] .brand-lockup > div:last-child > div {
  color: #20304a !important;
}

html[data-page="store"] .brand-lockup > div:last-child > span {
  color: #637080 !important;
}

html[data-page="store"] .main-nav-link,
html[data-page="store"] .header-icon-button,
html[data-page="store"] .cart-action {
  color: #637080 !important;
}

html[data-page="store"] .main-nav-link:hover,
html[data-page="store"] .main-nav-link.active,
html[data-page="store"] .header-icon-button:hover,
html[data-page="store"] .cart-action:hover {
  color: #1d5558 !important;
  background: #edf4f1 !important;
  border-color: #c9dfd9 !important;
}

html[data-page="store"] main .glass,
html[data-page="store"] main .bg-white {
  color: #24324a !important;
  background: #ffffff !important;
  border-color: #dfe7ef !important;
  box-shadow: 0 12px 30px rgba(41, 61, 91, .07) !important;
}

html[data-page="store"] .product-card {
  border-color: #dfe7ef !important;
  background: #ffffff !important;
  box-shadow: 0 12px 30px rgba(41, 61, 91, .08) !important;
}

html[data-page="store"] .product-card > .relative.overflow-hidden {
  min-height: 13rem;
  background: #e6ebf0 !important;
}

html[data-page="store"] .product-card > .relative.overflow-hidden > img {
  width: 100%;
  height: 13rem;
  padding: 0;
  object-fit: cover;
  object-position: center;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

html[data-page="store"] .product-card .text-white {
  color: #20304a !important;
}

html[data-page="store"] .product-card .text-slate-400 {
  color: #6f7f91 !important;
}

html[data-page="store"] .product-card .border-slate-800 {
  border-color: #dfe7ef !important;
}

html[data-page="store"] .input-dark {
  color: #24324a !important;
  border-color: #d7e2ec !important;
  background: #ffffff !important;
}

html[data-page="store"] .input-dark::placeholder {
  color: #8996a6 !important;
}

html[data-page="store"] .input-dark:focus {
  border-color: #5bb7b1 !important;
  background: #ffffff !important;
}

html[data-page="store"] .catalog-page-button {
  color: #52657c;
  border-color: #d7e2ec;
  background: #ffffff;
}

html[data-page="store"] .catalog-page-button:hover:not(:disabled) {
  color: #296f70;
  border-color: #a8d6d1;
  background: #edf8f6;
}

html[data-page="store"] .catalog-page-ellipsis {
  color: #8996a6;
}

/* Facture : aperçu autonome et impression limitée à une seule feuille A4. */
.invoice-modal .invoice-modal-shell {
  width: min(920px, calc(100vw - 2rem)) !important;
  max-width: 920px !important;
  background: #f4f6fb !important;
}

.invoice-modal .invoice-preview {
  background:
    radial-gradient(circle at 12% 0%, rgba(91, 183, 177, .12), transparent 32%),
    #f4f6fb !important;
}

.invoice-modal .invoice-sheet {
  font-family: var(--font-site), Arial, sans-serif !important;
  color: #172033 !important;
}

.invoice-modal .invoice-sheet,
.invoice-modal .invoice-sheet * {
  box-sizing: border-box;
}

.invoice-modal .invoice-heading h1 {
  font-family: var(--font-site), Arial, sans-serif !important;
}

/* En-tête facture : les deux colonnes restent dans la largeur de la feuille
   et le titre/date ne peuvent plus repousser le bloc de marque. */
.invoice-modal .invoice-sheet-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, .85fr);
  align-items: start;
  gap: 1.5rem;
  width: 100%;
}

.invoice-modal .invoice-brand,
.invoice-modal .invoice-heading {
  min-width: 0;
  max-width: 100%;
}

.invoice-modal .invoice-brand > div:last-child,
.invoice-modal .invoice-heading > * {
  min-width: 0;
  max-width: 100%;
}

.invoice-modal .invoice-heading {
  overflow: hidden;
}

.invoice-modal .invoice-heading h1,
.invoice-modal .invoice-heading strong,
.invoice-modal .invoice-heading > span {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.invoice-modal .invoice-company-line {
  align-items: flex-start;
  min-width: 0;
}

.invoice-modal .invoice-company-line span {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.invoice-modal .invoice-status {
  min-width: 0;
}

.invoice-modal .invoice-status > strong,
.invoice-modal .invoice-status > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 680px) {
  .invoice-modal .invoice-sheet-header {
    grid-template-columns: minmax(0, 1fr);
    gap: .9rem;
  }

  .invoice-modal .invoice-heading {
    align-items: flex-start;
    text-align: left;
  }

  .invoice-modal .invoice-status > span:last-child {
    margin-left: 0;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }

  html,
  body {
    width: 210mm !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  /* Le panier, son footer et les autres modales ne doivent plus participer
     au calcul de pagination de l’impression. */
  body > * {
    display: none !important;
  }

  body > #app-modals {
    display: block !important;
    width: 210mm !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #app-modals > * {
    display: none !important;
  }

  #app-modals > #invoice-modal {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: 210mm !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    visibility: visible !important;
  }

  #invoice-modal,
  #invoice-modal * {
    visibility: visible !important;
  }

  #invoice-modal .invoice-modal-shell {
    display: block !important;
    width: 210mm !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  #invoice-modal .invoice-preview,
  #invoice-printable-content {
    position: static !important;
    width: 210mm !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  #invoice-printable-content .invoice-sheet {
    width: 210mm !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 12mm 14mm 8mm !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  #invoice-printable-content .invoice-sheet-footer {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .no-print,
  #invoice-modal .invoice-toolbar {
    display: none !important;
  }
}

/* Placeholder global : un gris neutre cohérent sur tous les champs du site. */
input::placeholder,
textarea::placeholder,
.input-dark::placeholder {
  color: #9ca3af !important;
  opacity: 1 !important;
}

/* Priorité maximale pour les placeholders : certaines anciennes règles
   ciblent les champs avec plusieurs :not() ou les variantes .input-dark. */
html body input:not([type="checkbox"]):not([type="radio"])::placeholder,
html body textarea::placeholder,
html body input.input-dark::placeholder,
html body textarea.input-dark::placeholder,
html[data-page] body input.input-dark::placeholder,
html[data-page] body textarea.input-dark::placeholder {
  color: #9ca3af !important;
  -webkit-text-fill-color: #9ca3af !important;
  opacity: 1 !important;
}
