/* wz-tokens:imports */
@import url('https://fonts.googleapis.com/css2?family=Urbanist:ital,wght@0,100..900;1,100..900&display=swap');
/* /wz-tokens:imports */

/* wz-foundations */
/* Design foundations derived from the theme. Do not hand-edit: apply_design_foundations rewrites this whole block. */

:root {
    --wz-space-2xs: clamp(8px, 0.5rem + 0.2vw, 12px);
    --wz-space-xs: clamp(12px, 0.75rem + 0.3vw, 16px);
    --wz-space-s: clamp(16px, 1rem + 0.5vw, 24px);
    --wz-space-m: clamp(24px, 1.5rem + 0.8vw, 32px);
    --wz-space-l: clamp(32px, 2rem + 1.2vw, 48px);
    --wz-space-xl: clamp(48px, 3rem + 2vw, 72px);
    --wz-space-2xl: clamp(64px, 4rem + 3vw, 96px);
    --wz-space-3xl: clamp(80px, 5rem + 4vw, 128px);
    --wz-flow: 0.9em;
    --wz-radius-s: 0;
    --wz-radius-m: 0;
    --wz-radius-l: 0;
    --wz-surface: rgba(0, 0, 0, .035);
    --wz-surface-high: rgba(0, 0, 0, .06);
    --wz-border: rgba(0, 0, 0, .14);
    --wz-text-muted: rgba(0, 0, 0, .62);
    --wz-ink: #14161a;
    --wz-ink-on: #f4f2f0;
    --wz-elev-1: 0 1px 2px rgba(17, 17, 17, .06), 0 2px 6px rgba(17, 17, 17, .05);
    --wz-elev-2: 0 1px 2px rgba(17, 17, 17, .07), 0 4px 12px rgba(17, 17, 17, .07), 0 12px 28px rgba(17, 17, 17, .06);
}

/* Vertical rhythm between sections. The theme ships 20/30/40/50 px, below the 64-96 px
   a content section needs; margin "none" stays untouched (it is glued on purpose). */
.body__wrapper .wiziblocks__item.small { margin-bottom: var(--wz-space-l); }
.body__wrapper .wiziblocks__item.medium { margin-bottom: var(--wz-space-2xl); }
.body__wrapper .wiziblocks__item.large { margin-bottom: var(--wz-space-3xl); }
.body__wrapper .wiziblocks__item:not(.small):not(.medium):not(.large):not(.none) { margin-bottom: var(--wz-space-2xl); }

/* Flow inside a block. The theme sets margin:0 and padding:0 on headings and paragraphs,
   so two paragraphs touch. The class is repeated to win over the theme rule without !important. */
body.body .wiziblocks__item.wiziblocks__item p + p { margin-top: var(--wz-flow); }
body.body .wiziblocks__item.wiziblocks__item h2 + p,
body.body .wiziblocks__item.wiziblocks__item h3 + p,
body.body .wiziblocks__item.wiziblocks__item h4 + p { margin-top: var(--wz-space-2xs); }
body.body .wiziblocks__item.wiziblocks__item p + h2,
body.body .wiziblocks__item.wiziblocks__item p + h3 { margin-top: var(--wz-space-m); }

/* Display voice "classic": Titles keep the size of the theme (32 to 48 px), fluid instead of stepped. */
/* The theme caps a title at 48 px and font.titleSize does nothing, so the size lives here. */
body.body .wiziblocks__item.wiziblocks__item h1,
body.body .wiziblocks__item.wiziblocks__item h2 {
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: normal;
    text-transform: none;
}
body.body .wiziblocks__item.wiziblocks__item h1 { font-size: clamp(2rem, 1.25rem + 2.4vw, 3rem); }
body.body .wiziblocks__item.wiziblocks__item h2 { font-size: clamp(1.625rem, 1.1rem + 1.7vw, 2.5rem); }

/* Line-height: generous on reading sizes (the theme sets 1.4 on titles and text alike). */
body.body .wiziblocks__item.wiziblocks__item h3 { line-height: 1.2; }
body.body .wiziblocks__item.wiziblocks__item p,
body.body .wiziblocks__item.wiziblocks__item li { line-height: 1.55; }

/* Measure: 45-75 characters per line. A one-column text block spans the whole container otherwise. */
body.body .wiziblocks__item.wiziblocks__item .wizi-txt--one p { max-width: 68ch; margin-inline: auto; }

