/* styles.css — version optimisée, sans redondance avec main.css */

@import "./main.css";

/* ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing   : border-box;
  /* 1 */
  border-width : 0;
  /* 2 */
  border-style : solid;
  /* 2 */
  border-color : #e5e7eb;
  /* 2 */
  }

::before,
::after {
  --tw-content : "";
  }

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height                 : 1.5;
  /* 1 */
  -webkit-text-size-adjust    : 100%;
  /* 2 */
  -moz-tab-size               : 4;
  /* 3 */
  -o-tab-size                 : 4;
  tab-size                    : 4;
  /* 3 */
  font-family                 : ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings       : normal;
  /* 5 */
  font-variation-settings     : normal;
  /* 6 */
  -webkit-tap-highlight-color : transparent;
  /* 7 */
  }

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin      : 0;
  /* 1 */
  line-height : inherit;
  /* 2 */
  }

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height           : 0;
  /* 1 */
  color            : inherit;
  /* 2 */
  border-top-width : 1px;
  /* 3 */
  }

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration : underline dotted;
  text-decoration         : underline dotted;
  }

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size   : inherit;
  font-weight : inherit;
  }

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color           : inherit;
  text-decoration : inherit;
  }

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight : bolder;
  }

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family             : ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings   : normal;
  /* 2 */
  font-variation-settings : normal;
  /* 3 */
  font-size               : 1em;
  /* 4 */
  }

/*
Add the correct font size in all browsers.
*/

small {
  font-size : 80%;
  }

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size      : 75%;
  line-height    : 0;
  position       : relative;
  vertical-align : baseline;
  }

sub {
  bottom : -0.25em;
  }

sup {
  top : -0.5em;
  }

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent     : 0;
  /* 1 */
  border-color    : inherit;
  /* 2 */
  border-collapse : collapse;
  /* 3 */
  }

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family             : inherit;
  /* 1 */
  font-feature-settings   : inherit;
  /* 1 */
  font-variation-settings : inherit;
  /* 1 */
  font-size               : 100%;
  /* 1 */
  font-weight             : inherit;
  /* 1 */
  line-height             : inherit;
  /* 1 */
  color                   : inherit;
  /* 1 */
  margin                  : 0;
  /* 2 */
  padding                 : 0;
  /* 3 */
  }

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform : none;
  }

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance : button;
  /* 1 */
  background-color   : transparent;
  /* 2 */
  background-image   : none;
  /* 2 */
  }

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline : auto;
  }

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow : none;
  }

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align : baseline;
  }

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height : auto;
  }

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type="search"] {
  -webkit-appearance : textfield;
  /* 1 */
  outline-offset     : -2px;
  /* 2 */
  }

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance : none;
  }

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance : button;
  /* 1 */
  font               : inherit;
  /* 2 */
  }

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display : list-item;
  }

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin : 0;
  }

fieldset {
  margin  : 0;
  padding : 0;
  }

legend {
  padding : 0;
  }

ol,
ul,
menu {
  list-style : none;
  margin     : 0;
  padding    : 0;
  }

/*
Reset default styling for dialogs.
*/

dialog {
  padding : 0;
  }

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize : vertical;
  }

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity : 1;
  /* 1 */
  color   : #9ca3af;
  /* 2 */
  }

input::placeholder,
textarea::placeholder {
  opacity : 1;
  /* 1 */
  color   : #9ca3af;
  /* 2 */
  }

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor : pointer;
  }

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor : default;
  }

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display        : block;
  /* 1 */
  vertical-align : middle;
  /* 2 */
  }

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width : 100%;
  height    : auto;
  }

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden] {
  display : none;
  }

