:root{
  --brand:#7EC8E3; --brand-light:#CFEFFF; --brand-dark:#2B6C8F;
  --accent:#FFD1DC; --accent-dark:#E5BCC6;
  --sun:#F3C046; --cream:#FFF9F3; --line:#e2e8f0;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}

/* === Fond global du site === */
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:#1f2937;
  background: url('/images/theme-canvas.jpg') center top / cover no-repeat fixed;
}

/* Liens */
a{color:var(--brand);text-decoration:none}
a:hover{opacity:.9}

/* Conteneur */
.container{max-width:1120px;margin-inline:auto;padding:2.5rem 1rem}

/* Header */
.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.85);backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.header .inner{display:flex;align-items:center;justify-content:space-between;padding:1rem}
.brand{display:flex;gap:.5rem;align-items:center;font-weight:700;font-size:1.25rem;color:#2B6C8F}
.nav{display:flex;gap:1rem;}
.nav a{margin-left:0;color:#334155}
.nav a:hover{color:#2B6C8F}

/* Footer */
.footer{border-top:1px solid var(--line);background:#fff}
.footer .inner{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;color:#64748b;padding:2rem 1rem}

/* HERO (carré central) */
.hero{
  position:relative;overflow:hidden;border-radius:28px;
  min-height:540px;
  background:#fff;
  box-shadow:0 18px 40px -18px rgba(23,37,84,.25);
}
.hero::before,.hero::after{content:none !important;background:none !important;}
.hero .content{position:relative;padding:3rem;max-width:880px}
.badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.92);color:#0f172a;padding:.4rem .8rem;border-radius:999px;font-size:.75rem;font-weight:600;box-shadow:0 10px 20px -12px rgba(23,37,84,.2);margin-bottom:.75rem}
.h1{font-family:Poppins, Inter, system-ui, sans-serif;font-weight:700;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin:.5rem 0;color:#1f2937}
.lead{font-size:1.125rem;color:#334155}

/* CTA & boutons */
.cta{display:inline-block;background:var(--sun);color:#111827;font-weight:700;border-radius:14px;padding:.9rem 1.1rem;}
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--brand);color:#fff;border-radius:12px;padding:.7rem 1rem;}
.btn:hover{background:var(--brand-dark)}
.actions{display:flex;gap:1rem;flex-wrap:wrap}

/* Grilles */
.grid{display:grid;gap:1.5rem}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Typo utilitaires */
.prose{color:#374151;line-height:1.7}
.small{font-size:.85rem;color:#64748b;}

/* Hamburger button */
.hamburger{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;}
ul.clean{list-style:none;padding-left:0}
ul.clean li{margin:.4rem 0}

/* Responsive */
@media (max-width:860px){
  .nav{display:none;}
  .nav.open{display:flex; flex-direction:column; gap:0.5rem; margin-top:1rem;}
  .header .inner{flex-direction:column; align-items:flex-start;}
  .hamburger{display:block;margin-left:auto;}
  .grid.cols-2,.grid.cols-3{grid-template-columns:1fr;}
  .hero{min-height:480px;}
}

/* === Cartes rectangulaires arrondies (style classique) === */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:1.25rem;
  box-shadow:0 12px 30px -12px rgba(23,37,84,.15);
  text-align: justify;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 1rem;
}

.gallery img {
  width: 100%;
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
  object-fit: cover;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.gallery img:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
/* Rotation spéciale pour une image */
.rotate90 {
  transform: rotate(90deg);
}
/* Empêche clic droit */
body {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
body[oncontextmenu] {
  pointer-events: auto;
}
/* Galerie option 2 */
.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 1rem;
}
.gallery figure {
  position: relative;
  margin: 0;
}
.gallery img {
  width: 100%;
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
  object-fit: cover;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: block;
}
.gallery img:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
/* Calque transparent pour bloquer clic droit */
.gallery figure .overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: transparent;
  pointer-events: none;
}
