/* =====================================================================
   Toros de France — feuille de styles commune
   Palette : albero (sable de l'arène), barrera (rouge des planches),
   zaino (robe noire du toro), oro (devise), cal (murs blanchis à la chaux).
   Typographies : League Gothic (affiche, cartel) et Spectral (texte).
   ===================================================================== */

@font-face{font-family:"League Gothic";src:url("../fonts/league-gothic-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/spectral-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/spectral-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/spectral-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  --c-page:#ECDDC1;
  --c-sable:#D6AA6C;
  --c-chaux:#F8F3E9;
  --c-panneau:#FBF7EF;
  --c-tuile:#F4E8D2;
  --c-encre:#2B1F16;
  --c-encre-douce:#5F4B39;
  --c-accent:#8A0B14;         /* rouge du logo */
  --c-barrera:#8A0B14;
  --c-or:#B88A31;
  --c-filet:rgba(43,31,22,.22);
  --c-filet-fort:rgba(43,31,22,.6);
  --c-nuit:#2B1F16;
  --c-nuit-texte:#F1E5CF;
  --c-nuit-doux:#CDB894;
  --c-raya:rgba(255,251,243,.85);
  --c-sur-encre:#F4EAD6;
  --grain-opacite:.5;

  --f-affiche:"League Gothic","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --f-texte:"Spectral",Georgia,"Times New Roman",serif;

  --t-petit:.9375rem;
  --t-base:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --t-chapeau:clamp(1.25rem,1.12rem + .55vw,1.5rem);
  --t-h3:clamp(1.375rem,1.25rem + .45vw,1.625rem);
  --t-titre:clamp(3.25rem,2.2rem + 4.6vw,6.75rem);
  --t-hero:clamp(5rem,2.4rem + 10.5vw,13.5rem);

  --largeur:76rem;
  --gouttiere:clamp(1.25rem,4vw,3rem);
  --entete:4.5rem;

  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .36 0 0 0 0 .25 0 0 0 0 .13 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  --embleme-pale:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%232B1F16' stroke-opacity='.22' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='32' cy='32' r='29.5' stroke-width='2'/%3E%3Cpath d='M27 45.5V19h15M27 32h11' stroke-width='5.5'/%3E%3Cpath d='M22 45.5h10' stroke-width='3'/%3E%3C/g%3E%3C/svg%3E");
}

@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --c-page:#1E1611;
    --c-sable:#3A2A1C;
    --c-chaux:#251C15;
    --c-panneau:#2A1F17;
    --c-tuile:#EFE2C8;
    --c-encre:#EEE0C6;
    --c-encre-douce:#C6B08F;
    --c-accent:#DDB45E;
    --c-or:#DDB45E;
    --c-filet:rgba(238,224,198,.16);
    --c-filet-fort:rgba(238,224,198,.48);
    --c-nuit:#120D09;
    --c-nuit-texte:#F1E5CF;
    --c-nuit-doux:#C9B48F;
    --c-raya:rgba(238,224,198,.26);
    --c-sur-encre:#1E1611;
    --grain-opacite:.25;
  }
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--entete) + 1rem)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--c-page);color:var(--c-encre);font-family:var(--f-texte);font-size:var(--t-base);line-height:1.65;font-kerning:normal;font-variant-numeric:oldstyle-nums proportional-nums;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--c-accent);text-decoration-thickness:.07em;text-underline-offset:.2em}
a:hover{text-decoration-thickness:.14em}
:focus-visible{outline:3px solid var(--c-accent);outline-offset:3px}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;font-weight:inherit;line-height:1.2}
strong{font-weight:600}
sup{font-size:.68em;line-height:0;vertical-align:.45em}
abbr[title]{text-decoration:none}
.visuellement-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lien-evitement{position:absolute;left:1rem;top:-10rem;z-index:100;background:var(--c-encre);color:var(--c-sur-encre);padding:.75rem 1rem;text-decoration:none}
.lien-evitement:focus{top:1rem}
.enveloppe{width:min(100% - 2*var(--gouttiere),var(--largeur));margin-inline:auto}
.texte{max-width:40rem;hyphens:auto;-webkit-hyphens:auto}
.chiffres,.coordonnees,.membres,.registre,.cartel-affiche,.fiche-technique{font-variant-numeric:lining-nums tabular-nums}

