@charset "utf-8";
/* CSS Document */

/* =========================================================
   🌐 1. UNIVERSAL SETTINGS
========================================================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  scroll-behavior: smooth;
  transition: all 0.2s ease-in-out;
}

html {
  position: relative;
  min-height: 100vh;
  transition: all 0.2s ease-in-out;
}

/* =========================================================
   🎨 2. GLOBAL STYLE & TYPOGRAPHY
========================================================= */
body {
  position: relative;
  z-index: 0;
  background-repeat: repeat;
  color: #210D1B;
  font-family: "Geologica", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  font-variation-settings:
    "slnt" -1,
    "CRSV" 1,
    "SHRP" 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
  padding: 80px 0;
  transition: all 0.2s ease-in-out;
}

/* ----- Background animé ----- */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  min-height: 100vh;
  z-index: -1;
  background-image:
    linear-gradient(20deg,
      rgba(17, 13, 33, 0.0) 0%,
      rgba(46, 39, 105, 0.0) 50%,
      rgba(17, 13, 33, 0.0) 100%
    ),
    url("../img/background/wallpaper6.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  animation: gradientFlow 15s ease infinite;
  will-change: background-position, filter;
  pointer-events: none;
}

.material-symbols-outlined {
  font-variation-settings:
  'FILL' 1,
  'wght' 600,
  'GRAD' 0,
  'opsz' 24;
  font-size: inherit;
  color: inherit;
  display: inline-flex;
  align-self: center;
}

/* =========================================================
   ✍️ 3. TEXT ELEMENTS
========================================================= */
p {
  font-size: 16px;
}

strong {
  font-weight: 600;
  font-variation-settings: "SHRP" 80;
}

b {
  font-weight: 300;
  font-variation-settings: "SHRP" 60;
}

em {
  font-variation-settings:
    "slnt" -12,
    "CRSV" 1,
    "SHRP" 100;
}

i {
  font-style: italic;
  filter: opacity(0.6);
}

h1, h2, h3 {
  font-family: "Funnel Display", sans-serif;
  font-style: normal;
  display: inline-flex;
}

h1, h2 {
  text-transform: uppercase;
}

h1 {
  font-size: 40px;
  font-weight: 900;
  font-variation-settings: "wdth" 120;
}

h2 {
  font-size: 30px;
  font-weight: 600;
  font-variation-settings: "wdth" 120;
}

h3 {
  font-size: 25px;
  font-weight: 600;
  font-variation-settings: "wdth" 100;
}

/* =========================================================
   💎 4. LIQUID GLASS EFFECT
========================================================= */
:root {
  --lg-shadow-color: rgba(255, 204, 211, 0.6);
  --lg-tint-color: 255, 255, 255;
  --lg-tint-opacity: 0.6;
  --lg-frost-blur: 10px;
}

.liquidGlass {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 0;
  overflow: hidden;
  isolation: isolate;
  background: transparent;
  box-shadow: 5px 10px 25px rgba(33, 13, 27, 0.2);
}

/* Calques internes */
.liquidGlass-overlay,
.liquidGlass-inner {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

/* Fond flou */
.liquidGlass-overlay {
  z-index: 0;
  backdrop-filter: blur(var(--lg-frost-blur));
  -webkit-backdrop-filter: blur(var(--lg-frost-blur));
  filter: url(#glass-distortion);
  -webkit-filter: url("#glass-distortion");
}

/* Teinte interne */
.liquidGlass-inner {
  z-index: 1;
  background-color: rgba(var(--lg-tint-color), var(--lg-tint-opacity));
  box-shadow:
    inset 1px 1px 30px 5px rgba(255, 255, 255, 0.8),
    inset -1px -3px 2px rgba(255, 181, 191, 0.8),
    inset 2px 5px 5px rgba(207, 189, 255, 0.9);
}

/* Contenu */
.liquidGlass-content {
  position: relative;
  z-index: 2;
  padding: 40px;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-evenly;
  gap: 20px;
}

.bevel .liquidGlass-content {
  margin-top: -40px;
}

/* =========================================================
   🧩 5. BEVEL & CHROME EDGES
========================================================= */
.bevel {
  position: relative;
  overflow: hidden;
}

/* Coins blancs */
.bevel::before,
.bevel::after,
.bevel span::before,
.bevel span::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 30px;
  background: white;
  z-index: 2;
}

.bevel::before { top: 0; left: 0; clip-path: polygon(0 0, 100% 0, 0 100%); }
.bevel::after { top: 0; right: 0; clip-path: polygon(100% 0, 100% 100%, 0 0); }
.bevel span::before { bottom: 0; left: 0; clip-path: polygon(0 100%, 100% 100%, 0 0); }
.bevel span::after { bottom: 0; right: 0; clip-path: polygon(100% 100%, 100% 0, 0 100%); }

/* Chrome edges */
.chrome-edges {
  position: relative;
  border-radius: 0;
  transition: all 0.2s ease;
  left: 0;
  top: 0;
}

.chrome-edges > .wrapper-minia {
  z-index: -1;
}

.chrome-edges:nth-child(3n+1),
.chrome-edges:nth-child(3n+0) {
  border-radius: 0 20px 0 0;
  border: 2px solid #392ac2;
}

.chrome-edges:nth-child(3n+2) {
  border-radius: 0 0 0 20px;
  border: 2px solid #db345d;
}

.chrome-edges:hover  {
  left: 2px;
  top: 4px;
}

.chrome-edges::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: translate(5px, 5px);
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background-color: rgba(255, 255, 255, 1);
  z-index: -1;
  box-shadow: 5px 2px 5px rgba(33, 13, 27, 0.1);
  transition: all 0.2s ease;
}

