/*!
Theme Name: BS Conseil +
Theme URI: https://www.bsconseilplus.fr/
Author: BS Conseil +
Author URI: https://www.bsconseilplus.fr/
Description: Thème WordPress personnalisé pour BS Conseil Plus - Secrétariat et assistante administrative
Version: 2.0.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: bs-conseil
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/*
Art direction: Secrétariat & conseil administratif → professionnel, féminin, accessible
Palette: fond blanc cassé chaud, accent rose fuchsia, violet institutionnel, touches dorées
Typography: Poppins (display+body) — arrondi, moderne, lisible
Density: balanced — généreux pour les sections, compact pour la navigation
*/

/* =============================================================================
   # NORMALIZE (minifié, sans commentaires superflus)
   ============================================================================= */
   html{line-height:1.15;-webkit-text-size-adjust:100%}
   body{margin:0}
   main{display:block}
   h1{font-size:2em;margin:.67em 0}
   hr{box-sizing:content-box;height:0;overflow:visible}
   pre{font-family:monospace,monospace;font-size:1em}
   a{background-color:transparent}
   abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
   b,strong{font-weight:bolder}
   code,kbd,samp{font-family:monospace,monospace;font-size:1em}
   small{font-size:80%}
   sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
   sub{bottom:-.25em}
   sup{top:-.5em}
   img{border-style:none}
   button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
   button,input{overflow:visible}
   button,select{text-transform:none}
   button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}
   button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}
   button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}
   fieldset{padding:.35em .75em .625em}
   legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}
   progress{vertical-align:baseline}
   textarea{overflow:auto}
   [type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}
   [type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}
   [type="search"]{-webkit-appearance:textfield;outline-offset:-2px}
   [type="search"]::-webkit-search-decoration{-webkit-appearance:none}
   ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
   details{display:block}
   summary{display:list-item}
   template,[hidden]{display:none}

/* =============================================================================
   # DESIGN TOKENS — BS Conseil +
   ============================================================================= */
   :root {
    /* Typographie */
    --font-body:    'Poppins', 'Helvetica Neue', sans-serif;
    --font-display: 'Poppins', 'Helvetica Neue', sans-serif;

    /* Échelle typographique fluide */
    --text-xs:   clamp(0.75rem,  0.7rem  + 0.25vw, 0.875rem);
    --text-sm:   clamp(0.875rem, 0.8rem  + 0.35vw, 1rem);
    --text-base: clamp(1rem,     0.95rem + 0.25vw, 1.125rem);
    --text-lg:   clamp(1.125rem, 1rem    + 0.75vw, 1.5rem);
    --text-xl:   clamp(1.5rem,   1.2rem  + 1.25vw, 2.25rem);
    --text-2xl:  clamp(2rem,     1.2rem  + 2.5vw,  3.5rem);
    --text-3xl:  clamp(2.5rem,   1rem    + 4vw,    5rem);

    /* Espacement (base 4px) */
    --space-1:  0.25rem;
    --space-2:  0.5rem;
    --space-3:  0.75rem;
    --space-4:  1rem;
    --space-5:  1.25rem;
    --space-6:  1.5rem;
    --space-8:  2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;

    /* Couleurs — Charte BS Conseil + */
    --color-bg:              #FAF9F7;
    --color-surface:         #FFFFFF;
    --color-surface-2:       #F5F3F0;
    --color-surface-offset:  #EDE9E4;
    --color-divider:         #E0DCD6;
    --color-border:          #D6D1CA;

    /* Texte */
    --color-text:            #2D2D2D;
    --color-text-muted:      #666666;
    --color-text-faint:      #9E9E9E;
    --color-text-inverse:    #FFFFFF;

    /* Accent principal — Rose Fuchsia */
    --color-primary:         #E91E8C;
    --color-primary-hover:   #C4176F;
    --color-primary-active:  #9E1159;
    --color-primary-light:   #FCE4F3;
    --color-primary-highlight: #F8D0EC;

    /* Accent secondaire — Violet institutionnel */
    --color-secondary:       #3D3680;
    --color-secondary-hover: #2E296A;
    --color-secondary-active:#1F1C54;
    --color-secondary-light: #ECEAF8;

    /* Accent tertiaire — Jaune/Or décoratif */
    --color-gold:            #F5C842;
    --color-gold-hover:      #DDB130;
    --color-gold-light:      #FEF7DC;

    /* Utilitaires */
    --color-success:         #437a22;
    --color-error:           #c0392b;
    --color-warning:         #e67e22;

    /* Arrière-plan footer */
    --color-footer-bg:       #2C2C3E;
    --color-footer-text:     #D0CFE0;
    --color-footer-text-muted: #8A89A6;
    --color-footer-border:   #3F3F56;

    /* Rayons */
    --radius-sm:   0.375rem;
    --radius-md:   0.5rem;
    --radius-lg:   0.75rem;
    --radius-xl:   1rem;
    --radius-2xl:  1.5rem;
    --radius-full: 9999px;

    /* Transitions */
    --transition-fast:        150ms cubic-bezier(0.16, 1, 0.3, 1);
    --transition-interactive: 200ms cubic-bezier(0.16, 1, 0.3, 1);
    --transition-smooth:      350ms cubic-bezier(0.16, 1, 0.3, 1);

    /* Ombres */
    --shadow-sm:  0 1px 3px rgba(61, 54, 128, 0.06);
    --shadow-md:  0 4px 16px rgba(61, 54, 128, 0.10);
    --shadow-lg:  0 12px 40px rgba(61, 54, 128, 0.14);
    --shadow-pink: 0 4px 20px rgba(233, 30, 140, 0.20);

    /* Largeurs */
    --content-narrow:  640px;
    --content-default: 1080px;
    --content-wide:    1920px;
  }