/* ---------- En-tête ---------- */
.entete{position:sticky;top:0;z-index:40;background:var(--c-page);border-bottom:1px solid transparent;transition:border-color .2s ease}
.entete.est-defile{border-bottom-color:var(--c-filet-fort)}
.entete__barre{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--entete)}
.signature{display:inline-flex;align-items:center;gap:.75rem;color:var(--c-encre);text-decoration:none}
.signature__logo{height:2.75rem;width:auto;flex:none}
@media (prefers-color-scheme:dark){.signature__logo{filter:drop-shadow(0 0 1px rgba(238,224,198,.85))}}
@media (max-width:30rem){.signature .signature__sigle{display:none}}
@media (max-width:24rem){.signature .signature__logo{height:2.25rem}.signature .signature__nom{font-size:1.55rem}}
.signature__nom{display:block;font-family:var(--f-affiche);font-size:1.85rem;line-height:.9;text-transform:uppercase;letter-spacing:.01em}
.signature__sigle{display:block;font-style:italic;font-size:.875rem;line-height:1.25;color:var(--c-encre-douce)}
.navigation__liste{display:flex;flex-wrap:wrap;gap:.25rem clamp(.9rem,1.5vw,1.75rem);list-style:none;margin:0;padding:0}
.navigation__liste a{display:inline-block;padding:.35rem 0;color:var(--c-encre);text-decoration:none;border-bottom:2px solid transparent;font-size:1.0625rem}
.navigation__liste a:hover,.navigation__liste a[aria-current]{border-bottom-color:var(--c-accent)}
.bouton-menu{display:none;align-items:center;gap:.6rem;font:inherit;font-weight:600;font-size:1rem;color:var(--c-encre);background:none;border:2px solid var(--c-encre);padding:.45rem .9rem;cursor:pointer}
.bouton-menu svg{width:1.1rem;height:1.1rem}
@media (max-width:64rem){
  .bouton-menu{display:inline-flex}
  .navigation{position:fixed;left:0;right:0;top:var(--entete);bottom:0;z-index:39;background:var(--c-page);padding:2rem var(--gouttiere) 3rem;overflow-y:auto;display:none;border-top:1px solid var(--c-filet-fort)}
  .navigation.est-ouverte{display:block}
  .navigation__liste{flex-direction:column;gap:.35rem}
  .navigation__liste a{font-family:var(--f-affiche);font-size:clamp(2.5rem,9vw,3.5rem);line-height:1.05;text-transform:uppercase;border-bottom-width:3px}
  body.menu-ouvert{overflow:hidden}
}

/* ---------- Boutons ---------- */
.bouton{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:600;font-size:1rem;line-height:1.2;padding:.85rem 1.4rem;border:2px solid var(--c-encre);background:var(--c-encre);color:var(--c-sur-encre);text-decoration:none;cursor:pointer;border-radius:0;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.bouton:hover{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-sur-encre)}
.bouton--trait{background:transparent;color:var(--c-encre)}
.bouton--trait:hover{background:var(--c-encre);border-color:var(--c-encre);color:var(--c-sur-encre)}
.actions-ligne{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.75rem}

