/* Feuille commune aux pages de la landing (les maquettes portent leurs styles en ligne). */
:root {
  --color-primary: #031C39; --color-secondary: #E4C285; --color-accent: #745A28; --color-terracotta: #EEBCA5;
  --color-surface: #FFF8EF; --color-surface-raised: #FFFFFF; --color-border: #C9B9A3;
  --color-text: #031C39; --color-text-muted: #3A4658; --color-text-subtle: #5A6472; --color-text-on-primary-muted: #D9DEE6;
  --color-error: #8A3B1E; --color-success: #2F6B3F;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-24: 96px;
  --font-body: 'Plus Jakarta Sans', system-ui, sans-serif; --font-display: 'Playfair Display', Georgia, serif;
  --text-sm: 14px; --text-base: 17px; --text-lg: 19px; --text-xl: 24px; --text-2xl: 40px; --text-3xl: 64px;
  --radius-sm: 8px; --radius-md: 10px; --radius-lg: 16px;
  --shadow-sm: 0 1px 2px rgb(3 28 57 / 0.08); --shadow-md: 0 8px 24px rgb(3 28 57 / 0.14);
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}
html { scroll-behavior: smooth; }
body { overflow-wrap: break-word; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 10; padding: 12px 18px; border-radius: 8px; background: var(--color-primary); color: var(--color-surface); font-weight: 700; }
.skip:focus { left: 16px; }
a, button, input, textarea { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 3px; }
#demo :focus-visible, #tarifs-b :focus-visible { outline-color: var(--color-secondary); }
input, textarea { font-size: 16px !important; }
form a { color: inherit !important; text-decoration: underline; }
a, button { transition: background-color 0.2s var(--ease), color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease), opacity 0.2s var(--ease); }
a[style*="min-height"]:hover, button:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }
a[style*="min-height"]:active, button:active { transform: translateY(0); box-shadow: var(--shadow-sm); }
article { transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease); }
article:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
input:hover, textarea:hover { border-color: var(--color-accent) !important; }
input:focus, textarea:focus { border-color: var(--color-primary) !important; box-shadow: 0 0 0 3px rgb(228 194 133 / 0.45); }
footer a { display: inline-flex; align-items: center; min-height: 48px; }
@media (max-width: 720px) {
  h1 { font-size: 40px !important; line-height: 1.1 !important; }
  h2 { font-size: 30px !important; }
  header nav { gap: 14px !important; }
  /* Les blocs flex des maquettes ont des bases fixes (420-560 px) : pleine largeur sur mobile. */
  main [style*="flex: 1 1"], main [style*="flex: 999 1"], main [style*="flex: 0 1"] { flex-basis: 100% !important; min-width: 0 !important; }
  main img { max-width: 100%; height: auto; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
@media print { header nav, form, #demo, #demo-b, #demo-c { display: none !important; } }
.lang-switch { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 600; }
.lang-switch a { display: inline-flex; align-items: center; min-height: 48px; min-width: 48px; justify-content: center; padding: 0 4px; text-decoration: none; opacity: 0.75; color: inherit; }
.lang-switch a[aria-current] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
