.max-h-128 {
  max-height: 32rem; /* 512px */
}

.max-h-72 {
  max-height: 18rem; /* 288px */
}

.max-h-64 {
  max-height: 16rem; /* 256px */
}

.max-h-48 {
  max-height: 12rem; /* 192px */
}

/* Base "prose" - typographie riche pour contenu HTML */
.prose {
  color: #111827;                 /* slate-900 approx */
  font-size: 1rem;                /* 16px */
  line-height: 1.75;
  max-width: 65ch;                /* largeur de lecture */
}

/* Titres */
.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6 {
  color: #111827;
  font-weight: 800;
  line-height: 1.25;
  margin-top: 1.8em;
  margin-bottom: 0.8em;
}
.prose h1 { font-size: 2.25rem; line-height: 1.1; margin-top: 0; }
.prose h2 { font-size: 1.875rem; }
.prose h3 { font-size: 1.5rem;   }
.prose h4 { font-size: 1.25rem;  }
.prose h5 { font-size: 1.125rem; }
.prose h6 { font-size: 1rem;     }

/* Paragraphes & elements courants */
.prose p,
.prose ul,
.prose ol,
.prose blockquote,
.prose pre,
.prose table,
.prose figure {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}

.prose strong { font-weight: 700; }
.prose em     { font-style: italic; }

/* Liens */
.prose a {
  color: #1f2937;                 /* slate-800 */
  text-decoration: underline;
  text-underline-offset: .2em;
}
.prose a:hover { color: #0f172a; } /* slate-900 */

/* Listes */
.prose ul { list-style: disc; padding-left: 1.625em; }
.prose ol { list-style: decimal; padding-left: 1.625em; }
.prose li { margin-top: .5em; margin-bottom: .5em; }
.prose li > ul,
.prose li > ol { margin-top: .5em; margin-bottom: .5em; }

/* Citations */
.prose blockquote {
  font-style: italic;
  color: #374151;                 /* gray-700 */
  border-left: 4px solid #e5e7eb; /* gray-200 */
  padding-left: 1em;
  margin-left: 0;
}

/* Separateur */
.prose hr {
  border: 0;
  border-top: 1px solid #e5e7eb;
  margin: 2rem 0;
}

/* Images, videos, iframes */
.prose img,
.prose video,
.prose iframe,
.prose svg {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.25em 0;
}

/* Code inline */
.prose code {
  font-family: "Outfit", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .875em;
  background: #f3f4f6;            /* gray-100 */
  color: #111827;
  padding: .15em .35em;
  border-radius: .25rem;
}
/* Eviter la double mise en forme dans les titres */
.prose h1 code, .prose h2 code, .prose h3 code,
.prose h4 code, .prose h5 code, .prose h6 code {
  font-size: .9em;
}

/* Blocs de code */
.prose pre {
  font-family: "Outfit", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: .875rem;
  line-height: 1.714;
  background: #0f172a;            /* slate-900 */
  color: #e5e7eb;                 /* gray-200 */
  padding: 1rem 1.25rem;
  border-radius: .5rem;
  overflow: auto;
}
.prose pre code {
  background: transparent;
  color: inherit;
  padding: 0;
  border-radius: 0;
}

/* Tableaux */
.prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95em;
}
.prose thead th {
  font-weight: 700;
  color: #111827;
  border-bottom: 1px solid #e5e7eb;
  padding: .75em .75em;
}
.prose tbody td {
  border-bottom: 1px solid #f3f4f6;
  padding: .75em .75em;
}

/* Figures */
.prose figure { display: block; }
.prose figcaption {
  color: #6b7280;                 /* gray-500 */
  font-size: .875em;
  margin-top: .5em;
  text-align: center;
}

/* Listes de definitions */
.prose dl { margin: 1.25em 0; }
.prose dt { font-weight: 600; }
.prose dd { margin-left: 1em; }

/* Petits ajustements */
.prose > :first-child { margin-top: 0; }
.prose > :last-child  { margin-bottom: 0; }