/* ---------- Sable, rayas et barrera (accueil et bandeaux) ---------- */
.ouverture,.bandeau,.section--sable{position:relative;isolation:isolate;background:var(--c-sable)}
.ouverture::before,.bandeau::before,.section--sable::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:180px;opacity:var(--grain-opacite);mix-blend-mode:multiply;pointer-events:none}
.rayas{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.rayas circle{fill:none;stroke:var(--c-raya);stroke-width:2.5;vector-effect:non-scaling-stroke}
.barrera{height:2.25rem;background:repeating-linear-gradient(90deg,var(--c-barrera) 0 7.5rem,rgba(0,0,0,.32) 7.5rem calc(7.5rem + 2px));box-shadow:inset 0 3px 0 rgba(255,255,255,.14),inset 0 -2px 0 rgba(0,0,0,.25)}
.barrera--fine{height:1rem}

/* ---------- Accueil : ouverture ---------- */
.ouverture{overflow:hidden}
.ouverture__grille{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:clamp(2rem,5vw,5rem);padding-block:clamp(3rem,7vw,7rem) clamp(3rem,6vw,5.5rem)}
.ouverture__surtitre{font-style:italic;font-size:var(--t-chapeau);line-height:1.35;margin:0 0 1.25rem;max-width:30ch}
.ouverture__titre{font-family:var(--f-affiche);font-size:var(--t-hero);line-height:.8;text-transform:uppercase;letter-spacing:-.005em;margin:0}
.ouverture__titre span{display:block}
.ouverture__chapeau{font-size:var(--t-chapeau);line-height:1.5;max-width:34rem;margin:2rem 0 2.25rem}
.ouverture__visuel{justify-self:end;width:100%;max-width:27rem}
@media (max-width:56rem){.ouverture__grille{grid-template-columns:1fr}.ouverture__visuel{justify-self:start;max-width:15rem}}
@media (prefers-reduced-motion:no-preference){
  .ouverture .rayas circle{stroke-dasharray:1;stroke-dashoffset:1;animation:tracer 2s cubic-bezier(.45,0,.2,1) .2s forwards}
  .ouverture .rayas circle + circle{animation-delay:.45s}
  .ouverture__titre span{animation:lever .9s cubic-bezier(.2,.7,.2,1) both}
  .ouverture__titre span + span{animation-delay:.12s}
}
@keyframes tracer{to{stroke-dashoffset:0}}
@keyframes lever{from{opacity:0;transform:translateY(.12em)}to{opacity:1;transform:none}}

/* ---------- Pages intérieures : bandeau, fil d'Ariane, sous-navigation ---------- */
.bandeau{overflow:hidden}
.bandeau__contenu{padding-block:clamp(2.25rem,4vw,3.5rem) clamp(2.5rem,5vw,4.25rem)}
.fil ol{display:flex;flex-wrap:wrap;gap:.2rem .5rem;list-style:none;margin:0 0 clamp(1.5rem,3vw,2.5rem);padding:0;font-style:italic;font-size:var(--t-petit)}
.fil li + li::before{content:"/";margin-right:.5rem;color:var(--c-encre-douce);font-style:normal}
.fil a{color:var(--c-encre)}
.fil [aria-current]{color:var(--c-encre-douce)}
.bandeau__titre{font-family:var(--f-affiche);font-size:var(--t-titre);line-height:.88;text-transform:uppercase;letter-spacing:.005em;margin:0;max-width:18ch}
.bandeau__titre--cartel{max-width:none;font-variant-numeric:lining-nums}
.bandeau__chapeau{font-size:var(--t-chapeau);font-style:italic;line-height:1.5;max-width:44rem;margin:1.4rem 0 0}
.sous-nav{border-bottom:1px solid var(--c-filet-fort);background:var(--c-page)}
.sous-nav ul{display:flex;gap:0 1.5rem;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:thin}
@media (min-width:64rem){.sous-nav ul{flex-wrap:wrap;overflow:visible}}
.sous-nav a{display:block;white-space:nowrap;padding:1rem 0 .85rem;color:var(--c-encre);text-decoration:none;border-bottom:3px solid transparent;font-size:1rem}
.sous-nav a:hover{border-bottom-color:var(--c-filet-fort)}
.sous-nav a[aria-current]{border-bottom-color:var(--c-accent);font-weight:600}
.page{padding-block:clamp(3rem,2.5rem + 3vw,5.5rem) clamp(4rem,3rem + 4vw,7rem)}

/* ---------- Sections, titres, texte ---------- */
.section{padding-block:clamp(4rem,3rem + 5vw,8rem)}
.section--chaux{background:var(--c-chaux)}
.section--nuit{background:var(--c-nuit);color:var(--c-nuit-texte)}
.section--nuit a{color:inherit}
.chapitre{margin-bottom:clamp(2.5rem,2rem + 2.5vw,4.5rem)}
.chapitre__titre{font-family:var(--f-affiche);font-size:var(--t-titre);line-height:.9;text-transform:uppercase;letter-spacing:.005em;padding-top:1.35rem;background:linear-gradient(currentColor,currentColor) 0 0/100% 5px no-repeat,linear-gradient(currentColor,currentColor) 0 9px/100% 1px no-repeat}
.chapitre__chapeau{font-size:var(--t-chapeau);font-style:italic;line-height:1.5;max-width:42rem;margin:1.5rem 0 0}
.bloc{margin-top:clamp(3.5rem,2.75rem + 3.5vw,6rem)}
.bloc:first-child{margin-top:0}
.intertitre{font-weight:600;font-size:var(--t-h3);line-height:1.25;margin:0 0 1.1rem;max-width:32ch}
.sous-titre{font-weight:600;font-size:1.15rem;margin:2rem 0 .6rem}
.note{font-style:italic;color:var(--c-encre-douce);font-size:var(--t-petit);line-height:1.55;margin-top:1.25rem}
.section--nuit .note{color:var(--c-nuit-doux)}
.deux-colonnes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,5.5rem);align-items:start}
.deux-colonnes--large{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.deux-colonnes--image{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
@media (max-width:56rem){.deux-colonnes,.deux-colonnes--large,.deux-colonnes--image{grid-template-columns:1fr}}
.liste-simple{margin:0 0 1em;padding-left:1.2em}
.liste-simple li{margin-bottom:.4em}

/* ---------- Illustrations ---------- */
.illustration{margin:0}
.illustration__cadre{position:relative;overflow:hidden;background:var(--c-tuile) var(--embleme-pale) center/34% no-repeat}
.illustration__cadre img{width:100%;height:100%;object-fit:cover}
.image-absente img{display:none}
.arche{padding:.55rem;border:1px solid var(--c-filet-fort);border-radius:50% 50% 0 0/38% 38% 0 0}
.arche .illustration__cadre{aspect-ratio:4/5;border-radius:50% 50% 0 0/40% 40% 0 0}
.paysage .illustration__cadre{aspect-ratio:4/3}
.illustration figcaption{font-style:italic;font-size:var(--t-petit);color:var(--c-encre-douce);margin-top:.7rem}
.colonne-images{display:grid;gap:1.75rem}
.colonne-images--trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.colonne-etroite{max-width:18rem}
@media (max-width:56rem){.colonne-images{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.arche{max-width:20rem}}
@media (max-width:48rem){.colonne-images--trois{grid-template-columns:1fr}}

/* ---------- Accueil : portes, planche des fers, actualités, contact ---------- */
.portes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3.5vw,3.5rem);list-style:none;margin:0;padding:0}
.porte a{display:block;color:inherit;text-decoration:none}
.porte .arche{transition:border-color .15s ease}
.porte a:hover .arche{border-color:var(--c-accent)}
.porte__titre{font-family:var(--f-affiche);font-size:2.6rem;line-height:.95;text-transform:uppercase;margin:1.1rem 0 .4rem}
.porte a:hover .porte__titre{color:var(--c-accent)}
.porte p{margin:0;max-width:30ch}
@media (max-width:56rem){.portes{grid-template-columns:1fr;gap:1.5rem}.porte a{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1.25rem;align-items:center}.porte__titre{font-size:2.15rem;margin:0 0 .3rem}}
.cartel{text-align:center;max-width:62rem;margin:0 auto clamp(2.25rem,4vw,3.5rem)}
.cartel__titre{font-family:var(--f-affiche);font-size:clamp(3.75rem,1.4rem + 9.5vw,11.5rem);line-height:.82;text-transform:uppercase;margin:0;padding-block:1.6rem 1.35rem;font-variant-numeric:lining-nums;background:linear-gradient(currentColor,currentColor) 0 0/100% 5px no-repeat,linear-gradient(currentColor,currentColor) 0 9px/100% 1px no-repeat,linear-gradient(currentColor,currentColor) 0 calc(100% - 9px)/100% 1px no-repeat,linear-gradient(currentColor,currentColor) 0 100%/100% 5px no-repeat}
.cartel__sous-titre{font-style:italic;font-size:var(--t-chapeau);line-height:1.4;margin:1.4rem 0 0}
.planche{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.75rem;list-style:none;margin:0;padding:0}
.planche a{display:flex;flex-direction:column;align-items:center;gap:.5rem;height:100%;padding:.9rem .5rem .8rem;background:var(--c-panneau);border:1px solid var(--c-filet);color:var(--c-encre);text-decoration:none;text-align:center}
.planche a:hover{border-color:var(--c-accent)}
.planche .marque{width:100%;min-height:5.25rem;background:var(--c-tuile)}
.planche .marque img{max-height:4.75rem}
.planche__nom{font-family:var(--f-affiche);font-size:1.3rem;line-height:1;text-transform:uppercase}
.actus-courtes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);list-style:none;margin:0;padding:0}
@media (max-width:56rem){.actus-courtes{grid-template-columns:1fr}}
.actus-courtes li{border-top:2px solid var(--c-encre);padding-top:1rem}
.actus-courtes h3{font-weight:600;font-size:1.25rem;line-height:1.3;margin:.3rem 0 .6rem}
.actus-courtes h3 a{color:inherit;text-decoration:none}
.actus-courtes h3 a:hover{text-decoration:underline}
.actus-courtes p{margin:0;font-size:1rem}
.date{display:block;font-style:italic;color:var(--c-encre-douce);font-size:var(--t-petit)}
.bande-contact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:center}
@media (max-width:48rem){.bande-contact{grid-template-columns:1fr}}

