:root {
  --mt-title-bg: #060453 !important;
  --mt-title-fg: #ffffff !important;
  --mt-title-square: #ffffff !important;
  --mt-title-radius: 0 !important;
  --mt-title-pad-y: 12px !important;
  --mt-title-pad-x: 18px !important;
  --mt-title-gap: 14px !important;
  --mt-title-width: 66% !important;
}

/* Police Raleway partout */
@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Regular.ttf') format('ttf');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Bold.ttf') format('ttf');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Raleway';
  src: url('../fonts/Raleway-Italic.ttf') format('ttf');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

body {
  font-family: 'Raleway', sans-serif !important;
}

/* CSS de la page d'accueil et de la navbar */
.crealim-header{
  background:var(--mt-title-bg) !important;
  color:#fff !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  position:relative; z-index:50 !important;
}

.crealim-wrap{
  max-width:1200px !important;
  margin:0 auto !important;
  padding:12px 16px !important;
}

.crealim-menu{
  display:flex !important;
  gap:18px !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}

.crealim-left{
  justify-content:flex-start !important;
  width:100% !important;
}

.crealim-right{
  justify-content:flex-end !important;
  width:100% !important;
}

.crealim-menu a{
  color:#fff !important;
  text-decoration:none !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  font-size:.9rem !important;
  letter-spacing:.3px !important;
  position:relative !important;
  transition:color .2s ease !important;
}

.crealim-menu a::after{
  content:"" !important;
  position:absolute !important;
  left:0; bottom:-4px !important;
  height:2px; width:0 !important;
  background:#22d3ee !important;
  transition:width .25s ease !important;
}

.crealim-menu a:hover{ 
  color:#22d3ee !important; 
}

.crealim-menu a:hover::after{ 
  width:100% !important; 
}

.crealim-logo{ 
  justify-self:center !important; 
}

.crealim-logo img{
  max-height:70px !important;
  width:auto !important;
  display:block !important;
}

/* Menu burger à gauche de la navbar */
.crealim-burger-menu {
  position: relative !important;
  display: inline-block !important;
  z-index: 1000 !important;
}

.crealim-burger {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  width: 48px !important;
  height: 67px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  padding: 0 !important;
  margin: 0 !important;
}

.crealim-burger:focus {
  outline: 2px solid rgba(255, 255, 255, .35) !important;
  outline-offset: 2px !important;
}

.crealim-burger-icon {
  width: 24px !important;
  height: 16px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}

.crealim-burger-icon span {
  display: block !important;
  width: 100% !important;
  height: 2px !important;
  background: #fff !important;
  border-radius: 1px !important;
}

.crealim-panel {
  position: absolute !important;
  left: 0 !important;
  top: 100% !important;
  margin-top: -8px !important;
  min-width: 220px !important;
  background: var(--mt-title-bg, var(--mt-title-bg)) !important;
  border: 1px solid rgba(255, 255, 255, .15) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .35) !important;
  border-radius: 10px !important;
  padding: 8px !important;
  display: none !important;
}

.crealim-burger-menu:hover .crealim-panel,
.crealim-burger-menu:focus-within .crealim-panel {
  display: block !important;
}

.crealim-panel a {
  display: block !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size:.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: .3px !important;
  padding: 10px 12px !important;
  border-radius: 8px !important;
}

.crealim-panel a:hover {
  background: rgba(255, 255, 255, .12) !important;
}

.crealim-grid {
  display:grid !important;
  grid-template-columns: 0.01fr auto auto auto 0.01fr !important;
  gap: 24px !important;
}

/* Style des titres */
h1:not(.product-title), 
h2:not(.product-title) {
  position: relative !important;
  display: block !important;
  width: var(--mt-title-width) !important;
  margin: 28px 0 18px 0 !important;
  background: var(--mt-title-bg) !important;
  color: var(--mt-title-fg) !important;
  padding: var(--mt-title-pad-y) calc(var(--mt-title-pad-x) + 2px) !important;
  padding-left: calc(var(--mt-title-pad-x) + var(--mt-title-gap) + 18px) !important;
  border-radius: var(--mt-title-radius) !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  letter-spacing: .3px !important;
  line-height: 1.2 !important;
  clear: both !important;
  text-align: left !important;
  font-family: 'Raleway', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important;
}

h1::before, h2::before {
  content: "" !important;
  position: absolute !important;
  left: var(--mt-title-pad-x) !important;
  top: 50% !important;
  width: 18px !important;
  height: 18px !important;
  transform: translateY(-50%) !important;
  background: var(--mt-title-square) !important;
  border-radius: 2px !important;
}