/* Variante "prose-lg" - echelle typographique plus grande */
.prose.prose-lg {
  font-size: 1.125rem;            /* 18px */
  line-height: 1.8;
}
.prose.prose-lg h1 { font-size: 3rem;    line-height: 1.05; }
.prose.prose-lg h2 { font-size: 2rem;    }
.prose.prose-lg h3 { font-size: 1.5rem;  }
.prose.prose-lg h4 { font-size: 1.25rem; }
.prose.prose-lg table { font-size: 1rem; }

/*.logo-no-white { mix-blend-mode: multiply; }*/

.border-gray { border-color: #5A5A58; }
.bg-gray { border-color: #5A5A58; }

.max-h-620 { max-height: 520px; }

/* .grid-max { */
  /* display: grid; */
  /* grid-template-columns: repeat(8, minmax(0, 1fr)); /* 8 colonnes */
/* } */

/* .grid-max > * { */
  /* grid-column: span 3 / span 3; /* chaque enfant occupe 3 colonnes */
/* } */

/* .grid-max > :first-child { */
  /* grid-column: 2 / span 3; /* le premier commence en colonne 2 */
/* } */

.transition-grayscale { transition-property: filter; transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: .5s; }

.h-28 { height: 7rem; }
.max-h-26 { max-height: 6.5rem; }

.max-h-full { max-height: 100%; }

.text-italic { font-style: italic; }

.aspect-w-16.aspect-h-9 {
  position: relative;
  width: 100%;
  padding-bottom: calc(9 / 16 * 100%); /* 56.25% */
}

.aspect-w-16.aspect-h-9 > * {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.container-tight {
  max-width: 768px;
}

.varela-round-regular {
  font-family: "Hubot Sans", sans-serif;
  font-style: normal;
}

h1, h2:not(.not-varela), h3, h1 > *, h2 > *, h3 > * {
  font-family: "Hubot Sans", sans-serif;
}

*:not(.varela-round-regular, h1, h2, h3, h1 > *, h2 > *, h3 > *) {
  font-family: "Outfit", sans-serif;
  font-optical-sizing: auto;
}

.not-varela {
  font-family: "Outfit", sans-serif;
  font-optical-sizing: auto;
}

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

.bullets {
  list-style: disc;
}

.rounded-lg-l {
  border-radius: 2rem 0 0 2rem;
}

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

.wave-clip-path {
  clip-path: polygon(100% 0%, 0% 0% , 0.00% 48.55%, 1.00% 49.28%, 2.00% 50.01%, 3.00% 50.74%, 4.00% 51.48%, 5.00% 52.20%, 6.00% 52.93%, 7.00% 53.65%, 8.00% 54.36%, 9.00% 55.06%, 10.00% 55.75%, 11.00% 56.44%, 12.00% 57.11%, 13.00% 57.76%, 14.00% 58.40%, 15.00% 59.03%, 16.00% 59.64%, 17.00% 60.22%, 18.00% 60.79%, 19.00% 61.34%, 20.00% 61.87%, 21.00% 62.37%, 22.00% 62.85%, 23.00% 63.30%, 24.00% 63.73%, 25.00% 64.13%, 26.00% 64.51%, 27.00% 64.86%, 28.00% 65.17%, 29.00% 65.46%, 30.00% 65.72%, 31.00% 65.95%, 32.00% 66.15%, 33.00% 66.31%, 34.00% 66.45%, 35.00% 66.55%, 36.00% 66.62%, 37.00% 66.66%, 38.00% 66.67%, 39.00% 66.64%, 40.00% 66.58%, 41.00% 66.49%, 42.00% 66.37%, 43.00% 66.22%, 44.00% 66.03%, 45.00% 65.81%, 46.00% 65.57%, 47.00% 65.29%, 48.00% 64.98%, 49.00% 64.65%, 50.00% 64.29%, 51.00% 63.89%, 52.00% 63.48%, 53.00% 63.03%, 54.00% 62.56%, 55.00% 62.07%, 56.00% 61.55%, 57.00% 61.01%, 58.00% 60.45%, 59.00% 59.87%, 60.00% 59.27%, 61.00% 58.65%, 62.00% 58.02%, 63.00% 57.37%, 64.00% 56.70%, 65.00% 56.03%, 66.00% 55.34%, 67.00% 54.64%, 68.00% 53.93%, 69.00% 53.21%, 70.00% 52.49%, 71.00% 51.77%, 72.00% 51.03%, 73.00% 50.30%, 74.00% 49.57%, 75.00% 48.84%, 76.00% 48.11%, 77.00% 47.38%, 78.00% 46.66%, 79.00% 45.95%, 80.00% 45.24%, 81.00% 44.54%, 82.00% 43.85%, 83.00% 43.18%, 84.00% 42.52%, 85.00% 41.87%, 86.00% 41.24%, 87.00% 40.62%, 88.00% 40.03%, 89.00% 39.45%, 90.00% 38.89%, 91.00% 38.36%, 92.00% 37.84%, 93.00% 37.35%, 94.00% 36.89%, 95.00% 36.45%, 96.00% 36.03%, 97.00% 35.65%, 98.00% 35.29%, 99.00% 34.96%, 100.00% 34.66%);
}

.btn-auto { max-width: fit-content; }

.min-w-full {
  min-width: 100%;
}

.aspect-\[9\/16\] {
  aspect-ratio: 9/16;
}

.max-h-48 {
  max-height: 12rem;
}

.self-start {
  align-self: flex-start;
}

.self-end {
  align-self: flex-end;
}

.max-w-72 {
  max-width: 18rem;
}

* {
  --primary-light: 	 158.18, 24%, 82%;
  --secondary-light: 0 0% 85.1%;
}

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

.rounded-xl {
  border-radius: 4rem;
}

.text-underline {
  text-decoration: underline;
}

.text-artistic-600 {
  /*color: hsl(var(--primary-light));*/
  color: #C7DDD5;
}

.border-artistic-secondary {
  border-color: hsl(var(--primary-light));
}

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

.hover\:bg-artistic-secondary:hover {
  background-color: hsl(var(--primary-light));
}

.bg-extra {
  background-color: hsl(var(--secondary-light));
}

.bg-extra-30 {
  background-color: hsl(var(--secondary-light) / 0.3);
}

.border-extra {
  border-color: hsl(var(--secondary-light));
}

.mt-10 {
  margin-top: 2.5rem;
}

.aspect-\[16\/9\] {
  aspect-ratio: 16/9;
}

.bg-danger {
  background-color: #61131d;
}

.bg-c2w {
  background-color: #640E32;
}

.bg-c2b {
  background-color: #AA8400;
}

.bg-c2m {
  background-color: #0F6D83;
}

.bg-c2e {
  background-color: #AA4900;
}

.text-c2w {
  color: #640E32;
}

.text-c2b {
  color: #AA8400;
}

.text-c2m {
  color: #0F6D83;
}

.text-c2e {
  color: #AA4900;
}

.bg-gradient-wtg {
  background: linear-gradient(to left, #819A74, #E7F1EF 40%, #C7DDD5 70%, #3E642955 100%);
}

.bg-gradient-wtg-ne {
  background: linear-gradient(to left, hsl(var(--secondary-light)), #ffffff 40%, hsl(var(--primary-light) / 0.1) 70%, hsl(var(--primary) / 0.4) 100%);
}

.bg-gradient-wtg-invert {
  background: linear-gradient(to right, #819A74, #E7F1EF 40%, #C7DDD5 70%, #3E642955 100%);
}

.bg-gradient-wtg-diag {
  background: linear-gradient(-45deg, #819A74, #E7F1EF 40%, #C7DDD5 70%, #3E642955 100%);
}

.bg-gradient-wtg-diag-variant {
  background: linear-gradient(-45deg, hsl(var(--primary) / 0.2), #ffffff 80%, #ffffff 100%);
}

/* GRADIENT BY OFFERS */

.bg-gradient-wtg-diag-variant-c2w {
  background: linear-gradient(-45deg, #B18EA0, #FFFFFF 80%, #FFFFFF 100%);
}

.bg-gradient-wtg-diag-variant-c2b {
  background: linear-gradient(-45deg, #DFD19F, #FFFFFF 80%, #FFFFFF 100%);
}

.bg-gradient-wtg-diag-variant-c2m {
  background: linear-gradient(-45deg, #B2D0D5, #FFFFFF 80%, #FFFFFF 100%);
}

.bg-gradient-wtg-diag-variant-c2e {
  background: linear-gradient(-45deg, #F2C6A6, #FFFFFF 80%, #FFFFFF 100%);
}

/* END OF OFFERS GRADIENTS */

.bg-gradient-wtg-diag-variant-opaque {
  background: linear-gradient(-45deg, hsl(var(--primary) / 0.3), hsl(var(--primary) / 0.6) 60%, hsl(var(--primary) / 0.6) 100%);
}

.bg-gradient-wtg-diag-variant-invert {
  background: linear-gradient(135deg, hsl(var(--primary) / 0.2), #ffffff 80%, #ffffff 100%);
}

.bg-gradient-wtg-diag-variant-danger {
  background: linear-gradient(-45deg, #61131A41, #ffffff 80%, #ffffff 100%);
}

.bg-gradient-wtg-diag-invert {
  background: linear-gradient(135deg, #819A74, #E7F1EF 40%, #C7DDD5 70%, #3E642955 100%);
}

.text-shadowing {
  text-shadow: 1px 1px 2px black;
}

.min-w-screen{min-width: 100vw;}

/* === Animations & effets (equivalents framer-motion) === */
/* Hover lift (cartes, boutons) */
.hover-lift { transition: transform .35s ease, box-shadow .35s ease, filter .35s ease; }
.hover-lift:hover { transform: translateY(-4px); }

/* Zoom image au survol (utiliser avec .group) */
.img-zoom { transition: transform .8s cubic-bezier(.2,.7,.2,1); transform-origin: center; }
.group:hover .img-zoom { transform: scale(1.05); }

/* Reveal up (entree douce) */
.reveal-up { opacity: 0; transform: translateY(12px); }
.reveal-in { animation: fade-up .6s cubic-bezier(.22,.61,.36,1) both; }

/* Stagger container : appliquer .stagger + .stagger-in pour lancer la cascade */
.stagger > * { opacity: 0; transform: translateY(10px); }
.stagger.stagger-in > * { animation: fade-up .6s cubic-bezier(.22,.61,.36,1) both; }
.stagger.stagger-in > *:nth-child(1)  { animation-delay: .05s; }
.stagger.stagger-in > *:nth-child(2)  { animation-delay: .12s; }
.stagger.stagger-in > *:nth-child(3)  { animation-delay: .19s; }
.stagger.stagger-in > *:nth-child(4)  { animation-delay: .26s; }
.stagger.stagger-in > *:nth-child(5)  { animation-delay: .33s; }
.stagger.stagger-in > *:nth-child(6)  { animation-delay: .40s; }
.stagger.stagger-in > *:nth-child(7)  { animation-delay: .47s; }
.stagger.stagger-in > *:nth-child(8)  { animation-delay: .54s; }
.stagger.stagger-in > *:nth-child(9)  { animation-delay: .61s; }
.stagger.stagger-in > *:nth-child(10) { animation-delay: .68s; }

/* Switch de panneau (quand on change de service) */
.switching { animation: fade-swap .32s ease both; }

/* Focus visible coherent */
.focus-ring { outline: none; }
.focus-ring:focus-visible {
box-shadow: 0 0 0 2px theme(colors.background), 0 0 0 4px theme(colors.foreground);
}

/* Keyframes */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fade-swap {
  0%   { opacity: 0; transform: translateY(8px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* ========= Container ========= */
/*.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}*/
@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}}

/* ========= Spacing ========= */
.p-2{padding:.5rem}
.p-3{padding:.75rem}
.p-4{padding:1rem}
.p-6{padding:1.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.py-24{padding-top:6rem;padding-bottom:6rem}
.pt-6{padding-top:1.5rem}
.pt-8{padding-top:2rem}
.pt-16{padding-top:4rem}
.pt-20{padding-top:5rem}
.pb-4{padding-bottom:1rem}
.pb-10{padding-bottom:2.5rem}
.pb-16{padding-bottom:4rem}
.mb-1{margin-bottom:.25rem}
.mb-2{margin-bottom:.5rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mb-10{margin-bottom:2.5rem}
.mb-12{margin-bottom:3rem}
.mb-14{margin-bottom:3.5rem}
.mb-16{margin-bottom:4rem}
.mt-6{margin-top:1.5rem}
.mt-8{margin-top:2rem}
.mt-10{margin-top:2.5rem}
.mx-auto{margin-left:auto;margin-right:auto}
.mx-3{margin-left:.75rem;margin-right:.75rem}
.ml-2{margin-left:.5rem}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.gap-10{gap:2.5rem}
.gap-12{gap:3rem}
.gap-16{gap:4rem}
.space-x-4 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}
.space-x-8 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}
.space-y-2 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}
.space-y-3 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}
.space-y-4 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}
.space-y-8 > :not([hidden]) ~ :not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}

/* ========= Sizing ========= */
.w-5{width:1.25rem}.h-5{height:1.25rem}
.w-6{width:1.5rem}.h-6{height:1.5rem}
.w-12{width:3rem}.h-12{height:3rem}
.w-72{width:18rem}
.h-28{height:7rem}
.h-48{height:12rem}
.h-96{height:24rem}
.h-72{height:18rem;}
.max-h-72{max-height:18rem;}
.max-w-2xl{max-width:42rem}
.max-w-4xl{max-width:56rem}
.lg\:max-w-none{max-width:none}

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

/* ========= Typography ========= */
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.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}
.font-light{font-weight:300}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-black{font-weight:900}
.uppercase{text-transform:uppercase}
.leading-tight{line-height:1.25}
.tracking-wide{letter-spacing:.025em}
.tracking-widest{letter-spacing:.1em}
.text-center{text-align:center}
.lg\:text-left{text-align:left}

/* Borders */
.border{border-width:1px}
.border-2{border-width:2px}
.border-4{border-width:4px}
.border-b{border-bottom-width:1px}
.border-b-2{border-bottom-width:2px}
.border-t{border-top-width:1px}
.border-t-2{border-top-width:2px}
.border-r-4{border-right-width:4px}
.hover\:border-primary:hover{border-color:rgb(var(--primary))}

/* ========= Radius / Shadow ========= */
.rounded-3xl{border-radius:1.5rem}
.rounded-\[3rem\]{border-radius:3rem}
.rounded-3xl .rounded-3xl{border-radius:1.5rem}
.shadow-lg{box-shadow:0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}
.shadow-xl{box-shadow:0 20px 25px -5px rgb(0 0 0 / .1), 0 10px 10px -5px rgb(0 0 0 / .04)}
.shadow-2xl{box-shadow:0 25px 50px -12px rgb(0 0 0 / .25)}
.hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgb(0 0 0 / .1), 0 10px 10px -5px rgb(0 0 0 / .04)}
.hover\:shadow-2xl:hover{box-shadow:0 25px 50px -12px rgb(0 0 0 / .25)}

/* ========= Transitions ========= */
.transition{transition:all .2s cubic-bezier(.4,0,.2,1)}
.transition-all{transition:all .2s cubic-bezier(.4,0,.2,1)}
.transition-colors{transition:color .2s, background-color .2s, border-color .2s, fill .2s, stroke .2s}
.transition-transform{transition:transform .2s}
.duration-300{transition-duration:.3s}
.duration-500{transition-duration:.5s}
.duration-700{transition-duration:.7s}
.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}

/* ========= Transforms ========= */
.transform{transform:translate(0)}
.group-hover\:translate-x-1{}
.group-hover\:translate-x-full{}
.-skew-x-12{transform:skewX(-12deg)}
.-translate-x-full{transform:translateX(-100%)}
.hover\:scale-\[1\.02\]:hover{transform:scale(1.02)}
.active\:scale-\[0\.98\]:active{transform:scale(.98)}
.group:hover .group-hover\:translate-x-1{transform:translateX(.25rem)}
.group:hover .group-hover\:translate-x-full{transform:translateX(100%)}
.hover\:-translate-y-2:hover{transform:translateY(-.5rem)}
.hover\:-translate-y-1:hover{transform:translateY(-.25rem)}

/* ========= Aspect ratio ========= */
.aspect-\[3\/4\]{aspect-ratio:3/4}
.md\:aspect-\[4\/5\]{}
.lg\:aspect-\[3\/4\]{}

/* ========= Opacity / Filters ========= */
.group:hover .group-hover\:opacity-20{opacity:.2}
.grayscale{filter:grayscale(100%)}
.hover\:grayscale-0:hover{filter:grayscale(0%)}
.transition-grayscale{transition:filter .3s}
.backdrop-blur-sm{backdrop-filter:blur(4px)}

/* ========= Gradients ========= */
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-grad-from,transparent),var(--tw-grad-via,transparent),var(--tw-grad-to,transparent))}
.from-transparent{--tw-grad-from:transparent}
.via-white\/10{--tw-grad-via:rgba(255,255,255,.1)}
.to-transparent{--tw-grad-to:transparent}

/* ========= Misc ========= */
.cursor-pointer{cursor:pointer}
.overflow-hidden{overflow:hidden}
.object-contain{object-fit:contain}
.object-cover{object-fit:cover}
.uppercase{text-transform:uppercase}

.w-128 {
  width: 32rem;
}

.h-128 {
  height: 32rem;
}

.w-\[50\%\] {
  width: 50%;
}

.h-\[50\%\] {
  height: 50%;
}

.object-position-y-30 {
  background-position: center 40px;
  background-size: 75%;
  background-repeat: no-repeat;
}

.h-40 {
  height: 10rem; /* soit 160px si 1rem = 16px */
}

.max-w-fit {
  max-width: fit-content;
}

.cut-image {
  clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 0% 85%);
}

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

.mr-12 {margin-right:3rem;}

.bg-c2w:has(> :is(a, button, .wp-block-button__link):only-child),
.bg-c2b:has(> :is(a, button, .wp-block-button__link):only-child),
.bg-c2m:has(> :is(a, button, .wp-block-button__link):only-child),
.bg-c2e:has(> :is(a, button, .wp-block-button__link):only-child) {
  background-color: transparent;
}

.bg-c2w:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.bg-c2w:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: #640E32;
}

.bg-c2b:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.bg-c2b:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: #AA8400;
}

.bg-c2m:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.bg-c2m:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: #0F6D83;
}

.bg-c2e:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.bg-c2e:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: #AA4900;
}

.btn-artistic-2-variant:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.btn-artistic-2-variant:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  border-color: hsl(var(--foreground));
}

