/*
Theme Name: Djembel
Description: Nouveau design Djembel®, thème enfant du thème actuel du site.
Author: Akoma Systems
Template: astra_new
Version: 1.2.1
Text Domain: djembel
*/

/*
 * Djembel® — système graphique d'après Josef Müller-Brockmann,
 * « Grid Systems in Graphic Design » :
 *  - une grille modulaire de 12 colonnes, marges et intervalles constants ;
 *  - une seule famille sans empattement, peu de corps, texte aligné à gauche, en drapeau ;
 *  - une trame de lignes de 8 px qui règle tous les interlignages et espacements ;
 *  - des aplats de couleur et des images qui occupent exactement des champs de la grille ;
 *  - des filets fins pour structurer, pas d'ombres ni d'arrondis décoratifs.
 * Les couleurs sont celles de la charte Djembel® d'origine.
 */

:root, body.dj {
  /* Couleurs Djembel® */
  --blue: #214a86;
  --blue-deep: #16325c;
  --yellow: #ffd255;
  --yellow-pure: #feed01;
  --green: #23a455;
  --mint: #1bd8b5;
  --purple: #6750fe;
  --pink: #e8457c;
  --ink: #111111;
  --grey: #5f6670;
  --rule: #d9d9d4;
  --paper: #ffffff;
  --paper-2: #f4f3ef;

  /* Trame */
  --u: 8px;
  --margin: 48px;
  --gutter: 24px;
  --max: 1440px;
  --header: 72px;

  /* Corps typographiques (taille / interligne sur la trame de 8 px) */
  --fs-xs: 12px; --lh-xs: 16px;
  --fs-s: 14px;  --lh-s: 24px;
  --fs-m: 17px;  --lh-m: 24px;
  --fs-l: 24px;  --lh-l: 32px;
  --fs-xl: 40px; --lh-xl: 48px;
  --fs-xxl: 72px; --lh-xxl: 72px;
  --fs-display: 128px; --lh-display: 120px;
}

@media (max-width: 1024px) {
  :root, body.dj { --margin: 32px; --gutter: 16px; --fs-xxl: 56px; --lh-xxl: 56px; --fs-display: 88px; --lh-display: 88px; }
}
@media (max-width: 680px) {
  :root, body.dj { --margin: 16px; --gutter: 16px; --fs-xl: 32px; --lh-xl: 40px; --fs-xxl: 44px; --lh-xxl: 48px; --fs-display: 56px; --lh-display: 56px; --header: 64px; }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header) + 52px); }
body.dj {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: 'Inter', "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: var(--fs-m);
  line-height: var(--lh-m);
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, video, iframe { display: block; max-width: 100%; }
body.dj a { color: inherit; }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
body.dj :focus-visible { outline: 2px solid var(--purple); outline-offset: 2px; }
::selection { background: var(--yellow); color: var(--ink); }

/* ---------- Grille ---------- */
body.dj .wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--margin); }
body.dj .grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); }
body.dj .grid > * { grid-column-end: span 12; min-width: 0; }
/* Colonnes : s = largeur (span), o = colonne de départ. md ≤ 1024 px, sm ≤ 680 px */
body.dj .s1{grid-column-end:span 1}
body.dj .s2{grid-column-end:span 2}
body.dj .s3{grid-column-end:span 3}
body.dj .s4{grid-column-end:span 4}
body.dj .s5{grid-column-end:span 5}
body.dj .s6{grid-column-end:span 6}
body.dj .s7{grid-column-end:span 7}
body.dj .s8{grid-column-end:span 8}
body.dj .s9{grid-column-end:span 9}
body.dj .s10{grid-column-end:span 10}
body.dj .s11{grid-column-end:span 11}
body.dj .s12{grid-column-end:span 12}
body.dj .o1{grid-column-start:1}
body.dj .o2{grid-column-start:2}
body.dj .o3{grid-column-start:3}
body.dj .o4{grid-column-start:4}
body.dj .o5{grid-column-start:5}
body.dj .o6{grid-column-start:6}
body.dj .o7{grid-column-start:7}
body.dj .o8{grid-column-start:8}
body.dj .o9{grid-column-start:9}
body.dj .o10{grid-column-start:10}
body.dj .o11{grid-column-start:11}
body.dj .o12{grid-column-start:12}
@media (max-width:1024px){
body.dj .md-s1{grid-column-end:span 1}
body.dj .md-s2{grid-column-end:span 2}
body.dj .md-s3{grid-column-end:span 3}
body.dj .md-s4{grid-column-end:span 4}
body.dj .md-s5{grid-column-end:span 5}
body.dj .md-s6{grid-column-end:span 6}
body.dj .md-s7{grid-column-end:span 7}
body.dj .md-s8{grid-column-end:span 8}
body.dj .md-s9{grid-column-end:span 9}
body.dj .md-s10{grid-column-end:span 10}
body.dj .md-s11{grid-column-end:span 11}
body.dj .md-s12{grid-column-end:span 12}
body.dj .md-o1{grid-column-start:1}
body.dj .md-o2{grid-column-start:2}
body.dj .md-o3{grid-column-start:3}
body.dj .md-o4{grid-column-start:4}
body.dj .md-o5{grid-column-start:5}
body.dj .md-o6{grid-column-start:6}
body.dj .md-o7{grid-column-start:7}
body.dj .md-o8{grid-column-start:8}
body.dj .md-o9{grid-column-start:9}
body.dj .md-o10{grid-column-start:10}
body.dj .md-o11{grid-column-start:11}
body.dj .md-o12{grid-column-start:12}
}
@media (max-width:680px){
body.dj .grid>*{grid-column:1/-1}
body.dj .sm-s1{grid-column-end:span 1}
body.dj .sm-s2{grid-column-end:span 2}
body.dj .sm-s3{grid-column-end:span 3}
body.dj .sm-s4{grid-column-end:span 4}
body.dj .sm-s5{grid-column-end:span 5}
body.dj .sm-s6{grid-column-end:span 6}
body.dj .sm-s7{grid-column-end:span 7}
body.dj .sm-s8{grid-column-end:span 8}
body.dj .sm-s9{grid-column-end:span 9}
body.dj .sm-s10{grid-column-end:span 10}
body.dj .sm-s11{grid-column-end:span 11}
body.dj .sm-s12{grid-column-end:span 12}
body.dj .sm-o1{grid-column-start:1}
body.dj .sm-o2{grid-column-start:2}
body.dj .sm-o3{grid-column-start:3}
body.dj .sm-o4{grid-column-start:4}
body.dj .sm-o5{grid-column-start:5}
body.dj .sm-o6{grid-column-start:6}
body.dj .sm-o7{grid-column-start:7}
body.dj .sm-o8{grid-column-start:8}
body.dj .sm-o9{grid-column-start:9}
body.dj .sm-o10{grid-column-start:10}
body.dj .sm-o11{grid-column-start:11}
body.dj .sm-o12{grid-column-start:12}
}


