/*
 * Composants communs des outils (refonte du 09/11/2026). Les couleurs viennent de la palette de la catégorie
 * (--c, --c-fond, --c-doux, --c-fonce, définies dans le thème) : un même composant prend l'identité de chaque niche.
 * Mobile d'abord : une colonne, cibles tactiles de 44 px au moins.
 */
/* 08/11/2026 : une classe qui fixe display (ex. .ow-grille-champs en grid) l'emportait sur l'attribut hidden :
   trois panneaux de l'outil grossesse s'affichaient ensemble. hidden doit toujours masquer. */
[hidden]{display:none!important}
.ow-chapeau{font-size:1.05rem;color:var(--ow-texte-2);margin:0 0 1rem}

/* Carte de l'outil : posée à cheval sur le bandeau de page, c'est le premier élément vu. */
.ow-outil{position:relative;background:var(--ow-carte);border:1px solid var(--ow-bord);border-radius:var(--ow-rayon);padding:1.1rem;margin:-2.2rem 0 .8rem;box-shadow:var(--ow-ombre-f)}
.ow-outil::before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:3px;border-radius:0 0 4px 4px;background:var(--c)}
@media (min-width:640px){.ow-outil{padding:1.5rem 1.6rem}}
.ow-outil[data-pret]{min-height:0!important}
.ow-local{display:flex;align-items:center;font-size:.84rem;color:var(--ow-texte-2);margin:.2rem 0 1.4rem}
/* Ligne « Méthode et sources vérifiées le … » sous les outils santé et argent (audit du 09/11/2026, lot A) : collée à .ow-local. */
.ow-verif{font-size:.84rem;color:var(--ow-texte-2);margin:-1.1rem 0 1.4rem}
.ow-verif a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* Section éditoriale et FAQ de l'accueil (09/11/2026) : colonne de lecture, l'accueil étant large (1120 px). */
.ow-accueil-texte,.ow-accueil-faq{max-width:760px;margin-top:2.6rem}
.ow-accueil-texte p strong{color:var(--ow-texte)}
/* Repère vide #exemples (cible du lien <noscript>) : marge de défilement pour ne pas coller au bord. */
.ow-ancre{scroll-margin-top:1rem}
.ow-grille-champs{display:grid;gap:.85rem;grid-template-columns:1fr}
@media (min-width:560px){.ow-grille-champs.ow-2{grid-template-columns:1fr 1fr}.ow-grille-champs.ow-3{grid-template-columns:repeat(3,1fr)}}
.ow-champ{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.ow-champ label,.ow-legende{font-weight:650;font-size:.9rem}
.ow-champ input,.ow-champ select,.ow-outil textarea{font:inherit;font-size:1.05rem;padding:.7rem .85rem;border:1.5px solid var(--ow-bord-fort);border-radius:var(--ow-rayon-p);background:var(--ow-fond);color:var(--ow-texte);min-height:48px;width:100%;transition:border-color .15s,box-shadow .15s}
.ow-champ input:hover,.ow-champ select:hover{border-color:var(--ow-texte-2)}
.ow-outil textarea{min-height:180px;resize:vertical;line-height:1.5}
.ow-champ input:focus,.ow-champ select:focus,.ow-outil textarea:focus{outline:none;border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent)}
.ow-btn:focus-visible,.ow-onglets button:focus-visible{outline:3px solid var(--ow-focus);outline-offset:2px}
.ow-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.ow-btn{font:inherit;font-weight:700;border:0;border-radius:999px;padding:.72rem 1.3rem;min-height:46px;cursor:pointer;background:var(--c);color:var(--ow-sur-accent);box-shadow:0 6px 16px -8px color-mix(in srgb,var(--c) 80%,transparent);transition:transform .12s ease,filter .15s,box-shadow .15s}
.ow-btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
.ow-btn:active{transform:translateY(0) scale(.98)}
.ow-btn--2{background:var(--ow-carte);color:var(--c-fonce);border:1.5px solid color-mix(in srgb,var(--c) 45%,var(--ow-bord));box-shadow:none}
@media (prefers-color-scheme:dark){.ow-btn--2{color:var(--c)}}
.ow-btn--2:hover{background:var(--c-fond)}
.ow-btn--lien{background:none;border:0;box-shadow:none;color:var(--c-fonce);padding:.5rem .4rem;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.ow-btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
/* Onglets en contrôle segmenté */
.ow-onglets{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:1rem;padding:4px;background:var(--ow-page);border:1px solid var(--ow-bord);border-radius:14px;width:fit-content;max-width:100%}
.ow-onglets button{font:inherit;font-size:.9rem;font-weight:600;padding:.5rem .9rem;min-height:40px;border-radius:10px;border:0;background:transparent;color:var(--ow-texte-2);cursor:pointer}
.ow-onglets button:hover{color:var(--ow-texte)}
.ow-onglets button[aria-pressed="true"]{background:var(--ow-carte);color:var(--c-fonce);box-shadow:0 1px 3px rgba(0,0,0,.14)}
@media (prefers-color-scheme:dark){.ow-onglets button[aria-pressed="true"]{color:var(--c)}}
/* Résultat */
.ow-resultat{margin-top:1.1rem;padding:1.1rem 1.2rem;border-radius:14px;background:var(--c-fond);border:1px solid var(--c-doux);animation:ow-entree .35s ease both}
.ow-resultat[hidden]{display:none}
@keyframes ow-entree{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ow-gros{font-size:clamp(2rem,9vw,2.7rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:.1rem 0;word-break:break-word;color:var(--c-fonce);font-variant-numeric:tabular-nums}
@media (prefers-color-scheme:dark){.ow-gros{color:var(--c)}}
.ow-sous{color:var(--ow-texte-2);margin:.2rem 0}
.ow-erreur{color:var(--ow-erreur);font-weight:600;margin:.6rem 0 0}
.ow-alerte{background:var(--ow-alerte);border-radius:10px;padding:.75rem;margin:.5rem 0}
.ow-tableau{width:100%;border-collapse:collapse;font-size:.95rem;margin:.6rem 0}
.ow-tableau th,.ow-tableau td{text-align:left;padding:.5rem .55rem;border-bottom:1px solid var(--ow-bord)}
.ow-tableau td.ow-num,.ow-tableau th.ow-num{text-align:right;font-variant-numeric:tabular-nums}
.ow-ligne-actif{background:var(--c-fond);font-weight:700}
.ow-chrono{font-variant-numeric:tabular-nums;font-size:clamp(2.8rem,13vw,5.2rem);font-weight:800;text-align:center;letter-spacing:-.02em;margin:.4rem 0}
.ow-barre{height:10px;background:var(--ow-bord);border-radius:99px;overflow:hidden}
.ow-barre>i{display:block;height:100%;background:var(--c);width:0;border-radius:99px;transition:width .3s linear}
.ow-depot{display:block;border:2px dashed color-mix(in srgb,var(--c) 45%,var(--ow-bord-fort));border-radius:var(--ow-rayon);padding:1.8rem 1rem;text-align:center;cursor:pointer;background:var(--c-fond);transition:background .15s,border-color .15s}
.ow-depot.ow-survol,.ow-depot:hover{border-color:var(--c);background:color-mix(in srgb,var(--c-doux) 50%,var(--c-fond))}

/* Briques de rétention (ow-memoire.js) : historique, courbe, séries, lien de résultat. */
.ow-suite:empty{display:none}
.ow-suite{margin:.2rem 0 1rem;display:grid;gap:.8rem}
.ow-panneau{background:var(--ow-carte);border:1px solid var(--ow-bord);border-radius:var(--ow-rayon);padding:1rem 1.1rem}
.ow-panneau>summary{cursor:pointer;font-weight:700;min-height:32px;display:flex;align-items:center;gap:.5rem;list-style:none}
.ow-panneau>summary::-webkit-details-marker{display:none}
.ow-panneau>summary::after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.6;transition:transform .2s}
.ow-panneau[open]>summary::after{transform:rotate(-135deg)}
.ow-panneau__nb{font-size:.78rem;font-weight:700;background:var(--c-fond);color:var(--c-fonce);border-radius:99px;padding:.1rem .55rem}
@media (prefers-color-scheme:dark){.ow-panneau__nb{color:var(--c)}}
.ow-histo{list-style:none;margin:.6rem 0 0;padding:0}
.ow-histo li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-top:1px solid var(--ow-bord)}
.ow-histo__date{font-size:.78rem;color:var(--ow-texte-2);min-width:4.6rem;font-variant-numeric:tabular-nums}
.ow-histo__txt{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}
.ow-histo button{font:inherit;font-size:.82rem;border:1px solid var(--ow-bord);background:var(--ow-carte);color:var(--ow-texte);border-radius:99px;min-height:34px;padding:.2rem .7rem;cursor:pointer}
.ow-histo button:hover{border-color:var(--c)}
.ow-histo .ow-histo__x{width:34px;padding:0;color:var(--ow-texte-2)}
.ow-histo__pied{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.8rem;color:var(--ow-texte-2)}
.ow-courbe{display:block;width:100%;height:96px;margin:.6rem 0 .2rem;overflow:visible}
.ow-courbe .ow-courbe__aire{fill:color-mix(in srgb,var(--c) 14%,transparent)}
.ow-courbe .ow-courbe__ligne{fill:none;stroke:var(--c);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.ow-courbe circle{fill:var(--ow-carte);stroke:var(--c);stroke-width:2;vector-effect:non-scaling-stroke}
.ow-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem}
.ow-stat{background:var(--c-fond);border:1px solid var(--c-doux);border-radius:12px;padding:.6rem .75rem}
.ow-stat b{display:block;font-size:1.5rem;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--c-fonce)}
@media (prefers-color-scheme:dark){.ow-stat b{color:var(--c)}}
.ow-stat span{font-size:.8rem;color:var(--ow-texte-2)}
.ow-outils-res{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.ow-outils-res .ow-btn{min-height:40px;padding:.45rem .95rem;font-size:.9rem}
.ow-flamme{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;color:#b45309}
@media (prefers-color-scheme:dark){.ow-flamme{color:#fbbf24}}
/* « Souvent utilisé juste après » */
.ow-ensuite{margin:0 0 1rem;animation:ow-entree .35s ease both}
.ow-ensuite__titre{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ow-texte-2);margin:0 0 .45rem}
.ow-ensuite ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.ow-ensuite a{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.35rem .85rem .35rem .45rem;border-radius:999px;background:var(--ow-carte);border:1px solid var(--ow-bord);color:var(--ow-texte);text-decoration:none;font-weight:600;font-size:.92rem}
.ow-ensuite a .ow-ico{width:28px;height:28px;padding:5px;border-radius:99px;background:var(--c-fond);color:var(--c)}
.ow-ensuite a:hover{border-color:var(--c)}

/* Publicité : hauteur réservée (CLS nul), étiquetée, séparée du contenu interactif par un filet et une marge. */
.ow-pub{margin:2rem 0;padding-top:.5rem;border-top:1px solid var(--ow-bord);min-height:300px;text-align:center;contain:layout}
@media (min-width:768px){.ow-pub{min-height:280px}}
.ow-pub__label{display:block;font-size:.68rem;color:var(--ow-texte-2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.ow-pub--apercu{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--ow-bord-fort);border-radius:12px;color:var(--ow-texte-2);font-size:.8rem}

/* Texte, méthode, FAQ, outils proches */
.ow-texte{font-size:1.02rem}
.ow-texte h2,.ow-faq h2,.ow-proches h2,.ow-cat--pilier h2{font-size:clamp(1.25rem,4.5vw,1.55rem);margin:2.2rem 0 .7rem}
.ow-texte h2::before{content:"";display:block;width:36px;height:4px;border-radius:4px;background:var(--c);margin-bottom:.6rem}
.ow-texte h3{font-size:1.1rem;margin:1.3rem 0 .4rem}
.ow-texte p,.ow-texte li{max-width:70ch}
.ow-texte table,.ow-methode table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.95rem;background:var(--ow-carte);border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px var(--ow-bord)}
.ow-texte th{background:var(--c-fond);color:var(--ow-texte);font-weight:700}
.ow-texte th,.ow-texte td{border-bottom:1px solid var(--ow-bord);padding:.55rem .65rem;text-align:left;vertical-align:top}
.ow-texte tr:last-child td{border-bottom:0}
.ow-texte .ow-tab-defile,.ow-tab-defile{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Audit SEO/GEO du 09/11/2026 (lot B, registre/_geo.php) : phrase de définition, schéma SVG (dimensions fixées dans
   le HTML : aucun décalage), tableaux pré-calculés défilants sur mobile, cases surlignées (ex. IMC normal). */
.ow-texte .ow-definition{font-size:1.08rem;line-height:1.55;border-left:4px solid var(--c);padding:.15rem 0 .15rem .9rem;margin:0 0 1rem}
.ow-schema{margin:1rem 0 1.4rem}.ow-schema img{display:block;width:100%;max-width:640px;height:auto}
.ow-texte .ow-precalc{overflow-x:auto;-webkit-overflow-scrolling:touch}.ow-texte .ow-precalc table{min-width:100%;width:auto}
.ow-texte .ow-precalc th,.ow-texte .ow-precalc td{white-space:nowrap;font-variant-numeric:tabular-nums}
.ow-texte td.ow-pc-ok{background:var(--c-fond);font-weight:700;color:var(--c-fonce)}
@media (max-width:560px){.ow-texte table{display:block;overflow-x:auto;white-space:nowrap}}
.ow-formule{font-family:var(--ow-mono);background:var(--c-fond);border:1px solid var(--c-doux);padding:.7rem .9rem;border-radius:10px;overflow-x:auto}
.ow-methode{margin:2rem 0;padding:1.1rem 1.2rem;border:1px solid var(--ow-bord);border-left:4px solid var(--c);border-radius:var(--ow-rayon);background:var(--ow-carte);font-size:.95rem}
.ow-methode h2{margin:0 0 .5rem;font-size:1.15rem}
.ow-methode ul{margin:.4rem 0 .6rem;padding-left:1.2rem}
.ow-maj{color:var(--ow-texte-2);font-size:.86rem;margin:.4rem 0 0}
.ow-faq details{background:var(--ow-carte);border:1px solid var(--ow-bord);border-radius:12px;padding:.2rem 1rem;margin:.5rem 0;transition:border-color .15s}
.ow-faq details[open]{border-color:color-mix(in srgb,var(--c) 40%,var(--ow-bord))}
.ow-faq summary{cursor:pointer;font-weight:650;padding:.7rem 0;min-height:44px;display:flex;align-items:center;gap:.6rem;list-style:none}
.ow-faq summary::-webkit-details-marker{display:none}
.ow-faq summary::before{content:"+";flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:99px;background:var(--c-fond);color:var(--c-fonce);font-weight:800;transition:transform .2s}
.ow-faq details[open] summary::before{content:"–"}
.ow-faq details div{padding:0 0 .9rem 2.1rem;color:var(--ow-texte)}
.ow-proches ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem;grid-template-columns:1fr}
@media (min-width:600px){.ow-proches ul{grid-template-columns:1fr 1fr}}
.ow-proches a{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border:1px solid var(--ow-bord);border-radius:14px;background:var(--ow-carte);text-decoration:none;color:var(--ow-texte);font-weight:600;transition:border-color .15s,transform .15s}
.ow-proches a .ow-ico{width:34px;height:34px;padding:7px;border-radius:10px;background:var(--c-fond);color:var(--c)}
.ow-proches a:hover{border-color:var(--c);transform:translateY(-1px)}

/* Cartes d'outils (accueil, catégories) */
.ow-grille{list-style:none;padding:0;margin:0;display:grid;gap:.7rem;grid-template-columns:1fr}
@media (min-width:600px){.ow-grille{grid-template-columns:1fr 1fr}}
@media (min-width:980px){.ow-page-accueil .ow-grille{grid-template-columns:repeat(3,1fr)}}
.ow-carte{display:flex;align-items:flex-start;gap:.85rem;height:100%;padding:1rem;border:1px solid var(--ow-bord);border-radius:var(--ow-rayon);background:var(--ow-carte);text-decoration:none;color:var(--ow-texte);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}
.ow-carte:hover{transform:translateY(-2px);box-shadow:var(--ow-ombre);border-color:color-mix(in srgb,var(--c) 50%,var(--ow-bord))}
.ow-carte__ico{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:14px;background:var(--c-fond);color:var(--c);transition:background .18s,color .18s}
.ow-carte:hover .ow-carte__ico{background:var(--c);color:var(--ow-sur-accent)}
.ow-carte__txt{min-width:0}
.ow-carte__nom{display:block;font-size:1.02rem;font-weight:720;margin:.05rem 0 .15rem;letter-spacing:-.01em;color:var(--ow-texte)}
.ow-carte__resume{display:block;font-size:.88rem;line-height:1.45;color:var(--ow-texte-2)}
.ow-grille--mini .ow-carte{padding:.65rem .8rem;align-items:center}
.ow-grille--mini .ow-carte__ico{width:38px;height:38px;border-radius:11px}
.ow-grille--mini .ow-carte__resume{display:none}
.ow-perso,.ow-populaires{margin:1.6rem 0 .5rem}
.ow-perso h2,.ow-populaires h2{font-size:1.15rem;margin:1.2rem 0 .7rem}
.ow-aucun{padding:1.5rem;text-align:center;color:var(--ow-texte-2);background:var(--ow-carte);border:1px dashed var(--ow-bord-fort);border-radius:var(--ow-rayon)}
.ow-cat{scroll-margin-top:72px;margin:2.2rem 0 0}
.ow-cat__tete{display:flex;align-items:center;gap:.7rem;margin:0 0 .8rem;padding-bottom:.6rem;border-bottom:2px solid var(--c-doux)}
.ow-cat__tete h2{margin:0;font-size:clamp(1.25rem,4.5vw,1.6rem)}
.ow-cat__tete h2 a{color:inherit;text-decoration:none}
.ow-cat__tete h2 a:hover{text-decoration:underline}
.ow-cat__ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--c);color:var(--ow-sur-accent);flex:none}
.ow-cat__nb{margin-left:auto;font-size:.8rem;font-weight:700;color:var(--c-fonce);background:var(--c-fond);padding:.2rem .6rem;border-radius:99px;white-space:nowrap}
@media (prefers-color-scheme:dark){.ow-cat__nb{color:var(--c)}}
.ow-cat h2 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
.ow-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ow-contenu-page>h2{font-size:1.35rem;margin:1.8rem 0 .6rem}
@media print{.ow-outil{box-shadow:none;margin-top:0;border:1px solid #999}.ow-suite,.ow-local,.ow-texte,.ow-methode{display:none!important}.ow-actions,.ow-onglets,.ow-outils-res{display:none!important}}
/* Vague 2, lot D (09/11/2026) : pages de cas (bouton vers l'outil pré-rempli, listes de cas) et bouton « Intégrer ce calculateur ». */
.ow-cas-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.4rem 0 .4rem}
.ow-cas-cta .ow-btn{text-decoration:none;display:inline-flex;align-items:center}
.ow-cas-liens{margin:2rem 0}.ow-cas-liens h2{font-size:1.2rem;margin:1.4rem 0 .5rem}
.ow-cas-liens ul{columns:2 13rem;column-gap:1.5rem;padding-left:1.1rem;margin:.4rem 0}.ow-cas-liens li{margin:.25rem 0;break-inside:avoid}
.ow-integrer{margin:1rem 0;font-size:.95rem;border:1px solid var(--ow-bord);border-radius:12px;padding:.2rem 1rem;background:var(--ow-carte)}
.ow-integrer summary{cursor:pointer;font-weight:650;padding:.6rem 0;min-height:44px;display:flex;align-items:center;color:var(--c-fonce)}
@media (prefers-color-scheme:dark){.ow-integrer summary{color:var(--c)}}
.ow-integrer textarea{display:block;width:100%;box-sizing:border-box;font:.8rem/1.45 var(--ow-mono);padding:.6rem;border:1px solid var(--ow-bord);border-radius:10px;background:var(--ow-fond);color:inherit;margin:.5rem 0;resize:vertical}
.ow-integrer .ow-btn{margin:0 0 .8rem}
