/* ============================================
   SÉMANTIQUES — Thème « Raffiné »
   Avocats · Universités · Musées · Cabinets
   Classical Humanist + Old Style + Neo-Grotesque
   ============================================ */

:root {

  /* --- Surfaces --- */
  --surface-page:             var(--gris-brume);
  --surface-primary:          var(--blanc);
  --surface-secondary:        var(--taupe);
  --surface-tertiary:         var(--gris-doux);
  --surface-inverse:          var(--bleu-marine);
  --surface-elevated:         var(--blanc);
  --surface-sunken:           var(--gris-brume);

  /* --- Texte --- */
  --text-primary:             var(--gris-fonce);
  --text-secondary:           var(--gris-charbon);
  --text-tertiary:            var(--gris-ardoise);
  --text-inverse:             var(--gris-brume);
  --text-link:                var(--bleu-marine);
  --text-link-hover:          var(--marron-chaud);

  /* --- Accent --- */
  --accent:                   var(--bleu-marine);
  --accent-hover:             var(--noir-doux);
  --accent-active:            var(--noir-pur);
  --accent-subtle:            var(--taupe);
  --accent-text:              var(--blanc);
  --accent-secondary:         var(--marron-chaud);

  /* --- Feedback --- */
  --success:                  var(--vert-foret);
  --success-subtle:           var(--vert-pastel);
  --success-text:             var(--vert-foret);
  --warning:                  var(--or-classique);
  --warning-subtle:           var(--beige-doux);
  --warning-text:             var(--or-antique);
  --danger:                   var(--rouge-vif);
  --danger-subtle:            var(--rose-doux);
  --danger-text:              var(--rouge-vif);
  --info:                     var(--bleu-marine);
  --info-subtle:              var(--bleu-glacial);
  --info-text:                var(--bleu-marine);

  /* --- Bordures --- */
  --border-default:           var(--taupe);
  --border-strong:            var(--gris-charbon);
  --border-subtle:            var(--gris-doux);
  --border-accent:            var(--marron-chaud);
  --border-width:             var(--border-thin);

  /* --- Typographie --- */
  --font-heading:             var(--font-classical);
  --font-body:                var(--font-old-style);
  --font-ui:                  var(--font-neo-grotesque);
  --font-code:                var(--font-mono-code);

  --size-body:                var(--text-md);
  --size-body-sm:             var(--text-sm);
  --size-body-lg:             var(--text-lg);
  --size-h1:                  var(--text-4xl);
  --size-h2:                  var(--text-3xl);
  --size-h3:                  var(--text-xl);
  --size-h4:                  var(--text-lg);
  --size-h5:                  var(--text-md);
  --size-h6:                  var(--text-base);
  --size-small:               var(--text-sm);
  --size-caption:             var(--text-sm);

  --weight-heading:           var(--weight-semibold);
  --weight-body:              var(--weight-regular);
  --weight-strong:            var(--weight-semibold);
  --weight-ui:                var(--weight-semibold);

  --leading-body:             var(--leading-airy);
  --leading-heading:          var(--leading-heading);

  --tracking-heading:         var(--tracking-relaxed);
  --tracking-body:            var(--tracking-relaxed);

  /* --- Espacement --- */
  --gap-inline:               var(--space-3);
  --gap-block:                var(--space-5);
  --gap-section:              var(--space-20);
  --gap-group:                var(--space-10);

  --padding-inline:           var(--space-5);
  --padding-block:            var(--space-5);
  --padding-card:             var(--space-8);
  --padding-section:          var(--space-16);
  --padding-page:             var(--space-8);

  /* --- Composants --- */
  --card-radius:              var(--radius-sm);
  --card-shadow:              var(--shadow-xs);
  --card-shadow-hover:        var(--shadow-sm);
  --card-bg:                  var(--surface-elevated);
  --card-border:              var(--border-default);

  --button-radius:            var(--radius-sm);
  --button-padding-x:         var(--space-6);
  --button-padding-y:         var(--space-3);

  --input-radius:             var(--radius-sm);
  --input-border:             var(--border-default);
  --input-bg:                 var(--surface-primary);
  --input-focus-border:       var(--accent);

  --badge-radius:             var(--radius-sm);
  --badge-padding-x:          var(--space-3);
  --badge-padding-y:          var(--space-1);

  --nav-height:               var(--space-16);
  --nav-bg:                   var(--surface-primary);
  --nav-shadow:               var(--shadow-xs);

  --footer-bg:                var(--surface-inverse);
  --footer-text:              var(--text-inverse);

  /* --- Layout --- */
  --content-width:            var(--width-4xl);
  --content-narrow:           var(--width-3xl);
  --content-wide:             var(--width-6xl);

  /* --- Transitions --- */
  --transition-color:         color var(--duration-normal) var(--ease-default),
                              background-color var(--duration-normal) var(--ease-default);
  --transition-shadow:        box-shadow var(--duration-normal) var(--ease-default);
  --transition-transform:     transform var(--duration-normal) var(--ease-out);
  --transition-all:           all var(--duration-normal) var(--ease-default);
}