.chrome-edges:hover::before {
  transform: translate(-3px,-2px);
  animation: floatOscillate 5s ease-in-out infinite 0.3s;
  transition: transform 0.3s ease;
    box-shadow:     
    1px 2px 10px rgba(33, 13, 27, 0.1);
}

.chrome-edges:nth-child(3n+1) .read-more,
.chrome-edges:nth-child(3n+0) .read-more,
.chrome-edges:nth-child(3n+1) .CTA,
.chrome-edges:nth-child(3n+0) .CTA{
  background-color: #392ac2;
  color: white;
  border: 2px solid #392ac2;
}

.chrome-edges:nth-child(3n+2) .read-more,
.chrome-edges:nth-child(3n+2) .CTA{
  background-color: #db345d;
  color: white;
  border: 2px solid #db345d;
}

.chrome-edges:nth-child(3n+1) .read-more:hover,
.chrome-edges:nth-child(3n+0) .read-more:hover,
.chrome-edges:nth-child(3n+1) .CTA:hover,
.chrome-edges:nth-child(3n+0) .CTA:hover{
  background-color: white;
  color: #392ac2;
}

.chrome-edges:nth-child(3n+2) .read-more:hover,
.chrome-edges:nth-child(3n+2) .CTA:hover{
  background-color: white ;
  color: #db345d;
}
.read-more{  
  align-self: flex-end;
  justify-self: flex-end;
  position: absolute;
  bottom: 20px;
  right: 20px;
  font-size: 30px;
  width: 40px;
  height: 40px;
  padding: 5px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 100;
  font-variation-settings: "SHRP" 80;
}

.description {
  flex: 1;             
  display: flex;
}

.description p{
  height: 100%;
  padding-bottom: 50px;
}

.CTA{
  text-transform: uppercase;
  font-weight: 600;
  font-variation-settings: "SHRP" 80;
  font-size: 25px;
  letter-spacing: 2px;
  padding: 10px 10px 10px 30px;
  border-radius: 0 0 0 100px;
}

.CTA:hover .material-symbols-outlined{
  transform: translate(5px,0);
}

button {
  display: flex;
  background: none;
  border: none;
  font-weight: inherit;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 18px;
  text-decoration: none;
  padding: 5px 10px;
  border-radius: 100px;
  color: inherit;
  pointer-events: all;
  z-index: 5;
}

.chrome-edges p {
  overflow: hidden;
  transition: max-height 0.4s ease;
}


/* =========================================================
   🧱 6. STRUCTURE & LAYOUT
========================================================= */
.contained {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 80px;
  width: 2200px;
  margin: 0 auto;
}

.grid-flex-3,
.grid-flex-5 {
  display: flex;
  flex-wrap: wrap-reverse;
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: stretch;
  padding: 20px;
  gap: 20px;
}

.grid-flex-3 > article {
  flex: 1 1 calc(33.333% - 20px);
  min-width: 280px;
}

.grid-flex-5 > article{
  flex: 1 1 calc(20% - 20px);
  min-width: 180px;
  max-width: 100%;
}

.grid {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
  padding: 20px;
  gap: 20px;
}

.grid > article {
  flex: 1 1 calc(33.333% - 20px);
  min-width: 400px;
  max-width: 100%;
  height: 100%;
}

.grid > .portrait-wrapper {
  position: relative;
  align-items: flex-end;
  justify-content: flex-end;
  display: flex;
  aspect-ratio: 1 / 1;
  max-height: 600px;
  object-fit: cover;
}

.portrait {
  display: flex;
  position: relative;
  bottom: 0px;
  right: 0px;
  width: 100%;
  max-width: 500px;
  transform: translate(61px, 60px);
}

.deco1 {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    45deg,
    rgba(255, 255, 255, 15),
    rgba(255, 255, 255, 15) 10px,
    transparent 10px,
    transparent 20px
  );
  z-index: 0;
  aspect-ratio: 1 / 1 ;
  border-radius: 50%;
}

/* Bande bleue (haut droite) */
.deco1::after {
  content: "";
  position: absolute;
  bottom: 20%;
  left: 60px;
  width: 100%;
  height: 40%;
  background-color: #392ac2;
  opacity: 0.8;
  animation: float 10s ease-in-out infinite;
}

