/* ============================================================
   KEEPT — styles.css
   Palette issue du logo : encre marine, bleu Keept,
   rose / jaune / vert des pétales du pictogramme.
   ============================================================ */

:root{
  --encre:#15173C;        /* marine du logotype */
  --bleu:#4C6BF5;         /* bleu des boutons */
  --bleu-fonce:#3853d8;
  --rose:#E8336E;
  --jaune:#F5C518;
  --vert:#3DBE7B;
  --cyan:#2BB3E6;
  --fond:#F7F7F4;
  --blanc:#FFFFFF;
  --texte:#3A3D52;
  --radius:16px;
  --maxw:1120px;
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-body:"Hanken Grotesk",system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

body{
  font-family:var(--font-body);
  color:var(--texte);
  background:var(--fond);
  line-height:1.6;
  font-size:1.0625rem;
}

h1,h2,h3{font-family:var(--font-display);color:var(--encre);line-height:1.12;font-weight:700}
h1{font-size:clamp(2.4rem,5.5vw,4.2rem);letter-spacing:-.02em}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem);letter-spacing:-.01em}
h3{font-size:1.25rem}

a{color:var(--bleu)}
a:focus-visible,button:focus-visible{outline:3px solid var(--bleu);outline-offset:3px;border-radius:4px}

.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid #E7E7E2;
}
.header .container{display:flex;align-items:center;justify-content:space-between;height:72px}
.nav{display:flex;gap:28px;align-items:center}
.nav a{color:var(--encre);text-decoration:none;font-weight:600;font-size:.95rem}
.nav a:hover{color:var(--bleu)}
.nav .tel{color:var(--bleu);white-space:nowrap}

/* Logo texte (remplacer par l'image du logo si souhaité) */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-mark{display:grid;grid-template-columns:6px 6px;grid-template-rows:6px 6px;gap:3px;transform:rotate(45deg)}
.logo-mark i{width:6px;height:6px;border-radius:3px;display:block}
.logo-mark i:nth-child(1){background:var(--cyan)}
.logo-mark i:nth-child(2){background:var(--rose)}
.logo-mark i:nth-child(3){background:var(--jaune)}
.logo-mark i:nth-child(4){background:var(--vert)}
.logo-word{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--encre)}
.logo-word::after{content:".";color:var(--rose)}

/* ---------- Bandeau disclaimer ---------- */
.bandeau{
  background:#FFF6D6;border-bottom:1px solid #EFDFA0;
  color:#5C4A00;font-size:.95rem;
}
.bandeau .container{display:flex;gap:16px;align-items:center;padding-top:12px;padding-bottom:12px}
.bandeau strong{color:#3F3300}
.bandeau button{
  margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;
  font-size:1.3rem;line-height:1;color:#5C4A00;padding:4px 8px;
}

/* ---------- Hero ---------- */
.hero{
  min-height:calc(100vh - 72px);
  display:flex;align-items:flex-end;
  color:var(--blanc);position:relative;
  background:
    linear-gradient(180deg,rgba(21,23,60,.25) 0%,rgba(21,23,60,.78) 100%),
    linear-gradient(135deg,#1B1E52 0%,#2F3A9E 55%,#4C6BF5 100%);
  /* Quand la photo est prête, décommenter la ligne ci-dessous : */
  /* background:linear-gradient(180deg,rgba(21,23,60,.25),rgba(21,23,60,.78)),url("img/hero.jpg") center/cover no-repeat; */
}
.hero .container{padding-bottom:9vh;padding-top:12vh}
.hero h1{color:var(--blanc);max-width:15ch}
.hero p{max-width:52ch;font-size:1.2rem;margin:20px 0 32px;color:#E7EAFF}
.hero .badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.hero .badges span{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
  padding:6px 14px;border-radius:999px;font-size:.9rem;font-weight:600;
}

/* ---------- Boutons ---------- */
.btn{
  display:inline-block;background:var(--bleu);color:var(--blanc);
  text-decoration:none;font-weight:700;padding:14px 28px;border-radius:999px;
  transition:background .15s ease;font-size:1rem;border:none;cursor:pointer;
}
.btn:hover{background:var(--bleu-fonce)}
.btn.secondaire{background:transparent;color:var(--blanc);border:2px solid rgba(255,255,255,.7);margin-left:12px}
.btn.secondaire:hover{background:rgba(255,255,255,.12)}

/* ---------- Sections ---------- */
.section{padding:88px 0}
.section.blanche{background:var(--blanc)}
.eyebrow{
  display:inline-block;font-weight:700;font-size:.85rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--bleu);margin-bottom:14px;
}
.section-intro{max-width:60ch;margin-top:14px}

/* ---------- Services ---------- */
.grille-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:48px}
.carte{
  background:var(--blanc);border:1px solid #E7E7E2;border-radius:var(--radius);
  padding:32px 28px;position:relative;overflow:hidden;
}
.section.blanche .carte{background:var(--fond)}
.carte::before{
  content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--accent,var(--bleu));
}
.carte h3{margin-bottom:10px}
.carte p{font-size:.98rem}
.carte .petale{
  width:14px;height:26px;border-radius:8px;background:var(--accent,var(--bleu));
  display:block;margin-bottom:18px;transform:rotate(20deg);
}
.c-bleu{--accent:var(--bleu)}
.c-rose{--accent:var(--rose)}
.c-jaune{--accent:var(--jaune)}
.c-vert{--accent:var(--vert)}

