/* ============================================================
   AQUALIS / YAM DISTRIBUTION — Design v4 (structure inspirée de Dyson)
   Chargé après aqualis.css sur toutes les pages (body.dy).
   Couleurs inchangées : bleu marine #0b2033, cyan #00a8e8, bleu lien
   #0a84d6, gris clair #f5f5f7, blanc. Ce qui change : la structure
   (bandeau de services, méga-menu, tuiles produit sur fond gris,
   pages claires avec bandes marine), la typographie et les boutons.
   ============================================================ */

:root{
  --nav-main:68px;
  --util-h:34px;
  --nav-h:calc(var(--nav-main) + var(--util-h));
  --navy:#0b2033;
  --navy-2:#0e2a42;
  --grey:#f5f5f7;
  --grey-2:#ebebef;
  --r:10px;
}

/* ---------- 1. Pages claires, bandes marine ----------
   Les pages autrefois sombres deviennent claires ; tout ce qui reste
   marine (bandes, récapitulatif, barre d'achat, popups) récupère ses
   variables d'origine. */
body.dy.theme-dark{
  --bg:#ffffff; --bg-2:var(--grey);
  --panel:var(--grey); --panel-2:var(--grey-2);
  --stroke:rgba(0,0,0,.11);
  --ink:#111113; --muted:#55555b;
  background:#fff; color:#111113;
}
body.dy .navy, body.dy .sec-dark, body.dy .sec-deep, body.dy .recap,
body.dy .pp-buybar, body.dy .exit-card, body.dy .wa-help, body.dy .dy-util{
  --bg:var(--navy); --bg-2:var(--navy-2);
  --panel:rgba(255,255,255,.055); --panel-2:rgba(255,255,255,.09);
  --stroke:rgba(126,214,255,.2);
  --ink:#f5f7f9; --muted:rgba(214,236,247,.72);
  color:var(--ink);
}
body.dy .navy, body.dy .sec-dark{ background:var(--navy); }
body.dy .sec-deep{ background:radial-gradient(120% 90% at 50% 0%, #12466b 0%, #0e3252 45%, #0b2033 88%); }
body.dy .sec-grey{ background:var(--grey); }

/* ---------- 2. Typographie ---------- */
body.dy{ letter-spacing:-.012em; }
body.dy h1, body.dy h2, body.dy h3{ letter-spacing:-.03em; }
body.dy .section-title{ font-size:clamp(2rem,4.4vw,3.2rem); line-height:1.04; font-weight:600; }
body.dy .sec-num{ font-size:.74rem; letter-spacing:.2em; color:var(--link); }
body.dy .navy .sec-num, body.dy .sec-dark .sec-num, body.dy .sec-deep .sec-num{ color:var(--cyan-2); }
body.dy .sec-rule{ display:none; }
body.dy .section-sub{ color:#4a4a4f; }
body.dy .navy .section-sub, body.dy .sec-dark .section-sub, body.dy .sec-deep .section-sub{ color:var(--muted); }
.dy-eyebrow{ display:block; font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; color:var(--link); margin-bottom:12px; }
.navy .dy-eyebrow{ color:var(--cyan-2); }

/* ---------- 3. Boutons : rectangles arrondis, plus francs ---------- */
body.dy .btn{ border-radius:var(--r); font-weight:600; letter-spacing:-.005em; }
body.dy .btn-lg{ padding:16px 30px; }
body.dy .btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid currentColor; }
body.dy .btn-ghost:hover{ background:var(--panel); }
body.dy .sec-light .btn-ghost, body.dy .sec-grey .btn-ghost, body.dy .pcard .btn-ghost{ background:transparent; color:var(--l-ink); border-color:var(--l-ink); }
body.dy .btn-outline{ border-width:1.5px; }
body.dy .btn-navy{ background:var(--navy); color:#fff; }
body.dy .btn-navy:hover{ background:#000; }
body.dy .alink{ font-weight:600; }

/* ---------- 4. En-tête : bandeau de services + navigation ---------- */
body.dy .nav{ height:var(--nav-h); background:#fff; border-bottom:1px solid rgba(0,0,0,.09);
  -webkit-backdrop-filter:none; backdrop-filter:none; }
body.dy .nav-inner{ height:var(--nav-main); }
.dy-util{ height:var(--util-h); background:var(--navy); font-size:.78rem; }
.dy-util-in{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.dy-util p{ display:flex; gap:22px; color:rgba(226,242,251,.86); white-space:nowrap; overflow:hidden; }
.dy-util p b{ color:#fff; font-weight:600; }
.dy-util nav{ display:flex; gap:20px; }
.dy-util nav a{ color:rgba(226,242,251,.86); font-weight:500; }
.dy-util nav a:hover{ color:#fff; }
@media(max-width:900px){ .dy-util nav{ display:none; } .dy-util p{ justify-content:center; width:100%; } .dy-util .hide-s{ display:none; } }

body.dy .nav-links{ gap:6px; height:100%; }
body.dy .nav-links > a, .dy-mm-btn{
  display:inline-flex; align-items:center; height:var(--nav-main); padding:0 14px;
  font-size:.96rem; font-weight:500; color:var(--l-ink); opacity:1; background:none; border:0;
  font-family:var(--font); cursor:pointer; position:relative; letter-spacing:-.01em;
}
body.dy .nav-links > a::after, .dy-mm-btn::after{
  content:""; position:absolute; left:14px; right:14px; bottom:0; height:3px; background:var(--cyan);
  transform:scaleX(0); transition:transform .25s var(--ease);
}
body.dy .nav-links > a:hover::after, .dy-mm:hover .dy-mm-btn::after, .dy-mm:focus-within .dy-mm-btn::after,
body.dy .nav-links > a[aria-current="page"]::after{ transform:scaleX(1); }
.dy-mm-btn svg{ margin-left:6px; transition:transform .25s; }
.dy-mm:hover .dy-mm-btn svg, .dy-mm:focus-within .dy-mm-btn svg{ transform:rotate(180deg); }

/* Méga-menu « Nos pompes » */
.dy-mm{ height:100%; }
.dy-mm-panel{
  position:absolute; left:0; right:0; top:var(--nav-h); background:#fff;
  border-top:1px solid rgba(0,0,0,.08); box-shadow:0 30px 60px rgba(0,0,0,.12);
  visibility:hidden; opacity:0; transform:translateY(-6px);
  transition:opacity .2s, transform .2s, visibility 0s .2s;
}
.dy-mm:hover .dy-mm-panel, .dy-mm:focus-within .dy-mm-panel{ visibility:visible; opacity:1; transform:none; transition:opacity .2s, transform .2s; }
.dy-mm-grid{ display:grid; grid-template-columns:repeat(4,1fr) 1.1fr; gap:18px; padding:28px 0 32px; }
.dy-mm-prod{ display:grid; gap:8px; color:var(--l-ink); }
.dy-mm-img{ display:block; aspect-ratio:4/3; border-radius:var(--r); background:var(--grey); overflow:hidden; }
.dy-mm-img img{ width:100%; height:100%; object-fit:contain; transition:transform .4s var(--ease); }
.dy-mm-prod:hover .dy-mm-img img{ transform:scale(1.05); }
.dy-mm-prod b{ font-size:.74rem; letter-spacing:.16em; color:var(--link); }
.dy-mm-prod span:last-child{ font-size:.95rem; font-weight:600; line-height:1.3; }
.dy-mm-side{ border-left:1px solid rgba(0,0,0,.08); padding-left:24px; display:flex; flex-direction:column; gap:10px; }
.dy-mm-side p{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:#6b6b72; margin-bottom:4px; }
.dy-mm-side a{ font-size:.95rem; font-weight:500; color:var(--l-ink); }
.dy-mm-side a:hover{ color:var(--link); }
.dy-mm-side .btn{ margin-top:auto; align-self:flex-start; color:#fff; }

body.dy .nav-cta .btn{ padding:11px 22px; }
.dy-cart-ico{ width:17px; height:17px; fill:currentColor; }

/* Menu mobile : liste groupée, façon application */
body.dy .mobile-menu{ top:var(--nav-h); justify-content:flex-start; padding:18px 24px 40px; gap:0; overflow-y:auto; background:#fff; }
body.dy .mobile-menu a{ font-size:1.12rem; padding:14px 0; border-bottom:1px solid rgba(0,0,0,.07); }
body.dy .mobile-menu .mm-group{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:#6b6b72; font-weight:600; margin:22px 0 4px; }
body.dy .mobile-menu .mm-prod{ display:flex; align-items:center; gap:14px; }
body.dy .mobile-menu .mm-prod img{ width:52px; height:52px; border-radius:8px; background:var(--grey); object-fit:contain; }
body.dy .mobile-menu .btn{ border-bottom:0; margin-top:24px; align-self:stretch; color:#fff; padding:15px; }

/* ---------- 5. Fil d'Ariane, en-têtes de page ---------- */
body.dy .page-head{ padding:calc(var(--nav-h) + 30px) 0 12px; }
body.dy .crumb{ font-size:.8rem; color:#6b6b72; }
body.dy .crumb a{ color:#6b6b72; text-decoration:underline; text-underline-offset:3px; }
body.dy .title-xl{ font-size:clamp(2.1rem,5vw,3.4rem); }

/* ---------- 6. Composants sur fond clair ---------- */
body.dy.theme-dark .card{ background:#fff; border:1px solid rgba(0,0,0,.1); color:var(--l-ink); box-shadow:none; }
body.dy.theme-dark .card:hover{ box-shadow:0 18px 40px rgba(0,0,0,.08); }
body.dy .card{ border-radius:14px; }
body.dy .field label{ color:#3f3f45; font-weight:600; }
body.dy .field label b{ color:var(--link); }
body.dy .field input, body.dy .field select, body.dy .field textarea,
body.dy .gate-row input{ background:#fff; border:1.5px solid rgba(0,0,0,.18); border-radius:8px; color:var(--l-ink); }
body.dy .field input::placeholder, body.dy .field textarea::placeholder, body.dy .gate-row input::placeholder{ color:#9a9aa1; }
body.dy .field select option{ background:#fff; color:var(--l-ink); }
body.dy .navy .field input, body.dy .recap input{ background:rgba(255,255,255,.06); color:var(--ink); border-color:var(--stroke); }
body.dy .notice{ background:#eefaf5; border-color:#b7e6d2; color:#1b5a41; border-radius:10px; }
body.dy .notice.blue{ background:#eef7fc; border-color:#bfe1f3; color:#0b4a6e; }
body.dy .notice a{ color:inherit; font-weight:600; }
body.dy .consent{ color:#4a4a4f; }
body.dy .faq summary{ font-weight:600; }
body.dy .spec-table td{ border-bottom-color:rgba(0,0,0,.08); }
body.dy .gallery-main{ background:var(--grey); border:0; box-shadow:none; border-radius:14px; }
body.dy .gallery-thumbs button{ background:var(--grey); border-color:transparent; border-radius:8px; }
body.dy .gallery-thumbs button.on{ border-color:var(--l-ink); box-shadow:none; }
body.dy .pbadge{ background:var(--grey); border-color:rgba(0,0,0,.08); color:#2a2a30; border-radius:6px; }
body.dy .price-box{ background:var(--grey); border:0; border-radius:12px; }
body.dy .price-note{ color:#3f3f45; }
body.dy .cutoff b{ color:var(--l-ink); }
body.dy .navy .cutoff b, body.dy .sec-dark .cutoff b, body.dy .sec-deep .cutoff b{ color:#fff; }
body.dy .cutoff.urgent{ color:#8a5a00; background:#fff6e0; border-color:#f1d79a; }
body.dy .stock-out, body.dy .cart-out{ color:#a3221a; background:#fdecea; border-color:#f3b8b2; }
body.dy .express-box small{ color:#55555b; }
body.dy .lede-note{ background:#eef7fc; }

/* ---------- 7. Tuiles produit façon Dyson ---------- */
body.dy .pcard{ border:0; border-radius:14px; background:#fff; box-shadow:none; }
body.dy .pcard:hover{ transform:none; box-shadow:none; }
body.dy .pcard-media{ background:var(--grey); border-radius:14px; }
body.dy .sec-grey .pcard-media{ background:#fff; }
body.dy .sec-grey .pcard{ background:transparent; }
body.dy .pcard-body{ padding:18px 4px 6px; }
body.dy .pcard-fam{ border-radius:6px; box-shadow:none; background:#fff; }
body.dy .pcard-specs em{ border-radius:6px; }
body.dy .navy .pcard, body.dy .sec-dark .pcard{ background:transparent; }

/* ---------- 8. Réassurance (remplace la barre de confiance) ---------- */
body.dy .trustbar.dy-assure{ background:#fff; border-top:1px solid rgba(0,0,0,.08); padding:44px 0; }
.dy-assure-grid{ display:grid; gap:26px; grid-template-columns:1fr 1fr; }
@media(min-width:900px){ .dy-assure-grid{ grid-template-columns:repeat(4,1fr); } }
.dy-assure-item{ display:flex; gap:14px; align-items:flex-start; }
.dy-assure-item svg{ flex:none; width:30px; height:30px; stroke:var(--navy); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.dy-assure-item b{ display:block; font-size:.95rem; color:var(--l-ink); margin-bottom:3px; }
.dy-assure-item span{ font-size:.84rem; color:#55555b; line-height:1.45; }

/* ---------- 9. Pied de page ---------- */
body.dy footer{ background:var(--grey); border-top:0; padding:60px 0 0; }
body.dy .footer-grid{ gap:34px; }
@media(min-width:820px){ body.dy .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr; } }
body.dy footer h4{ font-size:.74rem; letter-spacing:.18em; color:var(--l-ink); }
body.dy footer a, body.dy footer p{ color:#3f3f45; }
body.dy footer a:hover{ color:var(--link); }
.dy-social{ display:flex; gap:10px; margin-top:14px; }
.dy-social a{ width:38px; height:38px; border-radius:50%; background:#fff; display:flex !important; align-items:center; justify-content:center; padding:0 !important; border:1px solid rgba(0,0,0,.08); }
.dy-social svg{ width:18px; height:18px; fill:var(--navy); }
.dy-pay{ display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
body.dy .dy-pay .chip{ height:30px; font-size:.78rem; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
body.dy .footer-bottom{ margin-top:30px; padding:20px 0; border-top:1px solid rgba(0,0,0,.09); }
body.dy .footer-tm{ padding-bottom:30px; }
.dy-foot-bar{ background:var(--navy); color:rgba(226,242,251,.8); font-size:.78rem; padding:12px 0; }
.dy-foot-bar .container{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* ---------- 10. Blocs de l'accueil ---------- */
.dy-hero{ background:var(--navy); color:#fff; padding:calc(var(--nav-h) + clamp(40px,6vw,80px)) 0 clamp(48px,6vw,80px); overflow:hidden; text-align:center; }
.dy-hero h1{ font-size:clamp(2.4rem,6.4vw,4.6rem); line-height:1.02; letter-spacing:-.04em; font-weight:600; max-width:15ch; margin:0 auto; }
.dy-hero h1 span{ color:var(--cyan-2); }
.dy-hero-sub{ font-size:clamp(1.05rem,1.8vw,1.3rem); color:rgba(226,242,251,.82); max-width:620px; margin:20px auto 0; line-height:1.5; }
.dy-hero .hero-ctas{ margin-top:30px; }
.dy-hero-note{ margin-top:16px; font-size:.86rem; color:rgba(226,242,251,.7); }
.dy-hero-note b{ color:#fff; }
.dy-hero-shot{ margin:clamp(34px,5vw,56px) auto 0; width:min(1100px,94vw); }
.dy-hero-shot img{ width:100%; height:auto; border-radius:18px; display:block; box-shadow:0 40px 90px rgba(0,0,0,.45); }

.dy-sec{ padding:clamp(64px,8vw,110px) 0; }
.dy-sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:34px; }
.dy-sec-head .section-title{ margin:0; }
.dy-sec-head p{ max-width:520px; color:#4a4a4f; font-size:1.02rem; line-height:1.55; }

/* Choisir par situation */
.dy-sit{ display:grid; gap:16px; grid-template-columns:1fr; }
@media(min-width:700px){ .dy-sit{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1080px){ .dy-sit{ grid-template-columns:repeat(4,1fr); } }
.dy-sit a{ position:relative; display:flex; flex-direction:column; border-radius:14px; overflow:hidden; background:var(--grey); color:var(--l-ink); min-height:100%; }
.dy-sit-img{ aspect-ratio:4/3; overflow:hidden; }
.dy-sit-img img{ width:100%; height:100%; object-fit:contain; transition:transform .6s var(--ease); }
.dy-sit a:hover .dy-sit-img img{ transform:scale(1.05); }
.dy-sit-txt{ padding:18px 20px 22px; display:grid; gap:6px; }
.dy-sit-txt small{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--link); font-weight:700; }
.dy-sit-txt b{ font-size:1.18rem; letter-spacing:-.02em; line-height:1.25; }
.dy-sit-txt span{ font-size:.9rem; color:#4a4a4f; line-height:1.5; }
.dy-sit-txt i{ font-style:normal; font-weight:600; color:var(--link); margin-top:6px; }

/* Bandeau aide au choix */
.dy-help{ border-radius:18px; padding:clamp(30px,5vw,56px); display:grid; gap:24px; align-items:center; grid-template-columns:1fr; }
@media(min-width:860px){ .dy-help{ grid-template-columns:1.4fr 1fr; } }
.dy-help h2{ font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.08; }
.dy-help p{ color:var(--muted); margin-top:10px; font-size:1.02rem; line-height:1.55; }
.dy-help-q{ display:grid; gap:10px; }
.dy-help-q a{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px; border-radius:10px;
  background:rgba(255,255,255,.06); border:1px solid var(--stroke); color:#fff; font-weight:500; }
.dy-help-q a:hover{ background:rgba(255,255,255,.12); }
.dy-help-q a::after{ content:"→"; color:var(--cyan-2); }

/* Histoires « technologie » : image + texte en alternance */
.dy-story{ display:grid; gap:28px; align-items:center; grid-template-columns:1fr; padding:clamp(28px,4vw,48px) 0; }
@media(min-width:900px){ .dy-story{ grid-template-columns:1.1fr 1fr; gap:64px; } .dy-story.rev .dy-story-media{ order:2; } }
.dy-story-media{ border-radius:18px; overflow:hidden; background:var(--grey); aspect-ratio:5/4; }
.dy-story-media img{ width:100%; height:100%; object-fit:contain; }
.dy-story h3{ font-size:clamp(1.6rem,3vw,2.3rem); line-height:1.1; margin-bottom:14px; }
.dy-story p{ color:#4a4a4f; font-size:1.02rem; line-height:1.7; max-width:34em; }
.dy-story .dy-big{ display:block; font-size:clamp(2.6rem,5vw,3.8rem); font-weight:600; letter-spacing:-.04em; color:var(--navy); line-height:1; margin-bottom:16px; }
.dy-story .alink{ margin-top:18px; }

/* Profils */
.dy-prof{ display:grid; gap:16px; grid-template-columns:1fr; }
@media(min-width:900px){ .dy-prof{ grid-template-columns:repeat(3,1fr); } }
.dy-prof > div{ background:#fff; border-radius:14px; padding:28px; display:grid; gap:10px; align-content:start; }
.dy-prof b{ font-size:1.15rem; }
.dy-prof p{ color:#4a4a4f; font-size:.94rem; line-height:1.6; }
.dy-prof .btn{ justify-self:start; margin-top:8px; }

/* ---------- 11. Commande : parcours de paiement épuré ---------- */
body.dy-checkout .nav-links, body.dy-checkout .nav-burger{ display:none !important; }
.dy-co-help{ display:flex; align-items:center; gap:18px; font-size:.86rem; color:#3f3f45; }
.dy-co-help a{ font-weight:600; color:var(--l-ink); }
.dy-co-lock{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--l-ink); font-size:.9rem; }
.dy-co-lock svg{ width:16px; height:16px; stroke:var(--green-d); fill:none; stroke-width:2; }
@media(max-width:700px){ .dy-co-help .hide-s{ display:none; } }
body.dy-checkout{ background:var(--grey) !important; }
body.dy-checkout .page-head{ padding-top:calc(var(--nav-h) + 26px); }
body.dy-checkout .form-card{ background:#fff; border:0; border-radius:16px; }
body.dy-checkout .form-card:hover{ transform:none; box-shadow:none; }
body.dy-checkout .block-title{ border-top-color:rgba(0,0,0,.08); }
body.dy-checkout .block-title i{ background:var(--navy); border:0; color:#fff; border-radius:50%; }
body.dy-checkout .block-title h2{ font-size:1.25rem; }
body.dy-checkout .pick, body.dy-checkout .zone, body.dy-checkout .pay{ background:#fff; border:1.5px solid rgba(0,0,0,.15); border-radius:12px; }
body.dy-checkout .pick:hover, body.dy-checkout .zone:hover, body.dy-checkout .pay:hover{ transform:none; border-color:var(--l-ink); }
body.dy-checkout .pick.active, body.dy-checkout .zone.active, body.dy-checkout .pay.active{ border-color:var(--navy); box-shadow:0 0 0 1px var(--navy); background:#f7fbfe; }
body.dy-checkout .pick .tag{ border-radius:6px; background:#eef7fc; border-color:#bfe1f3; color:#0b4a6e; }
body.dy-checkout .profil-bar{ background:#eef7fc; border-color:#bfe1f3; border-radius:12px; }
body.dy-checkout .pb-pro{ color:var(--link); border-color:var(--link); border-radius:8px; }
body.dy-checkout .gate-card{ background:var(--grey); border:0; border-radius:12px; }
body.dy-checkout .price-unlock b{ color:var(--l-ink); }
body.dy-checkout .cart-item{ background:#fff; border:1.5px solid rgba(0,0,0,.1); border-radius:12px; }
body.dy-checkout .cart-item.on{ border-color:var(--navy); background:#f7fbfe; box-shadow:0 0 0 1px var(--navy); }
body.dy-checkout .cart-thumb{ background:var(--grey); border-radius:8px; }
body.dy-checkout .qty-stepper{ border-radius:8px; border-color:rgba(0,0,0,.18); background:#fff; }
body.dy-checkout .qty-stepper button:hover{ background:var(--grey); }
body.dy-checkout .cart-option{ border-radius:10px; }
body.dy-checkout .recap{ background:var(--navy); border:0; border-radius:16px; top:calc(var(--nav-h) + 18px); }
body.dy-checkout .recap:hover{ transform:none; }
body.dy-checkout .recap h3{ font-size:1.2rem; }
body.dy-checkout #submitBtn{ background:var(--navy); padding:18px; font-size:1.08rem; }
body.dy-checkout #submitBtn:hover{ background:#000; }

/* Barre d'étapes façon tunnel de paiement */
body.dy-checkout .steps{ gap:0; margin:22px 0 4px; max-width:640px; }
body.dy-checkout .step{ flex:1; flex-direction:column; align-items:flex-start; gap:8px; font-weight:600; font-size:.8rem; color:#8a8a91;
  border-top:3px solid rgba(0,0,0,.12); padding-top:10px; }
body.dy-checkout .step i{ display:none; }
body.dy-checkout .step.on{ color:var(--l-ink); border-top-color:var(--navy); }
body.dy-checkout .step-sep{ width:8px; background:none; }

/* Réassurance sous le récapitulatif */
.dy-co-assure{ margin-top:14px; display:grid; gap:10px; }
.dy-co-assure div{ display:flex; gap:10px; align-items:center; font-size:.84rem; color:#3f3f45; background:#fff; border-radius:10px; padding:12px 14px; }
.dy-co-assure svg{ width:20px; height:20px; flex:none; stroke:var(--navy); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* Pied de page court de la commande */
body.dy footer.dy-co-foot{ background:#fff; padding:22px 0; }
.dy-co-foot{ background:#fff; border-top:1px solid rgba(0,0,0,.08); padding:22px 0; font-size:.8rem; color:#55555b; }
.dy-co-foot .container{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; }
.dy-co-foot a{ cursor:pointer; color:#3f3f45; }
.dy-co-foot .chips .chip{ height:28px; font-size:.74rem; }

/* ---------- 12. Fiches produit ---------- */
body.dy .pp-hero-title{ color:var(--l-ink); }
body.dy .pp-keys li{ background:var(--grey); border:0; border-radius:6px; color:#2a2a30; }
body.dy .pp-promise{ color:#2a2a30; }
body.dy .pp-spec{ background:#fff; }
body.dy .pp-specs{ border-radius:12px; }
body.dy .pp-assure div{ background:var(--grey); border:0; border-radius:12px; }
body.dy .pp-assure b{ color:var(--l-ink); }
body.dy .pp-steps li{ border-radius:12px; }
body.dy .pp-benefit-media{ border-radius:14px; }
body.dy .pp-buybar{ top:var(--nav-h); bottom:auto; transform:translateY(-120%); border-top:0; border-bottom:1px solid var(--stroke); z-index:55; }
body.dy .pp-buybar.on{ transform:none; }
@media(max-width:700px){
  body.dy .pp-buybar{ top:auto; bottom:0; transform:translateY(110%); border-bottom:0; border-top:1px solid var(--stroke); }
  body.dy .pp-buybar.on{ transform:none; }
  body.dy .dy-foot-bar{ padding-bottom:76px; }
}

/* ---------- 13. Divers ---------- */
body.dy .preco-bar{ display:none; }
body.dy .wa-float{ bottom:22px; }
@media print{ .dy-util, .dy-mm-panel{ display:none; } }

/* Colonne de droite de la commande : récapitulatif + engagements, collée au défilement */
.dy-co-side{ position:sticky; top:calc(var(--nav-h) + 18px); align-self:start; }
body.dy-checkout .dy-co-side .recap{ position:static; }
@media(max-width:1039px){ .dy-co-side{ position:static; } }
body.dy.dy-checkout .recap.card{ background:var(--navy); border:0; color:var(--ink); }
body.dy.dy-checkout .recap.card:hover{ box-shadow:none; }
body.dy footer.dy-co-foot a{ display:inline; padding:0; }
body.dy-checkout #cmdForm > .hp-field + .block-title{ margin-top:0; padding-top:0; border-top:0; }
/* Ligne panier : vignette | infos | prix au-dessus du compteur */
body.dy-checkout .cart-item{ grid-template-columns:84px 1fr auto; grid-template-areas:"t i p" "t i a"; row-gap:10px; column-gap:18px; padding:16px; }
body.dy-checkout .cart-thumb{ grid-area:t; align-self:center; }
body.dy-checkout .cart-info{ grid-area:i; }
body.dy-checkout .cart-price{ grid-area:p; align-self:end; text-align:right; margin:0; }
body.dy-checkout .cart-actions{ grid-area:a; align-self:start; justify-content:flex-end; }
body.dy-checkout .cart-option{ grid-column:1 / -1; grid-row:auto; }
@media(max-width:560px){
  body.dy-checkout .cart-item{ grid-template-columns:64px 1fr; grid-template-areas:"t i" "p a"; }
  body.dy-checkout .cart-thumb{ width:64px; height:64px; }
  body.dy-checkout .cart-price{ text-align:left; align-self:center; }
}
body.dy-checkout #restWrap > .block-title:first-child{ margin-top:40px; padding-top:34px; border-top:1px solid rgba(0,0,0,.08); }
body.dy-checkout .co-prix{ color:var(--link); }
body.dy-checkout .cart-option.suggest, body.dy-checkout .cart-option:has(input:checked){ background:#eef7fc; border-color:#9fd2ef; }
/* Navigation : jamais sur deux lignes */
body.dy .nav-links > a, .dy-mm-btn, .dy-util nav a{ white-space:nowrap; }
@media(max-width:1240px){
  body.dy .nav-links > a, .dy-mm-btn{ padding:0 10px; font-size:.92rem; }
  body.dy .nav-links > a[href="/sav"]{ display:none; }
  .dy-util p span:nth-child(3){ display:none; }
}
@media(max-width:1080px){ body.dy .nav-links > a[href="/commande"]{ display:none; } }
/* Les photos produit (fond blanc) se fondent dans les fonds gris, comme chez Dyson */
.dy-sit-img img, body.dy .pcard-media img, .dy-story-media img, .dy-mm-img img, body.dy .gallery-main img,
body.dy .gallery-thumbs img, body.dy .pp-benefit-media img, body.dy .cart-thumb img, body.dy .mobile-menu .mm-prod img{ mix-blend-mode:multiply; }
/* Contrastes sur fond clair */
body.dy.theme-dark{ --cyan-2:#0a84d6; }
body.dy .navy, body.dy .sec-dark, body.dy .sec-deep, body.dy .recap, body.dy .pp-buybar, body.dy .exit-card, body.dy .wa-help, body.dy .dy-util{ --cyan-2:#4fc9f5; }
body.dy .cutoff{ color:#1b6b4a; background:#eafaf3; border-color:#b7e6d2; }
body.dy .navy .cutoff, body.dy .sec-deep .cutoff{ color:#c9f5e4; background:rgba(46,230,168,.1); border-color:rgba(46,230,168,.3); }
body.dy .prod-badges .pbadge:first-child{ color:#0f7a4d !important; background:#eafaf3 !important; border-color:#b7e6d2 !important; }
body.dy .pp-buybar{ background:var(--navy); -webkit-backdrop-filter:none; backdrop-filter:none; }
/* Formulaires SAV et distributeur : carte latérale claire */
body.dy .side-card{ background:var(--grey) !important; border:0 !important; border-radius:14px; }
body.dy .form-card{ border-radius:16px; }
body.dy .sav-ok{ background:#eafaf3; border-color:#b7e6d2; color:#1b5a41; }
@media(min-width:700px){ body.dy .pp-spec:last-child:nth-child(odd){ grid-column:1 / -1; } }

/* Accueil : le logo AQUALIS reste le titre principal */
.dy-hero h1.dy-hero-logo{ max-width:none; margin:4px auto 0; }
.dy-hero-logo img{ width:min(460px,72vw); height:auto; margin:0 auto; animation:fadeSlideUp .9s var(--ease) both; }

/* Cartes et éléments posés sur une bande marine (page de confirmation) */
body.dy .navy .card{ background:linear-gradient(160deg, var(--panel-2), var(--panel)); border-color:var(--stroke); color:var(--ink); }
body.dy .merci{ padding-top:calc(var(--nav-h) + 50px); }
/* Barre d'achat sur mobile : les boutons flottants remontent au-dessus */
@media(max-width:700px){
  body.dy .pp-buybar.on ~ .wa-float{ bottom:84px; }
  body.dy .pp-buybar.on ~ .lang-float{ bottom:84px; }
}
/* Bouton flottant « Commande express » : redondant avec l'en-tête et la barre d'achat */
body.dy .exp-fab{ display:none !important; }

/* Finitions : pas de retour à la ligne dans les liens fléchés, pastilles et boutons du héros */
body.dy .alink{ white-space:nowrap; }
body.dy p .alink, body.dy li .alink{ display:inline; }
body.dy .pcard-specs em{ white-space:nowrap; }
body.dy .hero-ctas .btn{ white-space:nowrap; }
@media(max-width:1100px){ .dy-util p span:nth-child(2){ display:none; } }
