/* ===== Bandeau d'annonce (au-dessus du hero, activable via Customizer) ===== */
.bf-annonce{
  background:linear-gradient(90deg, rgba(234,81,131,.12), rgba(234,81,131,.06));
  border-bottom:1px solid rgba(234,81,131,.25);
  padding:var(--space-md) 0;
  margin-top:var(--header-h);
}
.bf-annonce__inner{
  display:flex; align-items:center; gap:var(--space-lg);
  flex-wrap:wrap;
}
.bf-annonce__media{
  flex-shrink:0; width:120px; height:80px;
  border-radius:var(--radius-md); overflow:hidden;
}
.bf-annonce__media img{width:100%; height:100%; object-fit:cover}
.bf-annonce__body{flex:1; min-width:240px}
.bf-annonce__title{
  font-size:1.15rem; margin:0 0 .25rem;
  color:var(--color-rose); font-family:var(--font-display); font-weight:600;
}
.bf-annonce__text{margin:0 0 .5rem; color:var(--color-text); font-size:.95rem}
.bf-annonce .btn{padding:.55rem 1.2rem; font-size:.85rem; min-height:auto}
.bf-annonce + .bf-hero{margin-top:0}
.bf-annonce + .bf-hero{padding-top:var(--space-2xl)}
@media (max-width:768px){
  .bf-annonce{margin-top:var(--header-h-mobile)}
  .bf-annonce__media{width:80px; height:60px}
}

/* ===== Hero ===== */
.bf-hero{
  position:relative; min-height:100vh;
  padding-top:calc(var(--header-h) + var(--space-2xl));
  padding-bottom:var(--space-2xl);
  display:flex; align-items:center;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0px, transparent 30px,
      rgba(234,81,131,0.10) 30px, rgba(234,81,131,0.10) 46px,
      transparent 46px, transparent 74px,
      rgba(255,255,255,0.06) 74px, rgba(255,255,255,0.06) 86px
    ),
    linear-gradient(160deg, #0C5285 0%, #0A3D6B 60%, #082F55 100%);
  color:#fff;
  overflow:hidden;
}
.bf-hero__bg-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0; opacity:.55;
}
.bf-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,40,70,.55) 0%, rgba(8,40,70,.85) 100%);
  z-index:1; pointer-events:none;
}
.bf-hero::after{
  content:""; position:absolute; right:-8%; bottom:-10%; width:560px; height:560px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(234,81,131,.28), transparent 65%);
  pointer-events:none; z-index:1;
}
.bf-hero__inner{position:relative; z-index:2; max-width:880px}
.bf-hero .eyebrow{color:rgba(255,255,255,.7)}
.bf-hero h1{color:#fff; margin-top:var(--space-md); margin-bottom:var(--space-lg)}
.bf-hero h1 .accent{color:var(--color-rose); font-style:italic}
.bf-hero__services{
  display:block;
  font-family:var(--font-body);
  font-size:clamp(1rem, 1.5vw, 1.25rem);
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#fff;
  opacity:.9;
  margin-bottom:var(--space-xl);
}
.bf-hero__services .dot{color:var(--color-rose); margin:0 .6rem; font-weight:700}
.bf-hero__ctas{display:flex; gap:var(--space-md); flex-wrap:wrap}

.bf-scroll-cue{
  position:absolute; bottom:var(--space-xl); left:50%; transform:translateX(-50%);
  color:#fff; opacity:.7; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.6rem; z-index:2;
  animation:bf-bounce 2.2s ease-in-out infinite;
}
.bf-scroll-cue svg{width:18px; height:18px}
@keyframes bf-bounce{0%,100%{transform:translate(-50%,0)} 50%{transform:translate(-50%,8px)}}

/* Hero variants for sub-pages: shorter, content-aligned */
.bf-hero--page{
  min-height:auto;
  padding-top:calc(var(--header-h) + var(--space-xl));
  padding-bottom:var(--space-xl);
}

/* ===== Reassurance bar ===== */
.bf-reassure{
  background:var(--color-off-white);
  padding:var(--space-xl) 0;
  border-bottom:1px solid var(--color-line);
}
.bf-reassure__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-lg);
  text-align:center;
}
.bf-reassure__item{display:flex; flex-direction:column; align-items:center; gap:.4rem}
.bf-reassure__icon{
  width:48px; height:48px; border-radius:50%;
  display:grid; place-items:center;
  background:#fff; color:var(--color-rose);
  border:1px solid var(--color-line);
  font-size:1.2rem;
}
.bf-reassure__label{font-size:.95rem; font-weight:600; color:var(--color-text)}
.bf-reassure__sub{font-size:.78rem; color:var(--color-muted)}