.note-caution{
  margin-top:36px;background:#FFF6D6;border:1px solid #EFDFA0;border-radius:12px;
  padding:16px 20px;font-size:.95rem;color:#5C4A00;max-width:72ch;
}

/* ---------- Pourquoi Keept ---------- */
.grille-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin-top:48px}
.point h3{display:flex;align-items:center;gap:10px}
.point .coche{
  width:26px;height:26px;border-radius:50%;background:var(--vert);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0;
}

/* ---------- Contact ---------- */
.contact-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin-top:40px}
.contact-grille h3{margin-bottom:8px}
.contact-grille .gros-tel{
  font-family:var(--font-display);font-size:1.6rem;font-weight:800;
  color:var(--encre);text-decoration:none;display:inline-block;margin:6px 0 10px;
}

/* ---------- Footer ---------- */
.footer{background:var(--blanc);border-top:1px solid #E7E7E2;padding:64px 0 32px}
.footer-grille{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px}
.footer h4{
  font-family:var(--font-display);color:var(--bleu);font-size:1.05rem;
  letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px;
}
.footer p{font-size:.95rem}
.footer .slogan{margin-top:12px;color:var(--encre)}
.footer .libelle{font-weight:700;color:var(--encre);margin-top:14px}
.footer .btn{margin-top:16px;padding:11px 22px;font-size:.95rem}
.reseaux{display:flex;gap:14px;margin-top:22px}
.reseaux a{
  width:38px;height:38px;border-radius:50%;background:var(--encre);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  font-weight:700;font-size:.85rem;
}
.footer-bas{
  border-top:1px solid #E7E7E2;margin-top:48px;padding-top:24px;
  display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;
  font-size:.88rem;color:#7A7D92;
}
.footer-bas a{color:#7A7D92}

/* ---------- Pages annexes (mentions / CGV) ---------- */
.page-legale{max-width:780px;margin:0 auto;padding:72px 24px 96px}
.page-legale h1{font-size:clamp(1.9rem,4vw,2.6rem);margin-bottom:8px}
.page-legale .maj{color:#7A7D92;font-size:.9rem;margin-bottom:40px}
.page-legale h2{font-size:1.3rem;margin:40px 0 12px}
.page-legale p,.page-legale li{font-size:1rem;margin-bottom:12px}
.page-legale ul{padding-left:22px}
.retour{display:inline-block;margin-bottom:32px;font-weight:600;text-decoration:none}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .nav a:not(.tel){display:none}
  .footer-grille{grid-template-columns:1fr}
  .section{padding:64px 0}
  .btn.secondaire{margin-left:0;margin-top:12px}
}