/* =============================================================================
   # BASE
   ============================================================================= */
   *, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html {
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;
    scroll-padding-top: var(--space-16);
  }

  body {
    min-height: 100dvh;
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-bg);
  }

  img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
    height: auto;
  }

  ul[role="list"], ol[role="list"] { list-style: none; }

  input, button, textarea, select { font: inherit; color: inherit; }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    text-wrap: balance;
    line-height: 1.2;
    color: var(--color-secondary);
  }

  li, figcaption {
    text-wrap: pretty;
    max-width: 72ch;
  }

  p {
    margin: 0 auto;
    margin-bottom: var(--space-4);
  }

  a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
  }
  a:hover { color: var(--color-primary-hover); }
  a:focus { color: var(--color-secondary); }
  a:visited { color: var(--color-secondary); }

  ::selection {
    background: var(--color-primary-light);
    color: var(--color-secondary);
  }

  :focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
    border-radius: var(--radius-sm);
  }

  button {
    cursor: pointer;
    background: none;
    border: none;
  }

  table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: var(--space-6);
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

/* =============================================================================
   # TYPOGRAPHIE
   ============================================================================= */
   h1 { font-size: var(--text-2xl); font-weight: 700; margin-bottom: var(--text-2xl); }
   h2 { font-size: var(--text-xl);  font-weight: 700; margin-bottom: var(--text-xl); }
   h3 { font-size: var(--text-lg);  font-weight: 600; margin-bottom: var(--text-lg); }
   h4 { font-size: var(--text-base); font-weight: 600; margin-bottom: var(--text-base); }
   h5 { font-size: var(--text-sm);  font-weight: 600; margin-bottom: var(--text-sm); }
   h6 { font-size: var(--text-xs);  font-weight: 600; margin-bottom: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; }

   .title-pink  { color: var(--color-primary); }
   .title-violet { color: var(--color-secondary); }

   strong, b { font-weight: 700; }
   em, i     { font-style: italic; }

   blockquote {
    border-left: 3px solid var(--color-primary);
    padding: var(--space-4) var(--space-6);
    margin: var(--space-6) 0;
    background: var(--color-primary-light);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-style: italic;
    color: var(--color-secondary);
  }

  code, kbd, samp, tt, var {
    font-family: "Courier 10 Pitch", Courier, monospace;
    font-size: 0.9em;
    background: var(--color-surface-2);
    padding: 0.1em 0.4em;
    border-radius: var(--radius-sm);
  }

  pre {
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-6);
    overflow: auto;
    font-size: var(--text-sm);
    line-height: 1.6;
    margin-bottom: var(--space-6);
  }

  abbr[title], acronym {
    border-bottom: 1px dotted var(--color-text-muted);
    cursor: help;
  }

  mark, ins {
    background: var(--color-gold-light);
    text-decoration: none;
    padding: 0 0.2em;
  }

  big { font-size: 125%; }
  small { font-size: 80%; }

