/* ============
   Palette de couleurs
   ============ */
:root {
  --brand-green: #2e7d5a;   /* vert naturel */
  --brand-gray:  #2b2f31;   /* gris foncé */
  --brand-light: #f6f7f8;   /* fond clair */
  --radius: .75rem;
  --shadow: 0 4px 12px rgba(0,0,0,.08);
  --accent: #2f8f2f;  /* Vert principal - nature, confiance */
  --dark:   #333333;  /* Gris foncé - sobriété, modernité */
  --light:  #f9f9f9;  /* Fond clair neutre */
  --brown:  #d2b48c;  /* Marron clair - chaleur, naturel */
}

.test-accent { background-color: var(--accent); color: white; }
.test-dark   { background-color: var(--dark);   color: white; }
.test-light  { background-color: var(--light); color: var(--dark); }
.test-brown  { background-color: var(--brown); color: var(--dark); }


/* ============
   Base
   ============ */
html, body { height:100%; }
body {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--brand-light);
  color: var(--brand-gray);
  line-height: 1.6;
  margin: 0;
}

/* Liens */
a { color: var(--brand-green); text-decoration: none; }
a:hover { color: #1d5b40; text-decoration: underline; }

/* ============
   Header (gris foncé + halo)
   ============ */
/* APRES : ne cible que la barre de nav du site */
.site-header {
  background: var(--brand-gray);
  box-shadow: var(--shadow);
}
.site-header .navbar-brand { color: #fff; }
.site-header .nav-link { color: #ddd; font-weight: 500; }
.site-header .nav-link:hover { color: var(--brand-green); }

/* Lien actif dans la navbar */
.navbar .nav-link.active { 
  color: var(--brand-green) !important;
  text-decoration: underline;
}


/* ============
   Footer (gris foncé)
   ============ */
/* ===== Footer ===== */
.site-footer{
  background: var(--brand-gray);
  color: #e9ecef;
  box-shadow: var(--shadow);
}
.site-footer a{
  color: #e9ecef;
  text-decoration: none;
}
.site-footer a:hover{
  color: var(--brand-green);
  text-decoration: underline;
}

.footer-brand .brand-name{
  font-weight: 700; font-size: 1.05rem; color:#fff;
}
.footer-brand .brand-sub{ color:#cfd4d9; }

.footer-contact .label{ color:#cfd4d9; margin-right:.35rem; }

.footer-links li + li{ margin-top:.25rem; }
.footer-links a{ display:inline-block; padding:.1rem 0; }

.footer-sep{ border-color: rgba(255,255,255,.12); }

.footer-mini{ color:#cfd4d9; }
.footer-mini:hover{ color:#fff; }


/* ============
   Titres
   ============ */
h1, h2, h3 {
  color: var(--brand-gray);
  font-weight: 600;
}
.hero-title {
  color: var(--brand-green);
  letter-spacing: .4px;
}

/* ============
   Boutons
   ============ */
.btn-success {
  background: var(--brand-green);
  border-color: var(--brand-green);
}
.btn-success:hover {
  background: #25684a;
  border-color: #25684a;
}

/* Forcer navbar sombre */
header.navbar-dark,
header .navbar {
  background-color: var(--brand-gray) !important;
}

header .navbar-brand,
header .nav-link {
  color: #eee !important;
}

header .nav-link:hover {
  color: var(--brand-green) !important;
}


/* ===== Accueil : blocs ===== */
.home-section { margin-top: 2rem; }
.home-section .section-head { margin-bottom: .75rem; }
.home-section .section-head .h3 { color: var(--brand-gray); }

/* Cartes mini (chatons / actualités) */
.mini-card{
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem; box-shadow: var(--shadow);
  padding:1rem;
}
.mini-card h4{ font-size:1.05rem; margin:0 0 .25rem 0; color:#222; }
.mini-meta{ color:#6c757d; font-size:.9rem; margin-bottom:.35rem; }

/* Ligne Nom / ligne Couleur (anti-chevauchement) */
.line-name{ font-weight:700; color:#222; }
.line-coat{ color:#6c757d; }

/* Statuts chatons */
.cat-status { display:inline-block; font-size:.8rem; padding:.2rem .55rem; border-radius:.5rem; font-weight:600; }
.cat-status.disponible{ background:#e6f4ee; color:var(--brand-green); border:1px solid rgba(46,125,90,.35); }
.cat-status.option    { background:#fff7e6; color:#b45309; border:1px solid rgba(180,83,9,.35); }
.cat-status.reserve   { background:#fee2e2; color:#b91c1c; border:1px solid rgba(185,28,28,.35); }

/* Teasers reproducteurs */
.teaser-card{
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem; box-shadow: var(--shadow);
  padding:1rem 1.25rem;
}

/* Bandeau CTA final */
.cta-band{
  background: linear-gradient(135deg, rgba(46,125,90,.12), rgba(43,47,49,.10));
  border:1px solid rgba(0,0,0,.06); border-radius:.75rem; box-shadow: var(--shadow);
  padding:1.25rem 1.5rem; margin-top:2rem;
}
.cta-band h3{ margin:0 0 .25rem 0; color:var(--brand-gray); }

/* ===== Section card manquante (habillage des blocs) ===== */
.section-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem;
  box-shadow: var(--shadow);
  padding:1rem 1.25rem;
}

/* Titres de section plus lisibles */
.home-section h2.h3{
  font-weight:700;
  letter-spacing:.2px;
}

/* Espacement vertical plus confortable entre éléments */
.home-section .row.g-3 > [class*="col-"]{ display:flex; }
.mini-card, .teaser-card{ width:100%; }

/* Renforcer la lisibilité des mini-cards */
.mini-card{ line-height:1.35; }
.mini-card .line-name{ font-size:1.05rem; }
.mini-card .line-coat{ font-size:.95rem; }

/* Accrocher un peu plus les “teasers reproducteurs” */
.teaser-card h4{ font-weight:700; }
.teaser-card .mini-meta{ font-size:.9rem; color:#6c757d; }

/* Séparateurs doux entre sections (optionnel) */
.home-section{ padding-top:.25rem; }
.home-section + .home-section{
  border-top:1px solid rgba(0,0,0,.05);
  margin-top:2rem; padding-top:2rem;
}

/* ===== Placeholders visuels (maquette) ===== */
.ph-img { background: #e9ecef; border:1px solid rgba(0,0,0,.06); border-radius:.5rem; }
.ph-banner { width:100%; aspect-ratio: 16 / 9; }         /* large bandeau image */
.ph-thumb  { width:82px; height:82px; }                   /* petite vignette carrée */
.ph-line   { height:12px; background:#e9ecef; border-radius:6px; }
.ph-line.sm{ height:10px; }
.ph-line.w50{ width:50%; } .ph-line.w70{ width:70%; } .ph-line.w30{ width:30%; }

.home-section .h3 {
  position: relative;
  padding-bottom: .35rem;
}
.home-section .h3::after{
  content:""; position:absolute; left:0; bottom:0;
  width:52px; height:3px; border-radius:2px; background: var(--brand-green);
}

/* ===== Hero Banner ===== */
/* ===== HERO FULL-WIDTH (1920x579) ===== */
.hero-full {
  position: relative;
  width: 100%;
  /* collée sous la nav : pas d'espace au-dessus */
  margin: 0;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

/* zone media au bon ratio, responsive */
.hero-full .media {
  position: relative;
  width: 100%;
  aspect-ratio: 1920 / 579;     /* navigateurs modernes */
  overflow: hidden;
}
.hero-full .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;            /* couvre toute la largeur sans déformer */
  display: block;
}

/* fallback anciens navigateurs sans aspect-ratio */
@supports not (aspect-ratio: 1 / 1) {
  .hero-full .media { height: 0; padding-top: calc(579 / 1920 * 100%); }
  .hero-full .media img { position: absolute; top: 0; left: 0; }
}

/* overlay + contenu */
.hero-full .overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.2));
  pointer-events: none;
}
.hero-full .content {
  position: absolute; inset: 0;
  display: grid; place-items: center; /* centre le bloc texte */
  text-align: center;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0,0,0,.45);
  padding: 1rem;
}
.hero-full .content h1 { font-size: clamp(1.6rem, 3vw, 2.25rem); margin-bottom: .25rem; }
.hero-full .content p  { font-size: clamp(1rem, 1.8vw, 1.15rem); margin-bottom: .75rem; }

/* boutons sur fond sombre */
.hero-full .btn-outline-light { color:#fff; border-color:rgba(255,255,255,.8); }
.hero-full .btn-outline-light:hover { background:rgba(255,255,255,.12); border-color:#fff; }

/* === HERO : contraste + position bas + responsive === */

/* On fonce un poil l’overlay pour mieux lire le texte */
.hero-full .overlay{
  background: linear-gradient(
    180deg,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.35) 60%,
    rgba(0,0,0,.25) 100%
  );
}

/* On place le contenu en bas de la bannière */
.hero-full .content{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;   /* colle en bas */
  align-items:center;
  padding: 1rem 1rem 1.5rem;  /* espace au bas pour les boutons */
}

/* Pastille verte derrière le titre (contraste) */
.hero-full .content .hero-title{
  display:inline-block;
  background: rgba(46,125,90,.88); /* vert de la charte, semi-opaque */
  color:#fff;
  padding: .35rem .75rem;
  border-radius: .5rem;
  margin-bottom:.5rem;
}

/* Sous-titre un peu plus lisible */
.hero-full .content p{
  background: rgba(0,0,0,.35);
  color:#fff;
  padding:.25rem .5rem;
  border-radius:.375rem;
  margin-bottom:.75rem;
}

/* Boutons : taille mini pour la tenue visuelle */
.hero-full .content .btn{ min-width: 180px; }

.hero-full .content .hero-title {
  font-size: 1.6rem;
  font-weight: 600;
  color: #fff;
  background: rgba(0,0,0,.45); /* fond sombre transparent */
  padding: .5rem .75rem;
  border-radius: .4rem;
  max-width: 900px;
}


/* ====== Responsive ====== */

/* VERSION MOBILE SIMPLIFIÉE */
@media (max-width: 575.98px){

  /* on masque le sous-titre et le bouton "Voir les chatons" */
  .hero-full .content p,
  .hero-full .content .btn.btn-success {
    display: none !important;
  }

  /* on recentre le bloc restant */
  .hero-full .content{
    justify-content: flex-end;
    gap: .5rem;
    padding: .5rem 1rem 1rem;
  }

  /* Titre juste au-dessus du bouton "Découvrir la chatterie" */
  .hero-full .content .hero-title{
    font-size: 1.25rem;
    background: rgba(46,125,90,.85);
    color:#fff;
    padding: .25rem .75rem;
    border-radius: .4rem;
    margin: 0;
  }

  /* bouton unique bien centré */
  .hero-full .content .btn{
    width: auto;
    min-width: 180px;
    max-width: 280px;
  }
}

/* VERSION MOBILE ULTRA ÉPURÉE */
@media (max-width: 575.98px){

  /* On masque le titre, le sous-titre et le bouton "Voir les chatons" */
  .hero-full .content .hero-title,
  .hero-full .content p,
  .hero-full .content .btn.btn-success {
    display: none !important;
  }

  /* On garde seulement le bouton "Découvrir la chatterie" centré en bas */
  .hero-full .content{
    justify-content: flex-end;
    padding: .5rem 1rem 1rem;
  }

  .hero-full .content .btn.btn-outline-light {
    width: auto;
    min-width: 180px;
    max-width: 280px;
  }
}

/* VERSION MOBILE + TABLETTE ÉPURÉE */
@media (max-width: 991.98px){

  /* On masque le titre, le sous-titre et le bouton "Voir les chatons" */
  .hero-full .content .hero-title,
  .hero-full .content p,
  .hero-full .content .btn.btn-success {
    display: none !important;
  }

  /* On garde uniquement le bouton "Découvrir la chatterie" */
  .hero-full .content{
    justify-content: flex-end;
    padding: .5rem 1rem 1.25rem;
  }

  .hero-full .content .btn.btn-outline-light {
    width: auto;
    min-width: 180px;
    max-width: 280px;
  }
}





/* ===== Sections & sommaire (Conditions d’adoption) ===== */
.toc {
  position: sticky;
  top: 1rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  padding: 1rem;
}
.toc h2 {
  font-size: 1.05rem;
  margin-bottom: .75rem;
  color: var(--brand-gray);
}
.toc a { display: block; padding: .25rem 0; color: var(--brand-gray); }
.toc a:hover { color: var(--brand-green); text-decoration: none; }

.section-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  padding: 1.25rem;
}
.section-card + .section-card { margin-top: 1rem; }

.section-title {
  font-size: 1.35rem;
  margin-bottom: .5rem;
  color: var(--brand-gray);
}
.kv {
  background: #f0f4f2;
  border-left: 4px solid var(--brand-green);
  padding: .75rem 1rem;
  border-radius: .5rem;
  margin-bottom: .75rem;
}

/* ===== Timeline (Naissance → Départ) ===== */
.timeline {
  position: relative;
  margin-left: .75rem;
  padding-left: 1.25rem;
  border-left: 3px solid rgba(46,125,90,.25);
}
.timeline .step {
  position: relative;
  margin-bottom: 1rem;
}
.timeline .step::before {
  content: "";
  position: absolute;
  left: -1.64rem;
  top: .35rem;
  width: .8rem;
  height: .8rem;
  background: var(--brand-green);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(46,125,90,.2);
}

.badge-phase {
  display: inline-block;
  background: #e6f0eb;
  color: var(--brand-green);
  border: 1px solid rgba(46,125,90,.35);
  border-radius: .5rem;
  padding: .2rem .5rem;
  font-size: .85rem;
  font-weight: 600;
  margin-bottom: .4rem;
}


/* ===== A propos ===== */
.about-section {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  padding: 1.25rem;
  margin-bottom: 1rem;
}
.about-section h2 {
  font-size: 1.35rem;
  margin-bottom: .5rem;
  color: var(--brand-gray);
}

/* ===== Contact ===== */
.contact-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  padding: 1.5rem;
}

/* ===== Retraités / Chatons : cartes ===== */
.cat-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.cat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}
.cat-card img {
  width: 100%;
  height: auto;
  display: block;
}
.cat-card-body {
  padding: 1rem;
}
.cat-status {
  display: inline-block;
  font-size: .85rem;
  padding: .2rem .6rem;
  border-radius: .5rem;
  font-weight: 600;
}
.cat-status.disponible {
  background: #e6f4ee;
  color: var(--brand-green);
  border: 1px solid rgba(46,125,90,.4);
}
.cat-status.reserve {
  background: #fdf1f1;
  color: #c62828;
  border: 1px solid rgba(198,40,40,.4);
}

/* ===== Fiches reproducteurs ===== */
.breeder-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.breeder-card .head {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid rgba(0,0,0,.06);
  display: flex; align-items: center; gap: .75rem;
}
.breeder-tag {
  display: inline-block;
  padding: .2rem .6rem;
  border-radius: .5rem;
  font-size: .8rem; font-weight: 600;
  color: #fff; background: var(--brand-green);
}
.breeder-tag.male    { background: #2563eb; }  /* bleu discret */
.breeder-tag.femelle { background: #c026d3; }  /* violet discret */

.breeder-card .body {
  padding: 1.25rem;
}
.meta {
  list-style: none; padding: 0; margin: 0 0 .75rem 0;
  display: grid; grid-template-columns: 1fr; gap: .25rem .75rem;
}
.meta li {
  display: grid; grid-template-columns: 180px 1fr; gap: .75rem;
  align-items: start;
}
.meta .k { color: #555; font-weight: 600; }
.meta .v { color: var(--brand-gray); }

.badge-test {
  display: inline-block; font-size: .75rem; font-weight: 600;
  background: #e6f0eb; color: var(--brand-green);
  border: 1px solid rgba(46,125,90,.35);
  border-radius: .5rem; padding: .15rem .5rem; margin-right: .35rem; margin-bottom: .35rem;
}

.note {
  background: #f8faf9; border: 1px dashed rgba(46,125,90,.35);
  padding: .75rem 1rem; border-radius: .5rem;
}

/* Ratio image pour carrousel */
.ratio-16x9 img {
  object-fit: cover;
}


/* ===== Actualités ===== */
.news-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem;
  box-shadow:var(--shadow);
  padding:1rem 1.25rem;
}
.news-meta{
  display:flex; gap:.75rem; align-items:center;
  color:#6c757d; font-size:.9rem;
  margin-bottom:.35rem;
}
.badge-news{ display:inline-block; font-weight:600; border-radius:.5rem; padding:.2rem .55rem; font-size:.75rem; }
.badge-mariage{ background:#e6f0eb; color:var(--brand-green); border:1px solid rgba(46,125,90,.35); }
.badge-portee{ background:#eef2ff; color:#3730a3; border:1px solid rgba(55,48,163,.35); }
.badge-arrivee{ background:#fff7ed; color:#9a3412; border:1px solid rgba(154,52,18,.35); }
.section-news + .section-news{ margin-top:2rem; }
.news-title{ margin:0 0 .25rem 0; font-size:1.1rem; }

.news-card img {
  width: 100%;
  height: auto;
  border-radius: .5rem;
  margin-bottom: .75rem;
  display: block;
}

/* Badges thématiques */
.badge-soft { display:inline-block; font-weight:600; border-radius:.5rem; padding:.2rem .55rem; font-size:.75rem; }
.badge-info-soft    { background:#e6f4ff; color:#0b5ed7; border:1px solid rgba(13,110,253,.25); }
.badge-warning-soft { background:#fff7e6; color:#b45309; border:1px solid rgba(180,83,9,.25); }
.badge-danger-soft  { background:#fee2e2; color:#b91c1c; border:1px solid rgba(185,28,28,.25); }
.badge-success-soft { background:#e6f4ee; color:var(--brand-green); border:1px solid rgba(46,125,90,.35); }

/* Témoignages */
.testimonial {
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem; box-shadow:var(--shadow);
  padding:1rem 1.25rem;
}
.testimonial .author { font-weight:600; color:var(--brand-gray); }
.testimonial .meta   { color:#6c757d; font-size:.9rem; }

/* ===== Mentions légales ===== */
.legal-doc {
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem;
  box-shadow:var(--shadow);
  padding: clamp(1rem, 2vw, 1.5rem);
}
.legal-doc .doc-head {
  border-bottom:1px solid rgba(0,0,0,.06);
  margin-bottom:1rem;
  padding-bottom:.75rem;
}
.legal-doc h1 { font-size:1.75rem; margin:0; color:var(--brand-gray); }
.legal-doc .updated { color:#6c757d; font-size:.95rem; }

.legal-body { max-width: 75ch; }
.legal-body h2 { font-size:1.25rem; margin-top:1.25rem; margin-bottom:.5rem; color:var(--brand-gray); }
.legal-body h3 { font-size:1.05rem; margin-top:1rem; margin-bottom:.35rem; color:var(--brand-gray); }
.legal-body p  { margin: .5rem 0; color:#333; }
.legal-body ul, .legal-body ol { padding-left:1.25rem; margin:.5rem 0 .75rem; }
.legal-body li { margin:.25rem 0; }
.legal-body a { color:var(--brand-green); text-decoration: underline; }
.legal-note {
  background:#f8faf9; border:1px dashed rgba(46,125,90,.35);
  border-radius:.5rem; padding:.75rem 1rem; margin:.75rem 0;
}

/* ===== Chatons ===== */

/* Onglets portées */
.portee-tabs .nav-link { font-weight: 600; }
.portee-tabs .nav-link.active { color: #fff !important; background: var(--brand-green); }

/* Bloc mariage (parents + infos) */
.mariage {
  background: #fff; border: 1px solid rgba(0,0,0,.06);
  border-radius: .75rem; box-shadow: var(--shadow);
  padding: 1rem 1.25rem;
}
.parent-thumb {
  width: 200px; height: 200px; min-width: 200px; min-height: 200px;
  border-radius: 1rem; overflow: hidden; box-shadow: var(--shadow);
  border: 1px solid rgba(0,0,0,.06);
}
.parent-thumb img { width: 100%; height: 100%; object-fit: cover; display:block; }
.mariage-info .k { width: 220px; color:#555; font-weight:600; display:inline-block; }

/* Grille cartes chatons */
.kitten-card {
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:.75rem; box-shadow:var(--shadow);
  overflow:hidden; display:flex; flex-direction:column; height:100%;
  transition: transform .2s ease, box-shadow .2s ease;
}
.kitten-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }

.kitten-photo {
  width: 100%;
  aspect-ratio: 1 / 1;         /* carré 1:1 */
  background: #f2f2f2;
}
.kitten-photo img {
  width: 100%; height: 100%; object-fit: cover; display:block;
}

/* Corps de carte */
.kitten-body { padding: .9rem 1rem 1rem; display:flex; flex-direction:column; gap:.4rem; }
.kitten-name { text-align:center; font-weight:700; margin:0; }
.kitten-meta { font-size:.95rem; color:#555; display:flex; justify-content:space-between; gap:.75rem; }
.kitten-price { font-weight:700; }

/* Statuts */
.badge-status { display:inline-block; font-weight:700; border-radius:.5rem; padding:.25rem .55rem; font-size:.75rem; }
.badge-disponible  { background:#e6f4ee; color:var(--brand-green); border:1px solid rgba(46,125,90,.35); }
.badge-evaluation  { background:#fff7e6; color:#b45309; border:1px solid rgba(180,83,9,.35); }
.badge-option      { background:#eef2ff; color:#3730a3; border:1px solid rgba(55,48,163,.35); }
.badge-reserve     { background:#fee2e2; color:#b91c1c; border:1px solid rgba(185,28,28,.35); }
.badge-vendu       { background:#e5e7eb; color:#374151; border:1px solid rgba(55,65,81,.25); }

/* Bouton photos */
.kitten-actions { margin-top:.35rem; display:flex; justify-content:center; }
.kitten-actions .btn { min-width: 140px; }

/* Modale : images du carrousel (min 800x500) */
.modal .carousel .ratio img { object-fit: cover; }

/* CGV encart */
.cgv-note {
  background:#f8faf9; border:1px dashed rgba(46,125,90,.35);
  border-radius:.5rem; padding:.75rem 1rem;
}

/* ---- Carte chaton : lignes Sexe / Couleur ---- */
.kitten-body .kitten-name{ margin-bottom:.15rem; }

/* nouvelles classes dédiées (simples et robustes) */
.kitten-sex{
  font-weight:600;
  color:#333;
  line-height:1.25;
  margin-bottom:.15rem;   /* dessous : Couleur */
}
.kitten-coat{
  color:#6c757d;
  line-height:1.25;
  margin-bottom:.4rem;    /* dessous : Statut + Prix */
}

/* si .kitten-meta traîne encore, on neutralise pour éviter le “double affichage” */
.kitten-meta{ display: contents; }   /* n’ajoute pas de bloc visuel */
.kitten-meta > *{ display: none; }   /* coupe d’éventuels anciens spans */

  .modal .ratio { background:#e9ecef; border-radius:.5rem; }
  .modal .lazy-img{ width:100%; height:100%; object-fit:cover; display:block; }

/* --- Modales chatons : forcer une zone d'image visible --- */
.modal .carousel .ratio{
  /* garantit une hauteur même si l'image n'est pas encore chargée */
  width: 100%;
  aspect-ratio: 16 / 10;        /* force 16:10 */
  min-height: 320px;            /* ceinture et bretelles */
  background: #e9ecef url("https://placehold.co/800x500?text=800x500")
              center/cover no-repeat;
  border-radius: .5rem;
}

/* l'image remplit correctement la zone quand elle arrive */
.modal .carousel .ratio img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.section-links .btn { border-radius: .6rem; }

/* Reproducteurs */
.stud-wrap {
  margin-bottom: 2rem;
}

.stud-photo {
  max-width: 100%;
  border-radius: .5rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.stud-info h3 {
  font-size: 1.25rem;
  margin-bottom: .5rem;
}

.stud-info ul {
  padding-left: 1rem;
  margin-bottom: 1rem;
}

.stud-info ul li {
  margin-bottom: .25rem;
}

.stud-desc {
  font-size: .95rem;
  line-height: 1.5;
  color: #555;
}

/* HERO MOBILE : cacher le bouton "Découvrir la chatterie" */
@media (max-width: 575.98px){
  .hero .btn,
  .hero-full .btn {
    display: none !important;
  }
}

/* Supprimer les barres décoratives sous les titres H2 */
h2::before,
h2::after,
.section-head h2::before,
.section-head h2::after,
.section-title::before,
.section-title::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
}

/* Fix icônes + outline dans le BLOC 7 (Contact) */

/* 1) Bouton vert : texte + icône bien blancs */
section[aria-labelledby="contact-titre"] .btn.btn-success{
  color:#fff !important;
}
section[aria-labelledby="contact-titre"] .btn.btn-success i{
  color:#fff !important;
}

/* 2) Bouton outline : redevenir contour (pas rempli) */
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary{
  background: transparent !important;
  color: var(--green-700) !important;
  border-color: var(--green-700) !important;
}
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary i{
  color: var(--green-700) !important;
}
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary:hover{
  background: rgba(47,180,100,.08) !important;
  color: var(--green-900) !important;
  border-color: var(--green-900) !important;
}

/* Filet or sous TOUS les H2 des sections (sans ::after) */
.home-section h2{
  padding-bottom: .5rem; /* espace pour le filet */
  background:
    linear-gradient(var(--gold-500), var(--gold-500))
    no-repeat
    center bottom / 140px 2px; /* centré, 140px de large, 2px d'épais */
}

/* =========================================================
   BLOC 7 — Contact (Habillage 1 • dark + gold)
   ========================================================= */

/* 1) Carte contact (colonne gauche) */
section[aria-labelledby="contact-titre"] .p-4.border.rounded-3{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14) !important;
  color: var(--on-dark);
  border-radius: var(--radius);
  box-shadow: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
section[aria-labelledby="contact-titre"] .p-4.border.rounded-3:hover{
  transform: translateY(-2px);
  border-color: rgba(214,178,94,.42); /* liseré or discret */
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
}

/* 2) Titres + texte */
#contact-titre { color: var(--on-dark); }
section[aria-labelledby="contact-titre"] .text-muted{ color: var(--muted-on-dark) !important; }

/* 3) Liste rassurante : icônes en or (on neutralise le vert) */
section[aria-labelledby="contact-titre"] .list-unstyled i{
  color: var(--gold-500) !important;
}

/* 4) Boutons : la base .home-section force déjà “contour or”.
   On ajoute juste confort & focus. */
section[aria-labelledby="contact-titre"] .btn{
  padding: .7rem 1rem;
  font-weight: 700;
}
section[aria-labelledby="contact-titre"] .btn:focus-visible{
  outline: 2px solid var(--gold-500);
  outline-offset: 2px;
}

/* 5) Colonne carte (droite) — en-tête + bouton */
section[aria-labelledby="contact-titre"] .h6{
  color: var(--on-dark);
  font-weight: 700;
}
section[aria-labelledby="contact-titre"] .btn.btn-sm.btn-outline-secondary{
  border-color: var(--gold-500);
  color: var(--gold-500);
  background: transparent;
}
section[aria-labelledby="contact-titre"] .btn.btn-sm.btn-outline-secondary:hover{
  background: var(--gold-500);
  color: #000;
}

/* 6) Cadre de la map */
section[aria-labelledby="contact-titre"] .ratio{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: none;
  transition: border-color .18s ease, box-shadow .18s ease;
}
section[aria-labelledby="contact-titre"] .ratio:hover{
  border-color: rgba(214,178,94,.42);
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
}

/* =========================================================
   HERO — Habillage 1 (dark overlay + gold buttons)
   ========================================================= */

.hero-full{
  position: relative;
  color: var(--on-dark);
  overflow: hidden;
}

/* Media + overlay (sans toucher à l’img) */
.hero-full .media{ position: relative; }
.hero-full .overlay{
  position: absolute; inset: 0;
  /* voile sombre + vignette basse pour la lisibilité du H1 */
  background:
    linear-gradient(to top, rgba(0,0,0,.45) 20%, rgba(0,0,0,.18) 55%, rgba(0,0,0,.08) 100%),
    rgba(0,0,0,.25);
  pointer-events: none;
}

/* Contenu centré bas (on respecte ta structure) */
.hero-full .content{
  z-index: 2;
  padding-left: 1rem; padding-right: 1rem;
}

/* Titre: pas de soulignement, contraste propre, léger halo pour lecture */
.hero-full .hero-title{
  color: var(--on-dark);
  font-weight: 900;
  letter-spacing: .2px;
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
  /* aucun filet or ici, demandé explicitement */
  background: none;
}

/* Boutons: or contour par défaut dans le hero (uniformise les 2) */
.hero-full .btn{
  border: 2px solid var(--gold-500) !important;
  color: var(--gold-500) !important;
  background: transparent !important;
  font-weight: 700;
  border-radius: 12px;
  padding: .7rem 1.1rem;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.hero-full .btn i{ color: var(--gold-500) !important; }

.hero-full .btn:hover,
.hero-full .btn:focus-visible{
  background: var(--gold-500) !important;
  color: #000 !important;
  border-color: var(--gold-500) !important;
  outline: 0; /* focus géré par le contraste or plein */
}
.hero-full .btn:hover i{ color:#000 !important; }

/* Corrige explicitement les classes existantes sans changer le HTML */
.hero-full .btn-success,
.hero-full .btn-outline-light,
.hero-full .btn-gold{
  border: 2px solid var(--gold-500) !important;
  color: var(--gold-500) !important;
  background: transparent !important;
}

/* Responsive titres */
@media (max-width: 767.98px){
  .hero-full .hero-title{ font-size: 1.35rem; line-height: 1.25; }
}
@media (min-width: 768px){
  .hero-full .hero-title{ font-size: 1.9rem; line-height: 1.25; }
}
@media (min-width: 1200px){
  .hero-full .hero-title{ font-size: 2.2rem; }
}

/* =========================================================
   BLOC 2 — #chatons (POLISH • dark + gold)
   ========================================================= */

/* Header */
#chatons .eyebrow{
  font-size:.9rem; text-transform:uppercase; letter-spacing:.5px;
  font-weight:600; color:var(--muted-on-dark);
}
#chatons h2{ color:var(--on-dark); }

/* Boutons “Voir tous les chatons” (desktop + mobile) */
#chatons header .btn,
#chatons .d-md-none .btn{
  border:2px solid var(--gold-500);
  color:var(--gold-500);
  background:transparent;
  font-weight:700;
  border-radius:12px;
  padding:.55rem .9rem;
}
#chatons header .btn:hover,
#chatons .d-md-none .btn:hover{
  background:var(--gold-500);
  color:#000;
}

/* Cartes */
#chatons .mini-card.card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
#chatons .mini-card.card:hover{
  transform:translateY(-2px);
  border-color:rgba(214,178,94,.42); /* liseré or discret */
  box-shadow:0 10px 26px rgba(0,0,0,.28);
}

/* Image */
#chatons .ratio{ background:rgba(255,255,255,.04); }
#chatons .ratio img{
  object-fit:cover;
  border-top-left-radius:var(--radius);
  border-top-right-radius:var(--radius);
}

/* Typo interne */
#chatons .line-name{
  color:var(--on-dark);
  font-weight:800;
  letter-spacing:.2px;
}
#chatons .line-coat,
#chatons .card-body small,
#chatons .text-muted{ color:var(--muted-on-dark)!important; }

/* Statuts (chips) */
#chatons .cat-status{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.3rem .6rem; border-radius:999px; font-weight:700;
  font-size:.85rem; white-space:nowrap;
  border-width:1.5px; border-style:solid;
}

/* Variante: Disponible (vert doux, pas flashy) */
#chatons .cat-status.disponible{
  color:#8fd3b4;                          /* vert doux */
  border-color:#8fd3b4;
  background:rgba(143,211,180,.10);
}

/* Variante: Option (or) */
#chatons .cat-status.option{
  color:var(--gold-500);
  border-color:var(--gold-500);
  background:rgba(214,178,94,.12);
}

/* Variante: Réservé (rouge feutré) */
#chatons .cat-status.reserve{
  color:#f0a3a3;
  border-color:#f0a3a3;
  background:rgba(240,163,163,.10);
}

/* Icônes dans les statuts : on neutralise les couleurs Bootstrap trop vives */
#chatons .cat-status i{
  color:currentColor !important;
}

/* Rythme interne de la carte */
#chatons .card-body{ padding: .9rem .95rem 1rem; }
#chatons .card-body .mt-auto{ padding-top:.4rem !important; }

/* Responsive */
@media (max-width:575.98px){
  #chatons header .btn{ padding:.5rem .8rem; }
  #chatons .mini-card.card{ border-radius: 14px; }
}


/* =========================================================
   BLOC 4 — #actus (POLISH • cartes actus)
   ========================================================= */

/* Header */
#actus .eyebrow {
  font-size:.9rem; text-transform:uppercase; letter-spacing:.5px;
  font-weight:600; color:var(--muted-on-dark);
}
#actus h2 { color:var(--on-dark); }

/* Cartes */
#actus .card {
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#actus .card:hover {
  transform:translateY(-4px);
  border-color:var(--gold-500);
  box-shadow:0 10px 28px rgba(0,0,0,.3);
}

/* Images */
#actus .card img {
  object-fit:cover;
  border-bottom:1px solid rgba(255,255,255,.08);
}

/* Corps */
#actus .card-body {
  padding:1rem 1.25rem;
}
#actus .card-body h3 {
  color:var(--on-dark);
  font-weight:600;
}
#actus .card-body p {
  color:var(--muted-on-dark);
  line-height:1.5;
}
#actus .card-body a.small {
  font-weight:600;
  color:var(--gold-500);
  text-decoration:none;
}
#actus .card-body a.small:hover {
  text-decoration:underline;
}

/* Badge date */
#actus .badge.text-bg-light {
  background:rgba(214,178,94,.12)!important;
  color:var(--gold-500)!important;
  border:1px solid rgba(214,178,94,.4);
  font-weight:600;
}

/* Bouton "Toutes les actus" */
#actus header .btn {
  border-color:var(--gold-500);
  color:var(--gold-500);
  background:transparent;
  font-weight:600;
}
#actus header .btn:hover {
  background:var(--gold-500);
  color:#000;
}


/* =========================================================
   BLOC 5 — #repro (POLISH • reproducteurs)
   ========================================================= */

/* Header */
#repro .eyebrow {
  font-size:.9rem; text-transform:uppercase;
  font-weight:600; letter-spacing:.5px;
  color:var(--muted-on-dark);
}
#repro h2 { color:var(--on-dark); }

/* Boutons Mâles / Femelles */
#repro header .btn {
  border-color:var(--gold-500);
  color:var(--gold-500);
  font-weight:600;
  background:transparent;
  transition:all .2s ease;
}
#repro header .btn:hover {
  background:var(--gold-500);
  color:#000;
}

/* Cartes */
#repro .card {
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#repro .card:hover {
  transform:translateY(-4px);
  border-color:var(--gold-500);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}

/* Images */
#repro img {
  object-fit:cover;
  border-right:1px solid rgba(255,255,255,.08);
}
@media (max-width:575.98px){
  #repro img { border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }
}

/* Texte dans les cartes */
#repro h3 {
  font-weight:600;
  color:var(--on-dark);
}
#repro p {
  color:var(--muted-on-dark);
}
#repro a.small {
  color:var(--gold-500);
  font-weight:600;
  text-decoration:none;
}
#repro a.small:hover {
  text-decoration:underline;
}


/********liens à droite*****************/

.endlink
{
  display:block;
  text-align:center;
  margin-top:0.5rem;
  padding-top:0.5rem;
  border-top: 1px solid var(--gold);
}

/* === Correctifs bloc Contact (#contact) === */

/* 1. Supprimer la barre sous le H2 "Une question ?" */
#contact h2 {
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 0.5rem; /* légère marge pour respirer */
}

