/*
Theme Name:  PixelBox Child
Template:    Divi
Description: Thème enfant Divi pour pixelbox.art — surcharges CSS et templates WooCommerce maison.
Author:      JERAR SAS
Version:     0.9.0
*/

/*
 * Styles globaux repris du mockup « pixel-box-wireframe-charte-1 ».
 * Les jetons (couleurs, typo, espacements) vivent dans assets/css/tokens.css,
 * les @font-face dans assets/css/fonts.css — tous deux enfilés avant ce fichier.
 */

/* Liens : soulignés au filet, le filet passe à l'encre au survol.
   Boutons Divi/Woo, menus de navigation (thème et module Menu du Theme Builder) et logo
   texte du header (.pbx-logo) exclus via :where() — spécificité maintenue à celle d'un
   simple « a », comme dans le mockup. */
a:where(:not(.et_pb_button,.button,#top-menu a,#et-secondary-menu a,.et_mobile_menu a,.et_pb_menu a,.pbx-logo a)){
  color:var(--color-ink);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  text-decoration-color:var(--color-rule);
}
a:where(:not(.et_pb_button,.button,#top-menu a,#et-secondary-menu a,.et_mobile_menu a,.et_pb_menu a,.pbx-logo a)):hover{
  text-decoration-color:var(--color-ink);
}

/* Footer collé en bas de fenêtre sur les pages courtes.
   Divi 5 (Theme Builder) imbrique body > #page-container > #et-boc > header + #et-main-area
   > #main-content + footer : chaque niveau doit être une colonne flex, sinon la chaîne se
   rompt (le CSS des Options du thème oubliait #et-boc, resté en display:block). */
html,body{min-height:100%}
body,
#page-container,
#et-boc,
#et-main-area{display:flex;flex-direction:column}
body,#page-container{min-height:100vh}
@supports (min-height:100svh){body,#page-container{min-height:100svh}}
#et-boc,#et-main-area,#main-content{flex:1 1 auto}
.et-l--header{flex:0 0 auto}
#et-main-area > footer{margin-top:auto}

/* Focus clavier visible, identique partout */
:focus-visible{
  outline:2px solid var(--color-ink);
  outline-offset:3px;
}

/* Mouvement réduit : plus d'animation ni de transition */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}

/* Theme Builder : logo texte du header, sans soulignement */
.pbx-logo a{text-decoration:none}
/* Module Menu : le menu mobile Divi porte une bordure haute 3px bleue par défaut ; filet gris et radius 0 */
.et_pb_menu .et_mobile_menu{border-top:1px solid var(--color-rule);border-radius:0;box-shadow:none}
.et_pb_menu .et_mobile_menu li a{border-color:var(--color-rule)}

/* Page Accueil : composants sans équivalent Divi (valeurs du mockup) */
.pbx-packshot .et_pb_image_wrap,.pbx-packshot img{width:100%}
.pbx-packshot img{aspect-ratio:1/1;object-fit:contain}
.pbx-sq{display:inline-block;width:6px;height:6px;background:var(--color-ink);vertical-align:middle;flex:none}
.pbx-reassurance p{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3);margin:0}
.pbx-mention p{display:flex;align-items:center;gap:var(--space-1);margin:0}
.pbx-avis .pbx-stars{display:flex;gap:4px;margin:0 0 var(--space-3)}
.pbx-avis .pbx-stars img{width:14px;height:14px}
.pbx-avis blockquote{margin:0;padding:0;border:0;font-style:normal}
.pbx-avis blockquote p{margin:0;max-width:40ch}
.pbx-avis .pbx-caption{font-size:var(--text-micro);color:var(--color-ink-soft);margin:var(--space-3) 0 0}
.pbx-newsletter{display:flex;flex-wrap:wrap;gap:var(--space-1)}
.pbx-newsletter input{flex:1 1 240px;min-width:0;padding:14px var(--space-2);border:1px solid var(--color-rule);border-radius:var(--radius);font:inherit;background:var(--color-bg);color:var(--color-ink)}
.pbx-newsletter button{padding:14px var(--space-4);background:var(--color-ink);color:var(--color-bg);border:1px solid var(--color-ink);border-radius:var(--radius);font:inherit;cursor:pointer}
/* Page Contact (mu-plugins/pixelbox-ops/lib/page-contact.php) */
.pbx-contact-form .et_pb_contact_form_label{display:block;margin:0 0 var(--space-1);font-family:var(--font-sans);font-size:var(--text-small);line-height:var(--leading-body);color:var(--color-ink-soft)}
.pbx-contact-form .et_pb_contact_field{padding:0 0 var(--space-3);margin:0}
.pbx-contact-form input.input,.pbx-contact-form textarea.input,.pbx-contact-form select.input,.pbx-contact-form .et_pb_contact_captcha{width:100%;padding:14px var(--space-2);border:1px solid var(--color-rule);border-radius:var(--radius);background:var(--color-bg);font:inherit;font-size:var(--text-body);color:var(--color-ink);box-shadow:none;transition:border-color .12s ease}
.pbx-contact-form input.input:focus,.pbx-contact-form textarea.input:focus,.pbx-contact-form select.input:focus,.pbx-contact-form .et_pb_contact_captcha:focus{border-color:var(--color-ink);outline:none}
.pbx-contact-form textarea.input{min-height:180px;resize:vertical}
.pbx-contact-form .et_pb_contact_field_options_wrapper{font-family:var(--font-sans);font-size:var(--text-small);color:var(--color-ink)}
.pbx-contact-form .et_pb_contact_field_options_wrapper .et_pb_contact_field_options_title{display:none}
.pbx-contact-form .et_pb_contact_field_checkbox input{margin:0 var(--space-1) 0 0;accent-color:var(--color-ink)}
.pbx-contact-form .et_contact_bottom_container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);float:none}
.pbx-contact-form .et_pb_contact_right{margin:0;font-family:var(--font-sans);font-size:var(--text-small);color:var(--color-ink-soft)}
.pbx-contact-form .et_pb_contact_captcha{width:72px;padding:10px var(--space-1);text-align:center}
.pbx-contact-form .et_pb_contact_submit,.pbx-contact-form .et_pb_contact_submit.et_pb_button{margin:0;padding:16px var(--space-5);background:var(--color-ink);color:var(--color-bg);border:1px solid var(--color-ink);border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--text-body);letter-spacing:0.01em;cursor:pointer}
.pbx-contact-form .et_pb_contact_submit:hover{background:var(--color-bg);color:var(--color-ink)}
.pbx-contact-form .et_pb_contact_submit::after{display:none}
.pbx-contact-form .et-pb-contact-message,.pbx-contact-form .et_pb_contact_error_text{font-family:var(--font-sans);font-size:var(--text-small);color:var(--color-ink)}
.pbx-contact-form .et-pb-contact-message ul{margin:var(--space-1) 0 0;padding-left:1.2em}
.pbx-contact-card p{margin:0 0 var(--space-2)}
.pbx-contact-card p:last-child{margin-bottom:0}
.pbx-contact-card a{color:var(--color-ink);text-decoration:underline;text-underline-offset:3px}
.pbx-contact-card .pbx-caption{font-size:var(--text-micro);color:var(--color-ink-soft)}
.pbx-contact-card .pbx-social-cta{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-4) 0 0;padding-top:var(--space-3);border-top:1px solid var(--color-rule);font-size:var(--text-small)}
.pbx-social-bouton{display:inline-flex;flex:none;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid var(--color-ink);border-radius:var(--radius);background:var(--color-bg);transition:background .12s ease}
.pbx-social-bouton img{width:22px;height:22px;display:block;transition:filter .12s ease}
.pbx-social-bouton:hover,.pbx-social-bouton:focus-visible{background:var(--color-ink);outline:none}
.pbx-social-bouton:hover img,.pbx-social-bouton:focus-visible img{filter:invert(1)}
