/* ===== Service cards ===== */
.bf-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg)}
.bf-card{
  position:relative;
  background:#fff;
  border-radius:var(--radius-md);
  overflow:hidden;
  border:1px solid var(--color-line);
  transition:transform .25s ease, box-shadow .25s ease;
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
}
.bf-card:hover{transform:translateY(-4px); box-shadow:0 14px 40px rgba(12,82,133,.10)}
.bf-card__media{aspect-ratio:4/3; background:#E0DCE8; position:relative; overflow:hidden}
.bf-card__media img{width:100%; height:100%; object-fit:cover; display:block}
.bf-card__body{padding:var(--space-lg); display:flex; flex-direction:column; flex:1}
.bf-card h3{margin-bottom:.4rem}
.bf-card__desc{color:var(--color-muted); font-size:.95rem; flex:1; margin:0}
.bf-card__link{
  margin-top:var(--space-md); color:var(--color-rose); font-weight:600; font-size:.9rem;
  display:inline-flex; align-items:center; gap:.4rem;
  transition:gap .15s ease;
}
.bf-card:hover .bf-card__link{gap:.7rem}
.bf-badge{
  position:absolute; top:var(--space-md); left:var(--space-md); z-index:2;
  background:var(--color-rose); color:#fff;
  font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:.35rem .7rem; border-radius:var(--radius-pill);
}

/* ===== Reviews ===== */
.bf-reviews-widget{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg)}
.bf-review{
  background:#fff; border:1px solid var(--color-line);
  padding:var(--space-lg); border-radius:var(--radius-md);
}
.bf-review__stars{color:#F5B400; letter-spacing:.05em; margin-bottom:var(--space-sm); font-size:.95rem}
.bf-review__text{font-size:.95rem; color:var(--color-text); margin-bottom:var(--space-md)}
.bf-review__author{font-size:.82rem; color:var(--color-muted); font-weight:600}
.bf-reviews__summary{
  text-align:center; margin-bottom:var(--space-xl);
  display:flex; flex-direction:column; gap:.4rem; align-items:center;
}
.bf-reviews__score{font-family:var(--font-display); font-size:3rem; font-weight:600; line-height:1; color:var(--color-text)}
.bf-reviews__stars-big{color:#F5B400; font-size:1.2rem; letter-spacing:.1em}
.bf-reviews__count{color:var(--color-muted); font-size:.9rem}
.bf-reviews__cta{margin-top:var(--space-md)}

/* ===== Pricing cards ===== */
.bf-pricing{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-md)}
.bf-price-card{
  background:#fff; border:1.5px solid var(--color-rose);
  border-radius:var(--radius-md);
  padding:var(--space-lg);
  text-align:center;
  display:flex; flex-direction:column;
  box-shadow:0 8px 28px rgba(234,81,131,.12);
  transition:transform .2s, box-shadow .2s;
}
.bf-price-card:hover{transform:translateY(-3px); box-shadow:0 14px 38px rgba(234,81,131,.22)}
.bf-price-card--highlight{box-shadow:0 12px 36px rgba(234,81,131,.22)}
.bf-price-card__size{
  font-family:var(--font-display); font-size:1.3rem;
  color:var(--color-rose); margin-bottom:.3rem;
}
.bf-price-card__weight{color:var(--color-muted); font-size:.85rem; margin-bottom:var(--space-md)}
.bf-price-card__duration{
  font-family:var(--font-body); font-weight:600; font-size:1rem; color:var(--color-text);
  padding-top:var(--space-md); border-top:1px solid var(--color-line); margin-top:auto;
}
.bf-price-note{
  margin-top:var(--space-lg); text-align:center; font-size:1rem; color:var(--color-text);
}
.bf-price-note strong{color:var(--color-rose); font-family:var(--font-display); font-size:1.4rem; font-weight:600}
.bf-price-note span{color:var(--color-muted); margin:0 .6rem; font-weight:700}
.bf-price-note small{display:block; margin-top:.4rem; color:var(--color-muted); font-size:.82rem}

/* ===== Icon cards ===== */
.bf-icon-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg)}
.bf-icon-card{
  background:#fff; border:1px solid var(--color-line);
  border-radius:var(--radius-md);
  padding:var(--space-lg);
  text-align:center;
  display:flex; flex-direction:column;
  text-decoration:none;
}
.bf-icon-card__icon{
  width:56px; height:56px; border-radius:50%;
  background:rgba(234,81,131,.10);
  color:var(--color-rose);
  display:grid; place-items:center;
  font-size:1.6rem;
  margin:0 auto var(--space-md);
}
.bf-icon-card__icon svg{display:block}
.bf-icon-card h3{margin:0 0 .4rem; font-size:1.1rem}
.bf-icon-card p{margin:0; color:var(--color-muted); font-size:.92rem}

