/* ==========================================================================
   Outils par pays + page « Nos offres »
   ========================================================================== */

/* ---------- Bouton du menu ---------- */
.nav-button.nav-offres{background:var(--orange)!important;color:#fff!important;position:relative;overflow:hidden}
.nav-button.nav-offres:hover{background:var(--ink)!important}
.nav-button.nav-offres:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#ffffff66 50%,transparent 65%);transform:translateX(-120%);animation:of-shine 3.5s ease-in-out infinite}
@keyframes of-shine{55%,100%{transform:translateX(120%)}}

/* ---------- Sélecteur de pays des outils ---------- */
.tools-country{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 14px}
.tools-country a{text-decoration:none;color:var(--ink);border:1.5px solid var(--ink);border-radius:999px;padding:8px 14px;font-weight:600;font-size:.88rem;transition:background .2s,color .2s,transform .2s}
.tools-country a:hover{transform:translateY(-2px)}
.tools-country a.on{background:var(--ink);color:var(--bg);box-shadow:3px 3px 0 var(--orange)}
.t2w-city-ph{display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),#123447);color:#fff;min-height:170px}
.t2w-city-ph span{font:400 2.2rem/1 var(--f-poster);letter-spacing:.04em;opacity:.9}
.compare-card .gp-climate{margin:10px 0}
.t2w-map svg{width:100%;height:auto;display:block}
.t2w-land{fill:color-mix(in srgb,var(--blue) 18%,var(--surface));stroke:var(--blue);stroke-width:1.2;stroke-linejoin:round;animation:of-draw 1.2s ease both}
@keyframes of-draw{from{opacity:0;transform:scale(.96)}}
.t2w-pin{cursor:pointer;animation:of-pin .6s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d)}
.t2w-pin circle{fill:var(--orange);stroke:#fff;stroke-width:2}
.t2w-pin .halo{fill:#d4552b33;stroke:none;animation:of-halo 2s ease-out infinite}
.t2w-pin text{font:700 15px var(--f-body);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:4px}
.t2w-pin.on circle:not(.halo){fill:var(--ink)}
.t2w-pin:focus{outline:none}.t2w-pin:focus-visible text{text-decoration:underline}
@keyframes of-pin{from{opacity:0;transform:translateY(-20px)}}
@keyframes of-halo{from{r:7;opacity:1}to{r:22;opacity:0}}
.t2w-guides{display:grid;gap:34px;padding-bottom:80px}
.t2w-guide-row h2{font-family:var(--f-display);font-weight:500;font-size:1.7rem;margin:0 0 12px}

/* ---------- Offres ---------- */
.of-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;padding-top:clamp(30px,6vw,70px);padding-bottom:30px}
.of-hero h1{font-size:clamp(2.8rem,6.5vw,5.8rem)!important;line-height:.98!important;margin:18px 0!important}
.of-hero p{font-size:1.1rem;color:var(--muted);max-width:560px}
.of-stamps{position:relative;height:340px}
.of-stamps span{position:absolute;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;color:var(--c);border:3px solid currentColor;outline:1.5px dashed currentColor;outline-offset:-10px;background:var(--surface);font-size:2.2rem;
  box-shadow:0 10px 24px -12px #0005;animation:of-stamp .7s cubic-bezier(.2,1.6,.4,1) both,of-bob 5s ease-in-out infinite;animation-delay:calc(var(--i) * 160ms),calc(var(--i) * .7s)}
.of-stamps span b{font:400 .8rem/1.1 var(--f-poster);letter-spacing:.06em;text-transform:uppercase;margin-top:4px;max-width:100px}
.of-stamps span:nth-child(1){left:2%;top:2%;rotate:-12deg}.of-stamps span:nth-child(2){left:36%;top:12%;rotate:9deg}.of-stamps span:nth-child(3){left:70%;top:0;rotate:-4deg}.of-stamps span:nth-child(4){left:6%;top:56%;rotate:14deg}.of-stamps span:nth-child(5){left:40%;top:60%;rotate:6deg}.of-stamps span:nth-child(6){left:72%;top:50%;rotate:-8deg}
@keyframes of-stamp{0%{transform:scale(2.6);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes of-bob{50%{translate:0 -8px}}
.of-section{padding-top:70px}
.of-guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.of-book{background:var(--surface);border:1.5px solid var(--ink);border-radius:18px;overflow:hidden;box-shadow:6px 6px 0 var(--ink);display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .4s}
.of-book:hover{box-shadow:9px 9px 0 var(--orange)}
.of-cover{position:relative;background:var(--c,#1b2433);color:#fff;padding:26px 22px 22px;min-height:190px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.of-cover:before{content:"";position:absolute;left:14px;top:0;bottom:0;width:6px;background:#0002;box-shadow:4px 0 0 #ffffff1a}
.of-cover:after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;border:2px dashed #ffffff44}
.of-cover span{position:absolute;right:22px;top:20px;font-size:2.6rem;animation:of-bob 4s ease-in-out infinite}
.of-cover small{letter-spacing:.2em;font-size:.65rem;opacity:.85}
.of-cover b{font-family:var(--f-display);font-weight:500;font-size:1.9rem;line-height:1.05}
.of-cover i{font-family:var(--f-hand);font-size:1.2rem;opacity:.85}
.of-pack .of-cover{background:linear-gradient(135deg,#1b2433,#1f5f7a 55%,#d4552b)}
.of-book ul{list-style:none;margin:0;padding:16px 20px 6px;display:grid;gap:6px;flex:1}
.of-book li,.of-tier li{position:relative;padding-left:24px;font-size:.92rem}
.of-book li:before,.of-tier li:before{content:"✓";position:absolute;left:0;top:0;color:#2d7a4f;font-weight:700}
.of-buy{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px 20px}
.of-buy strong,.of-tier>strong{font:400 1.9rem/1 var(--f-poster);letter-spacing:.02em}
.of-buy s{color:var(--muted)}
.of-buy .btn{margin-left:auto}
.of-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.of-tier{position:relative;background:var(--surface);border:1.5px solid var(--ink);border-radius:22px;padding:28px 24px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:6px 6px 0 var(--ink);transition:transform .4s cubic-bezier(.16,1,.3,1)}
.of-tier:hover{transform:translateY(-6px)}
.of-tier.hot{background:var(--ink);color:var(--bg);transform:scale(1.03);box-shadow:8px 8px 0 var(--orange)}
.of-tier.hot:hover{transform:scale(1.03) translateY(-6px)}
.of-tier.hot li:before{color:var(--sun)}
.of-tier h3{font-family:var(--f-display);font-weight:500;font-size:1.8rem;margin:0}
.of-tag{align-self:flex-start;font-family:var(--f-hand);font-size:1.25rem;color:var(--orange);transform:rotate(-2deg)}
.of-tier.hot .of-tag{color:var(--sun)}
.of-tier ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;flex:1}
.of-tier li.of-contact{font-weight:700}
.of-tier li.of-contact:before{content:"";background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22icon%20icon-tabler%20icons-tabler-outline%20icon-tabler-map-pin%22%20%3E%20%3Cpath%20stroke%3D%22none%22%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%20/%3E%20%3Cpath%20d%3D%22M9%2011a3%203%200%201%200%206%200a3%203%200%200%200%20-6%200%22%20/%3E%20%3Cpath%20d%3D%22M17.657%2016.657l-4.243%204.243a2%202%200%200%201%20-2.827%200l-4.244%20-4.243a8%208%200%201%201%2011.314%200%22%20/%3E%20%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22icon%20icon-tabler%20icons-tabler-outline%20icon-tabler-map-pin%22%20%3E%20%3Cpath%20stroke%3D%22none%22%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%20/%3E%20%3Cpath%20d%3D%22M9%2011a3%203%200%201%200%206%200a3%203%200%200%200%20-6%200%22%20/%3E%20%3Cpath%20d%3D%22M17.657%2016.657l-4.243%204.243a2%202%200%200%201%20-2.827%200l-4.244%20-4.243a8%208%200%201%201%2011.314%200%22%20/%3E%20%3C/svg%3E") center/contain no-repeat;width:1em;height:1em}
.of-tier .btn{justify-content:center}
.of-tier.hot .btn.primary{background:var(--orange);color:#fff}
.of-local{margin-top:80px;background:var(--ink);color:var(--bg);padding:70px 0;overflow:hidden}
html[data-theme=dark] .of-local{background:#0b1118}
.of-local .container{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.of-local h2{color:var(--bg);font-size:clamp(2.2rem,4.6vw,3.8rem)!important;margin:12px 0!important}
.of-local p{opacity:.85;max-width:560px}
.of-local .eyebrow{color:var(--sun)}
.of-radar{position:relative;aspect-ratio:1;max-width:340px;width:100%;margin:auto;border-radius:50%;background:radial-gradient(circle,#1f5f7a55,transparent 70%)}
.of-radar i{position:absolute;inset:0;border-radius:50%;border:1.5px solid #f3ede233;animation:of-ring 3.6s ease-out infinite}
.of-radar i:nth-of-type(2){animation-delay:1.2s}.of-radar i:nth-of-type(3){animation-delay:2.4s}
@keyframes of-ring{from{transform:scale(.2);opacity:1}to{transform:scale(1.15);opacity:0}}
.of-radar span{position:absolute;font-size:2rem;left:50%;top:50%;transform:rotate(calc(var(--i) * 60deg)) translate(118px) rotate(calc(var(--i) * -60deg));margin:-17px 0 0 -22px;animation:of-bob 4s ease-in-out infinite;animation-delay:calc(var(--i) * .5s)}
.of-steps .home-step{min-height:0}
.of-faq details{border:1.5px solid var(--line);border-radius:14px;padding:14px 18px;margin:10px 0;background:var(--surface);transition:border-color .2s}
.of-faq details[open]{border-color:var(--ink)}
.of-faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:10px}
.of-faq summary:after{content:"+";font-size:1.3rem;color:var(--orange);transition:transform .3s}
.of-faq details[open] summary:after{transform:rotate(45deg)}
.of-faq details p{margin:10px 0 0;color:var(--muted)}
.of-faq{padding-bottom:90px}
.of-form{max-width:620px;margin:auto;position:relative}
.of-form h3{font-family:var(--f-display);font-weight:500;font-size:1.6rem;margin:6px 0}
.of-form textarea{border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;font:500 .95rem var(--f-body);background:var(--bg);color:var(--ink);resize:vertical}
.of-form select{border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;font:500 .95rem var(--f-body);background:var(--bg);color:var(--ink)}
.of-consent{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--muted);margin:6px 0 14px}
.of-status{font-size:.85rem;color:var(--orange);min-height:1em}
.of-promo{display:grid;gap:2px;margin-top:16px;padding:14px;border-radius:14px;text-decoration:none;color:#fff!important;background:var(--c);box-shadow:4px 4px 0 var(--ink);transition:transform .25s}
.of-promo:hover{transform:translateY(-3px)}
.of-promo span{font-size:1.5rem}.of-promo b{font-size:.95rem}.of-promo small{font-size:.75rem;opacity:.9}.of-promo em{font-style:normal;font-weight:700;font-size:.8rem;margin-top:4px}
.of-home{padding-top:80px}
.of-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.of-home-card{display:grid;gap:4px;text-decoration:none;color:var(--ink);background:var(--surface);border:1.5px solid var(--ink);border-radius:20px;padding:26px;box-shadow:6px 6px 0 var(--ink);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.of-home-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--orange)}
.of-home-card.hot{background:var(--orange);color:#fff;border-color:var(--orange)}
.of-home-card span{font-size:2rem}.of-home-card b{font-family:var(--f-display);font-weight:500;font-size:1.6rem}.of-home-card small{opacity:.85}.of-home-card em{font-style:normal;font-weight:700;margin-top:8px}
.of-merci{min-height:60vh}

@media (max-width:980px){ .of-guides,.of-tiers{grid-template-columns:1fr 1fr} .of-tier.hot{transform:none} }
@media (max-width:700px){
  .of-hero,.of-local .container,.of-home-grid{grid-template-columns:1fr}
  .of-stamps{height:230px}.of-stamps span{width:96px;height:96px;font-size:1.6rem}.of-stamps span b{font-size:.6rem}
  .of-guides,.of-tiers{grid-template-columns:1fr}
  .of-radar{max-width:260px}.of-radar span{transform:rotate(calc(var(--i) * 60deg)) translate(90px) rotate(calc(var(--i) * -60deg))}
  .nav-button.nav-offres{padding:9px 12px}
}
@media (prefers-reduced-motion:reduce){ .of-stamps span,.of-radar i,.of-radar span,.of-cover span,.t2w-pin,.t2w-pin .halo,.nav-button.nav-offres:after{animation:none!important} }
/* boutons de pays lisibles sur l'en-tête photo sombre des outils */
.tools-intro .tools-country a{color:#fff;border-color:#ffffff99;background:#0b1f3340;backdrop-filter:blur(4px)}
.tools-intro .tools-country a.on{background:#fff;color:#1b2433;border-color:#fff;box-shadow:3px 3px 0 var(--orange)}
.tools-intro .tools-country a:hover{border-color:#fff}
.t2w-pin text.left{text-anchor:end}

/* En-tête : tout tient sur une ligne sur ordinateur, « Nos offres » toujours visible sur mobile */
@media (min-width:99999px){
  .nav{flex-wrap:nowrap!important;gap:18px!important}
  .nav nav{flex-wrap:nowrap!important;gap:15px!important}
  .nav nav a{font-size:.84rem}
  .nav-end{flex-wrap:nowrap!important;gap:8px!important}
  .nav-end .nav-button{padding:10px 14px}
}
@media (max-width:1100px){
  .nav-button.nav-offres{display:inline-flex!important;align-items:center;padding:9px 13px;font-size:.8rem}
}

/* ==========================================================================
   Cartes des guides v2 : drapeau qui flotte + mini-Globi porte-drapeau
   ========================================================================== */
.flag{display:inline-block;width:1.5em;height:auto;aspect-ratio:4/3;border-radius:3px;box-shadow:0 1px 3px #0003;vertical-align:-.25em;object-fit:cover}
.of-guides{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:26px!important}
.gd-card{position:relative;background:var(--surface);border:1.5px solid var(--ink);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:6px 6px 0 var(--ink);
  transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .4s;animation:gd-in .7s cubic-bezier(.2,1,.3,1) both;animation-delay:calc(var(--i) * 90ms)}
.gd-card:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:10px 12px 0 var(--c)}
@keyframes gd-in{from{opacity:0;transform:translateY(30px) scale(.96)}}
.gd-top{position:relative;height:190px;background:radial-gradient(120% 90% at 20% 0%,color-mix(in srgb,var(--c) 30%,#fff) 0%,color-mix(in srgb,var(--c) 12%,var(--surface)) 60%);overflow:hidden}
.gd-top:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(transparent,#0000000d)}
/* le drapeau qui flotte */
.gd-wave{position:absolute;left:26px;top:30px;width:150px;height:100px;display:flex;filter:drop-shadow(0 8px 10px #0003);transform:rotate(-4deg)}
.gd-wave span{flex:1;height:100%;background-image:var(--flag);background-size:1400% 100%;background-repeat:no-repeat;animation:gd-flag 2.2s ease-in-out infinite;animation-delay:calc(var(--k) * -0.12s);position:relative}
.gd-wave span:first-child{border-radius:3px 0 0 3px}.gd-wave span:last-child{border-radius:0 3px 3px 0}
.gd-wave span:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0000,#0000001f 50%,#fff2);animation:gd-shade 2.2s ease-in-out infinite;animation-delay:calc(var(--k) * -0.12s)}
@keyframes gd-flag{50%{transform:translateY(-7px) skewY(-3deg)}}
@keyframes gd-shade{50%{opacity:.2}}
.gd-wave:before{content:"";position:absolute;left:-7px;top:-6px;bottom:-60px;width:5px;border-radius:3px;background:linear-gradient(#e8d7b0,#9c7a45)}
/* mini-Globi */
.gd-mascot{position:absolute;right:18px;bottom:10px;width:92px;height:92px;animation:gd-bob 3.2s ease-in-out infinite;animation-delay:calc(var(--i) * -.5s)}
.gd-globi{width:100%;height:100%}
.gd-globi .globi-svg{width:100%;height:100%}
.gd-pole{position:absolute;left:-14px;top:-26px;width:4px;height:70px;border-radius:2px;background:#9c7a45;transform:rotate(-14deg);transform-origin:bottom center;animation:gd-wag 1.6s ease-in-out infinite}
.gd-pole i{position:absolute;left:4px;top:0;width:34px;height:24px;border-radius:2px;background-size:cover;background-position:center;box-shadow:0 2px 4px #0003;transform-origin:left center;animation:gd-mini 1s ease-in-out infinite}
@keyframes gd-bob{50%{transform:translateY(-8px)}}
@keyframes gd-wag{50%{transform:rotate(4deg)}}
@keyframes gd-mini{50%{transform:skewY(6deg) scaleX(.9)}}
.gd-card:hover .gd-mascot{animation:gd-hop .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes gd-hop{40%{transform:translateY(-18px) rotate(-10deg)}}
.gd-pdf{position:absolute;right:14px;top:14px;font:400 .8rem/1 var(--f-poster);letter-spacing:.1em;color:#fff;background:var(--c);padding:6px 9px;border-radius:8px;transform:rotate(6deg);box-shadow:2px 2px 0 var(--ink)}
.gd-fan{position:absolute;left:18px;top:20px;width:220px;height:150px}
.gd-fan>span{position:absolute;left:calc(var(--j) * 26px);top:calc(var(--j) * 12px);transform:rotate(calc(-12deg + var(--j) * 5deg))}
.gd-fan .gd-wave{position:relative;left:0;top:0;width:96px;height:64px}
.gd-fan .gd-wave:before{bottom:-30px}
.gd-pack .gd-top{background:linear-gradient(135deg,#dde8ee,#f6e3d6)}
/* corps + bouton d'achat */
.gd-body{padding:18px 22px 20px;display:flex;flex-direction:column;flex:1}
.gd-body small{letter-spacing:.2em;font-size:.66rem;font-weight:700;color:var(--c)}
.gd-body h3{font-family:var(--f-display);font-weight:500;font-size:1.9rem;line-height:1.05;margin:4px 0 10px}
.gd-body ul{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:6px;flex:1}
.gd-body li{position:relative;padding-left:24px;font-size:.9rem}
.gd-body li:before{content:"✓";position:absolute;left:0;color:#2d7a4f;font-weight:700}
.gd-buy{position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:14px;padding:14px 18px;cursor:pointer;background:var(--ink);color:var(--bg);font:600 1rem var(--f-body);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.gd-buy:before{content:"";position:absolute;inset:0;background:var(--c);transform:translateX(-101%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.gd-buy:hover:before{transform:none}
.gd-buy>*{position:relative}
.gd-buy b{margin-left:auto;font:400 1.5rem/1 var(--f-poster);letter-spacing:.02em}
.gd-buy b s{font:500 .85rem var(--f-body);opacity:.6;margin-right:4px}
.gd-buy i{font-style:normal;transition:transform .3s}
.gd-buy:hover i{transform:translateX(5px)}
.gd-buy:hover{transform:translateY(-2px);color:#fff}
.gd-secure{display:flex;align-items:center;gap:6px;justify-content:center;margin:10px 0 0;font-size:.74rem;color:var(--muted)}
.gd-secure svg{width:13px;height:13px;fill:currentColor}
.of-tier .gd-secure{margin-top:0}
.of-tier.hot .gd-secure{color:#f3ede2aa}
/* achat en 1 clic */
.of-quick{margin-top:6px}
.of-quick b{display:block;font-family:var(--f-hand);font-size:1.5rem;color:var(--orange);margin-bottom:8px;transform:rotate(-1deg)}
.of-quick>div{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin}
.of-quick button{flex:none;display:flex;align-items:center;gap:9px;border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px 8px 9px;cursor:pointer;font:600 .9rem var(--f-body);transition:transform .25s,box-shadow .25s,background .25s}
.of-quick button:hover{transform:translateY(-3px);box-shadow:3px 4px 0 var(--c,var(--orange))}
.of-quick button .flag{width:32px;border-radius:50%;aspect-ratio:1}
.of-quick button em{font-style:normal;font:400 1.05rem var(--f-poster);background:var(--c,var(--orange));color:#fff;border-radius:999px;padding:3px 9px}
.of-quick button.pack{background:var(--ink);color:var(--bg)}
.of-quick button.pack em{background:var(--orange)}
.of-stamps span .flag{width:52px;border-radius:6px}
.of-radar span .flag{width:44px}
/* guides : bouton dans l'en-tête, encart, barre d'achat */
.gd-hero-buy{margin:14px 0 0 10px;background:#fff!important;color:#1b2433!important;border:0!important;box-shadow:4px 4px 0 var(--orange)}
.gd-hero-buy .flag{width:26px}
.of-promo{display:grid;gap:6px;margin-top:16px;padding:14px;border-radius:16px;color:#fff;background:var(--c);box-shadow:4px 4px 0 var(--ink)}
.of-promo-top{display:flex;align-items:center;gap:8px}.of-promo-top .flag{width:30px}
.of-promo b{font-size:.95rem}.of-promo small{font-size:.75rem;opacity:.9}
.of-promo button{border:0;border-radius:10px;background:#fff;color:#1b2433;font:700 .85rem var(--f-body);padding:9px;cursor:pointer;transition:transform .2s}
.of-promo button:hover{transform:translateY(-2px)}
.of-promo a{color:#fff!important;font-size:.75rem;opacity:.9;text-align:center}
.gd-sticky{position:fixed;z-index:8990;left:50%;bottom:18px;display:flex;align-items:center;gap:14px;max-width:min(620px,calc(100vw - 120px));padding:10px 12px 10px 16px;border-radius:18px;background:var(--ink);color:var(--bg);
  box-shadow:5px 5px 0 var(--c),0 20px 40px -15px #0008;transform:translate(-50%,140%);transition:transform .6s cubic-bezier(.2,1.3,.4,1)}
.gd-sticky.on{transform:translate(-50%,0)}
.gd-sticky .gd-wave{position:relative;left:0;top:0;width:48px;height:34px;transform:none;flex:none}
.gd-sticky .gd-wave:before{display:none}
.gd-sticky-txt{display:grid;min-width:0}
.gd-sticky-txt b{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-sticky-txt small{font-size:.74rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-sticky-buy{flex:none;border:0;border-radius:12px;background:var(--c);color:#fff;font:700 .92rem var(--f-body);padding:11px 16px;cursor:pointer;transition:transform .2s}
.gd-sticky-buy:hover{transform:scale(1.05)}
.gd-sticky-x{flex:none;border:0;background:none;color:inherit;opacity:.6;font-size:1.2rem;cursor:pointer}
/* redirection vers Stripe */
.gd-redirect{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;background:#1b2433e6;color:#fff;opacity:0;transition:opacity .3s}
.gd-redirect.on{opacity:1}
.gd-redirect div{display:grid;justify-items:center;gap:8px;text-align:center}
.gd-redirect svg{width:54px;height:54px;fill:var(--sun);animation:gd-takeoff 1s ease-in-out infinite}
.gd-redirect b{font-family:var(--f-display);font-weight:500;font-size:1.6rem}
.gd-redirect small{opacity:.8}
@keyframes gd-takeoff{50%{transform:translate(8px,-8px) rotate(45deg)}}
@media (max-width:980px){ .of-guides{grid-template-columns:1fr 1fr!important} }
@media (max-width:640px){
  .of-guides{grid-template-columns:1fr!important}
  .gd-sticky{left:12px;right:84px;max-width:none;transform:translateY(140%);bottom:14px;gap:10px}
  .gd-sticky.on{transform:none}
  .gd-sticky .gd-wave,.gd-sticky-txt small{display:none}
  .gd-hero-buy{margin-left:0}
}
@media (prefers-reduced-motion:reduce){ .gd-wave span,.gd-wave span:after,.gd-mascot,.gd-pole,.gd-pole i,.gd-card{animation:none!important} }
@media (min-width:700px){.of-quick>div{flex-wrap:wrap;overflow:visible}}

/* ==========================================================================
   Panier
   ========================================================================== */
.ct-btn{position:relative;width:39px;height:39px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none;transition:transform .3s}
.ct-btn svg{width:20px;height:20px;fill:currentColor}
.ct-btn:hover{transform:scale(1.08)}
.ct-btn em{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;border-radius:10px;background:var(--orange);color:#fff;font:700 .68rem/19px var(--f-body);font-style:normal;padding:0 5px;box-shadow:0 0 0 2px var(--bg)}
.ct-btn.bump{animation:ct-bump .6s cubic-bezier(.3,1.8,.5,1)}
@keyframes ct-bump{35%{transform:scale(1.3) rotate(-10deg)}}
.ct-fly{position:fixed;z-index:10003;width:44px;height:44px;display:grid;place-items:center;pointer-events:none;transition:transform .65s cubic-bezier(.5,-.3,.3,1),opacity .65s}
.ct-fly .flag{width:44px;border-radius:6px;box-shadow:0 6px 14px #0004}
.ct-fly .ct-ico{font-size:2rem}
.ct-veil{position:fixed;inset:0;z-index:9400;background:#0b1f33;opacity:0;pointer-events:none;transition:opacity .35s}
.ct-veil.on{opacity:.45;pointer-events:auto}
.ct-drawer{position:fixed;z-index:9401;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--bg);border-left:1.5px solid var(--ink);display:flex;flex-direction:column;
  transform:translateX(105%);transition:transform .5s cubic-bezier(.16,1,.3,1);box-shadow:-20px 0 50px -20px #0006}
.ct-drawer.on{transform:none}
.ct-drawer .ct-head{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line)}
.ct-drawer .ct-head b{font-family:var(--f-display);font-weight:500;font-size:1.6rem}
.ct-drawer .ct-head span{color:var(--muted);font-size:.85rem}
.ct-x{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);font-size:1.3rem;cursor:pointer;transition:transform .4s}
.ct-x:hover{transform:rotate(90deg)}
.ct-list{list-style:none;margin:0;padding:14px 16px;display:grid;gap:10px;overflow-y:auto;flex:1;align-content:start}
.ct-list li{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;background:var(--surface);border:1.5px solid var(--ink);border-left:6px solid var(--c);border-radius:14px;padding:12px;
  animation:ct-in .45s cubic-bezier(.2,1.3,.4,1) both;animation-delay:calc(var(--i) * 60ms);transition:transform .25s,opacity .25s}
.ct-list li.out{transform:translateX(40px);opacity:0}
@keyframes ct-in{from{opacity:0;transform:translateX(30px)}}
.ct-list .flag{width:40px;border-radius:5px}
.ct-ico{font-size:1.6rem;width:40px;text-align:center}
.ct-list b{display:block;font-size:.95rem}
.ct-list small{color:var(--muted);font-size:.75rem}
.ct-list strong{font:400 1.3rem/1 var(--f-poster);letter-spacing:.02em}
.ct-rm{border:0;background:none;color:var(--muted);font-size:1.2rem;cursor:pointer;width:28px;height:28px;border-radius:50%}
.ct-rm:hover{background:var(--soft);color:var(--ink)}
.ct-pay-one{margin-top:6px;border:1.5px solid var(--ink);background:none;color:var(--ink);border-radius:999px;padding:4px 10px;font:600 .75rem var(--f-body);cursor:pointer}
.ct-pay-one:hover,.ct-pay-one.sent{background:var(--ink);color:var(--bg)}
.ct-upsell{margin:0 16px 10px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;text-align:left;border:1.5px dashed var(--orange);background:#d4552b12;color:var(--ink);border-radius:14px;padding:12px;font:500 .85rem var(--f-body);cursor:pointer}
.ct-upsell em{grid-column:2;font-style:normal;font-weight:700;color:var(--orange)}
.ct-drawer .ct-foot{padding:16px 20px 22px;border-top:1px solid var(--line);background:var(--surface)}
.ct-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.ct-total b{font:400 2rem/1 var(--f-poster);letter-spacing:.02em}
.ct-checkout{width:100%;border:0;border-radius:14px;padding:15px;background:var(--orange);color:#fff;font:700 1.02rem var(--f-body);cursor:pointer;display:flex;justify-content:center;gap:10px;box-shadow:4px 4px 0 var(--ink);transition:transform .25s,box-shadow .25s}
.ct-checkout:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.ct-note{font-size:.8rem;color:var(--muted);margin:0 0 6px}
.ct-secure{display:flex;gap:7px;align-items:flex-start;font-size:.74rem;color:var(--muted);margin:10px 0 0}
.ct-secure svg{width:13px;height:13px;flex:none;margin-top:2px;fill:currentColor}
.ct-empty{flex:1;display:grid;place-content:center;justify-items:center;text-align:center;gap:8px;padding:30px}
.ct-empty-ico{width:84px;height:84px;border-radius:50%;background:var(--soft);display:grid;place-items:center;animation:gd-bob 3s ease-in-out infinite}
.ct-empty-ico svg{width:40px;height:40px;fill:var(--muted)}
.ct-empty b{font-family:var(--f-display);font-weight:500;font-size:1.4rem}
.ct-empty p{color:var(--muted);margin:0 0 8px}
.ct-toast{position:fixed;z-index:10004;left:50%;top:90px;display:flex;align-items:center;gap:12px;background:var(--ink);color:var(--bg);padding:11px 12px 11px 18px;border-radius:999px;font-weight:600;font-size:.9rem;
  box-shadow:4px 4px 0 var(--orange);transform:translate(-50%,-30px);opacity:0;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .3s;max-width:calc(100vw - 24px)}
.ct-toast.on{transform:translate(-50%,0);opacity:1}
.ct-toast button{border:0;border-radius:999px;background:var(--orange);color:#fff;font:700 .8rem var(--f-body);padding:7px 12px;cursor:pointer;white-space:nowrap}
/* boutons « dans le panier » */
.gd-buy .lbl{display:flex;align-items:center;gap:6px}
.ct-mini{font-style:normal}
[data-buy].in-cart .lbl:after{content:" ✓";color:var(--sun)}
.gd-buy.in-cart{background:#2d7a4f}
.of-quick button.in-cart{box-shadow:inset 0 0 0 2px #2d7a4f}
.of-quick button.in-cart:after{content:"✓";color:#2d7a4f;font-weight:800}
@media (max-width:640px){ .ct-toast{top:auto;bottom:90px} .ct-drawer{border-left:0} }
@media (prefers-reduced-motion:reduce){ .ct-drawer,.ct-list li,.ct-toast{transition:none;animation:none} }

/* ==========================================================================
   Avis clients — carrousel continu (inspiré de Magic UI Marquee, MIT)
   ========================================================================== */
.rv{padding-top:80px;padding-bottom:10px}
.rv-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-4px 0 22px}
.rv-summary strong{font:400 3.2rem/1 var(--f-poster);letter-spacing:.02em}
.rv-summary span{color:var(--muted)}
.rv-stars{display:inline-flex;gap:2px}
.rv-stars i{width:16px;height:16px;display:block}
.rv-stars.big i{width:28px;height:28px}
.rv-stars svg{width:100%;height:100%;fill:color-mix(in srgb,var(--ink) 14%,transparent)}
.rv-stars i.on svg{fill:#f2b33d;filter:drop-shadow(0 1px 1px #b8862b66)}
.rv.in .rv-stars i.on{animation:rv-pop .5s cubic-bezier(.3,1.8,.5,1) both;animation-delay:calc(var(--s) * 90ms + .2s)}
@keyframes rv-pop{0%{transform:scale(0) rotate(-40deg)}100%{transform:none}}
.rv-first .rv-stars i svg{fill:#f2b33d;animation:rv-twinkle 2.4s ease-in-out infinite;animation-delay:calc(var(--s) * .25s)}
@keyframes rv-twinkle{50%{transform:scale(.8);opacity:.6}}
.rv-rows{display:grid;gap:16px;margin:0 calc(50% - 50vw);padding:6px 0 10px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.rv-marquee{--gap:18px;display:flex;gap:var(--gap);overflow:hidden}
.rv-track{display:flex;gap:var(--gap);flex:none;min-width:100%;justify-content:space-around;animation:rv-scroll var(--dur,40s) linear infinite}
.rv-marquee.reverse .rv-track{animation-direction:reverse}
.rv-marquee:hover .rv-track{animation-play-state:paused}
@keyframes rv-scroll{to{transform:translateX(calc(-100% - var(--gap)))}}
.rv-card{flex:none;width:340px;margin:0;background:var(--surface);border:1.5px solid var(--ink);border-radius:20px;padding:18px 20px;box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;gap:10px;
  transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.rv-card:hover{transform:translateY(-6px) rotate(-.8deg);box-shadow:7px 8px 0 var(--orange)}
.rv-card header{display:flex;gap:12px;align-items:center;position:static!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:0!important;margin:0!important;height:auto!important;transform:none!important;z-index:auto!important}
.rv-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#fff;font:700 1rem var(--f-body);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 25%,transparent)}
.rv-card header b{display:block}
.rv-card header small{color:var(--muted);font-size:.78rem;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.rv-card header .flag{width:18px}
.rv-card blockquote{margin:0;font-size:.95rem;line-height:1.55;position:relative;padding-left:4px}
.rv-card blockquote:before{content:"“";position:absolute;left:-12px;top:-14px;font:italic 3rem/1 var(--f-display);color:var(--orange);opacity:.35}
.rv-reply{margin:0;font-size:.82rem;color:var(--muted);border-left:3px solid var(--orange);padding:4px 0 4px 10px;background:#d4552b0d;border-radius:0 8px 8px 0}
.rv-reply b{color:var(--orange);margin-right:4px}
.rv-ghost{border-style:dashed;box-shadow:none;opacity:.75}
.rv-ghost blockquote{color:var(--muted);font-family:var(--f-hand);font-size:1.4rem}
.rv-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.rv-cta small{color:var(--muted);font-size:.8rem}
/* formulaire */
.rv-form{max-width:600px;margin:auto;position:relative}
.rv-form h3{font-family:var(--f-display);font-weight:500;font-size:1.6rem;margin:6px 0 12px}
.rv-pick{border:0;padding:0;margin:0 0 16px;min-width:0}
.rv-pick-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.rv-pick-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rv-pick legend{padding:0;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:4px}
.rv-pick input{position:absolute;opacity:0;pointer-events:none}
.rv-pick label{width:38px;height:38px;cursor:pointer;transition:transform .25s cubic-bezier(.3,1.8,.5,1)}
.rv-pick label svg{width:100%;height:100%;fill:color-mix(in srgb,var(--ink) 15%,transparent);transition:fill .2s}
.rv-pick input:checked~label svg,.rv-pick label:hover svg,.rv-pick label:hover~label svg{fill:#f2b33d}
.rv-pick:hover input:checked~label:not(:hover):not(:hover~label) svg{fill:color-mix(in srgb,#f2b33d 60%,transparent)}
.rv-pick label:hover{transform:scale(1.2) rotate(-8deg)}
.rv-pick input:focus-visible+label{outline:2px solid var(--orange);border-radius:6px}
.rv-pick output{font-weight:700;color:var(--orange);white-space:nowrap}
/* message de remerciement */
.rv-thanks{text-align:center;padding:10px 6px}
.rv-thanks h3{font-size:2.2rem!important;margin:6px 0!important}
.rv-thanks p{color:var(--muted)}
.rv-sign{font-family:var(--f-hand);font-size:1.35rem;color:var(--ink)!important}
.rv-sign b{font-family:var(--f-body);font-size:.85rem}
.rv-burst{position:relative;width:120px;height:120px;margin:0 auto 6px;display:grid;place-items:center}
.rv-burst span{font-size:3rem;animation:rv-heart 1s cubic-bezier(.3,1.8,.5,1) both}
.rv-burst i{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;transform:rotate(var(--a)) translateY(-10px) scale(0);animation:rv-ray .9s cubic-bezier(.2,1,.3,1) .15s both}
.rv-burst i svg{width:100%;height:100%;fill:#f2b33d}
@keyframes rv-heart{0%{transform:scale(0)}60%{transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes rv-ray{to{transform:rotate(var(--a)) translateY(-54px) scale(1)}}
.rv-merci{margin-top:26px;padding:18px 20px;border:1.5px dashed var(--orange);border-radius:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rv-merci p{margin:0;font-weight:600}
@media (max-width:640px){ .rv-card{width:280px} .rv-summary strong{font-size:2.4rem} }
@media (prefers-reduced-motion:reduce){ .rv-track{animation:none} .rv-marquee{overflow-x:auto} .rv-stars i,.rv-burst *{animation:none!important} }

/* ==========================================================================
   Carrousel TikTok (pages Découvrir) — cartes compactes + carrousel fluide
   ========================================================================== */
.tiktok-carousel-bar{margin-top:34px!important;align-items:end}
.tiktok-carousel-bar h3{font-size:clamp(1.35rem,2.2vw,1.8rem)!important}
.tiktok-carousel-bar .tiktok-subtitle{font-size:.8rem;line-height:1.5;max-width:470px}
.carousel-controls.tk-hide{display:none}
.carousel-controls button{height:34px;min-width:34px;font-size:.9rem}
.carousel-controls [id$="carousel-toggle"]{padding:0 12px;font-size:.72rem;font-weight:700}

.tiktok-grid.tk-fx{--tk-fade:56px;display:flex!important;gap:14px!important;overflow-x:auto;scroll-snap-type:none!important;scrollbar-width:none;padding:10px 4px 8px!important;cursor:grab;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--tk-fade),#000 calc(100% - var(--tk-fade)),transparent 100%)}
.tiktok-grid.tk-fx::-webkit-scrollbar{display:none}
.tiktok-grid.tk-fx.at-start{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--tk-fade)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--tk-fade)),transparent)}
.tiktok-grid.tk-fx.at-end{-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade));mask-image:linear-gradient(90deg,transparent,#000 var(--tk-fade))}
.tiktok-grid.tk-fx.tk-static{-webkit-mask-image:none;mask-image:none;cursor:auto;justify-content:center}
.tiktok-grid.tk-fx.tk-drag{cursor:grabbing;user-select:none}
.tiktok-grid.tk-fx.tk-drag .tiktok-card{pointer-events:none}

.tiktok-grid.tk-fx .tiktok-card{flex:0 0 196px!important;max-width:196px!important;border-radius:18px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,opacity .45s,border-color .3s;opacity:.86}
.tiktok-grid.tk-fx.tk-static .tiktok-card,.tiktok-grid.tk-fx .tiktok-card.tk-active,.tiktok-grid.tk-fx .tiktok-card:hover,.tiktok-grid.tk-fx .tiktok-card:focus-within{opacity:1}
.tiktok-grid.tk-fx .tiktok-card.tk-active{transform:translateY(-4px);border-color:#d97945;box-shadow:0 14px 30px rgba(16,29,43,.24)}
.tiktok-grid.tk-fx .tiktok-card:hover{transform:translateY(-6px) scale(1.015)}
.tiktok-grid.tk-fx .tiktok-media{aspect-ratio:9/15!important}

/* un seul petit badge au lieu de deux qui se chevauchent */
.tiktok-grid.tk-fx .tiktok-muted{display:none}
.tiktok-grid.tk-fx .tiktok-rank{top:9px;left:9px;padding:4px 8px;font-size:.62rem;letter-spacing:.08em;background:#d97945e6;backdrop-filter:blur(4px)}

/* textes plus petits */
.tiktok-grid.tk-fx .tiktok-copy{min-height:0!important;padding:10px 12px 11px!important;gap:0}
.tiktok-grid.tk-fx .tiktok-copy small{font-size:.64rem!important;letter-spacing:.05em;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.tiktok-grid.tk-fx .tiktok-copy h3{font:600 .8rem/1.4 'DM Sans',sans-serif!important;-webkit-line-clamp:2;margin:5px 0 8px!important;min-height:2.8em}
.tiktok-grid.tk-fx .tiktok-copy a{font-size:.72rem;padding-top:7px;margin-top:auto}
.tiktok-grid.tk-fx .social-consent{padding:14px;gap:8px;font-size:.78rem}
.tiktok-grid.tk-fx .social-consent button{padding:8px 14px;font-size:.78rem}

/* progression + points */
.tk-nav{display:flex;align-items:center;gap:16px;margin:8px 4px 0}
.tk-nav.tk-static{display:none}
.tk-progress{flex:1;height:3px;border-radius:9px;background:var(--line,#d5dce0);overflow:hidden}
.tk-progress i{display:block;height:100%;background:linear-gradient(90deg,#d97945,#efaa75);transform-origin:left;transform:scaleX(.04);transition:transform .25s linear}
.tk-dots{display:flex;gap:6px}
.tk-dots button{width:7px;height:7px;padding:0;border:0;border-radius:9px;background:var(--line,#c9d1d6);cursor:pointer;transition:width .35s cubic-bezier(.2,.8,.2,1),background .3s}
.tk-dots button.on{width:22px;background:#d97945}
.tk-dots button:focus-visible{outline:2px solid #d97945;outline-offset:2px}

/* apparition en cascade */
.tiktok-grid.tk-pre .tiktok-card{opacity:0;transform:translateY(22px)}
.tiktok-grid.tk-pre.tk-in .tiktok-card{opacity:.86;transform:none;transition-delay:calc(var(--tk-i,0) * 70ms)}
.tiktok-grid.tk-pre.tk-in.tk-static .tiktok-card,.tiktok-grid.tk-pre.tk-in .tiktok-card.tk-active{opacity:1}
.tiktok-grid.tk-pre.tk-in .tiktok-card.tk-active{transform:translateY(-4px)}
.tiktok-grid.tk-pre.tk-in .tiktok-card:hover{transform:translateY(-6px) scale(1.015);transition-delay:0s}
@media(max-width:650px){.tiktok-grid.tk-fx{--tk-fade:22px}.tiktok-grid.tk-fx .tiktok-card{flex-basis:62vw!important;max-width:230px!important}.tk-dots{display:none}}
@media(prefers-reduced-motion:reduce){.tiktok-grid.tk-fx .tiktok-card,.tk-progress i,.tk-dots button{transition:none}}

/* champs du formulaire d'avis : même style que les champs texte */
.rv-form .pp-sos-fields{padding:0 0 12px}
.rv-form select,.rv-form textarea{border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;font:500 .95rem var(--f-body,inherit);background:var(--bg);color:var(--ink);width:100%;box-sizing:border-box}
.rv-form textarea{resize:vertical;min-height:110px;line-height:1.55}
.rv-form select:focus,.rv-form textarea:focus,.rv-form input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px color-mix(in srgb,var(--orange) 18%,transparent)}

.rv-offer{display:flex;gap:12px;align-items:center;margin:18px 0 0;padding:14px 18px;border:1.5px dashed color-mix(in srgb,var(--orange) 55%,transparent);border-radius:16px;background:color-mix(in srgb,var(--orange) 7%,var(--surface,#fff));max-width:760px}
.rv-offer>span{font-size:1.6rem;animation:rvGift 2.4s ease-in-out infinite}
.rv-offer p{margin:0;font-size:.9rem;line-height:1.5}
@keyframes rvGift{0%,100%{transform:rotate(0)}8%{transform:rotate(-12deg) scale(1.1)}16%{transform:rotate(10deg)}24%{transform:rotate(0)}}
.rv-disclose{font-size:.72rem;color:var(--muted);margin:8px 0 0}
.rv-gift{background:color-mix(in srgb,#f2b33d 16%,transparent);border-radius:12px;padding:10px 12px;font-weight:600}
@media(prefers-reduced-motion:reduce){.rv-offer>span{animation:none}}

/* Apprendre la langue : cours sur place (langue-plus.js) */
.lg-onsite{padding:10px 0 80px}
.lg-head{max-width:760px}
.lg-head h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(2rem,4vw,3rem);margin:8px 0 10px;line-height:1.1}
.lg-head p{color:var(--muted);line-height:1.7}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:26px 0}
.lg-card{border:1.5px solid var(--ink);border-radius:18px;background:var(--surface);padding:18px;box-shadow:5px 5px 0 var(--orange);opacity:0;transform:translateY(18px);transition:opacity .5s,transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .25s;transition-delay:calc(var(--i) * 70ms)}
.lg-onsite.in .lg-card{opacity:1;transform:none}
.lg-card:hover{transform:translateY(-4px)!important;box-shadow:7px 9px 0 var(--orange)}
.lg-card .lg-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lg-card .flag{width:34px;height:24px;border-radius:5px;object-fit:cover;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.lg-card b{display:block;font-size:1.05rem}.lg-card small{color:var(--muted);font-size:.78rem}
.lg-tag{margin-left:auto;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#d4552b;padding:4px 8px;border-radius:99px}
.lg-card p{font-size:.86rem;line-height:1.55;color:var(--muted);margin:12px 0 0}
.lg-how{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 22px}
.lg-how div{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--soft,#eef2f4)}
.lg-how span{flex:none;width:30px;height:30px;border-radius:50%;background:#102f44;color:#fff;display:grid;place-items:center;font-weight:800}
.lg-how p{margin:0;font-size:.86rem;line-height:1.5}
.lg-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.lg-cta small{flex-basis:100%;color:var(--muted);font-size:.78rem}
@media(max-width:760px){.lg-how{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.lg-card{opacity:1;transform:none;transition:none}}
/* avis Google */
.rv-g{width:1em;height:1em;vertical-align:-.15em;display:inline-block}
.rv-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:none}
.rv-card header a{color:inherit;text-decoration:none}.rv-card header a:hover{text-decoration:underline}
.rv-src{display:inline-block;margin-top:8px;font-size:.78rem;color:var(--blue)}
.rv-cta .btn .rv-g{margin-right:6px;background:#fff;border-radius:50%;padding:2px;width:1.2em;height:1.2em}
.rv-cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}
.rv-cta small{flex-basis:100%;text-align:center}
.ct-toast{width:max-content;max-width:calc(100vw - 24px);box-sizing:border-box}.ct-toast span{min-width:0}
