/*
Theme Name: OXIWIZ
Description: Thème WordPress Elementor OXIWIZ : guides et comparatifs d'astronomie, liens partenaires signalés, boutique WooCommerce. Menus natifs, footer en widgets, import de pages et réglages.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: oxiwiz
Author: oxiwiz.fr
Author URI: https://oxiwiz.fr/
*/

/* ==========================================================================
   1. Polices (hébergées dans le thème, aucune requête vers Google)
   ========================================================================== */
@font-face{font-family:"Outfit";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/outfit-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Outfit";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/outfit-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-normal.woff2) format("woff2")}

/* ==========================================================================
   2. Charte : bleu nuit, blanc et une touche couleur étoile pour l'achat
   ========================================================================== */
:root{
  --oxiwiz-nuit:#0D1030;
  --oxiwiz-marine:#252553;
  --oxiwiz-bleu:#33408F;
  --oxiwiz-ciel:#A9B6FF;
  --oxiwiz-etoile:#F2C45A;
  --oxiwiz-etoile-vif:#FFD77A;
  --oxiwiz-ink:#171A33;
  --oxiwiz-muted:#575D7E;
  --oxiwiz-line:#E1E4F0;
  --oxiwiz-tint:#F4F5FA;
  --oxiwiz-radius:14px;
  --oxiwiz-shadow:0 18px 40px rgba(13,16,48,.08);
  --oxiwiz-title:"Outfit","Helvetica Neue",Arial,sans-serif;
  --oxiwiz-text:"Inter","Helvetica Neue",Arial,sans-serif;
  --oxiwiz-wrap:1180px;
  --oxiwiz-header-h:76px;
}

/* ==========================================================================
   3. Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:#fff;color:var(--oxiwiz-ink);font-family:var(--oxiwiz-text);font-size:17px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
h1,h2,h3,h4,h5,h6{font-family:var(--oxiwiz-title);font-weight:600;margin:0 0 .5em;text-wrap:balance;color:var(--oxiwiz-marine);letter-spacing:-.01em}
h1{font-size:clamp(36px,4.8vw,60px);line-height:1.08}
h2{font-size:clamp(28px,3.2vw,40px);line-height:1.15}
h3{font-size:23px;line-height:1.3}
h4{font-size:20px;line-height:1.35}
h5,h6{font-size:18px;line-height:1.4}
p{margin:0 0 .9em}
a{color:var(--oxiwiz-bleu);text-underline-offset:3px}
a:hover{color:var(--oxiwiz-marine)}
strong{font-weight:600}
:focus-visible{outline:2px solid var(--oxiwiz-bleu);outline-offset:3px}
[id]{scroll-margin-top:calc(var(--oxiwiz-header-h) + 16px)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px}
.skip-link:focus{position:fixed!important;left:16px;top:16px;z-index:1000;width:auto;height:auto;clip:auto;background:#fff;color:var(--oxiwiz-ink);padding:10px 16px;border-radius:999px}

/* Boutons (thème, blocs WordPress et formulaires) */
.oxiwiz-btn,.wp-block-button__link,button[type=submit],input[type=submit]{display:inline-block;font-family:var(--oxiwiz-text);font-size:16px;font-weight:600;line-height:1;padding:16px 28px;border-radius:999px;border:1.5px solid var(--oxiwiz-marine);background:var(--oxiwiz-marine);color:#fff;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.oxiwiz-btn:hover,.wp-block-button__link:hover,button[type=submit]:hover,input[type=submit]:hover{background:var(--oxiwiz-nuit);border-color:var(--oxiwiz-nuit);color:#fff}
.oxiwiz-btn--etoile{background:var(--oxiwiz-etoile);border-color:var(--oxiwiz-etoile);color:var(--oxiwiz-nuit)}
.oxiwiz-btn--etoile:hover{background:var(--oxiwiz-etoile-vif);border-color:var(--oxiwiz-etoile-vif);color:var(--oxiwiz-nuit)}
.oxiwiz-btn--contour,.is-style-outline>.wp-block-button__link{background:transparent;color:var(--oxiwiz-marine)}
.oxiwiz-btn--contour:hover,.is-style-outline>.wp-block-button__link:hover{background:var(--oxiwiz-marine);color:#fff}

/* Champs de formulaire */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],input[type=password],input[type=number],textarea,select{font:inherit;color:var(--oxiwiz-ink);background:#fff;border:1px solid var(--oxiwiz-line);border-radius:10px;padding:12px 14px;width:100%;max-width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--oxiwiz-bleu);outline:0;box-shadow:0 0 0 3px rgba(51,64,143,.18)}
label{font-size:15px}
.search-form{display:flex;gap:8px;max-width:520px;margin:0 auto}
.search-form label{flex:1}

/* ==========================================================================
   4. En-tête sticky et menu WordPress
   ========================================================================== */
.oxiwiz-header{position:sticky;top:0;z-index:990;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.oxiwiz-header.is-scrolled,.oxiwiz-header.is-open{border-bottom-color:var(--oxiwiz-line);box-shadow:0 6px 24px rgba(13,16,48,.05)}
.admin-bar .oxiwiz-header{top:32px}
@media (max-width:782px){.admin-bar .oxiwiz-header{top:46px}}
@media (max-width:600px){.admin-bar .oxiwiz-header{top:0}}
.oxiwiz-bar{max-width:var(--oxiwiz-wrap);margin:0 auto;padding:12px 24px;min-height:var(--oxiwiz-header-h);display:flex;align-items:center;gap:28px}
.oxiwiz-logo{display:flex;flex-direction:column;line-height:1;text-decoration:none;color:var(--oxiwiz-ink);margin-right:auto}
.oxiwiz-logo__name{font-family:var(--oxiwiz-title);font-weight:600;font-size:24px;letter-spacing:.08em;text-transform:uppercase;color:var(--oxiwiz-marine)}
.oxiwiz-logo__by{font-size:12px;letter-spacing:.14em;margin-top:5px;color:var(--oxiwiz-muted)}
.oxiwiz-logo--image{display:inline-flex;align-items:flex-end}
.oxiwiz-logo--image .oxiwiz-logo__by{margin-top:6px;text-align:right;white-space:nowrap}
.oxiwiz-logo img{height:var(--oxiwiz-logo-h,52px);max-height:none;width:auto;max-width:300px;object-fit:contain;display:block}

.oxiwiz-menu,.oxiwiz-menu ul{list-style:none;margin:0;padding:0}
.oxiwiz-menu{display:flex;align-items:center;gap:24px}
.oxiwiz-menu>li{position:relative;display:flex;align-items:center}
.oxiwiz-menu a{font-size:15.5px;font-weight:500;line-height:1.3;color:var(--oxiwiz-ink);text-decoration:none;white-space:nowrap}
.oxiwiz-menu>li>a{padding:8px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.oxiwiz-menu>li>a:hover,
.oxiwiz-menu>li.is-current>a,
.oxiwiz-menu>li.current-menu-item>a:not([href*="#"]),
.oxiwiz-menu>li.current-menu-ancestor>a,
.oxiwiz-menu>li.current_page_parent>a{color:var(--oxiwiz-bleu);border-bottom-color:var(--oxiwiz-etoile)}

/* Sous-menus (un niveau) */
.oxiwiz-sub-toggle{appearance:none;background:none;border:0;padding:0;margin:0 0 0 2px;width:24px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--oxiwiz-ink)}
.oxiwiz-sub-toggle::before{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.oxiwiz-menu li.is-open>.oxiwiz-sub-toggle::before{transform:translateY(2px) rotate(-135deg)}
.oxiwiz-menu .sub-menu{position:absolute;top:100%;left:-20px;min-width:260px;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:12px;padding:8px 0;box-shadow:var(--oxiwiz-shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.oxiwiz-menu .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.oxiwiz-menu li:hover>.sub-menu,.oxiwiz-menu li:focus-within>.sub-menu,.oxiwiz-menu li.is-open>.sub-menu{opacity:1;visibility:visible;transform:none}
.oxiwiz-menu .sub-menu a{display:block;padding:10px 20px;white-space:normal;font-weight:400}
.oxiwiz-menu .sub-menu a:hover,.oxiwiz-menu .sub-menu .current-menu-item>a:not([href*="#"]){background:var(--oxiwiz-tint);color:var(--oxiwiz-bleu)}
.oxiwiz-menu .sub-menu .sub-menu{display:none}

.oxiwiz-pill{display:inline-block;font-size:15px;font-weight:600;line-height:1;color:var(--oxiwiz-nuit);background:var(--oxiwiz-etoile);padding:13px 22px;border-radius:999px;text-decoration:none;white-space:nowrap;transition:background .2s}
.oxiwiz-pill:hover,.oxiwiz-pill:focus{background:var(--oxiwiz-etoile-vif);color:var(--oxiwiz-nuit)}
.oxiwiz-burger{display:none;appearance:none;background:none;border:0;padding:0;width:44px;height:44px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;border-radius:50%}
.oxiwiz-burger span{display:block;width:22px;height:2px;background:var(--oxiwiz-marine);transition:transform .2s}
.oxiwiz-header.is-open .oxiwiz-burger span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.oxiwiz-header.is-open .oxiwiz-burger span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.oxiwiz-menu-hint{font-size:14px;color:var(--oxiwiz-muted)}

@media (min-width:1180px) and (max-width:1340px){
  .oxiwiz-bar{gap:20px}
  .oxiwiz-menu{gap:16px}
  .oxiwiz-menu a{font-size:15px}
}
@media (max-width:1179px){
  :root{--oxiwiz-header-h:64px}
  .oxiwiz-bar{gap:12px;padding:10px 16px}
  .oxiwiz-logo__name{font-size:20px}
  .oxiwiz-logo img{height:var(--oxiwiz-logo-h-m,40px);max-width:220px}
  .oxiwiz-logo--image .oxiwiz-logo__by{font-size:10.5px;margin-top:4px}
  .oxiwiz-burger{display:flex}
  .oxiwiz-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--oxiwiz-line);border-bottom:1px solid var(--oxiwiz-line);padding:4px 20px 16px;max-height:calc(100vh - var(--oxiwiz-header-h));overflow-y:auto}
  .oxiwiz-header.is-open .oxiwiz-nav{display:block}
  .oxiwiz-menu{display:block}
  .oxiwiz-menu>li{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--oxiwiz-line)}
  .oxiwiz-menu>li:last-child{border-bottom:0}
  .oxiwiz-menu>li>a{flex:1;padding:15px 0;font-size:17px;border-bottom:0;white-space:normal}
  .oxiwiz-sub-toggle{width:48px;height:auto;margin:0}
  .oxiwiz-menu .sub-menu{position:static;flex:0 0 100%;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0 0 10px 16px;opacity:1;visibility:visible;transform:none;display:none;transition:none}
  .oxiwiz-menu .sub-menu::before{display:none}
  .oxiwiz-menu li:hover>.sub-menu,.oxiwiz-menu li:focus-within>.sub-menu{display:none}
  .oxiwiz-menu li.is-open>.sub-menu{display:block}
  .oxiwiz-menu .sub-menu a{padding:10px 0;font-size:16px;color:var(--oxiwiz-muted)}
  .oxiwiz-menu .sub-menu a:hover{background:none}
  .oxiwiz-pill{display:none}
}

/* Fil d'Ariane (Yoast SEO) */
.oxiwiz-ariane{background:var(--oxiwiz-tint);border-bottom:1px solid var(--oxiwiz-line);font-size:14px;color:var(--oxiwiz-muted)}
.oxiwiz-ariane .oxiwiz-wrap{padding-top:10px;padding-bottom:10px}
.oxiwiz-ariane a{color:var(--oxiwiz-muted);text-decoration:none}
.oxiwiz-ariane a:hover{color:var(--oxiwiz-bleu);text-decoration:underline}

/* ==========================================================================
   5. Pied de page bleu nuit : 1 à 4 colonnes selon les zones de widgets remplies
   ========================================================================== */
.oxiwiz-foot{background:var(--oxiwiz-nuit);color:#D8DCF2;font-size:15.5px;line-height:1.65}
.oxiwiz-foot__cols{max-width:var(--oxiwiz-wrap);margin:0 auto;padding:72px 24px 40px;display:grid;gap:48px;grid-template-columns:repeat(4,minmax(0,1fr))}
.oxiwiz-foot__cols--1{grid-template-columns:minmax(0,1fr)}
.oxiwiz-foot__cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.oxiwiz-foot__cols--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.oxiwiz-foot__col>*+*{margin-top:20px}
.oxiwiz-foot h2,.oxiwiz-foot h3,.oxiwiz-foot h4,.oxiwiz-foot .widget-title{font-family:var(--oxiwiz-title);font-size:18px;font-weight:600;line-height:1.3;color:#fff;margin:0 0 12px;letter-spacing:.01em}
.oxiwiz-foot p{margin:0 0 .7em}
.oxiwiz-foot p:last-child{margin-bottom:0}
.oxiwiz-foot ul{list-style:none;margin:0;padding:0}
.oxiwiz-foot li{padding:3px 0}
.oxiwiz-foot a{color:#D8DCF2;text-decoration:none}
.oxiwiz-foot a:hover{color:var(--oxiwiz-etoile);text-decoration:underline}
.oxiwiz-foot__legal{max-width:var(--oxiwiz-wrap);margin:0 auto;padding:0 24px 36px}
.oxiwiz-foot__legal-in{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 24px;color:#A9AECB;font-size:14px}
.oxiwiz-foot--vide .oxiwiz-foot__legal-in{border-top:0}
.oxiwiz-foot--vide .oxiwiz-foot__legal{padding-top:24px}
.oxiwiz-foot__legal ul{display:flex;flex-wrap:wrap;gap:4px 22px}
.oxiwiz-foot__legal li{padding:0}
.oxiwiz-foot__legal a{color:#A9AECB}
.oxiwiz-foot__affil{margin:14px 0 0;font-size:13px;color:#A9AECB}
@media (max-width:1024px){
  .oxiwiz-foot__cols{gap:40px;padding-top:56px}
  .oxiwiz-foot__cols--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .oxiwiz-foot__cols,.oxiwiz-foot__cols--2,.oxiwiz-foot__cols--3,.oxiwiz-foot__cols--4{grid-template-columns:minmax(0,1fr);gap:32px;padding:48px 20px 32px}
  .oxiwiz-foot__legal{padding:0 20px 96px}
}

/* ==========================================================================
   6. Bouton WhatsApp flottant
   ========================================================================== */
.oxiwiz-wa{position:fixed;right:20px;bottom:20px;z-index:995;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(13,16,48,.22);text-decoration:none;transition:transform .2s}
.oxiwiz-wa:hover{transform:scale(1.06);color:#fff}
.oxiwiz-wa__label{position:absolute;right:70px;white-space:nowrap;background:var(--oxiwiz-nuit);color:#fff;font:600 14px/1 var(--oxiwiz-text);padding:10px 14px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .2s}
.oxiwiz-wa:hover .oxiwiz-wa__label,.oxiwiz-wa:focus-visible .oxiwiz-wa__label{opacity:1}
@media (max-width:767px){.oxiwiz-wa{right:14px;bottom:14px}.oxiwiz-wa__label{display:none}}

/* ==========================================================================
   7. Pages classiques, articles, blog, 404
   ========================================================================== */
.oxiwiz-wrap{max-width:var(--oxiwiz-wrap);margin:0 auto;padding:0 24px}
.oxiwiz-etroit{max-width:808px;margin:0 auto;padding:0 24px}
.oxiwiz-page{padding:64px 0 112px}
.oxiwiz-page__head{margin-bottom:40px}
.oxiwiz-page__head h1{font-size:clamp(32px,4vw,50px);line-height:1.12;margin:0}
.oxiwiz-meta{color:var(--oxiwiz-muted);font-size:15px;margin:14px 0 0}
.oxiwiz-meta a{color:inherit}
.oxiwiz-une{margin:0 0 40px}
.oxiwiz-une img{width:100%;border-radius:var(--oxiwiz-radius);display:block}
.oxiwiz-prose>*{margin-top:0;margin-bottom:1.1em}
.oxiwiz-prose h2{font-size:clamp(25px,2.8vw,32px);margin:1.7em 0 .5em}
.oxiwiz-prose h3{margin:1.5em 0 .4em}
.oxiwiz-prose ul,.oxiwiz-prose ol{padding-left:1.3em}
.oxiwiz-prose li{margin-bottom:.35em}
.oxiwiz-prose blockquote{margin:1.6em 0;padding:4px 0 4px 24px;border-left:3px solid var(--oxiwiz-etoile);font-size:20px;line-height:1.55;color:var(--oxiwiz-marine)}
.oxiwiz-prose img,.oxiwiz-prose figure{border-radius:var(--oxiwiz-radius)}
.oxiwiz-prose figure{margin:1.6em 0}
.oxiwiz-prose figcaption{font-size:14px;color:var(--oxiwiz-muted);margin-top:8px}
.oxiwiz-prose hr{border:0;border-top:1px solid var(--oxiwiz-line);margin:2.4em 0}
.oxiwiz-prose table{width:100%;border-collapse:collapse}
.oxiwiz-prose th,.oxiwiz-prose td{text-align:left;padding:12px 0;border-bottom:1px solid var(--oxiwiz-line)}
.oxiwiz-prose .alignwide{margin-left:-80px;margin-right:-80px;max-width:none}
@media (max-width:1000px){.oxiwiz-prose .alignwide{margin-left:0;margin-right:0}}

.oxiwiz-encart{margin:56px 0 40px;padding:32px;border-radius:var(--oxiwiz-radius);background:var(--oxiwiz-nuit);color:#D8DCF2}
.oxiwiz-encart__titre{font-family:var(--oxiwiz-title);font-size:24px;font-weight:600;color:#fff;margin-bottom:8px}
.oxiwiz-encart__liens{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 0}
.oxiwiz-encart .oxiwiz-btn--contour{border-color:#fff;color:#fff}
.oxiwiz-encart .oxiwiz-btn--contour:hover{background:#fff;color:var(--oxiwiz-nuit)}

.oxiwiz-liste{list-style:none;margin:0;padding:0;border-top:1px solid var(--oxiwiz-line)}
.oxiwiz-liste>li{border-bottom:1px solid var(--oxiwiz-line);padding:32px 0;display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
.oxiwiz-liste>li.sans-image{grid-template-columns:1fr}
.oxiwiz-liste img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block}
.oxiwiz-liste h2{font-size:25px;line-height:1.25;margin:0 0 8px}
.oxiwiz-liste h2 a{color:var(--oxiwiz-marine);text-decoration:none}
.oxiwiz-liste h2 a:hover{color:var(--oxiwiz-bleu)}
.oxiwiz-liste p{margin:10px 0 0;max-width:62ch}
.oxiwiz-liste .oxiwiz-meta{margin:0}
@media (max-width:640px){.oxiwiz-liste>li{grid-template-columns:1fr;gap:18px;padding:28px 0}}
.navigation{margin-top:48px}
.nav-links{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.nav-links a,.page-numbers{text-decoration:none;color:var(--oxiwiz-ink)}
.nav-links a:hover{color:var(--oxiwiz-bleu)}
.pagination .nav-links{justify-content:center;gap:6px}
.page-numbers{display:inline-flex;min-width:44px;height:44px;align-items:center;justify-content:center;border-radius:999px;padding:0 12px}
.page-numbers.current{background:var(--oxiwiz-marine);color:#fff}
.post-navigation{border-top:1px solid var(--oxiwiz-line);padding-top:28px}
.nav-subtitle{display:block;font-size:14px;color:var(--oxiwiz-muted)}
.nav-title{font-family:var(--oxiwiz-title);font-weight:600;font-size:19px}

.oxiwiz-comments{margin-top:72px;border-top:1px solid var(--oxiwiz-line);padding-top:44px}
.oxiwiz-comments h2{font-size:28px}
.oxiwiz-comments ol{list-style:none;margin:0 0 40px;padding:0}
.oxiwiz-comments li article{padding:22px 0;border-bottom:1px solid var(--oxiwiz-line)}
.oxiwiz-comments .children{padding-left:28px}
.oxiwiz-comments .avatar{border-radius:50%;float:left;margin-right:12px}
.oxiwiz-comments .comment-metadata{font-size:14px}
.oxiwiz-comments .comment-metadata a{color:var(--oxiwiz-muted)}
.comment-form>p{margin-bottom:16px}
.comment-form label{display:block;margin-bottom:6px}
.comment-form-cookies-consent label{display:inline}
.comment-form-cookies-consent input{width:auto;margin-right:8px}

.oxiwiz-404{text-align:center;padding:112px 24px 132px}
.oxiwiz-404 p{max-width:52ch;margin:0 auto 28px;font-size:19px}
.oxiwiz-404__recherche{margin:0 auto 32px}

/* Grille d'articles du shortcode [oxiwiz_articles] */
.oxiwiz-articles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.oxiwiz-articles__item{margin:0}
.oxiwiz-articles__lien{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);overflow:hidden;text-decoration:none;color:var(--oxiwiz-ink);transition:transform .25s,box-shadow .25s}
.oxiwiz-articles__lien:hover{transform:translateY(-4px);box-shadow:var(--oxiwiz-shadow);color:var(--oxiwiz-ink)}
.oxiwiz-articles__img{display:block;aspect-ratio:16/10;background:linear-gradient(135deg,var(--oxiwiz-marine),var(--oxiwiz-nuit));overflow:hidden}
.oxiwiz-articles__img img{width:100%;height:100%;object-fit:cover;display:block}
.oxiwiz-articles__corps{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.oxiwiz-articles__cat{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--oxiwiz-bleu)}
.oxiwiz-articles__titre{font-family:var(--oxiwiz-title);font-weight:600;font-size:19px;line-height:1.3;color:var(--oxiwiz-marine)}
.oxiwiz-articles__extrait{font-size:15px;line-height:1.6;color:var(--oxiwiz-muted)}
.oxiwiz-articles__date{margin-top:auto;font-size:13px;color:var(--oxiwiz-muted)}
@media (max-width:1024px){.oxiwiz-articles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.oxiwiz-articles{grid-template-columns:minmax(0,1fr)}}

/* ==========================================================================
   8. Charte appliquée aux pages Elementor
   Les sélecteurs commencent par « body » pour passer devant les styles par
   défaut d'Elementor, tout en laissant la main aux réglages faits widget
   par widget dans l'éditeur. Les classes se saisissent dans
   Avancé > Classes CSS.
   ========================================================================== */
body .elementor-widget-text-editor{font-family:var(--oxiwiz-text);font-size:17px;font-weight:400;line-height:1.75;color:var(--oxiwiz-ink)}
.elementor-widget-text-editor p{margin:0 0 .9em}
.elementor-widget-text-editor h2,.elementor-widget-text-editor h3,.elementor-widget-text-editor h4{margin:0 0 .5em}
.elementor-widget-text-editor *:last-child{margin-bottom:0}
.elementor-widget-text-editor *+h2,.elementor-widget-text-editor *+h3{margin-top:1.3em}
.elementor-widget-text-editor a{color:var(--oxiwiz-bleu)}
.elementor-widget-text-editor a:hover{color:var(--oxiwiz-marine)}
.elementor-widget-text-editor ul,.elementor-widget-text-editor ol{margin:0 0 .9em;padding-left:1.3em}
.elementor-widget-text-editor li{margin-bottom:.35em}
.elementor-widget-text-editor li::marker{color:var(--oxiwiz-bleu)}

/* Titres */
body .elementor-widget-heading .elementor-heading-title{font-family:var(--oxiwiz-title);font-weight:600;color:var(--oxiwiz-marine);text-wrap:balance;letter-spacing:-.01em}
body .elementor-widget-heading h1.elementor-heading-title{font-size:clamp(36px,4.8vw,58px);line-height:1.08}
body .elementor-widget-heading h2.elementor-heading-title{font-size:clamp(28px,3.2vw,40px);line-height:1.15}
body .elementor-widget-heading h3.elementor-heading-title{font-size:23px;line-height:1.3}

/* Variantes de texte */
body .oxiwiz-kicker{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oxiwiz-bleu)}
body .oxiwiz-chapo{font-size:19px;line-height:1.65;color:var(--oxiwiz-muted)}
body .oxiwiz-note{font-size:15px;line-height:1.6;color:var(--oxiwiz-muted)}
body .oxiwiz-affil,.oxiwiz-affil{font-size:13px;line-height:1.5;color:var(--oxiwiz-muted);margin:10px 0 0}
body .oxiwiz-centre{text-align:center}

/* Sections sombres (accroche, bandeaux) : textes en blanc */
.oxiwiz-hero,.oxiwiz-sombre{color:#E3E6F7}
body .oxiwiz-hero .elementor-heading-title,body .oxiwiz-sombre .elementor-heading-title,.oxiwiz-hero h1,.oxiwiz-hero h2,.oxiwiz-hero h3,.oxiwiz-sombre h2,.oxiwiz-sombre h3{color:#fff}
body .oxiwiz-hero .elementor-widget-text-editor,body .oxiwiz-sombre .elementor-widget-text-editor{color:#E3E6F7}
body .oxiwiz-hero .oxiwiz-chapo,body .oxiwiz-sombre .oxiwiz-chapo{color:#D3D8F3}
body .oxiwiz-hero .oxiwiz-kicker,body .oxiwiz-sombre .oxiwiz-kicker{color:var(--oxiwiz-etoile)}
body .oxiwiz-hero .oxiwiz-affil,body .oxiwiz-sombre .oxiwiz-affil,body .oxiwiz-hero .oxiwiz-note,body .oxiwiz-sombre .oxiwiz-note{color:#B8BEDF}
body .oxiwiz-hero .elementor-widget-text-editor a,body .oxiwiz-sombre .elementor-widget-text-editor a{color:var(--oxiwiz-etoile)}
.oxiwiz-hero{position:relative}
.oxiwiz-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(242,196,90,.55),transparent);pointer-events:none}

/* Encadré « En bref » (réponse courte en tête de guide, utile aux moteurs génératifs) */
body .e-con.oxiwiz-bref{--padding-top:28px;--padding-right:32px;--padding-bottom:28px;--padding-left:32px;background:var(--oxiwiz-tint);border-left:4px solid var(--oxiwiz-etoile);border-radius:0 var(--oxiwiz-radius) var(--oxiwiz-radius) 0}
.oxiwiz-bref ul{list-style:none;padding:0!important}
.oxiwiz-bref li{position:relative;padding-left:28px}
.oxiwiz-bref li::before{content:"";position:absolute;left:2px;top:.55em;width:10px;height:10px;background:var(--oxiwiz-etoile);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}

/* Cartes */
body .e-con.oxiwiz-carte{--padding-top:28px;--padding-right:28px;--padding-bottom:28px;--padding-left:28px;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);box-shadow:0 1px 0 rgba(13,16,48,.02);transition:transform .25s,box-shadow .25s}
body .e-con.oxiwiz-carte:hover{transform:translateY(-3px);box-shadow:var(--oxiwiz-shadow)}
body .oxiwiz-sombre .e-con.oxiwiz-carte{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
body .e-con.oxiwiz-produit{--padding-top:24px;--padding-right:24px;--padding-bottom:28px;--padding-left:24px;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);transition:transform .25s,box-shadow .25s}
body .e-con.oxiwiz-produit:hover{transform:translateY(-4px);box-shadow:var(--oxiwiz-shadow)}
.oxiwiz-produit .elementor-widget-image img,.oxiwiz-img-produit img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff;border-radius:10px}
.oxiwiz-produit .elementor-widget-heading .elementor-heading-title{font-size:20px}
.oxiwiz-img-carte img{width:100%;border-radius:var(--oxiwiz-radius);object-fit:cover}
.oxiwiz-img-43 img{aspect-ratio:4/3}
.oxiwiz-img-169 img{aspect-ratio:16/9}
.oxiwiz-img-portrait img{max-height:520px;width:auto;margin:0 auto;object-fit:contain}

/* Cartes de guides (widget Boîte d'image) */
body .elementor-widget-image-box.oxiwiz-guide{height:100%}
.oxiwiz-guide .elementor-image-box-wrapper{height:100%;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);overflow:hidden;transition:transform .25s,box-shadow .25s}
.oxiwiz-guide .elementor-image-box-wrapper:hover{transform:translateY(-4px);box-shadow:var(--oxiwiz-shadow)}
body .oxiwiz-guide .elementor-image-box-img{width:100%!important;margin:0!important;display:block}
.oxiwiz-guide .elementor-image-box-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.oxiwiz-guide .elementor-image-box-content{padding:20px 22px 24px;text-align:left}
body .oxiwiz-guide .elementor-image-box-title{font-family:var(--oxiwiz-title);font-weight:600;font-size:19px;line-height:1.3;color:var(--oxiwiz-marine);margin:0 0 6px}
body .oxiwiz-guide .elementor-image-box-title a{color:inherit;text-decoration:none}
body .oxiwiz-guide .elementor-image-box-description{font-size:15px;line-height:1.6;color:var(--oxiwiz-muted)}

/* Boutons Elementor */
body .elementor-widget-button .elementor-button{font-family:var(--oxiwiz-text);font-size:16px;font-weight:600;line-height:1;padding:16px 28px;border-radius:999px;border:1.5px solid var(--oxiwiz-marine);background-color:var(--oxiwiz-marine);color:#fff;fill:#fff;transition:background .2s,color .2s,border-color .2s,transform .2s}
body .elementor-widget-button .elementor-button:hover,body .elementor-widget-button .elementor-button:focus{background-color:var(--oxiwiz-nuit);border-color:var(--oxiwiz-nuit);color:#fff}
body .elementor-widget-button.oxiwiz-btn-etoile .elementor-button{background-color:var(--oxiwiz-etoile);border-color:var(--oxiwiz-etoile);color:var(--oxiwiz-nuit);fill:var(--oxiwiz-nuit)}
body .elementor-widget-button.oxiwiz-btn-etoile .elementor-button:hover,body .elementor-widget-button.oxiwiz-btn-etoile .elementor-button:focus{background-color:var(--oxiwiz-etoile-vif);border-color:var(--oxiwiz-etoile-vif);color:var(--oxiwiz-nuit);transform:translateY(-1px)}
body .elementor-widget-button.oxiwiz-btn-contour .elementor-button{background-color:transparent;color:var(--oxiwiz-marine);fill:var(--oxiwiz-marine)}
body .elementor-widget-button.oxiwiz-btn-contour .elementor-button:hover,body .elementor-widget-button.oxiwiz-btn-contour .elementor-button:focus{background-color:var(--oxiwiz-marine);color:#fff}
body .elementor-widget-button.oxiwiz-btn-clair .elementor-button{background-color:transparent;border-color:rgba(255,255,255,.7);color:#fff;fill:#fff}
body .elementor-widget-button.oxiwiz-btn-clair .elementor-button:hover,body .elementor-widget-button.oxiwiz-btn-clair .elementor-button:focus{background-color:#fff;border-color:#fff;color:var(--oxiwiz-nuit)}
body .oxiwiz-produit .elementor-widget-button .elementor-button{width:100%;justify-content:center}

/* Tableau comparatif */
.oxiwiz-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15.5px;margin:0;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);overflow:hidden}
.oxiwiz-table th,.oxiwiz-table td{text-align:left;padding:14px 16px;border:0;border-bottom:1px solid var(--oxiwiz-line);vertical-align:top;background:#fff}
.oxiwiz-table thead th{background:var(--oxiwiz-marine);color:#fff;font-weight:600}
.oxiwiz-table tbody th{font-weight:600;color:var(--oxiwiz-marine);background:var(--oxiwiz-tint)}
.oxiwiz-table tr:last-child th,.oxiwiz-table tr:last-child td{border-bottom:0}
.oxiwiz-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:767px){.oxiwiz-table{min-width:620px}}

/* Accordéon (FAQ) */
body .elementor-widget-accordion .elementor-accordion-item{border:0;border-bottom:1px solid var(--oxiwiz-line)}
body .elementor-widget-accordion .elementor-accordion-item:first-child{border-top:1px solid var(--oxiwiz-line)}
body .elementor-widget-accordion .elementor-tab-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0;padding:22px 0;font-family:var(--oxiwiz-title);font-size:19px;font-weight:600;line-height:1.4;color:var(--oxiwiz-marine)}
body .elementor-widget-accordion .elementor-accordion-title,body .elementor-widget-accordion .elementor-active .elementor-accordion-title{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;text-decoration:none}
body .elementor-widget-accordion .elementor-tab-title.elementor-active{color:var(--oxiwiz-bleu)}
body .elementor-widget-accordion .elementor-accordion-icon{float:none;order:2;flex:none;width:auto;color:var(--oxiwiz-bleu)}
body .elementor-widget-accordion .elementor-accordion-icon svg{fill:var(--oxiwiz-bleu)}
body .elementor-widget-accordion .elementor-tab-content{border-top:0;padding:0 48px 24px 0;font-family:var(--oxiwiz-text);font-size:16.5px;line-height:1.75;color:var(--oxiwiz-ink)}
.elementor-widget-accordion .elementor-tab-content p{margin:0 0 .9em}
.elementor-widget-accordion .elementor-tab-content p:last-child{margin-bottom:0}
@media (max-width:767px){
  body .elementor-widget-accordion .elementor-tab-title{font-size:17px;padding:18px 0}
  body .elementor-widget-accordion .elementor-tab-content{font-size:16px;padding:0 0 20px}
}

/* Galerie d'images */
.oxiwiz-galerie .gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0!important}
.oxiwiz-galerie .gallery-item{margin:0!important;padding:0!important;max-width:none!important;width:auto!important}
.oxiwiz-galerie .gallery-item img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--oxiwiz-radius);border:0!important;display:block}
.oxiwiz-galerie .gallery-caption{font-size:14px;color:var(--oxiwiz-muted);padding-top:8px;text-align:left}
@media (max-width:640px){.oxiwiz-galerie .gallery{grid-template-columns:minmax(0,1fr)}}

/* Pages légales */
.oxiwiz-legal h2{font-size:24px;line-height:1.25;margin-bottom:12px}
body .oxiwiz-legal{font-size:16px;line-height:1.75}
.oxiwiz-legal p{margin-bottom:.8em}

/* Responsive des pages Elementor */
@media (max-width:767px){
  body .elementor-widget-text-editor{font-size:16px}
  body .oxiwiz-chapo{font-size:17px}
  body .elementor-widget-button .elementor-button{padding:15px 24px}
}

/* ==========================================================================
   9. WooCommerce : liste de produits et fiche produit
   ========================================================================== */
.oxiwiz-woo{padding-top:32px}
.oxiwiz-woo__ariane{font-size:14px;color:var(--oxiwiz-muted);margin-bottom:28px}
.oxiwiz-woo__ariane a{color:var(--oxiwiz-muted);text-decoration:none}
.oxiwiz-woo__ariane a:hover{color:var(--oxiwiz-bleu);text-decoration:underline}
.oxiwiz-woo__sep{margin:0 8px;opacity:.6}
.oxiwiz-woo .woocommerce-products-header{margin-bottom:28px}
.oxiwiz-woo .woocommerce-products-header__title,.oxiwiz-woo .product_title{font-size:clamp(30px,3.6vw,44px);line-height:1.12;margin-bottom:12px}
.oxiwiz-woo .term-description,.oxiwiz-woo .page-description{max-width:72ch;color:var(--oxiwiz-muted)}
.oxiwiz-woo .woocommerce-result-count{color:var(--oxiwiz-muted);font-size:14px}
.oxiwiz-woo .woocommerce-ordering select{width:auto}
.oxiwiz-woo > .oxiwiz-affil{margin:0 0 20px}

.woocommerce .oxiwiz-woo ul.products,.oxiwiz-woo ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0 0 40px;padding:0;list-style:none}
.oxiwiz-woo ul.products::before,.oxiwiz-woo ul.products::after{display:none}
.woocommerce .oxiwiz-woo ul.products li.product,.oxiwiz-woo ul.products li.product{width:auto!important;float:none!important;margin:0!important;padding:18px 18px 22px;background:#fff;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.oxiwiz-woo ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--oxiwiz-shadow)}
.oxiwiz-woo ul.products li.product a img{aspect-ratio:1/1;object-fit:contain;background:#fff;border-radius:10px;margin:0 0 14px!important}
.oxiwiz-woo ul.products li.product .woocommerce-loop-product__title{font-family:var(--oxiwiz-title);font-weight:600;font-size:17px!important;line-height:1.35;color:var(--oxiwiz-marine);padding:0!important;margin:0 0 8px}
.oxiwiz-woo ul.products li.product .price{color:var(--oxiwiz-ink)!important;font-weight:600;font-size:17px!important;margin-bottom:14px}
.oxiwiz-woo ul.products li.product .button{margin-top:auto}
.woocommerce .oxiwiz-woo span.onsale{background:var(--oxiwiz-etoile);color:var(--oxiwiz-nuit);border-radius:999px;min-height:0;min-width:0;line-height:1;padding:8px 12px;font-weight:600}
@media (max-width:1024px){.oxiwiz-woo ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.oxiwiz-woo ul.products{grid-template-columns:minmax(0,1fr)}}

.woocommerce .oxiwiz-woo a.button,.woocommerce .oxiwiz-woo button.button,.woocommerce .oxiwiz-woo .button.alt,.oxiwiz-woo .button{font-family:var(--oxiwiz-text);font-weight:600;font-size:15px;line-height:1;padding:15px 24px;border-radius:999px;background:var(--oxiwiz-marine);color:#fff;border:0;text-align:center;transition:background .2s}
.woocommerce .oxiwiz-woo a.button:hover,.woocommerce .oxiwiz-woo button.button:hover,.oxiwiz-woo .button:hover{background:var(--oxiwiz-nuit);color:#fff}
.woocommerce .oxiwiz-woo .product_type_external.button,.woocommerce .oxiwiz-woo .oxiwiz-achat__btn{background:var(--oxiwiz-etoile);color:var(--oxiwiz-nuit)}
.woocommerce .oxiwiz-woo .product_type_external.button:hover,.woocommerce .oxiwiz-woo .oxiwiz-achat__btn:hover{background:var(--oxiwiz-etoile-vif);color:var(--oxiwiz-nuit)}

.oxiwiz-woo div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 56px;align-items:start}
.woocommerce .oxiwiz-woo div.product div.images,.woocommerce .oxiwiz-woo div.product div.summary{width:auto;float:none;margin:0}
.oxiwiz-woo div.product div.images img{border-radius:var(--oxiwiz-radius);background:#fff}
.oxiwiz-woo div.product .woocommerce-product-gallery{border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);padding:16px;background:#fff}
.oxiwiz-woo div.product .summary .price{color:var(--oxiwiz-marine)!important;font-family:var(--oxiwiz-title);font-weight:600;font-size:28px!important;margin-bottom:18px}
.oxiwiz-woo div.product .woocommerce-product-details__short-description{color:var(--oxiwiz-ink);margin-bottom:24px}
.oxiwiz-woo div.product .woocommerce-product-details__short-description ul{padding-left:1.2em}
.oxiwiz-woo div.product form.cart{margin-bottom:24px}
.oxiwiz-woo div.product form.cart .qty{width:80px;padding:12px}
.oxiwiz-achat{margin:8px 0 28px;padding:22px;border:1px solid var(--oxiwiz-line);border-radius:var(--oxiwiz-radius);background:var(--oxiwiz-tint)}
.oxiwiz-achat__btn{display:block!important;width:100%;font-size:16px!important;padding:18px 24px!important}
.oxiwiz-woo .product_meta{font-size:14px;color:var(--oxiwiz-muted);border-top:1px solid var(--oxiwiz-line);padding-top:16px}
.oxiwiz-woo .product_meta>span{display:block;margin-bottom:4px}
.oxiwiz-woo div.product .woocommerce-tabs,.oxiwiz-woo div.product .related,.oxiwiz-woo div.product .upsells{grid-column:1/-1}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs{padding:0;margin:24px 0 0;border-bottom:1px solid var(--oxiwiz-line)}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;margin:0 24px 0 0;padding:0}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs li::before,.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs li a{padding:14px 0;font-weight:600;color:var(--oxiwiz-muted)}
.woocommerce .oxiwiz-woo div.product .woocommerce-tabs ul.tabs li.active a{color:var(--oxiwiz-marine);box-shadow:inset 0 -2px 0 var(--oxiwiz-etoile)}
.oxiwiz-woo .woocommerce-Tabs-panel{max-width:80ch;padding-top:24px}
.oxiwiz-woo .woocommerce-Tabs-panel>h2:first-child{display:none}
.oxiwiz-woo .related>h2,.oxiwiz-woo .upsells>h2{font-size:28px;margin:48px 0 24px}
@media (max-width:900px){.oxiwiz-woo div.product{grid-template-columns:minmax(0,1fr)}}

.oxiwiz-woo .woocommerce-message,.oxiwiz-woo .woocommerce-info,.oxiwiz-woo .woocommerce-error{border-top-color:var(--oxiwiz-bleu);background:var(--oxiwiz-tint);border-radius:10px}
.oxiwiz-woo .woocommerce-message::before,.oxiwiz-woo .woocommerce-info::before{color:var(--oxiwiz-bleu)}

/* ==========================================================================
   10. Page de maintenance
   ========================================================================== */
.oxiwiz-maintenance{min-height:100vh;display:flex;flex-direction:column}
.oxiwiz-maintenance__in{flex:1;display:flex;flex-direction:column;justify-content:center}
.oxiwiz-maintenance__defaut{text-align:center;padding:80px 24px}
.oxiwiz-maintenance__defaut p{font-size:19px;max-width:40ch;margin:0 auto}
