:root {
  --bg:#f8fbfd;
  --card:#ffffff;
  --ink:#243245;
  --muted:#607087;
  --blue:#4da3ff;
  --green:#84d394;
  --radius:18px;
  --shadow:0 16px 30px rgba(77,163,255,0.12);
}
*{box-sizing:border-box;margin:0;padding:0}
body {
  font-family:'Nunito',sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.container {
  width:min(1120px,100% - 2rem);
  margin-inline:auto;
}

/* Header */
.bar {
  position:sticky; top:0;
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(10px);
  border-bottom:1px solid #e3f1ff;
  z-index:10;
}
.bar .container {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 0;
}
.logo {
  text-decoration:none; font-weight:800; font-size:22px;
  color:var(--blue);
}
nav a {
  margin-left:16px; text-decoration:none;
  color:#2c3a4e; font-weight:600; transition:.2s;
}
nav a:hover { color:var(--green); }
.btn {
  padding:10px 16px; border-radius:999px; border:1px solid #cfe7ff;
  background:#fff; color:#2c3a4e; text-decoration:none;
  transition:all .25s ease;
}
.btn:hover { background:#f0f8ff; }
.btn-primary {
  background:var(--blue); color:#fff; border:0; box-shadow:var(--shadow);
}
.btn-primary:hover { background:#3a90e6; }

/* Hero */
.hero {
  position:relative;
  background:url('https://images.unsplash.com/photo-1483794344563-d27a8d18014e?q=80&w=1920&auto=format&fit=crop') center/cover no-repeat;
  min-height:70vh;
  display:grid; place-items:center;
  text-align:center; color:#fff;
}
.hero .overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.3));
}
.hero .container { position:relative; }
.hero h1 {
  font-size:clamp(36px,6vw,64px);
  font-weight:800;
  margin-bottom:12px;
}
.hero h1 span { color:var(--green); }
.hero p { font-size:18px; margin-bottom:20px; }

/* Sections */
.section { padding:80px 0; }
.section.alt { background:#fff; }
h2 { font-size:clamp(26px,3vw,38px); margin-bottom:14px; }
.intro { color:var(--muted); margin-bottom:30px; }

/* Bouquets */
.grid3 {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;
}
.grid3 article {
  background:var(--card); border:1px solid #eaf4ff;
  border-radius:var(--radius); box-shadow:var(--shadow);
  overflow:hidden; transition:transform .25s ease;
}
.grid3 article:hover { transform:translateY(-6px); }
.grid3 img { width:100%; height:240px; object-fit:cover; }
.grid3 h3 { margin:12px 16px 6px; color:var(--blue); }
.grid3 p { margin:0 16px 10px; color:var(--muted); }
.grid3 strong { margin:0 16px 18px; display:block; color:var(--green); font-size:18px; }

/* Mariage */
.gallery {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px; margin:28px 0;
}
.gallery img {
  width:100%; height:220px; object-fit:cover;
  border-radius:14px;
}
.bullets {
  color:var(--muted); padding-left:22px; margin:0 0 20px;
}
.bullets li::marker { color:var(--green); }

/* Abonnements */
.abo {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px;
}
.abo article {
  background:#fff; border:1px solid #eaf4ff;
  border-radius:14px; padding:20px; box-shadow:var(--shadow);
}
.abo strong { color:var(--blue); }

/* Contact */
.contact-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
.form { display:grid; gap:14px; }
input, textarea {
  width:100%; padding:12px; border-radius:10px;
  border:1px solid #d8e8f8; background:#f9fcff;
  font-family:inherit; font-size:15px;
}
button { cursor:pointer; }
.infos p { color:var(--muted); margin:6px 0; }
.map {
  margin-top:10px; height:220px;
  border:1px dashed #cfe7ff; border-radius:12px;
  display:grid; place-items:center; color:#7a90aa;
}

/* Footer */
.foot {
  background:#f0f6fa;
  text-align:center; padding:24px 0; color:#63748a;
  border-top:1px solid #dfeaf2;
  margin-top:40px;
}

/* Responsive */
@media (max-width:960px){
  .contact-grid{grid-template-columns:1fr;}
}