/* 2. Bouton "Certificat d’engagement (PDF)" → version or */
#contact .btn-outline-secondary {
  border: 1px solid var(--gold);   /* contour or */
  color: var(--gold);              /* texte or */
  background-color: transparent;   /* fond transparent */
}

#contact .btn-outline-secondary:hover {
  background-color: var(--gold);   /* fond or au survol */
  color: #fff;                     /* texte blanc */
  border-color: var(--gold);
}

/* =========================================================
   PATCH Contact — retirer la barre sous le H2 + styler le bouton PDF
   Scope fiable : #contact-titre + section[aria-labelledby="contact-titre"]
   ========================================================= */

/* 1) Supprimer toute barre/ornement sous "Une question ?" */
#contact-titre{
  border: none !important;
  text-decoration: none !important;
  box-shadow: none !important;
  padding-bottom: .25rem !important;
  margin-bottom: .5rem !important;
}
#contact-titre::after,
#contact-titre::before{
  content: none !important;
  display: none !important;
}

/* 2) Forcer le style or pour le bouton "Certificat d’engagement (PDF)" */
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary{
  border: 2px solid var(--gold-500) !important;
  color: var(--gold-500) !important;
  background: transparent !important;
  font-weight: 700;
  border-radius: 12px;
  

  /* Compat Bootstrap (variables) */
  --bs-btn-color: var(--gold-500);
  --bs-btn-border-color: var(--gold-500);
  --bs-btn-hover-bg: var(--gold-500);
  --bs-btn-hover-border-color: var(--gold-500);
  --bs-btn-hover-color: #000;
}
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary:hover,
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary:focus-visible{
  background: var(--gold-500) !important;
  color: #000 !important;
  border-color: var(--gold-500) !important;
  outline: 0;
}
section[aria-labelledby="contact-titre"] .btn.btn-outline-secondary i{
  color: currentColor !important; /* l’icône suit la couleur du texte */
}

