/* TWKLausanne font-face declarations */

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne') format('woff2');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-100Italic.woff2') format('woff2');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-200.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-200.woff') format('woff');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-200Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-200Italic.woff') format('woff');
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-300.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-300.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-300Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-300Italic.woff') format('woff');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-400.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-400.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-400Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-400Italic.woff') format('woff');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-500.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-500.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-500Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-500Italic.woff') format('woff');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-600.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-600.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-600Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-600Italic.woff') format('woff');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-700.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-700.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-700Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-700Italic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-800.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-800.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-800Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-800Italic.woff') format('woff');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-900.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-900.woff') format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-900Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-900Italic.woff') format('woff');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-1000.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-1000.woff') format('woff');
  font-weight: 1000;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'TWKLausanne';
  src: url('./TWKLausanne/TWKLausanne-1000Italic.woff2') format('woff2'),
    url('./TWKLausanne/TWKLausanne-1000Italic.woff2') format('woff');
  font-weight: 1000;
  font-style: italic;
  font-display: swap;
}




/* === MDIO FONTS === */
@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO') format('woff2'),
    url('./MDIO/MDIO-Thin.woff') format('woff');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-ThinItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-ThinItalic.woff') format('woff');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Light.woff2') format('woff2'),
    url('./MDIO/MDIO-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-LightItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-LightItalic.woff') format('woff');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Regular.woff2') format('woff2'),
    url('./MDIO/MDIO-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Italic.woff2') format('woff2'),
    url('./MDIO/MDIO-Italic.woff') format('woff');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Medium.woff2') format('woff2'),
    url('./MDIO/MDIO-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-MediumItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-MediumItalic.woff') format('woff');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Semibold.woff2') format('woff2'),
    url('./MDIO/MDIO-Semibold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-SemiboldItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-SemiboldItalic.woff') format('woff');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Bold.woff2') format('woff2'),
    url('./MDIO/MDIO-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-BoldItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-BoldItalic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Black.woff2') format('woff2'),
    url('./MDIO/MDIO-Black.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-BlackItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-BlackItalic.woff') format('woff');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-Ultra.woff2') format('woff2'),
    url('./MDIO/MDIO-Ultra.woff') format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'MDIO';
  src: url('./MDIO/MDIO-UltraItalic.woff2') format('woff2'),
    url('./MDIO/MDIO-UltraItalic.woff') format('woff');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

/* ============================================
   CORRECTION ZOOM WINDOWS VS LINUX
   Utilise des unités clamp() et des media queries
   pour adapter les tailles selon le zoom du navigateur
   ============================================ */

/* Reset pour uniformiser le rendu entre OS */
html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /* Base responsive pour la taille de police */
  font-size: clamp(14px, 0.875rem, 16px);
}

/* Détection du zoom élevé (typiquement Windows 125%+) via resolution */
/* Ajout de min-width: 1024px pour exclure les mobiles qui ont naturellement un DPI élevé */
@media ((-webkit-min-device-pixel-ratio: 1.25) and (min-width: 1024px)),
((min-resolution: 120dpi) and (min-width: 1024px)) {
  html {
    font-size: clamp(13px, 0.8125rem, 15px);
  }

  /* Réduire légèrement les grandes tailles de titre en cas de zoom */
  .tw-text-\[80px\],
  .lg\:tw-text-\[80px\] {
    font-size: clamp(60px, 5vw, 80px) !important;
  }


  .tw-text-\[84px\],
  .lg\:tw-text-\[84px\] {
    font-size: clamp(64px, 5.25vw, 84px) !important;
  }

  .tw-text-\[96px\],
  .md\:tw-text-\[96px\] {
    font-size: clamp(72px, 6vw, 96px) !important;
  }

  .tw-text-\[64px\],
  .md\:tw-text-\[64px\],
  .lg\:tw-text-\[64px\] {
    font-size: clamp(48px, 4vw, 64px) !important;
  }

  .tw-text-\[58px\],
  .md\:tw-text-\[58px\] {
    font-size: clamp(44px, 3.6vw, 58px) !important;
  }

  .tw-text-\[48px\],
  .md\:tw-text-\[48px\],
  .lg\:tw-text-\[48px\] {
    font-size: clamp(36px, 3vw, 48px) !important;
  }

  .tw-text-5xl {
    font-size: clamp(2rem, 2.5vw, 3rem) !important;
  }

  /* Réduire les paddings sur les éléments avec de grands espacements */
  .lg\:tw-px-\[100px\] {
    padding-left: clamp(40px, 6vw, 100px) !important;
    padding-right: clamp(40px, 6vw, 100px) !important;
  }
}

/* Zoom très élevé (150%+) */
/* Ajout de min-width: 1024px pour exclure les mobiles qui ont naturellement un DPI élevé */
@media ((-webkit-min-device-pixel-ratio: 1.5) and (min-width: 1024px)),
((min-resolution: 144dpi) and (min-width: 1024px)) {
  html {
    font-size: clamp(12px, 0.75rem, 14px);
  }

  .tw-text-\[38px\],
  .lg\:tw-text-\[38px\] {
    font-size: clamp(20px, 3vw, 38px) !important;
  }

  .tw-text-\[90px\],
  .lg\:tw-text-\[90px\] {
    font-size: clamp(80px, 4.5vw, 100px) !important;
  }

  .tw-text-\[80px\],
  .lg\:tw-text-\[80px\] {
    font-size: clamp(70px, 4.5vw, 90px) !important;
  }

  .tw-text-\[84px\],
  .lg\:tw-text-\[84px\] {
    font-size: clamp(52px, 4.6vw, 72px) !important;
  }

  .tw-text-\[96px\],
  .md\:tw-text-\[96px\] {
    font-size: clamp(60px, 5.2vw, 80px) !important;
  }

  .tw-text-\[64px\],
  .md\:tw-text-\[64px\],
  .lg\:tw-text-\[64px\] {
    font-size: clamp(40px, 3.5vw, 56px) !important;
  }

  .md\:tw-min-h-screen {
        min-height: 120vh;
    }
}

@media ((-webkit-min-device-pixel-ratio: 1.5) and (min-width: 1024px)),
((min-resolution: 120dpi) and (min-width: 1024px)) {
  body {
    zoom: 0.85;
    /* Réduire globalement */
  }

}

/* Utiliser des tailles fluides pour les textes principaux */
.title-responsive {
  font-size: clamp(2.5rem, 5vw + 1rem, 5rem);
  line-height: 1.1;
}

.subtitle-responsive {
  font-size: clamp(1rem, 1.5vw + 0.5rem, 1.5rem);
  line-height: 1.5;
}