.btn-artistic-2-variant:not(:has(> :is(a, button, .wp-block-button__link):only-child)):hover,
.btn-artistic-2-variant:has(> :is(a, button, .wp-block-button__link):only-child):hover > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--foreground));
  color: hsl(var(--background));
  border-color: hsl(var(--foreground));
}

.btn-artistic-2-variant-white:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.btn-artistic-2-variant-white:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  color: hsl(var(--background));
  border-color: hsl(var(--background));
}

.btn-artistic-2-variant-white:not(:has(> :is(a, button, .wp-block-button__link):only-child)):hover,
.btn-artistic-2-variant-white:has(> :is(a, button, .wp-block-button__link):only-child):hover > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  border-color: hsl(var(--background));
}

.btn-artistic-2:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.btn-artistic-2:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--background));
  color: hsl(var(--primary-light));
  border-color: hsl(var(--primary-light));
}

.btn-artistic-2:not(:has(> :is(a, button, .wp-block-button__link):only-child)):hover,
.btn-artistic-2:has(> :is(a, button, .wp-block-button__link):only-child):hover > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--primary-light));
  color: hsl(var(--background));
  border-color: hsl(var(--primary-light));
}

.btn-artistic-2-invert:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.btn-artistic-2-invert:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--primary-light));
  color: hsl(var(--background));
  border-color: hsl(var(--primary-light));
}