/* =============================================================================
   # LAYOUT
   ============================================================================= */
   .container {
    max-width: var(--content-wide);
    margin-inline: auto;
    padding-inline: var(--space-6);
    margin: 0 auto;
  }

  .container--narrow  { max-width: var(--content-narrow); margin-inline: auto; padding-inline: var(--space-6); }
  .container--default { max-width: var(--content-default); margin-inline: auto; padding-inline: var(--space-6); }
  .container--full { max-width: var(--content-wide); margin-inline: auto; padding-inline: var(--space-6); }

  .site-wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
  }

  #primary {
    flex: 1;
    padding: 0;
    padding-bottom: 4em;
  }

  hr {
    border: 0;
    height: 1px;
    background: var(--color-divider);
    margin: var(--space-8) 0;
  }

/* Alignements WordPress */
.alignleft  { float: left;  margin-right: var(--space-6); margin-bottom: var(--space-4); }
.alignright { float: right; margin-left: var(--space-6);  margin-bottom: var(--space-4); }
.aligncenter { clear: both; display: block; margin-inline: auto; margin-bottom: var(--space-4); }

/* =============================================================================
   # ÉLÉMENTS
   ============================================================================= */
   ul, ol {
    margin: 0 0 var(--space-6) var(--space-8);
  }
  ul { list-style: disc; }
  ol { list-style: decimal; }
  li > ul, li > ol { margin-bottom: 0; margin-left: var(--space-6); }
  dt { font-weight: 700; }
  dd { margin: 0 var(--space-6) var(--space-6); }

  embed, iframe, object { max-width: 100%; }
  img { height: auto; max-width: 100%; }
  figure { margin: var(--space-4) 0; }

/* =============================================================================
   # HEADER SITE
   ============================================================================= */
   .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-divider);
    box-shadow: var(--shadow-sm);
  }

  .site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    padding-block: var(--space-4);
    max-width: var(--content-wide);
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-6);
  }

/* Logo */
.site-branding { display: flex; align-items: center; text-decoration: none; }

.custom-logo-link { display: inline-flex; align-items: center; }

.custom-logo { height: 56px; width: auto; }

.site-title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-secondary);
  margin: 0;
}
.site-title a { color: inherit; text-decoration: none; }
.site-title a:hover { color: var(--color-primary); }

.site-description {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  margin: 0;
}

/* =============================================================================
   # NAVIGATION PRINCIPALE
   ============================================================================= */
   .main-navigation {
    display: flex;
    align-items: center;
  }

  .main-navigation ul {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .main-navigation ul ul {
    position: absolute;
    top: calc(100% + var(--space-2));
    left: 0;
    min-width: 220px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--space-2);
    display: none;
    z-index: 9999;
    flex-direction: column;
    gap: 0;
  }

  .main-navigation ul ul ul {
    top: 0;
    left: 100%;
    margin-left: var(--space-2);
  }

  .main-navigation ul li {
    position: relative;
  }

  .main-navigation ul li:hover > ul,
  .main-navigation ul li.focus > ul {
    display: flex;
  }

  .main-navigation ul ul a {
    display: block;
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    color: var(--color-text);
    border-radius: var(--radius-md);
    transition: background var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
    text-decoration: none;
  }

  .main-navigation ul ul a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary);
  }

  .main-navigation a {
    display: block;
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-text);
    border-radius: var(--radius-full);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast);
  }

  .main-navigation a:hover,
  .main-navigation .current-menu-item > a,
  .main-navigation .current-menu-ancestor > a {
    background: var(--color-primary-light);
    color: var(--color-primary);
  }

  .main-navigation .current-menu-item > a {
    font-weight: 600;
  }

/* Toggle mobile */
.menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: none;
  border: 1px solid var(--color-border);
  cursor: pointer;
  color: var(--color-text);
  transition: background var(--transition-fast), border-color var(--transition-fast);
}

.menu-toggle:hover {
  background: var(--color-primary-light);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.menu-toggle .menu-toggle__icon { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }
.menu-toggle .menu-toggle__icon::before,
.menu-toggle .menu-toggle__icon::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: currentColor;
  left: 0;
  transition: transform var(--transition-fast), top var(--transition-fast), bottom var(--transition-fast);
}
.menu-toggle .menu-toggle__icon::before { top: -6px; }
.menu-toggle .menu-toggle__icon::after  { bottom: -6px; }

