/* ===== Broches & Brioches — assets/site.css (STABLE) ===== */
:root{ --pink:#ffb6d3; --text:#222; --muted:#666; --bg:#fff; --maxw:1100px; --border:#eee; }
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; line-height:1.5; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }

/* Header */
.topband{ background:var(--pink); color:#fff; }
.topband .inner{ max-width:var(--maxw); margin:0 auto; padding:10px 16px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; }
.topband__logo img{ height:48px; width:auto; }
.nav{ display:flex; align-items:center; justify-content:center; gap:16px; }
.nav a{ color:#fff; font-weight:700; padding:8px 10px; border-radius:10px; }
.nav a:hover,.nav a.active{ background:rgba(255,255,255,.15); }

/* Hero (background image) */
.hero{ min-height:36vh; background-size:cover; background-position:center; display:grid; place-items:center; text-align:center; color:#fff; }
.hero__inner{ padding:36px 20px; max-width:var(--maxw); margin:auto; }
.hero h1{ font-size:32px; margin:0 0 10px; }
.tagline{ font-size:18px; opacity:.95; margin:0 0 18px; }
.btn{ display:inline-block; padding:10px 16px; border-radius:999px; font-weight:700; border:1px solid #0000; }
.btn.pink{ background:#fff; color:#222; border-color:#fff3; }
.btn.ghost{ background:transparent; color:#fff; border-color:#fff9; }

/* Layout */
.container{ max-width:var(--maxw); margin:0 auto; padding:20px 16px 40px; }
.card{ background:#fff; border:1px solid var(--border); border-radius:12px; padding:16px; }
.muted{ color:var(--muted); }

/* Gallery */
.gallery .grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; }
.tile{ overflow:hidden; border-radius:12px; }
.tile img{ width:100%; aspect-ratio:4/3; object-fit:cover; }

/* Footer */
.bottomband{ background:var(--pink); color:#fff; }
.bottomband .inner{ max-width:var(--maxw); margin:0 auto; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.footcopy{ text-align:center; font-weight:500; }

@media (max-width:680px){
  .topband .inner{ grid-template-columns:1fr auto 1fr; }
  .nav{ grid-column:2; }
  .topband__logo{ display:none; }
  .hero{ min-height:28vh; }
  .hero h1{ font-size:28px; }
  .tagline{ font-size:16px; }
}


/* === Footer visible & collé en bas === */
html, body { height: 100%; }
body { display: flex; flex-direction: column; }
main, .container { flex: 1 0 auto; }

.bottomband{ background: var(--pink); color:#fff; margin-top: 24px; }
.bottomband.fullbleed{ width:100%; }
.bottomband .inner{ max-width: var(--maxw); margin:0 auto; padding:12px 16px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; }
.bottomband__logo img{ height:44px; width:auto; }
.footcopy{ text-align:center; font-weight:600; }

@media (max-width:680px){
  .bottomband .inner{ grid-template-columns:1fr auto 1fr; }
  .bottomband__logo{ display:none; } /* logos masqués sur mobile si ça serre */
}


/* === UX micro‑interactions for buttons === */
.btn{
  position: relative;
  isolation: isolate; /* ensure ripple stays above but clipped */
  transition: transform .08s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
  box-shadow: 0 0 0 0 rgba(0,0,0,0);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,.08);
}
.btn:active{
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(0,0,0,.12) inset;
}
.btn.pink{
  background: var(--pink);
  color: #222;
  border-color: var(--pink);
}
.btn.pink:hover{
  filter: brightness(1.02);
}
.btn .ripple{
  position:absolute;
  inset:auto auto 0 0;
  width:0; height:0;
  pointer-events:none;
  border-radius:50%;
  transform:translate(-50%,-50%);
  opacity:.35;
  background:#fff;
  mix-blend-mode: overlay;
  animation:ripple .6s ease-out forwards;
  z-index: 1;
}
@keyframes ripple{
  from{ width:0; height:0; opacity:.35; }
  to{ width:360px; height:360px; opacity:0; }
}
/* Loading / success states */
.btn.is-loading{ pointer-events:none; opacity:.8; }
.btn.is-loading::after{
  content:"";
  position:absolute; inset:0;
  display:block;
  background: radial-gradient(circle at center, #fff8 0 30%, transparent 31%);
  animation: pulse 0.9s ease-in-out infinite;
  border-radius: inherit;
}
@keyframes pulse{ 50%{ transform: scale(1.015); } }

.img-missing{ object-fit:contain !important; background:#f6f6f6; }

.btn.pulse{
  animation: pulse-success .6s ease;
}
@keyframes pulse-success{
  0%{ transform:scale(1); }
  40%{ transform:scale(1.1); }
  100%{ transform:scale(1); }
}

/* Toast notification */
.toast {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  background: var(--pink);
  color: #222;
  padding: 12px 20px;
  border-radius: 12px;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  opacity: 0;
  pointer-events: none;
  transition: transform .3s ease, opacity .3s ease;
  z-index: 9999;
}
.toast.show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}