/* ---------- Typographie ---------- */
body.dj .t-xs { font-size: var(--fs-xs); line-height: var(--lh-xs); }
body.dj .t-s { font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .t-m { font-size: var(--fs-m); line-height: var(--lh-m); }
body.dj .t-l { font-size: var(--fs-l); line-height: var(--lh-l); letter-spacing: -0.01em; }
body.dj .t-xl { font-size: var(--fs-xl); line-height: var(--lh-xl); letter-spacing: -0.02em; font-weight: 700; }
body.dj .t-xxl { font-size: var(--fs-xxl); line-height: var(--lh-xxl); letter-spacing: -0.035em; font-weight: 700; }
body.dj .t-display { font-size: var(--fs-display); line-height: var(--lh-display); letter-spacing: -0.045em; font-weight: 700; }
body.dj .label { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .muted { color: var(--grey); }
body.dj .bold { font-weight: 700; }
body.dj .medium { font-weight: 500; }
body.dj .sup { font-size: 0.45em; vertical-align: 0.9em; letter-spacing: 0; font-weight: 500; }
body.dj .measure { max-width: 34em; }
body.dj .prose > * + * { margin-top: calc(var(--u) * 2); }
body.dj .prose h2 { font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 700; margin-top: calc(var(--u) * 6); }
body.dj .prose h3, body.dj .prose h4, body.dj .prose h5 { font-size: var(--fs-m); line-height: var(--lh-m); font-weight: 700; margin-top: calc(var(--u) * 4); }
body.dj .prose ul { padding-left: 0; }
body.dj .prose li { position: relative; padding-left: 24px; }
body.dj .prose li + li { margin-top: var(--u); }
body.dj .prose li::before { content: ""; position: absolute; left: 0; top: 11px; width: 12px; height: 2px; background: currentColor; }
body.dj .prose a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.dj .prose strong { font-weight: 700; }
body.dj .prose img { margin: calc(var(--u) * 4) 0; }

/* ---------- Rythme vertical ---------- */
body.dj .section { padding-block: calc(var(--u) * 15); }
body.dj .section-s { padding-block: calc(var(--u) * 8); }
body.dj .rule-top { border-top: 1px solid var(--ink); }
body.dj .rule-top-light { border-top: 1px solid var(--rule); }
body.dj .stack-1 > * + * { margin-top: var(--u); }
body.dj .stack-2 > * + * { margin-top: calc(var(--u) * 2); }
body.dj .stack-3 > * + * { margin-top: calc(var(--u) * 3); }
body.dj .stack-4 > * + * { margin-top: calc(var(--u) * 4); }
body.dj .stack-6 > * + * { margin-top: calc(var(--u) * 6); }
body.dj .row-gap { row-gap: calc(var(--u) * 6); }
body.dj .row-gap-s { row-gap: calc(var(--u) * 3); }
@media (max-width: 680px) {
  body.dj .section { padding-block: calc(var(--u) * 8); }
  body.dj .section-s { padding-block: calc(var(--u) * 5); }
}

/* ---------- Aplats de couleur ---------- */
body.dj .field-blue { background: var(--blue); color: #fff; }
body.dj .field-deep { background: var(--blue-deep); color: #fff; }
body.dj .field-yellow { background: var(--yellow); color: var(--ink); }
body.dj .field-green { background: var(--green); color: #fff; }
body.dj .field-mint { background: var(--mint); color: var(--ink); }
body.dj .field-purple { background: var(--purple); color: #fff; }
body.dj .field-paper { background: var(--paper-2); }
body.dj .field-ink { background: var(--ink); color: #fff; }
body.dj .field-blue .muted, body.dj .field-deep .muted, body.dj .field-green .muted, body.dj .field-purple .muted, body.dj .field-ink .muted { color: rgba(255, 255, 255, 0.72); }

/* ---------- Tête de section (comme les titres courants du livre) ---------- */
body.dj .sec-head { padding-top: calc(var(--u) * 2); border-top: 1px solid currentColor; margin-bottom: calc(var(--u) * 6); }
body.dj .sec-head .num { font-variant-numeric: tabular-nums; }

/* ---------- Boutons ---------- */
body.dj .btn {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 48px; padding: 12px 20px;
  border: 1px solid var(--ink); background: var(--ink); color: #fff;
  font-size: var(--fs-s); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; transition: background 0.15s, color 0.15s, border-color 0.15s;
}
body.dj .btn::after { content: "→"; font-weight: 400; transition: transform 0.15s; }
body.dj .btn:hover::after { transform: translateX(4px); }
body.dj .btn:hover { background: var(--blue); border-color: var(--blue); }
body.dj .btn-yellow { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
body.dj .btn-yellow:hover { background: #fff; border-color: #fff; color: var(--ink); }
body.dj .btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
body.dj .btn-ghost:hover { background: currentColor; }
body.dj .btn-ghost:hover > span { color: var(--paper); mix-blend-mode: difference; }
body.dj .btn-white { background: #fff; color: var(--ink); border-color: #fff; }
body.dj .btn-white:hover { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
body.dj .btn-block { width: 100%; }
body.dj .btn[disabled] { opacity: 0.4; cursor: not-allowed; }
body.dj .btn-plain::after { content: none; }
body.dj .link-arrow { display: inline-flex; gap: 8px; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; }
body.dj .link-arrow::after { content: "→"; }
body.dj .btn-group { display: flex; flex-wrap: wrap; gap: 16px; }

/* ---------- En-tête ---------- */
body.dj .site-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--ink); }
body.dj .site-header .grid { height: var(--header); align-items: center; }
body.dj .logo img { height: 40px; width: auto; }
body.dj .nav { display: flex; gap: 0; height: 100%; }
body.dj .nav a { display: flex; align-items: center; height: var(--header); padding: 0 16px 0 0; margin-right: 16px; font-size: var(--fs-s); font-weight: 500; text-decoration: none; position: relative; white-space: nowrap; }
body.dj .nav a::after { content: ""; position: absolute; left: 0; right: 16px; bottom: -1px; height: 4px; background: var(--yellow); transform: scaleX(0); transform-origin: left; transition: transform 0.2s; }
body.dj .nav a:hover::after, body.dj .nav a[aria-current="page"]::after { transform: scaleX(1); }
body.dj .header-tools { display: flex; justify-content: flex-end; align-items: center; gap: 20px; font-size: var(--fs-s); }
body.dj .header-tools a { text-decoration: none; font-weight: 500; }
body.dj .cart-link { display: inline-flex; align-items: center; gap: 8px; }
body.dj .cart-count { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; background: var(--yellow); font-size: var(--fs-xs); font-weight: 700; font-variant-numeric: tabular-nums; }
body.dj .menu-btn { display: none; background: none; border: 0; padding: 0; font-size: var(--fs-s); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; }
body.dj .mobile-nav { display: none; }
@media (max-width: 1024px) {
  body.dj .nav, body.dj .header-tools .hide-md { display: none; }
  body.dj .menu-btn { display: inline-block; }
  body.dj .mobile-nav[data-open="true"] { display: block; position: fixed; inset: calc(var(--header) + 36px) 0 0 0; background: var(--blue); color: #fff; z-index: 49; overflow: auto; }
  body.dj .mobile-nav a { display: block; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.25); font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 700; text-decoration: none; }
}

/* ---------- Pied de page ---------- */
body.dj .site-footer { background: var(--blue); color: #fff; padding-top: calc(var(--u) * 10); }
body.dj .site-footer a { text-decoration: none; }
body.dj .site-footer a:hover { color: var(--yellow); }
body.dj .footer-list li + li { margin-top: var(--u); }
body.dj .footer-bottom { margin-top: calc(var(--u) * 10); padding: calc(var(--u) * 3) 0; border-top: 1px solid rgba(255, 255, 255, 0.3); }
body.dj .footer-word { font-size: clamp(64px, 16vw, 232px); line-height: 0.82; font-weight: 700; letter-spacing: -0.06em; margin-top: calc(var(--u) * 10); color: var(--yellow); white-space: nowrap; overflow: hidden; }

/* ---------- Héros ---------- */
body.dj .hero { position: relative; overflow: hidden; }
body.dj .hero-media { position: relative; height: 100%; min-height: 320px; }
body.dj .hero-media img, body.dj .hero-media video { width: 100%; height: 100%; object-fit: cover; }
body.dj .hero-media-natural { height: auto; min-height: 0; align-self: center; padding-block: calc(var(--u) * 12); }
body.dj .hero-media-natural img { height: auto; }
body.dj .hero-caption { margin-top: var(--u); }

/* ---------- Images sur la grille ---------- */
body.dj .frame { position: relative; overflow: hidden; background: var(--paper-2); }
body.dj .frame img { width: 100%; height: 100%; object-fit: cover; }
body.dj .frame-contain img { object-fit: contain; }
body.dj .ratio-2-3 { aspect-ratio: 2 / 3; }
body.dj .ratio-3-4 { aspect-ratio: 3 / 4; }
body.dj .ratio-1-1 { aspect-ratio: 1 / 1; }
body.dj .ratio-4-3 { aspect-ratio: 4 / 3; }
body.dj .ratio-16-9 { aspect-ratio: 16 / 9; }
body.dj .caption { margin-top: var(--u); font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--grey); }

/* ---------- Cartes produit ---------- */
body.dj .p-card { display: flex; flex-direction: column; text-decoration: none; }
body.dj .p-card .frame { aspect-ratio: 2 / 3; }
body.dj .p-card .frame img { transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1); }
body.dj .p-card:hover .frame img { transform: scale(1.03); }
body.dj .p-card-body { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding-top: calc(var(--u) * 1.5); margin-top: calc(var(--u) * 1.5); border-top: 1px solid var(--ink); }
body.dj .p-card-name { font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; }
body.dj .p-card-price { font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 700; font-variant-numeric: tabular-nums; }
body.dj .p-card-meta { grid-column: 1 / -1; }
body.dj .p-card-tag { position: absolute; top: 0; left: 0; padding: 4px 8px; background: var(--yellow); }
body.dj .p-card-add { position: absolute; left: 0; right: 0; bottom: 0; transform: translateY(100%); transition: transform 0.2s; }
body.dj .p-card:hover .p-card-add, body.dj .p-card:focus-within .p-card-add { transform: none; }
@media (hover: none) { body.dj .p-card-add { transform: none; } }

/* ---------- Cartes événement ---------- */
body.dj .e-card { display: grid; grid-template-columns: 96px 1fr auto; gap: 0 var(--gutter); padding: calc(var(--u) * 3) 0; border-top: 1px solid var(--ink); text-decoration: none; align-items: start; }
body.dj .e-card:last-child { border-bottom: 1px solid var(--ink); }
body.dj .e-date-day { font-size: 56px; line-height: 48px; font-weight: 700; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
body.dj .e-card:hover .e-title { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
@media (max-width: 680px) { body.dj .e-card { grid-template-columns: 72px 1fr; } body.dj .e-card .e-cta { grid-column: 2; margin-top: 16px; } body.dj .e-date-day { font-size: 40px; line-height: 40px; } }

/* ---------- Cartes offre (packs, abonnements) ---------- */
body.dj .offer { display: flex; flex-direction: column; padding: calc(var(--u) * 3); min-height: 100%; }
body.dj .offer-price { font-size: 88px; line-height: 80px; font-weight: 700; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; }
body.dj .offer-price small { font-size: var(--fs-l); letter-spacing: 0; font-weight: 600; }
body.dj .offer-list { margin-top: calc(var(--u) * 3); border-top: 1px solid currentColor; }
body.dj .offer-list li { padding: calc(var(--u) * 1.5) 0; border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent); font-size: var(--fs-s); line-height: var(--lh-s); display: grid; grid-template-columns: 24px 1fr; }
body.dj .offer-list li::before { content: "+"; font-weight: 700; }
body.dj .offer .btn { margin-top: auto; }
body.dj .offer-foot { margin-top: calc(var(--u) * 4); }

/* ---------- Cartes instructeur ---------- */
body.dj .i-card { display: grid; grid-template-columns: 64px 1fr; gap: 0 16px; align-items: center; padding: calc(var(--u) * 2) 0; border-top: 1px solid var(--rule); text-decoration: none; }
body.dj .i-mono { width: 64px; height: 64px; display: grid; place-items: center; font-weight: 700; font-size: var(--fs-l); letter-spacing: -0.02em; }
body.dj .i-card:hover .i-name { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Chiffres clés ---------- */
body.dj .stat-num { font-size: var(--fs-xxl); line-height: var(--lh-xxl); font-weight: 700; letter-spacing: -0.04em; }

/* ---------- Formulaires ---------- */
body.dj .field { display: flex; flex-direction: column; gap: 8px; }
body.dj .field label { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .input, body.dj .select, body.dj .textarea {
  width: 100%; min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent;
  font-size: var(--fs-m); line-height: var(--lh-m); outline: none; appearance: none;
}
body.dj .input:focus, body.dj .select:focus, body.dj .textarea:focus { border-bottom: 2px solid var(--purple); padding-bottom: 11px; }
body.dj .textarea { min-height: 144px; resize: vertical; }
body.dj .select { background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 12px) 50%, calc(100% - 6px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 32px; }
body.dj .check { display: flex; gap: 12px; align-items: flex-start; font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .check input { margin-top: 5px; accent-color: var(--blue); width: 16px; height: 16px; }
body.dj .field-blue .input, body.dj .field-blue .select, body.dj .field-blue .textarea { border-bottom-color: #fff; }

/* Choix d'option (tailles, billets) */
body.dj .chips { display: flex; flex-wrap: wrap; gap: 8px; }
body.dj .chip { min-width: 48px; height: 48px; padding: 0 16px; border: 1px solid var(--ink); background: #fff; font-weight: 600; cursor: pointer; }
body.dj .chip[aria-pressed="true"] { background: var(--ink); color: #fff; }
body.dj .qty { display: inline-grid; grid-template-columns: 48px 56px 48px; height: 48px; border: 1px solid var(--ink); }
body.dj .qty button { border: 0; background: none; font-size: 20px; cursor: pointer; }
body.dj .qty button:hover { background: var(--yellow); }
body.dj .qty output, body.dj .qty input { display: grid; place-items: center; text-align: center; border: 0; border-left: 1px solid var(--ink); border-right: 1px solid var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; width: 100%; background: transparent; }

/* ---------- Tableaux (panier, commande) ---------- */
body.dj .table { width: 100%; border-collapse: collapse; font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .table th { text-align: left; font-size: var(--fs-xs); line-height: var(--lh-xs); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; padding: 0 0 12px; border-bottom: 1px solid var(--ink); }
body.dj .table td { padding: 16px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
body.dj .table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.dj .totals-row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--rule); font-variant-numeric: tabular-nums; }
body.dj .totals-row.total { border-bottom: 2px solid var(--ink); font-weight: 700; font-size: var(--fs-l); line-height: var(--lh-l); }

/* ---------- Messages ---------- */
/* Encadrés : un aplat neutre, sans bordure de couleur */
body.dj .notice { padding: 16px 20px; background: var(--paper-2); font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .notice-ok { background: var(--paper-2); }
body.dj .toast { position: fixed; right: var(--margin); bottom: 96px; z-index: 80; display: flex; gap: 24px; align-items: center; max-width: 480px; padding: 16px 20px; background: var(--ink); color: #fff; font-size: var(--fs-s); line-height: var(--lh-s); animation: toast-in 0.2s ease-out; }
body.dj .toast a { color: var(--yellow); font-weight: 600; white-space: nowrap; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

/* ---------- Pagination, filtres ---------- */
body.dj .filters li a { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--rule); text-decoration: none; font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .filters li a[aria-current="page"] { font-weight: 700; border-bottom-color: var(--ink); }
body.dj .filters li a:hover { color: var(--blue); }
body.dj .pager { display: flex; gap: 0; margin-top: calc(var(--u) * 8); border-top: 1px solid var(--ink); }
body.dj .pager a, body.dj .pager span { display: grid; place-items: center; min-width: 48px; height: 48px; text-decoration: none; font-weight: 600; font-variant-numeric: tabular-nums; }
body.dj .pager [aria-current="page"] { background: var(--ink); color: #fff; }
body.dj .pager a:hover { background: var(--yellow); }

/* ---------- Divers ---------- */
body.dj .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.dj .video { position: relative; aspect-ratio: 16 / 9; background: var(--ink); }
body.dj .video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
body.dj .map { width: 100%; height: 100%; min-height: 480px; border: 0; filter: grayscale(0.3); }
body.dj .breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; }
body.dj .breadcrumb a { text-decoration: none; }
body.dj .breadcrumb a:hover { text-decoration: underline; }
body.dj .breadcrumb li + li::before { content: "/"; margin-right: 8px; color: var(--grey); }
body.dj .sticky { position: sticky; top: calc(var(--header) + 60px); }
body.dj .demo-note { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--grey); }
body.dj .reveal { animation: reveal 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
@keyframes reveal { from { opacity: 0; transform: translateY(16px); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Panier sur petit écran */
body.dj .cart-thumb { width: 96px; padding-right: 16px !important; }
body.dj .cart-thumb .frame { width: 80px; }
@media (max-width: 680px) {
  body.dj .hide-sm { display: none; }
  body.dj .cart-thumb { width: 64px; }
  body.dj .cart-thumb .frame { width: 56px; }
  body.dj .table td { padding-right: 8px; }
}

/* Logo en pied de page */
body.dj .footer-logo { margin-top: calc(var(--u) * 10); }
body.dj .footer-logo img { width: 275px; height: auto; }
@media (max-width: 680px) { body.dj .footer-logo img { width: 200px; } }

/* Vidéo de fond du héros d'accueil */
body.dj .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.dj .hero-veil { position: absolute; inset: 0; background: var(--blue); opacity: 0.78; }
body.dj .footer-logo-img { width: 275px; height: auto; }
body.dj .site-footer .footer-bottom { margin-top: calc(var(--u) * 10); }
@media (max-width: 680px) { body.dj .footer-logo-img { width: 200px; } }

/* Barre des réseaux au-dessus de l'en-tête, et en-tête centré */
body.dj .topbar { display: flex; justify-content: center; align-items: center; height: 36px; background: var(--blue); color: #fff; }
body.dj .social { display: flex; justify-content: center; align-items: center; gap: 24px; }
body.dj .social a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; transition: color 0.15s; }
body.dj .social a:hover { color: var(--yellow); }
body.dj .site-footer .social { justify-content: flex-start; gap: 20px; }
body.dj .header-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: var(--header); column-gap: var(--gutter); }
body.dj .header-row .nav { justify-content: center; }
body.dj .header-row .nav a { padding: 0 12px; margin: 0; }
body.dj .header-row .nav a::after { left: 12px; right: 12px; }
body.dj .header-row .header-tools { justify-content: flex-end; }
@media (max-width: 1024px) { body.dj .header-row { grid-template-columns: 1fr auto; } }
body.dj .topbar { gap: 20px; }

/* ==========================================================================
   Adaptations WordPress
   ========================================================================== */

/* Les listes du contenu gardent leurs puces : la remise à zéro vise le thème */
body.dj .entry-content ul, body.dj .entry-content ol { padding-left: 1.2em; list-style: revert; }
body.dj .nowrap { white-space: nowrap; }
body.dj .site-header { width: 100%; }
body.dj.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.dj.admin-bar .site-header { top: 46px; } }
body.dj .header-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--gutter); height: var(--header); }
body.dj .nav { justify-content: center; }
body.dj .nav ul { display: flex; height: 100%; margin: 0; padding: 0; list-style: none; }
body.dj .nav li { margin: 0; }
body.dj .nav .current-menu-item > a::after { transform: scaleX(1); }
body.dj .site-footer .footer-tagline { max-width: 275px; }
body.dj .footer-sign { text-align: right; }
@media (max-width: 680px) { body.dj .footer-sign { text-align: left; } }
body.dj .footer-widget { margin-top: calc(var(--u) * 4); }

/* En-têtes de page */
body.dj .hero-tall { min-height: 480px; }
body.dj .hero-text { align-self: end; }
body.dj .hero-text-center { align-self: center; padding-block: calc(var(--u) * 12); }
body.dj .home-hero .hero-bg { max-width: none; }
body.dj .home-hero .wrap { position: relative; }
body.dj .home-hero-text { align-self: end; min-height: 560px; display: flex; flex-direction: column; justify-content: flex-end; }
body.dj .home-hero .measure { max-width: 22em; }
body.dj .search-band { align-items: center; }
body.dj .search-band .btn { margin-left: auto; }

/* Accueil et pages */
body.dj .fig-paper { aspect-ratio: 2 / 3; }
body.dj .fig-paper img { width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
body.dj .stat-field { aspect-ratio: 3 / 4; position: relative; overflow: hidden; }
body.dj .stat-field img { position: absolute; inset: 8% 0 0; width: 100%; height: 92%; object-fit: contain; object-position: bottom; }
body.dj .stat-field .stat-num { position: absolute; top: 24px; left: 24px; font-size: var(--fs-xxl); line-height: var(--lh-xxl); font-weight: 700; letter-spacing: -0.04em; }
body.dj .stat-text { margin-top: 12px; padding-top: 12px; }
body.dj .pad-top-0 { padding-top: 0; }
body.dj .mt-6 { margin-top: calc(var(--u) * 6); }
body.dj .mt-10 { margin-top: calc(var(--u) * 10); }
body.dj .pt-rule { padding-top: 12px; }
body.dj .pt-rule-2 { padding-top: 16px; }
body.dj .mt-2 { margin-top: calc(var(--u) * 2); }
body.dj .self-end { align-self: end; }
body.dj .star-offer { min-height: 0; }
body.dj .star-offer img { margin: 24px 0; width: 100%; }
body.dj .star-offer .btn { margin-top: auto; }
body.dj .offer-top { display: flex; justify-content: space-between; gap: 16px; min-height: 16px; }
body.dj .offer-badge { white-space: nowrap; padding: 0 6px; background: var(--yellow); color: var(--ink); }
body.dj .offer-name { margin-top: calc(var(--u) * 3); }
body.dj .offer-price { margin-top: calc(var(--u) * 2); }
body.dj .offer-note { margin-top: calc(var(--u) * 2); }
body.dj .offer-foot { margin-top: auto; padding-top: calc(var(--u) * 4); }
body.dj .e-cta { text-align: right; }
body.dj .e-cta .link-arrow { margin-top: 8px; }
body.dj .fig-offer { position: relative; min-height: 480px; }
body.dj .fig-offer img { position: absolute; inset: 8% 0 0; width: 100%; height: 92%; object-fit: contain; object-position: bottom; }
body.dj .news-lead { text-decoration: none; }
body.dj .news-card { text-decoration: none; }
body.dj .ratio-16-10 { aspect-ratio: 16 / 10; }

/* Pages du thème parent et des extensions (archives, certification…) */
body.dj .site-content > #primary, body.dj .site-content > .dj-page { width: 100%; max-width: var(--max); margin: 0 auto; padding: calc(var(--u) * 8) var(--margin); }

/* Contenu Elementor gardé dans les modèles : son ancien bandeau-titre est remplacé par l'en-tête du thème */
body.dj .dj-elementor .elementor-field-textual, body.dj .dj-elementor .elementor-field-group input, body.dj .dj-elementor .elementor-field-group textarea {
  border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent; padding: 12px 0;
}
body.dj .elementor-button, body.dj input[type="submit"], body.dj button[type="submit"]:not(.btn) {
  min-height: 48px; padding: 12px 20px; border: 1px solid var(--ink); border-radius: 0; background: var(--ink); color: #fff;
  font-size: var(--fs-s); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer;
}
body.dj .elementor-button:hover, body.dj input[type="submit"]:hover, body.dj button[type="submit"]:not(.btn):hover { background: var(--blue); border-color: var(--blue); color: #fff; }

/* Boutique WooCommerce */
body.dj .woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(var(--u) * 6) var(--gutter); margin: 0; padding: 0; list-style: none; }
body.dj .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.dj .woocommerce ul.products::before, body.dj .woocommerce ul.products::after { content: none; display: none; }
body.dj .woocommerce ul.products li.product { float: none; width: auto; margin: 0; padding: 0; background: none; box-shadow: none; border-radius: 0; }
body.dj .woocommerce ul.products li.product img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; margin: 0; background: var(--paper-2); border-radius: 0; }
body.dj .woocommerce ul.products li.product .woocommerce-loop-product__title { padding: calc(var(--u) * 1.5) 0 0; margin-top: calc(var(--u) * 1.5); border-top: 1px solid var(--ink); font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 600; letter-spacing: 0; }
body.dj .woocommerce ul.products li.product .price { color: var(--ink); font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 700; font-variant-numeric: tabular-nums; }
body.dj .woocommerce span.onsale { top: 0; left: 0; right: auto; min-width: 0; min-height: 0; margin: 0; padding: 4px 8px; border-radius: 0; background: var(--yellow); color: var(--ink); font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; text-transform: uppercase; }
body.dj .woocommerce a.button, body.dj .woocommerce button.button, body.dj .woocommerce input.button, body.dj .woocommerce #respond input#submit, body.dj .woocommerce a.button.alt, body.dj .woocommerce button.button.alt, body.dj .woocommerce input.button.alt {
  min-height: 48px; padding: 14px 20px; border: 1px solid var(--ink); border-radius: 0; background: var(--ink); color: #fff;
  font-size: var(--fs-s); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
}
body.dj .woocommerce a.button:hover, body.dj .woocommerce button.button:hover, body.dj .woocommerce input.button:hover, body.dj .woocommerce a.button.alt:hover, body.dj .woocommerce button.button.alt:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
body.dj .woocommerce ul.products li.product .button { display: block; width: 100%; margin-top: calc(var(--u) * 1.5); text-align: center; }
body.dj .woocommerce .woocommerce-breadcrumb { margin: 0 0 calc(var(--u) * 4); color: var(--grey); font-size: var(--fs-xs); line-height: var(--lh-xs); }
body.dj .woocommerce .woocommerce-ordering select { min-height: 48px; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background-color: transparent; }
body.dj .woocommerce div.product .product_title { font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 700; letter-spacing: -0.02em; }
body.dj .woocommerce div.product p.price, body.dj .woocommerce div.product span.price { color: var(--ink); font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 700; }
body.dj .woocommerce form .form-row input.input-text, body.dj .woocommerce form .form-row textarea, body.dj .woocommerce form .form-row select {
  min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent;
}
body.dj .woocommerce table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; }
body.dj .woocommerce table.shop_table th { font-size: var(--fs-xs); line-height: var(--lh-xs); letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; border-bottom: 1px solid var(--ink); }
body.dj .woocommerce-message, body.dj .woocommerce-info, body.dj .woocommerce-error { border: 0; background: var(--paper-2); color: var(--ink); }
@media (max-width: 1024px) { body.dj .woocommerce ul.products, body.dj .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 680px) { body.dj .woocommerce ul.products, body.dj .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ==========================================================================
   Réglages Elementor et Astra neutralisés (le script ajoute body.dj partout)
   ========================================================================== */
body.dj a:hover { color: inherit; }
body.dj h1, body.dj h2, body.dj h3, body.dj h4, body.dj h5, body.dj h6 { font-family: inherit; color: inherit; letter-spacing: inherit; text-transform: none; }
body.dj a, body.dj p, body.dj li, body.dj td, body.dj th, body.dj label, body.dj input, body.dj select, body.dj textarea, body.dj button { font-family: inherit; }
body.dj .site-content { background: var(--paper); }
body.dj .header-tools a, body.dj .nav a { color: var(--ink); }
body.dj .site-footer a { color: #fff; }
body.dj .topbar a { color: #fff; }
body.dj .btn { color: #fff; border-radius: 0; }
body.dj .btn-yellow, body.dj .btn-yellow:hover, body.dj .btn-white, body.dj .btn-white:hover { color: var(--ink); }
body.dj .btn:hover { color: #fff; }
body.dj .btn-yellow:hover, body.dj .btn-white:hover { color: var(--ink); }
body.dj .btn-ghost { color: inherit; }
body.dj .btn-ghost:hover { color: inherit; }
body.dj .input, body.dj .select, body.dj .textarea { border-radius: 0; box-shadow: none; }
body.dj button.btn { border-radius: 0; }
body.dj .menu-btn, body.dj .menu-btn:hover, body.dj .menu-btn:focus { background: none; color: var(--ink); border-radius: 0; }
body.dj .field-blue .sup { color: inherit; }

/* Recherche de cours */
body.dj .dj-course-form { align-items: end; }
body.dj .dj-course-form .label-center { align-self: center; }
body.dj .dj-source { display: none; }

/* Annuaire construit par theme.js à partir des cartes de l'extension */
body.dj .dir-group { padding-top: 16px; margin-bottom: 48px; }
body.dj .dir-count { text-align: right; }
body.dj .dir-cards { row-gap: 0; }
body.dj .dir-text { display: block; }

/* Carte des cours de l'extension : liste sur 5 colonnes, carte sur 7 */
body.dj .dj-courses .container { width: 100%; max-width: var(--max); padding: 0 var(--margin); margin: 0 auto; }
body.dj .dj-courses .elementor-section, body.dj .dj-courses .elementor-container, body.dj .dj-courses .elementor-widget-wrap { padding: 0; max-width: none; }
body.dj .dj-courses .kl-flex-row { display: grid; grid-template-columns: 5fr 7fr; gap: var(--gutter); padding-block: calc(var(--u) * 15); }
body.dj .dj-courses .kl-formation { background: transparent !important; max-height: 640px; overflow: auto; width: 100%; }
body.dj .dj-courses .kl-map { position: relative; width: 100%; height: 640px; min-height: 480px; }
@media (max-width: 1024px) { body.dj .dj-courses .kl-flex-row { grid-template-columns: 1fr; padding-block: calc(var(--u) * 8); } body.dj .dj-courses .kl-formation { max-height: none; } }

/* Pages de texte */
body.dj .article-body { padding-bottom: 120px; }
body.dj .article-grid { padding-top: 32px; }
body.dj .dj-elementor .elementor > .elementor-section:has(h1):first-of-type { display: none; }
body.dj .dj-elementor .elementor-section, body.dj .dj-elementor .elementor-container, body.dj .dj-elementor .elementor-widget-wrap, body.dj .dj-elementor .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0; max-width: none; background: none; }
body.dj .dj-elementor .elementor-section { min-height: 0; }
body.dj .dj-elementor .elementor-background-overlay { display: none; }
body.dj .dj-elementor .elementor-widget-google_maps { display: none; }
body.dj .dj-elementor .elementor-field-label { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
body.dj .dj-elementor .elementor-field-group { margin-bottom: 24px; }
body.dj .dj-elementor .elementor-field-group input, body.dj .dj-elementor .elementor-field-group textarea, body.dj .dj-elementor .elementor-field-textual {
  width: 100%; min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent; box-shadow: none; color: var(--ink); font-size: var(--fs-m);
}
body.dj .elementor-button { justify-content: space-between; width: auto; }

/* DVD */
body.dj .dvd-edition { margin-bottom: 32px; }
body.dj .dvd-row { padding: 16px 0 48px; }
body.dj .dvd-row .label { margin-top: 8px; }

/* Boutique : filtres sur 3 colonnes, produits sur 9 */
body.dj .shop-count { text-align: right; }
@media (max-width: 1024px) { body.dj .shop-count { text-align: left; } }
body.dj .shop-note { padding-top: 16px; }
body.dj .shop-body { padding-bottom: 120px; }
body.dj .shop-grid { padding-top: 24px; }
body.dj .woocommerce ul.products.columns-3, body.dj .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.dj .woocommerce ul.products li.product { position: relative; width: 100%; display: flex; flex-direction: column; text-align: left; }
body.dj .astra-shop-thumbnail-wrap { position: relative; overflow: hidden; aspect-ratio: 2 / 3; background: var(--paper-2); }
body.dj .astra-shop-thumbnail-wrap > a { display: block; height: 100%; }
body.dj .woocommerce ul.products li.product .astra-shop-thumbnail-wrap img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1); }
body.dj .woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img { transform: scale(1.03); }
body.dj .astra-shop-summary-wrap { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; margin-top: calc(var(--u) * 1.5); padding-top: calc(var(--u) * 1.5); border-top: 1px solid var(--ink); }
body.dj .woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 0; padding: 0; border: 0; }
body.dj .astra-shop-summary-wrap .ast-woo-product-category, body.dj .astra-shop-summary-wrap .star-rating { display: none; }
body.dj .woocommerce ul.products li.product .price { margin: 0; }
body.dj .woocommerce ul.products li.product .price del { display: block; opacity: 0.5; font-weight: 400; }
body.dj .woocommerce ul.products li.product .price ins { text-decoration: none; }
body.dj .woocommerce ul.products li.product a.added_to_cart { grid-column: 1 / -1; font-size: var(--fs-xs); font-weight: 600; }
body.dj .woocommerce nav.woocommerce-pagination { margin-top: calc(var(--u) * 8); text-align: left; border-top: 1px solid var(--ink); }
body.dj .woocommerce nav.woocommerce-pagination ul { display: flex; margin: 0; border: 0; }
body.dj .woocommerce nav.woocommerce-pagination ul li { border: 0; float: none; }
body.dj .woocommerce nav.woocommerce-pagination ul li a, body.dj .woocommerce nav.woocommerce-pagination ul li span { display: grid; place-items: center; min-width: 48px; height: 48px; padding: 0; background: none; color: var(--ink); font-size: var(--fs-m); font-weight: 600; }
body.dj .woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; }
body.dj .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--yellow); color: var(--ink); }
@media (max-width: 680px) { body.dj .woocommerce ul.products, body.dj .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Fiche produit */
body.dj .product-crumb .woocommerce-breadcrumb { margin: 0; font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--grey); }
body.dj .woocommerce div.product { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: calc(var(--u) * 6); padding-top: 24px; border-top: 1px solid var(--ink); }
body.dj .woocommerce div.product div.images { grid-column: 1 / span 7; width: 100%; float: none; margin: 0; }
body.dj .woocommerce div.product div.summary { grid-column: 9 / span 4; float: none; margin: 0; }
body.dj .woocommerce div.product .summary > * + * { margin-top: calc(var(--u) * 2); }
body.dj .woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 8px; }
body.dj .woocommerce div.product div.images .flex-control-thumbs li { width: 80px; float: none; }
body.dj .woocommerce div.product .related, body.dj .woocommerce div.product .upsells { grid-column: 1 / -1; }
body.dj .woocommerce div.product .related > h2, body.dj .woocommerce div.product .upsells > h2 { margin-bottom: calc(var(--u) * 4); padding-top: 16px; border-top: 1px solid var(--ink); font-size: var(--fs-xl); line-height: var(--lh-xl); font-weight: 700; letter-spacing: -0.02em; }
body.dj .woocommerce div.product .related ul.products, body.dj .woocommerce div.product .upsells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.dj .woocommerce div.product form.cart { margin: 0; }
body.dj .woocommerce div.product form.cart .quantity { float: none; margin: 0 0 16px; }
body.dj .woocommerce div.product form.cart .quantity input { width: 72px; height: 48px; border: 1px solid var(--ink); border-radius: 0; background: transparent; text-align: center; font-weight: 700; }
body.dj .woocommerce div.product form.cart .single_add_to_cart_button { float: none; width: 100%; background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
body.dj .woocommerce div.product form.cart .single_add_to_cart_button:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
body.dj .woocommerce div.product form.cart .variations { border: 0; margin-bottom: 16px; width: 100%; }
body.dj .woocommerce div.product form.cart .variations th, body.dj .woocommerce div.product form.cart .variations td { display: block; padding: 0; border: 0; background: none; text-align: left; }
body.dj .woocommerce div.product form.cart .variations label { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .woocommerce div.product form.cart .variations select { width: 100%; min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background-color: transparent; }
body.dj .woocommerce div.product .product_meta { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--grey); padding-top: 16px; border-top: 1px solid var(--ink); }
body.dj .product-desc { padding-top: 16px; border-top: 1px solid var(--ink); }
body.dj .product-desc .label { margin-bottom: 16px; }
@media (max-width: 1024px) {
  body.dj .woocommerce div.product div.images, body.dj .woocommerce div.product div.summary { grid-column: 1 / -1; position: static; }
  body.dj .woocommerce div.product .related ul.products, body.dj .woocommerce div.product .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Panier, commande, compte */
body.dj .woocommerce table.shop_table { width: 100%; font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj .woocommerce table.shop_table td { padding: 16px 8px 16px 0; border-top: 0; border-bottom: 1px solid var(--rule); background: none; }
body.dj .woocommerce table.shop_table th { padding: 0 8px 12px 0; background: none; color: var(--ink); }
body.dj .woocommerce table.shop_table td.product-thumbnail img { width: 80px; }
body.dj .woocommerce a.remove { border-radius: 0; color: var(--ink) !important; }
body.dj .woocommerce a.remove:hover { background: var(--ink); color: #fff !important; }
body.dj .woocommerce .cart_totals h2, body.dj .woocommerce #order_review_heading, body.dj .woocommerce-billing-fields h3, body.dj .woocommerce-additional-fields h3, body.dj .woocommerce-shipping-fields h3 { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 16px; }
body.dj .woocommerce .cart_totals table.shop_table tr.order-total td, body.dj .woocommerce .cart_totals table.shop_table tr.order-total th { font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 700; border-bottom: 2px solid var(--ink); text-transform: none; letter-spacing: 0; }
body.dj .woocommerce form .form-row label { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .woocommerce form .form-row .select2-container .select2-selection { min-height: 48px; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent; }
body.dj .woocommerce .coupon input.input-text { min-height: 48px; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent; }
body.dj .woocommerce #payment, body.dj .woocommerce-checkout #payment { background: var(--paper-2); border-radius: 0; }
body.dj .woocommerce #payment #place_order { width: 100%; float: none; background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
body.dj.woocommerce-account .woocommerce { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: calc(var(--u) * 4); }
body.dj.woocommerce-account .woocommerce > * { grid-column: 1 / -1; }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1 / span 3; width: 100%; float: none; margin: 0; }
body.dj.woocommerce-account .woocommerce-MyAccount-content { grid-column: 4 / -1; width: 100%; float: none; margin: 0; padding-left: var(--gutter); }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border: 0; }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; border: 0; }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation li::before { content: none; }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 8px 0; border: 0; border-bottom: 1px solid var(--rule); background: none; color: var(--ink); font-size: var(--fs-s); line-height: var(--lh-s); text-decoration: none; }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { font-weight: 700; color: var(--ink); background: none; border-bottom-color: var(--ink); }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation a:hover { color: var(--blue); background: none; }
body.dj.woocommerce-account .woocommerce-MyAccount-content a { text-decoration: underline; text-underline-offset: 3px; }
body.dj.woocommerce-account .u-columns { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 6); }
body.dj.woocommerce-account .u-columns .col-1, body.dj.woocommerce-account .u-columns .col-2 { width: 100%; float: none; }
body.dj.woocommerce-account .u-columns h2 { font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 700; margin-bottom: 16px; }
body.dj .woocommerce form.login, body.dj .woocommerce form.register { padding: 0; margin: 0; border: 0; border-radius: 0; }
@media (max-width: 1024px) {
  body.dj.woocommerce-account .woocommerce-MyAccount-navigation, body.dj.woocommerce-account .woocommerce-MyAccount-content { grid-column: 1 / -1; padding-left: 0; }
  body.dj.woocommerce-account .u-columns { grid-template-columns: 1fr; }
}

/* Adhésions Paid Memberships Pro */
body.dj .pmpro_form, body.dj .pmpro_card, body.dj .pmpro_section { border-radius: 0; box-shadow: none; }
body.dj .pmpro_card { border: 0; border-top: 1px solid var(--ink); }
body.dj .pmpro_form_input, body.dj .pmpro_form input[type="text"], body.dj .pmpro_form input[type="email"], body.dj .pmpro_form input[type="password"], body.dj .pmpro_form select { min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; background: transparent; box-shadow: none; }
body.dj .pmpro_btn, body.dj a.pmpro_btn, body.dj input.pmpro_btn { min-height: 48px; padding: 12px 20px; border: 1px solid var(--ink); border-radius: 0; background: var(--ink); color: #fff; font-size: var(--fs-s); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
body.dj .pmpro_btn:hover, body.dj a.pmpro_btn:hover { background: var(--blue); border-color: var(--blue); color: #fff; }

/* Fiche de certification : l'extension garde la réservation, le thème l'habille */
body.dj .event-hero-side { align-self: end; }
body.dj.single-mep_events .mpwem_title_block, body.dj.single-mep_events .mpwem_slider_area, body.dj.single-mep_events .mpwem_calender_area { display: none; }
body.dj.single-mep_events #mage-container { width: 100%; max-width: var(--max); margin: 0 auto; padding: calc(var(--u) * 15) var(--margin); }
body.dj.single-mep_events .mpwem_container, body.dj.single-mep_events .default_theme { max-width: none; padding: 0; background: none; box-shadow: none; }
body.dj.single-mep_events .content_area { display: grid; grid-template-columns: 8fr 4fr; gap: calc(var(--u) * 6) var(--gutter); }
body.dj.single-mep_events .mep-default-content, body.dj.single-mep_events .mep-default-sidebar { width: 100%; min-width: 0; float: none; }
body.dj.single-mep_events .mep-default-sidebar > * { border: 0; border-top: 1px solid var(--ink); border-radius: 0; background: none; box-shadow: none; padding: 12px 0; }
body.dj.single-mep_events h2, body.dj.single-mep_events h3, body.dj.single-mep_events h4:not(.__icon_circle_mr), body.dj.single-mep_events h5, body.dj.single-mep_events h6 { font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; background: none; color: var(--ink); }
body.dj.single-mep_events .date_time_location_short { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gutter); margin-bottom: calc(var(--u) * 6); padding: 0; background: none; border: 0; }
body.dj.single-mep_events .short_item { padding-top: 12px; border-top: 1px solid var(--ink); background: none; }
body.dj.single-mep_events .__icon_circle_mr { display: none; }
body.dj.single-mep_events .mpwem_details_content { font-size: var(--fs-l); line-height: var(--lh-l); }
body.dj.single-mep_events .mep_ticket_item { padding: 16px 0; border: 0; border-top: 1px solid var(--ink); border-radius: 0; background: none; box-shadow: none; }
body.dj.single-mep_events .ticket-name { font-size: var(--fs-m); font-weight: 700; color: var(--ink); }
body.dj.single-mep_events .ticket-description { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--grey); }
body.dj.single-mep_events .ticket-price { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
body.dj.single-mep_events .qtyIncDec { border: 1px solid var(--ink); border-radius: 0; background: none; }
body.dj.single-mep_events .qtyIncDec .decQty, body.dj.single-mep_events .qtyIncDec .incQty { background: none; color: var(--ink); border-radius: 0; }
body.dj.single-mep_events .qtyIncDec input { border: 0; border-left: 1px solid var(--ink); border-right: 1px solid var(--ink); border-radius: 0; background: transparent; font-weight: 700; }
body.dj.single-mep_events ._button_theme, body.dj.single-mep_events .mpwem_book_now, body.dj.single-mep_events .mpwem_add_to_cart { min-height: 48px; padding: 12px 20px; border: 1px solid var(--yellow); border-radius: 0; background: var(--yellow); color: var(--ink); font-size: var(--fs-s); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; box-shadow: none; }
@media (max-width: 1024px) { body.dj.single-mep_events .content_area { grid-template-columns: 1fr; } body.dj.single-mep_events #mage-container { padding-block: calc(var(--u) * 8); } body.dj.single-mep_events .date_time_location_short { grid-template-columns: 1fr; } }

/* Profil d'instructeur de l'extension */
body.dj .kl-header { display: none; }
body.dj .kl-main-container { width: 100%; max-width: var(--max); margin: 0 auto; padding: calc(var(--u) * 15) var(--margin); }
body.dj .kl-profile { text-align: left; background: none; box-shadow: none; }
body.dj .kl-profile .kl-avatar img { border-radius: 0; }
body.dj .kl-profile .kl-name { font-size: var(--fs-xxl); line-height: var(--lh-xxl); font-weight: 700; letter-spacing: -0.035em; }
body.dj .kl-main-container .kl-card { border: 0; border-top: 1px solid var(--ink); border-radius: 0; box-shadow: none; background: none; }

/* Retouches après essai avec les styles du site en ligne */
body.dj .summary .woocommerce-breadcrumb, body.dj .summary .single-product-category, body.dj .summary > .ast-woo-product-category { display: none; }
body.dj .woocommerce div.product form.cart { display: block; }
body.dj .woocommerce div.product form.cart .quantity { display: block; }
body.dj .woocommerce div.product .summary .product_title { font-size: var(--fs-xl); line-height: var(--lh-xl); }
body.dj.woocommerce-account .woocommerce-MyAccount-navigation .is-active a, body.dj.woocommerce-account .woocommerce-MyAccount-navigation li a { color: var(--ink) !important; }
body.dj .astra-shop-summary-wrap { align-items: baseline; }
body.dj .astra-shop-summary-wrap .ast-loop-product__link { display: block; margin: 0; padding: 0; }
body.dj .woocommerce ul.products li.product .woocommerce-loop-product__title { margin: 0 !important; }

/* Fiche de certification : l'extension impose ses arrondis et sa couleur */
body.dj.single-mep_events .mpwem_wrapper, body.dj.single-mep_events .mpwem_wrapper * { border-radius: 0 !important; box-shadow: none !important; }
body.dj.single-mep_events .mpwem_wrapper { --color_theme: var(--ink); --color_theme_alter: #fff; --color_section: transparent; }
body.dj.single-mep_events .mpwem_title_block, body.dj.single-mep_events .mpwem_slider_area { display: none !important; }
body.dj.single-mep_events .mpwem_organizer, body.dj.single-mep_events .mpwem_seat_status, body.dj.single-mep_events .mpwem_location_sidebar, body.dj.single-mep_events .mep-default-sidrbar-price-seat { background: none !important; color: var(--ink) !important; }
body.dj.single-mep_events .mpwem_organizer * { color: var(--ink) !important; }
body.dj.single-mep_events .short_item, body.dj.single-mep_events .date_time_location_short > * { border-left: 0 !important; border-right: 0 !important; border-bottom: 0 !important; background: none !important; }

/* Fiche produit : photo sur 7 colonnes, achat sur 4, suggestions sur fond clair */
body.dj .woocommerce div.product::before, body.dj .woocommerce div.product::after, body.dj.woocommerce-account .u-columns::before, body.dj.woocommerce-account .u-columns::after, body.dj.woocommerce-account .woocommerce::before, body.dj.woocommerce-account .woocommerce::after { content: none !important; display: none !important; }
body.dj .woocommerce div.product div.images, body.dj .woocommerce div.product div.summary { width: 100% !important; max-width: none !important; float: none !important; grid-row: 1; }
body.dj .woocommerce div.product .related, body.dj .woocommerce div.product .upsells { grid-row: 2; width: 100% !important; float: none !important; margin: 0; }
body.dj .woocommerce div.product div.images .flex-viewport { height: auto !important; }
body.dj .woocommerce div.product div.images .woocommerce-product-gallery__image img, body.dj .woocommerce div.product div.images > .woocommerce-product-gallery__wrapper img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--paper-2); }
body.dj .woocommerce div.product div.images .flex-control-thumbs img { aspect-ratio: 3 / 4; object-fit: cover; }
body.dj .summary .single-product-category, body.dj .summary .woocommerce-breadcrumb, body.dj .summary > .ast-woo-product-category { display: none !important; }
body.dj .woocommerce div.product .product_meta { display: none; }
body.dj .woocommerce .woocommerce-breadcrumb a, body.dj .product-crumb .woocommerce-breadcrumb a { font: inherit; letter-spacing: inherit; color: inherit; text-decoration: none; }
body.dj .product-crumb { padding-block: calc(var(--u) * 4); }
body.dj .woocommerce div.product form.cart .quantity { margin-bottom: 16px; }
body.dj .woocommerce div.product .summary #wc-stripe-express-checkout-element, body.dj .woocommerce div.product .summary .ppc-button-wrapper, body.dj .woocommerce div.product .summary #paypal-standard-container { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; max-width: none; }
body.dj .product-desc h2, body.dj .product-desc h3 { margin-top: 24px; font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .shop-body:has(.related) { padding-bottom: 0; }
body.dj .woocommerce div.product .related { padding-block: calc(var(--u) * 15); background: var(--paper-2); box-shadow: 0 0 0 100vmax var(--paper-2); clip-path: inset(0 -100vmax); }
body.dj .woocommerce div.product .related > h2 { display: grid; grid-template-columns: 3fr 9fr; column-gap: var(--gutter); align-items: start; margin-bottom: calc(var(--u) * 6); padding-top: 16px; border-top: 1px solid var(--ink); }
body.dj .woocommerce div.product .related > h2::before { content: "Produits similaires"; font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj .woocommerce ul.products li.product { width: 100% !important; margin: 0 !important; float: none !important; padding: 0 !important; }
body.dj .woocommerce ul.products li.product .astra-shop-thumbnail-wrap { width: 100%; }
body.dj .astra-shop-summary-wrap { padding-left: 0; padding-right: 0; }
body.dj .astra-shop-thumbnail-wrap > a { width: 100%; }
@media (max-width: 680px) { body.dj .woocommerce div.product .related > h2 { grid-template-columns: 1fr; row-gap: 16px; } body.dj .woocommerce div.product .related { padding-block: calc(var(--u) * 8); } }
@media (max-width: 1024px) { body.dj .woocommerce div.product div.images, body.dj .woocommerce div.product div.summary { grid-row: auto; } body.dj .woocommerce div.product .related { grid-row: auto; } }

/* En-tête : même corps pour les outils */
body.dj .header-tools a { font-size: var(--fs-s); }

/* Connexion : deux formulaires côte à côte, sans cadre */
body.dj.woocommerce-account .u-columns { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: calc(var(--u) * 6); }
body.dj.woocommerce-account .u-columns .col-1 { grid-column: 1 / span 5; float: none; width: 100%; max-width: none; padding: 0; }
body.dj.woocommerce-account .u-columns .col-2 { grid-column: 8 / span 5; float: none; width: 100%; max-width: none; padding: 0; }
body.dj.woocommerce-account .u-columns h2 { margin: 0 0 24px; padding: 0; font-size: var(--fs-xs); line-height: var(--lh-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
body.dj.woocommerce-account form.woocommerce-form { padding: 0 !important; margin: 0 !important; border: 0 !important; }
body.dj.woocommerce-account form .form-row { display: flex; flex-direction: column; gap: 8px; margin: 0 0 24px; padding: 0; }
body.dj.woocommerce-account form .form-row label { margin: 0; line-height: var(--lh-xs); }
body.dj.woocommerce-account form .form-row label.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 12px; font-size: var(--fs-s); line-height: var(--lh-s); font-weight: 400; letter-spacing: 0; text-transform: none; }
body.dj.woocommerce-account form .password-input { display: block; position: relative; width: 100%; }
body.dj.woocommerce-account form .show-password-input { position: absolute; top: 50%; right: 0; width: 32px; height: 32px; min-height: 0; padding: 0; transform: translateY(-50%); border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink); }
body.dj.woocommerce-account form .show-password-input::before, body.dj.woocommerce-account form .show-password-input::after { color: var(--ink); }
body.dj.woocommerce-account form button[type="submit"], body.dj.woocommerce-account form .woocommerce-button { width: 100%; }
body.dj.woocommerce-account form input.input-text { width: 100%; font-size: var(--fs-m); }
body.dj.woocommerce-account form input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px #fff inset; }
body.dj.woocommerce-account .lost_password { margin: 0; font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj.woocommerce-account .lost_password a { text-decoration: underline; text-underline-offset: 3px; }
body.dj.woocommerce-account .woocommerce-privacy-policy-text, body.dj.woocommerce-account .u-columns .col-2 form > p:not(.form-row) { margin-bottom: 24px; color: var(--grey); font-size: var(--fs-s); line-height: var(--lh-s); }
body.dj.woocommerce-account .woocommerce-privacy-policy-text a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1024px) { body.dj.woocommerce-account .u-columns .col-1, body.dj.woocommerce-account .u-columns .col-2 { grid-column: 1 / -1; } }

/* Fiche produit : photo plus petite, pour rester nette */
body.dj .woocommerce div.product div.images { grid-column: 1 / span 5; }
body.dj .woocommerce div.product div.summary { grid-column: 7 / span 6; }
@media (max-width: 1024px) { body.dj .woocommerce div.product div.images, body.dj .woocommerce div.product div.summary { grid-column: 1 / -1; } }