/* ---------- Pages rubriques : sommaires ---------- */
.sommaire-rubrique{list-style:none;margin:0;padding:0;border-top:2px solid var(--c-encre)}
.sommaire-rubrique li{border-bottom:1px dotted var(--c-filet-fort)}
.sommaire-rubrique a{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:.5rem 2.5rem;align-items:baseline;padding:1.35rem 0;color:inherit;text-decoration:none}
.sommaire-rubrique__titre{font-family:var(--f-affiche);font-size:clamp(2rem,1.6rem + 1.5vw,2.85rem);line-height:.95;text-transform:uppercase}
.sommaire-rubrique a:hover .sommaire-rubrique__titre{color:var(--c-accent)}
.sommaire-rubrique__texte{color:var(--c-encre-douce)}
@media (max-width:48rem){.sommaire-rubrique a{grid-template-columns:1fr}}

/* ---------- Frises ---------- */
.frise{list-style:none;margin:0;padding:0;max-width:50rem}
.frise li{display:grid;grid-template-columns:5.75rem minmax(0,1fr);column-gap:1.75rem;padding:1rem 0;border-top:1px dotted var(--c-filet-fort)}
.frise li:last-child{border-bottom:1px dotted var(--c-filet-fort)}
.frise li p{margin:0}
.frise time,.frise__annee{font-family:var(--f-affiche);font-size:2.5rem;line-height:.95;color:var(--c-accent);text-align:right;font-variant-numeric:lining-nums}
.frise--compacte li{grid-template-columns:4.5rem minmax(0,1fr);column-gap:1.25rem}
.frise--compacte time,.frise--compacte .frise__annee{font-size:2.1rem}
@media (max-width:40rem){.frise li{grid-template-columns:4.25rem minmax(0,1fr);column-gap:1rem}.frise time,.frise__annee{font-size:2rem}}