*, ::before, ::after {
  --tw-border-spacing-x       : 0;
  --tw-border-spacing-y       : 0;
  --tw-translate-x            : 0;
  --tw-translate-y            : 0;
  --tw-rotate                 : 0;
  --tw-skew-x                 : 0;
  --tw-skew-y                 : 0;
  --tw-scale-x                : 1;
  --tw-scale-y                : 1;
  --tw-pan-x                  : ;
  --tw-pan-y                  : ;
  --tw-pinch-zoom             : ;
  --tw-scroll-snap-strictness : proximity;
  --tw-gradient-from-position : ;
  --tw-gradient-via-position  : ;
  --tw-gradient-to-position   : ;
  --tw-ordinal                : ;
  --tw-slashed-zero           : ;
  --tw-numeric-figure         : ;
  --tw-numeric-spacing        : ;
  --tw-numeric-fraction       : ;
  --tw-ring-inset             : ;
  --tw-ring-offset-width      : 0px;
  --tw-ring-offset-color      : #fff;
  --tw-ring-color             : rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow     : 0 0 #0000;
  --tw-ring-shadow            : 0 0 #0000;
  --tw-shadow                 : 0 0 #0000;
  --tw-shadow-colored         : 0 0 #0000;
  --tw-blur                   : ;
  --tw-brightness             : ;
  --tw-contrast               : ;
  --tw-grayscale              : ;
  --tw-hue-rotate             : ;
  --tw-invert                 : ;
  --tw-saturate               : ;
  --tw-sepia                  : ;
  --tw-drop-shadow            : ;
  --tw-backdrop-blur          : ;
  --tw-backdrop-brightness    : ;
  --tw-backdrop-contrast      : ;
  --tw-backdrop-grayscale     : ;
  --tw-backdrop-hue-rotate    : ;
  --tw-backdrop-invert        : ;
  --tw-backdrop-opacity       : ;
  --tw-backdrop-saturate      : ;
  --tw-backdrop-sepia         : ;
  }

::backdrop {
  --tw-border-spacing-x       : 0;
  --tw-border-spacing-y       : 0;
  --tw-translate-x            : 0;
  --tw-translate-y            : 0;
  --tw-rotate                 : 0;
  --tw-skew-x                 : 0;
  --tw-skew-y                 : 0;
  --tw-scale-x                : 1;
  --tw-scale-y                : 1;
  --tw-pan-x                  : ;
  --tw-pan-y                  : ;
  --tw-pinch-zoom             : ;
  --tw-scroll-snap-strictness : proximity;
  --tw-gradient-from-position : ;
  --tw-gradient-via-position  : ;
  --tw-gradient-to-position   : ;
  --tw-ordinal                : ;
  --tw-slashed-zero           : ;
  --tw-numeric-figure         : ;
  --tw-numeric-spacing        : ;
  --tw-numeric-fraction       : ;
  --tw-ring-inset             : ;
  --tw-ring-offset-width      : 0px;
  --tw-ring-offset-color      : #fff;
  --tw-ring-color             : rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow     : 0 0 #0000;
  --tw-ring-shadow            : 0 0 #0000;
  --tw-shadow                 : 0 0 #0000;
  --tw-shadow-colored         : 0 0 #0000;
  --tw-blur                   : ;
  --tw-brightness             : ;
  --tw-contrast               : ;
  --tw-grayscale              : ;
  --tw-hue-rotate             : ;
  --tw-invert                 : ;
  --tw-saturate               : ;
  --tw-sepia                  : ;
  --tw-drop-shadow            : ;
  --tw-backdrop-blur          : ;
  --tw-backdrop-brightness    : ;
  --tw-backdrop-contrast      : ;
  --tw-backdrop-grayscale     : ;
  --tw-backdrop-hue-rotate    : ;
  --tw-backdrop-invert        : ;
  --tw-backdrop-opacity       : ;
  --tw-backdrop-saturate      : ;
  --tw-backdrop-sepia         : ;
  }

.container {
  width : 100%;
  }

@media (min-width : 640px) {
  .container {
    max-width : 640px;
    }
  }

@media (min-width : 768px) {
  .container {
    max-width : 768px;
    }
  }

@media (min-width : 1024px) {
  .container {
    max-width : 1024px;
    }
  }

@media (min-width : 1280px) {
  .container {
    max-width : 1280px;
    }
  }

@media (min-width : 1536px) {
  .container {
    max-width : 1536px;
    }
  }

@tailwind utilities;

/* Par ceci pour Tailwind CSS v4 */

.visible {
  visibility : visible;
  }

.static {
  position : static;
  }

.fixed {
  position : fixed;
  }

.absolute {
  position : absolute;
  }

.relative {
  position : relative;
  }

.right-4 {
  right : 1rem;
  }

.top-4 {
  top : 1rem;
  }

.order-1 {
  order : 1;
  }

