/* ═══ Styles partagés CaviaLink : en-tête + pied de page + base ═══ */
:root {
  --green:#3f5532; --green-dark:#2f4226; --green-soft:#4c6a3c;
  --lin:#faf8f4; --white:#ffffff; --text:#23281f; --muted:#6a7060; --border:#e6e1d6;
  --header-h:66px;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--text); line-height:1.6; background:var(--lin); }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }

/* ── En-tête ── */
header.site {
  position:sticky; top:0; z-index:100; height:var(--header-h);
  background:var(--green); color:#fff; display:flex; align-items:center; justify-content:space-between;
  padding:0 22px; box-shadow:0 2px 12px rgba(0,0,0,.12);
}
header.site .brand { font-size:30px; font-weight:800; letter-spacing:-.5px; color:#fff; }
.header-right { display:flex; align-items:center; gap:18px; }
header.site nav { display:flex; align-items:center; }
header.site nav .links { display:flex; gap:22px; }
header.site nav a.link { color:#eef3e8; font-size:15px; font-weight:600; padding:6px 0; border-bottom:2px solid transparent; }
header.site nav a.link:hover { color:#fff; border-color:#cfe0be; }

.lang-switch { position:relative; }
.lang-current { display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.14); border:0;
  color:#fff; font-size:19px; line-height:1; cursor:pointer; padding:7px 11px; border-radius:11px; }
.lang-current:hover { background:rgba(255,255,255,.24); }
.lang-current .caret { font-size:11px; opacity:.85; }
.lang-menu { position:absolute; top:calc(100% + 10px); right:0; min-width:180px; background:#fff;
  border:1px solid var(--border); border-radius:14px; box-shadow:0 14px 36px rgba(0,0,0,.20);
  padding:6px; display:none; z-index:200; }
.lang-menu.open { display:block; }
.lang-opt { display:flex; align-items:center; gap:11px; width:100%; background:transparent; border:0;
  padding:10px 12px; border-radius:9px; font-size:15px; color:var(--text); cursor:pointer; text-align:left; }
.lang-opt:hover { background:var(--lin); }
.lang-opt span { font-weight:600; }
.lang-opt.active { background:#e8f0dd; color:var(--green-dark); }
.burger { display:none; background:transparent; border:0; color:#fff; font-size:26px; cursor:pointer; }

/* ── Pied de page ── */
footer.site { background:var(--green-dark); color:#e4ecdb; padding:56px 0 40px; }
footer.site .fwrap { max-width:1080px; margin:0 auto; padding:0 22px; display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; }
footer.site h4 { color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.8px; margin-bottom:14px; }
footer.site .flinks { display:grid; gap:10px; }
footer.site .flinks a { color:#cfe0be; font-size:14px; }
footer.site .flinks a:hover { color:#fff; text-decoration:underline; }
footer.site .cform { flex:1; min-width:280px; max-width:420px; display:grid; gap:12px; }
footer.site .cform input, footer.site .cform textarea {
  width:100%; border:1px solid rgba(255,255,255,.2); border-radius:10px; padding:12px;
  background:rgba(255,255,255,.06); color:#fff; font-size:14px; font-family:inherit; }
footer.site .cform input::placeholder, footer.site .cform textarea::placeholder { color:#b7c6ab; }
footer.site .cform textarea { min-height:96px; resize:vertical; }
footer.site .cform button { background:#fff; color:var(--green-dark); border:0; border-radius:10px; padding:13px; font-weight:800; font-size:15px; cursor:pointer; }
footer.site .cform button:hover { background:#eef3e8; }
footer.site .copy { text-align:center; color:#a9bb9c; font-size:13px; margin-top:34px; }

/* ── Responsive en-tête ── */
@media (max-width:820px) {
  .burger { display:block; }
  header.site nav { position:absolute; top:var(--header-h); right:0; left:0; background:var(--green-dark);
    flex-direction:column; align-items:stretch; gap:0; padding:8px 0; display:none; }
  header.site nav.open { display:flex; }
  header.site nav .links { flex-direction:column; gap:0; }
  header.site nav a.link { padding:13px 24px; border-bottom:1px solid rgba(255,255,255,.08); }
  header.site .brand { font-size:26px; }
}