/* =========================================================
   PATCH Contact — Harmonisation boutons (Nous écrire + PDF)
   ========================================================= */

/* Bouton "Nous écrire" en or comme le PDF */
section[aria-labelledby="contact-titre"] .btn.btn-success {
  border: 2px solid var(--gold-500) !important;
  background: transparent !important;
  color: var(--gold-500) !important;
  font-weight: 700;
  border-radius: 12px;

  --bs-btn-color: var(--gold-500);
  --bs-btn-border-color: var(--gold-500);
  --bs-btn-hover-bg: var(--gold-500);
  --bs-btn-hover-border-color: var(--gold-500);
  --bs-btn-hover-color: #000;
}
section[aria-labelledby="contact-titre"] .btn.btn-success:hover,
section[aria-labelledby="contact-titre"] .btn.btn-success:focus-visible {
  background: var(--gold-500) !important;
  color: #000 !important;
}

/* Icônes dans les boutons = même couleur que le texte */
section[aria-labelledby="contact-titre"] .btn i {
  color: currentColor !important;
}

/* Forcer l'icône du bouton "Nous écrire" à hériter de la couleur du texte */
section[aria-labelledby="contact-titre"] .btn.btn-success i {
  color: inherit !important;
  fill: currentColor !important;
}

/* ---------- Nav habillée or ---------- */
.site-header {
  background: var(--brand-gray);
  position: relative;
  box-shadow: var(--shadow);
}