/* ===== Pick-up banner ===== */
.bf-pickup{
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0px, transparent 30px,
      rgba(234,81,131,0.08) 30px, rgba(234,81,131,0.08) 46px,
      transparent 46px, transparent 74px,
      rgba(255,255,255,0.04) 74px, rgba(255,255,255,0.04) 86px
    ),
    linear-gradient(135deg, #0C5285 0%, #082F55 100%);
  color:#fff;
  padding:var(--space-xl) 0;
}
.bf-pickup__inner{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:var(--space-lg);
}
.bf-pickup h2{color:#fff; margin:0 0 .35rem; font-size:clamp(1.5rem,2.5vw,2rem)}
.bf-pickup p{color:rgba(255,255,255,.8); margin:0}

/* ===== Gallery Avant/Après ===== */
.bf-gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-md)}
.bf-gallery__item{
  position:relative; aspect-ratio:3/4; overflow:hidden;
  border-radius:var(--radius-md); cursor:pointer;
  background:#E0DCE8;
}
.bf-gallery__before, .bf-gallery__after{
  position:absolute; inset:0; transition:opacity .35s ease;
  width:100%; height:100%; object-fit:cover;
}
.bf-gallery__before{opacity:1}
.bf-gallery__after{opacity:0}
.bf-gallery__item:hover .bf-gallery__before,
.bf-gallery__item:focus-within .bf-gallery__before{opacity:0}
.bf-gallery__item:hover .bf-gallery__after,
.bf-gallery__item:focus-within .bf-gallery__after{opacity:1}
.bf-gallery__label{
  position:absolute; bottom:var(--space-md); left:var(--space-md); z-index:2;
  background:rgba(0,0,0,.6); color:#fff; padding:.3rem .7rem;
  border-radius:var(--radius-pill); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  font-weight:600;
}

/* ===== Geo ===== */
.bf-geo{display:grid; grid-template-columns:1fr 1.1fr; gap:var(--space-xl); align-items:center}
.bf-geo__map{
  aspect-ratio:5/4; background:#dde3ea;
  border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--color-line);
}
.bf-geo__map iframe{width:100%; height:100%; border:0; display:block}
.bf-tags{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:var(--space-md)}
.bf-tag{
  background:#fff; border:1px solid var(--color-line);
  padding:.45rem .9rem; border-radius:var(--radius-pill);
  font-size:.82rem; color:var(--color-text); font-weight:500;
}

/* ===== Instagram feed (fallback + wrapper si le shortcode Smash Balloon n'est pas installé) ===== */
.bf-insta{display:grid; grid-template-columns:repeat(6,1fr); gap:.6rem; max-width:1100px; margin:0 auto}
.bf-insta__tile{
  position:relative; aspect-ratio:1/1; overflow:hidden;
  border-radius:var(--radius-sm);
  background:linear-gradient(135deg, #d9d3e3 0%, #b9c8d8 100%);
  cursor:pointer; transition:transform .25s;
}
.bf-insta__tile:hover{transform:scale(1.03)}
.bf-insta__cta{text-align:center; margin-top:var(--space-lg)}
.bf-insta__cta a{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--color-rose); font-weight:600; font-size:.95rem;
}
.bf-insta__cta a:hover{color:var(--color-rose-dark)}
@media (max-width:980px){ .bf-insta{grid-template-columns:repeat(3,1fr)} }
@media (max-width:480px){ .bf-insta{grid-template-columns:repeat(2,1fr)} }
/* Smash Balloon override — assurer la cohérence visuelle */
.sb_instagram_header{display:none !important}