.order-2 {
  order : 2;
  }

.mx-4 {
  margin-left  : 1rem;
  margin-right : 1rem;
  }

.mx-auto {
  margin-left  : auto;
  margin-right : auto;
  }

.mb-1 {
  margin-bottom : 0.25rem;
  }

.mb-12 {
  margin-bottom : 3rem;
  }

.mb-16 {
  margin-bottom : 4rem;
  }

.mb-2 {
  margin-bottom : 0.5rem;
  }

.mb-3 {
  margin-bottom : 0.75rem;
  }

.mb-4 {
  margin-bottom : 1rem;
  }

.mb-6 {
  margin-bottom : 1.5rem;
  }

.mb-8 {
  margin-bottom : 2rem;
  }

.ml-1 {
  margin-left : 0.25rem;
  }

.ml-2 {
  margin-left : 0.5rem;
  }

.mt-1 {
  margin-top : 0.25rem;
  }

.mt-12 {
  margin-top : 3rem;
  }

.mt-16 {
  margin-top : 4rem;
  }

.mt-4 {
  margin-top : 1rem;
  }

.mt-8 {
  margin-top : 2rem;
  }

.block {
  display : block;
  }

.flex {
  display : flex;
  }

.grid {
  display : grid;
  }

.hidden {
  display : none;
  }

.h-1 {
  height : 0.25rem;
  }

.h-56 {
  height : 14rem;
  }

.min-h-screen {
  min-height : 100vh;
  }

.w-24 {
  width : 6rem;
  }

.w-full {
  width : 100%;
  }

.max-w-2xl {
  max-width : 42rem;
  }

.max-w-3xl {
  max-width : 48rem;
  }

.max-w-4xl {
  max-width : 56rem;
  }

.flex-grow {
  flex-grow : 1;
  }

.transform {
  transform : translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

.cursor-pointer {
  cursor : pointer;
  }

.list-disc {
  list-style-type : disc;
  }

.grid-cols-1 {
  grid-template-columns : repeat(1, minmax(0, 1fr));
  }

.flex-col {
  flex-direction : column;
  }

.items-center {
  align-items : center;
  }

.justify-center {
  justify-content : center;
  }

.justify-between {
  justify-content : space-between;
  }

.gap-12 {
  gap : 3rem;
  }

.gap-6 {
  gap : 1.5rem;
  }

.gap-8 {
  gap : 2rem;
  }

.space-x-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse : 0;
  margin-right         : calc(1.5rem * var(--tw-space-x-reverse));
  margin-left          : calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse : 0;
  margin-top           : calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom        : calc(0.5rem * var(--tw-space-y-reverse));
  }

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse : 0;
  margin-top           : calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom        : calc(1rem * var(--tw-space-y-reverse));
  }

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse : 0;
  margin-top           : calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom        : calc(1.5rem * var(--tw-space-y-reverse));
  }

.rounded-lg {
  border-radius : 0.5rem;
  }

.rounded-md {
  border-radius : 0.375rem;
  }

.border {
  border-width : 1px;
  }

.border-l-4 {
  border-left-width : 4px;
  }

.border-t {
  border-top-width : 1px;
  }

.border-t-4 {
  border-top-width : 4px;
  }

.border-amber-600 {
  --tw-border-opacity : 1;
  border-color        : rgb(217 119 6 / var(--tw-border-opacity));
  }

.border-gray-300 {
  --tw-border-opacity : 1;
  border-color        : rgb(209 213 219 / var(--tw-border-opacity));
  }

.border-gray-700 {
  --tw-border-opacity : 1;
  border-color        : rgb(55 65 81 / var(--tw-border-opacity));
  }

.border-red-500 {
  --tw-border-opacity : 1;
  border-color        : rgb(239 68 68 / var(--tw-border-opacity));
  }

.bg-amber-50 {
  --tw-bg-opacity  : 1;
  background-color : rgb(254 243 199 / var(--tw-bg-opacity));
  }

.bg-amber-600 {
  --tw-bg-opacity  : 1;
  background-color : rgb(217 119 6 / var(--tw-bg-opacity));
  }

.bg-amber-700 {
  --tw-bg-opacity  : 1;
  background-color : rgb(180 83 9 / var(--tw-bg-opacity));
  }