/* Liseré or discret sous la barre */
.site-header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%, var(--brand-gold-600, #C3A464) 15%,
    var(--brand-gold, #D4AF37) 50%,
    var(--brand-gold-600, #C3A464) 85%, transparent 100%);
  opacity: .8;
  pointer-events: none;
}

/* Logo : on sert un 64px mais on l’affiche ~36px pour l’équilibre */
.navbar .brand-logo {
  height: 36px;
  width: auto;
  display: inline-block;
  filter: drop-shadow(0 0 2px rgba(0,0,0,.4));
}

/* Liens */
.navbar .nav-link {
  color: #eae7df !important;           /* blanc cassé */
  font-weight: 500;
  padding: .5rem .9rem;
  position: relative;
  transition: color .2s ease, box-shadow .2s ease;
}

/* Hover en or */
.navbar .nav-link:hover {
  color: var(--brand-gold, #D4AF37) !important;
}

/* Actif : texte or + petit soulignement or (inset) */
.navbar .nav-link.active,
.navbar .nav-link[aria-current="page"] {
  color: var(--brand-gold, #D4AF37) !important;
  box-shadow: inset 0 -2px 0 var(--brand-gold, #D4AF37);
}

/* Dropdowns en mode sombre + accents or */
.dropdown-menu.dropdown-menu-dark {
  --bs-dropdown-bg: var(--brand-gray-900, #1b1c1d);
  --bs-dropdown-color: #eae7df;
  --bs-dropdown-border-color: rgba(212,175,55,.35);
  --bs-dropdown-link-hover-bg: rgba(212,175,55,.08);
  --bs-dropdown-link-hover-color: var(--brand-gold, #D4AF37);
  --bs-dropdown-link-active-bg: rgba(212,175,55,.18);
  --bs-dropdown-link-active-color: var(--brand-gold, #D4AF37);
  border: 1px solid var(--bs-dropdown-border-color);
  box-shadow: 0 10px 24px rgba(0,0,0,.35);
}

/* Toggler (mobile) or */
.navbar-dark .navbar-toggler {
  border-color: rgba(212,175,55,.6);
}
.navbar-dark .navbar-toggler:focus {
  box-shadow: 0 0 0 .15rem rgba(212,175,55,.35);
}
/* Icône hamburger or (Bootstrap 5.3: variable dispo) */
.navbar-dark {
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgb(212,175,55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Ajustements responsives légers */
@media (max-width: 991.98px) {
  .navbar .nav-link { padding: .5rem .75rem; }
  .navbar .brand-logo { height: 32px; }
}

/* Corrige focus/active (hover + clic) sur les liens de nav */
.navbar .nav-link:focus,
.navbar .nav-link:active {
  color: var(--brand-gold, #D4AF37) !important;
  background-color: rgba(212, 175, 55, 0.15) !important; /* halo or très léger */
  outline: none;
  box-shadow: inset 0 -2px 0 var(--brand-gold, #D4AF37);
}

/* === Fix focus/active vert sur la navbar === */

/* 1) Harmonise les couleurs de la navbar Bootstrap */
.site-header .navbar{
  --bs-navbar-color: var(--text-weak, #E9E6DF);
  --bs-navbar-hover-color: var(--brand-gold, #D4AF37);
  --bs-navbar-active-color: var(--brand-gold, #D4AF37);
}

/* 2) Forcer le focus/active sur les liens (desktop + mobile) */
.site-header .navbar-nav .nav-link:focus,
.site-header .navbar-nav .nav-link:active,
.site-header .navbar-nav .nav-link.show,
.site-header .navbar-nav .nav-link.active {
  color: var(--brand-gold, #D4AF37) !important;
  background-color: rgba(212,175,55,.14) !important; /* halo or au lieu du vert */
  outline: none !important;
  box-shadow: none !important;
}

/* 3) (Ceinture & bretelles) si un ancien sélecteur global prend le dessus */
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link:active {
  background-color: rgba(212,175,55,.14) !important;
  color: var(--brand-gold, #D4AF37) !important;
}

/* 4) Dropdown – au cas où le vert réapparaisse dans le menu */
.site-header .dropdown-menu {
  --bs-dropdown-link-hover-bg: rgba(212,175,55,.08);
  --bs-dropdown-link-active-bg: rgba(212,175,55,.15);
  --bs-dropdown-link-hover-color: var(--brand-gold, #D4AF37);
  --bs-dropdown-link-active-color: #000;
}
.site-header .dropdown-menu .dropdown-item:focus,
.site-header .dropdown-menu .dropdown-item:active {
  background-color: var(--bs-dropdown-link-active-bg) !important;
  color: var(--bs-dropdown-link-active-color) !important;
}

/* =========================================================
   NAV: tuer définitivement le fond vert sur focus/active
   (cible .site-header si présent, sinon <header> générique)
   ========================================================= */

/* 0) Remise à zéro agressive de tout fond résiduel */
.site-header .navbar .nav-link,
header .navbar .nav-link {
  background-color: transparent !important;
}

/* 1) Etat focus/active/expanded (desktop + mobile) */
.site-header .navbar .navbar-nav .nav-item .nav-link:focus,
.site-header .navbar .navbar-nav .nav-item .nav-link:active,
.site-header .navbar .navbar-nav .nav-item.show > .nav-link,
.site-header .navbar .navbar-nav .nav-link.active,
header .navbar .navbar-nav .nav-item .nav-link:focus,
header .navbar .navbar-nav .nav-item .nav-link:active,
header .navbar .navbar-nav .nav-item.show > .nav-link,
header .navbar .navbar-nav .nav-link.active {
  color: var(--brand-gold, #D4AF37) !important;
  background-color: rgba(212,175,55,.14) !important; /* halo or */
  outline: none !important;
  box-shadow: none !important;
}

/* 2) Dropdown links (focus/active) */
.site-header .dropdown-menu .dropdown-item:focus,
.site-header .dropdown-menu .dropdown-item:active,
header .dropdown-menu .dropdown-item:focus,
header .dropdown-menu .dropdown-item:active {
  background-color: rgba(212,175,55,.15) !important;
  color: #000 !important;
}

/* 3) Toggler (mobile) */
.site-header .navbar .navbar-toggler:focus,
header .navbar .navbar-toggler:focus {
  box-shadow: 0 0 0 .25rem rgba(212,175,55,.35) !important; /* anneau or */
  outline: none !important;
}

/* 4) Harmonise les variables Bootstrap de la navbar pour éviter les retours verts */
.site-header .navbar,
header .navbar {
  --bs-navbar-color: var(--text-weak, #E9E6DF);
  --bs-navbar-hover-color: var(--brand-gold, #D4AF37);
  --bs-navbar-active-color: var(--brand-gold, #D4AF37);
}

/* ================= NAV > DROPDOWN : état actif en OR ================= */
.site-header .dropdown-menu,
header .dropdown-menu {
  /* palette + variables Bootstrap 5.3 */
  --bs-dropdown-bg: var(--brand-gray, #2a2d2f);
  --bs-dropdown-border-color: rgba(212,175,55,.35);
  --bs-dropdown-link-color: #e9e6df;
  --bs-dropdown-link-hover-bg: rgba(212,175,55,.12);
  --bs-dropdown-link-hover-color: #fff;
  --bs-dropdown-link-active-bg: rgba(212,175,55,.22);   /* OR */
  --bs-dropdown-link-active-color: #fff;
  border: 1px solid rgba(212,175,55,.35) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}

/* force l’active si une règle verte traîne encore */
.site-header .dropdown-menu .dropdown-item.active,
.site-header .dropdown-menu .dropdown-item:active,
header .dropdown-menu .dropdown-item.active,
header .dropdown-menu .dropdown-item:active {
  background-color: rgba(212,175,55,.22) !important;   /* OR */
  color: #fff !important;
}

/* optionnel : le trigger ouvert reste or, sans fond vert */
.site-header .navbar .nav-link.active,
.site-header .navbar .nav-item.show > .nav-link,
header .navbar .nav-link.active,
header .navbar .nav-item.show > .nav-link {
  color: var(--brand-gold,#D4AF37) !important;
  background: transparent !important;
  text-decoration: underline;
}