/* ---------- Association : missions, collèges, conseil ---------- */
.missions{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.75rem 2.5rem;margin:0}
.missions div{border-top:2px solid var(--c-encre);padding-top:.85rem}
.missions dt{font-weight:600;margin-bottom:.3rem}
.missions dd{margin:0}
.colleges{margin:0;display:grid;gap:1.5rem}
.colleges div{display:grid;grid-template-columns:3.25rem minmax(0,1fr);column-gap:1.1rem;align-items:start}
.tampon{grid-row:span 2;display:grid;place-items:center;width:3.25rem;height:3.25rem;border:2px solid var(--c-accent);border-radius:50%;font-family:var(--f-affiche);font-size:1.9rem;line-height:1;color:var(--c-accent);font-style:normal}
.colleges dt{font-weight:600}
.colleges dd{margin:0}
.conseil{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:2.5rem 3rem}
.conseil__groupe{font-family:var(--f-affiche);font-size:2rem;line-height:1;text-transform:uppercase;margin:0 0 .75rem;padding-bottom:.6rem;border-bottom:2px solid var(--c-encre)}
.conseil__liste{list-style:none;margin:0;padding:0}
.conseil__liste li{padding:.55rem 0;border-bottom:1px dotted var(--c-filet-fort)}
.conseil__role{display:block;font-style:italic;font-size:var(--t-petit);color:var(--c-encre-douce)}
.conseil__nom{font-weight:600}
.conseil__elevage{display:block;font-size:var(--t-petit);color:var(--c-encre-douce)}

/* ---------- Textes officiels : lecture avec sommaire ---------- */
.lecture{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.lecture__sommaire{position:sticky;top:calc(var(--entete) + 1.5rem);font-size:var(--t-petit)}
.lecture__sommaire p{font-weight:600;margin:0 0 .5rem}
.lecture__sommaire ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--c-encre)}
.lecture__sommaire li a{display:block;padding:.3rem 0 .3rem .9rem;color:var(--c-encre);text-decoration:none;line-height:1.35}
.lecture__sommaire li a:hover{color:var(--c-accent)}
.lecture__corps{max-width:44rem}
.lecture__corps h2{font-family:var(--f-affiche);font-size:2.4rem;line-height:.95;text-transform:uppercase;margin:3rem 0 1rem;padding-top:1rem;border-top:2px solid var(--c-encre)}
.lecture__corps h2:first-child{margin-top:0}
.lecture__corps h3{font-weight:600;font-size:1.2rem;margin:1.75rem 0 .5rem}
.lecture__corps ul{padding-left:1.2em;margin:0 0 1em}
.lecture__corps li{margin-bottom:.4em}
.versions{font-size:var(--t-petit);color:var(--c-encre-douce);border:1px solid var(--c-filet-fort);background:var(--c-panneau);padding:1rem 1.25rem;margin:0 0 2.5rem}
.versions p{margin:0 0 .35rem}
.signataires{font-style:italic;color:var(--c-encre-douce);margin-top:2.5rem}
@media (max-width:56rem){.lecture{grid-template-columns:1fr}.lecture__sommaire{position:static}}
.infractions{width:100%;border-collapse:collapse;font-size:var(--t-petit);margin:.5rem 0 1.5rem;background:var(--c-panneau)}
.infractions th,.infractions td{text-align:left;vertical-align:top;padding:.6rem .75rem;border-bottom:1px dotted var(--c-filet-fort)}
.infractions thead th{border-bottom:2px solid var(--c-encre)}

