/* ===== 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}
/* Variante logo : montre le logo en entier, jamais coupé (boutique / partenaires) */
.bf-card__media--logo{background:#fff}
.bf-card__media--logo img{object-fit:contain; padding:var(--space-md)}
.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);
  box-shadow:
    0 0 0 3px rgba(234,81,131,.18),
    0 0 12px 2px rgba(234,81,131,.55),
    0 0 22px 6px rgba(234,81,131,.28);
  animation:bf-badge-glow 2.4s ease-in-out infinite;
}
@keyframes bf-badge-glow{
  0%, 100%{
    box-shadow:
      0 0 0 3px rgba(234,81,131,.18),
      0 0 10px 2px rgba(234,81,131,.45),
      0 0 20px 6px rgba(234,81,131,.22);
  }
  50%{
    box-shadow:
      0 0 0 4px rgba(234,81,131,.24),
      0 0 16px 4px rgba(234,81,131,.65),
      0 0 30px 10px rgba(234,81,131,.35);
  }
}
@media (prefers-reduced-motion: reduce){
  .bf-badge{animation:none}
}

/* ===== 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-md);
  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)}

/* ===== Reviews carousel ===== */
.bf-reviews-carousel{position:relative}
.bf-reviews-carousel__viewport{overflow:hidden}
.bf-reviews-carousel__track{
  display:flex; gap:var(--space-lg);
  transition:transform .4s ease;
  will-change:transform;
  align-items:flex-start;
}
.bf-reviews-carousel .bf-review{
  flex:0 0 calc((100% - 2 * var(--space-lg)) / 3);
  display:flex; flex-direction:column;
  gap:.5rem;
  margin:0;
  padding:var(--space-lg);
}
/* Ordre : head (avatar + auteur) → étoiles → texte */
.bf-reviews-carousel .bf-review__head{
  order:1;
  display:flex; align-items:center; gap:.6rem;
  margin:0;
}
.bf-reviews-carousel .bf-review__author{
  margin:0;
  font-weight:600;
  color:var(--color-text);
  font-size:.95rem;
}
.bf-reviews-carousel .bf-review__avatar{
  width:36px; height:36px; border-radius:50%;
  object-fit:cover;
  background:#F0EDE7; color:var(--color-navy);
  flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:600; font-size:.95rem;
  border:1px solid var(--color-line);
}
.bf-reviews-carousel .bf-review__avatar--initial{
  text-transform:uppercase;
}
.bf-reviews-carousel .bf-review__stars{
  order:2;
  margin:0;
  font-size:.9rem;
}
.bf-reviews-carousel .bf-review__text{
  order:3;
  margin:0;
  line-height:1.55;
}
.bf-reviews-carousel .bf-review__text:empty{display:none}
.bf-reviews-carousel__controls{
  display:flex; justify-content:center; align-items:center;
  gap:var(--space-md); margin-top:var(--space-lg);
}
.bf-reviews-carousel__arrow{
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1.5px solid var(--color-rose); color:var(--color-rose);
  cursor:pointer; font-size:1.5rem; line-height:1;
  display:grid; place-items:center;
  transition:background .2s, color .2s, transform .15s;
  padding:0; font-family:inherit;
}
.bf-reviews-carousel__arrow:hover{background:var(--color-rose); color:#fff; transform:scale(1.06)}
.bf-reviews-carousel__arrow:disabled{opacity:.35; cursor:not-allowed; transform:none}
.bf-reviews-carousel__dots{display:flex; gap:.5rem; align-items:center}
.bf-reviews-carousel__dot{
  width:8px; height:8px; border-radius:50%;
  background:rgba(234,81,131,.3); border:none;
  cursor:pointer; padding:0;
  transition:background .2s, width .2s;
}
.bf-reviews-carousel__dot.is-active{
  background:var(--color-rose); width:24px; border-radius:4px;
}
@media (max-width:980px){
  .bf-reviews-carousel .bf-review{
    flex:0 0 calc((100% - var(--space-lg)) / 2);
  }
}
@media (max-width:640px){
  .bf-reviews-carousel .bf-review{flex:0 0 100%}
}

/* ===== 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)}
/* Mini-carrousel horizontal des photos de sitters */
.bf-petsit__photos{
  display:flex; gap:.6rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  margin-bottom:var(--space-md);
  padding-bottom:8px;
  scrollbar-width:thin;
  scrollbar-color:var(--color-rose) rgba(0,0,0,.05);
}
.bf-petsit__photos::-webkit-scrollbar{height:6px}
.bf-petsit__photos::-webkit-scrollbar-track{background:rgba(0,0,0,.05); border-radius:3px}
.bf-petsit__photos::-webkit-scrollbar-thumb{background:var(--color-rose); border-radius:3px}
.bf-petsit__photos::-webkit-scrollbar-thumb:hover{background:var(--color-rose-dark)}

.bf-petsit__photo{
  flex:0 0 calc((100% - 1.2rem) / 3);
  aspect-ratio:1/1;
  background:linear-gradient(135deg,#d9d3e3,#b9c8d8);
  border-radius:var(--radius-sm);
  position:relative; overflow:hidden;
  scroll-snap-align:start;
}
.bf-petsit__photo img{width:100%; height:100%; object-fit:cover; display:block}
.bf-petsit__photo::after{
  content:attr(data-name);
  position:absolute; bottom:0; left:0; right:0;
  text-align:center; color:#fff;
  font-size:.7rem; letter-spacing:.03em;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.75));
  padding:.6rem .3rem .3rem;
  font-family:var(--font-body); font-weight:600;
  pointer-events:none;
}
@media (max-width:480px){
  .bf-petsit__photo{flex:0 0 calc((100% - .6rem) / 2)}
}
.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;
}

/* ===== Petsit tiers (mini-liste tarifaire dans la carte dog-sitting) ===== */
.bf-petsit__tiers{
  padding-top:var(--space-md); border-top:1px solid var(--color-line);
  display:flex; flex-direction:column; gap:.75rem;
}
.bf-petsit__tier{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem;
  padding:.7rem .85rem; background:rgba(234,81,131,.05);
  border-radius:var(--radius-sm);
}
.bf-petsit__tier-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:#fff; color:var(--color-rose);
  font-size:1.1rem; flex-shrink:0;
  border:1px solid rgba(234,81,131,.25);
}
.bf-petsit__tier-body{display:flex; flex-direction:column; gap:.15rem; min-width:0}
.bf-petsit__tier-name{font-weight:600; font-size:.95rem; color:var(--color-text)}
.bf-petsit__tier-desc{font-size:.82rem; color:var(--color-muted); line-height:1.35}
.bf-petsit__tier-price{
  text-align:right; font-family:var(--font-display);
  font-size:1.35rem; color:var(--color-rose); font-weight:600; line-height:1;
  font-variant-numeric:tabular-nums;
}
.bf-petsit__tier-price span{
  display:block; font-family:var(--font-body); font-size:.72rem;
  color:var(--color-muted); font-weight:500; margin-top:.15rem;
}

/* ===== 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}
}