/* Surface strategy "mono": No fill at all: sections are separated by a hairline and by space only. Austere, editorial, unmistakable. */
/* Hang these on a section with class_custom. The colour goes on __maxWidth: the theme repaints */
/* the page background there, so painting .wiziblocks__item alone shows only in the gutters. */
.wiziblocks__item.wz-alt .wiziblocks__item__maxWidth {
    background-color: transparent;
    border-top: 1px solid var(--wz-border);
    padding-block: var(--wz-space-xl);
}

/* Elevation: layered shadows. A single shadow reads as cheap; the theme ships one at 75% opacity. */
body.body .wiziBtn:hover { box-shadow: var(--wz-elev-2); }

/* Visible focus ring (WCAG 2.4.7). Keyboard only: it never shows on a mouse click. */
body.body a:focus-visible,
body.body button:focus-visible,
body.body input:focus-visible,
body.body select:focus-visible,
body.body textarea:focus-visible,
body.body [tabindex]:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 2px;
    border-radius: var(--wz-radius-s);
}

/* Every header variant pins itself on mobile, so an anchor or a keyboard focus
   lands under it without this (WCAG 2.4.11 Focus Not Obscured). Values measured
   in a browser, not guessed: docs/tools/header-sticky-probe.mjs. */
html { scroll-padding-top: 70px; }
@media (min-width: 1024px) { html { scroll-padding-top: 64px; } }

/* /wz-foundations */

/* wz-tokens */
/* Design tokens measured on a reference and mapped onto this shop. Do not hand-edit:
   apply_design_tokens rewrites this whole block. It loads AFTER wz-foundations and overrides it. */

/* Families the theme does not set, applied where the theme sets its own. */
body.body .wiziblocks__item.wiziblocks__item h1,
body.body .wiziblocks__item.wiziblocks__item h2,
body.body .wiziblocks__item.wiziblocks__item h3 { font-family: 'Urbanist', sans-serif; }
body.body,
body.body .wiziblocks__item.wiziblocks__item p,
body.body .wiziblocks__item.wiziblocks__item li { font-family: 'Urbanist', sans-serif; }

/* The foundations read these: redefining them reconfigures the shop without fighting a cascade. */
:root {
    --wz-space-2xs: 8px;
    --wz-space-xs: 16px;
    --wz-space-s: 24px;
    --wz-space-m: 32px;
    --wz-space-l: 48px;
    --wz-space-xl: 80px;
    --wz-space-2xl: 120px;
    --wz-space-3xl: 160px;
    --wz-radius-m: 14px;
    --wz-radius-s: 10px;
    --wz-surface: #f8fafc;
    --wz-border: #e2e8f0;
    --wz-elev-1: 0 1px 2px rgba(0, 0, 0, .12);
    --wz-elev-2: 0 2px 6px rgba(0, 0, 0, .14);
}

/* Type scale measured on the reference, in the units it uses. */
body.body .wiziblocks__item.wiziblocks__item h2 { font-size: 30px; line-height: 1.2; letter-spacing: -0.01em; font-weight: 700; text-transform: none; }
body.body .wiziblocks__item.wiziblocks__item h3 { font-size: 17px; line-height: 1.3; font-weight: 700; text-transform: none; }
body.body .wiziblocks__item.wiziblocks__item p,
body.body .wiziblocks__item.wiziblocks__item li { font-size: 16px; line-height: 1.6; font-weight: 400; }
body.body .wiziblocks__item.wiziblocks__item small { font-size: 13px; line-height: 1.5; font-weight: 400; }

/* Cards, images and blocks: the theme has no radius option for these. */
body.body .prod .prod__article,
body.body .prod .prod__img,
body.body .wiziblocks__item.wiziblocks__item img { border-radius: 14px; }
/* Fields: the theme styles them itself. */
body.body input[type="text"],
body.body input[type="email"],
body.body input[type="search"],
body.body select,
body.body textarea { border-radius: 10px; }

/* /wz-tokens */