/* Fiches produit */
.fiche-taureau{
  --ft-blue:var(--mt-title-bg);
  --ft-border:#1b295f33;
  --ft-text:#0b1020;
  --ft-white:#fff;
  color: var(--ft-text);
}

.fiche-taureau .ft-title h1{
  background: var(--ft-blue);
  color:#fff;
  text-transform: uppercase;
  font-weight:800;
  letter-spacing:.4px;
  padding: 10px 18px;
  margin: 0 0 8px 0;
}

.fiche-taureau .ft-id-block{
  margin-bottom:10px;
  font-weight:600;

  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, auto);
}

.ft-id-row {
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.95rem;
  text-align: center;
}

.fiche-taureau .ft-top{
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}

.ft-photo-principale{
  margin:0;
  border:1px solid var(--ft-border);
  height: 440px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f7f8fc;
  flex: 0 0 50%;
}

.ft-photo-principale img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.fiche-taureau .ft-photo-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#64748b;
  font-weight:700;
  letter-spacing:.2px;
}

.ft-commentaires {
  flex: 1; /* prend le reste de la place */
  max-width: 50%;
  display: flex;
  flex-direction: column;
}

.fiche-taureau .ft-commentaires .ft-box-title{
  border:1px solid var(--ft-blue);
  color: var(--ft-blue);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.2px;
  padding:8px 10px;
  margin-bottom:6px;
}

.fiche-taureau .ft-commentaires .ft-box-body{
  border:1px solid #b6c0e5;
  background:#fff;
  padding:10px;
  min-height: 160px;
}

.fiche-taureau .ft-section-title{
  background: var(--ft-blue);
  color:#fff;
  text-transform:uppercase;
  font-weight:800;
  padding:10px 18px;
  margin: 10px 0 10px;
  width: 66%;
}

.fiche-taureau .ft-gene-grid{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:24px;
  align-items:start;
}

.fiche-taureau .ft-gene-row{
  display:grid;
  grid-template-columns: 22px 1fr 1fr 1fr;
  gap:10px;
  align-items:center;
  margin-bottom:10px;
}

.fiche-taureau .ft-gene-badge{
  width:22px;
  height:22px;
  background: var(--ft-blue);
  display:inline-block;
}

.fiche-taureau .ft-gene-col{
  min-height:36px;
  border:1px solid #b6c0e5;
  background:#fff;
  padding:6px 8px;
}

.fiche-taureau .ft-photo-autre .ft-box-title{
  border:1px solid var(--ft-blue);
  color: var(--ft-blue);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.2px;
  padding:8px 10px;
  margin-bottom:6px;
}

.fiche-taureau .ft-box-photo{
  border:1px solid #b6c0e5;
  background:#fff;
  padding:0;
  min-height: 220px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.fiche-taureau .ft-box-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.fiche-taureau .ft-index{
  margin-top:14px;
}

.fiche-taureau .ft-index-title{
  font-weight:800;
  text-transform:uppercase;
  color: var(--ft-blue);
  margin-bottom:6px;
}

.fiche-taureau .ft-index-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items:start;
}

.fiche-taureau .ft-index-col > div{
  margin: 6px 0;
}

.ft-box-body {
  flex: 1;
  line-height: 1.5;
}

/* Split 50/50 */
.ft-mid-split {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 50/50 */
  gap: 2rem;
  align-items: start;
  margin: 2.5rem 0;
}

/* Généalogie : 3 colonnes (générations) */
.ft-pedigree {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr; /* Gen1, Gen2, Gen3 (un poil plus large) */
  gap: 1.25rem;
  position: relative;
}

/* Colonnes */
.ft-pedigree .ft-col {
  display: grid;
  gap: 0.75rem;
}

/* Gen1 : 2 cases (Père/Mère) */
.ft-gen1 { grid-auto-rows: minmax(70px, auto); }
.ft-gen1 .ft-card-lg {
  background: #5f7fa3; /* bleu doux */
  color: #fff;
  font-weight: 700;
}

/* Gen2 : 4 cases */
.ft-gen2 {
  grid-template-rows: repeat(4, minmax(52px, auto));
}

/* Gen3 : 8 cases */
.ft-gen3 {
  grid-template-rows: repeat(8, minmax(46px, auto));
}

