:root{
  --bg:#f6f2ea; --card:#ffffff; --text:#111114; --muted:#4b4b53;
  --line:rgba(17,17,20,.10); --shadow:0 10px 30px rgba(17,17,20,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{font-size:17px;margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;
  color:var(--text); background:var(--bg);
  line-height:1.45;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
a{color:inherit;text-decoration:none}
a:hover{opacity:.85}

.container{max-width:1080px;margin:0 auto;padding:28px 18px}

/* Topbar */
.topbar{
  position:sticky; top:0; z-index:10;
  backdrop-filter:saturate(180%) blur(12px);
  background:rgba(246,242,234,.75);
  border-bottom:1px solid var(--line);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;flex-direction:column}
.brand strong{font-size:15px;letter-spacing:.2px}
.brand span{font-size:12px;color:var(--muted)}
.nav{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.nav a{font-size:13px;color:var(--muted);padding:8px 10px;border-radius:999px}
.nav a.active,.nav a:hover{background:rgba(17,17,20,.06);color:var(--text)}

/* Hero */
.hero{padding:64px 0 24px; min-height:160px}
.kicker{font-size:12px;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}
h1{font-size:39px;line-height:1.08;margin:12px 0 14px}
.lead{font-size:16px;color:var(--muted);max-width:820px}
.hero-centered{text-align:center}
.hero-centered .lead,
.hero-centered .cta-row,
.hero-centered .badges{justify-content:center;margin-left:auto;margin-right:auto}

/* Buttons */
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 16px;border-radius:999px;border:1px solid var(--line);
  background:var(--card); box-shadow:var(--shadow);
  font-weight:600;font-size:13px;
}
.btn.primary{background:#111114;color:#fff;border-color:#111114;box-shadow:none}
.btn.ghost{background:transparent;box-shadow:none}

/* Badges */
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.badge{
  font-size:12px;color:var(--muted);
  border:1px solid var(--line); border-radius:999px;
  padding:8px 10px; background:rgba(255,255,255,.55)
}

/* Grid / Cards */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin:22px 0 0}
.col-4{grid-column:span 4}
.col-6{grid-column:span 6}
.col-8{grid-column:span 8}
.col-12{grid-column:span 12}

.card{
  position:relative;
  background:var(--card);
  border:1px solid rgba(17,17,20,.12);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:0 2px 0 rgba(17,17,20,.08), 0 18px 36px rgba(17,17,20,.10);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.70) 0%, rgba(255,255,255,.30) 18%, rgba(255,255,255,0) 45%);
  opacity:.40;
}
.card:hover{
  transform:translateY(-3px);
  box-shadow:0 3px 0 rgba(17,17,20,.10), 0 22px 44px rgba(17,17,20,.12);
  border-color:rgba(17,17,20,.16);
}
.card h2{margin:0 0 8px;font-size:17px;position:relative}
.card p{margin:0;color:var(--muted);font-size:13px;position:relative}

.section-title{margin:34px 0 10px;font-size:14px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.list{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.item{
  display:flex;gap:10px;align-items:flex-start;
  padding:12px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.55)
}
.dot{width:10px;height:10px;border-radius:50%;background:#111114;margin-top:5px;flex:0 0 10px}
.item strong{display:block;font-size:13px}
.item span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.small{font-size:12px;color:var(--muted)}
hr{border:none;border-top:1px solid var(--line);margin:18px 0}

/* Compact (Home & pages) */
.hero-compact{padding:64px 0 24px; min-height:160px}
.h1-compact{font-size:30px;margin:10px 0 10px}
.lead-compact{font-size:14px;margin:0;max-width:860px}
.badges-compact{margin-top:10px}
.badges-compact .badge{padding:7px 9px;font-size:11px}
.grid-compact{margin-top:10px;margin-bottom:18px}
.footer-compact{margin-top:18px;padding:14px 0}

/* Responsive */
@media (max-width:880px){
  h1{font-size:32px}
  .col-4,.col-6,.col-8{grid-column:span 12}
  .h1-compact{font-size:28px}
  .lead-compact{white-space:normal}
}

/* ===== STICKY FOOTER (le bon, unique, global) ===== */
main.container{flex:1 0 auto}
.footer{
  margin-top:auto;
  padding:18px 0;
  color:var(--muted);
  font-size:12px;
  border-top:1px solid var(--line);
  text-align:center;
}

/* ===== CONTACT: verrouille la grille + actions ===== */
body.page-contact-info form .grid,
body.page-contact-devis form .grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
body.page-contact-info .form-actions,
body.page-contact-devis .form-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  margin-top:16px;
}

/* =========================
   FORMS (contact-info / contact-devis) — classes propres
   ========================= */
.form-shell{
  max-width:920px;
  margin:18px auto 0;
  padding:16px;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.field{
  display:block;
  padding:12px;
}

.control{
  width:100%;
  margin-top:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  font:inherit;
}

textarea.control{
  min-height:140px;
  resize:vertical;
}

.form-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  margin-top:16px;
}

/* Responsive: formulaire en 1 colonne */
@media (max-width:880px){
  .form-grid{grid-template-columns:1fr}
}

/* Fix Formules : hero trop bas */
.hero-formules{
  padding-top:48px;
}

/* ===== FIX FORMULES : remonter le bloc (titre + cartes) ===== */
body.page-formules main.container{ padding-top: 14px !important; }
body.page-formules .hero.hero-compact{
  padding-top: 34px !important;
  padding-bottom: 16px !important;
  margin-bottom: 10px !important;
}

/* ===== FIX FORMULES : remonter le bloc (titre + cartes) ===== */
body.page-formules main.container{ padding-top: 14px !important; }
body.page-formules .hero.hero-compact{
  padding-top: 34px !important;
  padding-bottom: 16px !important;
  margin-bottom: 10px !important;
}

/* ===== FORMULES — MOVE UP (hard) ===== */
body.page-formules .hero.hero-compact.hero-centered{
  padding-top: 18px !important;   /* remonte le titre "Formules" */
  padding-bottom: 10px !important;
  margin-bottom: 0 !important;
}
body.page-formules .grid.grid-compact{
  margin-top: -18px !important;   /* remonte les 3 cartes */
}


/* ===== FIX SCROLL (page Formules uniquement) ===== */
body.page-formules .grid-compact{ margin-bottom: 0 !important; }
body.page-formules main.container{ padding-bottom: 0 !important; }