/* TradeEdgeHub look: header, nav, hero, products, footer — 2026-10-25 */
/* Page canvas + text */
body.body { color: #475569; background: #fff; }

/* Old promo bar and placeholder reassurance strip: not part of the new look */
body.body .emergency-bar { display: none; }
body.body.body--emergencyTop { padding-top: 0; }
body.body .reassurance { display: none; }

/* Wordmark instead of the old logo image */
body.body .header__logo .picture { display: none; }
body.body .header__logo .header__logo__a__img__name.hidden { display: inline-flex !important; position: static; width: auto; height: auto; clip: auto; overflow: visible; }
body.body .header__logo .header__logo__a__name__slogan { display: none; }
body.body .header__logo .header__logo__a__name__title { font-family: 'Urbanist', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: -0.01em; color: #191f32; }
body.body .header__logo__a { text-decoration: none; }

/* Navigation colours (all sizes) */
body.body nav.nav { background: #fff; }
body.body nav.nav .nav__itemlvl1,
body.body nav.nav .nav__a { color: #64748b; font-family: 'Urbanist', sans-serif; font-weight: 500; text-transform: none; letter-spacing: 0; }
body.body nav.nav .nav__itemlvl1:hover,
body.body nav.nav .nav__a:hover { color: #191f32; }
body.body nav.nav .nav__itemlvl1--blog { border-left: 0; }
body.body .header__area .icon, body.body .header__search, body.body .header__nav__icon { color: #191f32; }

/* Desktop: one slim white bar, wordmark left, links right (like the reference) */
@media (min-width: 1024px) {
  body.body .header__wrapper, body.body .header__content { height: 76px; min-height: 0; }
  body.body .header__logo { top: 0; height: 76px; display: flex; align-items: center; max-width: 1180px; margin: 0 auto; padding: 0 24px; left: 0; width: 100%; box-sizing: border-box; }
  body.body .header__logo .header__h1 { text-align: left; }
  body.body nav.nav { margin-top: -76px; height: 76px; padding: 0; background: transparent; border-bottom: 1px solid #eef2f6; pointer-events: none; z-index: 20; }
  body.body nav.nav .nav__wrapper { max-width: 1180px; margin: 0 auto; padding: 0 64px 0 24px; height: 76px; justify-content: flex-end; align-items: center; }
  body.body nav.nav .nav__maxWidth { justify-content: flex-end; gap: 28px; width: auto; }
  body.body nav.nav .nav__maxWidth > *, body.body nav.nav .header__search, body.body nav.nav .header__area { pointer-events: auto; }
  body.body nav.nav .nav__itemlvl1 { font-size: 15px; padding: 6px 0; }
  body.body .header { background: #fff; }
}

/* Hero: block-scoped overrides of the theme title scale */
body.body .wiziblocks__item.wiziblocks__item .teh-hero h1 { font-size: clamp(48px, 9vw, 108px); line-height: 1; letter-spacing: -0.035em; font-weight: 700; color: #191f32; margin: 0 0 28px; }
body.body .wiziblocks__item.wiziblocks__item .teh-hero p.teh-hero__lead { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.6; color: #64748b; margin: 0 auto; max-width: 640px; }
body.body .wiziblocks__item.wiziblocks__item .teh-hero p.teh-hero__meta { font-size: 14px; color: #94a3b8; margin: 36px auto 0; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog h2 { font-size: 30px; color: #191f32; margin: 0; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog h3 { font-size: 16px; color: #191f32; margin: 0 0 10px; }

/* Products section: left-aligned title, clean cards */
body.body .teh-products .wiziblocks__item__maxWidth { max-width: 1180px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
body.body .teh-products .prod__titleList, body.body .teh-products .prod__titleList p { text-align: left; }
body.body .teh-products .prod__titleList strong { font-family: 'Urbanist', sans-serif; font-size: 30px; font-weight: 700; color: #191f32; text-transform: none; letter-spacing: -0.01em; }
body.body .teh-products .prod__titleList { margin-bottom: 28px; }
body.body .teh-products .prod__article { background: #fff; border: 1px solid #eef2f6; border-radius: 14px; box-shadow: 0 1px 3px rgba(15, 23, 42, .06); }
body.body .teh-products .prod__article:hover { box-shadow: 0 10px 24px rgba(15, 23, 42, .10); }
body.body .teh-products .prod__name, body.body .teh-products .prod__name__title { text-align: left; font-weight: 700; color: #191f32; font-size: 16px; line-height: 1.35; }
body.body .teh-products .prod__name { padding: 16px 20px 0; }
body.body .teh-products .prod__price { text-align: left; padding: 8px 20px 20px; justify-content: flex-start; }
body.body .teh-products .prod__price__cur { color: #191f32; font-weight: 700; }

/* Blog section container matches the products width */
body.body .teh-blog { max-width: 1180px; margin: 0 auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }

/* Footer: white, hairline, slate text */
body.body footer.footer { background: #fff; border-top: 1px solid #eef2f6; color: #64748b; }
body.body footer.footer a, body.body footer.footer p, body.body footer.footer li { color: #64748b; font-family: 'Urbanist', sans-serif; }
body.body footer.footer a:hover { color: #191f32; }
body.body footer.footer h3, body.body footer.footer .footer__title, body.body footer.footer strong { color: #191f32; font-family: 'Urbanist', sans-serif; letter-spacing: .04em; }

/* Header alignment fix — 2026-10-25 */
@media (min-width: 1024px) {
  body.body .header__relative { padding: 0; height: 76px; }
  body.body .header__logo .header__h1, body.body .header__logo__a { height: auto; }
  body.body .header__logo .header__logo__a__name__title { line-height: 1; }
}
body.body .header__logo .header__logo__a__img__name { align-items: center; }

/* Blog card links, sticky bar, product spacing — 2026-10-25 */
/* Blog cards: no theme link styling */
body.body .wiziblocks__item.wiziblocks__item .teh-blog a,
body.body .wiziblocks__item.wiziblocks__item .teh-blog a * { text-decoration: none; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-card__cover span { color: #fff; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-card__tag { color: #64748b; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-card h3 { color: #191f32; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog time { color: #94a3b8; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-blog__head a { color: #64748b; white-space: nowrap; font-size: 14px; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-blog__head a:hover { color: #191f32; }

/* Desktop: wordmark bar sticks together with the links */
@media (min-width: 1024px) {
  body.body .header { position: sticky; top: 0; z-index: 19; }
  body.body nav.nav { top: 0; }
}

/* Products: space between cards, title aligned with cards */
body.body .teh-products .prod { gap: 24px; }
body.body .teh-products .prod__titleList { padding-left: 0; margin-left: 0; }
body.body .teh-products .prod__titleList p { padding: 0; }

/* Blog header row fit — 2026-10-25 */
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-blog__head h2 { flex: 1 1 auto; width: auto; min-width: 0; }
body.body .wiziblocks__item.wiziblocks__item .teh-blog .teh-blog__head a { flex: 0 0 auto; }

/* Mobile: header offset, burger colour, product grid — 2026-10-25 */
@media (max-width: 1023px) {
  body.body.body--emergencyTop { padding-top: 58px; }
  body.body .header__nav__icon__span { background-color: #191f32; }
  body.body .header__relative { border-bottom-color: #eef2f6; }
  body.body .teh-products .prod { gap: 12px; }
  body.body .teh-products .prod__article { width: calc(50% - 6px); max-width: none; flex: 0 0 calc(50% - 6px); margin: 0; }
  body.body .teh-products .prod__name { padding: 12px 12px 0; }
  body.body .teh-products .prod__name, body.body .teh-products .prod__name__title { font-size: 14px; }
  body.body .teh-products .prod__price { padding: 6px 12px 14px; }
  body.body .teh-products .wiziblocks__item__maxWidth { padding: 0 16px; }
  body.body .teh-blog { padding-left: 16px; padding-right: 16px; }
}

/* Footer wordmark instead of old logo — 2026-10-25 */
body.body footer.footer .footer__wrapper__bloc__logo picture { display: none; }
body.body footer.footer .footer__wrapper__bloc__logo { text-decoration: none; }
body.body footer.footer .footer__wrapper__bloc__logo::before { content: "Trader Edge Hub"; font-family: 'Urbanist', sans-serif; font-weight: 700; font-size: 20px; letter-spacing: -0.01em; color: #191f32; }
body.body footer.footer .footer__wrapper__bloc__item--logo { min-height: 0; }

/* Site-wide palette + font, wordmark on every page — 2026-10-25 */
/* Whole-site palette and type: navy accent instead of red, Urbanist instead of Work Sans */
:root {
  --primary-color: #191f32;
  --primary-color-hover: #334155;
  --text-on-body: #191f32;
  --text-on-body-light: rgba(25, 31, 50, .6);
  --font-family-text: 'Urbanist', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-family-title: 'Urbanist', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* Wordmark on every page (the name span only exists on the homepage) */
body.body .header__logo .header__logo__a__img__name.hidden { display: none !important; }
body.body .header__logo .header__logo__a::before { content: "Trader Edge Hub"; font-family: 'Urbanist', sans-serif; font-weight: 700; font-size: 22px; line-height: 1; letter-spacing: -0.01em; color: #191f32; white-space: nowrap; }
@media (max-width: 1023px) { body.body .header__logo .header__logo__a::before { font-size: 20px; } }

/* Product page */
body.body .prod-details__name { font-family: 'Urbanist', sans-serif; font-weight: 700; letter-spacing: -0.02em; color: #191f32; }
body.body .prod__btn--addCart { border-radius: 10px; }

/* Ajout — 2026-10-25 */
/* TradeEdgeHub: hide publish dates on blog articles and blog lists */
.blog-t1__article__header__w-title__meta__date,
.blog-t1__article__header__w-title__meta__separator,
.blog-t1__wrapper__articles__post__infos__date,
.blog-t1__wrapper__articles__post__infos__cat + p {
  display: none !important;
}

/* Hide placeholder $1 price on no-price affiliate products — 2026-10-25 */
/* Products priced at exactly $1.00 have no real price (free account / referral offers): hide the price */
body.body .prod__article:has(input[id^="shown-price-"][value="1"]) .prod__price,
body.body .prod__article:has(input[id^="shown-price-"][value="1.00"]) .prod__price { visibility: hidden; }
body.body #prod-form:has(#shown-price[value="1.00"]) #price-area .prod__price { display: none; }

/* Ajout — 2026-10-25 */
.teh-bn *{box-sizing:border-box}

/* Ajout — 2026-10-25 */
.teh-bn{font-family:Urbanist,'Helvetica Neue',Helvetica,Arial,sans-serif;margin:32px auto;max-width:68ch;box-sizing:border-box;border-radius:14px;text-align:left}

/* Ajout — 2026-10-25 */
.teh-bn a.teh-bn__cta{display:inline-block;text-decoration:none;font-weight:700;font-size:15px;padding:11px 20px;border-radius:10px;white-space:nowrap} .teh-bn__sp{display:block;font-size:12px;margin-top:10px} .teh-bn--kv{background:#111a29;color:#fff;padding:28px 28px 22px;position:relative;overflow:hidden}

/* Ajout — 2026-10-25 */
.teh-bn--kv .teh-bn__tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#111a29;background:#3ecf8e;padding:5px 10px;border-radius:999px} body.body .teh-bn--kv h4{margin:14px 0 8px;padding-right:96px;font-size:24px;line-height:1.2;font-weight:800;color:#fff;letter-spacing:-0.01em} body.body .teh-bn--kv p{margin:0 0 18px;font-size:15px;line-height:1.55;color:rgba(255,255,255,.82);max-width:none}

/* Ajout — 2026-10-25 */
body.body .teh-bn--kv a.teh-bn__cta,body.body .teh-bn--kv a.teh-bn__cta:visited{background:#3ecf8e;color:#111a29} body.body .teh-bn--kv a.teh-bn__cta:hover{background:#fff;color:#111a29} .teh-bn--kv .teh-bn__sp{color:rgba(255,255,255,.6)} .teh-bn--kv svg{position:absolute;right:24px;top:24px;opacity:.9} .teh-bn--rot{background:#fff;border:1px solid #eef2f6;box-shadow:0 1px 3px rgba(15,23,42,.06);padding:18px;display:flex;gap:18px;align-items:center}

/* Ajout — 2026-10-25 */
body.body .teh-bn--rot img{width:104px;height:104px;border-radius:12px;flex:0 0 104px;object-fit:cover;margin:0} .teh-bn--rot .teh-bn__body{flex:1 1 auto;min-width:0} .teh-bn--rot .teh-bn__kick{font-size:12px;color:#64748b;font-weight:700;letter-spacing:.04em;text-transform:uppercase} body.body .teh-bn--rot h4{margin:4px 0;font-size:18px;line-height:1.25;font-weight:700;color:#191f32} body.body .teh-bn--rot p{margin:0;font-size:15px;line-height:1.45;color:#475569;max-width:none}

/* Ajout — 2026-10-25 */
body.body .teh-bn--rot a.teh-bn__cta,body.body .teh-bn--rot a.teh-bn__cta:visited{background:#191f32;color:#fff;margin-left:auto} body.body .teh-bn--rot a.teh-bn__cta:hover{background:#334155;color:#fff} .teh-bn--rot .teh-bn__sp{color:#64748b;margin-top:6px} @media (max-width:600px){.teh-bn--kv{padding:22px 20px 18px}.teh-bn--kv svg{display:none}body.body .teh-bn--kv h4{font-size:21px;padding-right:0}.teh-bn--rot{flex-wrap:wrap}body.body .teh-bn--rot img{width:72px;height:72px;flex-basis:72px}body.body .teh-bn--rot a.teh-bn__cta{width:100%;text-align:center;margin-left:0}}

/* Ajout — 2026-10-27 */
/* Trader Edge Hub: blog posts fit on phones (wide tables scroll inside the column) */
.wizi-txt--one, .wizi-txt__item { min-width: 0 !important; max-width: 100% !important; }
@media (max-width: 767px) { .wizi-txt table { display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; } .wizi-txt th, .wizi-txt td { min-width: 104px; } }
.wizi-txt img { max-width: 100%; height: auto; }
.wizi-txt p, .wizi-txt li { overflow-wrap: break-word; }
.wizi-txt th, .wizi-txt td { overflow-wrap: normal; word-break: normal; hyphens: none; }
