:root {
      /* Orange cuivré — lisible sur bois et métal */
      --orange: #c96f1e;
      --orange-dark: #a85a18;
      --orange-light: #e08a3a;
      --orange-glow: rgba(201, 106, 42, 0.32);
      --accent-soft: rgba(201, 106, 42, 0.14);
      --accent-border: rgba(201, 106, 42, 0.42);
      /* Bois — chêne / noyer chaud */
      --wood: #3d2f22;
      --wood-accent: #5c4838;
      --wood-mid: #7a6149;
      --wood-light: #b8956e;
      --wood-plank: #d4c4a8;
      --wood-grain: #c9b898;
      /* Métal — acier brossé / gunmetal */
      --metal: #1a1d21;
      --metal-mid: #2d3238;
      --metal-light: #4a5058;
      --metal-shine: #6b737c;
      --metal-edge: rgba(107, 115, 124, 0.45);
      --charcoal: #25282c;
      --leather: #3d3228;
      /* Gris pierre — textes & fonds */
      --gray: #5a5650;
      --gray-light: #8a847c;
      --gray-muted: #6e6962;
      --wall: #ddd4c4;
      --warm: #e8dfd0;
      --warm-deep: #cfc0a8;
      --cream: #ebe3d6;
      --cream-dark: #d8cfc0;
      --surface: rgba(235, 227, 214, 0.94);
      --black: #141618;
      --text: #2a2622;
      --muted: var(--gray-muted);
      --radius: 20px;
      --radius-pill: 999px;
      --ease: cubic-bezier(.34, 1.2, .64, 1);
      --shadow-soft: 0 10px 36px rgba(42, 38, 32, 0.1);
      --shadow-lift: 0 22px 52px rgba(42, 38, 32, 0.14);
      --shadow-metal: 0 10px 32px rgba(0, 0, 0, 0.32);
      --shadow-copper: 0 10px 32px var(--orange-glow);
      --line-accent: linear-gradient(90deg, var(--orange-dark), var(--orange-light), var(--wood-light), var(--metal-shine));
      --texture-metal: url("data:image/svg+xml,%3Csvg width='6' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 6l6-6M-1 1l2-2M5 7l2-2' stroke='%23fff' stroke-opacity='.07'/%3E%3C/svg%3E");
      --texture-wood: url("data:image/svg+xml,%3Csvg width='80' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 4 Q20 1 40 4 T80 4' fill='none' stroke='%237a6149' stroke-opacity='.12'/%3E%3C/svg%3E");
      --font-display: 'Bebas Neue', sans-serif;
      --header-row-h: 56px;
      --logo-stv-h: clamp(64px, 9vw, 140px);
      --logo-stv-scale: 1.22;
      --logo-stv-scale-scrolled: 1.12;
      --logo-stv-shift-y: 0;
      --logo-stv-max-w: min(1100px, 92vw);
      --logo-stv-offset-y: 10px;
      --header-spill: calc(max(0px, (var(--logo-stv-h) - var(--header-row-h)) * 0.4));
      --hdr-neutral-hi: #5a6169;
      --hdr-neutral: var(--metal-mid);
      --hdr-neutral-lo: #23262a;
      --hdr-accent-hi: var(--orange-light);
      --hdr-accent: var(--orange);
      --hdr-accent-lo: var(--orange-dark);
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'Outfit', sans-serif;
      background:
        linear-gradient(180deg, rgba(45, 50, 56, 0.07) 0%, transparent 22%),
        radial-gradient(ellipse 85% 45% at 85% 0%, rgba(201, 106, 42, 0.06), transparent 50%),
        radial-gradient(ellipse 90% 50% at 15% 100%, rgba(122, 97, 73, 0.14), transparent 55%),
        linear-gradient(165deg, var(--wood-plank) 0%, var(--cream) 42%, var(--wall) 100%);
      color: var(--text);
      line-height: 1.35;
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
    }

    body::before {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0;
      opacity: 0.05;
      background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 60h120M60 0v120' stroke='%237a6149' stroke-width='0.35' opacity='0.35'/%3E%3C/svg%3E");
    }

    body::after {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0;
      opacity: 0.35;
      background: var(--texture-wood);
      background-size: 80px 8px;
    }

    body > * { position: relative; z-index: 1; }

    .theme-divider {
      height: 2px; max-width: min(420px, 72vw); margin: 0 auto;
      border-radius: 2px;
      background: var(--line-accent);
      opacity: 0.55;
      box-shadow: 0 0 20px var(--accent-soft);
    }

    ::selection { background: var(--accent-soft); }

    .ico,
    .nav-pill-ico {
      width: 20px; height: 20px;
      flex-shrink: 0; display: block;
      stroke: currentColor; fill: none;
      stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
    }
    .ico-lg { width: 26px; height: 26px; }
    .header-actions .ico-wrap {
      display: flex; align-items: center; justify-content: center;
      color: rgba(255,255,255,.92);
    }
    .menu-toggle {
      color: #fff;
    }
    .menu-toggle .ico-close { display: none; }
    .menu-toggle.is-open .ico-menu { display: none; }
    .menu-toggle.is-open .ico-close { display: block; }
    .cart-box .ico { width: 18px; height: 18px; stroke: #fff; }
    .trust-icon { color: var(--orange-light); }
    .trust-circles .trust-icon { color: #fff; }
    .trust-icon .ico { width: 26px; height: 26px; }
    .cat-card .icon { color: rgba(255,255,255,.92); }
    .cat-card .icon svg,
    .cat-card .ico,
    .cat-card .nav-pill-ico { width: 22px; height: 22px; }
    .alert-tag {
      display: inline-block;
      font-size: 9px; font-weight: 800; letter-spacing: .1em;
      text-transform: uppercase;
      background: rgba(255,255,255,.18);
      padding: 2px 8px; border-radius: 4px;
      margin-right: 8px; vertical-align: middle;
    }
    .rating-stars {
      letter-spacing: 1px;
      color: var(--orange-dark);
    }
    .bestsellers.dark-zone .rating-stars { color: var(--orange-light); }

    a:focus-visible, button:focus-visible, input:focus-visible {
      outline: 2px solid var(--orange-light);
      outline-offset: 3px;
    }

    .age-strip {
      background: linear-gradient(90deg, var(--metal), var(--charcoal), var(--metal));
      color: rgba(255,255,255,.9);
      text-align: center; padding: 5px 8px;
      font-size: 10px; font-weight: 600;
      letter-spacing: .04em;
      border-bottom: 1px solid rgba(201, 106, 42, 0.35);
    }

    .utility-bar {
      position: relative;
      background: linear-gradient(90deg, var(--metal), var(--metal-mid), var(--metal));
      padding: 5px 16px;
      display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 16px;
      font-size: 10px; font-weight: 700; letter-spacing: .08em;
    }
    .utility-bar a {
      color: rgba(255,255,255,.75); text-decoration: none; text-transform: uppercase;
      transition: color .2s;
    }
    .utility-bar a:hover { color: var(--orange-light); }
    .utility-bar a.highlight {
      background: linear-gradient(145deg, var(--orange-light), var(--orange-dark));
      color: #fff; padding: 4px 12px; border-radius: var(--radius-pill);
      box-shadow: 0 4px 14px rgba(201, 106, 42, 0.28);
      border: 1px solid rgba(224, 138, 58, 0.35);
    }
    .utility-bar::after {
      content: '';
      position: absolute; inset: 0; pointer-events: none;
      background: var(--texture-metal);
      opacity: 0.4;
    }

    .alert-banner {
      background: linear-gradient(90deg, var(--wood), var(--wood-mid), var(--wood));
      color: #fff; text-align: center;
      padding: 6px 12px; font-size: 12px; font-weight: 600;
      overflow: hidden;
      border-bottom: 2px solid var(--orange-dark);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
    }
    .alert-banner .marquee {
      display: inline-flex; gap: 48px;
      animation: marquee 22s linear infinite;
    }
    @keyframes marquee {
      0% { transform: translateX(0); }
      100% { transform: translateX(-50%); }
    }

    .site-header-wrap {
      position: sticky; top: 0; z-index: 200;
      --logo-slot: clamp(52px, 5.5vw, 64px);
      --logo-visual-scale: clamp(1.75, 0.5rem + 2.4vw, 2.15);
      --logo-visual-scale-scrolled: 1.28;
      background:
        linear-gradient(180deg, var(--metal-light) 0%, var(--metal-mid) 12%, var(--metal) 100%);
      border-bottom: 2px solid var(--orange);
      box-shadow:
        0 4px 24px rgba(0,0,0,.35),
        inset 0 1px 0 rgba(107, 115, 124, 0.28);
      transition: box-shadow .3s, border-color .3s;
    }
    .site-header-wrap::after {
      content: '';
      position: absolute; inset: 0; pointer-events: none;
      background: var(--texture-metal);
      opacity: 0.32;
    }
    .site-header-wrap,
    .site-header-wrap > header,
    .header-top,
    .header-brand-zone,
    .header-center {
      overflow: visible;
    }
    .site-header-wrap > header {
      position: relative; z-index: 1;
      width: 100%;
      max-width: none;
      margin: 0;
      padding: 8px 16px 0 12px;
    }
    .site-header-wrap.scrolled {
      box-shadow: 0 8px 28px rgba(0,0,0,.45);
      border-bottom-color: var(--orange-light);
    }
    .site-header-wrap.scrolled > header {
      padding-top: 10px;
      padding-bottom: 0;
    }
    .site-header-wrap.scrolled {
      --logo-slot: 56px;
      --logo-visual-scale: var(--logo-visual-scale-scrolled);
      --logo-stv-h: clamp(56px, 7vw, 84px);
      --logo-stv-scale: var(--logo-stv-scale-scrolled);
      --logo-stv-offset-y: 6px;
      --header-spill: calc(max(0px, (var(--logo-stv-h) - var(--header-row-h)) * 0.32));
    }
    .site-header-wrap.scrolled .logo-mark {
      transform: translateY(6px);
    }
    .site-header-wrap.scrolled .logo-wordmark-block .logo-tagline { display: none; }

    .header-top {
      position: relative;
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      grid-template-areas: "brand wordmark actions";
      align-items: center;
      gap: 6px 10px;
      width: 100%;
      min-height: var(--header-row-h);
      height: auto;
      padding-bottom: 2px;
    }
    .header-brand-zone {
      grid-area: brand;
      display: flex;
      align-items: center;
      align-self: center;
      gap: 14px;
      flex-shrink: 0;
      margin-left: 14px;
      min-width: 0;
    }
    .header-right {
      grid-area: actions;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 12px;
      flex: none;
      min-width: 0;
    }
    .logo-mark {
      flex-shrink: 0;
      text-decoration: none;
      padding: 0;
      margin: 0;
      line-height: 0;
      overflow: visible;
      z-index: 2;
      transform: translateY(8px);
      transition: transform .25s var(--ease);
    }
    .shop-city {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 2px;
      flex-shrink: 0;
      transform: translateY(8px);
      border-left: 2px solid rgba(201, 106, 42, 0.45);
      padding-left: 16px;
      margin-left: 28px;
    }
    .shop-city-label {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--wood-light);
      line-height: 1;
    }
    .shop-city-name {
      font-family: var(--font-display);
      font-size: 28px;
      letter-spacing: .06em;
      line-height: 0.95;
      color: var(--orange-light);
      text-shadow: 0 1px 6px rgba(0,0,0,.35);
      white-space: nowrap;
    }
    .site-header-wrap.scrolled .shop-city {
      transform: translateY(6px);
    }
    .site-header-wrap.scrolled .shop-city-name {
      font-size: 22px;
    }
    .logo-wordmark-block {
      flex-shrink: 1;
      text-decoration: none;
      display: flex;
      justify-content: center;
      line-height: 0;
      max-width: 100%;
      min-width: 0;
    }
    .logo-wordmark-block:hover,
    .logo-wordmark-block:focus,
    .logo-wordmark-block:focus-visible,
    .logo-wordmark-block:active {
      opacity: 1;
    }
    .logo-wordmark-block:hover .logo-stv-wordmark,
    .logo-wordmark-block:focus .logo-stv-wordmark,
    .logo-wordmark-block:focus-visible .logo-stv-wordmark,
    .logo-wordmark-block:active .logo-stv-wordmark {
      filter: drop-shadow(0 2px 10px rgba(0,0,0,.45));
      opacity: 1;
      transform: scale(var(--logo-stv-scale)) translateY(var(--logo-stv-shift-y));
    }
    .logo-mark:focus-visible,
    .logo-wordmark-block:focus-visible {
      outline: none;
    }
    .header-center {
      grid-area: wordmark;
      position: static;
      transform: none;
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 2;
      pointer-events: auto;
      min-width: 0;
      width: 100%;
      max-width: 100%;
      padding: 0 8px;
    }
    .header-center .logo-tagline {
      font-size: 10px;
      letter-spacing: .16em;
    }
    .logo-stv-wordmark {
      display: block;
      height: var(--logo-stv-h);
      width: auto;
      max-width: min(var(--logo-stv-max-w), 94vw);
      object-fit: contain;
      object-position: center;
      filter: drop-shadow(0 2px 10px rgba(0,0,0,.45));
      transform: scale(var(--logo-stv-scale)) translateY(var(--logo-stv-shift-y));
      transform-origin: center center;
    }
    .site-header-wrap.scrolled .logo-stv-wordmark {
      height: var(--logo-stv-h);
    }
    .header-actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 10px;
      flex-shrink: 0;
    }
    .logo-frame {
      position: relative;
      width: var(--logo-slot);
      height: var(--logo-slot);
      flex-shrink: 0;
      padding: 0;
      background: none;
      border: none;
      box-shadow: none;
      overflow: visible;
      transition: width .25s, height .25s;
    }
    .logo-frame::after { display: none; }
    .logo-main {
      width: 100%;
      height: 100%;
      object-fit: contain;
      background: transparent;
      display: block;
      transform: scale(var(--logo-visual-scale));
      transform-origin: center center;
      transition: transform .25s var(--ease);
    }
    .logo-tagline {
      font-size: 9px; font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .14em;
      color: var(--wood-light);
    }
    .menu-toggle {
      display: none;
      width: 44px; height: 44px; flex-shrink: 0;
      border: 1px solid rgba(107, 115, 124, 0.45);
      border-radius: 10px;
      background: linear-gradient(145deg, var(--hdr-neutral-hi), var(--hdr-neutral-lo));
      color: #fff; font-size: 17px; cursor: pointer;
      box-shadow: 0 2px 10px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.1);
      transition: background .2s, border-color .2s;
    }
    .menu-toggle:hover {
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.45);
    }
    .search-lpv {
      display: flex;
      min-height: 48px;
      width: 300px;
      max-width: 340px;
      flex: 0 1 300px;
      margin: 0;
      border-radius: var(--radius-pill);
      overflow: hidden;
      background: rgba(255,255,255,.08);
      border: 1px solid var(--metal-edge);
      box-shadow: inset 0 2px 8px rgba(0,0,0,.25);
      transition: border-color .2s, box-shadow .2s;
    }
    .search-lpv:focus-within {
      border-color: var(--accent-border);
      box-shadow: inset 0 2px 8px rgba(0,0,0,.2), 0 0 0 3px var(--accent-soft);
    }
    .search-lpv input {
      flex: 1; border: none; padding: 10px 16px;
      font-size: 13px; font-weight: 500; letter-spacing: .03em;
      font-family: inherit; background: transparent; color: #fff;
    }
    .search-lpv input::placeholder { color: rgba(255,255,255,.4); }
    .search-lpv button {
      width: 44px; flex-shrink: 0; border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      color: #fff;
      border-left: 1px solid rgba(255,255,255,.08);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
      transition: filter .2s;
    }
    .search-lpv button .ico { stroke: #fff; }
    .search-lpv button:hover { filter: brightness(1.08); }
    .header-actions a.header-link {
      text-decoration: none; color: rgba(255,255,255,.88);
      font-size: 9px; font-weight: 700; text-transform: uppercase;
      letter-spacing: .06em; text-align: center;
      transition: color .2s, background .2s, border-color .2s;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      min-width: 58px;
      min-height: 46px;
      padding: 5px 10px;
      border-radius: 10px;
      background: linear-gradient(145deg, var(--hdr-neutral-hi), var(--hdr-neutral-lo));
      border: 1px solid rgba(107, 115, 124, 0.45);
      box-shadow: 0 2px 10px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.1);
    }
    .header-actions a.header-link:hover {
      color: #fff;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.45);
    }
    .header-actions a.header-link .ico-wrap {
      width: 24px; height: 24px;
      margin: 0;
      border-radius: 7px;
      background: rgba(0,0,0,.15);
      border: none;
      box-shadow: none;
    }
    .header-actions a.header-link:hover .ico-wrap {
      background: rgba(0,0,0,.12);
      transform: none;
    }
    .header-actions a.header-link span:not(.ico-wrap) { display: block; }
    .cart-box {
      background: linear-gradient(145deg, var(--orange-light), var(--orange-dark));
      color: #fff; padding: 10px 20px; border-radius: 12px;
      font-weight: 800; font-size: 11px; text-transform: uppercase;
      display: flex; align-items: center; justify-content: center;
      gap: 8px;
      min-width: 108px;
      min-height: 50px;
      cursor: pointer;
      border: 2px solid rgba(255, 210, 150, 0.55);
      box-shadow:
        0 6px 22px var(--orange-glow),
        0 0 0 1px rgba(255,255,255,.15) inset;
      transition: transform .2s, filter .2s, box-shadow .2s;
      order: 3;
    }
    .cart-box:hover {
      transform: translateY(-2px) scale(1.02);
      filter: brightness(1.08);
      box-shadow: 0 10px 28px var(--orange-glow), 0 0 0 1px rgba(255,255,255,.2) inset;
    }
    .cart-box .ico { width: 18px; height: 18px; }
    .cart-box .count {
      font-size: 12px; line-height: 1;
      background: rgba(0,0,0,.2); border-radius: 6px;
      padding: 2px 6px; min-width: 20px; text-align: center;
    }

    .nav-row {
      position: relative;
      z-index: 5;
      display: flex;
      justify-content: center;
      padding: 0;
      margin-top: 0;
    }
    .nav-stack {
      width: min(100%, 780px);
      max-width: 100%;
    }
    .nav-pills {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      align-items: stretch;
      gap: 4px;
      padding: 4px;
      width: min(100%, 780px);
      max-width: 100%;
      border-radius: 10px;
      background: linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.12));
      border: 1px solid rgba(107, 115, 124, 0.32);
      box-shadow: inset 0 2px 8px rgba(0,0,0,.28), 0 1px 0 rgba(107, 115, 124, 0.12);
    }
    .nav-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      width: 100%;
      min-width: 0;
      padding: 8px 6px;
      font-family: var(--font-display);
      font-size: 13px;
      letter-spacing: .04em;
      min-height: 32px;
      text-decoration: none;
      color: rgba(255,255,255,.88);
      text-align: center;
      border-radius: 8px;
      background: linear-gradient(145deg, var(--hdr-neutral-hi), var(--hdr-neutral-lo));
      border: 1px solid rgba(107, 115, 124, 0.42);
      box-shadow: 0 2px 8px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.1);
      transition: transform .2s var(--ease), background .2s, border-color .2s, color .2s, box-shadow .2s;
      white-space: nowrap;
    }
    .nav-pill .nav-pill-ico {
      width: 15px;
      height: 15px;
      flex-shrink: 0;
      stroke: currentColor;
      stroke-width: 1.85;
      fill: none;
      opacity: .92;
    }
    .nav-pill:hover,
    .nav-pill:focus-visible {
      transform: translateY(-1px);
      color: #fff;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.45);
      box-shadow: 0 4px 14px rgba(201, 106, 42, 0.22), inset 0 1px 0 rgba(255,255,255,.15);
    }
    .nav-pill.is-active {
      color: #fff;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.5);
      box-shadow: 0 3px 12px rgba(201, 106, 42, 0.28), inset 0 1px 0 rgba(255,255,255,.18);
    }
    .nav-pill.is-active:hover,
    .nav-pill.is-active:focus-visible {
      transform: none;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.55);
      box-shadow: 0 3px 12px rgba(201, 106, 42, 0.32), inset 0 1px 0 rgba(255,255,255,.2);
    }
    .site-header-wrap.scrolled .nav-row {
      padding-top: 0;
      padding-bottom: 0;
      margin-top: 0;
    }
    .site-header-wrap.scrolled .nav-pill {
      min-height: 32px;
      padding: 6px 4px;
      font-size: 12px;
    }

    @media (min-width: 1024px) {
      .nav-pills { width: min(100%, 840px); }
      .site-header-wrap {
        --logo-slot: 64px;
        --logo-visual-scale: 2.35;
        --logo-visual-scale-scrolled: 1.32;
        --header-row-h: 60px;
        --logo-stv-h: clamp(88px, 8.5vw, 160px);
        --logo-stv-scale: 1.26;
        --logo-stv-scale-scrolled: 1.14;
        --logo-stv-shift-y: 26px;
        --logo-stv-max-w: 1100px;
      }
      .site-header-wrap.scrolled {
        --logo-stv-shift-y: 14px;
      }
      .logo-stv-wordmark {
        max-width: min(var(--logo-stv-max-w), 92vw);
        transform-origin: center bottom;
      }
      .header-center {
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .header-right {
        align-items: center;
        min-height: 48px;
      }
      .site-header-wrap > header { padding: 10px 18px 0 14px; }
      .header-top { gap: 12px 22px; }
      .nav-stack { width: min(100%, 840px); }
      .header-brand-zone { gap: 18px; margin-left: 20px; }
      .shop-city-name { font-size: clamp(22px, 2.6vw, 32px); }
      .header-right { gap: 12px; }
      .search-lpv { width: 300px; max-width: 340px; flex-basis: 300px; min-height: 44px; }
      .header-actions { gap: 12px; }
      .header-actions a.header-link { min-width: 72px; min-height: 48px; }
      .cart-box { min-width: 118px; min-height: 52px; font-size: 12px; }
    }

    @media (max-width: 899px) {
      .site-header-wrap {
        --logo-slot: 56px;
        --logo-visual-scale: 2.12;
        --logo-visual-scale-scrolled: 1.18;
        --header-row-h: 56px;
        --logo-stv-h: clamp(72px, 13vw, 110px);
        --logo-stv-scale: 1.24;
        --logo-stv-scale-scrolled: 1.13;
        --logo-stv-max-w: 720px;
      }
      .logo-stv-wordmark {
        max-width: min(var(--logo-stv-max-w), 96vw);
      }
      @media (max-width: 768px) {
        .logo-stv-wordmark {
          max-width: none;
        }
      }
      .site-header-wrap > header { padding: 8px 10px 0 8px; }
      .header-top {
        gap: 8px;
      }
      .header-brand-zone { gap: 10px; margin-left: 8px; }
      .shop-city {
        padding-left: 12px;
        margin-left: 18px;
      }
      .shop-city-label { font-size: 10px; }
      .shop-city-name { font-size: 24px; }
      .logo-wordmark-block .logo-tagline { display: none; }
      .search-lpv {
        min-height: 40px;
      }
      .header-actions a.header-link.hide-mobile { display: none; }
      .header-actions a.header-link span:not(.ico-wrap) { display: none; }
      .cart-box { min-width: auto; padding: 9px 14px; }
      .cart-box span:not(.count) { display: none; }
      .nav-row {
        padding: 0;
        margin-top: 0;
      }
      .nav-pills {
        display: flex;
        overflow-x: auto;
        width: 100%;
        grid-template-columns: none;
        gap: 4px;
        padding: 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
      }
      .nav-pills::-webkit-scrollbar { display: none; }
      .nav-pill {
        flex: 0 0 104px;
        width: 104px;
        min-width: 104px;
        padding: 6px 4px;
        font-size: 12px;
        min-height: 30px;
      }
      .nav-pill .nav-pill-ico { width: 14px; height: 14px; }
    }

    /* PC : wordmark aligné verticalement sur la barre de recherche */
    @media (min-width: 1201px) {
      .site-header-wrap {
        --logo-stv-shift-y: 22px;
      }
      .site-header-wrap.scrolled {
        --logo-stv-shift-y: 12px;
      }
      .header-top {
        align-items: center;
      }
      .header-center {
        align-self: center;
      }
      .logo-stv-wordmark {
        transform-origin: center bottom;
      }
      .logo-wordmark-block:hover .logo-stv-wordmark,
      .logo-wordmark-block:focus .logo-stv-wordmark,
      .logo-wordmark-block:focus-visible .logo-stv-wordmark,
      .logo-wordmark-block:active .logo-stv-wordmark {
        transform-origin: center bottom;
      }
    }

    .site-header-wrap + .hero-lpv {
      margin-top: 0;
      padding-top: 0;
    }
    .hero-lpv {
      position: relative;
      z-index: 1;
      padding: 0;
      margin: 0;
      overflow: hidden;
      background: transparent;
    }
    .hero-bg-slider {
      position: relative;
      width: 100%;
      /* Hauteur = ratio bannière (2256×464) sur toute la largeur */
      height: clamp(260px, 20.57vw, 464px);
      z-index: 0;
      overflow: hidden;
      margin: 0;
      background: #0a1628;
    }
    @media (max-width: 768px) {
      .hero-bg-slider {
        height: clamp(200px, 26vw, 280px);
      }
    }
    .hero-slide {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      z-index: 0;
      transition: opacity 1.2s ease-in-out;
      background: transparent;
    }
    .hero-slide:first-child {
      opacity: 1;
      z-index: 1;
    }
    .hero-slide-blur {
      display: none;
    }
    .hero-slide-main {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      display: block;
      max-width: none;
      max-height: none;
      object-fit: cover;
      object-position: center top;
      pointer-events: none;
    }
    .hero-bg-slider.is-js .hero-slide {
      opacity: 0;
      z-index: 0;
      animation: none !important;
    }
    .hero-bg-slider.is-js .hero-slide.is-active {
      opacity: 1;
      z-index: 1;
    }

    .btn-lpv {
      display: inline-block;
      background: linear-gradient(135deg, var(--orange-light), var(--orange-dark));
      color: #fff; border: none;
      padding: 14px 28px;
      font-weight: 800; font-size: 13px;
      letter-spacing: .06em; text-transform: uppercase;
      text-decoration: none; border-radius: var(--radius-pill);
      box-shadow: var(--shadow-copper), inset 0 1px 0 rgba(255,255,255,.2);
      border: 1px solid rgba(255,255,255,.1);
      transition: transform .2s, box-shadow .2s, filter .2s;
    }
    .btn-lpv:hover { transform: translateY(-2px); box-shadow: 0 14px 36px var(--orange-glow); filter: brightness(1.04); }
    .btn-lpv.ghost {
      background: rgba(0, 0, 0, 0.35);
      border: 2px solid rgba(224, 138, 58, 0.55);
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
    }
    .btn-lpv.ghost:hover { border-color: var(--wood-light); background: rgba(0, 0, 0, 0.5); }

    .trust-band {
      position: relative; z-index: 5;
      margin-top: -28px;
      padding: 0 20px 44px;
    }
    .trust-circles {
      max-width: 960px; margin: 0 auto;
      padding: 28px 32px 24px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
      background: linear-gradient(165deg, rgba(255,255,255,.97), var(--surface) 55%, rgba(212, 196, 168, 0.35));
      backdrop-filter: blur(16px);
      border-radius: 28px;
      border: 1px solid var(--metal-edge);
      box-shadow: var(--shadow-lift), inset 0 1px 0 rgba(255,255,255,.65);
      position: relative;
      overflow: hidden;
    }
    .trust-circles::before {
      content: '';
      position: absolute; top: 0; left: 0; right: 0; height: 3px;
      background: var(--orange-light);
    }
    @media (max-width: 800px) {
      .trust-circles { grid-template-columns: repeat(2, 1fr); padding: 20px; }
    }
    @media (max-width: 420px) {
      .trust-circles { grid-template-columns: 1fr; }
    }
    .trust-item { text-align: center; }
    .trust-icon {
      width: 56px; height: 56px; margin: 0 auto 10px;
      border-radius: 50%;
      background: linear-gradient(145deg, var(--metal-shine), var(--metal-mid));
      border: 2px solid var(--wood-light);
      color: #fff;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 6px 16px rgba(107, 68, 35, 0.15);
    }
    .trust-item strong {
      display: block; font-size: 12px; font-weight: 800;
      color: var(--text); line-height: 1.35;
    }
    .trust-item span {
      display: block; font-size: 11px; color: var(--muted); margin-top: 4px;
    }

    .shop-vibe {
      max-width: 1200px;
      margin: 40px auto 28px;
      padding: 28px 28px 40px;
      border-radius: 32px;
      background:
        linear-gradient(180deg, rgba(235, 227, 214, 0.55) 0%, rgba(212, 196, 168, 0.2) 50%, transparent 100%);
      border: 1px solid rgba(122, 97, 73, 0.12);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
    }
    .shop-vibe-intro {
      font-size: 15px; color: var(--muted); max-width: 720px;
      margin: -4px 0 22px; line-height: 1.6;
    }
    .shop-gallery {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      align-items: stretch;
    }
    @media (max-width: 800px) {
      .shop-gallery {
        grid-template-columns: 1fr;
      }
    }
    .shop-gallery figure {
      margin: 0;
      display: flex;
      flex-direction: column;
      height: 100%;
      border-radius: var(--radius);
      overflow: hidden;
      border: 2px solid var(--wood-light);
      box-shadow: var(--shadow-soft), inset 0 0 0 1px rgba(255,255,255,.15);
      background: var(--metal);
      transition: transform .35s var(--ease), box-shadow .35s, border-color .35s;
    }
    .shop-gallery figure:hover {
      transform: translateY(-4px);
      border-color: var(--orange);
      box-shadow: var(--shadow-lift), 0 0 0 2px var(--accent-soft);
    }
    .shop-gallery img {
      width: 100%;
      aspect-ratio: 4 / 3;
      height: auto;
      object-fit: cover;
      object-position: center center;
      display: block;
      flex-shrink: 0;
      transition: transform .5s ease;
    }
    .shop-gallery figure:hover img { transform: scale(1.04); }
    .shop-gallery figcaption {
      padding: 10px 14px; font-size: 12px; font-weight: 600;
      background: linear-gradient(180deg, var(--wood-plank), var(--warm));
      color: var(--leather);
    }
    .brands-strip {
      position: relative;
      background: linear-gradient(90deg, var(--metal), var(--metal-mid), var(--metal));
      padding: 22px 0;
      overflow: hidden;
      border-top: 1px solid var(--metal-shine);
      border-bottom: 2px solid var(--orange);
      box-shadow: inset 0 1px 0 rgba(107, 115, 124, 0.2);
      contain: layout style paint;
    }
    .brands-strip::before {
      content: '';
      position: absolute; inset: 0; pointer-events: none; z-index: 0;
      background: var(--texture-metal);
      opacity: 0.35;
    }
    .brands-marquee {
      display: flex;
      flex-wrap: nowrap;
      width: max-content;
      position: relative;
      z-index: 1;
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
      transform: translate3d(0, 0, 0);
      animation: brands-scroll var(--brands-duration, 60s) linear infinite;
    }
    .brands-track {
      display: flex;
      align-items: center;
      gap: 48px;
      flex-shrink: 0;
      min-width: max-content;
      padding-right: 48px;
    }
    .brands-track span {
      font-family: var(--font-display);
      font-size: 22px;
      letter-spacing: .08em;
      color: rgba(255,255,255,.35);
      white-space: nowrap;
      -webkit-font-smoothing: antialiased;
    }
    .brands-track span em {
      font-style: normal;
      color: rgba(224, 138, 58, 0.75);
    }
    @keyframes brands-scroll {
      from { transform: translate3d(0, 0, 0); }
      to { transform: translate3d(calc(-1 * var(--brands-shift, 50%)), 0, 0); }
    }

    .section-head {
      display: flex; align-items: flex-end; justify-content: space-between;
      flex-wrap: wrap; gap: 16px; margin-bottom: 24px;
    }
    .section-head h2 {
      font-family: var(--font-display);
      font-size: clamp(26px, 4vw, 34px); letter-spacing: .04em;
      color: var(--black); line-height: 1;
      position: relative;
    }
    .section-head h2::after {
      content: '';
      display: block;
      width: 72px; height: 3px; margin-top: 10px;
      border-radius: 2px;
      background: var(--line-accent);
      box-shadow: 0 2px 12px var(--accent-soft);
    }
    .bestsellers.dark-zone .section-head h2::after {
      background: linear-gradient(90deg, var(--orange-light), var(--wood-light));
    }
    .section-head h2 .script {
      font-family: var(--font-display);
      font-size: 0.72em;
      color: var(--orange-light);
      font-weight: 400;
      letter-spacing: .14em;
      text-transform: uppercase;
      display: block;
      margin-bottom: 2px;
    }
    .section-head a {
      color: var(--orange); font-weight: 700; font-size: 14px;
      text-decoration: none; text-transform: uppercase;
      transition: color .2s;
    }
    .section-head a:hover { color: var(--orange-dark); }

    .cat-strip {
      padding: 36px 24px 44px;
      background:
        linear-gradient(180deg, transparent, rgba(45, 50, 56, 0.05) 50%, rgba(122, 97, 73, 0.06) 100%);
    }
    .cat-strip-lead {
      max-width: 1100px;
      margin: 0 auto 20px;
      text-align: center;
      font-size: 13px;
      font-weight: 600;
      color: var(--gray-muted);
      letter-spacing: .04em;
    }
    .cat-strip-inner {
      max-width: 1100px; margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 12px;
    }
    @media (max-width: 900px) { .cat-strip-inner { grid-template-columns: repeat(3, 1fr); } }
    @media (max-width: 480px) { .cat-strip-inner { grid-template-columns: repeat(2, 1fr); } }
    .cat-card {
      display: flex; flex-direction: column; align-items: center; gap: 10px;
      padding: 20px 12px;
      text-decoration: none;
      color: rgba(255,255,255,.9);
      border-radius: 10px;
      background: linear-gradient(145deg, var(--hdr-neutral-hi), var(--hdr-neutral-lo));
      border: 1px solid rgba(107, 115, 124, 0.42);
      box-shadow: 0 2px 10px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.1);
      transition: transform .2s var(--ease), background .2s, border-color .2s, box-shadow .2s, color .2s;
    }
    .cat-card:hover,
    .cat-card:focus-visible {
      transform: translateY(-3px);
      color: #fff;
      background: linear-gradient(145deg, var(--hdr-accent-hi), var(--hdr-accent-lo));
      border-color: rgba(224, 138, 58, 0.45);
      box-shadow: 0 6px 18px rgba(201, 106, 42, 0.22), inset 0 1px 0 rgba(255,255,255,.15);
    }
    .cat-card .icon {
      width: 44px; height: 44px; border-radius: 8px;
      background: rgba(0,0,0,.18);
      display: flex; align-items: center; justify-content: center;
    }
    .cat-card span {
      font-family: var(--font-display);
      font-size: 13px; letter-spacing: .04em;
    }

    .bestsellers {
      max-width: 1200px; margin: 0 auto;
      padding: 24px 24px 52px;
    }
    .bestsellers.dark-zone {
      max-width: none;
      padding: 52px 24px 60px;
      background:
        linear-gradient(180deg, var(--metal-mid) 0%, var(--metal) 42%, var(--wood-accent) 88%, var(--wood) 100%);
      border-radius: 40px 40px 0 0;
      margin-top: 8px;
      box-shadow: 0 -12px 48px rgba(0,0,0,.28);
      border-top: 2px solid var(--metal-shine);
      position: relative;
      overflow: hidden;
    }
    .bestsellers.dark-zone::before {
      content: '';
      position: absolute; inset: 0; pointer-events: none;
      background: var(--texture-metal);
      opacity: 0.2;
    }
    .bestsellers.dark-zone > * { position: relative; z-index: 1; }
    .bestsellers.bestsellers-light {
      padding-top: 16px;
      background: linear-gradient(180deg, rgba(235, 227, 214, 0.35), transparent 65%);
    }
    .bestsellers.dark-zone .section-head h2 { color: #fff; }
    .bestsellers.dark-zone .section-head h2 .script { color: var(--orange-light); }
    .bestsellers.dark-zone .section-head a { color: var(--orange-light); }

    .products-row {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 16px;
    }
    @media (max-width: 1000px) { .products-row { grid-template-columns: repeat(3, 1fr); } }
    @media (max-width: 600px) { .products-row { grid-template-columns: repeat(2, 1fr); } }

    .prod-lpv {
      background: linear-gradient(165deg, #f4ede3, var(--cream) 60%, var(--wood-plank));
      border-radius: var(--radius);
      padding: 14px;
      position: relative;
      box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.55);
      border: 1px solid var(--metal-edge);
      transition: transform .3s var(--ease), box-shadow .3s, border-color .3s;
    }
    .bestsellers.dark-zone .prod-lpv {
      background: linear-gradient(165deg, rgba(74, 80, 88, 0.35), rgba(26, 29, 33, 0.95));
      border-color: var(--metal-edge);
    }
    .bestsellers.dark-zone .prod-lpv h4 { color: #f0e8dc; }
    .prod-lpv:hover {
      transform: translateY(-8px);
      box-shadow: var(--shadow-lift), 0 0 0 1px var(--accent-border);
      border-color: rgba(201, 106, 42, 0.35);
    }
    .bestsellers:not(.dark-zone) .prod-lpv::before {
      content: '';
      position: absolute; top: 0; left: 12px; right: 12px; height: 3px;
      border-radius: 0 0 4px 4px;
      background: linear-gradient(90deg, var(--orange), var(--metal-shine), var(--wood-light));
    }
    .price-tag {
      position: absolute; top: 12px; left: 12px; z-index: 2;
      background: linear-gradient(135deg, var(--metal-light), var(--metal-mid));
      color: #fff; font-weight: 800; font-size: 14px;
      padding: 8px 12px; border-radius: 12px;
      box-shadow: 0 4px 12px rgba(0,0,0,.3);
      border: 1px solid var(--metal-shine);
    }
    .bestsellers.dark-zone .price-tag {
      background: linear-gradient(135deg, var(--wood-mid), var(--wood));
      border-color: var(--wood-light);
    }
    .ribbon {
      position: absolute; top: 48px; right: 8px; z-index: 2;
      background: linear-gradient(135deg, var(--orange-light), var(--orange));
      color: #fff; font-size: 8px; font-weight: 800;
      text-transform: uppercase; padding: 6px 12px;
      border-radius: var(--radius-pill); letter-spacing: .05em;
    }
    .ribbon.heart { background: linear-gradient(135deg, #e85d6a, #b91c3c); }
    .ribbon.best { background: linear-gradient(135deg, var(--orange), var(--orange-dark)); }

    .prod-visual {
      aspect-ratio: 1; margin: 20px 6px 14px;
      border-radius: 16px;
      display: flex; align-items: center; justify-content: center;
      position: relative; overflow: hidden;
      background: linear-gradient(145deg, var(--cream), var(--wood-plank));
      border: 1px solid var(--metal-edge);
    }
    .bestsellers.dark-zone .prod-visual {
      background: linear-gradient(180deg, rgba(60,50,40,.5), rgba(30,26,20,.8));
    }
    .prod-visual::after {
      content: '';
      position: absolute; inset: 0;
      background: radial-gradient(circle at 50% 80%, rgba(0,0,0,.08), transparent 60%);
    }
    .bottle {
      width: 42%; height: 62%;
      border-radius: 8px 8px 14px 14px;
      position: relative;
      box-shadow: 0 8px 24px rgba(0,0,0,.2);
    }
    .bottle::before {
      content: '';
      position: absolute; top: -14%; left: 50%; transform: translateX(-50%);
      width: 28%; height: 16%;
      background: inherit; filter: brightness(.85);
      border-radius: 3px 3px 0 0;
    }
    .bottle::after {
      content: '';
      position: absolute; top: 15%; left: 12%; right: 12%; height: 35%;
      background: linear-gradient(180deg, rgba(255,255,255,.35), transparent);
      border-radius: 4px;
    }
    .bottle.orange { background: linear-gradient(180deg, var(--orange-light), var(--orange)); }
    .bottle.berry { background: linear-gradient(180deg, #f472b6, #be185d); }
    .bottle.mint { background: linear-gradient(180deg, #6ee7b7, #059669); }
    .bottle.wood { background: linear-gradient(180deg, #d4b896, #6b4423); }
    .bottle.sky { background: linear-gradient(180deg, #7dd3fc, #0284c7); }
    .device {
      width: 50%; height: 55%;
      border-radius: 12px;
      background: linear-gradient(145deg, var(--metal-light), var(--metal));
      box-shadow: 0 8px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(107, 115, 124, 0.4);
      border: 1px solid var(--metal-shine);
      position: relative;
    }
    .device::before {
      content: '';
      position: absolute; top: 20%; left: 15%; right: 15%; height: 8%;
      background: var(--orange);
      border-radius: 4px;
      box-shadow: 0 0 12px var(--orange-glow);
    }
    .device.wood-ed {
      background: linear-gradient(145deg, var(--wood-light), var(--wood));
    }

    .prod-lpv h4 {
      font-size: 13px; font-weight: 700; color: var(--text);
      text-align: center; min-height: 36px;
      display: flex; align-items: center; justify-content: center;
    }
    .prod-lpv .rating {
      text-align: center; font-size: 11px; color: var(--orange-dark);
      margin: 6px 0 12px; font-weight: 600;
    }
    .bestsellers.dark-zone .prod-lpv .rating { color: var(--orange-light); }
    .btn-add-lpv {
      width: 100%; padding: 11px;
      background: linear-gradient(135deg, var(--orange-light), var(--orange-dark));
      color: #fff; border: none; border-radius: var(--radius-pill);
      font-weight: 800; font-size: 11px;
      text-transform: uppercase; letter-spacing: .06em;
      cursor: pointer; box-shadow: 0 6px 20px var(--orange-glow);
      transition: transform .2s, filter .2s;
    }
    .btn-add-lpv:hover { transform: scale(1.03); filter: brightness(1.05); }

    .store-block {
      max-width: 1200px; margin: 0 auto;
      padding: 0 24px 48px;
      display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
    }
    @media (max-width: 768px) { .store-block { grid-template-columns: 1fr; } }
    .store-card, .newsletter-card {
      border-radius: 24px; padding: 28px 32px;
      border: 1px solid rgba(201, 166, 107, 0.35);
    }
    .store-card {
      background: linear-gradient(135deg, var(--wood-plank), var(--wood-grain));
      color: var(--wood);
      border: 1px solid rgba(122, 97, 73, 0.25);
      box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.35);
      position: relative;
      overflow: hidden;
    }
    .store-card::after {
      content: '';
      position: absolute; inset: 0; pointer-events: none;
      background: var(--texture-wood);
      background-size: 80px 8px;
      opacity: 0.5;
    }
    .store-card > * { position: relative; z-index: 1; }
    .store-card h3 {
      font-family: var(--font-display);
      font-size: 26px; letter-spacing: .04em;
      color: var(--wood); margin-bottom: 12px;
    }
    .store-hours {
      list-style: none; margin: 16px 0;
    }
    .store-hours li {
      display: flex; justify-content: space-between;
      padding: 8px 0; border-bottom: 1px dashed rgba(61,40,20,.15);
      font-size: 14px; font-weight: 600;
    }
    .store-hours li span:last-child { color: var(--orange-dark); }
    .newsletter-card {
      background: linear-gradient(145deg, var(--cream), var(--surface));
      box-shadow: var(--shadow-soft);
      border-left: 4px solid var(--orange);
      position: relative;
    }
    .newsletter-card::before {
      content: '';
      position: absolute; top: 0; right: 0; width: 45%; height: 100%;
      background: linear-gradient(90deg, transparent, rgba(45, 50, 56, 0.04));
      border-radius: inherit;
      pointer-events: none;
    }
    .newsletter-card h3 {
      font-family: var(--font-display);
      font-size: 26px; color: var(--black); margin-bottom: 8px;
    }
    .newsletter-card p { font-size: 14px; color: var(--muted); margin-bottom: 16px; }
    .news-form {
      display: flex; gap: 8px; flex-wrap: wrap;
    }
    .news-form input {
      flex: 1; min-width: 180px;
      padding: 12px 16px; border-radius: var(--radius-pill);
      border: 1px solid var(--cream-dark);
      font-family: inherit; font-size: 14px;
    }
    .news-form button {
      padding: 12px 22px;
      background: linear-gradient(135deg, var(--orange-light), var(--orange-dark));
      color: #fff; border: none; border-radius: var(--radius-pill);
      font-weight: 800; font-size: 12px; text-transform: uppercase;
      cursor: pointer; letter-spacing: .05em;
      box-shadow: var(--shadow-copper);
      transition: transform .2s, filter .2s;
    }
    .news-form button:hover { transform: translateY(-1px); filter: brightness(1.05); }

    .secondary-block {
      max-width: 1200px; margin: 0 auto;
      padding: 0 24px 48px;
      display: grid; grid-template-columns: 2fr 1fr; gap: 24px;
    }
    @media (max-width: 900px) { .secondary-block { grid-template-columns: 1fr; } }

    .promo-wide {
      border-radius: 24px; padding: 36px 40px;
      color: #fff; display: flex; align-items: center;
      justify-content: space-between; flex-wrap: wrap; gap: 20px;
      border: 1px solid rgba(201, 166, 107, 0.3);
      box-shadow: 0 16px 48px rgba(0,0,0,.25);
      background:
        linear-gradient(105deg, rgba(13,13,13,.88), rgba(61,40,20,.82)),
        url('../img/shop-interieur-3.png') center / cover no-repeat;
      position: relative; overflow: hidden;
    }
    .promo-wide::before {
      content: '';
      position: absolute; inset: 0;
      background: radial-gradient(circle at 80% 50%, var(--accent-soft), transparent 50%);
    }
    .promo-wide > * { position: relative; z-index: 1; }
    .promo-wide h3 {
      font-family: var(--font-display);
      font-size: clamp(24px, 4vw, 32px); letter-spacing: .04em;
    }
    .promo-wide p { opacity: .92; font-size: 14px; margin-top: 8px; max-width: 420px; line-height: 1.5; }
    .promo-tags {
      display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap;
    }
    .promo-tags span {
      font-size: 10px; font-weight: 800; text-transform: uppercase;
      letter-spacing: .06em; padding: 5px 10px;
      background: rgba(255,255,255,.12); border-radius: var(--radius-pill);
    }
    .btn-white {
      background: linear-gradient(180deg, #fff, var(--cream));
      color: var(--orange-dark);
      padding: 14px 28px; font-weight: 800; text-decoration: none;
      border-radius: var(--radius-pill); text-transform: uppercase; font-size: 12px;
      box-shadow: 0 8px 24px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.8);
      border: 1px solid rgba(255,255,255,.4);
      transition: transform .2s, box-shadow .2s;
      white-space: nowrap;
    }
    .btn-white:hover { transform: scale(1.04); box-shadow: 0 12px 32px rgba(0,0,0,.3); }

    .news-box {
      background: var(--surface);
      backdrop-filter: blur(12px);
      border-radius: 24px; padding: 24px;
      border: 1px solid rgba(201, 166, 107, 0.35);
      box-shadow: 0 12px 32px rgba(60, 40, 20, 0.08);
    }
    .news-box h3 {
      font-family: var(--font-display);
      font-size: 22px; color: var(--wood);
      margin-bottom: 14px; padding-bottom: 10px;
      border-bottom: 2px solid var(--orange);
    }
    .news-item {
      padding: 12px 0; border-bottom: 1px solid var(--cream-dark);
      font-size: 13px;
      transition: padding-left .2s;
    }
    .news-item:hover { padding-left: 6px; }
    .news-item:last-child { border: none; }
    .news-item time { font-size: 11px; color: var(--orange); font-weight: 700; }
    .news-item strong { display: block; margin-top: 3px; color: var(--black); }

    footer {
      position: relative;
      background: linear-gradient(180deg, var(--metal-mid), var(--metal));
      color: #b8b4ae;
      padding: 48px 24px 28px; margin-top: 12px;
      border-top: 2px solid var(--orange);
      box-shadow: inset 0 1px 0 rgba(107, 115, 124, 0.2);
    }
    footer::before {
      content: '';
      position: absolute; inset: 0; pointer-events: none;
      background: var(--texture-metal);
      opacity: 0.25;
    }
    footer > * { position: relative; z-index: 1; }
    .footer-grid {
      max-width: 1200px; margin: 0 auto 32px;
      display: grid; grid-template-columns: 1.2fr repeat(3, 1fr);
      gap: 32px;
    }
    @media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }
    .footer-brand-lockup {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 14px;
    }
    .footer-brand .logo-footer-wrap {
      flex-shrink: 0;
      padding: 5px;
      border-radius: 50%;
      background: linear-gradient(145deg, var(--wood-light), var(--wood-mid));
      box-shadow: 0 0 0 2px var(--orange), 0 8px 24px rgba(0,0,0,.35);
    }
    .footer-brand img.logo-main {
      height: 64px; width: 64px;
      object-fit: contain;
      border-radius: 50%;
      background: var(--black);
      display: block;
    }
    .footer-brand-text { min-width: 0; }
    .footer-wordmark {
      display: block;
      width: auto;
      height: 100px;
      max-width: min(480px, 100%);
      object-fit: contain;
      object-position: left center;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,.35));
      margin-bottom: 8px;
    }
    .footer-shop-city {
      font-family: var(--font-display);
      font-size: 22px;
      letter-spacing: .06em;
      color: var(--orange-light);
      line-height: 1;
    }
    .footer-shop-city span {
      display: block;
      font-family: 'Outfit', sans-serif;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--wood-light);
      margin-bottom: 2px;
    }
    .footer-brand p { font-size: 13px; line-height: 1.6; color: #9a9590; max-width: 300px; margin-top: 10px; }
    .footer-col h4 {
      font-family: var(--font-display);
      font-size: 16px; letter-spacing: .06em;
      color: var(--orange-light); margin-bottom: 14px;
    }
    .footer-col a {
      display: block; color: #aaa; text-decoration: none;
      font-size: 13px; margin-bottom: 8px;
      transition: color .2s, padding-left .2s;
    }
    .footer-col a:hover { color: var(--orange-light); padding-left: 4px; }
    .footer-bottom {
      max-width: 1200px; margin: 0 auto;
      padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08);
      display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px;
      font-size: 11px; opacity: .55;
    }

    .float-tab {
      position: fixed;
      right: 20px;
      bottom: 52px;
      left: auto;
      z-index: 150;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 14px 22px 14px 16px;
      font-family: 'Outfit', sans-serif;
      font-size: 12px;
      font-weight: 800;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #fff;
      text-decoration: none;
      border-radius: var(--radius-pill);
      background: linear-gradient(145deg, var(--orange-light), var(--orange-dark));
      border: 2px solid rgba(255, 210, 150, 0.55);
      box-shadow:
        0 10px 32px var(--orange-glow),
        0 6px 20px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.25);
      cursor: pointer;
      transition: transform .25s var(--ease), box-shadow .25s, filter .25s;
      animation: float-cta-glow 3s ease-in-out infinite;
    }
    .float-tab-ico {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      flex-shrink: 0;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.2);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
    }
    .float-tab-ico .ico {
      width: 20px;
      height: 20px;
      stroke: #fff;
      stroke-width: 2;
    }
    .float-tab-text {
      line-height: 1.15;
      text-align: left;
      white-space: nowrap;
    }
    .float-tab-text small {
      display: block;
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .12em;
      opacity: 0.9;
      margin-top: 2px;
    }
    .float-tab:hover {
      transform: translateY(-3px) scale(1.02);
      filter: brightness(1.06);
      box-shadow:
        0 14px 40px rgba(201, 106, 42, 0.45),
        0 8px 24px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    }
    .float-tab:focus-visible {
      outline: 2px solid #fff;
      outline-offset: 3px;
    }
    @keyframes float-cta-glow {
      0%, 100% {
        box-shadow:
          0 10px 32px var(--orange-glow),
          0 6px 20px rgba(0, 0, 0, 0.35),
          inset 0 1px 0 rgba(255, 255, 255, 0.25);
      }
      50% {
        box-shadow:
          0 12px 38px rgba(201, 106, 42, 0.42),
          0 8px 24px rgba(0, 0, 0, 0.38),
          inset 0 1px 0 rgba(255, 255, 255, 0.28);
      }
    }
    @media (max-width: 480px) {
      .float-tab {
        right: 12px;
        bottom: 48px;
        padding: 12px 16px 12px 12px;
        gap: 8px;
        font-size: 11px;
      }
      .float-tab-ico { width: 32px; height: 32px; }
      .float-tab-text small { display: none; }
    }

    /* —— Pages intérieures —— */
    .page-body #main-content {
      padding-top: 8px;
    }
    .page-inner {
      max-width: 1100px;
      margin: 0 auto;
      padding: 20px 24px 56px;
    }
    .breadcrumb {
      font-size: 12px;
      color: var(--gray-muted);
      margin-bottom: 16px;
      display: flex;
      flex-wrap: wrap;
      gap: 6px 10px;
      align-items: center;
    }
    .breadcrumb a {
      color: var(--orange-dark);
      text-decoration: none;
      font-weight: 600;
    }
    .breadcrumb a:hover { color: var(--orange); }
    .page-hero {
      text-align: center;
      margin-bottom: 28px;
    }
    .page-hero h1 {
      font-family: var(--font-display);
      font-size: clamp(32px, 6vw, 48px);
      letter-spacing: .04em;
      color: var(--text);
      line-height: 1.05;
    }
    .page-hero h1 .script {
      display: block;
      font-size: clamp(18px, 3vw, 24px);
      color: var(--orange);
      letter-spacing: .12em;
      margin-bottom: 4px;
    }
    .page-hero-lead {
      max-width: 640px;
      margin: 12px auto 0;
      font-size: 15px;
      color: var(--muted);
      line-height: 1.55;
    }
    .page-content {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .page-grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      align-items: start;
    }
    @media (max-width: 768px) {
      .page-inner { padding: 16px 14px 40px; }
      .page-grid-2 { grid-template-columns: 1fr; }
    }
    .page-card {
      background: var(--surface);
      border: 1px solid rgba(122, 97, 73, 0.15);
      border-radius: var(--radius);
      padding: 22px 24px;
      box-shadow: var(--shadow-soft);
      line-height: 1.6;
      color: var(--text);
    }
    .page-card--muted {
      background: rgba(235, 227, 214, 0.65);
    }
    .page-card-title {
      font-family: var(--font-display);
      font-size: 22px;
      letter-spacing: .04em;
      color: var(--orange-dark);
      margin-bottom: 12px;
    }
    .page-list {
      margin: 12px 0 0 1.1em;
      padding: 0;
    }
    .page-list li { margin-bottom: 6px; }
    .page-list--links {
      list-style: none;
      margin-left: 0;
    }
    .page-list--links a {
      color: var(--orange-dark);
      font-weight: 600;
      text-decoration: none;
    }
    .page-list--links a:hover { color: var(--orange); }
    .page-cta {
      display: inline-block;
      font-size: 12px;
      padding: 12px 22px;
      margin-top: 8px;
    }
    .page-empty { font-weight: 600; color: var(--gray); }
    .page-form {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .page-form label {
      display: flex;
      flex-direction: column;
      gap: 6px;
      font-size: 12px;
      font-weight: 600;
      color: var(--gray-muted);
    }
    .page-form input,
    .page-form textarea {
      font: inherit;
      padding: 10px 14px;
      border-radius: 10px;
      border: 1px solid rgba(122, 97, 73, 0.25);
      background: #fff;
      color: var(--text);
    }
    .page-form-note {
      font-size: 11px;
      color: var(--gray-muted);
      margin: 0;
    }
    .page-results-count {
      font-size: 13px;
      font-weight: 600;
      color: var(--muted);
      margin-bottom: 8px;
    }
    .page-sitemap {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    @media (max-width: 600px) {
      .page-sitemap { grid-template-columns: 1fr; }
    }

    .prod-lpv { position: relative; }
    .prod-lpv-link {
      position: absolute;
      inset: 0;
      z-index: 2;
      border-radius: inherit;
    }
    .prod-lpv h4 a {
      position: relative;
      z-index: 3;
      color: inherit;
      text-decoration: none;
    }
    .prod-lpv h4 a:hover { color: var(--orange); }
    .prod-lpv-form { position: relative; z-index: 3; margin: 0; }

    .product-page .breadcrumb { margin-bottom: 20px; }
    .product-detail {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
      gap: 32px;
      align-items: start;
      margin-bottom: 32px;
    }
    @media (max-width: 900px) {
      .product-detail { grid-template-columns: 1fr; }
    }
    .product-detail-frame {
      background: linear-gradient(145deg, #f8f4ee, #ebe3d6);
      border-radius: 20px;
      min-height: 280px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }
    .product-detail-photo {
      width: 100%;
      height: 100%;
      object-fit: contain;
      max-height: 360px;
      padding: 16px;
    }
    .product-detail-visual { position: relative; }
    .product-detail-ribbon { position: absolute; top: 16px; left: 16px; z-index: 2; }
    .product-detail-cat {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--orange-dark);
      margin: 0 0 8px;
    }
    .product-detail-title {
      font-family: var(--font-display);
      font-size: clamp(1.6rem, 4vw, 2.2rem);
      margin: 0 0 12px;
      line-height: 1.15;
    }
    .product-detail-lead { color: var(--gray-muted); margin: 0 0 16px; max-width: 42ch; }
    .product-detail-price { margin-bottom: 12px; }
    .product-detail-price .price-current {
      font-size: 1.75rem;
      font-weight: 800;
      color: var(--orange-dark);
    }
    .product-detail-price .price-old {
      font-size: 1rem;
      text-decoration: line-through;
      color: var(--gray-muted);
      margin-right: 10px;
    }
    .product-detail-stock { font-size: 13px; font-weight: 600; margin: 0 0 20px; }
    .product-detail-stock.is-in { color: #2d6a3e; }
    .product-detail-stock.is-out { color: #a33; }
    .product-detail-form {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px;
      margin-bottom: 16px;
    }
    .qty-label { font-size: 12px; font-weight: 600; color: var(--gray-muted); }
    .qty-input {
      width: 72px;
      font: inherit;
      padding: 8px 10px;
      border-radius: 10px;
      border: 1px solid rgba(122, 97, 73, 0.25);
    }
    .product-detail-cta { margin-left: auto; }
    @media (max-width: 500px) {
      .product-detail-cta { width: 100%; margin-left: 0; }
    }
    .product-detail-note { font-size: 12px; color: var(--gray-muted); margin: 0; }
    .product-detail-desc { margin-top: 8px; }
    .product-detail-desc h2 { font-size: 1.1rem; margin: 0 0 12px; }
    .product-related { margin-top: 40px; }
    .product-related .section-title-script { margin-bottom: 20px; }

    .cart-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 13px;
      margin-bottom: 16px;
    }
    .cart-table th,
    .cart-table td {
      padding: 12px 10px;
      border-bottom: 1px solid rgba(122, 97, 73, 0.15);
      text-align: left;
    }
    .cart-table th { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gray-muted); }
    .cart-product a { color: var(--orange-dark); font-weight: 600; text-decoration: none; }
    .cart-product a:hover { color: var(--orange); }
    .cart-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
    .cart-summary-total {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      font-size: 1.25rem;
      margin: 0 0 12px;
    }
    .cart-summary-note { font-size: 12px; color: var(--gray-muted); margin: 0 0 16px; }

    .checkout-error {
      background: #ffebee;
      color: #c62828;
      padding: 12px 16px;
      border-radius: 10px;
      font-weight: 600;
      margin-bottom: 16px;
    }
    .checkout-grid { align-items: start; }
    .checkout-fieldset {
      border: 1px solid rgba(122, 97, 73, 0.2);
      border-radius: 10px;
      padding: 12px 16px;
      margin: 0;
    }
    .checkout-fieldset legend { font-size: 12px; font-weight: 700; color: var(--gray-muted); padding: 0 6px; }
    .checkout-radio {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 600;
      color: var(--text);
      margin: 8px 0;
    }
    .checkout-cgv {
      flex-direction: row !important;
      align-items: flex-start;
      gap: 10px;
      font-weight: 500;
      color: var(--text);
    }
    .checkout-cgv input { margin-top: 3px; flex-shrink: 0; }
    .checkout-lines {
      list-style: none;
      margin: 0 0 16px;
      padding: 0;
    }
    .checkout-summary-line {
      display: flex;
      justify-content: space-between;
      font-size: 13px;
      margin: 0 0 8px;
      color: var(--gray-muted);
    }
    .checkout-delivery-field textarea { min-height: 80px; }
    .cms-body { line-height: 1.65; }
    .cms-body p { margin: 0 0 12px; }
    .cms-body ul, .cms-body ol { margin: 0 0 12px; padding-left: 1.25rem; }
    .footer-newsletter {
      margin-top: 16px;
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: center;
    }
    .footer-newsletter input {
      flex: 1;
      min-width: 160px;
      padding: 8px 12px;
      border-radius: 8px;
      border: 1px solid rgba(255,255,255,0.2);
      background: rgba(0,0,0,0.2);
      color: inherit;
      font: inherit;
    }
    .footer-newsletter button {
      padding: 8px 14px;
      border: none;
      border-radius: 8px;
      background: var(--orange);
      color: #fff;
      font-weight: 700;
      cursor: pointer;
    }

    .checkout-lines li {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      padding: 8px 0;
      border-bottom: 1px solid rgba(122, 97, 73, 0.12);
      font-size: 13px;
    }
    .order-confirm-meta {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 8px 16px;
      margin: 20px 0;
      font-size: 14px;
    }
    .order-confirm-meta dt { font-weight: 700; color: var(--gray-muted); }
    .news-list { display: flex; flex-direction: column; gap: 16px; }
    .news-item time { font-size: 12px; font-weight: 700; color: var(--orange-dark); }
    .news-item h2 { margin: 8px 0; font-size: 1.15rem; }
    .news-item h2 a { color: inherit; text-decoration: none; }
    .news-item h2 a:hover { color: var(--orange); }
    .news-read-more { font-weight: 700; color: var(--orange-dark); text-decoration: none; }
    .news-article time { font-size: 12px; font-weight: 700; color: var(--orange-dark); }
    .news-article h1 { margin: 8px 0 16px; font-size: clamp(1.4rem, 3vw, 1.8rem); }
    .news-article-body { line-height: 1.6; color: var(--gray-muted); }
    .news-article-body p { margin: 0 0 12px; }

    .account-ok {
      background: #e8f5e9;
      color: #2e7d32;
      padding: 12px 16px;
      border-radius: 10px;
      font-weight: 600;
      margin-bottom: 16px;
    }
    .account-grid { align-items: start; }
    .account-orders-table { margin-top: 8px; }

    @media (max-width: 640px) {
      .cart-table thead { display: none; }
      .cart-table tr { display: block; margin-bottom: 16px; border-bottom: 2px solid rgba(122, 97, 73, 0.12); }
      .cart-table td { display: block; border: none; padding: 4px 0; }
      .cart-table td::before {
        content: attr(data-label);
        font-weight: 700;
        font-size: 10px;
        text-transform: uppercase;
        display: block;
        color: var(--gray-muted);
      }
    }

    .reveal {
      opacity: 0; transform: translateY(24px);
      transition: opacity .6s ease, transform .6s var(--ease);
    }
    .reveal.visible { opacity: 1; transform: translateY(0); }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
      }
      .reveal { opacity: 1; transform: none; }
      .brands-marquee {
        animation-duration: var(--brands-duration, 60s) !important;
        animation-iteration-count: infinite !important;
      }
      .hero-bg-slider.is-js .hero-slide {
        transition-duration: 1.2s !important;
      }
      .float-tab {
        animation: none !important;
      }
    }