.menu-toggle[aria-expanded="true"] .menu-toggle__icon { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before { transform: rotate(45deg); top: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after  { transform: rotate(-45deg); bottom: 0; }

/* Navigation footer */
.footer-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-navigation a {
  font-size: var(--text-sm);
  color: var(--color-footer-text-muted);
  text-decoration: none;
  transition: color var(--transition-fast);
}
.footer-navigation a:hover { color: var(--color-primary); }

/* =============================================================================
   # BOUTONS
   ============================================================================= */
   .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    border-radius: var(--radius-full);
    border: 2px solid transparent;
    cursor: pointer;
    transition:
    background var(--transition-interactive),
    border-color var(--transition-interactive),
    color var(--transition-interactive),
    box-shadow var(--transition-interactive),
    transform var(--transition-fast);
  }
  .btn:active { transform: translateY(1px); }

  .btn-primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
    box-shadow: var(--shadow-pink);
  }
  .btn-primary:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
    color: #fff;
    box-shadow: 0 6px 24px rgba(233, 30, 140, 0.30);
  }

  .btn-secondary {
    background: var(--color-secondary);
    border-color: var(--color-secondary);
    color: #fff;
  }
  .btn-secondary:hover {
    background: var(--color-secondary-hover);
    border-color: var(--color-secondary-hover);
    color: #fff;
  }

  .btn-outline {
    background: transparent;
    border-color: var(--color-primary);
    color: var(--color-primary);
  }
  .btn-outline:hover {
    background: var(--color-primary);
    color: #fff;
  }

  .btn-ghost {
    background: transparent;
    border-color: transparent;
    color: var(--color-primary);
  }
  .btn-ghost:hover {
    background: var(--color-primary-light);
  }

/* CTA arrow (→ DÉCOUVRIR) */
.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-secondary);
  text-decoration: none;
  transition: gap var(--transition-fast), color var(--transition-fast);
}
.btn-arrow::before { content: '→'; }
.btn-arrow:hover { color: var(--color-primary); gap: var(--space-3); }

/* Boutons de formulaire WordPress */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  padding: var(--space-3) var(--space-6);
  background: var(--color-primary);
  color: #fff;
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background var(--transition-interactive), border-color var(--transition-interactive);
}
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}
button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

/* =============================================================================
   # FORMULAIRES
   ============================================================================= */
   input[type="text"],
   input[type="email"],
   input[type="url"],
   input[type="password"],
   input[type="search"],
   input[type="number"],
   input[type="tel"],
   input[type="date"],
   input[type="month"],
   input[type="week"],
   input[type="time"],
   input[type="datetime"],
   input[type="datetime-local"],
   input[type="color"],
   textarea,
   select {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  }

  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="url"]:focus,
  input[type="password"]:focus,
  input[type="search"]:focus,
  input[type="number"]:focus,
  input[type="tel"]:focus,
  input[type="date"]:focus,
  input[type="month"]:focus,
  input[type="week"]:focus,
  input[type="time"]:focus,
  input[type="datetime"]:focus,
  input[type="datetime-local"]:focus,
  input[type="color"]:focus,
  textarea:focus,
  select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-light);
    outline: none;
  }

  label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: var(--space-2);
  }

  textarea { width: 100%; min-height: 120px; resize: vertical; }
  select   { border: 1px solid var(--color-border); }

/* =============================================================================
   # FOOTER
   ============================================================================= */
   .site-footer {
    background: var(--color-footer-bg);
    color: var(--color-footer-text);
    padding: var(--space-12) 0 var(--space-6);
  }

  .site-footer__inner {
    max-width: var(--content-wide);
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-6);
  }

  .site-footer__top {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-10);
    padding-bottom: var(--space-8);
    border-bottom: 1px solid var(--color-footer-border);
    margin-bottom: var(--space-6);
  }

  .site-footer__brand .footer-logo { height: 48px; width: auto; margin-bottom: var(--space-4); }

  .site-footer__brand p {
    font-size: var(--text-sm);
    color: var(--color-footer-text-muted);
    max-width: 30ch;
    line-height: 1.7;
    margin-bottom: 0;
  }

  .site-footer__col-title {
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--color-footer-text-muted);
    margin-bottom: var(--space-4);
  }

  .site-footer__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }

  .site-footer__nav a {
    font-size: var(--text-sm);
    color: var(--color-footer-text);
    text-decoration: none;
    transition: color var(--transition-fast);
  }
  .site-footer__nav a:hover { color: var(--color-primary); }

  .site-footer__contact p {
    font-size: var(--text-sm);
    color: var(--color-footer-text);
    margin-bottom: var(--space-3);
  }
  .site-footer__contact a { color: var(--color-footer-text); }
  .site-footer__contact a:hover { color: var(--color-primary); }

  .site-footer__social {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-4);
  }

  .social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background: rgba(255,255,255,0.08);
    color: var(--color-footer-text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast);
  }
  .social-link:hover {
    background: var(--color-primary);
    color: #fff;
  }

  .site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
  }

  .site-footer__copy {
    font-size: var(--text-xs);
    color: var(--color-footer-text-muted);
  }

  .site-footer__legal {
    display: flex;
    gap: var(--space-6);
  }

  .site-footer__legal a {
    font-size: var(--text-xs);
    color: var(--color-footer-text-muted);
    text-decoration: none;
    transition: color var(--transition-fast);
  }
  .site-footer__legal a:hover { color: var(--color-primary); }

