/* Valenya Online — une section par écran (ordinateur).
   Chaque section occupe exactement la hauteur de la fenêtre, son contenu est centré
   et le défilement s'aimante d'une section à l'autre : jamais de section coupée en deux.
   Les médias se dimensionnent sur la hauteur disponible (--fit-room). */

@media (min-width:901px) and (min-height:540px) {
  :root {
    --nav-h:56px;
    --fit-pad:clamp(14px,3vh,36px);
    --fit-room:calc(100svh - var(--nav-h) - 2 * var(--fit-pad));
  }
  html { scroll-snap-type:y mandatory; }

  #main-content > .hero,
  #main-content > section { min-height:100svh; display:flex; flex-direction:column;
    padding:calc(var(--nav-h) + var(--fit-pad)) 0 var(--fit-pad);
    scroll-snap-align:start; scroll-margin-top:0; }
  /* Marges auto plutôt que justify-content:center : si le contenu dépasse,
     il reste lisible depuis le haut au lieu de déborder sur la section précédente. */
  #main-content > section > .wrap { width:100%; margin-block:auto; }
  .foot { scroll-snap-align:end; }

  /* Accueil : le logo cède de la place quand la fenêtre est basse */
  .hero-logo { width:min(80vw,560px,calc((100svh - 400px) * 1.5)); }
  .hero-tag { max-width:52ch; }

  /* En-têtes de section */
  .sec-head { max-width:880px; margin-bottom:clamp(16px,3.2vh,40px); }
  .sec-head .eyebrow { margin-bottom:clamp(6px,1.2vh,14px); }
  .sec-head h2 { font-size:clamp(30px,6vh,52px); }
  .sec-head p { margin-top:clamp(6px,1.4vh,16px); font-size:15.5px; }

  /* Titres des colonnes de texte, à l'échelle de la hauteur */
  .classes-copy h2, .combat-copy h2, .lore-copy h2, .stories-copy h2 { font-size:clamp(28px,6vh,54px); }
  .steam-card-body h2 { font-size:clamp(26px,5vh,42px); }
  .combat-points { margin-top:clamp(10px,2.4vh,27px); }
  .combat-points article { padding-block:clamp(8px,1.6vh,17px); }
  .story-points { margin-top:clamp(10px,2.4vh,27px); }
  .story-points article { padding-block:clamp(8px,1.6vh,17px); }
  .lore-chapters { margin-top:clamp(10px,2.6vh,30px); }
  .lore-chapters li { padding-block:clamp(8px,1.6vh,17px); }

  /* Teaser : la vidéo garde son 16/9 dans la hauteur restante */
  .teaser-frame { width:min(100%,calc((var(--fit-room) - 190px) * 16 / 9)); }

  /* Économie */
  .economy-loop li { min-height:0; padding:clamp(12px,2.4vh,24px) 20px; }
  .economy-loop img { width:clamp(44px,8vh,76px); height:clamp(44px,8vh,76px); margin:4px auto 8px; }
  .market-feature { margin-top:clamp(16px,3vh,32px); padding-block:clamp(16px,3vh,32px); }

  /* Métiers */
  .professions-head { margin-bottom:clamp(14px,2.6vh,32px); }
  .professions-shot { min-height:0; height:min(480px,calc(var(--fit-room) - 170px)); }

  /* Compagnies */
  .company-register .register-head { padding-block:clamp(12px,2.2vh,25px); }
  .register-ledger div { padding-block:clamp(6px,1.3vh,13px); }
  .register-note { padding-block:clamp(10px,1.8vh,18px); }
  .company-pillars { gap:clamp(4px,1vh,14px); }
  .company-pillars article { padding-block:clamp(10px,2vh,22px); }
  .company-pillars h3 { font-size:clamp(19px,3vh,23px); }
  .company-pillars p { font-size:14px; }
  .company-cta { margin-top:clamp(14px,3vh,42px); }

  /* Monde */
  .world-gallery { height:clamp(230px,calc(var(--fit-room) - 470px),480px); }
  .world-shot, .world-shot--main { min-height:0; }
  .exploration-grid { margin-top:clamp(10px,2vh,28px); }
  .exploration-grid article { padding:clamp(10px,2vh,26px) 20px; }
  .exploration-number { margin-bottom:clamp(4px,1vh,15px); }
  .world-cta { margin-top:clamp(10px,2.4vh,32px); }

  /* Lore */
  .lore-visual { min-height:0; height:min(520px,var(--fit-room)); }

  /* Habitants : la capture de dialogue reste dans l'écran */
  .conversation-concept img { max-height:calc(var(--fit-room) - 50px); }

  /* Communauté */
  .community-features article { padding-block:clamp(10px,2vh,22px); }
  .guild-banner { padding-block:clamp(12px,2.2vh,25px); }
  .guild-tools li { padding-block:clamp(7px,1.5vh,15px); }
  .community-actions { margin-top:clamp(14px,3vh,44px); }

  /* Galerie : quatre rangées partagent la hauteur restante */
  .mosaic { grid-auto-rows:clamp(90px,calc((var(--fit-room) - 220px) / 4),200px); }

  /* FAQ */
  .faq-action { margin-top:clamp(14px,3vh,32px); }

  /* Téléchargement + suite (Android, aide) */
  .mobile-coming { margin-block:0 clamp(12px,2.4vh,32px); padding-block:clamp(14px,2.6vh,26px); }
  .os-note { margin-top:clamp(8px,1.6vh,22px); }
  .download-help { margin-top:clamp(12px,2.4vh,29px); padding-top:clamp(10px,2vh,23px); }
}
