
  

  /* Palette du cahier des charges : Pantone 2021 U, Pantone 2314 U, noir et
     blanc. Les deux références sont reprises à l'identique ; le reste n'est
     que des déclinaisons (cognac assombri, ivoire de fond, filets). */
  :root{
    --ivoire:#F8F3EA;
    --ivoire-2:#EFE5D3;
    --noir:#18140F;
    --noir-2:#4A4030;
    --cognac:#A6643E;   /* Pantone 2021 U */
    --cognac-2:#8B4E2E;
    --taupe:#A98164;    /* Pantone 2314 U */
    --ligne:#E1D3B8;
    --carte:#FFFFFF;
    --accent-fg:#FBF5EB;
  }
  /* Identité visuelle unique, claire, sur tous les appareils.
     La variante sombre a été retirée : sur un iPhone réglé en mode sombre,
     elle repeignait tout le site et le fond ivoire de la marque disparaissait.
     color-scheme:only light empêche aussi iOS d'assombrir les champs de formulaire. */
  :root{color-scheme:only light;}

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ivoire);
    color:var(--noir);
    font-family:'Poppins',system-ui,sans-serif;
    line-height:1.6;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',Georgia,serif;
    font-weight:600;
    text-wrap:balance;
    color:var(--noir);
    margin:0;
  }
  p{margin:0 0 1em;}
  a{color:inherit;}
  .wrap{max-width:1500px; margin:0 auto; padding:0 15px;}
  section{scroll-margin-top:76px;}

  .kicker{
    font-size:.72rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--cognac-2);
    font-weight:600;
  }

  /* header */
  header{
    position:sticky; top:0; z-index:50;
    /* fond opaque volontaire : un backdrop-filter ici créerait un bloc conteneur
       qui empêcherait le menu mobile en position:fixed de couvrir l'écran */
    background:var(--ivoire);
    border-bottom:1px solid var(--ligne);
  }
  /* padding vertical uniquement : le raccourci écraserait le padding latéral de .wrap */
  .headbar{display:flex; align-items:center; justify-content:space-between; padding-top:16px; padding-bottom:16px;}
  /* le vrai logo d'Alexia viendra ici : remplacer le texte par <img class="logo-img" src="..." alt="Alexia Pittier"> */
  .logo{font-family:'Fraunces',serif; font-weight:700; font-size:1.73rem; letter-spacing:-.01em; text-decoration:none; color:var(--noir); display:flex; align-items:center; gap:10px;}
  .logo-img{height:51px; width:auto; display:block;}
  /* Sur laccueil en desktop, le nom est deja en grand dans le bandeau :
     lafficher aussi dans len-tete ferait doublon. Partout ailleurs, il reste. */
  @media (min-width:841px){
    body.home .logo{display:none;}
  }
  nav.main{display:flex; align-items:center; gap:28px;}
  nav.main > a{font-size:.86rem; font-weight:500; text-decoration:none; color:var(--noir-2); padding:4px 0; border-bottom:2px solid transparent;}
  nav.main > a:hover, nav.main > a:focus-visible{color:var(--noir); border-color:var(--cognac);}
  nav.main > a.active{color:var(--noir); border-color:var(--cognac);}
  .menu-foot{display:none;}
  .tel{font-size:.82rem; font-weight:600; color:var(--noir); text-decoration:none; display:flex; align-items:center; gap:6px; white-space:nowrap;}
  .tel svg{stroke:var(--cognac);}
  /* réseaux sociaux */
  .socials{display:flex; align-items:center; gap:8px;}
  .socials a{
    width:34px; height:34px; border-radius:50%; flex:none;
    display:flex; align-items:center; justify-content:center;
    border:1px solid var(--ligne); color:var(--noir-2); text-decoration:none;
    transition:border-color .2s ease, color .2s ease, background-color .2s ease;
  }
  .socials a:hover{border-color:var(--cognac); color:var(--cognac-2); background:color-mix(in srgb, var(--cognac) 9%, transparent);}
  .socials .at{font-family:'Poppins',sans-serif; font-size:1.05rem; font-weight:600; line-height:1;}
  /* sur mobile on masque uniquement ceux de la barre du haut, pas ceux du menu déroulant */
  @media (max-width:840px){.head-socials{display:none;}}
  footer .socials{margin-top:14px;}
  footer .socials a{border-color:color-mix(in srgb, var(--ivoire) 26%, transparent); color:color-mix(in srgb, var(--ivoire) 80%, transparent);}
  footer .socials a:hover{border-color:var(--cognac); color:var(--ivoire); background:transparent; text-decoration:none;}

  .burger{display:none; background:none; border:none; cursor:pointer; padding:8px; z-index:120; position:relative;}
  .burger span{display:block; width:24px; height:2px; background:var(--noir); margin:5px 0; border-radius:2px; transition:transform .28s cubic-bezier(.2,.7,.2,1), opacity .2s ease;}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .menu-actions{display:none;}

  @media (max-width:840px){
    nav.main{
      position:fixed; inset:0; z-index:110;
      background:var(--ivoire);
      flex-direction:column; align-items:stretch; justify-content:flex-start;
      gap:0; padding:96px 26px 34px;
      opacity:0; pointer-events:none; transform:translateY(-12px);
      transition:opacity .28s ease, transform .28s ease;
      overflow-y:auto;
    }
    nav.main.open{opacity:1; transform:none; pointer-events:auto;}
    nav.main > a{
      width:100%; padding:20px 0; border-bottom:1px solid var(--ligne);
      font-family:'Fraunces',serif; font-size:1.55rem; font-weight:600; color:var(--noir);
    }
    nav.main > a.active{color:var(--cognac-2);}
    nav.main.open > a{animation:menuIn .45s cubic-bezier(.2,.7,.2,1) backwards;}
    nav.main.open > a:nth-child(1){animation-delay:.06s;}
    nav.main.open > a:nth-child(2){animation-delay:.11s;}
    nav.main.open > a:nth-child(3){animation-delay:.16s;}
    nav.main.open > a:nth-child(4){animation-delay:.21s;}
    nav.main.open > a:nth-child(5){animation-delay:.26s;}

    .menu-actions{display:flex; flex-direction:column; gap:12px; margin-top:34px;}
    .menu-actions .btn{justify-content:center; padding:16px 22px; font-size:.95rem;}
    .menu-foot{margin-top:26px; font-size:.84rem; color:var(--noir-2); display:flex; flex-direction:column; gap:6px;}
    .menu-foot a{color:var(--noir-2); text-decoration:none;}
    nav.main.open .menu-actions, nav.main.open .menu-foot{animation:menuIn .45s cubic-bezier(.2,.7,.2,1) .3s backwards;}

    .burger{display:block;}
    /* mobile : logo à gauche, téléphone visible puis menu à droite.
       Le nom reste plus petit qu'en grand écran : il partage la barre
       avec le téléphone et le bouton menu. */
    .logo{font-size:1.43rem; line-height:1.1;}
    .logo-img{height:36px;}
    .tel{font-size:.78rem; gap:5px;}
    body.menu-open{overflow:hidden;}
  }
  /* très petits écrans : on garde l'icône seule pour ne pas serrer le logo */
  @media (max-width:390px){
    .tel .tel-num{display:none;}
    .logo{font-size:1.33rem;}
  }
  @keyframes menuIn{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
  @media (prefers-reduced-motion: reduce){
    nav.main.open > a, nav.main.open .menu-actions, nav.main.open .menu-foot{animation:none;}
  }

  .btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--cognac-2); color:var(--accent-fg);
    font-family:'Poppins',sans-serif; font-weight:600; font-size:.86rem;
    padding:12px 22px; border-radius:3px; text-decoration:none;
    border:1px solid var(--cognac-2);
  }
  .btn:hover{background:var(--cognac);}
  .btn.ghost{background:transparent; color:var(--noir); border-color:var(--noir-2);}
  .btn.ghost:hover{border-color:var(--cognac); color:var(--cognac-2);}
  .btn.on-dark{background:var(--cognac); border-color:var(--cognac);}
  .btn.on-dark.ghost{background:transparent; color:var(--ivoire); border-color:var(--ivoire);}

  /* hero */
  .hero-band{background:linear-gradient(120deg, var(--cognac-2), var(--cognac)); padding:30px 0 26px;}
  .hero-band .kicker{color:#fff; opacity:.88;}
  .signature{
    font-family:'Fraunces', Georgia, serif;
    font-size:clamp(2.6rem,6.5vw,4rem);
    color:#fff;
    line-height:1.02;
    margin:8px 0 0;
    font-weight:600;
    letter-spacing:-.015em;
  }
  .hero-pin{position:relative; height:calc(100vh + 340px); min-height:800px;}
  @media (max-width:640px){.hero-pin{height:calc(100vh + 180px); min-height:620px;}}
  .hero-figure{
    position:sticky;
    top:0;
    /* exactement la hauteur de l'écran : le conteneur .hero-pin est plus haut,
       c'est cet écart qui donne la course de défilement pendant que la photo reste figée */
    height:100vh;
    width:100%;
    background:
      radial-gradient(ellipse at 30% 20%, rgba(212,138,94,.18), transparent 55%),
      linear-gradient(155deg, #2A1B10, #4A2E1A 55%, #241609);
    border-bottom:1px solid var(--ligne);
    overflow:hidden;
    transform-origin:center top;
    will-change:transform,filter;
  }
  .hero-figure .watermark{position:absolute; right:-40px; bottom:-60px; opacity:.16; color:var(--ivoire);}
  .hero-figure::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,6,3,.92) 0%, rgba(10,6,3,.7) 26%, rgba(10,6,3,.12) 62%); pointer-events:none;}
  .hero-figure .pullquote{position:absolute; left:0; right:0; bottom:0; padding:0 15px 52px; z-index:2; max-width:1500px; margin:0 auto;}
  .hero-figure .pullquote .kicker{color:rgba(255,255,255,.86);}
  .hero-figure .pullquote .signature{color:#fff; font-size:clamp(2.8rem,7.5vw,5rem); text-shadow:0 2px 24px rgba(0,0,0,.4);}
  .hero-figure .pullquote .role{
    color:rgba(255,255,255,.93); font-size:clamp(.95rem,1.5vw,1.08rem); font-weight:500;
 margin:18px 0 0; text-shadow:0 1px 12px rgba(0,0,0,.5);
  }
  .hero-figure .pullquote .hero-actions{margin-top:26px;}
  /* ruban tricolore sous le nom : trois segments égaux, bords nets */
  .ruban-fr{display:flex; width:132px; height:7px; margin-top:18px;}
  .ruban-fr span{flex:1;}
  .ruban-fr span:nth-child(1){background:#0055A4;}
  .ruban-fr span:nth-child(2){background:#FFFFFF;}
  .ruban-fr span:nth-child(3){background:#EF4135;}
  @media (max-width:640px){
    /* sur mobile la colonne est étroite : sur-titre, nom, texte et boutons
       sont centrés, l'alignement à gauche laissait des fins de ligne en escalier */
    .hero-figure .pullquote{padding:0 20px 38px; text-align:center;}
    .ruban-fr{width:96px; height:5px; margin:14px auto 0;}
    .hero-figure .pullquote .hero-actions{width:100%; justify-content:center;}
    .hero-figure .pullquote .hero-actions .btn{flex:1 1 100%; justify-content:center;}
  }
  /* écrans peu hauts : on allège pour que rien ne déborde de la photo */
  @media (max-height:620px){
    .hero-figure .pullquote .role{display:none;}
    .hero-figure .pullquote{padding-bottom:30px;}
  }
  .hero-figure .figcue{position:absolute; top:18px; left:18px; z-index:2; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.6); border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:5px 12px;}
  .hero-below{padding-top:56px; padding-bottom:0;}
  .hero-below .medal-strip{margin-top:0;}
  .hero-below .role{font-size:1.05rem; font-weight:500; color:var(--noir-2);}
  .hero-actions{display:flex; gap:14px; margin-top:22px; flex-wrap:wrap;}
  /* le sélecteur doit viser les colonnes, pas tous les div descendants (sinon .num hérite d'une bordure) */
  .medal-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:34px; margin-top:44px; padding-top:30px; border-top:1px solid var(--ligne);}
  .medal-strip > div{padding:0;}
  .medal-strip .num{font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; color:var(--cognac-2); line-height:1;}
  .medal-strip .lbl{font-size:.8rem; color:var(--noir-2); margin-top:8px;}
  @media (max-width:700px){.medal-strip{grid-template-columns:repeat(2,1fr); gap:26px;}}

  /* figure / photo placeholder component */
  .figure{position:relative; border:1px solid var(--ligne); background:var(--carte);}
  .figure::before, .figure::after{content:""; position:absolute; width:16px; height:16px; border-color:var(--cognac); border-style:solid; opacity:.7; z-index:2;}
  .figure::before{top:-1px; left:-1px; border-width:2px 0 0 2px;}
  .figure::after{bottom:-1px; right:-1px; border-width:0 2px 2px 0;}
  .figure img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1;}
  .logo-tile img{position:absolute; inset:16px; width:calc(100% - 32px); height:calc(100% - 32px); object-fit:contain; z-index:1;}
  .wordmark{
    position:absolute; inset:0; z-index:1;
    display:flex; align-items:center; justify-content:center; text-align:center;
    padding:14px; line-height:1.25;
    font-family:'Fraunces',serif; font-size:.9rem; font-weight:600; color:var(--noir);
  }
  /* logos en couleurs d'origine ; la vignette prend le fond réglé par partenaire */
  .logo-tile{background:#fff;}
  .logo-tile img, .logo-tile .wordmark{transition:transform .3s ease;}
  .logo-item:hover .logo-tile img{transform:scale(1.04);}
  .logo-grid.compact{gap:14px;}
  .logo-grid.compact .logo-tile{aspect-ratio:5/3;}
  .logo-grid.compact .wordmark{font-size:.78rem; padding:10px;}
  .hero-figure img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
  .figure .ph{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:var(--taupe); text-align:center; padding:18px;}
  .figure .ph svg{opacity:.6;}
  .figure .ph span{font-size:.78rem;}
  figure{margin:0;}
  figcaption{margin-top:10px; font-size:.72rem; letter-spacing:.05em; color:var(--noir-2); opacity:.8; text-align:left;}

  /* gallery */
  .gal-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px;}
  .gal-tab{
    font-family:'Poppins',sans-serif; font-size:.82rem; font-weight:600;
    background:none; border:1px solid var(--ligne); color:var(--noir-2);
    padding:9px 18px; border-radius:999px; cursor:pointer;
  }
  .gal-tab[aria-selected="true"]{background:var(--cognac-2); border-color:var(--cognac-2); color:var(--accent-fg);}
  .gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  @media (max-width:767px){.gal-grid{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:500px){.gal-grid{grid-template-columns:repeat(2,1fr);}}
  .gal-item{aspect-ratio:7/5;}
  .gal-item figcaption{padding:0 2px;}

  /* logo grid — six par ligne, on retire des colonnes en descendant */
  .logo-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:16px;}
  @media (max-width:1100px){.logo-grid{grid-template-columns:repeat(4,1fr);}}
  @media (max-width:760px){.logo-grid{grid-template-columns:repeat(3,1fr); gap:12px;}}
  @media (max-width:480px){.logo-grid{grid-template-columns:repeat(2,1fr);}}
  .logo-tile{aspect-ratio:3/2;}
  .logo-tile .ph svg{opacity:.5;}
  .logo-item figcaption{text-align:center; margin-top:8px;}

  /* generic section spacing */
  .sect{padding:88px 0;}
  .sect + .sect{border-top:1px solid var(--ligne);}
  .sect-head{margin-bottom:44px;}
  .sect-head h2{font-size:clamp(1.7rem,3.2vw,2.3rem); margin-top:8px;}

  /* stretch : la photo prend exactement la hauteur de la colonne de texte,
     au lieu d'imposer son propre format et de se retrouver démesurée */
  .prose{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:stretch;}
  /* sous 1024 px, le texte et la photo passent chacun sur toute la largeur */
  @media (max-width:1024px){
    .prose{grid-template-columns:1fr; gap:28px;}
    /* une seule colonne : plus rien à égaliser, la photo reprend un format fixe
       et sort des gouttières de 15 px pour occuper toute la largeur de l'écran */
    /* format plus large quen desktop : en 4/5 sur toute la largeur dun
       telephone, la photo occupait presque un ecran entier a elle seule */
    .prose .bio-photo{
      aspect-ratio:3/2; min-height:0;
      width:calc(100% + 30px); margin:14px -15px 34px;
      border-left:none; border-right:none;
    }
    .prose .bio-photo::before, .prose .bio-photo::after{display:none;}
  }

  .frame{aspect-ratio:4/5;}
  .frame.wide{aspect-ratio:16/10;}
  .frame.square{aspect-ratio:16/11;}

  .callout{
    background:var(--ivoire-2); border-left:3px solid var(--cognac);
    border-radius:0 6px 6px 0; padding:28px 30px; margin-top:8px;
  }

  /* timeline */
  .timeline{margin-top:8px; border-left:2px solid var(--ligne); padding-left:28px;}
  .tl-item{position:relative; padding-bottom:34px;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-item::before{content:""; position:absolute; left:-33px; top:4px; width:10px; height:10px; border-radius:50%; background:var(--cognac);}
  .tl-item .yr{font-family:'Fraunces',serif; font-weight:600; color:var(--cognac-2); font-size:1.02rem;}
  .tl-item p{margin-top:6px; font-size:.92rem; color:var(--noir-2);}

  /* team / horses */
  .grid-2{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
  @media (max-width:800px){.grid-2,.grid-3{grid-template-columns:1fr;}}
  .person{border:1px solid var(--ligne); border-radius:6px; overflow:hidden; background:var(--carte);}
  .person .role{color:var(--cognac-2); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; font-weight:600;}
  .person .body{padding:22px 22px 26px;}
  .person .body h3{font-size:1.15rem; margin:8px 0 4px;}
  .person .body p{font-size:.9rem; color:var(--noir-2); margin:0;}

  .horse{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; padding:48px 0;}
  @media (max-width:800px){.horse{grid-template-columns:1fr; gap:24px;}}
  .horse + .horse{border-top:1px solid var(--ligne);}
  .horse-meta{font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--taupe); margin-bottom:6px;}
  .horse h3{font-size:1.7rem;}
  .horse p{font-size:.94rem; color:var(--noir-2);}

  /* prestations accordion */
  .acc-item{border-bottom:1px solid var(--ligne);}
  .acc-item:first-child{border-top:1px solid var(--ligne);}
  .acc-btn{
    width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
    background:none; border:none; text-align:left; cursor:pointer;
    padding:24px 0; font-family:'Fraunces',serif; font-size:1.2rem; color:var(--noir); font-weight:600;
  }
  .acc-btn .plus{font-family:'Poppins',sans-serif; font-size:1.4rem; color:var(--cognac); font-weight:400; flex:none;}
  .acc-panel{max-height:0; overflow:hidden; transition:max-height .28s ease;}
  .acc-panel-in{padding-bottom:26px; font-size:.93rem; color:var(--noir-2);}
  .acc-panel-in ul{margin:12px 0 0; padding-left:20px;}
  .acc-panel-in li{margin:4px 0;}
  .acc-item.open .acc-panel{max-height:900px;}
  .acc-item.open .plus{transform:rotate(45deg); display:inline-block;}

  /* engagements */
  .val-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:8px;}
  @media (max-width:800px){.val-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:520px){.val-grid{grid-template-columns:1fr;}}
  .val{padding:22px 20px; border:1px solid var(--ligne); border-radius:6px; background:var(--carte);}
  .val h4{font-size:.98rem; font-family:'Poppins',sans-serif; font-weight:700; margin-bottom:6px;}
  .val p{font-size:.86rem; color:var(--noir-2); margin:0;}

  /* partners */
  .partner-group{margin-bottom:34px;}
  .partner-group h4{font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); margin-bottom:14px; font-family:'Poppins',sans-serif;}
  .chips{display:flex; flex-wrap:wrap; gap:10px;}
  .chip{border:1px solid var(--ligne); background:var(--carte); border-radius:3px; padding:9px 16px; font-size:.85rem; color:var(--noir-2);}

  /* bande pleine largeur : elle sort de la colonne de contenu, seul l'intérieur reste aligné */
  .cta-dark{background:var(--noir); color:var(--ivoire); padding:76px 0; margin-top:56px;}
  .cta-dark .kicker{color:var(--cognac);}
  .cta-dark h2{color:var(--ivoire); font-size:clamp(1.7rem,3.4vw,2.4rem); margin-top:10px;}
  .cta-dark p{color:color-mix(in srgb, var(--ivoire) 78%, transparent);}
  .cta-list{display:grid; grid-template-columns:1fr 1fr; gap:22px 44px; margin:32px 0 36px; padding:0; list-style:none;}
  @media (max-width:760px){.cta-list{grid-template-columns:1fr;}}
  .cta-list li{
    display:flex; align-items:center; gap:15px;
    font-size:.92rem; color:color-mix(in srgb, var(--ivoire) 90%, transparent);
    padding:0; position:static;
  }
  .cta-list li::before{content:none;}
  .cta-list .ico{
    flex:none; width:40px; height:40px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:color-mix(in srgb, var(--cognac) 20%, transparent);
    border:1px solid color-mix(in srgb, var(--cognac) 50%, transparent);
    color:var(--cognac-2);
  }
  @media (max-width:640px){.cta-dark{padding:52px 0;}}

  /* newsletter */
  .news-box{background:var(--carte); border:1px solid var(--ligne); border-radius:8px; padding:40px; display:grid; grid-template-columns:1.1fr 1fr; gap:44px;}
  @media (max-width:800px){.news-box{grid-template-columns:1fr; padding:28px;}}
  .news-box ul{margin:14px 0 0; padding-left:20px; font-size:.88rem; color:var(--noir-2);}
  .news-box li{margin:4px 0;}
  form.subscribe{display:flex; flex-direction:column; gap:12px; align-self:start;}
  form.subscribe input{
    font-family:'Poppins',sans-serif; font-size:.92rem; padding:13px 14px;
    border:1px solid var(--ligne); border-radius:4px; background:var(--ivoire); color:var(--noir);
  }
  form.subscribe input:focus-visible{outline:2px solid var(--cognac); outline-offset:1px;}
  .form-note{font-size:.76rem; color:var(--noir-2); opacity:.85;}
  .form-status{font-size:.85rem; font-weight:600; color:var(--cognac-2); min-height:1.2em;}

  /* footer */
  footer{background:var(--noir); color:var(--ivoire); padding:56px 0 26px;}
  .foot-contact{
    display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;
    padding-bottom:40px; margin-bottom:36px;
    border-bottom:1px solid color-mix(in srgb, var(--ivoire) 18%, transparent);
  }
  @media (max-width:800px){.foot-contact{grid-template-columns:1fr; gap:24px;}}
  .foot-contact h3{color:var(--ivoire); font-size:clamp(1.5rem,3vw,2rem); margin:10px 0 10px;}
  .foot-contact p{color:color-mix(in srgb, var(--ivoire) 72%, transparent); font-size:.9rem; margin:0;}
  /* coordonnées sur fond sombre */
  .foot-contact .contact-lines{margin-top:26px;}
  .foot-contact .contact-line{color:var(--ivoire); border-bottom-color:color-mix(in srgb, var(--ivoire) 18%, transparent);}
  .foot-contact .contact-line:hover{color:var(--cognac-2);}
  .foot-contact .contact-line .lab{color:var(--taupe);}
  .foot-form{display:flex; flex-direction:column; gap:12px;}
  .foot-form label{
    display:flex; flex-direction:column; gap:6px;
    font-size:.82rem; font-weight:600; color:color-mix(in srgb, var(--ivoire) 85%, transparent);
  }
  .foot-form-note{font-size:.76rem; color:color-mix(in srgb, var(--ivoire) 55%, transparent); margin:4px 0 0;}
  .foot-form input{
    font-family:'Poppins',sans-serif; font-size:.9rem; padding:13px 14px;
    border-radius:4px; color:var(--ivoire);
    background:color-mix(in srgb, var(--ivoire) 8%, transparent);
    border:1px solid color-mix(in srgb, var(--ivoire) 22%, transparent);
  }
  .foot-form input::placeholder{color:color-mix(in srgb, var(--ivoire) 45%, transparent);}
  .foot-form input:focus-visible{outline:2px solid var(--cognac); outline-offset:1px;}
  .foot-form .btn{justify-content:center;}
  .foot-form .form-status{color:var(--cognac-2); font-size:.84rem;}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid color-mix(in srgb, var(--ivoire) 18%, transparent);}
  @media (max-width:700px){.foot-grid{grid-template-columns:1fr; gap:28px;}}
  footer h5{font-family:'Poppins',sans-serif; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); margin-bottom:14px; font-weight:600;}
  footer .flogo{font-family:'Fraunces',serif; font-size:1.2rem; font-weight:700; margin-bottom:10px;}
  footer p, footer a{color:color-mix(in srgb, var(--ivoire) 82%, transparent); font-size:.88rem; text-decoration:none;}
  footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
  footer a:hover{color:var(--ivoire); text-decoration:underline;}
  /* un seul trait de séparation dans le pied de page : celui de .foot-contact */
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:.78rem; color:color-mix(in srgb, var(--ivoire) 55%, transparent);}
  .foot-bottom a{color:inherit;}

  .placeholder-note{background:color-mix(in srgb, var(--cognac) 10%, transparent); border:1px dashed var(--cognac); border-radius:6px; padding:14px 18px; font-size:.82rem; color:var(--noir-2); margin:24px 0 0;}

  /* bande sombre "objectif 2028" */
  .band-dark{background:var(--noir); color:var(--ivoire); padding:96px 0;}
  .band-dark h2, .band-dark .year{color:var(--ivoire);}
  .band-dark p{color:color-mix(in srgb, var(--ivoire) 78%, transparent);}
  .band-dark .kicker{color:var(--cognac);}
  .year{font-family:'Fraunces',serif; font-size:clamp(3.4rem,11vw,7rem); line-height:.9; font-weight:600; letter-spacing:-.02em;}
  .year span{color:var(--cognac);}
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:52px; border-top:1px solid color-mix(in srgb, var(--ivoire) 22%, transparent);}
  .pillars > div{padding:32px 30px 34px; border-right:1px solid color-mix(in srgb, var(--ivoire) 22%, transparent);}
  .pillars > div:first-child{padding-left:0;}
  .pillars > div:last-child{border-right:none; padding-right:0;}
  .pillar-img{aspect-ratio:16/10; overflow:hidden; border-radius:6px; margin-bottom:20px; background:color-mix(in srgb, var(--ivoire) 10%, transparent);}
  .pillar-img img{width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(.55) brightness(.92); transition:filter .4s ease, transform .5s ease;}
  .pillars > div:hover .pillar-img img{filter:none; transform:scale(1.04);}
  .pillars h4{font-family:'Poppins',sans-serif; font-size:.95rem; font-weight:700; color:var(--ivoire); margin-bottom:10px;}
  .pillars p{font-size:.88rem; margin:0;}
  @media (max-width:760px){
    .pillars{grid-template-columns:1fr;}
    .pillars > div, .pillars > div:first-child, .pillars > div:last-child{
      border-right:none; border-bottom:1px solid color-mix(in srgb, var(--ivoire) 22%, transparent);
      padding:26px 0 30px;
    }
    .pillars > div:last-child{border-bottom:none;}
  }

  /* photo de la présentation : sa hauteur vient de la grille (voir .prose) */
  .bio-photo{min-height:320px;}

  /* boutons sur le bandeau coloré */
  .hero-band .role{color:rgba(255,255,255,.94); font-size:1.05rem; font-weight:500; margin:16px 0 0;}
  .hero-band .hero-actions{margin-top:26px;}
  .btn.on-band{background:#fff; color:var(--cognac-2); border-color:#fff;}
  .btn.on-band:hover{background:var(--ivoire); color:var(--cognac-2);}
  .btn.on-band.ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.65);}
  .btn.on-band.ghost:hover{background:rgba(255,255,255,.14); color:#fff; border-color:#fff;}

  /* frise des dates clés en slider horizontal */
  .tl-nav{display:flex; gap:8px; justify-content:flex-end; margin-bottom:16px;}
  .tl-arrow{
    width:44px; height:44px; border-radius:50%;
    border:1px solid var(--ligne); background:var(--carte); color:var(--noir);
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    transition:border-color .2s ease, color .2s ease;
  }
  .tl-arrow:hover{border-color:var(--cognac); color:var(--cognac-2);}
  .tl-track{
    display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory;
    padding:2px 2px 18px; margin:0 -2px;
    scrollbar-width:thin; scrollbar-color:var(--taupe) transparent;
  }
  .tl-track::-webkit-scrollbar{height:6px;}
  .tl-track::-webkit-scrollbar-thumb{background:var(--ligne); border-radius:99px;}
  .tl-card{
    flex:0 0 clamp(230px, 26vw, 290px); scroll-snap-align:start;
    background:var(--carte); border:1px solid var(--ligne); border-top:3px solid var(--cognac);
    border-radius:8px; padding:24px 22px 26px;
    display:flex; flex-direction:column; gap:6px;
  }
  .tl-card .yr{font-family:'Fraunces',serif; font-size:1.6rem; font-weight:600; color:var(--cognac-2); line-height:1;}
  .tl-card .yr span{font-size:1rem; color:var(--taupe);}
  .tl-card h4{font-family:'Poppins',sans-serif; font-size:.95rem; font-weight:700; margin:4px 0 2px;}
  .tl-card p{font-size:.88rem; color:var(--noir-2); margin:0;}

  /* zone d'intervention */
  .zone-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:8px;}
  @media (max-width:800px){.zone-grid{grid-template-columns:1fr; gap:26px;}}
  .zone h4{font-family:'Poppins',sans-serif; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); margin-bottom:12px;}
  .zone ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;}
  .zone li{font-size:.9rem; color:var(--noir-2); padding-left:16px; position:relative;}
  .zone li::before{content:"—"; position:absolute; left:0; color:var(--cognac); opacity:.7;}

  /* témoignages */
  .testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:860px){.testi-grid{grid-template-columns:1fr;}}
  .testi{border:1px solid var(--ligne); border-radius:8px; background:var(--carte); padding:26px 24px; display:flex; flex-direction:column; gap:14px;}
  .testi .mark{font-family:'Fraunces',serif; font-size:2rem; line-height:.6; color:var(--cognac); opacity:.55;}
  .testi p{font-size:.92rem; color:var(--noir-2); margin:0; font-style:italic;}
  .testi .who{font-size:.78rem; letter-spacing:.04em; color:var(--taupe); margin-top:auto;}
  .testi.empty{border-style:dashed; align-items:center; justify-content:center; text-align:center; min-height:170px;}
  .testi.empty p{font-style:normal; font-size:.82rem;}
  .testi .exemple{
    align-self:flex-start;
    font-family:'Poppins',sans-serif; font-size:.62rem; font-weight:700;
    letter-spacing:.12em; text-transform:uppercase;
    color:var(--cognac-2); background:color-mix(in srgb, var(--cognac) 14%, transparent);
    border-radius:999px; padding:4px 10px;
  }

  /* contact */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:start;}
  @media (max-width:800px){.contact-grid{grid-template-columns:1fr; gap:28px;}}
  .contact-lines{display:flex; flex-direction:column; gap:2px; margin-top:6px;}
  .contact-line{display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid var(--ligne); text-decoration:none; color:var(--noir);}
  /* le trait sépare les lignes entre elles : pas de trait sous la dernière */
  .contact-line:last-child{border-bottom:none;}
  .contact-line:hover{color:var(--cognac-2);}
  .contact-line svg{flex:none; stroke:var(--cognac);}
  .contact-line .lab{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); display:block; margin-bottom:2px;}
  .contact-line .val-txt{font-size:1rem; font-weight:500;}

  /* aperçus de l'accueil : chevaux et prestations */
  .mini{display:flex; flex-direction:column;}
  .mini .figure{margin-bottom:16px;}
  .mini-meta{font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--taupe); margin-bottom:4px;}
  .mini h3{font-size:1.25rem; margin-bottom:8px;}
  .mini p{font-size:.9rem; color:var(--noir-2); margin:0;}

  .offre{
    display:flex; flex-direction:column; gap:10px;
    padding:30px 26px 28px; background:var(--carte);
    border:1px solid var(--ligne); border-radius:8px;
  }
  .offre-num{
    font-family:'Fraunces',serif; font-size:1.05rem; font-weight:600; color:var(--cognac);
    padding-bottom:10px; border-bottom:1px solid var(--ligne); margin-bottom:4px;
  }
  .offre h3{font-size:1.15rem;}
  .offre p{font-size:.9rem; color:var(--noir-2); margin:0;}
  .offre a{
    margin-top:auto; padding-top:12px; font-size:.85rem; font-weight:600;
    color:var(--cognac-2); text-decoration:none;
  }
  .offre a:hover{text-decoration:underline;}

  /* visuel en tête des cartes diplômes */
  .val-visuel{
    height:330px; margin:-22px -20px 18px; border-radius:6px 6px 0 0;
    overflow:hidden; border-bottom:1px solid var(--ligne);
  }
  .val-visuel img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
  .val:hover .val-visuel img{transform:scale(1.05);}

  /* bandeau de titre des pages intérieures */
  .page-band{background:linear-gradient(120deg, var(--cognac-2), var(--cognac)); padding:52px 0 46px;}
  /* bandeau illustre : la photo remplit le bloc, un voile garde le titre lisible */
  .page-band.has-photo{position:relative; overflow:hidden; padding:104px 0 88px; background:var(--noir);}
  .page-band-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
  .page-band.has-photo::after{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to right, rgba(10,6,3,.82) 0%, rgba(10,6,3,.55) 55%, rgba(10,6,3,.35) 100%);}
  .page-band.has-photo > .wrap{position:relative; z-index:2;}
  @media (max-width:640px){ .page-band.has-photo{padding:72px 0 60px;} }
  .page-band .kicker{color:#fff; opacity:.85;}
  /* titre de page : taille fixe par palier, interlignage resserré (les titres
     de bandeau font souvent deux lignes, 1.6 hérité du corps les espaçait trop) */
  .page-band h1{color:#fff; font-size:3rem; line-height:1.15; margin-top:8px;}
  @media (max-width:900px){.page-band h1{font-size:2.4rem; line-height:1.2;}}
  @media (max-width:600px){.page-band h1{font-size:1.9rem; line-height:1.25;}}

  /* navigation vers les autres pages, en bas de chaque page */
  .next-pages{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--ligne); border-top:1px solid var(--ligne);}
  @media (max-width:700px){.next-pages{grid-template-columns:1fr;}}
  .next-pages a{
    display:flex; flex-direction:column; gap:5px;
    background:var(--ivoire); padding:36px 32px 40px;
    text-decoration:none; color:var(--noir);
  }
  .next-pages a:hover{background:var(--ivoire-2);}
  .np-lab{font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe); font-weight:600;}
  .np-title{font-family:'Fraunces',serif; font-size:1.35rem; font-weight:600;}
  .next-pages a:hover .np-title{color:var(--cognac-2);}
  .np-desc{font-size:.86rem; color:var(--noir-2);}

  /* sections empilées : chaque section se fige et recule pendant que la suivante la recouvre */
  .stack{position:relative;}
  .stack:not(.band-dark){background:var(--ivoire);}
  .js-stack .stack{position:sticky; will-change:transform,filter; overflow:hidden;}

  /* curseur personnalisé */
  .cursor-dot{
    position:fixed; top:0; left:0; z-index:300;
    width:24px; height:24px; border-radius:50%;
    border:1.5px solid var(--cognac);
    pointer-events:none; opacity:0;
    transform:translate3d(-100px,-100px,0);
    transition:width .22s ease, height .22s ease, background-color .22s ease, opacity .3s ease;
  }
  .cursor-dot.on{opacity:.9;}
  .cursor-dot.hover{width:48px; height:48px; background:color-mix(in srgb, var(--cognac) 20%, transparent);}
  @media (hover:none),(pointer:coarse){.cursor-dot{display:none;}}

  /* parallaxe des images dans leur cadre */
  .figure:not(.logo-tile){overflow:hidden;}
  .js-par .figure:not(.logo-tile) img{will-change:transform;}

  .reveal{transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
  .reveal.pre{opacity:0; transform:translateY(22px);}
  .reveal.in-view{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal, .reveal.pre{transition:none !important; opacity:1 !important; transform:none !important;}
    .hero-figure{transform:none !important; filter:none !important;}
    .js-stack .stack{position:relative !important; transform:none !important; filter:none !important;}
    .cursor-dot{display:none !important;}
  }

  /* ---------------------------------------------------------------
     Ajouts propres à WordPress : contenu saisi dans l'éditeur,
     pagination, lien d'évitement et images de la médiathèque.
     --------------------------------------------------------------- */

  /* texte libre de l'éditeur (mentions légales, pages ajoutées) */
  .prose-page{}
  .prose-page h2{font-size:1.5rem; margin:38px 0 14px;}
  .prose-page h3{font-size:1.15rem; margin:28px 0 10px;}
  .prose-page h2:first-child, .prose-page h3:first-child{margin-top:0;}
  .prose-page p{margin:0 0 16px;}
  .prose-page ul, .prose-page ol{margin:0 0 18px; padding-left:20px;}
  .prose-page li{margin-bottom:7px;}
  .prose-page a{color:var(--cognac-2);}
  .prose-page img{border-radius:4px; margin:8px 0 20px;}
  .prose-page blockquote{
    margin:24px 0; padding:18px 24px;
    border-left:2px solid var(--cognac); background:var(--ivoire-2);
    font-family:'Fraunces',serif; font-size:1.05rem;
  }
  .prose-page table{width:100%; border-collapse:collapse; margin:0 0 22px;}
  .prose-page th, .prose-page td{padding:10px 12px; border-bottom:1px solid var(--ligne); text-align:left;}

  /* pagination des listes d'articles */
  .pagination .nav-links{display:flex; gap:8px; flex-wrap:wrap;}
  .pagination .page-numbers{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:38px; height:38px; padding:0 10px;
    border:1px solid var(--ligne); border-radius:3px;
    font-size:.85rem; text-decoration:none; color:var(--noir);
  }
  .pagination .page-numbers.current, .pagination .page-numbers:hover{
    background:var(--cognac); border-color:var(--cognac); color:#fff;
  }

  /* lien d'évitement : masqué jusqu'à la prise de focus au clavier */
  .sr-only-focusable{
    position:absolute; left:-9999px; top:0; z-index:400;
    background:var(--noir); color:var(--ivoire);
    padding:12px 18px; font-size:.85rem; text-decoration:none;
  }
  .sr-only-focusable:focus{left:8px; top:8px;}

  /* images insérées par WordPress dans un cadre de la maquette */
  .figure img, .val-visuel img, .pillar-img img{max-width:100%;}

  /* ---------------------------------------------------------------
     Formulaire Elementor inséré dans le pied de page.

     Elementor pose ses propres couleurs via le « kit » global, avec une
     spécificité supérieure à la nôtre (.elementor-111 .elementor-element-…).
     D'où les !important, cantonnés à ce seul conteneur : ailleurs, le kit
     Elementor garde la main.
     --------------------------------------------------------------- */
  footer .foot-form-elementor .elementor-section,
  footer .foot-form-elementor .elementor-container,
  footer .foot-form-elementor .elementor-widget-wrap,
  footer .foot-form-elementor .elementor-column{
    padding:0 !important; margin:0 !important; width:100% !important;
  }
  footer .foot-form-elementor .elementor-form{display:flex; flex-direction:column;}
  footer .foot-form-elementor .elementor-form-fields-wrapper{
    display:flex; flex-direction:column; gap:12px; margin:0;
  }
  footer .foot-form-elementor .elementor-field-group{
    display:flex; flex-direction:column; align-items:stretch; gap:6px;
    width:100% !important; max-width:100%; padding:0 !important; margin:0;
  }
  /* Elementor masque les libellés hors écran : on les remet, la maquette en a. */
  footer .foot-form-elementor .elementor-field-label{
    position:static !important; width:auto !important; height:auto !important;
    margin:0 !important; padding:0 !important; overflow:visible !important;
    clip:auto !important; clip-path:none !important;
    font-family:'Poppins',sans-serif; font-size:.82rem; font-weight:600;
    color:color-mix(in srgb, var(--ivoire) 85%, transparent);
  }
  footer .foot-form-elementor input[type="text"],
  footer .foot-form-elementor input[type="email"],
  footer .foot-form-elementor input[type="tel"],
  footer .foot-form-elementor textarea,
  footer .foot-form-elementor select,
  footer .foot-form-elementor .elementor-field-textual{
    font-family:'Poppins',sans-serif !important; font-size:.9rem !important;
    line-height:1.5 !important; padding:13px 14px !important;
    border-radius:4px !important; width:100% !important;
    color:var(--ivoire) !important;
    background-color:color-mix(in srgb, var(--ivoire) 8%, transparent) !important;
    border:1px solid color-mix(in srgb, var(--ivoire) 22%, transparent) !important;
    box-shadow:none !important;
  }
  footer .foot-form-elementor textarea{min-height:104px !important; resize:vertical;}
  footer .foot-form-elementor ::placeholder{
    color:color-mix(in srgb, var(--ivoire) 45%, transparent) !important; opacity:1;
  }
  footer .foot-form-elementor .elementor-field-textual:focus{
    outline:2px solid var(--cognac); outline-offset:1px;
  }
  footer .foot-form-elementor .elementor-field-type-submit{margin-top:4px;}
  footer .foot-form-elementor .elementor-button[type="submit"],
  footer .foot-form-elementor button[type="submit"]{
    font-family:'Poppins',sans-serif !important; font-size:.84rem !important;
    font-weight:600 !important; letter-spacing:.02em;
    padding:14px 22px !important; width:100% !important; min-height:0;
    border:none !important; border-radius:3px !important; cursor:pointer;
    background-color:var(--cognac) !important; color:#fff !important;
    transition:background-color .25s ease;
  }
  footer .foot-form-elementor button[type="submit"]:hover{
    background-color:var(--cognac-2) !important;
  }
  footer .foot-form-elementor .elementor-message{
    font-size:.84rem; margin-top:6px;
    color:color-mix(in srgb, var(--ivoire) 80%, transparent);
  }
  footer .foot-form-elementor .elementor-message.elementor-message-success{color:var(--cognac-2);}
  footer .foot-form-elementor .elementor-message.elementor-message-danger{color:#E0A08A;}

  /* signature de l'agence, en bas du pied de page */
  .foot-bottom .foot-left{display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px;}
  .signature-agence{
    display:inline-flex; align-items:center; gap:9px;
    text-decoration:none; color:inherit;
    font-size:.78rem; font-weight:400; letter-spacing:normal; text-transform:none;
    transition:color .2s ease;
  }
  .signature-agence:hover{color:var(--cognac);}
  .signature-agence img{width:34px; height:34px; object-fit:contain; flex:none;}
  .signature-agence .coeur{color:var(--cognac); font-size:.85em; margin:0 2px;}
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }

  /* petits écrans : les boutons prennent toute la largeur, cible tactile plus sûre */
  @media (max-width:500px){
    .btn{width:100%; justify-content:center; padding-top:15px; padding-bottom:15px;}
    .hero-actions{flex-direction:column; align-items:stretch; gap:10px;}
    .hero-figure .pullquote .hero-actions .btn{flex:none;}
    .tl-nav{justify-content:flex-start;}
  }

  /* barre du bas : signature à gauche, liens légaux et réseaux à droite */
  .foot-bottom .foot-right{display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px;}
  .foot-bottom .foot-right .socials{margin-top:0;}
  .foot-bottom .foot-right .socials a{width:30px; height:30px;}
  /* sous 500 px : seule la barre du bas est centrée.
     Les coordonnées restent alignées à gauche : centrées, une adresse sur
     deux lignes et un numéro se lisent moins bien. */
  @media (max-width:500px){
    .foot-bottom{flex-direction:column; align-items:center; gap:14px;}
    .foot-bottom .foot-left{flex-direction:column; align-items:center; gap:12px;}
    .foot-bottom .foot-right{justify-content:center;}
    .foot-legal{justify-content:center;}
    .signature-agence{justify-content:center;}
    .foot-form-elementor .elementor-field-label{text-align:left;}
  }

  /* liens légaux, à la suite de la signature de l'agence */
  .foot-legal{display:inline-flex; align-items:center; flex-wrap:wrap; gap:6px 14px;}
  .foot-legal a{text-decoration:none;}
  .foot-legal a{font-size:.78rem; font-weight:400; transition:color .2s ease;}
  .foot-legal a:hover{color:var(--cognac);}
  .foot-legal a + a::before{content:"·"; margin-right:14px; opacity:.6;}

  /* ---------------------------------------------------------------
     Carnet de route
     --------------------------------------------------------------- */
  .voie{display:flex; flex-direction:column; align-items:flex-start; gap:12px;}
  .voie h4{margin:0;}
  .voie p{flex:1;}
  .voie .btn{margin-top:4px;}
  .voie-ico{
    display:inline-flex; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:50%; flex:none;
    color:var(--cognac-2);
    background:color-mix(in srgb, var(--cognac) 12%, transparent);
    border:1px solid color-mix(in srgb, var(--cognac) 35%, transparent);
  }
  .voie-tel{margin-top:28px; font-size:.9rem; color:var(--noir-2);}
  .voie-tel a{color:var(--cognac-2); font-weight:600; text-decoration:none;}

  .agenda-liste{display:flex; flex-direction:column; border-top:1px solid var(--ligne);}
  .agenda-item{
    display:grid; grid-template-columns:180px 1fr; gap:24px;
    padding:22px 0; border-bottom:1px solid var(--ligne); align-items:baseline;
  }
  .agenda-date{
    font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600;
    color:var(--cognac-2);
  }
  .agenda-item h4{font-family:'Poppins',sans-serif; font-size:1rem; font-weight:600; margin:0;}
  .agenda-item p{margin:4px 0 0; font-size:.88rem; color:var(--noir-2);}
  @media (max-width:600px){
    .agenda-item{grid-template-columns:1fr; gap:6px;}
  }

  .agenda-vide{
    display:flex; flex-direction:column; align-items:flex-start; gap:16px;
    background:var(--ivoire-2); border:1px dashed var(--ligne);
    border-radius:6px; padding:32px;
  }
  .agenda-vide p{margin:0; color:var(--noir-2);}

  .reseaux-liens{display:flex; flex-wrap:wrap; gap:14px; margin-top:8px;}

  /* ---------------------------------------------------------------
     Retour en haut & bandeau cookies
     --------------------------------------------------------------- */
  .haut{
    position:fixed; right:22px; bottom:22px; z-index:60;
    width:46px; height:46px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--cognac-2); color:#fff;
    border:1px solid var(--cognac-2); cursor:pointer;
    opacity:0; transform:translateY(10px);
    transition:opacity .25s ease, transform .25s ease, background-color .25s ease;
    box-shadow:0 6px 20px rgba(24,20,15,.22);
  }
  .haut.on{opacity:1; transform:none;}
  .haut:hover{background:var(--cognac);}
  @media (max-width:500px){
    .haut{right:14px; bottom:14px; width:42px; height:42px;}
  }

  .cookies{
    position:fixed; left:15px; right:15px; bottom:15px; z-index:200;
    max-width:640px; margin:0 auto;
    background:var(--noir); color:var(--ivoire);
    border:1px solid color-mix(in srgb, var(--ivoire) 20%, transparent);
    border-radius:6px; padding:22px 24px;
    box-shadow:0 12px 40px rgba(10,6,3,.35);
    opacity:0; transform:translateY(14px);
    transition:opacity .3s ease, transform .3s ease;
  }
  .cookies.on{opacity:1; transform:none;}
  .cookies p{
    margin:0 0 16px; font-size:.85rem; line-height:1.6;
    color:color-mix(in srgb, var(--ivoire) 82%, transparent);
  }
  .cookies a{color:var(--cognac); text-decoration:underline;}
  .cookies-actions{display:flex; flex-wrap:wrap; gap:10px;}
  .cookies-actions .btn{font-size:.8rem; padding:10px 18px;}
  .cookies-actions .btn.ghost{color:var(--ivoire); border-color:color-mix(in srgb, var(--ivoire) 40%, transparent);}
  .cookies-actions .btn.ghost:hover{border-color:var(--cognac); color:var(--cognac);}
  @media (max-width:500px){
    .cookies{padding:18px;}
    .cookies-actions{flex-direction:column;}
    .cookies-actions .btn{width:100%; justify-content:center;}
    /* le bouton de retour se décale pour ne pas passer sous le bandeau */
    .cookies.on ~ .haut, .haut{bottom:14px;}
  }

  /* ---------------------------------------------------------------
     Prestations : blocs alternés image / texte
     --------------------------------------------------------------- */
  .alterne{display:flex; flex-direction:column; gap:72px;}
  .alterne-bloc{
    display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center;
  }
  .alterne-bloc.inverse .alterne-img{order:2;}
  .alterne-img{aspect-ratio:4/3;}
  .alterne-texte h3{font-size:1.5rem; margin:6px 0 16px;}
  .alterne-texte p{margin:0 0 14px;}
  .alterne-texte ul{margin:0 0 16px; padding-left:18px;}
  .alterne-texte li{margin-bottom:6px; font-size:.95rem; color:var(--noir-2);}
  .alterne-num{
    font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600;
    color:var(--cognac); line-height:1;
  }
  .alterne-texte .btn{margin-top:6px;}
  @media (max-width:900px){
    .alterne{gap:48px;}
    .alterne-bloc{grid-template-columns:1fr; gap:22px;}
    .alterne-bloc.inverse .alterne-img{order:0;}
  }

  /* variante claire du bloc « Pourquoi pas vous » (page Partenaires) */
  .cta-dark.cta-clair{background:var(--ivoire-2); color:var(--noir);}
  .cta-dark.cta-clair h2{color:var(--noir);}
  .cta-dark.cta-clair p{color:var(--noir-2);}
  .cta-dark.cta-clair .kicker{color:var(--cognac-2);}
  .cta-dark.cta-clair .cta-list li{color:var(--noir);}
  .cta-dark.cta-clair .cta-list .ico{
    color:var(--cognac-2);
    background:color-mix(in srgb, var(--cognac) 12%, transparent);
    border-color:color-mix(in srgb, var(--cognac) 38%, transparent);
  }

  /* portraits de chevaux : une ligne sur deux inverse photo et texte */
  .horse.inverse .horse-img{order:2;}
  @media (max-width:900px){ .horse.inverse .horse-img{order:0;} }

  /* photo d'ambiance de l'équipe, page L'Écurie */
  .equipe-photo{aspect-ratio:21/9; margin-bottom:44px;}
  @media (max-width:700px){ .equipe-photo{aspect-ratio:16/10; margin-bottom:30px;} }

  /* format fixe pour les photos de portrait : une bande verticale tiree
     dune source de 640 px serait floue et mal recadree. */
  .horse .horse-img{aspect-ratio:4/3;}

  /* une section qui se termine par un bandeau pleine largeur n'a pas besoin
     de son padding bas : sinon un vide traîne avant le pied de page */
  .sect.sans-bas{padding-bottom:0;}