/* =============================================================================
   # NAVIGATION — Posts, commentaires
   ============================================================================= */
   .site-main .comment-navigation,
   .site-main .posts-navigation,
   .site-main .post-navigation {
    margin: 0 0 var(--space-6);
    padding: var(--space-6) 0;
    border-top: 1px solid var(--color-divider);
  }

  .comment-navigation .nav-links,
  .posts-navigation .nav-links,
  .post-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
  }

  .comment-navigation .nav-previous,
  .posts-navigation .nav-previous,
  .post-navigation .nav-previous { flex: 1 0 50%; }

  .comment-navigation .nav-next,
  .posts-navigation .nav-next,
  .post-navigation .nav-next { text-align: end; flex: 1 0 50%; }

  .nav-links a {
    font-weight: 600;
    color: var(--color-secondary);
  }
  .nav-links a:hover { color: var(--color-primary); }

/* =============================================================================
   # POSTS ET PAGES
   ============================================================================= */
   .sticky    { display: block; }
   .post, .page {margin: 0;}
   .updated:not(.published) { display: none; }

   .page-content,
   .entry-content,
   .entry-summary {
    margin: var(--space-6) 0 0;
  }

  .page-links { clear: both; margin: 0 0 var(--space-6); }

  .entry-title {
    font-size: var(--text-xl);
    color: var(--color-secondary);
    margin-bottom: var(--space-4);
  }

  .entry-meta {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    margin-bottom: var(--space-6);
  }

/* =============================================================================
   # COMMENTAIRES
   ============================================================================= */
   .comment-content a { word-wrap: break-word; }
   .bypostauthor { display: block; }

   .comment-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

/* =============================================================================
   # WIDGETS
   ============================================================================= */
   .widget {
    margin: 0 0 var(--space-8);
  }

  .widget-title {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-secondary);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 2px solid var(--color-primary);
  }

  .widget select { max-width: 100%; }

  .widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .widget ul li {
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-divider);
    font-size: var(--text-sm);
  }
  .widget ul li:last-child { border-bottom: none; }

/* =============================================================================
   # MEDIA
   ============================================================================= */
   .page-content .wp-smiley,
   .entry-content .wp-smiley,
   .comment-content .wp-smiley {
    border: none;
    margin-bottom: 0;
    margin-top: 0;
    padding: 0;
  }

  .custom-logo-link { display: inline-block; }

/* =============================================================================
   # LÉGENDES ET GALERIES
   ============================================================================= */
   .wp-caption {
    margin-bottom: var(--space-6);
    max-width: 100%;
  }

  .wp-caption img[class*="wp-image-"] {
    display: block;
    margin-inline: auto;
    border-radius: var(--radius-md);
  }

  .wp-caption .wp-caption-text,
  .wp-caption-text {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
    text-align: center;
    margin: var(--space-2) 0 0;
  }

  .gallery {
    margin-bottom: var(--space-6);
    display: grid;
    gap: var(--space-4);
  }

  .gallery-item {
    display: inline-block;
    text-align: center;
    width: 100%;
  }

  .gallery-item img { border-radius: var(--radius-md); }

  .gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
  .gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
  .gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
  .gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }
  .gallery-columns-6 { grid-template-columns: repeat(6, 1fr); }
  .gallery-columns-7 { grid-template-columns: repeat(7, 1fr); }
  .gallery-columns-8 { grid-template-columns: repeat(8, 1fr); }
  .gallery-columns-9 { grid-template-columns: repeat(9, 1fr); }
  .gallery-caption   { display: block; }

/* =============================================================================
   # PLUGINS
   ============================================================================= */
   .infinite-scroll .posts-navigation,
   .infinite-scroll.neverending .site-footer { display: none; }
   .infinity-end.neverending .site-footer { display: block; }