.bg-amber-900 {
  --tw-bg-opacity  : 1;
  background-color : rgb(120 53 15 / var(--tw-bg-opacity));
  }

.bg-red-100 {
  --tw-bg-opacity  : 1;
  background-color : rgb(254 226 226 / var(--tw-bg-opacity));
  }

.bg-stone-100 {
  --tw-bg-opacity  : 1;
  background-color : rgb(231 229 228 / var(--tw-bg-opacity));
  }

.bg-stone-200 {
  --tw-bg-opacity  : 1;
  background-color : rgb(231 229 228 / var(--tw-bg-opacity));
  }

.bg-stone-50 {
  --tw-bg-opacity  : 1;
  background-color : rgb(245 245 244 / var(--tw-bg-opacity));
  }

.bg-stone-900 {
  --tw-bg-opacity  : 1;
  background-color : rgb(28 25 23 / var(--tw-bg-opacity));
  }

.bg-white {
  --tw-bg-opacity  : 1;
  background-color : rgb(255 255 255 / var(--tw-bg-opacity));
  }

.object-cover {
  -o-object-fit : cover;
  object-fit    : cover;
  }

.p-3 {
  padding : 0.75rem;
  }

.p-4 {
  padding : 1rem;
  }

.p-6 {
  padding : 1.5rem;
  }

.p-8 {
  padding : 2rem;
  }

.px-4 {
  padding-left  : 1rem;
  padding-right : 1rem;
  }

.py-12 {
  padding-top    : 3rem;
  padding-bottom : 3rem;
  }

.py-16 {
  padding-top    : 4rem;
  padding-bottom : 4rem;
  }

.py-2 {
  padding-top    : 0.5rem;
  padding-bottom : 0.5rem;
  }

.py-20 {
  padding-top    : 5rem;
  padding-bottom : 5rem;
  }

.py-28 {
  padding-top    : 7rem;
  padding-bottom : 7rem;
  }

.py-4 {
  padding-top    : 1rem;
  padding-bottom : 1rem;
  }

.pl-5 {
  padding-left : 1.25rem;
  }

.text-center {
  text-align : center;
  }

.text-right {
  text-align : right;
  }

.text-2xl {
  font-size   : 1.5rem;
  line-height : 2rem;
  }

.text-3xl {
  font-size   : 1.875rem;
  line-height : 2.25rem;
  }

.text-4xl {
  font-size   : 2.25rem;
  line-height : 2.5rem;
  }

.text-5xl {
  font-size   : 3rem;
  line-height : 1;
  }

.text-lg {
  font-size   : 1.125rem;
  line-height : 1.75rem;
  }

.text-sm {
  font-size   : 0.875rem;
  line-height : 1.25rem;
  }

.text-xl {
  font-size   : 1.25rem;
  line-height : 1.75rem;
  }

.font-bold {
  font-weight : 700;
  }

.font-medium {
  font-weight : 500;
  }

.font-semibold {
  font-weight : 600;
  }

.italic {
  font-style : italic;
  }

.text-amber-500 {
  --tw-text-opacity : 1;
  color             : rgb(245 158 11 / var(--tw-text-opacity));
  }

.text-amber-700 {
  --tw-text-opacity : 1;
  color             : rgb(180 83 9 / var(--tw-text-opacity));
  }

.text-amber-800 {
  --tw-text-opacity : 1;
  color             : rgb(146 64 14 / var(--tw-text-opacity));
  }

.text-gray-300 {
  --tw-text-opacity : 1;
  color             : rgb(209 213 219 / var(--tw-text-opacity));
  }

.text-gray-500 {
  --tw-text-opacity : 1;
  color             : rgb(107 114 128 / var(--tw-text-opacity));
  }

.text-gray-600 {
  --tw-text-opacity : 1;
  color             : rgb(75 85 99 / var(--tw-text-opacity));
  }

.text-gray-700 {
  --tw-text-opacity : 1;
  color             : rgb(55 65 81 / var(--tw-text-opacity));
  }

.text-green-600 {
  --tw-text-opacity : 1;
  color             : rgb(22 163 74 / var(--tw-text-opacity));
  }

.text-red-600 {
  --tw-text-opacity : 1;
  color             : rgb(220 38 38 / var(--tw-text-opacity));
  }