/* ===== CTA bar ===== */
.bf-cta-bar{
  background:var(--color-rose); color:#fff;
  padding:var(--space-xl) 0;
  text-align:center;
}
.bf-cta-bar h2{color:#fff; margin:0 0 var(--space-sm); font-size:clamp(1.5rem, 2.5vw, 2rem)}
.bf-cta-bar p{color:rgba(255,255,255,.9); margin:0 0 var(--space-md)}
.bf-cta-bar .btn{background:#fff; color:var(--color-rose); border-color:#fff}
.bf-cta-bar .btn:hover{background:var(--color-navy); color:#fff; border-color:var(--color-navy)}

/* ===== Notice block (reservation by phone) ===== */
.bf-notice{
  background:#FFF6E5; border-left:4px solid #F5B400;
  padding:var(--space-md) var(--space-lg);
  border-radius:var(--radius-sm);
  margin:var(--space-md) 0 var(--space-lg);
  display:flex; flex-wrap:wrap; gap:var(--space-md); align-items:center; justify-content:space-between;
}
.bf-notice__text{color:#7a5a00; font-weight:500; margin:0; flex:1; min-width:240px}
.bf-notice__text strong{color:#5c4400}

/* ===== Two-column lists (included/options, conditions) ===== */
.bf-two-col{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-xl)}
.bf-two-col h3{margin-bottom:var(--space-md)}
.bf-list{list-style:none; padding:0; margin:0}
.bf-list li{
  position:relative; padding-left:1.8rem; margin-bottom:.6rem;
  font-size:.95rem; line-height:1.5;
}
.bf-list--check li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--color-rose); font-weight:700; font-size:1.1rem;
}
.bf-list--cross li::before{
  content:"✗"; position:absolute; left:0; top:0;
  color:#c44; font-weight:700; font-size:1.1rem;
}

/* ===== Steps (numbered) ===== */
.bf-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-lg); counter-reset:bf-step}
.bf-step{
  background:#fff; border:1px solid var(--color-line);
  border-radius:var(--radius-md);
  padding:var(--space-lg);
  position:relative;
  counter-increment:bf-step;
}
.bf-step::before{
  content:counter(bf-step, decimal-leading-zero);
  display:block;
  font-family:var(--font-display);
  font-size:2rem; color:var(--color-rose);
  margin-bottom:var(--space-sm);
  line-height:1;
}
.bf-step h3{font-size:1.1rem; margin-bottom:.4rem}
.bf-step p{color:var(--color-muted); font-size:.92rem; margin:0}

/* ===== About page intro quote ===== */
.bf-about-intro{
  text-align:center;
  font-family:var(--font-display);
  font-size:clamp(1.6rem, 3vw, 2.4rem);
  line-height:1.3;
  color:var(--color-rose);
  max-width:820px; margin:0 auto var(--space-xl);
  font-style:italic;
}

/* ===== Contact info card ===== */
.bf-contact-info{
  background:#fff; border:1px solid var(--color-line);
  border-radius:var(--radius-md);
  padding:var(--space-xl);
  display:grid; grid-template-columns:1fr 1fr; gap:var(--space-lg);
}
.bf-contact-info h3{margin:0 0 .5rem; font-size:1.1rem; color:var(--color-rose)}
.bf-contact-info p, .bf-contact-info a{font-size:1rem; margin:0; color:var(--color-text)}
.bf-contact-info a:hover{color:var(--color-rose)}

/* ===== Responsive ===== */
@media (max-width:980px){
  .bf-reassure__grid{grid-template-columns:repeat(2,1fr)}
  .bf-gallery{grid-template-columns:repeat(2,1fr)}
  .bf-geo{grid-template-columns:1fr}
  .bf-pickup__inner{grid-template-columns:1fr; text-align:left}
  .bf-two-col{grid-template-columns:1fr; gap:var(--space-lg)}
  .bf-steps{grid-template-columns:repeat(2,1fr)}
  .bf-contact-info{grid-template-columns:1fr}
}
@media (max-width:768px){
  .bf-hero{padding-top:calc(var(--header-h-mobile) + var(--space-xl))}
  .bf-hero__ctas .btn{width:100%}
  .bf-hero__services{letter-spacing:.16em}
  .bf-hero__services .dot{margin:0 .35rem}
  .bf-mobile-cta ~ * .bf-cta-bar,
  body.has-mobile-cta .bf-cta-bar{padding-bottom:calc(var(--space-xl) + 72px)}
}
@media (max-width:480px){
  .bf-reassure__grid{grid-template-columns:1fr}
  .bf-gallery{grid-template-columns:1fr}
  .bf-steps{grid-template-columns:1fr}
}