/* ---------- L'élevage : arbre des encastes, profession de foi, toro ---------- */
.arbre-cadre{background:var(--c-panneau);border:1px solid var(--c-filet-fort);padding:clamp(1.25rem,3vw,2.25rem)}
.arbre__racine{font-style:italic;color:var(--c-encre-douce);margin:0 0 .6rem}
.arbre,.arbre ul{list-style:none;margin:0;padding:0}
.arbre ul{padding-left:1.4rem}
.arbre li{position:relative;padding:.35rem 0 .35rem 1.35rem}
.arbre li::before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:1px solid var(--c-filet-fort)}
.arbre li:last-child::before{bottom:auto;height:1.35rem}
.arbre li::after{content:"";position:absolute;left:0;top:1.35rem;width:.95rem;border-top:1px solid var(--c-filet-fort)}
.arbre__nom{font-family:var(--f-affiche);font-size:1.65rem;line-height:1.15;text-transform:uppercase;letter-spacing:.01em}
.arbre__detail{display:block;font-size:var(--t-petit);line-height:1.45;color:var(--c-encre-douce)}
.citation{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.citation blockquote{margin:0 0 2.25rem}
.citation blockquote p{font-family:var(--f-affiche);font-size:clamp(3.25rem,1.8rem + 6vw,7.5rem);line-height:.88;text-transform:uppercase;margin:0 0 1.1rem}
.citation blockquote footer{font-style:italic;color:var(--c-nuit-doux)}
.citation cite{font-style:normal;font-weight:600;color:var(--c-nuit-texte)}
.citation .arche{border-color:rgba(241,229,207,.45)}
@media (max-width:56rem){.citation{grid-template-columns:1fr}.citation .arche{max-width:18rem}}
.signalement{display:grid;grid-template-columns:max-content minmax(0,1fr);margin:0 0 3rem}
.signalement dt,.signalement dd{padding:.75rem 0;border-top:1px dotted var(--c-filet-fort)}
.signalement dt{font-style:italic;color:var(--c-encre-douce);padding-right:1.75rem}
.signalement dd{margin:0}
.registre{width:100%;border-collapse:collapse;margin:0 0 1.75rem}
.registre th,.registre td{padding:.7rem 0;border-top:1px dotted var(--c-filet-fort);vertical-align:baseline}
.registre tr:last-child th,.registre tr:last-child td{border-bottom:1px dotted var(--c-filet-fort)}
.registre th{font-weight:400;font-style:italic;text-align:left;color:var(--c-encre-douce);padding-right:1.5rem}
.registre td{font-weight:600;text-align:right}
.cycle{list-style:none;margin:2rem 0 0;padding:1.5rem 0 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2rem 1.5rem;counter-reset:etape;background:linear-gradient(var(--c-encre),var(--c-encre)) 0 0/100% 5px no-repeat,linear-gradient(var(--c-encre),var(--c-encre)) 0 9px/100% 1px no-repeat}
.cycle li{counter-increment:etape;padding-top:.5rem}
.cycle li::before{content:counter(etape);display:block;font-family:var(--f-affiche);font-size:3.25rem;line-height:1;color:var(--c-accent);margin-bottom:.4rem;font-variant-numeric:lining-nums}
.cycle h3{font-weight:600;font-size:1.15rem;margin:0}
.cycle__quand{font-style:italic;color:var(--c-encre-douce);margin:0 0 .5rem}
.cycle li p:last-child{margin:0;font-size:1rem;line-height:1.55}
@media (max-width:72rem){.cycle{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:40rem){.cycle{grid-template-columns:1fr}}

/* ---------- Les éleveurs : outils, cartes ---------- */
.legende-marques{max-width:46rem;margin:0 0 2rem}
.outils{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.25rem 2rem;padding:1.25rem 0;border-top:2px solid var(--c-encre);border-bottom:1px solid var(--c-filet-fort)}
.filtres{display:flex;flex-wrap:wrap}
.filtre{font:inherit;font-weight:600;font-size:1rem;padding:.65rem 1.1rem;border:2px solid var(--c-encre);background:transparent;color:var(--c-encre);cursor:pointer;margin-right:-2px;border-radius:0}
.filtre:hover{background:var(--c-panneau)}
.filtre[aria-pressed="true"]{background:var(--c-encre);color:var(--c-sur-encre)}
.filtre__nombre{font-weight:400;margin-left:.3rem;font-variant-numeric:lining-nums}
.recherche label{display:block;font-weight:600;margin-bottom:.35rem}
.recherche input{font:inherit;width:min(100%,22rem);padding:.6rem .8rem;border:2px solid var(--c-encre);background:var(--c-panneau);color:var(--c-encre);border-radius:0}
.recherche input::placeholder{color:var(--c-encre-douce);opacity:1}
.compte{margin:1rem 0 0;font-style:italic}
.ganaderias{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1.25rem;margin-top:1.25rem;list-style:none;padding:0}
.ganaderia[hidden]{display:none}
.ganaderia a{display:flex;flex-direction:column;height:100%;background:var(--c-panneau);border:1px solid var(--c-filet-fort);padding:.9rem .9rem 1.1rem;color:var(--c-encre);text-decoration:none}
.ganaderia a:hover{border-color:var(--c-accent)}
.ganaderia a:hover .ganaderia__nom{color:var(--c-accent)}
.marques{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center;gap:.5rem;min-height:7.75rem;padding:.7rem;margin-bottom:1rem;background:var(--c-tuile) var(--embleme-pale) center/0 no-repeat}
.marques.marques-absentes{background-size:4.5rem}
.marque{margin:0;display:flex;align-items:center;justify-content:center;min-height:5rem}
.marque img{width:auto;max-width:100%;max-height:5.25rem;object-fit:contain;mix-blend-mode:multiply}
.marque--fer img{max-height:6.5rem}
.ganaderia__nom{font-family:var(--f-affiche);font-size:2.35rem;line-height:.95;text-transform:uppercase;letter-spacing:.005em;margin:0 0 .4rem}
.ganaderia__titulaires{font-style:italic;margin:0;line-height:1.45}
.ganaderia__lieu{margin:.3rem 0 0;font-size:var(--t-petit);color:var(--c-encre-douce)}
.etiquette{align-self:flex-start;display:inline-block;margin-top:.6rem;padding:.05rem .5rem;border:1px solid currentColor;font-size:.875rem;font-style:italic;color:var(--c-accent)}
.registre-vide{margin-top:1.25rem;padding:2rem 1.5rem;border:1px dashed var(--c-filet-fort);background:var(--c-panneau);text-align:center}
.registre-vide[hidden]{display:none}

/* ---------- Fiche d'un élevage ---------- */
.fiche{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,5vw,5rem);align-items:start}
@media (max-width:56rem){.fiche{grid-template-columns:1fr}}
.fiche__marques{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:0}
.fiche__marques .marque{flex-direction:column;justify-content:flex-end;gap:.6rem;min-height:0;padding:1rem .75rem .75rem;background:var(--c-tuile)}
.fiche__marques .marque--fer{grid-column:1/-1;min-height:14rem}
.fiche__marques .marque img{max-height:8rem}
.fiche__marques .marque--fer img{max-height:11rem}
.fiche__marques figcaption{font-style:italic;font-size:var(--t-petit);color:#5F4B39}
.fiche__marques .image-absente{min-height:7rem;background:var(--c-tuile) var(--embleme-pale) center 40%/3.5rem no-repeat}
.fiche__marques .marque--fer.image-absente{min-height:12rem;background-size:5rem}
.fiche__infos > * + .intertitre{margin-top:2.75rem}
.fiche__photo{margin-top:1.5rem}
.fiche-technique{display:grid;grid-template-columns:max-content minmax(0,1fr);margin:0 0 2.5rem}
.fiche-technique dt,.fiche-technique dd{padding:.7rem 0;border-top:1px dotted var(--c-filet-fort)}
.fiche-technique dt{font-style:italic;color:var(--c-encre-douce);padding-right:1.5rem}
.fiche-technique dd{margin:0;overflow-wrap:anywhere}
.fiche-technique a{white-space:nowrap}
.remarquables{list-style:none;margin:0;padding:0}
.remarquables li{padding:.65rem 0 .65rem 1.4rem;border-top:1px dotted var(--c-filet-fort);position:relative}
.remarquables li::before{content:"";position:absolute;left:0;top:1.2rem;width:.55rem;height:.55rem;border:2px solid var(--c-accent);border-radius:50%}
.precedent-suivant{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;margin-top:clamp(3rem,6vw,5rem);padding-top:1.25rem;border-top:2px solid var(--c-encre)}
.precedent-suivant a{color:var(--c-encre);text-decoration:none}
.precedent-suivant a:hover span{color:var(--c-accent)}
.precedent-suivant small{display:block;font-style:italic;color:var(--c-encre-douce);font-size:var(--t-petit)}
.precedent-suivant span{font-family:var(--f-affiche);font-size:1.75rem;line-height:1;text-transform:uppercase}
.precedent-suivant__suivant{text-align:right}
.precedent-suivant__tous{font-weight:600}
@media (max-width:40rem){.precedent-suivant{grid-template-columns:1fr 1fr}.precedent-suivant__tous{grid-column:1/-1;grid-row:2;text-align:center}}

/* ---------- Liste des membres ---------- */
.legende-colleges{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;list-style:none;margin:0 0 1rem;padding:0;font-size:var(--t-petit)}
.legende-colleges b{font-family:var(--f-affiche);font-weight:400;font-size:1.35rem;color:var(--c-accent);margin-right:.35rem}
.table-defile{overflow-x:auto}
.membres{width:100%;border-collapse:collapse;font-size:var(--t-petit);line-height:1.5;background:var(--c-panneau)}
.membres th,.membres td{text-align:left;vertical-align:top;padding:.65rem .75rem;border-bottom:1px dotted var(--c-filet-fort)}
.membres thead th{font-weight:600;border-bottom:2px solid var(--c-encre);background:var(--c-tuile);color:#2B1F16}
.membres td:first-child{font-weight:600}
.membres__fonction{display:block;font-weight:400;font-style:italic;color:var(--c-encre-douce)}
.college{font-family:var(--f-affiche);font-size:1.45rem;line-height:1;color:var(--c-accent)}
@media (max-width:48rem){
  .membres thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .membres,.membres tbody,.membres tr,.membres td{display:block;width:100%}
  .membres tr{padding:.75rem 0;border-bottom:1px solid var(--c-filet-fort)}
  .membres td{border:0;padding:.15rem .9rem}
  .membres td[data-label]::before{content:attr(data-label) "\00a0: ";font-style:italic;font-weight:400;color:var(--c-encre-douce)}
}

/* ---------- Actualités ---------- */
.actus{display:grid;gap:clamp(3rem,5vw,4.5rem)}
.actu{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;padding-top:2rem;border-top:1px solid var(--c-filet-fort)}
.actu:first-child{border-top:0;padding-top:0}
@media (max-width:48rem){.actu{grid-template-columns:1fr}}
.actu h2{font-weight:600;font-size:var(--t-h3);line-height:1.25;margin:.3rem 0 .9rem}
.actu h2 a{color:inherit;text-decoration:none}
.actu h2 a:hover{text-decoration:underline}
.cartel-affiche{max-width:30rem;margin:1.75rem 0 .5rem;padding:1.5rem 1.25rem;background:var(--c-sable);color:var(--c-encre);text-align:center;border:2px solid var(--c-encre);outline:1px solid var(--c-encre);outline-offset:5px}
.cartel-affiche__titre{font-family:var(--f-affiche);font-size:2.75rem;line-height:.9;text-transform:uppercase;margin:0 0 .25rem}
.cartel-affiche__annee{font-style:italic;margin:0 0 .75rem}
.cartel-affiche__course{border-top:1px solid var(--c-filet-fort);padding:.85rem 0 .1rem}
.cartel-affiche__quand{font-style:italic;font-size:var(--t-petit);margin:0}
.cartel-affiche__betail{font-family:var(--f-affiche);font-size:1.55rem;line-height:1.05;text-transform:uppercase;margin:.25rem 0}
.cartel-affiche__toreros{font-size:var(--t-petit);margin:0}

/* ---------- Documents, liens ---------- */
.documents{list-style:none;margin:0;padding:0;border-top:2px solid var(--c-encre)}
.documents li{border-bottom:1px dotted var(--c-filet-fort)}
.documents a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem;align-items:center;padding:1rem 0;color:inherit;text-decoration:none}
.documents a:hover .documents__titre{text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.2em}
.documents__titre{display:block;font-weight:600;line-height:1.4}
.documents__auteurs{display:block;font-style:italic;font-size:var(--t-petit);line-height:1.5;color:var(--c-encre-douce);margin-top:.2rem}
.documents__format{font-family:var(--f-affiche);font-size:1.5rem;line-height:1;color:var(--c-accent)}
.liens{list-style:none;margin:0;padding:0;max-width:44rem}
.liens li{padding:.9rem 0;border-top:1px dotted var(--c-filet-fort)}
.liens li:last-child{border-bottom:1px dotted var(--c-filet-fort)}
.liens a{font-weight:600}
.liens span{display:block;font-size:var(--t-petit);color:var(--c-encre-douce)}

/* ---------- Contact ---------- */
.adresse{font-style:normal;font-size:1.2rem;line-height:1.55;margin:0 0 1.5rem}
.adresse strong{display:block}
.contact-liste{list-style:none;margin:0 0 2rem;padding:0}
.contact-liste li{padding:.6rem 0;border-top:1px dotted var(--c-filet-fort)}
.contact-liste li:last-child{border-bottom:1px dotted var(--c-filet-fort)}
.contact-liste span{display:block;font-style:italic;font-size:var(--t-petit);color:var(--c-encre-douce)}
.formulaire{background:var(--c-panneau);border:1px solid var(--c-filet-fort);padding:clamp(1.25rem,3vw,2.25rem)}
.champ{margin-bottom:1.15rem}
.champ label{display:block;font-weight:600;margin-bottom:.35rem}
.champ input,.champ select,.champ textarea{width:100%;font:inherit;font-size:1rem;color:var(--c-encre);background:var(--c-page);border:1px solid var(--c-filet-fort);border-radius:0;padding:.7rem .8rem}
.champ textarea{resize:vertical;min-height:9rem}
.champ [aria-invalid="true"]{border:2px solid var(--c-accent)}
.erreur{color:var(--c-accent);font-size:var(--t-petit);font-weight:600;margin:.35rem 0 0}
.erreur[hidden]{display:none}
.formulaire__aide{font-size:var(--t-petit);font-style:italic;color:var(--c-encre-douce)}
.formulaire__retour{margin:1rem 0 0;font-weight:600}
.formulaire__retour:empty{display:none}

/* ---------- Pied de page ---------- */
.pied{background:var(--c-nuit);color:var(--c-nuit-texte)}
.pied a{color:var(--c-nuit-texte)}
.pied__grille{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:2.25rem 2.5rem;padding-block:3.5rem 2.5rem}
@media (max-width:68rem){.pied__grille{grid-template-columns:repeat(2,minmax(0,1fr))}.pied__marque{grid-column:1/-1}}
@media (max-width:36rem){.pied__grille{grid-template-columns:1fr}}
.pied__marque{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.pied__logo{height:3.5rem;width:auto;flex:none;filter:drop-shadow(0 0 1px rgba(241,229,207,.8))}
.pied .pied__nom{font-family:var(--f-affiche);font-size:2.25rem;line-height:.9;text-transform:uppercase;margin:0 0 .5rem}
.pied p{font-size:var(--t-petit);line-height:1.55;margin:0 0 .6rem}
.pied__titre{font-weight:600;font-size:1rem;margin:0 0 .6rem}
.pied ul{list-style:none;margin:0;padding:0;font-size:var(--t-petit);line-height:1.5}
.pied li{margin-bottom:.45rem}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;border-top:1px solid rgba(241,229,207,.2);padding-block:1.25rem 2.25rem;font-size:var(--t-petit);color:var(--c-nuit-doux)}
.pied__bas p{margin:0}

/* ---------- Page introuvable ---------- */
.introuvable{padding-block:clamp(4rem,8vw,8rem)}
.introuvable__code{font-family:var(--f-affiche);font-size:clamp(6rem,4rem + 10vw,14rem);line-height:.8;margin:0 0 1rem}

/* ---------- Mouvements réduits, impression ---------- */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{
  .entete,.rayas,.barrera,.outils,.formulaire,.lien-evitement,.sous-nav,.lecture__sommaire,.pied{display:none!important}
  body{background:#fff;color:#000}
  .section,.page{padding-block:1.5rem}
  .section--sable,.section--nuit,.section--chaux,.ouverture,.bandeau{background:#fff;color:#000}
  .lecture{display:block}
}