.text-red-700 {
  --tw-text-opacity : 1;
  color             : rgb(185 28 28 / var(--tw-text-opacity));
  }

.text-white {
  --tw-text-opacity : 1;
  color             : rgb(255 255 255 / var(--tw-text-opacity));
  }

.shadow-md {
  --tw-shadow         : 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-color   : rgb(0 0 0 / 0.1);
  --tw-shadow-colored : 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow          : var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }

.shadow-sm {
  --tw-shadow         : 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored : 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow          : var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }

.shadow-xl {
  --tw-shadow         : 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored : 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow          : var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }

.transition {
  transition-property        : color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function : cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration        : 150ms;
  }

.duration-300 {
  transition-duration : 300ms;
  }

/* Vos styles personnalisés ici */

/* AJOUTEZ ICI LES ANIMATIONS */
/* Animations d'apparition */
.fade-in {
  opacity   : 0;
  animation : fadeIn 0.8s ease-in forwards;
  }

@keyframes fadeIn {
  from { opacity : 0; }
  to { opacity : 1; }
  }

.animate-on-scroll {
  opacity    : 0;
  transform  : translateY(30px);
  transition : all 0.6s ease;
  }

.animate-on-scroll.visible {
  opacity   : 1;
  transform : translateY(0);
  }

/* FIN DES ANIMATIONS */

.hover\:text-amber-700:hover {
  --tw-text-opacity : 1;
  color             : rgb(180 83 9 / var(--tw-text-opacity));
  }

.hover\:text-amber-800:hover {
  --tw-text-opacity : 1;
  color             : rgb(146 64 14 / var(--tw-text-opacity));
  }

.hover\:text-amber-900:hover {
  --tw-text-opacity : 1;
  color             : rgb(120 53 15 / var(--tw-text-opacity));
  }

.hover\:text-gray-800:hover {
  --tw-text-opacity : 1;
  color             : rgb(31 41 55 / var(--tw-text-opacity));
  }

.hover\:shadow-lg:hover {
  --tw-shadow         : 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored : 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow          : var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }

.focus\:outline-none:focus {
  outline        : 2px solid transparent;
  outline-offset : 2px;
  }

.focus\:ring-2:focus {
  --tw-ring-offset-shadow : var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow        : var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow              : var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  }

.focus\:ring-amber-600:focus {
  --tw-ring-opacity : 1;
  --tw-ring-color   : rgb(217 119 6 / var(--tw-ring-opacity));
  }

@media (min-width : 768px) {
  .md\:order-1 {
    order : 1;
    }

  .md\:order-2 {
    order : 2;
    }

  .md\:flex {
    display : flex;
    }

  .md\:hidden {
    display : none;
    }

  .md\:grid-cols-2 {
    grid-template-columns : repeat(2, minmax(0, 1fr));
    }

  .md\:grid-cols-3 {
    grid-template-columns : repeat(3, minmax(0, 1fr));
    }

  .md\:text-5xl {
    font-size   : 3rem;
    line-height : 1;
    }
  }

@media (min-width : 1024px) {
  .lg\:grid-cols-3 {
    grid-template-columns : repeat(3, minmax(0, 1fr));
    }

  .lg\:grid-cols-4 {
    grid-template-columns : repeat(4, minmax(0, 1fr));
    }
  }

/* Conteneur du logo avec padding coloré */
.logo-container {
  display          : inline-block;
  background-color : #2e5c5a; /* RGB: 46-92-90 */
  padding          : 10px;
  border-radius    : 8px;
  transition       : transform 0.3s ease;
  }

.logo-container:hover {
  transform : scale(1.05);
  }

/* Version pour le footer */
.footer-logo-container {
  padding          : 8px;
  background-color : white; /* Fond blanc pour contraster avec le footer foncé */
  }

/* Styles des images de logo */
.nav-logo {
  height  : 45px;
  width   : auto;
  display : block;
  }

.footer-logo {
  height  : 40px;
  width   : auto;
  display : block;
  }

/* === CORRECTIFS GRID LAYOUT === */
/* Classes Tailwind manquantes pour le layout blog */

.max-w-screen-xl {
  max-width : 1280px !important;
  }