.btn-artistic-2-invert:not(:has(> :is(a, button, .wp-block-button__link):only-child)):hover,
.btn-artistic-2-invert:has(> :is(a, button, .wp-block-button__link):only-child):hover > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--background));
  color: hsl(var(--primary-light));
  border-color: hsl(var(--primary-light));
}

.btn-artistic-3:not(:has(> :is(a, button, .wp-block-button__link):only-child)),
.btn-artistic-3:has(> :is(a, button, .wp-block-button__link):only-child) > :is(a, button, .wp-block-button__link):only-child {
  background-color: hsl(var(--primary));
  color: hsl(var(--background));
  border-color: hsl(var(--primary));
}

/* ========= Accessibility ========= */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ========= Responsive ========= */
@media (min-width:640px){ /* sm */
  .sm\:flex-row{flex-direction:row}
  .sm\:h-32{height:8rem}
}
@media (min-width:768px){ /* md */
  .md\:block{display: block}
  .md\:flex{display:flex}
  .md\:hidden{display:none}
  .md\:text-base{font-size:1rem;line-height:1.5rem}
  .md\:text-lg{font-size:1.125rem;line-height:1.75rem}
  .md\:text-2xl{font-size:1.5rem;line-height:2rem}
  .md\:text-3xl{font-size:1.875rem;line-height:2.25rem}
  .md\:mb-12{margin-bottom:3rem}
  .md\:mt-0{margin-top:0}
  .md\:mt-10{margin-top:2.5rem}
  .md\:p-8{padding:2rem}
  .md\:px-8{padding-left:2rem;padding-right:2rem}
  .md\:px-10{padding-left:2.5rem;padding-right:2.5rem}
  .md\:py-8{padding-top:2rem;padding-bottom:2rem}
  .md\:py-16{padding-top:4rem;padding-bottom:4rem}
  .md\:py-20{padding-top:5rem;padding-bottom:5rem}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:gap-6{gap:1.5rem}
  .md\:gap-12{gap:3rem}
  .md\:text-4xl{font-size:2.25rem;line-height:2.5rem} /* handy */
  .md\:aspect-\[4\/5\]{aspect-ratio:4/5}
  .md\:h-128 {height: 32rem;}
  .md\:grid {display: grid;}
  .md\:w-28 {
    width: 7rem;
  }
  .md\:h-28 {
    height: 7rem;
  }
  .md\:py-4{
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}

#offers-logos > .active {
  background-color: hsl(var(--primary));
}

