/*
Theme Name: Sokio Kids
Theme URI: https://sokiokids.com
Author: Sokio Kids
Description: Thème bloc sur mesure de Sokio Kids — des histoires qui font grandir. Construit à partir de la maquette validée ; tout se modifie dans l’éditeur WordPress. Compatible WooCommerce, TranslatePress et MailPoet.
Version: 1.0.5
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.0
License: GPLv2 or later
Text Domain: sokio-kids
Domain Path: /languages
*/

/* ==== Icônes (masques) ==== */
/* Généré par scripts/icones.js — ne pas modifier à la main */
:root{
--ic-moon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 0 1 9.5 4a8 8 0 1 0 10.5 10.5z'%3E%3C/path%3E%3C/svg%3E");
--ic-car:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2-5a2 2 0 0 1 2-1.5h10a2 2 0 0 1 2 1.5l2 5v4h-2M5 17H3v-4h18M9 17h6'%3E%3C/path%3E%3Ccircle cx='7' cy='17' r='2'%3E%3C/circle%3E%3Ccircle cx='17' cy='17' r='2'%3E%3C/circle%3E%3C/svg%3E");
--ic-sun:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'%3E%3C/circle%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'%3E%3C/path%3E%3C/svg%3E");
--ic-backpack:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9a6 6 0 0 1 12 0v10a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpath d='M9 4.5V3h6v1.5M9 14h6v4H9z'%3E%3C/path%3E%3C/svg%3E");
--ic-chat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.5 7.2L4 20l1-4.5A8 8 0 1 1 21 12z'%3E%3C/path%3E%3Cpath d='M8.5 11h7M8.5 14h4'%3E%3C/path%3E%3C/svg%3E");
--ic-utensils:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v8M4 3v5a3 3 0 0 0 6 0V3M7 11v10M17 21V3c-2 1-3 4-3 7h3'%3E%3C/path%3E%3C/svg%3E");
--ic-plane:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2L16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'%3E%3C/path%3E%3C/svg%3E");
--ic-key:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'%3E%3C/circle%3E%3Cpath d='M10.8 12.2L20 3M16 7l3 3M14 9l2 2'%3E%3C/path%3E%3C/svg%3E");
--ic-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'%3E%3C/circle%3E%3Cpath d='M20 20l-4-4'%3E%3C/path%3E%3C/svg%3E");
--ic-book:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2z'%3E%3C/path%3E%3Cpath d='M4 19V5M4 19a2 2 0 0 0 2 2h13v-2M8 7h7'%3E%3C/path%3E%3C/svg%3E");
--ic-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'%3E%3C/path%3E%3C/svg%3E");
--ic-cart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.5'%3E%3C/circle%3E%3Ccircle cx='18' cy='20' r='1.5'%3E%3C/circle%3E%3Cpath d='M2 3h3l2.5 12h11.5l2-8H6.2'%3E%3C/path%3E%3C/svg%3E");
--ic-download:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 21h16'%3E%3C/path%3E%3C/svg%3E");
--ic-printer:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6M6 18H4v-7h16v7h-2M6 14h12v7H6z'%3E%3C/path%3E%3C/svg%3E");
--ic-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'%3E%3C/path%3E%3C/svg%3E");
--ic-globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'%3E%3C/circle%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'%3E%3C/path%3E%3C/svg%3E");
--ic-grad:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'%3E%3C/path%3E%3Cpath d='M6 11v5c2 2 10 2 12 0v-5M22 9v6'%3E%3C/path%3E%3C/svg%3E");
--ic-home:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7M5 10v10h14V10'%3E%3C/path%3E%3Cpath d='M10 20v-5h4v5'%3E%3C/path%3E%3C/svg%3E");
--ic-drop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z'%3E%3C/path%3E%3C/svg%3E");
--ic-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'%3E%3C/path%3E%3C/svg%3E");
--ic-puzzle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h6v2a2 2 0 1 0 4 0V4h6v6h-2a2 2 0 1 0 0 4h2v6h-6v-2a2 2 0 1 0-4 0v2H4v-6h2a2 2 0 1 0 0-4H4z'%3E%3C/path%3E%3C/svg%3E");
--ic-briefcase:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h18v12H3zM8 8V5h8v3M3 13h18'%3E%3C/path%3E%3C/svg%3E");
--ic-file:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'%3E%3C/path%3E%3Cpath d='M14 3v5h5M9 12h7M9 16h7'%3E%3C/path%3E%3C/svg%3E");
--ic-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v16H4zM4 10h16M8 3v4M16 3v4'%3E%3C/path%3E%3C/svg%3E");
--ic-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'%3E%3C/path%3E%3C/svg%3E");
--ic-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'%3E%3C/path%3E%3C/svg%3E");
--ic-brain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4a3 3 0 0 0-3 3 3 3 0 0 0-2 5 3 3 0 0 0 2 5 3 3 0 0 0 6 1V5a2 2 0 0 0-3-1zM15 4a3 3 0 0 1 3 3 3 3 0 0 1 2 5 3 3 0 0 1-2 5 3 3 0 0 1-6 1'%3E%3C/path%3E%3C/svg%3E");
--ic-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-9 5-14 15-15-1 10-6 15-15 15zM5 19l7-7'%3E%3C/path%3E%3C/svg%3E");
--ic-flask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6M10 3v6l-5 9a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-5-9V3M7.5 15h9'%3E%3C/path%3E%3C/svg%3E");
--ic-pencil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1-5L16 4l4 4L9 19zM14 6l4 4'%3E%3C/path%3E%3C/svg%3E");
--ic-scissors:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='6' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='18' r='3'%3E%3C/circle%3E%3Cpath d='M8.5 7.5L20 18M8.5 16.5L20 6'%3E%3C/path%3E%3C/svg%3E");
--ic-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h18v14H3z'%3E%3C/path%3E%3Cpath d='M3 6l9 7 9-7'%3E%3C/path%3E%3C/svg%3E");
--ic-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'%3E%3C/path%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'%3E%3C/path%3E%3C/svg%3E");
--ic-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'%3E%3C/circle%3E%3Cpath d='M12 7v5l3 2'%3E%3C/path%3E%3C/svg%3E");
--ic-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'%3E%3C/path%3E%3C/svg%3E");
--ic-moon-fin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 0 1 9.5 4a8 8 0 1 0 10.5 10.5z'%3E%3C/path%3E%3C/svg%3E");
--ic-etoile-pleine:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");
}
.ic-moon{--ic:var(--ic-moon)}
.ic-car{--ic:var(--ic-car)}
.ic-sun{--ic:var(--ic-sun)}
.ic-backpack{--ic:var(--ic-backpack)}
.ic-chat{--ic:var(--ic-chat)}
.ic-utensils{--ic:var(--ic-utensils)}
.ic-plane{--ic:var(--ic-plane)}
.ic-key{--ic:var(--ic-key)}
.ic-search{--ic:var(--ic-search)}
.ic-book{--ic:var(--ic-book)}
.ic-star{--ic:var(--ic-star)}
.ic-cart{--ic:var(--ic-cart)}
.ic-download{--ic:var(--ic-download)}
.ic-printer{--ic:var(--ic-printer)}
.ic-heart{--ic:var(--ic-heart)}
.ic-globe{--ic:var(--ic-globe)}
.ic-grad{--ic:var(--ic-grad)}
.ic-home{--ic:var(--ic-home)}
.ic-drop{--ic:var(--ic-drop)}
.ic-check{--ic:var(--ic-check)}
.ic-puzzle{--ic:var(--ic-puzzle)}
.ic-briefcase{--ic:var(--ic-briefcase)}
.ic-file{--ic:var(--ic-file)}
.ic-calendar{--ic:var(--ic-calendar)}
.ic-chevron{--ic:var(--ic-chevron)}
.ic-arrow{--ic:var(--ic-arrow)}
.ic-brain{--ic:var(--ic-brain)}
.ic-leaf{--ic:var(--ic-leaf)}
.ic-flask{--ic:var(--ic-flask)}
.ic-pencil{--ic:var(--ic-pencil)}
.ic-scissors{--ic:var(--ic-scissors)}
.ic-mail{--ic:var(--ic-mail)}
.ic-shield{--ic:var(--ic-shield)}
.ic-clock{--ic:var(--ic-clock)}
.ic-menu{--ic:var(--ic-menu)}
.ic-moon-fin{--ic:var(--ic-moon-fin)}
.ic-etoile-pleine{--ic:var(--ic-etoile-pleine)}
:root{--etoile-corail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FF8A7A' stroke='%231F2B45' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");--etoile-blanche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");--etoile-soleil:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");--etoile-vide:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E")}
:root{--grille-mini:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 84'%3E%3Crect x='0.0' y='0' width='41.6' height='38' rx='10' fill='%23FFF3C4'/%3E%3Cpath transform='translate(9.8 8) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='49.6' y='0' width='41.6' height='38' rx='10' fill='%23FFF3C4'/%3E%3Cpath transform='translate(59.4 8) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='99.2' y='0' width='41.6' height='38' rx='10' fill='%23FFF3C4'/%3E%3Cpath transform='translate(109.0 8) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='148.8' y='0' width='41.6' height='38' rx='10' fill='%23FFF3C4'/%3E%3Cpath transform='translate(158.6 8) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='198.4' y='0' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(208.2 8) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='0.0' y='46' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(9.8 54) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='49.6' y='46' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(59.4 54) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='99.2' y='46' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(109.0 54) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='148.8' y='46' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(158.6 54) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='198.4' y='46' width='41.6' height='38' rx='10' fill='%23F4EFE6'/%3E%3Cpath transform='translate(208.2 54) scale(0.9167)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");--rangee-mini:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 108 20'%3E%3Cpath transform='translate(0 0) scale(0.8333)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath transform='translate(22 0) scale(0.8333)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath transform='translate(44 0) scale(0.8333)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath transform='translate(66 0) scale(0.8333)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFD45C' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath transform='translate(88 0) scale(0.8333)' d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z' fill='%23FFFFFF' stroke='%231F2B45' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* ==== Maquette validée ==== */


:root {
  /* palette du cahier des charges */
  --creme: #FFF8EC; --encre: #1F2B45; --encre-douce: #3A4661; --corail-fonce: #B8472F;
  --soleil: #FFD45C; --soleil-clair: #FFE9A8; --ciel: #CDEBFB; --ciel-fonce: #1B4F7A;
  --menthe: #CFF0E0; --menthe-fonce: #145A41; --corail: #FFD6CF; --orange: #FFB27A;
  --peche: #FFE0C7; --lilas: #E3DAFF; --lime: #E8F5C8; --bordure: #F1E4CC;
  /* teintes secondaires relevées sur la maquette */
  --blanc: #FFFFFF; --azur: #D6F0F7; --lin: #F4EFE6; --encre-ciel: #26334F; --sable: #E6DCC8;
  --brique: #8A2E1C; --gris-bleu: #6B7488; --nuit-douce: #2C3A5A; --vert: #1E7F5C;
  /* voix colorées */
  --v-narration: #1F2B45; --v-spaghettouf: #C2570C; --v-sarah: #6B3FA0; --v-sofia: #C0306B;
  --v-reine: #1E7F5C; --v-capitaine: #2A6FB0; --v-foieman: #0F6E6E;
  /* site sœur */
  --nuit: #1E2A4A; --or: #E0B25A; --sable-coeur: #F4EBDD; --sable-texte: #D8CDB8;

  --titre: Fredoka, Cairo, sans-serif;
  --texte: Nunito, Cairo, sans-serif;

  --largeur: 1328px;
  --gouttiere: clamp(16px, calc(16px + 40 * (100vw - 390px) / 1050), 56px);
  --bord: max(var(--gouttiere), calc((100% - var(--largeur)) / 2));
  --section: clamp(32px, calc(32px + 56 * (100vw - 390px) / 1050), 88px);
}

/* Modèle de boîte : comme la maquette (content-box), border-box seulement là où elle le pose */
button { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--creme); color: var(--encre); font-family: var(--texte); font-size: 16px; line-height: normal; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: var(--encre); }
:where(a):hover { color: var(--corail-fonce); }
img { max-width: 100%; height: auto; display: block; }
mark { background: none; color: inherit; }
/* l'arabe (Cairo) a un interligne naturel très haut : on le ramène à celui des polices latines */
:where(:not(html)[lang="ar"]) { line-height: 1.25; }
:focus-visible { outline: 3px solid var(--corail-fonce); outline-offset: 3px; }
button, input, select { font: inherit; color: inherit; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Icônes : chaque composant porte une classe .ic-xxx (variable --ic, voir icones.css)
   et dessine son icône en masque dans un pseudo-élément. */

/* --------------------------------------------------------------- utilitaires typo */
.surtitre { font-weight: 800; font-size: 15px; letter-spacing: 1.5px; color: var(--corail-fonce); text-transform: uppercase; }
.titre-section { font-family: var(--titre); font-weight: 700; font-size: clamp(28px, calc(28px + 16 * (100vw - 390px) / 1050), 44px); letter-spacing: -0.8px; line-height: normal; }
.pastille { align-self: flex-start; padding: 8px 16px; border-radius: 20px; font-weight: 800; font-size: 14px; }
.tete-scindee { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.tete-scindee .intro { max-width: 420px; font-size: 18px; line-height: 1.5; color: var(--encre-douce); }
.tete-empilee { display: flex; flex-direction: column; gap: 10px; }

/* lien étiré : toute la carte est cliquable, le lien reste un vrai lien de texte */
.carte-lien { position: relative; }
.carte-lien a.etire::after, .carte-lien .etire a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.carte-lien a.etire, .carte-lien .etire a { text-decoration: none; color: inherit; }

/* boutons pilule */
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 999px; font-weight: 800; text-decoration: none; white-space: nowrap; cursor: pointer; border: 0; }
.bouton:hover { color: inherit; }
.bouton-corail { background: var(--corail-fonce); color: #fff; }
.bouton-corail:hover { color: #fff; }
.bouton-encre { background: var(--encre); color: var(--creme); }
.bouton-encre:hover { color: var(--creme); }
.bouton-contour { border: 2px solid var(--encre); color: var(--encre); background: transparent; }
.bouton-soleil { background: var(--soleil); color: var(--encre); }
.bouton-fleche::after { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }

/* =============================================================== EN-TÊTE */
.bandeau-infos { height: 40px; background: var(--encre); color: var(--creme); display: flex; align-items: center; justify-content: center; gap: 28px; font-size: 14px; font-weight: 700; padding: 0 16px; }
.bandeau-infos p + p::before { content: "★"; color: var(--soleil); margin-inline-end: 28px; }
.bandeau-infos .mobile-seul { display: none; }

.entete { box-sizing: border-box; height: 84px; padding: 0 var(--bord); background: var(--creme); border-bottom: 2px solid var(--bordure); display: flex; align-items: center; gap: 40px; position: relative; }
.logo { position: relative; display: flex; align-items: center; gap: 10px; font-family: var(--titre); font-weight: 700; font-size: 32px; letter-spacing: -0.5px; text-decoration: none; color: var(--encre); line-height: normal; }
.logo::before { content: ""; width: 42px; height: 42px; border-radius: 14px; flex-shrink: 0; transform: rotate(-8deg); background: var(--soleil); }
/* l'étoile du logo : calque masqué posé sur la tuile jaune */
.logo::after { content: ""; position: absolute; left: 9px; top: 50%; width: 24px; height: 24px; margin-top: -12px; background: var(--encre); transform: rotate(-8deg);
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.logo:hover { color: var(--encre); }

.nav-principale { flex-grow: 1; }
.nav-principale ul { display: flex; align-items: center; gap: 6px; }
.nav-principale a { display: block; padding: 10px 16px; border-radius: 22px; font-weight: 800; font-size: 15px; text-decoration: none; color: var(--encre); }
.nav-principale a:hover { color: var(--corail-fonce); }
.nav-principale .actif a { background: var(--soleil-clair); }

.actions { display: flex; align-items: center; gap: 10px; }
.langue { position: relative; }
.langue > button { height: 44px; padding: 0 14px; border-radius: 22px; border: 2px solid var(--encre); background: #fff; font-weight: 800; font-size: 14px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.langue > button::before, .langue > button::after { content: ""; background: currentColor; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.langue > button::before { width: 18px; height: 18px; --m: var(--ic-globe); }
.langue > button::after { width: 14px; height: 14px; --m: var(--ic-chevron); }
.langue ul { display: none; position: absolute; top: 52px; right: 0; background: #fff; border: 2px solid var(--encre); border-radius: 20px; padding: 8px; min-width: 170px; z-index: 20; }
.langue.ouvert ul { display: block; }
.langue li a { display: block; padding: 8px 12px; border-radius: 12px; font-weight: 700; font-size: 15px; text-decoration: none; }
.langue li a:hover { background: var(--soleil-clair); color: var(--encre); }
.recherche { width: 44px; height: 44px; border-radius: 22px; border: 0; background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.recherche::before { content: ""; width: 20px; height: 20px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.panier { height: 44px; padding: 0 18px; border-radius: 22px; background: var(--encre); color: var(--creme); font-weight: 800; font-size: 14px; display: flex; align-items: center; gap: 8px; text-decoration: none; }
.panier:hover { color: var(--creme); }
.panier::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.menu-bouton { display: none; width: 44px; height: 44px; border-radius: 22px; border: 0; background: #fff; align-items: center; justify-content: center; cursor: pointer; }
.menu-bouton::before { content: ""; width: 22px; height: 22px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }

/* =============================================================== HÉRO */
.hero { position: relative; padding: clamp(28px, calc(28px + 44 * (100vw - 390px) / 1050), 72px) var(--bord) var(--section); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; }
.hero-texte { display: flex; flex-direction: column; gap: 24px; }
.hero-texte .pastille { background: var(--menthe); color: var(--menthe-fonce); }
.hero h1 { font-family: var(--titre); font-weight: 700; font-size: clamp(44px, calc(44px + 32 * (100vw - 390px) / 1050), 76px); line-height: 1.02; letter-spacing: -1.5px; hyphens: none; }
.hero h1 mark { color: var(--corail-fonce); }
.hero-texte > p.chapo { font-size: clamp(17px, calc(17px + 4 * (100vw - 390px) / 1050), 21px); line-height: 1.55; max-width: 560px; color: var(--encre-douce); }
.hero-boutons { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.hero-boutons .bouton { height: 60px; font-size: 18px; }
.hero-boutons .bouton-corail { padding: 0 30px; }
.hero-boutons .bouton-contour { padding: 0 26px; }
.garanties { display: flex; gap: 22px; font-size: 15px; font-weight: 700; color: var(--encre-douce); flex-wrap: wrap; }
.garanties li { display: flex; align-items: center; gap: 6px; }
.garanties li::before { content: ""; width: 18px; height: 18px; background: var(--vert); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }

/* composition : boîte de 640 × 560 à 1440 px, tout en % et en cqw pour suivre la largeur */
.hero-visuel { position: relative; aspect-ratio: 640 / 560; container-type: inline-size; }
.hero-visuel::before { content: ""; position: absolute; left: 6.25%; top: 1.786%; width: 81.25%; aspect-ratio: 1; border-radius: 50%; background: var(--soleil-clair); }
.hero-visuel::after { content: ""; position: absolute; right: 1.5625%; top: 0; width: 18.75%; aspect-ratio: 1; border-radius: 50%; background: var(--ciel); }
.hero-rond { position: absolute; left: 0; bottom: 5.357%; width: 12.5%; aspect-ratio: 1; border-radius: 50%; background: var(--corail); }
.couverture { position: absolute; left: 10.9375%; top: 8.9286%; width: 50%; height: 75%; border-radius: 3.125cqw; background: var(--orange); box-shadow: 0 2.8125cqw 6.25cqw rgba(31,43,69,0.18); transform: rotate(-5deg); display: flex; flex-direction: column; overflow: hidden; }
.couverture-titre { padding: 3.75cqw 3.4375cqw 0; font-family: var(--titre); font-weight: 700; font-size: 4.6875cqw; line-height: 1.05; color: var(--encre); }
.zone-illustration { margin: 2.5cqw 3.4375cqw 3.4375cqw; flex-grow: 1; border-radius: 2.1875cqw; border: 3px dashed rgba(31,43,69,0.35); display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 800; font-size: 2.1875cqw; color: var(--encre); padding: 2.5cqw; }
.couverture-bande { background: var(--encre); color: var(--creme); padding: 1.5625cqw 3.4375cqw; font-weight: 800; font-size: 2.03125cqw; letter-spacing: 1px; }
.mini-tableau { position: absolute; right: 4.6875%; top: 30.357%; width: 43.75%; border-radius: 3.125cqw; background: #fff; box-shadow: 0 2.8125cqw 6.25cqw rgba(31,43,69,0.16); transform: rotate(4deg); padding: 3.125cqw; display: flex; flex-direction: column; gap: 1.875cqw; }
.mini-tableau-titre { font-family: var(--titre); font-weight: 700; font-size: 3.125cqw; }
.mini-etoiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25cqw; }
.mini-etoiles li { height: 5.9375cqw; border-radius: 1.5625cqw; background: var(--lin) var(--etoile-vide) center / 3.4375cqw no-repeat; }
.mini-etoiles li.gagnee { background-color: #FFF3C4; background-image: var(--etoile-soleil); }
.mini-tableau-legende { font-size: 2.03125cqw; font-weight: 700; color: var(--encre-douce); }
.bulle { position: absolute; left: 39.0625%; bottom: 1.786%; max-width: 46.875%; background: #fff; border-radius: 3.4375cqw 3.4375cqw 3.4375cqw 0.9375cqw; padding: 2.5cqw 3.125cqw; box-shadow: 0 1.875cqw 4.6875cqw rgba(31,43,69,0.14); font-weight: 800; font-size: 2.65625cqw; line-height: 1.35; color: var(--v-spaghettouf); }

/* =============================================================== MISSIONS */
.missions { padding: var(--section) var(--bord); background: #fff; display: flex; flex-direction: column; gap: 36px; scroll-margin-top: 0; }
.missions .titre-section { font-size: clamp(30px, calc(30px + 22 * (100vw - 390px) / 1050), 52px); letter-spacing: -1px; }
.missions-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.mission { box-sizing: border-box; min-height: 188px; padding: 20px; border-radius: 24px; border: 3px solid transparent; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; transition: transform .15s ease, box-shadow .15s ease; }
.mission::before { content: ""; width: 56px; height: 56px; flex-shrink: 0; border-radius: 18px; background: #fff; }
.mission::after { content: ""; position: absolute; left: 34px; top: 34px; width: 28px; height: 28px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; pointer-events: none; }
.mission-titre { font-family: var(--titre); font-weight: 600; font-size: 22px; line-height: 1.15; }
.mission-indice { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--encre-douce); }
.mission.est-actif { border-color: var(--encre); box-shadow: 0 10px 0 var(--encre); transform: translateY(-6px); }
.fond-lilas { background: var(--lilas); } .fond-ciel { background: var(--ciel); } .fond-soleil-clair { background: var(--soleil-clair); }
.fond-menthe { background: var(--menthe); } .fond-corail { background: var(--corail); } .fond-peche { background: var(--peche); }
.fond-azur { background: var(--azur); } .fond-lime { background: var(--lime); } .fond-soleil { background: var(--soleil); }
.fond-orange { background: var(--orange); } .fond-creme { background: var(--creme); } .fond-encre { background: var(--encre); color: var(--creme); }
.fond-blanc { background: #fff; }

.panneau { display: none; border-radius: 28px; padding: 28px; flex-direction: column; gap: 22px; }
.panneau.est-actif { display: flex; }
.panneau-tete { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.panneau-tete > div { display: flex; flex-direction: column; gap: 6px; }
.panneau-surtitre { font-weight: 800; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; }
.panneau-titre { font-family: var(--titre); font-weight: 700; font-size: 32px; }
.panneau-promesse { font-size: 17px; color: var(--encre-douce); }
.panneau-tete .bouton { flex-shrink: 0; height: 48px; padding: 0 22px; font-size: 15px; }
.panneau-produits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.mini-produit { background: #fff; border-radius: 20px; padding: 16px; display: flex; gap: 16px; align-items: center; text-decoration: none; color: var(--encre); }
.mini-produit:hover { color: var(--encre); }
.mini-couverture { box-sizing: border-box; width: 96px; height: 120px; flex-shrink: 0; border-radius: 12px; border: 2px solid var(--encre); display: flex; align-items: flex-end; padding: 8px; font-family: var(--titre); font-weight: 700; font-size: 12px; line-height: 1.1; }
.mini-infos { display: flex; flex-direction: column; gap: 6px; }
.mini-nom { font-weight: 800; font-size: 17px; line-height: 1.25; }
.mini-meta { font-size: 14px; font-weight: 600; color: var(--encre-douce); }
.prix { font-family: var(--titre); font-weight: 700; color: var(--corail-fonce); }
.mini-infos .prix { font-size: 20px; }

/* =============================================================== ÂGES */
.ages { padding: var(--section) var(--bord); display: flex; flex-direction: column; gap: 32px; }
.ages-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.age { box-sizing: border-box; min-height: 200px; border-radius: 28px; padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.age-tranche { font-family: var(--titre); font-weight: 700; font-size: 48px; line-height: 1; }
.age-nom { font-weight: 800; font-size: 20px; }
.age-desc { font-size: 15px; font-weight: 600; line-height: 1.4; opacity: 0.9; }

/* =============================================================== UNIVERS */
.univers { padding: 0 var(--bord) var(--section); display: flex; flex-direction: column; gap: 32px; }
.univers-grille { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.monde { box-sizing: border-box; min-height: 300px; border-radius: 28px; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.monde::before { content: ""; width: 56px; height: 56px; flex-shrink: 0; border-radius: 18px; background: #fff; }
.monde::after { content: ""; position: absolute; left: 38px; top: 38px; width: 28px; height: 28px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; pointer-events: none; }
.monde-titre { font-family: var(--titre); font-weight: 700; font-size: 24px; line-height: 1.1; }
.monde-desc { font-size: 15px; font-weight: 600; line-height: 1.5; }
.monde-lien { margin-top: auto; font-weight: 800; font-size: 15px; }
.lien-fleche a { display: inline-flex; align-items: center; gap: 6px; }
.lien-fleche a::before { content: ""; order: 2; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ic-arrow) center / contain no-repeat; mask: var(--ic-arrow) center / contain no-repeat; }

/* =============================================================== À LA UNE */
.une { padding: var(--section) var(--bord); background: var(--ciel); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.une-texte { display: flex; flex-direction: column; gap: 22px; }
.une .surtitre { color: var(--ciel-fonce); }
.une h2 { font-family: var(--titre); font-weight: 700; font-size: clamp(30px, calc(30px + 18 * (100vw - 390px) / 1050), 48px); line-height: 1.05; letter-spacing: -1px; }
.une-texte > p.chapo { font-size: 19px; line-height: 1.55; color: var(--encre-ciel); }
.kit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.kit li { background: #fff; border-radius: 16px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.kit li::before { content: ""; width: 36px; height: 36px; flex-shrink: 0; background: var(--ciel-fonce); -webkit-mask: var(--ic) center / 24px 24px no-repeat; mask: var(--ic) center / 24px 24px no-repeat; }
.kit li p { display: flex; flex-direction: column; font-size: 14px; color: var(--encre-douce); }
.kit li strong { font-weight: 800; font-size: 16px; color: var(--encre); }
.niveaux { display: flex; gap: 12px; }
.niveaux p { flex-grow: 1; flex-basis: 0; border-radius: 16px; padding: 14px 16px; font-size: 15px; line-height: 1.4; }
.une-action { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.une-action .bouton { height: 56px; padding: 0 28px; font-size: 17px; }
.une-langues { font-weight: 700; font-size: 15px; color: var(--encre-ciel); }
.voix { background: #fff; border-radius: 28px; padding: 36px; display: flex; flex-direction: column; gap: 18px; box-shadow: 0 18px 40px rgba(27,79,122,0.15); }
.voix-tete { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.voix-titre { font-family: var(--titre); font-weight: 700; font-size: 26px; }
.voix-badge { padding: 6px 12px; border-radius: 12px; background: var(--soleil-clair); font-weight: 800; font-size: 13px; white-space: nowrap; }
.voix > p.voix-intro { font-size: 16px; line-height: 1.55; color: var(--encre-douce); }
.voix-noms { display: flex; flex-wrap: wrap; gap: 8px; }
.voix-noms li { padding: 6px 12px; border-radius: 14px; border: 2px solid currentColor; font-weight: 800; font-size: 14px; }
.extrait { border-top: 2px dashed var(--sable); padding-top: 18px; display: flex; flex-direction: column; gap: 12px; font-size: 19px; line-height: 1.5; }
.extrait p:not(.v-narration) { font-weight: 700; }
.v-narration { color: var(--v-narration); } .v-spaghettouf { color: var(--v-spaghettouf); } .v-sarah { color: var(--v-sarah); }
.v-sofia { color: var(--v-sofia); } .v-reine { color: var(--v-reine); } .v-capitaine { color: var(--v-capitaine); } .v-foieman { color: var(--v-foieman); }

/* =============================================================== TABLEAU GRATUIT */
.tableau { padding: var(--section) var(--bord); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: center; }
.planche { background: var(--soleil); border-radius: 32px; padding: 36px; display: flex; flex-direction: column; gap: 18px; transform: rotate(-1.5deg); }
.planche-tete { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.planche-titre { font-family: var(--titre); font-weight: 700; font-size: 30px; }
.planche-prenom { font-weight: 800; font-size: 14px; white-space: nowrap; }
.planche-grille { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.planche-grille li { box-sizing: border-box; background: #fff; border-radius: 16px; padding: 12px 8px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; min-height: 118px; font-weight: 800; font-size: 12px; line-height: 1.25; }
.planche-grille li::before { content: ""; width: 38px; height: 38px; flex-shrink: 0; background: var(--etoile-blanche) center / contain no-repeat; }
.planche-grille li.gagnee::before { background-image: var(--etoile-corail); }
.planche-paliers { display: flex; gap: 12px; }
.planche-paliers p { flex-grow: 1; flex-basis: 0; background: var(--creme); border-radius: 14px; padding: 12px 14px; font-size: 14px; font-weight: 700; }
.tableau-texte { display: flex; flex-direction: column; gap: 20px; }
.tableau-texte .pastille { background: var(--corail); color: var(--brique); }
.tableau-texte h2 { font-family: var(--titre); font-weight: 700; font-size: clamp(24px, calc(24px + 24 * (100vw - 390px) / 1050), 48px); line-height: 1.05; letter-spacing: -1px; }
.tableau-texte > p.chapo { font-size: 19px; line-height: 1.55; color: var(--encre-douce); }
.inscription { display: flex; flex-direction: column; gap: 8px; max-width: 520px; }
.inscription label { font-weight: 800; font-size: 15px; }
.inscription-ligne { display: flex; gap: 10px; }
.inscription input { flex-grow: 1; min-width: 0; height: 56px; padding: 0 20px; border-radius: 28px; border: 2px solid var(--encre); font-size: 17px; background: #fff; color: var(--encre); }
.inscription input::placeholder { color: #757575; }
.inscription button { height: 56px; padding: 0 24px; border-radius: 28px; border: 0; background: var(--corail-fonce); color: #fff; font-weight: 800; font-size: 17px; cursor: pointer; white-space: nowrap; }
.inscription-note { font-size: 14px; color: var(--encre-douce); }

/* =============================================================== LANGUES */
.langues { padding: var(--section) var(--bord); background: #fff; display: flex; flex-direction: column; gap: 36px; }
.langues .tete-scindee .intro { max-width: 480px; }
.langues-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.langue-carte { border-radius: 24px; padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.langue-nom { font-family: var(--titre); font-weight: 700; font-size: 34px; }
.langue-nom[lang="ar"] { line-height: 1.38; }
.langue-etiquette { font-weight: 800; font-size: 15px; }
.langue-exemple { font-size: 17px; line-height: 1.4; }

/* =============================================================== ÉTAPES */
.etapes { padding: var(--section) var(--bord); display: flex; flex-direction: column; gap: 36px; }
.etapes .titre-section { text-align: center; }
.etapes-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.etape { background: #fff; border-radius: 28px; padding: 32px; display: flex; flex-direction: column; gap: 14px; border: 2px solid var(--bordure); }
.etape::after { content: ""; position: absolute; left: 98px; top: 38px; width: 40px; height: 40px; background: var(--encre); -webkit-mask: var(--ic) center / 28px 28px no-repeat; mask: var(--ic) center / 28px 28px no-repeat; }
.etape { position: relative; }
.etape-num { width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--titre); font-weight: 700; font-size: 26px; }
.etape-titre { font-family: var(--titre); font-weight: 700; font-size: 26px; }
.etape-desc { font-size: 17px; line-height: 1.5; color: var(--encre-douce); }

/* =============================================================== FORMATS + CLUB */
.formats { padding: var(--section) var(--bord); background: #fff; display: flex; flex-direction: column; gap: 32px; }
.formats .tete-empilee { align-items: center; text-align: center; }
.formats-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.format { border-radius: 24px; padding: 26px; display: flex; flex-direction: column; gap: 12px; border: 2px solid var(--bordure); }
.format-nom { font-family: var(--titre); font-weight: 700; font-size: 24px; }
.format-desc { font-size: 15px; line-height: 1.5; min-height: 68px; }
.format-prix { font-family: var(--titre); font-weight: 700; font-size: 34px; }
.club { background: var(--encre); color: var(--creme); border-radius: 28px; padding: 32px 40px; display: flex; align-items: center; gap: 32px; position: relative; }
.club::before { content: ""; width: 72px; height: 72px; border-radius: 22px; background: var(--soleil); flex-shrink: 0; }
.club::after { content: ""; position: absolute; left: 59px; top: 50%; width: 34px; height: 34px; margin-top: -17px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.club-texte { display: flex; flex-direction: column; gap: 6px; flex-grow: 1; }
.club-titre { font-family: var(--titre); font-weight: 700; font-size: 30px; }
.club-desc { font-size: 17px; line-height: 1.5; color: var(--sable); }
.club-offre { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex-shrink: 0; }
.club-prix { font-family: var(--titre); font-weight: 700; font-size: 36px; color: var(--soleil); }
.club-offre .bouton { height: 52px; padding: 0 24px; font-size: 16px; }

/* =============================================================== SITE SŒUR */
.soeur { padding: clamp(32px, calc(32px + 24 * (100vw - 390px) / 1050), 56px) var(--bord); }
.soeur-carte { box-sizing: border-box; width: 100%; background: var(--nuit); border-radius: 28px; padding: 32px 40px; display: flex; align-items: center; gap: 28px; color: var(--sable-coeur); }
.soeur-carte::before { content: ""; width: 56px; height: 56px; flex-shrink: 0; background: var(--or); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.soeur-texte { flex-grow: 1; display: flex; flex-direction: column; gap: 4px; }
.soeur-titre { font-family: var(--titre); font-weight: 700; font-size: 28px; }
.soeur-desc { font-size: 17px; color: var(--sable-texte); }
.soeur-lien { font-weight: 800; font-size: 16px; color: var(--or); white-space: nowrap; }
.soeur-lien a, .soeur-lien a:hover { color: var(--or); }

/* =============================================================== PIED */
.pied { background: var(--encre); color: var(--sable); padding: 64px var(--bord); display: flex; flex-direction: column; gap: 40px; }
.pied-colonnes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; }
.pied-marque { display: flex; flex-direction: column; gap: 12px; }
.pied-nom { font-family: var(--titre); font-weight: 700; font-size: 30px; color: var(--creme); }
.pied-nom a { color: inherit; text-decoration: none; }
.pied-marque p:not(.pied-nom) { font-size: 15px; line-height: 1.5; }
.pied-col { display: flex; flex-direction: column; gap: 10px; }
.pied-col-titre { font-weight: 800; font-size: 15px; color: var(--soleil); }
.pied-col ul { display: flex; flex-direction: column; gap: 10px; }
.pied-col a { display: block; color: var(--sable); text-decoration: none; font-size: 15px; }
.pied-col a:hover { color: #fff; text-decoration: underline; }
.pied-bas { border-top: 1px solid var(--encre-douce); padding-top: 24px; display: flex; justify-content: space-between; gap: 24px; font-size: 14px; }

/* ==========================================================================
   Adaptation aux écrans
   ========================================================================== */
@media (max-width: 1279px) {
  .entete { gap: 24px; }
  .nav-principale a { padding: 10px 11px; }
}
@media (max-width: 1199px) {
  .menu-bouton { display: flex; order: 3; }
  .nav-principale { display: none; }
  .actions { margin-inline-start: auto; }
  .entete.menu-ouvert .nav-principale { display: block; position: absolute; top: 100%; left: 0; right: 0; background: var(--creme); border-bottom: 2px solid var(--bordure); padding: 12px var(--bord) 20px; z-index: 30; }
  .entete.menu-ouvert .nav-principale ul { flex-direction: column; align-items: stretch; }
  .missions-grille, .ages-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .univers-grille { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .univers-grille > * { grid-column: span 2; }
  .univers-grille > :nth-child(n+4) { grid-column: span 3; }
  .monde { min-height: 260px; }
  .mission { min-height: 150px; }
  .age { min-height: 0; }
  .formats-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panneau-produits { grid-template-columns: minmax(0, 1fr); }
  .pied-colonnes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pied-marque { grid-column: 1 / -1; }
}
@media (max-width: 1023px) {
  .hero, .une, .tableau { grid-template-columns: minmax(0, 1fr); }
  .hero-visuel { width: 100%; max-width: 560px; justify-self: center; }
  .planche { max-width: 640px; }
  .tete-scindee { flex-direction: column; align-items: flex-start; gap: 16px; }
  .langues-grille, .etapes-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .club { flex-wrap: wrap; }
  .club-offre { align-items: flex-start; }
}

/* ---------------------------------------------- téléphone (Mobile.dc.html) */
@media (max-width: 599px) {
  .bureau-seul { display: none !important; }
  .bandeau-infos { height: 34px; font-size: 12px; }
  .bandeau-infos .mobile-seul { display: block; }
  .bandeau-infos p + p::before { content: "·"; color: inherit; margin-inline-end: 4px; }
  .bandeau-infos { gap: 4px; }

  .entete { box-sizing: content-box; height: 68px; padding: 0 16px; gap: 10px; }
  .menu-bouton { order: 0; }
  .logo { flex-grow: 1; justify-content: center; font-size: 26px; }
  .logo::before, .logo::after { display: none; }
  .actions { margin: 0; order: 2; }
  .langue, .recherche { display: none; }
  .panier { width: 44px; padding: 0; justify-content: center; font-size: 0; gap: 0; }
  .panier::before { width: 20px; height: 20px; }

  .hero { gap: 16px; }
  .hero-texte { display: contents; }
  .hero-texte .pastille { justify-self: start; padding: 6px 12px; border-radius: 16px; font-size: 12px; order: 1; }
  .hero h1 { order: 2; letter-spacing: -1px; }
  .hero-texte > p.chapo { order: 3; line-height: 1.5; }
  .hero-visuel { order: 4; }
  .hero-boutons { order: 5; }
  .hero-boutons .bouton-corail { width: 100%; height: 56px; font-size: 17px; }
  .hero-boutons .bouton-corail::after { display: none; }
  .hero-boutons .bouton-contour, .garanties { display: none; }

  /* composition téléphone : bloc jaune de 220 px */
  .hero-visuel { aspect-ratio: auto; height: 220px; max-width: none; border-radius: 24px; background: var(--soleil-clair); overflow: hidden; }
  .hero-visuel::before, .hero-visuel::after, .hero-rond, .bulle, .zone-illustration, .couverture-bande, .mini-tableau-legende { display: none; }
  .couverture { box-sizing: border-box; left: 24px; top: 22px; width: 150px; height: 190px; border-radius: 14px; padding: 12px; box-shadow: none; }
  .couverture-titre { padding: 0; font-size: 16px; }
  .mini-tableau { box-sizing: border-box; right: 18px; top: 40px; width: 160px; border-radius: 14px; padding: 12px; gap: 6px; box-shadow: 0 10px 24px rgba(31,43,69,0.15); }
  .mini-tableau-titre { font-family: var(--texte); font-weight: 800; font-size: 12px; }
  .mini-etoiles { display: flex; gap: 2px; }
  .mini-etoiles li { width: 20px; height: 20px; background: var(--etoile-vide) center / 20px no-repeat; }
  .mini-etoiles li.gagnee { background-image: var(--etoile-soleil); background-color: transparent; }
  .mini-etoiles li:nth-child(n+6) { display: none; }

  .missions { gap: 16px; }
  .missions .surtitre, .missions .tete-scindee .intro, .mission-indice, .panneaux { display: none; }
  .missions .tete-scindee { gap: 0; }
  .missions .titre-section { line-height: 1.1; letter-spacing: -1px; }
  .missions-grille { gap: 10px; }
  .mission { min-height: 120px; padding: 14px; border-radius: 20px; border: 0; gap: 8px; }
  .mission::before { width: 44px; height: 44px; border-radius: 14px; }
  .mission::after { left: 25px; top: 25px; width: 22px; height: 22px; }
  .mission-titre { font-size: 17px; }
  .mission.est-actif { box-shadow: none; transform: none; }

  .ages { gap: 12px; }
  .ages-grille { gap: 10px; }
  .age { min-height: 0; border-radius: 20px; padding: 16px; gap: 2px; }
  .age-tranche { font-size: 30px; line-height: normal; }
  .age-nom { font-size: 14px; }
  .age-desc { display: none; }

  .univers { gap: 16px; }
  .univers-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .monde { min-height: 0; border-radius: 20px; padding: 14px; gap: 8px; }
  .monde::before { width: 44px; height: 44px; border-radius: 14px; }
  .monde::after { left: 25px; top: 25px; width: 22px; height: 22px; }
  .monde-titre { font-size: 19px; }
  .monde-desc { display: none; }
  .univers-grille > * { grid-column: auto; }
  .univers-grille > :nth-child(n+4) { grid-column: auto; }
  .univers-grille > :last-child { grid-column: 1 / -1; }

  .une { display: flex; flex-direction: column; gap: 14px; }
  .une-texte { display: contents; }
  .une .surtitre { font-size: 12px; letter-spacing: 1.2px; order: 1; }
  .une h2 { order: 2; }
  .une-texte > p.chapo, .kit, .niveaux, .voix-tete, .voix-intro, .voix-noms { display: none; }
  .voix { order: 3; border-radius: 20px; padding: 16px; box-shadow: none; gap: 8px; }
  .extrait { border: 0; padding: 0; font-size: 16px; line-height: 1.45; gap: 8px; }
  .une-action { order: 4; flex-direction: column-reverse; align-items: stretch; gap: 14px; }
  .une-action .bouton { height: 52px; font-size: 16px; }
  .une-langues { font-size: 14px; }

  .tableau { display: block; }
  .planche { display: none; }
  .tableau-texte { background: var(--soleil); border-radius: 24px; padding: 20px; gap: 12px; }
  .tableau-texte .pastille { display: none; }
  .tableau-texte h2 { line-height: 1.1; letter-spacing: 0; }
  .tableau-texte > p.chapo { font-size: 15px; line-height: 1.45; color: var(--encre); }
  .inscription { gap: 12px; }
  .inscription label { font-size: 14px; }
  .inscription-ligne { flex-direction: column; gap: 12px; }
  .inscription input { flex-grow: 0; height: 50px; padding: 0 16px; font-size: 16px; border-radius: 25px; }
  .inscription button { height: 50px; border-radius: 25px; background: var(--encre); color: var(--creme); font-size: 16px; }
  .inscription-note { display: none; }

  .langues { background: var(--creme); padding-top: 0; gap: 10px; }
  .langues .titre-section { font-size: 26px; }
  .langues .intro, .langue-etiquette, .langue-exemple { display: none; }
  .langues-grille { gap: 8px; }
  .langue-carte { border-radius: 16px; padding: 14px; }
  .langue-nom { font-size: 20px; }

  .etapes { gap: 16px; }
  .etapes-grille { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .etape { border-radius: 20px; padding: 20px; gap: 8px; }
  .etape::after { left: 78px; top: 26px; }
  .etape-num { width: 44px; height: 44px; font-size: 22px; }
  .etape-titre { font-size: 21px; }
  .etape-desc { font-size: 15px; }

  .formats { gap: 16px; }
  .formats .surtitre { font-size: 12px; }
  .formats-grille { gap: 10px; }
  .format { border-radius: 20px; padding: 16px; gap: 6px; }
  .format-nom { font-size: 17px; }
  .format-desc { display: none; }
  .format-prix { font-size: 22px; }
  .club { border-radius: 24px; padding: 20px; gap: 14px; }
  .club::before { width: 52px; height: 52px; border-radius: 16px; }
  .club::after { left: 31px; top: 33px; margin: 0; width: 30px; height: 30px; }
  .club-titre { font-size: 22px; }
  .club-desc { font-size: 15px; }
  .club-offre { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; width: 100%; }
  .club-prix { font-size: 26px; }

  .soeur-carte { flex-wrap: wrap; border-radius: 24px; padding: 20px; gap: 12px; }
  .soeur-carte::before { width: 40px; height: 40px; }
  .soeur-titre { font-size: 22px; }
  .soeur-desc { font-size: 15px; }

  .pied { padding: 28px 16px; gap: 20px; font-size: 14px; }
  .pied-colonnes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .pied-nom { font-size: 24px; }
  .pied-marque p:not(.pied-nom) { font-size: 14px; }
  .pied-col a { font-size: 14px; }
  .pied-bas { flex-direction: column; gap: 8px; padding-top: 16px; font-size: 13px; }
}

/* Les couleurs suivent la palette de l’éditeur de site */
:root {
  --creme: var(--wp--preset--color--creme);
  --encre: var(--wp--preset--color--encre);
  --encre-douce: var(--wp--preset--color--encre-douce);
  --corail-fonce: var(--wp--preset--color--corail-fonce);
  --soleil: var(--wp--preset--color--soleil);
  --soleil-clair: var(--wp--preset--color--soleil-clair);
  --ciel: var(--wp--preset--color--ciel);
  --ciel-fonce: var(--wp--preset--color--ciel-fonce);
  --menthe: var(--wp--preset--color--menthe);
  --menthe-fonce: var(--wp--preset--color--menthe-fonce);
  --corail: var(--wp--preset--color--corail);
  --orange: var(--wp--preset--color--orange);
  --peche: var(--wp--preset--color--peche);
  --lilas: var(--wp--preset--color--lilas);
  --lime: var(--wp--preset--color--lime);
  --bordure: var(--wp--preset--color--bordure);
  --blanc: var(--wp--preset--color--blanc);
  --azur: var(--wp--preset--color--azur);
  --lin: var(--wp--preset--color--lin);
  --encre-ciel: var(--wp--preset--color--encre-ciel);
  --sable: var(--wp--preset--color--sable);
  --brique: var(--wp--preset--color--brique);
  --gris-bleu: var(--wp--preset--color--gris-bleu);
  --nuit-douce: var(--wp--preset--color--nuit-douce);
  --vert: var(--wp--preset--color--vert);
  --v-narration: var(--wp--preset--color--v-narration);
  --v-spaghettouf: var(--wp--preset--color--v-spaghettouf);
  --v-sarah: var(--wp--preset--color--v-sarah);
  --v-sofia: var(--wp--preset--color--v-sofia);
  --v-reine: var(--wp--preset--color--v-reine);
  --v-capitaine: var(--wp--preset--color--v-capitaine);
  --v-foieman: var(--wp--preset--color--v-foieman);
  --nuit: var(--wp--preset--color--nuit);
  --or: var(--wp--preset--color--or);
  --sable-coeur: var(--wp--preset--color--sable-coeur);
  --sable-texte: var(--wp--preset--color--sable-texte);
}

/* ==== Adaptations WordPress ==== */
/* Adaptations WordPress — ajoutées après la feuille de la maquette.
   Ne jamais neutraliser les marges à spécificité non nulle (voir blocs-gutenberg.md). */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
img { height: auto; }
.wp-site-blocks { overflow-x: clip; }
.wp-block-post-content > * { margin-block: 0; }

/* ---------------------------------------------------------------- boutons (core/button)
   La classe du composant arrive sur le conteneur .wp-block-button : on le neutralise
   et on dessine le lien. */
.wp-block-button[class*="bouton-"] { display: inline-block; background: none; border: 0; padding: 0; height: auto; color: inherit; }
.wp-block-button.bouton-fleche::after { content: none; }
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.wp-block-button[class*="bouton-"] .wp-block-button__link { box-sizing: content-box; width: auto; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 999px; font-family: var(--texte); font-weight: 800; line-height: normal; text-decoration: none; white-space: nowrap; border: 0; }
.wp-block-button.bouton-corail .wp-block-button__link { background: var(--corail-fonce); color: #fff; }
.wp-block-button.bouton-encre .wp-block-button__link { background: var(--encre); color: var(--creme); }
.wp-block-button.bouton-soleil .wp-block-button__link { background: var(--soleil); color: var(--encre); }
.wp-block-button.bouton-contour .wp-block-button__link { background: transparent; border: 2px solid var(--encre); color: var(--encre); }
.wp-block-button.bouton-fleche .wp-block-button__link::after { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.hero-boutons .wp-block-button__link { height: 60px; font-size: 18px; }
.hero-boutons .bouton-corail .wp-block-button__link { padding: 0 30px; }
.hero-boutons .bouton-contour .wp-block-button__link { padding: 0 26px; }
.panneau-bouton { flex-shrink: 0; }
.panneau-bouton .wp-block-button__link { height: 48px; padding: 0 22px; font-size: 15px; }
.une-bouton .wp-block-button__link { height: 56px; padding: 0 28px; font-size: 17px; }
.club-bouton .wp-block-button__link { height: 52px; padding: 0 24px; font-size: 16px; }

/* ---------------------------------------------------------------- en-tête */
.zone-entete { position: relative; z-index: 50; }
.logo, .pied-nom { margin: 0; }
.logo a, .pied-nom a { color: inherit; text-decoration: none; }
.logo a:hover { color: inherit; }

/* navigation : menu « toujours » (bouton) replié sous 1200 px, déplié au-delà */
.wp-block-navigation.nav-principale { flex-grow: 1; gap: 0; }
.nav-principale .wp-block-navigation__container { display: flex; align-items: center; gap: 6px; }
.nav-principale .wp-block-navigation-item__content { display: block; padding: 10px 16px; border-radius: 22px; font-weight: 800; font-size: 15px; line-height: normal; color: var(--encre); text-decoration: none; }
.nav-principale .wp-block-navigation-item__content:hover { color: var(--corail-fonce); }
.nav-principale .current-menu-item > .wp-block-navigation-item__content,
.nav-principale .wp-block-navigation-item__content[aria-current] { background: var(--soleil-clair); }
.nav-principale .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border-radius: 22px; background: #fff; color: var(--encre); align-items: center; justify-content: center; padding: 0; }
.nav-principale .wp-block-navigation__responsive-container-open svg { display: none; }
.nav-principale .wp-block-navigation__responsive-container-open::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ic-menu) center / contain no-repeat; mask: var(--ic-menu) center / contain no-repeat; }
.wp-block-navigation.nav-principale .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--creme) !important; color: var(--encre) !important; padding: 24px 16px; }
.nav-principale .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 8px; width: 100%; }
.nav-principale .is-menu-open .wp-block-navigation-item__content { font-size: 20px; padding: 14px 18px; }
@media (min-width: 1200px) {
  .nav-principale .wp-block-navigation__responsive-container-open { display: none; }
  .wp-block-navigation.nav-principale .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; position: relative; inset: auto; width: auto; z-index: auto; background: none; }
  .nav-principale .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
}
@media (max-width: 1199px) {
  .wp-block-navigation.nav-principale { display: flex; flex-grow: 0; order: 3; }
  .entete .actions { margin-inline-start: auto; }
}

/* recherche : bouton rond qui déplie le champ (le conteneur du bloc n'a pas le style du bouton de la maquette) */
.wp-block-search.recherche { width: auto; height: auto; background: none; border-radius: 0; display: block; }
.wp-block-search.recherche::before { content: none; }
.recherche.wp-block-search { position: relative; margin: 0; }
.recherche .wp-block-search__inside-wrapper { border: 0; padding: 0; background: none; }
.recherche .wp-block-search__button { width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 22px; background: #fff; color: var(--encre); display: flex; align-items: center; justify-content: center; }
.recherche .wp-block-search__button svg { display: none; }
.recherche .wp-block-search__button::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--ic-search) center / contain no-repeat; mask: var(--ic-search) center / contain no-repeat; }
.recherche .wp-block-search__input { position: absolute; right: 52px; top: 0; height: 44px; width: min(320px, 70vw); box-sizing: border-box; padding: 0 18px; border: 2px solid var(--encre); border-radius: 22px; background: #fff; font-family: var(--texte); font-size: 15px; color: var(--encre); z-index: 5; }
.recherche.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0; padding: 0; border-width: 0; opacity: 0; }

/* panier (mini-panier WooCommerce) : pilule « Panier · 0 » */
.panier.wc-block-mini-cart { display: flex; height: auto; padding: 0; border-radius: 0; background: none; gap: 0; }
.panier.wc-block-mini-cart::before { content: none; }
.panier .wc-block-mini-cart__button { height: 44px; padding: 0 18px; border-radius: 22px; background: var(--encre); color: var(--creme); font-family: var(--texte); font-weight: 800; font-size: 14px; line-height: normal; display: flex; align-items: center; opacity: 1; }
.panier .wc-block-mini-cart__button:hover { opacity: 1; }
.panier .wc-block-mini-cart__quantity-badge { display: flex; align-items: center; gap: 8px; }
.panier .wc-block-mini-cart__quantity-badge svg { display: none; }
.panier .wc-block-mini-cart__quantity-badge::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ic-cart) center / contain no-repeat; mask: var(--ic-cart) center / contain no-repeat; }
.panier .wc-block-mini-cart__badge { position: static; transform: none; min-width: 0; height: auto; margin: 0; padding: 0; border: 0; border-radius: 0; background: none !important; color: inherit !important; font: inherit; visibility: visible; }
.panier .wc-block-mini-cart__badge::before { content: "Panier\00a0·\00a0"; }
html:lang(en) .panier .wc-block-mini-cart__badge::before { content: "Cart\00a0·\00a0"; }
html:lang(es) .panier .wc-block-mini-cart__badge::before { content: "Carrito\00a0·\00a0"; }
html:lang(ar) .panier .wc-block-mini-cart__badge::before { content: "السلة\00a0·\00a0"; }

/* ---------------------------------------------------------------- héro */
.hero-titre mark { color: var(--corail-fonce); }
.garanties.wp-block-list { padding: 0; margin: 0; }
.zone-illustration { position: relative; flex-direction: column; overflow: hidden; }
.zone-illustration .wp-block-image { position: absolute; inset: 0; margin: 0; }
.zone-illustration .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.zone-illustration .wp-block-image:not(:has(img[src])) { display: none; }
.zone-illustration:has(img[src]) { border-style: solid; padding: 0; }
.zone-illustration:has(img[src]) .zone-aide { display: none; }
.mini-tableau-titre::after { content: ""; display: block; margin-top: 1.875cqw; aspect-ratio: 240 / 84; background: var(--grille-mini) center / 100% 100% no-repeat; }
/* le rond corail (calque décoratif) */
.bulle::before { content: ""; position: absolute; left: -39.0625cqw; bottom: 3.125cqw; width: 12.5cqw; aspect-ratio: 1; border-radius: 50%; background: var(--corail); z-index: -1; }
.hero-visuel { z-index: 0; }
.hero-visuel::before { z-index: -2; }

/* ---------------------------------------------------------------- sélecteur de missions */
.mission-titre { margin: 0; }
.missions:not(.js-pret) .panneau:first-child { display: flex; }
.panneau-textes { display: flex; flex-direction: column; gap: 6px; }
.wp-block-woocommerce-product-collection.panneau-produits { display: block; margin: 0; }
.panneau-produits .wc-block-components-notices { display: none; }
.panneau-produits ul.wc-block-product-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; max-width: none; }
.panneau-produits .wc-block-product { margin: 0; padding: 0; width: auto; max-width: none; }
.panneau-produits.couleur-lilas .mini-couverture { background: var(--lilas); }
.panneau-produits.couleur-ciel .mini-couverture { background: var(--ciel); }
.panneau-produits.couleur-soleil-clair .mini-couverture { background: var(--soleil-clair); }
.panneau-produits.couleur-menthe .mini-couverture { background: var(--menthe); }
.panneau-produits.couleur-corail .mini-couverture { background: var(--corail); }
.panneau-produits.couleur-peche .mini-couverture { background: var(--peche); }
.panneau-produits.couleur-azur .mini-couverture { background: var(--azur); }
.panneau-produits.couleur-lime .mini-couverture { background: var(--lime); }
.mini-couverture { position: relative; overflow: hidden; }
.mini-type { position: relative; z-index: 1; }
.mini-couverture .mini-image { position: absolute; inset: 0; margin: 0; }
.mini-couverture .mini-image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; }
.mini-couverture .mini-image:has(.woocommerce-placeholder) { display: none; }
.mini-couverture:has(.mini-image img:not(.woocommerce-placeholder)) .mini-type { display: none; }
h3.mini-nom { margin: 0; font-family: var(--texte); font-weight: 800; font-size: 17px; line-height: 1.25; }
.mini-meta { display: flex; flex-wrap: wrap; font-size: 14px; font-weight: 600; color: var(--encre-douce); }
.mini-meta p:empty { display: none; }
.mini-meta p:not(:empty) ~ p:not(:empty)::before { content: "\00a0·\00a0"; }
.mini-infos .prix, .mini-infos .prix .wc-block-components-product-price { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 20px; line-height: normal; color: var(--corail-fonce); text-align: start; }
.prix .woocommerce-Price-amount, .prix .prix-gratuit { color: inherit; }

/* ---------------------------------------------------------------- à la une */
.kit > p { display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; align-items: center; background: #fff; border-radius: 16px; padding: 14px 16px; font-size: 14px; color: var(--encre-douce); }
.kit > p::before { content: ""; grid-row: 1 / span 2; width: 36px; height: 36px; background: var(--ciel-fonce); -webkit-mask: var(--ic) center / 24px 24px no-repeat; mask: var(--ic) center / 24px 24px no-repeat; }
.kit > p strong { grid-column: 2; font-weight: 800; font-size: 16px; color: var(--encre); }
.voix-noms { display: flex; flex-wrap: wrap; gap: 8px; }
.voix-noms > p { padding: 6px 12px; border-radius: 14px; border: 2px solid currentColor; font-weight: 800; font-size: 14px; }
.extrait p { font-weight: 700; }
.extrait p.narration { font-weight: 400; }

/* ---------------------------------------------------------------- tableau des aventures */
.planche-grille.wp-block-list { margin: 0; padding: 0; list-style: none; }
.planche-grille li:nth-child(-n+4)::before { background-image: var(--etoile-corail); }
.inscription-piege { position: absolute !important; width: 1px; height: 1px; margin: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.inscription-merci { font-weight: 800; font-size: 17px; line-height: 1.5; background: var(--menthe); color: var(--menthe-fonce); border-radius: 20px; padding: 16px 20px; max-width: 520px; }
.inscription-erreur { font-weight: 700; font-size: 15px; color: var(--brique); }

/* ---------------------------------------------------------------- langues */
.langue-nom:has(bdo[dir="rtl"]), .langue-exemple:has(bdo[dir="rtl"]) { text-align: right; }
.langue-nom:has(bdo[lang="ar"]) { line-height: 1.38; }

/* ---------------------------------------------------------------- étapes, formats */
.etape-num { padding: 0; }
.etape-titre { margin: 0; line-height: normal; }

/* ---------------------------------------------------------------- pied de page */
.pied-liens.wp-block-list, .langues-liste { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.langues-liste a { display: block; color: var(--sable); text-decoration: none; font-size: 15px; }
.langues-liste a:hover { color: #fff; text-decoration: underline; }

/* ---------------------------------------------------------------- téléphone */
@media (max-width: 599px) {
  .wp-block-navigation.nav-principale { order: -1; }
  .entete .logo { flex-grow: 1; justify-content: center; }
  .entete .actions { margin: 0; }
  .entete .langue, .entete .recherche { display: none; }
  .panier .wc-block-mini-cart__button { width: 44px; padding: 0; justify-content: center; }
  .panier .wc-block-mini-cart__badge { display: none; }
  .panier .wc-block-mini-cart__quantity-badge::before { width: 20px; height: 20px; }
  .hero-boutons { width: 100%; }
  .hero-boutons .bouton-corail { width: 100%; }
  .hero-boutons .bouton-corail .wp-block-button__link { box-sizing: border-box; width: 100%; height: 56px; font-size: 17px; }
  .hero-boutons .bouton-corail .wp-block-button__link::after { display: none; }
  .hero-boutons .bouton-contour { display: none; }
  .mini-tableau-titre::after { width: 108px; margin-top: 6px; aspect-ratio: 108 / 20; background-image: var(--rangee-mini); }
  .une-action .wp-block-buttons, .une-bouton .wp-block-button { width: 100%; }
  .une-bouton .wp-block-button[class*="bouton-"] .wp-block-button__link { box-sizing: border-box; width: 100%; height: 52px; font-size: 16px; }
  .voix-noms { display: none; }
  .langues-liste a { font-size: 14px; }
  .inscription button { background: var(--encre); }
}

/* ================================================================ BOUTIQUE (Boutique.dc.html) */
.fil, .woocommerce-breadcrumb { margin: 0; font-size: 14px; font-weight: 700; color: var(--encre-douce); }
.fil a, .woocommerce-breadcrumb a { color: var(--encre-douce); text-decoration: none; }
.fil a:hover, .woocommerce-breadcrumb a:hover { color: var(--corail-fonce); }
.boutique-tete { padding: 40px var(--bord) 28px; display: flex; flex-direction: column; gap: 22px; }
.boutique-titre-ligne { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.boutique-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(36px, calc(36px + 20 * (100vw - 390px) / 1050), 56px); letter-spacing: -1px; line-height: normal; }
.titre-archive { display: flex; flex-direction: column; gap: 8px; }
.boutique-intro { margin: 0; font-size: 17px; line-height: 1.5; color: var(--encre-douce); max-width: 640px; }
.boutique-intro p { margin: 0; }
.recherche-boutique.wp-block-search { width: 420px; flex-shrink: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.recherche-boutique .wp-block-search__label { margin: 0; font-weight: 800; font-size: 14px; }
.recherche-boutique .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.recherche-boutique .wp-block-search__input { box-sizing: border-box; height: 52px; padding: 0 20px; border: 2px solid var(--encre); border-radius: 26px; background: #fff; font-family: var(--texte); font-size: 16px; color: var(--encre); }
.puces-moments { gap: 10px; }
.puces-moments .wp-block-button { margin: 0; }
.puces-moments .wp-block-button__link { box-sizing: border-box; height: 48px; padding: 0 18px 0 12px; border: 2px solid var(--encre); border-radius: 24px; background: #fff; color: var(--encre); font-family: var(--texte); font-weight: 800; font-size: 15px; line-height: normal; display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.puces-moments .wp-block-button__link::before { content: ""; width: 24px; height: 24px; background: currentColor; -webkit-mask: var(--ic) center / 20px 20px no-repeat; mask: var(--ic) center / 20px 20px no-repeat; }
.puces-moments .wp-block-button.est-actif .wp-block-button__link { background: var(--soleil); }
.puces-moments .wp-block-button__link:hover { color: var(--encre); background: var(--soleil-clair); }

.boutique-corps { padding: 0 var(--bord) 72px; display: flex; gap: 32px; align-items: flex-start; }
/* filtres : boîte blanche de 280 px (le tiroir « Filtrer les produits » ne sert que sur téléphone) */
.wp-block-woocommerce-product-filters.filtres { width: 332px; flex-shrink: 0; margin: 0; }
.filtres .wc-block-product-filters__open-overlay { display: none; }
.filtres .wc-block-product-filters__overlay, .filtres .wc-block-product-filters__overlay-wrapper, .filtres .wc-block-product-filters__overlay-dialog { position: static; display: block; inset: auto; width: auto; height: auto; background: none; transform: none; opacity: 1; visibility: visible; pointer-events: auto; padding: 0; }
.filtres .wc-block-product-filters__overlay-header, .filtres .wc-block-product-filters__overlay-footer { display: none; }
.filtres .wc-block-product-filters__overlay-content { background: #fff; border-radius: 24px; padding: 24px; display: flex; flex-direction: column; gap: 24px; border: 2px solid var(--bordure); overflow: visible; }
.filtre-titre { margin: 0 0 8px; font-family: var(--titre); font-weight: 700; font-size: 19px; line-height: normal; }
.filtres .wc-block-product-filter-checkbox-list fieldset { border: 0; margin: 0; padding: 0; }
.filtres .wc-block-product-filter-checkbox-list__items { display: flex; flex-direction: column; gap: 10px; }
.filtres .wc-block-product-filter-checkbox-list__label { display: flex; align-items: center; gap: 10px; min-height: 32px; font-size: 15px; font-weight: 600; color: var(--encre); cursor: pointer; }
.filtres .wc-block-product-filter-checkbox-list__input-wrapper { display: flex; }
.filtres .wc-block-product-filter-checkbox-list .wc-block-product-filter-checkbox-list__input { appearance: auto !important; -webkit-appearance: checkbox !important; width: 20px; height: 20px; margin: 0; accent-color: var(--corail-fonce); border: 0; background: none; box-shadow: none; }
.filtres .wc-block-product-filter-checkbox-list__text { font-size: 15px; font-weight: 600; }
.filtres .wc-block-product-filter-checkbox-list__input-wrapper svg { display: none; }
.filtres .wc-block-product-filter-checkbox-list__show-more { font-weight: 800; font-size: 14px; color: var(--encre); background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; }
.filtres-actifs .wc-block-product-filter-removable-chips { display: none; }
.bouton-effacer .wp-block-button__link { box-sizing: border-box; width: 100%; height: 48px; padding: 0 18px; font-size: 15px; justify-content: center; }
.filtres-actifs .wp-block-buttons, .filtres-actifs .wp-block-button { display: block; width: 100%; }

.boutique-resultats { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.boutique-barre { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.resultats .woocommerce-result-count, .woocommerce-result-count { margin: 0; font-weight: 800; font-size: 17px; }
.tri { display: flex; align-items: center; gap: 10px; }
.tri-etiquette { font-weight: 700; font-size: 15px; }
.tri-choix .woocommerce-ordering { margin: 0; }
.tri-choix select { height: 44px; padding: 0 14px; border-radius: 22px; border: 2px solid var(--encre); background-color: #fff; font-family: var(--texte); font-weight: 700; font-size: 15px; color: var(--encre); }
.grille-boutique { margin: 0; }
.grille-boutique .wc-block-components-notices { display: none; }
.grille-boutique ul.wc-block-product-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; max-width: none; }
.grille-boutique .wc-block-product { margin: 0; padding: 0; width: auto; max-width: none; }
.carte-produit { height: 100%; box-sizing: border-box; background: #fff; border-radius: 24px; overflow: hidden; border: 2px solid var(--bordure); display: flex; flex-direction: column; }
.carte-visuel { height: 230px; box-sizing: border-box; position: relative; display: flex; align-items: flex-end; padding: 20px; background: var(--soleil-clair); }
.couleur-lilas .carte-visuel { background: var(--lilas); } .couleur-ciel .carte-visuel { background: var(--ciel); } .couleur-azur .carte-visuel { background: var(--azur); }
.couleur-soleil .carte-visuel { background: var(--soleil); } .couleur-soleil-clair .carte-visuel { background: var(--soleil-clair); } .couleur-menthe .carte-visuel { background: var(--menthe); }
.couleur-corail .carte-visuel { background: var(--corail); } .couleur-peche .carte-visuel { background: var(--peche); } .couleur-orange .carte-visuel { background: var(--orange); }
.couleur-lime .carte-visuel { background: var(--lime); }
.carte-image { position: absolute; inset: 0; margin: 0; }
.carte-image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; }
.carte-image:has(.woocommerce-placeholder) { display: none; }
.carte-visuel:has(.carte-image img:not(.woocommerce-placeholder)) .carte-titre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.carte-moment { position: absolute; top: 16px; left: 16px; z-index: 1; padding: 6px 12px; border-radius: 14px; background: #fff; font-weight: 800; font-size: 13px; line-height: normal; display: flex; align-items: center; }
.carte-type { position: absolute; top: 16px; right: 16px; z-index: 1; padding: 6px 10px; border-radius: 14px; background: var(--encre); color: var(--creme); font-weight: 800; font-size: 12px; line-height: normal; }
.carte-moment:empty, .carte-type:empty { display: none; }
.terme { display: inline-flex; align-items: center; gap: 4px; }
.carte-moment .terme::before, .suite-sujet .terme::before { content: ""; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--ic) center / 16px 16px no-repeat; mask: var(--ic) center / 16px 16px no-repeat; }
.suite-sujet .terme::before { display: none; }
.terme-dodo { --ic: var(--ic-moon); } .terme-trajet { --ic: var(--ic-car); } .terme-routine { --ic: var(--ic-sun); } .terme-maternelle { --ic: var(--ic-backpack); }
.terme-langues { --ic: var(--ic-chat); } .terme-resto { --ic: var(--ic-utensils); } .terme-voyage { --ic: var(--ic-plane); } .terme-defis { --ic: var(--ic-key); } .terme-apprendre { --ic: var(--ic-brain); }
h3.carte-titre { position: relative; z-index: 1; margin: 0; max-width: 260px; font-family: var(--titre); font-weight: 700; font-size: 26px; line-height: 1.08; }
.carte-titre a { color: inherit; text-decoration: none; }
.carte-corps { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px; flex-grow: 1; }
.carte-meta { display: flex; flex-wrap: wrap; gap: 14px; font-size: 14px; font-weight: 700; color: var(--encre-douce); }
.carte-meta p:empty { display: none; }
.carte-meta p:not(:empty) ~ p:not(:empty)::before { content: "·"; margin-inline-end: 14px; }
.carte-langues { display: flex; flex-wrap: wrap; gap: 6px; }
.carte-langues .terme { min-width: 32px; height: 26px; padding: 0 8px; box-sizing: border-box; border-radius: 13px; background: var(--lin); font-weight: 800; font-size: 12px; justify-content: center; }
.carte-bas { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.carte-bas .prix, .carte-bas .prix .wc-block-components-product-price { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 26px; line-height: normal; color: var(--corail-fonce); text-align: start; }
.carte-bouton.wp-block-button, .carte-bouton { position: relative; z-index: 2; margin: 0; }
.carte-bouton .wp-block-button__link, .carte-bouton .wc-block-components-product-button__button { box-sizing: border-box; height: 44px; min-height: 0; padding: 0 18px; border: 0; border-radius: 22px; background: var(--encre); color: var(--creme); font-family: var(--texte); font-weight: 800; font-size: 14px; line-height: normal; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; white-space: nowrap; }
.carte-bouton .wp-block-button__link:hover { color: var(--creme); opacity: .9; }
.carte-bouton .added_to_cart { display: none; }
.pagination { margin-top: 12px; gap: 8px; font-weight: 800; }
.pagination a, .pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; box-sizing: border-box; border-radius: 22px; border: 2px solid var(--encre); color: var(--encre); text-decoration: none; background: #fff; }
.pagination .page-numbers.current { background: var(--encre); color: var(--creme); }
.aucun-resultat { background: #fff; border-radius: 24px; padding: 40px; text-align: center; font-size: 18px; font-weight: 700; }

@media (max-width: 1199px) {
  .grille-boutique ul.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .boutique-titre-ligne { flex-direction: column; align-items: stretch; gap: 16px; }
  .recherche-boutique.wp-block-search { width: auto; }
  .boutique-corps { flex-direction: column; align-items: stretch; gap: 20px; }
  .wp-block-woocommerce-product-filters.filtres { width: auto; }
  /* tiroir de filtres natif de WooCommerce */
  .filtres .wc-block-product-filters__open-overlay { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 20px; border: 2px solid var(--encre); border-radius: 24px; background: #fff; color: var(--encre); font-family: var(--texte); font-weight: 800; font-size: 15px; }
  .filtres .wc-block-product-filters__overlay { position: fixed; inset: 0; z-index: 1000; display: none; background: rgba(31, 43, 69, .4); }
  .filtres.is-overlay-opened .wc-block-product-filters__overlay, .filtres .wc-block-product-filters__overlay.is-open { display: block; }
  .filtres .wc-block-product-filters__overlay-dialog { position: absolute; inset: 0 0 0 auto; width: min(360px, 90vw); background: var(--creme); overflow-y: auto; padding: 16px; }
  .filtres .wc-block-product-filters__overlay-header { display: flex; justify-content: flex-end; }
  .filtres .wc-block-product-filters__close-overlay { background: none; border: 0; font-weight: 800; color: var(--encre); }
}
@media (max-width: 599px) {
  .boutique-tete { padding: 24px 16px 20px; gap: 16px; }
  .boutique-corps { padding: 0 16px 40px; }
  .puces-moments { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; }
  .puces-moments .wp-block-button { flex-shrink: 0; }
  .grille-boutique ul.wc-block-product-template { grid-template-columns: minmax(0, 1fr); }
  .carte-visuel { height: 190px; }
}

/* ================================================================ FICHE PRODUIT (Produit.dc.html) */
.fiche { padding: 32px var(--bord) 72px; display: flex; flex-direction: column; gap: 24px; }
.fiche .woocommerce-breadcrumb { margin: 0; }
.fiche-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; }
.fiche-visuel { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
/* panneau de couleur (couleur de la carte du produit) avec deux ronds décoratifs */
.couverture-attente, .fiche-galerie .woocommerce-product-gallery__wrapper { position: relative; height: 560px; border-radius: 32px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--fond-fiche, var(--orange)); }
.couverture-attente::before, .fiche-galerie .woocommerce-product-gallery__wrapper::before { content: ""; position: absolute; top: -60px; right: -60px; width: 240px; height: 240px; border-radius: 50%; background: var(--soleil); }
.couverture-attente::after, .fiche-galerie .woocommerce-product-gallery__wrapper::after { content: ""; position: absolute; bottom: -40px; left: -40px; width: 180px; height: 180px; border-radius: 50%; background: var(--peche); }
body.couleur-lilas { --fond-fiche: var(--lilas); } body.couleur-ciel { --fond-fiche: var(--ciel); } body.couleur-azur { --fond-fiche: var(--azur); }
body.couleur-soleil { --fond-fiche: var(--soleil); } body.couleur-soleil-clair { --fond-fiche: var(--soleil-clair); } body.couleur-menthe { --fond-fiche: var(--menthe); }
body.couleur-corail { --fond-fiche: var(--corail); } body.couleur-peche { --fond-fiche: var(--peche); } body.couleur-orange { --fond-fiche: var(--orange); } body.couleur-lime { --fond-fiche: var(--lime); }
.fiche-couv { position: relative; z-index: 1; width: 360px; height: 460px; box-sizing: border-box; border-radius: 18px; background: var(--creme); box-shadow: 0 18px 40px rgba(31, 43, 69, 0.2); display: flex; flex-direction: column; padding: 24px; gap: 14px; transform: rotate(-3deg); }
.fiche-couv-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 32px; line-height: 1.05; }
.fiche-couv-zone { flex-grow: 1; border-radius: 12px; border: 3px dashed #E0A070; display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 800; font-size: 14px; padding: 12px; }
.fiche-couv-zone p { margin: 0; }
.fiche-couv-bande { margin: 0; font-weight: 800; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: var(--corail-fonce); }
/* avec de vraies images : image principale posée comme une couverture, miniatures dessous */
.fiche-galerie .woocommerce-product-gallery { margin: 0; width: 100%; float: none; }
.fiche-galerie .woocommerce-product-gallery__image { position: relative; z-index: 1; width: 360px; margin: 0 auto; }
.fiche-galerie .woocommerce-product-gallery__image img { border-radius: 18px; box-shadow: 0 18px 40px rgba(31, 43, 69, 0.2); transform: rotate(-3deg); }
.fiche-galerie .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
.fiche-galerie .flex-control-thumbs li { margin: 0; width: auto; }
.fiche-galerie .flex-control-thumbs img { height: 110px; width: 100%; object-fit: cover; border-radius: 16px; border: 2px solid var(--encre); box-sizing: border-box; opacity: 1; }
.fiche-galerie .woocommerce-product-gallery__trigger { z-index: 2; }

.fiche-infos { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.fiche-pastilles { display: flex; gap: 8px; flex-wrap: wrap; }
.fiche-pastilles .pastille { align-self: auto; padding: 7px 14px; border-radius: 16px; font-weight: 800; font-size: 14px; line-height: normal; display: flex; align-items: center; }
.fiche-pastilles .pastille:empty, .fiche-pastilles .pastille-type:not(:has(.terme)) { display: none; }
.pastille-moment { background: var(--menthe); color: var(--menthe-fonce); }
.pastille-moment .wp-block-post-terms:not(:has(.terme)) { display: none; }
.pastille-moment .wp-block-post-terms + .wp-block-post-terms:has(.terme)::before { content: "\00a0·\00a0"; }
.pastille-age { background: var(--soleil-clair); }
.pastille-type { background: var(--ciel); }
h1.fiche-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(36px, calc(36px + 18 * (100vw - 390px) / 1050), 54px); line-height: 1.02; letter-spacing: -1px; }
.fiche-resume, .fiche-resume p { margin: 0; font-size: 19px; line-height: 1.55; color: var(--encre-douce); }
.fiche-achat { background: #fff; border-radius: 24px; padding: 24px; display: flex; flex-direction: column; gap: 18px; border: 2px solid var(--bordure); }
.fiche-formulaire, .fiche-formulaire form { margin: 0; display: flex; flex-direction: column; gap: 0; }
.fiche-formulaire .achat-ligne { margin-top: 18px; }
.fiche-achat .wc-block-components-notices { margin: 0; }
/* zone de messages WooCommerce : invisible tant qu'elle est vide */
.wc-block-store-notices:not(:has(.woocommerce-message, .woocommerce-error, .woocommerce-info, .wc-block-components-notice-banner, li)) { display: none; }
.fiche-formulaire .single_variation_wrap { margin: 0; }
.choix-legende { margin: 0 0 10px; font-weight: 800; font-size: 15px; }
.choix-langue { display: flex; flex-direction: column; }
.choix-pastilles .wc-block-product-filter-chips__items { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.choix-pastilles .wc-block-product-filter-chips__item { box-sizing: border-box; height: 52px; margin: 0; padding: 0 10px; border-radius: 26px; border: 2px solid var(--encre); background: #fff; color: var(--encre); font-family: var(--texte); font-weight: 800; font-size: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.choix-pastilles .wc-block-product-filter-chips__item[aria-checked="true"] { background: var(--encre); color: var(--creme); }
.choix-pastilles .wc-block-product-filter-chips__item:disabled, .choix-pastilles .wc-block-product-filter-chips__item[aria-disabled="true"] { opacity: .45; }
.choix-pastilles .wc-block-product-filter-chips__label, .choix-pastilles .wc-block-product-filter-chips__text { color: inherit; font: inherit; }
.achat-ligne { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.achat-prix { display: flex; flex-direction: column; }
.fiche-prix, .fiche-prix .wc-block-components-product-price { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 44px; line-height: normal; color: var(--corail-fonce); }
.fiche-format { margin: 0; font-size: 14px; font-weight: 700; color: var(--encre-douce); }
.bouton-acheter.wp-block-button, .bouton-acheter { margin: 0; }
.bouton-acheter .wp-block-button__link, .bouton-acheter .wc-block-components-product-button__button { box-sizing: border-box; height: 64px; padding: 0 32px; border: 0; border-radius: 32px; background: var(--corail-fonce); color: #fff; font-family: var(--texte); font-weight: 800; font-size: 18px; display: inline-flex; align-items: center; gap: 10px; }
.bouton-acheter .wp-block-button__link::before, .bouton-acheter .wc-block-components-product-button__button::before { content: ""; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ic-download) center / contain no-repeat; mask: var(--ic-download) center / contain no-repeat; }
.fiche-bilingue { margin: 0; background: var(--creme); border-radius: 16px; padding: 14px 16px; font-size: 15px; line-height: 1.45; }
.assurances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.assurances > p { margin: 0; display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; }
.assurances > p::before { content: ""; width: 36px; height: 36px; flex-shrink: 0; background: var(--vert); -webkit-mask: var(--ic) center / 22px 22px no-repeat; mask: var(--ic) center / 22px 22px no-repeat; }
.fiche-licence { margin: 0; font-size: 14px; color: var(--encre-douce); }

/* description longue (compositions « Fiche · … ») */
.titre-fiche { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(28px, calc(28px + 12 * (100vw - 390px) / 1050), 40px); line-height: normal; }
.fiche-kit { padding: 72px var(--bord); display: flex; flex-direction: column; gap: 28px; }
.fiche-kit-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.kit-carte { position: relative; border-radius: 24px; padding: 24px; display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; align-content: start; }
.kit-carte::before { content: ""; grid-row: 1 / span 2; width: 52px; height: 52px; border-radius: 16px; background: #fff; }
.kit-carte::after { content: ""; position: absolute; left: 37px; top: 37px; width: 26px; height: 26px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.kit-titre { margin: 0; grid-column: 2; font-family: var(--titre); font-weight: 700; font-size: 21px; line-height: normal; }
.kit-desc { margin: 0; grid-column: 2; font-size: 15px; line-height: 1.45; color: var(--encre-ciel); }
.fiche-personnages { padding: 72px var(--bord); display: flex; flex-direction: column; gap: 28px; }
.fiche-personnages .tete-scindee .intro { max-width: 480px; font-size: 17px; }
.fiche-personnages .tete-empilee { gap: 8px; }
.personnages-grille { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 14px; }
.personnage { background: #fff; border-radius: 22px; padding: 18px 14px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; border-top: 8px solid currentColor; }
.portrait { position: relative; width: 84px; height: 84px; border-radius: 50%; border: 4px solid currentColor; background: var(--lin); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.portrait-aide { margin: 0; font-size: 11px; font-weight: 800; color: var(--gris-bleu); }
.portrait .wp-block-image { position: absolute; inset: 0; margin: 0; }
.portrait .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.portrait .wp-block-image:not(:has(img[src])) { display: none; }
.portrait:has(img[src]) .portrait-aide { display: none; }
.personnage-nom { margin: 0; font-weight: 800; font-size: 16px; line-height: 1.2; }
.personnage-desc { margin: 0; font-size: 13px; line-height: 1.4; color: var(--encre-douce); }
.fiche-coin { padding: 72px var(--bord); display: flex; flex-direction: column; gap: 28px; }
.fiche-coin .surtitre { color: var(--menthe-fonce); }
.fiche-coin .tete-empilee { gap: 8px; }
.trajet-grille { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 10px; }
.trajet-etape { background: #fff; border-radius: 20px; padding: 16px 12px; display: flex; flex-direction: column; gap: 8px; min-height: 150px; box-sizing: border-box; }
.trajet-num { margin: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--encre); color: var(--creme); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; }
.trajet-organe { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 19px; line-height: 1.1; }
.trajet-histoire { margin: 0; font-size: 13px; font-weight: 700; line-height: 1.35; color: var(--menthe-fonce); }
.coin-notes { display: flex; gap: 16px; }
.coin-note { margin: 0; flex-grow: 1; background: #fff; border-radius: 20px; padding: 18px 22px; font-size: 16px; line-height: 1.5; }
.coin-source { margin: 0; width: 380px; flex-shrink: 0; box-sizing: content-box; background: #fff; border-radius: 20px; padding: 18px 22px; font-size: 14px; line-height: 1.5; color: var(--encre-douce); }
.fiche-niveaux { padding: 72px var(--bord); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.niveau { background: #fff; border-radius: 28px; padding: 32px; display: flex; flex-direction: column; gap: 12px; border: 2px solid var(--bordure); }
.niveau-titre { margin: 0; display: flex; align-items: center; gap: 12px; font-family: var(--titre); font-weight: 700; font-size: 26px; }
.niveau-titre::before { content: ""; width: 40px; height: 40px; flex-shrink: 0; background: var(--vert); -webkit-mask: var(--ic) center / 28px 28px no-repeat; mask: var(--ic) center / 28px 28px no-repeat; }
.niveau-defi .niveau-titre::before { background: var(--corail-fonce); }
.niveau-desc { margin: 0; font-size: 17px; line-height: 1.55; color: var(--encre-douce); }
.fiche-serie, .suite { padding: 0 var(--bord) 72px; display: flex; flex-direction: column; gap: 24px; }
.suite:not(:has(.wc-block-product)) { display: none; }
.serie-grille, .suite-produits ul.wc-block-product-template { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; max-width: none; }
.suite-produits { margin: 0; display: flex; flex-direction: column; gap: 24px; }
.suite-produits .wc-block-product { margin: 0; width: auto; max-width: none; }
.suite-produits .wc-block-components-notices { display: none; }
.serie-carte, .suite-carte { height: 100%; border-radius: 24px; padding: 24px; min-height: 190px; box-sizing: border-box; display: flex; flex-direction: column; gap: 8px; }
.suite-carte { background: var(--soleil-clair); }
.couleur-lilas .suite-carte { background: var(--lilas); } .couleur-ciel .suite-carte { background: var(--ciel); } .couleur-azur .suite-carte { background: var(--azur); }
.couleur-soleil .suite-carte { background: var(--soleil); } .couleur-menthe .suite-carte { background: var(--menthe); } .couleur-corail .suite-carte { background: var(--corail); }
.couleur-peche .suite-carte { background: var(--peche); } .couleur-orange .suite-carte { background: var(--orange); } .couleur-lime .suite-carte { background: var(--lime); }
.serie-sujet, .suite-sujet { margin: 0; font-weight: 800; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; }
.serie-nom, h3.suite-nom { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 24px; line-height: 1.1; }
.suite-nom a { color: inherit; text-decoration: none; }
.serie-bas, .suite-bas { margin: auto 0 0; font-weight: 800; font-size: 15px; display: flex; gap: 6px; flex-wrap: wrap; }
.suite-bas .suite-prix, .suite-bas .suite-prix .wc-block-components-product-price { margin: 0; font: inherit; color: inherit; }
.suite-bas p:empty { display: none; }
.suite-bas > :not(:first-child):not(:empty)::before { content: "· "; }

/* ================================================================ ADOS & PARENTS (Ados.dc.html) */
.ados-hero { padding: 72px var(--bord); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; }
.ados-hero-texte { display: flex; flex-direction: column; gap: 22px; }
h1.ados-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(40px, calc(40px + 28 * (100vw - 390px) / 1050), 68px); line-height: 1.02; letter-spacing: -1.5px; }
.ados-hero .chapo { margin: 0; font-size: 20px; line-height: 1.55; color: var(--sable); max-width: 560px; }
.onglets { display: flex; flex-direction: column; gap: 14px; }
.onglet { position: relative; min-height: 88px; box-sizing: border-box; padding: 16px 20px; border-radius: 22px; border: 3px solid transparent; background: var(--nuit-douce); color: var(--creme); display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 16px; row-gap: 2px; align-content: center; cursor: pointer; }
.onglet::before { content: ""; grid-row: 1 / span 2; align-self: center; width: 52px; height: 52px; border-radius: 16px; background: #fff; }
.onglet::after { content: ""; position: absolute; left: 36px; top: 50%; width: 26px; height: 26px; margin-top: -13px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
.onglet-titre { margin: 0; grid-column: 2; font-family: var(--titre); font-weight: 700; font-size: 24px; }
.onglet-sous-titre { margin: 0; grid-column: 2; font-size: 15px; font-weight: 600; }
.onglet.est-actif { border-color: var(--soleil); color: var(--encre); }
.onglet.est-actif.couleur-ciel { background: var(--ciel); } .onglet.est-actif.couleur-soleil-clair { background: var(--soleil-clair); } .onglet.est-actif.couleur-corail { background: var(--corail); }
.onglets:not(.js-pret) .onglet:first-child { border-color: var(--soleil); color: var(--encre); background: var(--ciel); }
.ados-contenu { padding: 64px var(--bord); display: flex; flex-direction: column; gap: 28px; }
.onglet-panneau { display: none; flex-direction: column; gap: 28px; }
.onglet-panneau.est-actif, .onglet-panneaux:not(.js-pret) .onglet-panneau:first-child { display: flex; }
.onglet-tete { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.onglet-intro { margin: 0; font-size: 17px; color: var(--encre-douce); }
.ados-produits { margin: 0; }
.ados-produits .wc-block-components-notices { display: none; }
.ados-produits ul.wc-block-product-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; max-width: none; }
.ados-produits .wc-block-product { margin: 0; width: auto; max-width: none; }
.ados-carte { height: 100%; min-height: 260px; box-sizing: border-box; background: #fff; border-radius: 24px; padding: 26px; border: 2px solid var(--bordure); display: flex; flex-direction: column; gap: 12px; }
.ados-etiquette { align-self: flex-start; padding: 6px 12px; border-radius: 14px; font-weight: 800; font-size: 13px; background: var(--ciel); }
.couleur-soleil-clair .ados-etiquette { background: var(--soleil-clair); } .couleur-corail .ados-etiquette { background: var(--corail); }
.ados-etiquette a { color: inherit; text-decoration: none; pointer-events: none; }
.ados-etiquette:not(:has(a)) { display: none; }
h3.ados-nom { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 26px; line-height: 1.1; }
.ados-nom a { color: inherit; text-decoration: none; }
.ados-desc, .ados-desc p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--encre-douce); }
.ados-bas { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ados-prix, .ados-prix .wc-block-components-product-price { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 24px; color: var(--corail-fonce); }
a.ados-voir { margin-left: auto; height: 44px; padding: 0 18px; border-radius: 22px; background: var(--encre); color: var(--creme); font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; text-decoration: none; }
a.ados-voir:hover { color: var(--creme); }
.apercus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.apercu { border-radius: 28px; padding: 30px; display: flex; flex-direction: column; gap: 14px; }
.apercu-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 26px; }
.checklist.wp-block-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.checklist li { display: flex; align-items: center; gap: 12px; min-height: 32px; font-size: 16px; font-weight: 700; }
.checklist li::before { content: ""; width: 22px; height: 22px; box-sizing: border-box; flex-shrink: 0; border-radius: 5px; border: 2px solid var(--encre); background: #fff; }
.checklist li:nth-child(-n+3)::before { background: var(--encre) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E") center / 14px no-repeat; }
.journee { display: flex; flex-direction: column; gap: 14px; }
.journee-ligne { margin: 0; display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 14px; padding: 10px 14px; font-size: 16px; font-weight: 700; }
.journee-ligne strong { flex: 0 0 70px; font-weight: 800; font-size: 15px; color: var(--ciel-fonce); }
.parents { padding: 72px var(--bord); display: flex; flex-direction: column; gap: 32px; scroll-margin-top: 20px; }
.parents .surtitre { color: var(--menthe-fonce); }
.parents-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(30px, calc(30px + 18 * (100vw - 390px) / 1050), 48px); letter-spacing: -1px; line-height: normal; }
.parents-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.guide { border-radius: 28px; padding: 34px; display: flex; flex-direction: column; gap: 18px; }
.guide-etiquette { margin: 0; align-self: flex-start; padding: 6px 12px; border-radius: 14px; font-weight: 800; font-size: 13px; }
.guide-titre { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 36px; line-height: 1.05; }
.guide-devise { margin: 0; font-weight: 800; font-size: 17px; color: var(--menthe-fonce); }
.guide-desc { margin: 0; font-size: 16px; line-height: 1.55; color: var(--encre-douce); }
.semaines { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.semaine { margin: 0; border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 2px; min-height: 76px; box-sizing: border-box; font-size: 13px; font-weight: 700; line-height: 1.3; }
.semaine strong { font-weight: 800; font-size: 12px; }
.guide-bas { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.guide-prix { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 28px; color: var(--corail-fonce); }
.guide-bouton .wp-block-button__link { height: 50px; padding: 0 22px; font-size: 15px; }
.famille-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.famille-carte { position: relative; border-radius: 24px; padding: 22px; display: flex; flex-direction: column; gap: 10px; min-height: 220px; box-sizing: border-box; }
.famille-carte::before { content: ""; width: 48px; height: 48px; flex-shrink: 0; border-radius: 14px; background: #fff; }
.famille-carte::after { content: ""; position: absolute; left: 34px; top: 34px; width: 24px; height: 24px; background: var(--encre); -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
h3.famille-nom { margin: 0; font-family: var(--titre); font-weight: 700; font-size: 22px; line-height: 1.1; }
.famille-desc { margin: 0; font-size: 14px; line-height: 1.45; }
.famille-age { margin: auto 0 0; font-weight: 800; font-size: 14px; }
.page-note { padding: 24px var(--bord) 40px; font-size: 14px; color: var(--encre-douce); }
.page-note p { margin: 0; }

/* ================================================================ PAGES SIMPLES, PANIER, PAIEMENT, 404 */
.page-tete { padding: 56px var(--bord) 24px; }
.titre-page { margin: 0; font-family: var(--titre); font-weight: 700; font-size: clamp(36px, calc(36px + 20 * (100vw - 390px) / 1050), 56px); letter-spacing: -1px; line-height: 1.05; }
.page-contenu { max-width: 760px; margin: 0 auto; padding: 0 var(--gouttiere) 72px; font-size: 17px; line-height: 1.6; }
.page-contenu > * + * { margin-top: 1em; }
.page-contenu h2 { font-size: 30px; margin-top: 1.4em; } .page-contenu h3 { font-size: 23px; margin-top: 1.2em; }
.page-contenu a { color: var(--corail-fonce); }
.page-contenu.page-woo { max-width: var(--largeur); }
.a-rediger { background: var(--soleil-clair); border-radius: 16px; padding: 16px 20px; font-weight: 700; }
.page-404 { padding: 96px var(--bord); display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.page-404 .chapo { margin: 0; font-size: 19px; line-height: 1.55; color: var(--encre-douce); max-width: 560px; }
.page-404-boutons .wp-block-button__link { height: 56px; padding: 0 26px; font-size: 17px; }
/* blocs Panier et Paiement de WooCommerce aux couleurs du site */
.page-woo .wc-block-cart__submit-button, .page-woo .wc-block-components-checkout-place-order-button, .wc-block-mini-cart__footer-actions .wp-block-button__link { border-radius: 999px; background: var(--corail-fonce); color: #fff; font-family: var(--texte); font-weight: 800; border: 0; min-height: 56px; }
.page-woo .wc-block-components-text-input input, .page-woo .wc-block-components-combobox .wc-block-components-combobox-control input, .page-woo .wc-block-components-form .wc-block-components-text-input input { border: 2px solid var(--encre); border-radius: 14px; background: #fff; }
.page-woo .wc-block-components-totals-wrapper, .page-woo .wc-block-components-sidebar { font-family: var(--texte); }
.page-woo .wc-block-cart-items, .page-woo .wc-block-components-sidebar-layout .wc-block-components-main { background: #fff; border-radius: 24px; padding: 16px 20px; border: 2px solid var(--bordure); box-sizing: border-box; }
.page-woo .wc-block-components-title, .page-woo .wc-block-components-checkout-step__title { font-family: var(--titre); font-weight: 700; }
.page-woo .wc-block-components-product-name { font-weight: 800; color: var(--encre); text-decoration: none; }

@media (max-width: 1199px) {
  .fiche-kit-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .personnages-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trajet-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .serie-grille, .suite-produits ul.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ados-produits ul.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .fiche-grille, .ados-hero, .apercus, .parents-grille { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .coin-notes { flex-direction: column; }
  .coin-source { width: auto; }
  .onglet-tete { flex-direction: column; align-items: flex-start; gap: 8px; }
  .fiche-niveaux { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 599px) {
  .fiche { padding: 20px 16px 40px; }
  .couverture-attente, .fiche-galerie .woocommerce-product-gallery__wrapper { height: 380px; border-radius: 24px; }
  .fiche-couv { width: 240px; height: 310px; padding: 16px; }
  .fiche-couv-titre { font-size: 22px; }
  .choix-pastilles .wc-block-product-filter-chips__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .achat-ligne { flex-direction: column; align-items: stretch; }
  .bouton-acheter, .bouton-acheter .wp-block-button__link, .bouton-acheter .wc-block-components-product-button__button { width: 100%; justify-content: center; }
  .assurances { grid-template-columns: minmax(0, 1fr); }
  .fiche-kit, .fiche-personnages, .fiche-coin, .fiche-niveaux { padding: 40px 16px; }
  .fiche-serie, .suite { padding: 0 16px 40px; }
  .fiche-kit-grille, .serie-grille, .suite-produits ul.wc-block-product-template, .ados-produits ul.wc-block-product-template, .famille-grille { grid-template-columns: minmax(0, 1fr); }
  .personnages-grille, .trajet-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ados-hero { padding: 40px 16px; }
  .ados-contenu, .parents { padding: 40px 16px; }
  .semaines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide { padding: 22px; }
  .page-tete { padding: 32px 16px 16px; }
  .page-404 { padding: 56px 16px; }
}

/* ================================================================ ARABE (droite à gauche)
   Les grilles et rangées se retournent seules ; seules les icônes posées en calque
   (position absolue) doivent être replacées en miroir. */
[dir="rtl"] .logo::after { left: auto; right: 9px; transform: rotate(8deg); }
[dir="rtl"] .logo::before { transform: rotate(8deg); }
[dir="rtl"] .mission::after { left: auto; right: 34px; }
[dir="rtl"] .monde::after { left: auto; right: 38px; }
[dir="rtl"] .etape::after { left: auto; right: 98px; }
[dir="rtl"] .club::after { left: auto; right: 59px; }
[dir="rtl"] .kit-carte::after { left: auto; right: 37px; }
[dir="rtl"] .onglet::after { left: auto; right: 36px; }
[dir="rtl"] .famille-carte::after { left: auto; right: 34px; }
[dir="rtl"] .carte-moment { left: auto; right: 16px; }
[dir="rtl"] .carte-type { right: auto; left: 16px; }
[dir="rtl"] .lien-fleche a::before, [dir="rtl"] .wp-block-button.bouton-fleche .wp-block-button__link::after { transform: scaleX(-1); }
[dir="rtl"] .recherche .wp-block-search__input { right: auto; left: 52px; }
[dir="rtl"] .langue ul { right: auto; left: 0; }
@media (max-width: 599px) {
  [dir="rtl"] .mission::after { right: 25px; }
  [dir="rtl"] .monde::after { right: 25px; }
  [dir="rtl"] .etape::after { right: 78px; }
  [dir="rtl"] .club::after { right: 31px; }
}
