/*
Theme Name: DCS – Deep Cleaning Services
Theme URI: https://dcsinternational.net/
Author: MARAMEDIA
Author URI: https://maramedia.pro
Description: Thème sur mesure pour Deep Cleaning Services (DCS) : nettoyage résidentiel et commercial, pressing, laverie et blanchisserie. Page d'accueil animée, tarifs en onglets, témoignages, partenaires, FAQ, vidéo en parallaxe et devis par WhatsApp. Les données de démonstration s'importent à l'activation.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dcs
*/
:root{--bg:#f3f8fb;--surface:#fff;--ink:#0b2540;--muted:#516a80;--brand:#0a6cb8;--teal:#1fb5a4;--pop:#ffd23f;--line:#d6e3ec;--onbrand:#fff;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#08182a;--surface:#0f2740;--ink:#eaf3fb;--muted:#9db6cb;--brand:#4aa8ec;--line:#1e3a57;--onbrand:#06182a}}
:root[data-theme="dark"]{--bg:#08182a;--surface:#0f2740;--ink:#eaf3fb;--muted:#9db6cb;--brand:#4aa8ec;--line:#1e3a57;--onbrand:#06182a}
html{scroll-padding-top:calc(76px + env(safe-area-inset-top,0px));scroll-behavior:smooth}
*,*:before,*:after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16.5px/1.65 "Plus Jakarta Sans",system-ui,sans-serif}
h1,h2,h3{text-wrap:balance;font-family:"Plus Jakarta Sans",system-ui,sans-serif;line-height:1.12;margin:0;letter-spacing:-.03em}
h1{font-size:clamp(2.2rem,5.8vw,3.9rem);font-weight:800}
h2{font-size:clamp(1.7rem,3.6vw,2.4rem);font-weight:700}
h3{font-size:1.2rem;font-weight:700;letter-spacing:-.015em}
p{margin:0}a{color:inherit}
:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
section{padding:72px 0}
.alt{background:color-mix(in srgb,var(--brand) 6%,var(--bg))}
.top{background:#0b2540;color:#d3e4f2;font-size:.9rem;padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.top a{color:var(--pop);font-weight:600;text-decoration:none}
@media(max-width:640px){.top .wrap{justify-content:center;text-align:center}}
header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header:after{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:var(--sp,0%);background:linear-gradient(90deg,var(--brand),var(--teal))}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo img{height:46px;display:block;background:#fff;border-radius:10px;padding:3px 8px}
nav{display:flex;gap:22px;align-items:center}
nav a{text-decoration:none;font-weight:500;color:var(--muted)}nav a:hover{color:var(--ink)}
.btn{position:relative;overflow:hidden;display:inline-block;background:var(--brand);color:var(--onbrand);font-weight:600;text-decoration:none;padding:13px 24px;border-radius:999px;border:0;font:600 1rem "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer;transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -8px var(--brand)}
.btn:after{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,#fff6,transparent);transform:skewX(-20deg)}
.btn:hover:after{left:130%;transition:left .7s}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn.pop{background:var(--pop);color:#0b2540}
nav .btn{padding:9px 18px}
@media(max-width:860px){nav a:not(.btn){display:none}}
main{position:relative;isolation:isolate;overflow-x:clip}
.blobs{position:absolute;inset:0 0 auto 0;height:760px;overflow:hidden;z-index:-1;pointer-events:none}
.blobs i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;animation:drift 16s ease-in-out infinite alternate}
.blobs i:nth-child(1){width:420px;height:420px;background:var(--brand);top:-120px;left:-80px}
.blobs i:nth-child(2){width:340px;height:340px;background:var(--pop);top:60px;right:-60px;animation-duration:20s;opacity:.4}
.blobs i:nth-child(3){width:300px;height:300px;background:var(--teal);top:380px;left:38%;animation-duration:24s;opacity:.35}
@keyframes drift{to{transform:translate(70px,50px) scale(1.18)}}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center;padding:56px 0 72px}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:36px}}
h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
h1 .w span{display:inline-block;transform:translateY(115%);animation:up .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*70ms + 150ms)}
@keyframes up{to{transform:none}}
.lead{font-size:1.12rem;color:var(--muted);margin:20px 0 28px;max-width:34em}
.hero .lead,.hero .cta{opacity:0;animation:fade .9s ease forwards}
.hero .lead{animation-delay:.9s}.hero .cta{animation-delay:1.1s}
@keyframes fade{to{opacity:1}}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.collage{position:relative;padding:0 0 46px 34px}
.collage .big{width:100%;aspect-ratio:4/3.3;object-fit:cover;border-radius:24px;display:block;box-shadow:0 30px 60px -28px #0a6cb8}
.collage .small{position:absolute;left:0;bottom:0;width:38%;aspect-ratio:3/4;object-fit:cover;border-radius:18px;border:5px solid var(--bg);transform:rotate(-4deg);box-shadow:0 18px 36px -18px #000a;transition:transform .5s}
.collage:hover .small{transform:rotate(0) scale(1.04)}
.chip{position:absolute;right:14px;top:14px;background:var(--pop);color:#0b2540;font-weight:600;font-size:.9rem;padding:8px 14px;border-radius:999px;animation:bob 3.4s ease-in-out infinite alternate}
@keyframes bob{to{transform:translateY(-8px)}}
.marq{overflow:hidden;background:#0b2540;color:#eaf3fb;padding:18px 0;transform:rotate(-1deg);margin:8px -20px}
.marq div{display:flex;width:max-content;animation:scroll 34s linear infinite}
.marq span{font:700 1.35rem "Plus Jakarta Sans",system-ui,sans-serif;white-space:nowrap;padding-right:34px}
.marq span:before{content:"✦";color:var(--pop);margin-right:34px}
@keyframes scroll{to{transform:translateX(-50%)}}
.head{max-width:38em;margin-bottom:40px}.head p{color:var(--muted);margin-top:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:800px){.two{grid-template-columns:1fr}}
.pillar{position:relative;border-radius:26px;overflow:hidden;min-height:340px;padding:32px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;color:#fff;transition:transform .35s}
.pillar:hover{transform:translateY(-6px)}
.pillar.a{background:linear-gradient(0deg,#0b2540f0 8%,#0b254055 70%),var(--hero) center/cover}
.pillar.b{background:linear-gradient(140deg,#0a6cb8,#1fb5a4)}
.pillar p{color:#e4eff8;max-width:26em}
.pillar .big{font:800 clamp(2.4rem,6vw,3.4rem) "Plus Jakarta Sans",system-ui,sans-serif;line-height:1}
.pillar .btn{align-self:flex-start;margin-top:6px}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:800px){.pgrid{grid-template-columns:1fr 1fr}}
.pt{background:#fff;border:1px solid var(--line);border-radius:20px;aspect-ratio:3/2;display:grid;place-items:center;padding:22px 26px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.pt:hover{transform:translateY(-6px);box-shadow:0 22px 40px -24px color-mix(in srgb,var(--brand) 70%,#000)}
.pt img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.js .pt.rv.in:hover{transform:translateY(-6px)}
.addr{font-style:normal;color:var(--muted);margin:14px 0 26px;display:grid;gap:2px}
.addr strong{color:var(--ink);font-size:1.05rem;margin-bottom:4px}
.addr a{color:var(--brand);font-weight:600;text-decoration:none;margin-top:8px}
.addr a+a{margin-top:0}
.mapg{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center}
@media(max-width:860px){.mapg{grid-template-columns:1fr}}
.mapbox{position:relative;aspect-ratio:16/11;border-radius:26px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -34px #0a6cb8}
.mapbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mapcard{position:absolute;inset:0;display:block;text-decoration:none;color:#0b2540;background-color:#e7f0f4;background-image:linear-gradient(90deg,transparent 46%,#fff 46% 50%,transparent 50%),linear-gradient(0deg,transparent 62%,#fff 62% 66%,transparent 66%),linear-gradient(0deg,transparent 22%,#fff 22% 24%,transparent 24%),linear-gradient(90deg,transparent 78%,#fff 78% 80%,transparent 80%),linear-gradient(28deg,transparent 58%,#cfe6d2 58% 78%,transparent 78%),linear-gradient(115deg,transparent 72%,#bcdcf0 72%)}
.pin{position:absolute;left:48%;top:44%;width:38px;height:38px;background:#ea4335;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 8px 16px -6px #0008;animation:drop 1.8s ease-in-out infinite alternate}
.pin:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff}
.pin:before{content:"";position:absolute;left:2px;bottom:-26px;width:38px;height:12px;border-radius:50%;background:#0b254033;transform:rotate(45deg) scaleX(.9)}
@keyframes drop{to{transform:rotate(-45deg) translate(6px,-6px)}}
.mlabel{position:absolute;left:18px;bottom:18px;background:#fff;border-radius:14px;padding:12px 16px;font-weight:700;box-shadow:0 10px 24px -12px #0006;display:grid;line-height:1.3}
.mlabel small{font-weight:600;color:#0a6cb8}
.vband{position:relative;overflow:hidden;color:#fff;padding:104px 0;isolation:isolate;background:#0b2540}
.vbg{position:absolute;inset:-26% 0;z-index:-2;background:var(--hero) 50% 40%/cover;will-change:transform}
.vband:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,#0b2540f2 8%,#0b2540b3 55%,#0a6cb888)}
.vg{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
@media(max-width:860px){.vg{grid-template-columns:1fr;gap:32px}.vband{padding:72px 0}}
.vband h2{color:#fff}.vband p.vt{color:#d3e4f2;margin:16px 0 26px;max-width:30em}
.btn.wg{background:transparent;color:#fff;border:1.5px solid #ffffffaa}
.vposter{position:relative;width:100%;aspect-ratio:16/10;border:1px solid #ffffff55;border-radius:24px;overflow:hidden;cursor:pointer;padding:0;background:linear-gradient(180deg,#0b254011,#0b254099),var(--hero) 50% 28%/cover;box-shadow:0 34px 70px -30px #000;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.vposter:hover{transform:scale(1.025)}
.vposter .cap{position:absolute;left:20px;bottom:16px;color:#fff;font:600 .98rem "Plus Jakarta Sans",system-ui,sans-serif;text-shadow:0 1px 8px #0009}
.play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:#fff;animation:ring 2.4s infinite}
.play:after{content:"";position:absolute;left:33px;top:25px;border-left:26px solid #0a6cb8;border-top:17px solid transparent;border-bottom:17px solid transparent}
@keyframes ring{0%{box-shadow:0 0 0 0 #ffffff88}100%{box-shadow:0 0 0 26px #fff0}}
.vd{border:0;padding:0;background:#000;border-radius:20px;width:min(960px,94vw);overflow:visible;color:#fff}
.vd::backdrop{background:#04101dd9;backdrop-filter:blur(6px)}
.vf{aspect-ratio:16/9;border-radius:20px 20px 0 0;overflow:hidden;background:#000}
.vf iframe{width:100%;height:100%;border:0;display:block}
.vfb{padding:12px 18px;font-size:.9rem;color:#b9cde0}.vfb a{color:var(--pop);font-weight:600}
.vx{position:absolute;right:-12px;top:-12px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#0b2540;font-size:1.5rem;line-height:1;cursor:pointer;z-index:2}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:860px){.tgrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:14px;margin-inline:-20px;padding-inline:20px;scroll-padding-inline:20px}.tc{scroll-snap-align:start}}
.tc{margin:0;position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px 26px;display:flex;flex-direction:column;gap:16px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.tc:hover{transform:translateY(-6px);box-shadow:0 24px 46px -26px color-mix(in srgb,var(--brand) 70%,#000)}
.js .tc.rv.in:hover{transform:translateY(-6px)}
.tc:after{content:"\201D";position:absolute;right:16px;bottom:-34px;font:800 9rem/1 "Plus Jakarta Sans",sans-serif;color:var(--brand);opacity:.08;pointer-events:none}
.st{color:#ff7a1a;font-size:1.25rem;letter-spacing:3px;line-height:1}
.st span{color:var(--line)}
.tc blockquote{margin:0;flex:1;font-size:1.02rem;line-height:1.65}
.tc figcaption{display:flex;align-items:center;gap:12px}
.tc figcaption span:last-child{display:grid;line-height:1.3}
.tc small{color:var(--muted);font-size:.88rem}
.av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--teal));color:#fff;font-weight:700}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid3{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.panel:hover{transform:translateY(-8px);box-shadow:0 26px 50px -24px color-mix(in srgb,var(--brand) 70%,#000)}
.card{display:flex;flex-direction:column;overflow:hidden}
.cimg{position:relative;aspect-ratio:1/.85;overflow:hidden}
.cimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.card:hover .cimg img{transform:scale(1.07)}
.cimg .badge{position:absolute;left:14px;top:14px;background:#fff;color:var(--brand)}
.cimg .badge.c{background:var(--pop);color:#0b2540}
.cb{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.card p{color:var(--muted);flex:1}
.badge{align-self:flex-start;font-size:.8rem;font-weight:600;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand)}
.badge.c{background:var(--pop);color:#0b2540}
.more{font-weight:600;color:var(--brand);text-decoration:none;margin-top:6px}
.more:after{content:" ›";transition:margin .25s}.more:hover:after{margin-left:6px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.tabs button{font:600 1rem "Plus Jakarta Sans",system-ui,sans-serif;padding:10px 20px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:all .25s}
.tabs button[aria-selected=true]{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.tp{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:12px 28px;animation:fade .5s ease both}
.tp[hidden]{display:none}
.pl{list-style:none;margin:0;padding:0;columns:2;column-gap:48px}
@media(max-width:720px){.pl{columns:1}}
.pl li{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px dashed var(--line);break-inside:avoid}
.pl b{font-weight:600;white-space:nowrap;color:var(--brand)}
.note{font-size:.9rem;color:var(--muted)}
.tnote{margin-top:16px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:s}
@media(max-width:800px){.steps{grid-template-columns:1fr}}
.step{border-top:3px solid var(--brand);padding-top:18px}
.step:before{counter-increment:s;content:counter(s);display:inline-block;font:800 2.4rem "Plus Jakarta Sans",system-ui,sans-serif;color:var(--brand)}
.step.in:before{animation:pop .7s .3s cubic-bezier(.3,1.6,.5,1) backwards}
@keyframes pop{from{transform:scale(0) rotate(-40deg)}}
.step p{color:var(--muted);margin-top:8px}
.whyg{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
@media(max-width:860px){.whyg{grid-template-columns:1fr}}
.tm{margin:0;position:relative;border-radius:26px;overflow:hidden}
.tm img{width:100%;max-height:600px;object-fit:cover;object-position:50% 30%;display:block}
.tm figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;color:#fff;font-weight:600;background:linear-gradient(0deg,#0b2540e6,transparent)}
.why{display:grid;gap:14px}
.why>div{padding:20px 22px;border-radius:18px;background:var(--surface);border:1px solid var(--line);transition:transform .3s,border-color .3s}
.why>div:hover{transform:translateX(6px);border-color:var(--brand)}
.why p{color:var(--muted);margin-top:4px;font-size:.98rem}
.faq{max-width:760px;display:grid;gap:12px}
details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0 22px;transition:border-color .3s}
details[open]{border-color:var(--brand)}
summary{cursor:pointer;font-weight:600;padding:18px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";font-size:1.5rem;line-height:1;color:var(--brand);transition:transform .3s}
details[open] summary:after{transform:rotate(45deg)}
details p{color:var(--muted);padding-bottom:18px;animation:fade .5s ease both}
.quote{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:40px;display:grid;grid-template-columns:1fr 1.1fr;gap:40px}
@media(max-width:860px){.quote{grid-template-columns:1fr;padding:26px}}
.quote:before{content:"";position:absolute;width:300px;height:300px;right:-90px;top:-90px;border-radius:50%;background:var(--pop);opacity:.35;filter:blur(50px);animation:drift 12s ease-in-out infinite alternate}
.quote>*{position:relative}.quote>div>p{color:var(--muted);margin-top:14px}
.tels{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.tels a{font-weight:600;text-decoration:none;padding:8px 16px;border-radius:999px;border:1.5px solid var(--line)}
form{display:grid;gap:14px}
label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
input[type=text],input[type=tel],select,textarea{font:inherit;padding:12px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 25%,transparent)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.f2{grid-template-columns:1fr}}
.btn.wab{background:#25b866;color:#fff}
footer{background:#0b2540;color:#c4d6e6;padding:40px 0 48px;font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:center}
footer img{height:48px;background:#fff;border-radius:10px;padding:4px 10px}
.fbot{margin-top:28px;padding-top:20px;border-top:1px solid #ffffff22;font-size:.88rem;color:#9db6cb}
footer .fbot a{font-weight:700}
.fad{font-style:normal;line-height:1.8}
footer a{color:var(--pop);text-decoration:none;font-weight:600}
.wa{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;background:#25b866;color:#fff;font-weight:600;text-decoration:none;padding:14px 22px;border-radius:999px;box-shadow:0 10px 26px -8px #25b866;animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 12px #25b86622}}
.js .rv{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
.js .panel.rv.in:hover{transform:translateY(-8px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .rv,h1 .w span,.hero .lead,.hero .cta{opacity:1;transform:none}}
/* ===== Thème WordPress : compléments ===== */
nav .menu{display:flex;gap:22px;align-items:center;list-style:none;margin:0;padding:0}
nav .menu li{margin:0}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#0b2540;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
.entry-wrap{padding:56px 0 80px}
.entry{max-width:760px}
.entry h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:24px}
.entry-content>*+*{margin-top:1.1em}
.entry-content a{color:var(--brand)}
.entry-content img{max-width:100%;height:auto;border-radius:16px}
.cimg img{display:block}
.pt a{display:grid;place-items:center;width:100%;height:100%}
.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.admin-bar header{top:32px}
@media(max-width:782px){.admin-bar header{top:46px}}


/* ===== Interactivité v2 ===== */
.menu a.active,nav a.active:not(.btn){color:var(--ink);box-shadow:inset 0 -2px 0 var(--brand)}
.needs{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px;opacity:0;animation:fade .9s 1.35s ease forwards}
.needs b{width:100%;font-weight:600;font-size:.92rem;color:var(--muted)}
.chipb,.flt button{font:600 .95rem "Plus Jakarta Sans",system-ui,sans-serif;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:transform .25s,border-color .25s,background .25s,color .25s}
.chipb:hover,.flt button:hover{border-color:var(--brand);transform:translateY(-2px)}
.flt{display:flex;gap:8px;flex-wrap:wrap;margin:-12px 0 26px}
.flt button[aria-pressed=true]{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.card[hidden]{display:none}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:#0b2540;color:#fff;padding:12px 20px;border-radius:999px;font-weight:600;font-size:.95rem;opacity:0;pointer-events:none;transition:all .35s;z-index:40;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.mbar{display:none}
@media(max-width:700px){
.mbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;padding:8px;border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:0 16px 40px -14px #000a;transform:translateY(140%);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.mbar.on{transform:none}
.mbar a{text-align:center;text-decoration:none;font-weight:700;font-size:.92rem;padding:11px 8px;border-radius:999px;background:var(--bg);color:var(--ink)}
.mbar a:first-child{background:var(--brand);color:var(--onbrand)}
.mbar a.g{background:#25b866;color:#fff}
.mb-on .wa{display:none}
footer{padding-bottom:96px}
.toast{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.needs{opacity:1}}

/* ===== Commande interactive v3 ===== */
.ordr{margin-top:28px;display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:start}
@media(max-width:900px){.ordr{grid-template-columns:1fr}}
.odc,.odo{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px 26px}
.odo{position:sticky;top:92px;display:grid;gap:14px}
@media(max-width:900px){.odo{position:static}.odc,.odo{padding:20px 16px}}
.odc h3,.odo h3{font-size:1.3rem}
.odcnt{font-weight:600;color:var(--brand);font-size:1rem}
.odq{display:block;margin-top:14px}
.odq input{width:100%;font:inherit;padding:12px 14px 12px 44px;border-radius:14px;border:1.5px solid var(--line);color:var(--ink);background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%238a9aa8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='m13 13 4 4'/%3E%3C/svg%3E") no-repeat 15px center}
.odq input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 25%,transparent)}
.odf.flt{margin:14px 0 6px}
.odl{max-height:440px;overflow-y:auto;scrollbar-width:thin;padding-right:4px}
.odl h4{position:sticky;top:0;z-index:1;background:var(--surface);margin:0;padding:12px 0 6px;font:700 .8rem "Plus Jakarta Sans",system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}
.odrow{display:flex;align-items:center;gap:6px;border-radius:14px;transition:background .25s}
.odrow.on{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.oda{flex:1;display:grid;text-align:left;background:none;border:0;color:inherit;font:inherit;padding:11px 12px;cursor:pointer;border-radius:14px;line-height:1.3}
.oda:hover{background:color-mix(in srgb,var(--brand) 7%,transparent)}
.odn{font-weight:600}
.oda small{color:var(--muted);font-size:.85rem}
.odp{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--brand);color:var(--brand);font-weight:700;margin-right:8px;flex:none}
.ods{display:flex;align-items:center;gap:4px;margin-right:6px;flex:none}
.ods button{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font-size:1.15rem;line-height:1;cursor:pointer;transition:transform .15s,background .2s}
.ods button:hover{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.ods button:active{transform:scale(.88)}
.ods output{min-width:52px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.odb{display:grid;gap:8px;max-height:300px;overflow-y:auto;scrollbar-width:thin}
.odln{display:grid;gap:6px;padding:10px 12px;border-radius:14px;background:var(--bg)}
.odlt{display:flex;justify-content:space-between;gap:10px;font-weight:600}
.odlt b{color:var(--brand);white-space:nowrap}
.odlc{display:flex;justify-content:space-between;align-items:center;gap:8px}
.odlc .ods{margin:0}
.odx,.clr{background:none;border:0;color:var(--muted);font:600 .88rem "Plus Jakarta Sans",system-ui,sans-serif;text-decoration:underline;cursor:pointer;padding:6px}
.odx:hover,.clr:hover{color:var(--ink)}
.clr{justify-self:start}
.odem{text-align:center;color:var(--muted);padding:22px 10px;border:1.5px dashed var(--line);border-radius:16px}
.odt{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;border-top:1px dashed var(--line);padding-top:14px}
.odt b{font:800 1.8rem "Plus Jakarta Sans",system-ui,sans-serif;color:var(--brand);display:inline-block}
.bump{animation:bump .35s}
@keyframes bump{40%{transform:scale(1.12)}}
.odfm{display:grid;gap:10px}
.odfm small{font-weight:400;color:var(--muted)}
.odo .btn.wab:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.odbar{display:none}
@media(max-width:900px){.odbar:not([hidden]){display:flex;position:sticky;bottom:84px;z-index:5;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:8px 8px 8px 18px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;box-shadow:0 14px 30px -12px #000a}
.odbar button{background:var(--pop);color:#0b2540;border:0;border-radius:999px;padding:10px 16px;font:700 .9rem "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer}}

/* ===== Commande v3 ===== */
.oc{margin-top:28px;display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}
@media(max-width:900px){.oc{grid-template-columns:1fr}}
.oc-main,.oc-cart{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px}
.oc-cart{position:sticky;top:calc(88px + env(safe-area-inset-top,0px));display:grid;gap:12px}
@media(max-width:900px){.oc-cart{position:static}.oc-main,.oc-cart{padding:18px 16px}}
.oc h3{font-size:1.3rem}
.ocount{color:var(--brand)}
.osr{width:100%;margin-top:14px;font:inherit;padding:12px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
.osr:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 25%,transparent)}
.otabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.otabs button{font:600 .95rem "Plus Jakarta Sans",system-ui,sans-serif;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;transition:all .25s}
.otabs button[aria-pressed=true]{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.ol{display:grid;gap:8px;max-height:480px;overflow-y:auto;padding-right:4px;scrollbar-width:thin}
.orow,.oli{display:flex;justify-content:space-between;align-items:center;gap:12px}
.orow{padding:12px 14px;border:1.5px solid var(--line);border-radius:16px;background:var(--bg);transition:border-color .25s,background .25s}
.orow[hidden]{display:none}
.orow.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--bg))}
.orow .cs{display:none}.orow.on .cs{display:flex}.orow.on .oadd{display:none}
.oadd{font:700 .92rem "Plus Jakarta Sans",system-ui,sans-serif;padding:9px 16px;border-radius:999px;border:0;background:var(--brand);color:var(--onbrand);cursor:pointer;white-space:nowrap;transition:transform .2s}
.oadd:hover{transform:translateY(-2px)}.oadd:active{transform:scale(.94)}
.cn{display:grid;line-height:1.3}.cn small{color:var(--muted);font-size:.85rem}
.cs{display:flex;align-items:center;gap:6px}
.cs button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer;transition:transform .15s,background .2s}
.cs button:hover{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.cs button:active{transform:scale(.88)}
.cs output{min-width:50px;text-align:center;font-weight:700}
.cs .orm{border-color:transparent;color:var(--muted);font-size:1.4rem}
.ocl{display:grid;max-height:300px;overflow-y:auto;scrollbar-width:thin}
.oli{padding:10px 0;border-bottom:1px dashed var(--line)}
.oli .cn b{color:var(--ink)}
.oempty{color:var(--muted);text-align:center;padding:18px 10px;border:1.5px dashed var(--line);border-radius:16px;line-height:1.5}
.ct{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;border-top:1px dashed var(--line);padding-top:14px}
.ct b{font:800 1.7rem "Plus Jakarta Sans",system-ui,sans-serif;color:var(--brand);display:inline-block}
.ct b.bump{animation:bump .4s ease}
@keyframes bump{40%{transform:scale(1.12)}}
.oc-cart label{gap:4px}
input[aria-invalid=true]{border-color:#d93025!important}
.oerr{color:#d93025;font-weight:600;font-size:.92rem;min-height:1.2em}
.oc-cart .btn.wab{width:100%;text-align:center}
.olink{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font:inherit;font-size:.92rem;justify-self:center}
.obar{display:none}
@media(max-width:900px){
.obar{position:fixed;left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:29;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#0b2540;color:#fff;padding:10px 10px 10px 20px;border-radius:999px;box-shadow:0 14px 34px -12px #000b;transform:translateY(220%);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.obar.on{transform:none}
.obar span{display:grid;line-height:1.25}.obar small{color:#ffd23f;font-weight:700}
.obar button{border:0;border-radius:999px;background:#ffd23f;color:#0b2540;font:700 .92rem "Plus Jakarta Sans",system-ui,sans-serif;padding:11px 18px;cursor:pointer}}