#offers-logos > .active > img {
  filter: invert(1) saturate(0) brightness(2);
}

@media (min-width:1024px){ /* lg */
  .lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:gap-16{gap:4rem}
  .lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}
  .lg\:mx-0{margin-left:0;margin-right:0}
  .lg\:items-start{align-items:flex-start}
  .lg\:justify-start{justify-content:flex-start}
  .lg\:text-left{text-align:left}
  .lg\:col-span-9{grid-column:span 9 / span 9}
  .lg\:col-span-3{grid-column:span 3 / span 3}
  .lg\:h-36{height:9rem}
  .lg\:aspect-\[3\/4\]{aspect-ratio:3/4}
  .lg\:grid {display: grid;}
  .lg\:absolute {
    position: absolute;
  }
  .lg\:mr-12 {margin-right:3rem;}
  .lg\:flex-row{flex-direction: row}
  .lg\:mt-12 {margin-top: 3rem;}
  .image-fix {transform: translateY(15%);}
}
@media (min-width:1280px){ /* xl */
  .xl\:h-40{height:10rem}
}

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

@media (max-width: 1024px){
  .max-lg\:grid-reverse {
    grid-row: 1;
  }
  .max-lg\:my-12 {margin-top: 3rem; margin-bottom: 3rem;}

  .max-lg\:object-contain {
    object-fit: contain;
  }
}

@media (max-width: 768px){
  .max-md\:justify-center{
    justify-items: center;
  }
  .max-md\:object-contain {
    object-fit: contain;
  }
  .max-md\:mb-8 {
    margin-bottom: 2rem;		
  }
}

.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}

.max-w-screen {
  max-width: 100vw;
}

.min-w-fit {
  min-width: max-content;
}

.bg-dreamy-50 {
  background-color: white;
}

.flex-60 {
  flex: 0 0 60%;
}

.flex-40 {
  flex: 0 0 40%;
}