/* Cartes génériques */
.ft-card, .ft-card-lg {
  border: 2px solid #bfcfe1;
  background: #fff;
  border-radius: 6px;
  padding: .5rem .75rem;
  line-height: 1.25;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.ft-card .ft-id, .ft-card-lg .ft-id {
  font-size: .8rem;
  opacity: .8;
  font-weight: 600;
}

/* Colonne photo */
.ft-side-photo {
  margin: 0;
  padding: 0;
  display: block;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #e3e7ee;
}
.ft-side-photo img { display:block; width:100%; height:auto; object-fit:cover; }
.ft-photo-placeholder {
  display:flex; align-items:center; justify-content:center;
  aspect-ratio: 4/3; border: 1px dashed #bbb; color:#777; background:#fafafa;
}

/* Connecteurs (simple) : barre verticale entre Gen1/Gen2 et Gen2/Gen3 */
.ft-pedigree {
  --conn: #bfcfe1;
}
.ft-gen1, .ft-gen2 {
  position: relative;
}
.ft-gen1::after, .ft-gen2::after {
  content: "";
  position: absolute;
  top: 0; right: -0.625rem; bottom: 0;
  width: 2px; background: var(--conn);
  opacity: .7;
}

/* Responsive : empilement en 1 colonne sous 992px, photo passe dessous */
@media (max-width: 992px) {
  .ft-mid-split { grid-template-columns: 1fr; }
  .ft-side-photo { order: 2; }
  #ft-pedigree .ft-pedigree { order: 1; }
}

/* Liste des caractéristiques */
.crealim-features {
  width: 50%;
}

.crealim-features .list-group-item {
  padding: .6rem .75rem;
}

.crealim-features .list-group-item strong {
  font-weight: 700;
}

.crealim-features .list-group {
  border: 1px solid rgba(0,0,0,.06);
}

.crealim-features h3 {
  color: var(--mt-title-bg);
}

/* Bandeau titre produit */
#main .ft-title {
  display: block;
  width: 100%;
  background-color: var(--mt-title-bg);
  color: #ffffff;
  text-align: center;
  padding: 1.5rem 1rem;
  margin-top: 2rem;
  font-size: 1.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* CSS pour le Carousel custom */
.crealim-carousel {
  position: relative !important;
  width: 100% !important;
  overflow: hidden !important;
}

.crealim-slides {
  display: flex !important;
  transition: transform 0.6s ease !important;
}

.crealim-slide {
  flex: 0 0 100% !important;
  position: relative !important;
}

.crealim-slide img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

.crealim-caption {
  position: absolute;
  left: 2rem !important;
  bottom: 0rem !important;
  background: rgba(60, 60, 60, 1) !important;
  color: #fff !important;
  padding: 1rem 1.5rem !important;
  max-width: 420px !important;
}

.crealim-caption p,
.crealim-caption h1, .crealim-caption h2,
.crealim-caption h3, .crealim-caption h4 {
  margin: 0 !important;
  color: #fff !important;
  line-height: 1.4 !important;
}

.crealim-prev,
.crealim-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.5);
  color: white;
  border: none;
  font-size: 2rem;
  padding: 0.4rem 0.8rem;
  cursor: pointer;
  border-radius: 50%;
  z-index: 5;
  line-height: 1;
  user-select: none;
  transition: background 0.3s;
}

.crealim-prev:hover,
.crealim-next:hover {
  background: rgba(0, 0, 0, 0.8);
}

.crealim-prev {
  left: 1rem;
}

.crealim-next {
  right: 1rem;
}

#wrapper {
  padding-top: 0px !important;
}

#product #content {
  max-width: none !important;
  width: 100% !important;
}

.breadcrumb {
  margin-top: 1% !important;
}

.container {
  width: 68%;
}

/* Pour ne pas afficher le gros bloc en haut des listings de produits */
#js-product-list-header {
  display: none !important;
}

/* Responsive */
@media (max-width: 992px){
  .fiche-taureau .ft-top,
  .fiche-taureau .ft-gene-grid{
    grid-template-columns: 1fr;
  }

  .fiche-taureau .ft-title h1,
  .fiche-taureau .ft-section-title{ 
    width:100%; 
  }

  h1, h2 {
    width: 100% !important;
    margin: 20px 0 14px !important;
  }

  .crealim-grid{ 
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .crealim-left, .crealim-right{ 
    justify-content:center !important;
    width:auto !important;
  }

  .crealim-logo{ 
    justify-self:center !important;
  }
}

@media (max-width: 768px) {
  .crealim-caption {
    left: 1rem;
    bottom: 1rem;
    padding: .75rem 1rem;
    max-width: 80%;
  }
}