/* Bande rouge (bas droite) */
.deco1::before {
  content: "";
  position: absolute;
  bottom: -10%;
  left: -20px;
  width: 100%;
  height: 20%;
  background-color: #db345d;
  opacity: 0.8;
  animation: float 10s ease-in-out infinite reverse;
}

/* Animation douce et cyclique */
@keyframes float {
  0% {
    transform: translate(5px, 5px) rotate(45deg);
  }
  25% {
    transform: translate(10px, 10px) rotate(45deg);
  }
  50% {
    transform: translate(0px, 0px) rotate(45deg);
  }
  75% {
    transform: translate(-10px, -10px) rotate(45deg);
  }
  100% {
    transform: translate(5px, 5px) rotate(45deg);
  }
}

.fullW { width: 100%; }
.left { text-align: left; padding: 0 20px; display: inline-flex; }

.pad20 {
  padding: 20px;
}

.full-tab {
  display: flex;
  flex-wrap: wrap-reverse;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 0; 
  box-sizing: border-box;
}

/* Titre à gauche */
.full-tab > :first-child {
  padding: 20px;
  flex: 1 1 200px;
  min-width: 200px;
  max-width: 100%;
  align-self: flex-start;
}

/* Bouton à droite */
.full-tab > :last-child {
  flex: 1 1 100px;
  min-width: 100px;
  max-width: 100%;
  display: flex;
  justify-content: flex-end;
  flex-direction: row;
  transform: translate(2px, -2px);
  align-items: center;
}


/* =========================================================
   🖼️ 7. VISUAL ELEMENTS
========================================================= */
article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  transition: all 0.2s ease;
}

.wrapper-minia {
  width: 100%;
  height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transform: translate(5px, 5px);
  transition: all 0.2s ease;
}

.wrapper-minia img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: all;
}

article:hover .wrapper-minia img {
  transform: scale(1.1);
}

article:hover .wrapper-minia{
  transform: translate(-3px,-2px);
  animation: floatOscillate 5s ease-in-out infinite 0.3s;
  transition: transform 0.3s ease;
}



.hero { min-height: 40vh; }

/* =========================================================
   ⚙️ 8. ANIMATIONS
========================================================= */
@keyframes gradientFlow {
  0%   { filter: hue-rotate(10deg) brightness(1) saturate(0.9); transform: scale(1); }
  25%  { filter: hue-rotate(0deg) brightness(1.1) saturate(1); transform: scale(1.02); }
  50%  { filter: hue-rotate(-10deg) brightness(1) saturate(1.1); transform: scale(1.04); }
  75%  { filter: hue-rotate(0deg) brightness(0.90) saturate(1); transform: scale(1.02); }
  100% { filter: hue-rotate(10deg) brightness(1) saturate(0.9); transform: scale(1); }
}

@keyframes floatOscillate {
  0%   { transform: translate(-3px, -2px); }
  25%  { transform: translate(-2px, -4px); }
  50%  { transform: translate(0px, 0px); }
  75%  { transform: translate(-4px, -3px); }
  100% { transform: translate(-3px, -2px); }
}

/* =========================================================
   📱 9. RESPONSIVE
========================================================= */
@media (max-width: 2200px) { .contained { width: 1400px; } }
@media (max-width: 1400px) { .contained { width: 1000px; } }
@media (max-width: 1000px) {
  .contained { width: 100%; }
  .liquidGlass-content { padding: 40px 0; }
}
@media (max-width: 900px) {
  .grid-flex-3 > * { flex: 1 1 calc(50% - 20px); }
  .grid-flex-5 > * { flex: 1 1 calc(33.333% - 20px); }
}
@media (max-width: 700px) {
  .grid-flex-5 > * { flex: 1 1 calc(50% - 20px);}
  .portrait {
  display: flex;
  position: relative;
  bottom: 0px;
  right: 0px;
  width: auto;
  max-height: 140%;
  max-width: 100%;
  transform: translate( 20px,60px);
}
.grid > article {
    flex: 1 1 calc(33.333% - 20px);
    min-width: 100%;
    max-width: 100%;
    height: 100%;
}

  .portrait-wrapper {
    min-width: 100%;
    max-width: 100%;
  }
}
@media (max-width: 500px) {
  .grid-flex-5 > * { flex: 1 1 100%; }
}
@media (max-width: 1250px) {
  p { font-size: 18px; }
  h1, h2 { font-size: 22px; }
  h3 { font-size: 20px; }
}

/* =========================================================
   🧭 10. LINKS & HOVER EFFECTS
========================================================= */
a {
  cursor: pointer;
  color: inherit;
  text-decoration: none;
}

p a {
  display: inline-flex;
  box-shadow: 0 9px 0 -10px rgba(33, 13, 27, 1);
}

a:hover h3, p a:hover {
  transform: translate(0, -2px);
  box-shadow: 0 2px 0 0 rgba(33, 13, 27, 1);
}