/* Neon variant : bordure rose + halo pour toutes les cartes du groupe */
.bf-icon-cards--neon .bf-icon-card{
  border:1.5px solid var(--color-rose);
  box-shadow:0 8px 28px rgba(234,81,131,.12);
  transition:transform .2s, box-shadow .2s;
}
.bf-icon-cards--neon .bf-icon-card:hover{
  transform:translateY(-3px); box-shadow:0 14px 38px rgba(234,81,131,.22);
}

/* Anchor version of icon-card (link) */
a.bf-icon-card{color:inherit; text-decoration:none}

/* Plan price (formules garderie) */
.bf-plan-price{
  margin-top:var(--space-md); padding-top:var(--space-md);
  border-top:1px solid var(--color-line);
  font-family:var(--font-display); font-size:1.9rem;
  color:var(--color-rose); font-weight:600; line-height:1;
  font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
.bf-plan-price span{
  font-family:var(--font-body); font-size:.9rem; color:var(--color-muted);
  font-weight:500; margin-left:.3rem; letter-spacing:0;
}
.bf-plan-hint{
  display:block; margin-top:var(--space-sm);
  font-family:var(--font-body); font-size:.75rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--color-rose); font-weight:600;
  opacity:.85; transition:opacity .2s;
}
a.bf-icon-card:hover .bf-plan-hint{opacity:1}

/* Trial badge (test gratuit) */
.bf-trial-badge{
  background:rgba(234,81,131,.08);
  border:1.5px solid var(--color-rose);
  border-radius:var(--radius-md);
  padding:var(--space-md) var(--space-lg);
  margin:0 auto var(--space-xl);
  max-width:760px;
  display:flex; align-items:center; gap:var(--space-md);
  text-align:left;
}
.bf-trial-badge__icon{
  width:44px; height:44px; border-radius:50%;
  background:var(--color-rose); color:#fff;
  display:grid; place-items:center;
  font-size:1.2rem; flex-shrink:0;
}
.bf-trial-badge p{margin:0; font-size:.92rem; line-height:1.45}
.bf-trial-badge strong{color:var(--color-rose); font-size:1rem; display:block; margin-bottom:.15rem}

/* Pet-sitting cards */
.bf-petsit{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xl)}
.bf-petsit__card{
  background:#fff; border:1px solid var(--color-line);
  border-radius:var(--radius-md);
  padding:var(--space-xl);
  display:flex; flex-direction:column;
}
.bf-petsit__card h3{font-size:1.5rem; margin-bottom:.5rem}
.bf-petsit__lead{color:var(--color-muted); margin-bottom:var(--space-md)}
.bf-petsit__photos{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:.6rem;
  margin-bottom:var(--space-md);
}
.bf-petsit__photo{
  aspect-ratio:1/1; background:linear-gradient(135deg,#d9d3e3,#b9c8d8);
  border-radius:var(--radius-sm);
  position:relative; overflow:hidden;
}
.bf-petsit__photo img{width:100%; height:100%; object-fit:cover; display:block}
.bf-petsit__photo::after{
  content:attr(data-name); position:absolute; bottom:4px; left:0; right:0;
  text-align:center; color:#fff; font-size:.65rem; letter-spacing:.05em;
  background:rgba(0,0,0,.45); padding:.15rem;
  font-family:var(--font-body); font-weight:600;
}
.bf-petsit__photo img + ::after,
.bf-petsit__photo:has(img)::after{display:none}
.bf-petsit__list{list-style:none; padding:0; margin:0 0 var(--space-md); flex:1}
.bf-petsit__list li{
  position:relative; padding-left:1.5rem; margin-bottom:.45rem; font-size:.92rem;
}
.bf-petsit__list li::before{content:"♥"; position:absolute; left:0; color:var(--color-rose)}
.bf-petsit__price{
  font-family:var(--font-display); font-size:1.9rem;
  color:var(--color-rose); font-weight:600; line-height:1;
  padding-top:var(--space-md); border-top:1px solid var(--color-line);
  font-variant-numeric:tabular-nums; letter-spacing:-.01em;
}
.bf-petsit__price span{
  font-family:var(--font-body); font-size:.9rem; color:var(--color-muted);
  font-weight:500; margin-left:.3rem; letter-spacing:0;
}

/* ===== Photo grid (3-col for "Notre espace") ===== */
.bf-photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-md); margin-bottom:var(--space-xl)}
.bf-photo-grid__item{
  aspect-ratio:4/3; background:#E0DCE8;
  border-radius:var(--radius-md); overflow:hidden;
}
.bf-photo-grid__item img{width:100%; height:100%; object-fit:cover}

/* ===== Responsive ===== */
@media (max-width:980px){
  .bf-cards, .bf-reviews-widget, .bf-icon-cards, .bf-photo-grid{grid-template-columns:repeat(2,1fr)}
  .bf-pricing{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .bf-petsit{grid-template-columns:1fr}
}
@media (max-width:480px){
  .bf-cards, .bf-reviews-widget, .bf-icon-cards, .bf-photo-grid, .bf-pricing{grid-template-columns:1fr}
}
