/* Hepicure : finition typographique et alignements */
h1,h2,h3,.h2,.h3,.display{text-wrap:balance}
p,li,.lead,.sub{text-wrap:pretty}
[data-page="journal"] .art{padding-top:96px}
/* Particuliers / Professionnels : chaque ligne alignée d'une carte à l'autre */
@media(min-width:1001px){
  .eqcards{grid-template-rows:repeat(7,auto);row-gap:0!important}
  .eqcards > .card{display:grid!important;grid-row:span 7;grid-template-rows:subgrid;height:auto;row-gap:0}
  .eqcards > .card ul.socle{display:grid;grid-row:span 4;grid-template-rows:subgrid;margin-top:10px}
  .eqcards .socle li{margin:0!important}
  .eqcards,.eqcards > .card,.eqcards > .card ul.socle{align-content:start!important}
}
a.stay-link{display:block;cursor:pointer}
/* ============ Affichage fluide ============ */
/* en-tête fixe : quand il rétrécit, la page ne bouge pas d'un pixel */
header.nav{position:fixed!important;top:0;left:0;right:0;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--bg)!important}
body{padding-top:93px}
html{scroll-padding-top:96px}
.nav-in{transition:height .35s cubic-bezier(.16,.8,.3,1)!important}
.brand img{height:48px!important;width:auto!important;aspect-ratio:464/277!important;opacity:1!important;transition:height .35s cubic-bezier(.16,.8,.3,1)!important}
header.nav.small .brand img{height:38px!important}
@media(max-width:1000px){.brand img{height:40px!important}header.nav.small .brand img{height:34px!important}}
/* apparitions au défilement : lentes et courtes en distance */
html.js .reveal{transform:translateY(10px);transition:opacity 1.3s cubic-bezier(.22,.61,.36,1),transform 1.3s cubic-bezier(.22,.61,.36,1)}
html.js .reveal.in{transform:none}
html.js .reveal[data-d="1"]{transition-delay:.08s}
html.js .reveal[data-d="2"]{transition-delay:.16s}
html.js .reveal[data-d="3"]{transition-delay:.24s}
/* passage d'une page à l'autre, sur tous les navigateurs :
   la barre du haut reste en place, le contenu s'efface doucement puis la page suivante apparaît en fondu */
html.js [data-page],html.js footer.ft{opacity:0;transition:opacity .9s cubic-bezier(.4,0,.2,1)}
html.js.pg-in [data-page],html.js.pg-in footer.ft{opacity:1}
html.js.pg-out [data-page],html.js.pg-out footer.ft,html.js.pg-out header .navlinks.open{opacity:0!important;transition:opacity .45s cubic-bezier(.4,0,.2,1)!important}
/* en-tête de page : la photo et le titre arrivent en fondu, sans glissement */
.hero .bgimg{transition:opacity 1.4s ease}
.hero .bgimg.wait{opacity:0!important}
.hero-in{animation:hf 1.4s cubic-bezier(.4,0,.2,1) .15s both!important}
@keyframes hf{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none}
  .nav-in,.brand img{transition:none!important}
  .hero-in{animation:none!important}
  html.js [data-page],html.js footer.ft{opacity:1!important;transition:none!important}
}
/* gros titres : pleine largeur disponible, retour à la ligne seulement si nécessaire */
.hero .display,h1.h2,h2.h2,.stay-t{max-width:none!important}
/* ============ Rythme vertical unique sur tout le site ============ */
/* En-têtes : le titre démarre à la même hauteur partout, et l'en-tête s'agrandit si le texte le demande (plus rien de coupé) */
.hero{height:auto!important;min-height:min(88vh,860px)!important;align-items:flex-start!important}
.hero-in{padding-top:clamp(96px,16vh,200px)!important;padding-bottom:clamp(80px,13vh,128px)!important}
.hero .display{font-size:clamp(36px,min(5.4vw,9.5vh),72px)!important}
.scrollcue{bottom:24px!important}
/* Un seul écart entre deux sections : 128 px (64 + 64) */
section.block{padding:64px 0!important}
.hero + section.block,.hero + nav + section.block{padding-top:128px!important}
[data-page] > section.block:last-of-type{padding-bottom:128px!important}
[data-page] > section.block:first-child{padding-top:96px!important}
/* les sections volontairement accolées (titre + contenu d'une même partie) le restent */
section.block[style*="padding-top:0"]{padding-top:0!important}
section.block[style*="padding-bottom:0"]{padding-bottom:48px!important}
/* aucune marge parasite au début ni à la fin d'une section */
section.block > .wrap > :first-child,section.block > .narrow > :first-child,section.block > .wrap > * > :first-child{margin-top:0!important}
section.block > .wrap > :last-child,section.block > .narrow > :last-child,section.block > .wrap > * > :last-child,section.block > .wrap > * > * > :last-child{margin-bottom:0!important}
/* aucun trait gris entre les sections */
.stay,.stay-index,.doc h2,.doc-t,.art .end,.marquee{border-top:0!important;border-bottom:0!important}
@media(max-width:1000px){
  .hero-in{padding-top:112px!important;padding-bottom:72px!important}
  .scrollcue{display:none!important}
  section.block{padding:44px 0!important}
  .hero + section.block,.hero + nav + section.block{padding-top:88px!important}
  [data-page] > section.block:last-of-type{padding-bottom:88px!important}
  [data-page] > section.block:first-child{padding-top:64px!important}
  section.block[style*="padding-top:0"]{padding-top:0!important}
  section.block[style*="padding-bottom:0"]{padding-bottom:36px!important}
}
/* Journal : extraits limités à deux lignes, titre détaché de la photo */
.jcard .imgwrap + h3{margin-top:24px}
.jcard p{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:1000px){[data-page="journal"] .art{padding-top:64px}}