/* Ajout des classes manquantes pour les colonnes responsive */
@media (min-width : 1024px) {
  .lg\:grid-cols-4 {
    grid-template-columns : repeat(4, minmax(0, 1fr)) !important;
    }

  .lg\:col-span-3 {
    grid-column : span 3 / span 3 !important;
    }

  .lg\:col-span-1 {
    grid-column : span 1 / span 1 !important;
    }
  }

/* Classes manquantes pour écrans moyens */
@media (min-width : 768px) {
  .md\:col-span-2 {
    grid-column : span 2 / span 2 !important;
    }

  .md\:col-span-1 {
    grid-column : span 1 / span 1 !important;
    }
  }

/* Assurer que grid fonctionne correctement */
.blog-detail .grid {
  display : grid !important;
  }

.blog-detail .gap-8 {
  gap : 2rem !important;
  }

/* Correctifs pour contrer green-theme.css */
.blog-detail .container {
  max-width : 1280px !important;
  margin    : 0 auto !important;
  }

/* Styles spécifiques pour la sidebar */
.blog-sidebar {
  position : relative !important;
  z-index  : 1 !important;
  }

/* Timeline styles pour la page about */
.timeline {
  position     : relative;
  padding-left : 2rem;
  }

.timeline::before {
  content          : "";
  position         : absolute;
  left             : 0.5rem;
  top              : 0;
  bottom           : 0;
  width            : 2px;
  background-color : #d97706;
  }

.timeline-item {
  position      : relative;
  margin-bottom : 2rem;
  padding-left  : 2rem;
  }

.timeline-item::before {
  content          : "";
  position         : absolute;
  left             : -0.375rem;
  top              : 0.25rem;
  width            : 0.75rem;
  height           : 0.75rem;
  border-radius    : 50%;
  background-color : #d97706;
  }

.timeline-date {
  font-weight   : 600;
  color         : #d97706;
  margin-bottom : 0.5rem;
  }

.timeline-content {
  background-color : #f5f5f4;
  padding          : 1rem;
  border-radius    : 0.5rem;
  border-left      : 3px solid #d97706;
  }

/* Styles pour les boutons */
.btn {
  display         : inline-block;
  padding         : 0.75rem 1.5rem;
  border-radius   : 0.375rem;
  font-weight     : 600;
  text-decoration : none;
  transition      : all 0.3s ease;
  border          : 2px solid transparent;
  }

.btn-primary {
  background-color : #d97706;
  color            : white;
  }

.btn-primary:hover {
  background-color : #b45309;
  transform        : translateY(-2px);
  }

.btn-outline {
  background-color : transparent;
  color            : white;
  border-color     : white;
  }

.btn-outline:hover {
  background-color : white;
  color            : #d97706;
  }

/* Ajustements pour les projets cards */
.project-card {
  background-color : white;
  border-radius    : 0.5rem;
  box-shadow       : 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  transition       : all 0.3s ease;
  overflow         : hidden;
  }

.project-card:hover {
  transform  : translateY(-5px);
  box-shadow : 0 10px 25px rgba(0, 0, 0, 0.15);
  }

.project-image {
  width      : 100%;
  height     : 14rem;
  object-fit : cover;
  }

/* Lazy loading pour les images */
.lazy-image {
  opacity    : 0;
  transition : opacity 0.5s ease;
  }

.lazy-image.loaded {
  opacity : 1;
  }

/* Separateur de sections */
.section-divider {
  height     : 1px;
  background : linear-gradient(to right, transparent, #d97706, transparent);
  margin     : 2rem 0;
  }

/* Gallery items pour les partenaires */
.gallery-item {
  display        : flex;
  flex-direction : column;
  align-items    : center;
  text-align     : center;
  padding        : 1rem;
  transition     : transform 0.3s ease;
  }

.gallery-item:hover {
  transform : scale(1.05);
  }

.gallery-caption {
  margin-top  : 0.5rem;
  font-size   : 0.875rem;
  color       : #6b7280;
  font-weight : 500;
  }

/*
 * CORRECTION FOND PIERRE - Chemins absolus au lieu de template tags Django
 * PROBLÈME RÉSOLU : Remplacement des {% static %} par paths absolus
 */

/* Hero section avec overlay sombre - Page d'accueil */
.hero-section {
  background-image    : linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.7)), url("/static/images/Blauckhaus_Fort_Teremba_Mouindou.jpg");
  background-size     : cover;
  background-position : center;
  }