/* =============================================================================
   # ACCESSIBILITÉ
   ============================================================================= */
   .screen-reader-text,
   .sr-only {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
  }

  .screen-reader-text:focus {
    background: var(--color-surface);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    clip: auto !important;
    clip-path: none;
    color: var(--color-secondary);
    display: block;
    font-size: var(--text-sm);
    font-weight: 700;
    height: auto;
    left: var(--space-4);
    line-height: normal;
    padding: var(--space-4) var(--space-6);
    text-decoration: none;
    top: var(--space-4);
    width: auto;
    z-index: 100000;
  }

  #primary[tabindex="-1"]:focus { outline: 0; }

/* =============================================================================
   # RESPONSIVE
   ============================================================================= */
   @media screen and (max-width: 1024px) {
    .site-footer__top {
      grid-template-columns: 1fr 1fr;
    }
    .site-footer__brand {
      grid-column: 1 / -1;
    }
    
    body.home section .flex {
      display: flex;
      padding: 0 10px;
      flex-direction: column!important;
    }
  }

  @media screen and (max-width: 768px) {
    /* Navigation mobile */
    .menu-toggle {
      display: flex;
    }

    .main-navigation {
      width: 100%;
      display: none;
    }

    .main-navigation ul {
      display: none;
      flex-direction: column;
      align-items: stretch;
      gap: 0;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      background: var(--color-surface);
      border-bottom: 1px solid var(--color-divider);
      box-shadow: var(--shadow-md);
      padding: var(--space-4);
      z-index: 999;
    }

    .main-navigation.toggled ul {
      display: flex;
    }

    .main-navigation ul ul {
      position: static;
      box-shadow: none;
      border: none;
      padding-left: var(--space-4);
      background: var(--color-surface-2);
      border-radius: var(--radius-md);
      margin-top: var(--space-1);
    }

    .main-navigation a {
      padding: var(--space-3) var(--space-4);
      border-radius: var(--radius-md);
    }

    .site-header__inner {
      flex-wrap: wrap;
      position: relative;
    }

    .site-footer__top {
      grid-template-columns: 1fr;
    }

    .site-footer__brand { grid-column: auto; }

    .site-footer__bottom {
      flex-direction: column;
      text-align: center;
    }

    .site-footer__legal { flex-wrap: wrap; justify-content: center; }
  }

  @media screen and (max-width: 480px) {
    .container,
    .container--narrow,
    .container--default,
    .site-header__inner,
    .site-footer__inner { padding-inline: var(--space-4); }

    .gallery-columns-3,
    .gallery-columns-4,
    .gallery-columns-5,
    .gallery-columns-6,
    .gallery-columns-7,
    .gallery-columns-8,
    .gallery-columns-9 { grid-template-columns: repeat(2, 1fr); }
  }

/* =============================================================================
   # UTILITAIRES
   ============================================================================= */
   .text-primary   { color: var(--color-primary); }
   .text-secondary { color: var(--color-secondary); }
   .text-muted     { color: var(--color-text-muted); }
   .text-center    { text-align: center; }
   .text-left      { text-align: left; }
   .text-right     { text-align: right; }

   .bg-primary-light  { background: var(--color-primary-light); }
   .bg-secondary-light { background: var(--color-secondary-light); }
   .bg-gold-light     { background: var(--color-gold-light); }

   .badge {
    display: inline-flex;
    align-items: center;
    padding: var(--space-1) var(--space-3);
    background: var(--color-primary-light);
    color: var(--color-primary);
    font-size: var(--text-xs);
    font-weight: 700;
    border-radius: var(--radius-full);
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .badge--secondary {
    background: var(--color-secondary-light);
    color: var(--color-secondary);
  }

/********************************** CUSTOM */
section#landing {
  height: 50vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/******************************* HOME */
body.home section {
  padding: 2rem 0;
}
body.home section:nth-child(even) {
  background: #fff;
}
body.home section .flex {
  display: flex;
  max-width: 1200px;
  margin: 0 auto;
  height: 100%;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

body.home img.icone {
  padding: 1em;
  margin: 0 auto;
}

section#intervention-zone {
  padding: 5em 0;
}

/**************************** BLOG */
body.blog .site-main .container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

body.blog .site-main .container > article {
  flex: 0 0 calc((100% - 60px) / 3);
}

/************************* HEADER */
a.cta.btn.btn-primary:visited{color: #fff}