/*
  CYRIL CRESPO — PORTAIL
  Fichier complet : responsive_paysage.css
*/

/* ================================================================
   1. ÉCRANS FIXES 1080p / 1200p À 100% (Hauteur >= 900px) — INTACT
   ================================================================ */
   @media (min-width: 1400px) and (min-height: 900px) and (orientation: landscape) {
    .hero {
      min-height: calc(100vh - 30px);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding: 12px 0 6px;
    }
  
    main {
      width: min(1600px, calc(100% - 60px));
    }
  
    /* --- HEADER & TITRE --- */
    .heading h1 {
      font-size: clamp(3rem, 4.2vw, 4.2rem);
      line-height: 0.88;
    }
  
    .sub {
      margin-top: 10px;
      gap: 16px;
    }
  
    .sub i { width: 32px; }
    .sub span { font-size: 0.58rem; letter-spacing: 0.18em; }
  
    .heading p {
      margin-top: 10px;
      font-size: 0.65rem;
      letter-spacing: 0.22em;
    }
  
    .heading > em {
      width: 46px;
      margin-top: 6px;
    }
  
    /* --- CARTES ET IMAGES --- */
    .cards {
      grid-template-columns: repeat(3, minmax(0, 390px));
      column-gap: clamp(30px, 4.5vw, 85px);
      justify-content: center;
      margin-top: 14px;
    }
  
    .photo {
      height: clamp(400px, 48vh, 480px);
    }
  
    .body {
      min-height: 170px;
      padding: 14px 18px 18px;
    }
  
    .icon {
      width: 44px;
      height: 44px;
      margin-bottom: 6px;
    }
  
    .icon svg {
      width: 22px;
      height: 22px;
    }
  
    /* --- TYPOGRAPHIE ET LISIBILITÉ --- */
    .body label {
      font-size: 0.72rem;
      letter-spacing: 0.18em;
    }
  
    .body h2 {
      font-size: 0.95rem;
      line-height: 1.28;
      margin-top: 6px;
      letter-spacing: 0.04em;
    }
  
    .body p {
      font-size: 0.72rem;
      line-height: 1.45;
      margin-top: 8px;
      max-width: 290px;
    }
  
    .body > strong {
      margin-top: 12px;
      padding: 10px 14px;
      font-size: 0.68rem;
      width: 100%;
    }
  
    /* --- CITATION ET FOOTER --- */
    .quote {
      margin-top: 10px;
      font-size: 0.98rem;
    }
  
    .quote b {
      font-size: 1.10rem;
      margin-top: 2px;
    }
  
    footer {
      min-height: 30px;
      padding: 5px 20px;
      font-size: 0.44rem;
    }
  }
  
  /* ================================================================
     2. PC PORTABLES 1080p SCALÉS À 125% (Hauteur < 900px) / LAPTOPS
     ================================================================ */
  @media (min-width: 1100px) and (max-width: 1599px) and (max-height: 899px) and (orientation: landscape) {
    .hero {
      min-height: 100vh;
      justify-content: space-between;
      padding: 14px 0 2px; /* Marge haute augmentée pour décoller le haut du bord */
    }
  
    main {
      width: calc(100% - 40px);
    }
  
    /* --- EN-TÊTE --- */
    .heading h1 { 
      font-size: 2.2rem; 
      margin-top: 4px; /* Titre légèrement descendu */
    }
  
    .sub { 
      margin-top: 2px; 
      gap: 8px; 
    }
  
    .sub i { width: 18px; }
    .sub span { font-size: 0.44rem; }
  
    .heading p { 
      margin-top: 2px; 
      font-size: 0.48rem; 
    }
  
    .heading > em { 
      width: 28px; 
      margin-top: 2px; 
    }
  
    /* --- CARTES PLUS FINES --- */
    .cards {
      grid-template-columns: repeat(3, minmax(0, 300px)); /* Reduit de 330px à 300px pour affiner */
      column-gap: 32px;
      justify-content: center;
      margin-top: 2px;
    }
  
    .photo {
      height: clamp(280px, 40vh, 360px);
    }
  
    .body {
      min-height: 140px;
      padding: 10px 12px 12px;
    }
  
    .icon {
      width: 34px;
      height: 34px;
      margin-bottom: 3px;
    }
  
    .icon svg { width: 18px; height: 18px; }
    .body label { font-size: 0.60rem; }
    .body h2 { font-size: 0.78rem; line-height: 1.2; margin-top: 3px; }
    .body p { font-size: 0.60rem; line-height: 1.35; margin-top: 3px; max-width: 240px; }
    .body > strong { margin-top: 8px; padding: 8px 10px; font-size: 0.58rem; }
  
    /* --- BAS DE PAGE RESSERRÉ (MOINS DE VIDE) --- */
    .quote { 
      margin-top: 0px; /* Suppression du vide sous les cartes */
      font-size: 0.78rem; 
    }
  
    .quote b { 
      font-size: 0.88rem; 
    }
  
    footer { 
      min-height: 14px; 
      padding: 0px 8px; 
      font-size: 0.32rem; 
    }
  }
  
  /* ================================================================
     3. PETIT PAYSAGE / 720p & TABLETTES EN LANDSCAPE (721px à 1099px)
     ================================================================ */
  @media (min-width: 721px) and (max-width: 1099px) and (orientation: landscape) {
    .hero {
      min-height: calc(100vh - 18px);
      justify-content: space-between;
      padding: 4px 0 1px;
    }
  
    main {
      width: calc(100% - 20px);
    }
  
    .heading h1 { font-size: 1.6rem; }
    .sub { margin-top: 3px; gap: 6px; }
    .sub i { width: 14px; }
    .sub span { font-size: 0.38rem; }
    .heading p { margin-top: 3px; font-size: 0.42rem; }
    .heading > em { width: 24px; margin-top: 2px; }
  
    .cards {
      grid-template-columns: repeat(3, minmax(0, 240px));
      column-gap: 12px;
      justify-content: center;
      margin-top: 4px;
    }
  
    .photo { height: clamp(220px, 35vh, 280px); }
    .body { min-height: 115px; padding: 6px 8px 8px; }
    .icon { width: 26px; height: 26px; margin-bottom: 2px; }
    .icon svg { width: 13px; height: 13px; }
  
    .body label { font-size: 0.46rem; }
    .body h2 { font-size: 0.60rem; line-height: 1.15; margin-top: 2px; }
    .body p { font-size: 0.46rem; line-height: 1.2; margin-top: 2px; }
    .body > strong { margin-top: 5px; padding: 5px 6px; font-size: 0.44rem; }
  
    .quote { margin-top: 3px; font-size: 0.65rem; }
    .quote b { font-size: 0.72rem; }
  
    footer { min-height: 18px; padding: 2px 6px; font-size: 0.28rem; }
  }
  
  /* ================================================================
     4. MOBILES EN LANDSCAPE (<= 720px)
     ================================================================ */
  @media (max-width: 720px) and (orientation: landscape) {
    .hero {
      min-height: auto;
      padding: 15px 0;
    }
  
    .cards {
      grid-template-columns: 1fr;
      row-gap: 20px;
    }
  
    .photo {
      height: 260px;
    }
  }