/* Sections avec fond mur de pierre (Réalisations et Partenaires) */
#projects.stone-wall-section,
section.stone-wall-section {
  background-image      : linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.7)), url("/static/images/stone-wall-bg.jpg");
  background-size       : cover;
  background-position   : center;
  background-attachment : fixed;
  }

/* Transparence pour éléments dans sections stone-wall */
#projects.stone-wall-section .bg-white,
section.stone-wall-section .bg-white {
  background-color : rgba(255, 255, 255, 0.0) !important;
  backdrop-filter  : blur(0px);
  }

/* Ajustement textes dans sections stone-wall */
#projects.stone-wall-section h2,
section.stone-wall-section h2 {
  color       : white !important;
  text-shadow : 2px 2px 4px rgba(0, 0, 0, 0.7);
  }

/* Cartes projet dans sections stone-wall */
#projects.stone-wall-section .project-card {
  background-color : rgba(255, 255, 255, 0.95) !important;
  backdrop-filter  : blur(10px);
  border           : 1px solid rgba(255, 255, 255, 0.2);
  }

/* Préservation couleurs thème pour cartes */
#projects.stone-wall-section .project-card h3,
#projects.stone-wall-section .project-card p,
#projects.stone-wall-section .project-card a {
  color       : inherit !important;
  text-shadow : none !important;
  }

/* Galerie sur fond pierre */
section.stone-wall-section .gallery-item {
  background-color : rgba(255, 255, 255, 0.95);
  backdrop-filter  : blur(10px);
  border-radius    : 8px;
  padding          : 1rem;
  border           : 1px solid rgba(255, 255, 255, 0.2);
  }

/* Blog header avec fond pierre */
.blog-header {
  background-image      : linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.8)), url("/static/images/stone-wall-bg.jpg");
  background-size       : cover;
  background-position   : center;
  background-attachment : fixed;
  }

/*
 * CORRECTION TRANSPARENCE POUR PAGE SITES - FOND PIERRE VISIBLE
 * Réduction drastique des masques gris pour révéler le fond pierre
 */

/* Hero archives avec transparence corrigée */
.hero-archives {
  background-image      : linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.3)), url("/static/images/stone-wall-bg.jpg");
  background-size       : cover;
  background-position   : center;
  background-attachment : fixed;
  }

/* Page complète avec fond pierre pour sites */
body.stone-wall-page {
  background-image      : linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.2)), url("/static/images/stone-wall-bg.jpg");
  background-size       : cover;
  background-position   : center;
  background-attachment : fixed;
  }

/* Sections ultra-transparentes pour révéler le fond pierre */
.section-dark {
  background-color : rgba(30, 41, 59, 0.05) !important; /* Réduit de 0.15 à 0.05 */
  backdrop-filter  : blur(1px);
  }

.section-light-dark {
  background-color : rgba(51, 65, 85, 0.03) !important; /* Réduit de 0.1 à 0.03 */
  backdrop-filter  : blur(1px);
  }

/* Page sites - sections encore plus transparentes */
body.stone-wall-page .section-dark {
  background-color : rgba(30, 41, 59, 0.02) !important; /* Quasi-transparent */
  backdrop-filter  : blur(0.5px);
  }

body.stone-wall-page .section-light-dark {
  background-color : rgba(51, 65, 85, 0.01) !important; /* Quasi-transparent */
  backdrop-filter  : blur(0.5px);
  }

/* Cards avec transparence pour révéler le fond pierre */
.site-card,
.card-dark {
  background-color : rgba(255, 255, 255, 0.85) !important; /* Cards blanches transparentes */
  backdrop-filter  : blur(8px);
  border           : 1px solid rgba(217, 119, 6, 0.3);
  }

/* Cards spécifiques page sites avec effet glace */
body.stone-wall-page .site-card,
body.stone-wall-page .card-dark {
  background-color : rgba(255, 255, 255, 0.75) !important; /* Plus transparent */
  backdrop-filter  : blur(12px);
  border           : 1px solid rgba(217, 119, 6, 0.4);
  box-shadow       : 0 8px 32px rgba(0, 0, 0, 0.1);
  }