/* HOMAZEK INSTITUT — direction artistique "TERRE & SCIENCE", octobre 2026.
   Inspiration de composition ASUR Plant Breeding ; identité et photographies HOMAZEK.
   Ce fichier remplace les anciennes couches de refonte, sans dépendance JS supplémentaire. */
:root {
  --terre: #123b2b;
  --foret: #176b3a;
  --mousse: #3f8f55;
  --sauge: #b8dfc0;
  --ble: #8dc63f;
  --craie: #f4faf5;
  --lin: #e5f1e8;
  --encre: #19352a;
  --discret: #5a7462;
  --filet: #d5e6d9;
  --blanc: #ffffff;
  --largeur: 1180px;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 28px; }
body.hz-terre { background: var(--craie); color: var(--encre); font-family: "DM Sans", "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.65; }
body.hz-terre ::selection { background: var(--sauge); color: var(--terre); }
body.hz-terre :focus-visible { outline: 2px solid var(--ble); outline-offset: 3px; }
body.hz-terre .conteneur { width: min(var(--largeur),calc(100% - 84px)); max-width: var(--largeur); }
body.hz-terre h1,body.hz-terre h2,body.hz-terre h3,body.hz-terre h4 { font-family: inherit; text-wrap: balance; font-weight: 650; letter-spacing: -.042em; }
body.hz-terre p { line-height: 1.76; }
body.hz-terre a { transition: color .2s ease, background-color .2s ease, opacity .2s ease; }

/* NAVIGATION SUR L'IMAGE : logo ivoire posé à gauche et texte sans fond */
body.hz-terre .entete { position: absolute!important; inset: 0 0 auto; z-index: 200; height: 108px!important; min-height: 0!important; background: transparent!important; border: 0!important; box-shadow: none!important; }
body.hz-terre .entete-interieur { width: calc(100% - 84px); max-width: 1600px; margin-inline: auto; height: 108px!important; display: flex; align-items: flex-start!important; gap: clamp(14px,2.0vw,34px); }
body.hz-terre .logo { background: var(--blanc)!important; border: 0!important; color: var(--terre)!important; border-radius: 0 0 7px 7px!important; padding: 19px 23px 22px; min-width: 218px; height: 112px; gap: 12px; box-shadow: 0 14px 36px rgba(8,25,20,.10); text-decoration: none; align-self: flex-start; }
body.hz-terre .logo img { display: block; width: 51px; height: 51px; flex-shrink: 0; border-radius: 3px!important; }
body.hz-terre .logo span { font-size: 16px; font-weight: 800; line-height: 1; color: var(--foret); letter-spacing: .02em; }
body.hz-terre .logo small { display: block; margin-top: 7px; font-size: 9px; font-weight: 800; letter-spacing: .22em; color: var(--foret); }
body.hz-terre .navigation { display: flex; flex: 1 1 auto; justify-content: center; align-items: center; gap: clamp(13px,1.35vw,25px); height: 94px; background: transparent; border: 0; padding: 0; }
body.hz-terre .navigation > a { color: #fff!important; text-decoration: none; font-size: clamp(11px,.89vw,13px); font-weight: 700; text-shadow: 0 1px 8px rgba(0,0,0,.30); white-space: nowrap; border: none!important; padding: 12px 0!important; position: relative; }
body.hz-terre .navigation > a::after { content: ''; position: absolute; bottom: 7px; left: 0; width: 100%; height: 1px; background: var(--ble); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
body.hz-terre .navigation > a:hover::after,body.hz-terre .navigation > a[aria-current='page']::after { transform:scaleX(1); }
body.hz-terre .navigation > a:hover { color: #d8f1dc!important; }
body.hz-terre .nav-contact { margin-top: 28px; align-self: flex-start; border: 1px solid rgba(255,255,255,.73)!important; background: transparent!important; padding: 10px 16px!important; color: #fff!important; border-radius: 0!important; font-size: 12px!important; font-weight: 700; white-space: nowrap; box-shadow: none!important; text-decoration: none; }
body.hz-terre .nav-contact:hover { color: var(--terre)!important; background: var(--blanc)!important; }
body.hz-terre .nav-contact span { display: none!important; }
body.hz-terre .bouton-menu { display: none; }
body.hz-terre.hz-plain-page .entete { position: relative!important; height: 100px!important; background: var(--terre)!important; }
body.hz-terre.hz-plain-page .logo { box-shadow: none; height: 96px; }

/* BANDEAUX IMMERSIFS : photo de bord à bord, légende centrée, calque contrôlé */
body.hz-terre main#contenu { display: block; }
body.hz-terre main#contenu > .hero { position: relative!important; display: block!important; isolation: isolate; overflow: hidden; margin: 0!important; padding: 0!important; background: var(--terre)!important; color: white!important; }
body.hz-terre main#contenu > .hero.hero-accueil { height: min(870px,100svh)!important; min-height: 675px!important; max-height: none!important; }
body.hz-terre main#contenu > .hero.hero-secondaire { height: clamp(510px,69svh,690px)!important; min-height: 510px!important; }
body.hz-terre main#contenu > .hero > .diaporama,
body.hz-terre main#contenu > .hero > .diaporama.hero-media { display: block!important; position:absolute!important; inset:0!important; width:100%!important; height:100%!important; min-height:0!important; margin:0!important; border:none!important; border-radius:0!important; padding:0!important; box-shadow:none!important; background:var(--terre)!important; overflow:hidden!important; z-index:0!important; }
body.hz-terre main#contenu .hero > .diaporama .photos { position: absolute!important; inset: 0!important; width:100%!important; height:100%!important; z-index:0!important; }
body.hz-terre main#contenu .hero .photo { position:absolute!important; inset:0!important; display:block!important; width:100%!important; height:100%!important; min-height:100%!important; object-fit:cover!important; object-position:center 45%; border-radius:0!important; opacity:0; transition: opacity 1.25s ease; }
body.hz-terre main#contenu .hero .photo.active { opacity:1!important; }
body.hz-terre main#contenu > .hero::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(6,20,17,.56) 0%,rgba(6,20,17,.30) 28%,rgba(7,22,17,.48) 68%,rgba(5,20,15,.63) 100%),linear-gradient(90deg,rgba(14,28,21,.26),transparent 74%); }
body.hz-terre main#contenu > .hero .hero-grille,
body.hz-terre main#contenu > .hero .diaporama > .hero-grille { position:absolute!important; inset:0!important; z-index:3!important; width:min(980px,calc(100% - 80px))!important; max-width:980px!important; height:100%!important; min-height:0!important; margin:0 auto!important; padding:108px 0 55px!important; display:flex!important; flex-direction:column!important; align-items:center!important; justify-content:center!important; gap:0!important; pointer-events:none; }
body.hz-terre main#contenu > .hero .hero-copie { width:100%!important; max-width:920px!important; margin:0!important; padding:0!important; text-align:center!important; color:#fff!important; background:transparent!important; pointer-events:auto; }
body.hz-terre main#contenu > .hero .eyebrow { margin:0 0 23px!important; color:#e9e4d6!important; font-size:11px!important; font-weight:750; letter-spacing:.18em!important; text-transform:uppercase; text-shadow:0 1px 8px rgba(0,0,0,.3); }
body.hz-terre main#contenu > .hero h1 { color:#fff!important; font-size:clamp(2.75rem,5.1vw,5.5rem)!important; line-height:1.12!important; font-weight:650!important; letter-spacing:-.055em!important; max-width:940px!important; margin:0 auto 21px!important; text-shadow:0 3px 34px rgba(0,0,0,.18); }
body.hz-terre main#contenu > .hero.hero-accueil h1 { font-size:clamp(3.4rem,6.35vw,6.75rem)!important; line-height:1.05!important; max-width:1120px!important; }
body.hz-terre main#contenu > .hero .hero-description { color:#f9f3e7!important; max-width:735px!important; margin:0 auto!important; font-size:clamp(1.03rem,1.35vw,1.34rem)!important; line-height:1.55!important; font-weight:450!important; text-shadow:0 2px 12px rgba(0,0,0,.18); }
body.hz-terre main#contenu > .hero .hero-actions { justify-content:center!important; margin-top:37px!important; display:flex!important; align-items:center; gap:12px!important; }
body.hz-terre main#contenu > .hero .hero-actions:empty { display:none!important; }
body.hz-terre .hero-actions > a.bouton { color:var(--terre)!important; background:var(--blanc)!important; border:1px solid var(--blanc)!important; border-radius:1px!important; padding:16px 30px!important; min-height:54px; box-shadow:none!important; font-weight:750!important; font-size:13px!important; letter-spacing:.01em!important; text-decoration:none; }
body.hz-terre .hero-actions > a.bouton:hover { color:var(--terre)!important; background:var(--sauge)!important; border-color:var(--sauge)!important; transform:none!important; }
body.hz-terre .hero-actions > a.bouton-clair { background:transparent!important; color:var(--blanc)!important; border-color:rgba(255,255,255,.8)!important; }
body.hz-terre .hero-actions > a.bouton-clair:hover { background:rgba(255,255,255,.12)!important; color:white!important; }
body.hz-terre main#contenu > .hero .commandes-diaporama { display:flex!important; position:absolute!important; bottom:25px!important; right:clamp(18px,3vw,52px)!important; z-index:7!important; gap:3px!important; opacity:.74; transition:opacity .2s; }
body.hz-terre main#contenu > .hero .commandes-diaporama:hover { opacity:1; }
body.hz-terre main#contenu > .hero .commandes-diaporama button { width:32px!important; height:32px!important; background:transparent!important; border:1px solid rgba(255,255,255,.64)!important; border-radius:50%!important; color:white!important; box-shadow:none!important; }
body.hz-terre main#contenu > .hero .commandes-diaporama button:hover { background:rgba(255,255,255,.22)!important; }
body.hz-terre main#contenu > .hero .commandes-diaporama svg { width:14px; height:14px; stroke:white; }
body.hz-terre main#contenu > .hero .commandes-diaporama .icone-pause { fill:white; stroke:none; }

/* SECTION ÉDITORIALE — vraie respiration, pas de cartes SaaS */
body.hz-terre .section { padding:clamp(70px,8vw,110px) 0; background:var(--craie); }
body.hz-terre main#contenu > .section:nth-child(odd) { background:var(--blanc); }
body.hz-terre .section h2 { font-size:clamp(2.05rem,3.5vw,3.5rem)!important; line-height:1.14!important; color:var(--terre)!important; font-weight:650!important; letter-spacing:-.05em!important; }
body.hz-terre .section h3 { color:var(--terre)!important; }
body.hz-terre .section p { color:#44564a; }
body.hz-terre .eyebrow { color:var(--mousse)!important; font-size:11px!important; letter-spacing:.18em!important; font-weight:800!important; text-transform:uppercase; }
body.hz-terre .hom-v4-intro-grid { display:grid!important; grid-template-columns:.92fr 1fr!important; gap:clamp(38px,8vw,125px)!important; align-items:start!important; }
body.hz-terre .hom-v4-intro-grid > div:nth-child(2) { font-size:1.08rem; max-width:615px; }
body.hz-terre .hom-v4-intro-grid > div:nth-child(2) p { line-height:1.8; margin-bottom:19px; }
body.hz-terre .hom-v4-small-grid { display:grid!important; grid-template-columns:1fr 1fr!important; gap:65px!important; }
body.hz-terre .hom-v4-small-grid > div { border-top:1px solid var(--filet)!important; padding-top:23px!important; }
body.hz-terre .hom-v4-principles h2 { font-size:clamp(1.6rem,2.4vw,2.4rem)!important; }
body.hz-terre .hom-v4-section-heading { max-width:850px!important; margin-bottom:40px!important; }
body.hz-terre .hom-v4-section-heading > p { max-width:630px; }
body.hz-terre .hom-v4-cards { display:grid!important; grid-template-columns: repeat(4,minmax(0,1fr))!important; gap:22px!important; }
body.hz-terre .hom-v4-card { display:block!important; min-width:0; background:transparent!important; color:var(--encre)!important; box-shadow:none!important; border:0!important; border-radius:0!important; overflow:visible!important; text-decoration:none; }
body.hz-terre .hom-v4-card > img { width:100%!important; height:clamp(200px,20vw,298px)!important; object-fit:cover!important; border:0!important; border-radius:0!important; box-shadow:none!important; filter:saturate(.81) contrast(1.04); transition:filter .35s,transform .35s; }
body.hz-terre .hom-v4-card:hover > img { filter:saturate(1.07) contrast(1.02); transform:translateY(-4px); }
body.hz-terre .hom-v4-card > div { background:transparent!important; padding:22px 0 0!important; }
body.hz-terre .hom-v4-card span { display:block; color:var(--mousse); font-size:11px; letter-spacing:.16em; font-weight:750; }
body.hz-terre .hom-v4-card h3 { font-size:clamp(1.24rem,1.55vw,1.65rem)!important; line-height:1.25!important; margin:10px 0 8px!important; }
body.hz-terre .hom-v4-card p { font-size:.92rem; line-height:1.55; margin:0; }
body.hz-terre .hom-v4-link, body.hz-terre .hom-cms-link, body.hz-terre .lien-fleche { color:var(--foret); border-bottom:1px solid var(--mousse); font-size:14px; font-weight:750; display:inline-block; padding:0 0 4px; text-decoration:none; margin-top:8px; }
body.hz-terre .hom-v4-link::after,body.hz-terre .hom-cms-link::after,body.hz-terre .lien-fleche::after { content:none!important; }
body.hz-terre .hom-v4-link:hover,body.hz-terre .hom-cms-link:hover { color:var(--mousse); }

/* Expertise : navigation en lignes éditoriales, photo associée plutôt qu'une liste de boîtes */
body.hz-terre .hom-expertises-tabs { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:0!important; border-bottom:1px solid var(--filet); margin:34px 0 42px!important; background:transparent!important; }
body.hz-terre .hom-expertises-tabs button { border:0!important; border-top:2px solid transparent!important; border-bottom:0!important; border-radius:0!important; box-shadow:none!important; background:transparent!important; font:inherit; text-align:left; color:#59675b!important; font-size:clamp(12px,1.15vw,15px)!important; line-height:1.42!important; font-weight:650; padding:20px 20px 25px 0!important; min-height:102px!important; transition:color .2s,border-color .2s; }
body.hz-terre .hom-expertises-tabs button[aria-selected='true'] { color:var(--terre)!important; border-top-color:var(--ble)!important; }
body.hz-terre .hom-expertises-tabs .hom-tab-n { display:block; margin:0 0 11px; color:#928568!important; font-size:11px!important; letter-spacing:.12em; font-weight:800; }
body.hz-terre .hom-v4-panel { display:grid!important; grid-template-columns:1.12fr .88fr!important; gap:clamp(30px,5vw,80px)!important; align-items:center!important; border:0!important; background:transparent!important; border-radius:0!important; overflow:visible!important; }
body.hz-terre .hom-v4-panel[hidden] { display:none!important; }
body.hz-terre .hom-v4-panel-image { width:100%!important; height:clamp(330px,36vw,520px)!important; display:block; object-fit:cover!important; border-radius:0!important; filter:saturate(.89); }
body.hz-terre .hom-v4-panel-content { padding:8px 0!important; }
body.hz-terre .hom-v4-panel-content h3 { font-size:clamp(2rem,2.9vw,3.2rem)!important; line-height:1.16!important; }
body.hz-terre .hom-v4-panel-content > p { font-size:.99rem!important; }
body.hz-terre .hom-v4-details { background:transparent!important; border-top:1px solid var(--filet)!important; border-bottom:1px solid var(--filet)!important; border-left:0!important; border-right:0!important; border-radius:0!important; margin:25px 0!important; padding:16px 0!important; }
body.hz-terre .hom-v4-details summary { color:var(--terre); font-size:14px; font-weight:750; }

/* Cartes CMS, service et publication : peu de chrome, beaucoup d'air */
body.hz-terre .hom-cms-card,body.hz-terre .publication-carte { background:transparent!important; box-shadow:none!important; border:0!important; border-radius:0!important; }
body.hz-terre .hom-cms-photo,body.hz-terre .publication-carte-lien>img { border-radius:0!important; object-fit:cover; }
body.hz-terre .hom-cms-card-body,body.hz-terre .publication-carte-texte { padding:20px 0!important; }
body.hz-terre .services-liste .service-item { border-bottom:1px solid var(--filet)!important; border-top:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; padding:24px 0!important; }
body.hz-terre .services-liste .service-item h2 { color:var(--terre)!important; }
body.hz-terre .publications-grille { gap:30px!important; }
body.hz-terre .publications-etat { background:var(--lin)!important; border:0!important; border-radius:0!important; }
body.hz-terre .formulaire-panel { background:var(--blanc)!important; border:1px solid var(--filet)!important; border-radius:0!important; box-shadow:none!important; }
body.hz-terre input,body.hz-terre textarea,body.hz-terre select { border-radius:0!important; }
body.hz-terre input:focus,body.hz-terre textarea:focus,body.hz-terre select:focus { border-color:#758d72; outline-color:#758d72; }
body.hz-terre button[type='submit'] { border-radius:0!important; }

/* PIED DE PAGE : contraste feutré et typographie simple */
body.hz-terre .pied-page { background:var(--terre)!important; color:#e6e6d8!important; padding-top:76px; }
body.hz-terre .pied-grille { grid-template-columns:1.4fr .7fr 1fr; gap:60px; }
body.hz-terre .pied-grille h2 { color:var(--sauge)!important; font-size:11px!important; letter-spacing:.14em!important; text-transform:uppercase; }
body.hz-terre .pied-grille p { color:#e3e6db!important; max-width:33ch; }
body.hz-terre .pied-grille a { color:#f0eadc!important; text-decoration:none; }
body.hz-terre .pied-grille a:hover { color:var(--ble)!important; }
body.hz-terre .marque-pied img { border-radius:0!important; }
body.hz-terre .pied-bas { border-top:1px solid rgba(255,255,255,.19)!important; }
body.hz-terre .pied-bas * { color:rgba(255,255,255,.72)!important; }

/* RESPONSIVE : conserver l'expérience photo, avec un menu mobile lisible */
@media(max-width:1250px){
 body.hz-terre .entete-interieur { width:calc(100% - 52px); gap:14px; }
 body.hz-terre .logo { min-width:185px; padding:17px 13px 20px; gap:8px; }
 body.hz-terre .logo span { font-size:14px; }
 body.hz-terre .navigation { gap:13px; }
 body.hz-terre .navigation>a { font-size:11px; }
 body.hz-terre .nav-contact { font-size:11px!important; padding:9px 10px!important; }
}
@media(max-width:1050px){
 body.hz-terre .entete { height:86px!important; }
 body.hz-terre .entete-interieur { align-items:center!important; height:86px!important; justify-content:space-between; }
 body.hz-terre .logo { height:88px; min-width:200px; padding:13px 18px; align-self:flex-start; }
 body.hz-terre .bouton-menu { display:inline-flex!important; align-items:center; justify-content:center; color:#fff!important; background:rgba(8,22,17,.35)!important; border:1px solid rgba(255,255,255,.60)!important; font-size:13px; padding:9px 13px!important; border-radius:0!important; margin-left:auto; }
 body.hz-terre .navigation { display:none!important; position:absolute!important; top:87px; left:26px; right:26px; height:auto!important; max-height:calc(100svh - 110px); overflow:auto; padding:18px 22px!important; background:var(--terre)!important; border:1px solid rgba(255,255,255,.18)!important; box-shadow:0 20px 50px rgba(0,0,0,.26); flex-direction:column; align-items:stretch; gap:0!important; }
 body.hz-terre .navigation.ouvert { display:flex!important; }
 body.hz-terre .navigation > a { padding:12px 3px!important; text-shadow:none; font-size:15px; border-bottom:1px solid rgba(255,255,255,.10)!important; }
 body.hz-terre .nav-contact { display:none!important; }
 body.hz-terre .hom-v4-cards { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 body.hz-terre .hom-expertises-tabs { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 body.hz-terre .hom-v4-panel { grid-template-columns:1fr!important; gap:35px!important; }
 body.hz-terre .hom-v4-panel-image { height:380px!important; }
}
@media(max-width:680px){
 body.hz-terre .conteneur { width:calc(100% - 40px)!important; }
 body.hz-terre .entete-interieur { width:calc(100% - 30px)!important; }
 body.hz-terre .logo { min-width:168px; width:auto; height:83px; padding:14px 12px!important; }
 body.hz-terre .logo img { width:43px!important; height:43px!important; }
 body.hz-terre .logo span { font-size:13px; }
 body.hz-terre .logo small { font-size:8px; margin-top:4px; }
 body.hz-terre .bouton-menu { font-size:12px; }
 body.hz-terre main#contenu>.hero.hero-accueil { height:calc(100svh - 0px)!important; min-height:620px!important; }
 body.hz-terre main#contenu>.hero.hero-secondaire { height:590px!important; min-height:590px!important; }
 body.hz-terre main#contenu>.hero .hero-grille,body.hz-terre main#contenu>.hero .diaporama>.hero-grille { width:calc(100% - 38px)!important; padding:135px 0 80px!important; }
 body.hz-terre main#contenu>.hero h1 { font-size:clamp(2.55rem,10vw,4.1rem)!important; }
 body.hz-terre main#contenu>.hero.hero-accueil h1 { font-size:clamp(3rem,11vw,4.9rem)!important; }
 body.hz-terre main#contenu>.hero .eyebrow { font-size:10px!important; }
 body.hz-terre main#contenu>.hero .hero-description { font-size:1rem!important; }
 body.hz-terre main#contenu>.hero .hero-actions { margin-top:27px!important; gap:10px!important; flex-wrap:wrap!important; }
 body.hz-terre .hero-actions>a.bouton { font-size:12px!important; min-height:48px; padding:13px 18px!important; }
 body.hz-terre .section { padding:65px 0!important; }
 body.hz-terre .section h2 { font-size:2.15rem!important; }
 body.hz-terre .hom-v4-intro-grid,body.hz-terre .hom-v4-small-grid { grid-template-columns:1fr!important; gap:27px!important; }
 body.hz-terre .hom-v4-cards { grid-template-columns:1fr!important; gap:35px!important; }
 body.hz-terre .hom-v4-card>img { height:270px!important; }
 body.hz-terre .hom-expertises-tabs { grid-template-columns:1fr 1fr!important; }
 body.hz-terre .hom-expertises-tabs button { padding:14px 12px 16px 0!important; min-height:105px!important; font-size:12px!important; }
 body.hz-terre .hom-v4-panel-image { height:265px!important; }
 body.hz-terre .hom-v4-panel-content h3 { font-size:2rem!important; }
 body.hz-terre .pied-grille { grid-template-columns:1fr!important; gap:30px!important; }
 body.hz-terre .pied-page { padding-top:52px!important; }
}
@media(prefers-reduced-motion:reduce){
 body.hz-terre *,body.hz-terre *::before,body.hz-terre *::after { transition-duration:0.01ms!important; animation-duration:0.01ms!important; }
}
/* Calque dans le diaporama, afin que le titre HTML placé à l'intérieur reste AU-DESSUS. */
body.hz-terre main#contenu > .hero::after { display:none!important; }
body.hz-terre main#contenu > .hero > .diaporama::after {
  content:''!important; display:block!important; position:absolute!important; inset:0!important;
  z-index:1!important; pointer-events:none!important;
  background:linear-gradient(180deg,rgba(5,19,15,.59),rgba(5,19,15,.32) 35%,rgba(4,24,17,.47) 65%,rgba(4,23,16,.70))!important;
}
