/* Blackchip Coliving : feuille de style du site vitrine. Aucune dépendance externe, polices système. */

:root {
  --fond: #fff6ec;
  --fond-2: #fdebd9;
  --surface: #ffffff;
  --encre: #1c1720;
  --encre-2: #43394a;
  --discret: #675c6b;
  --trait: #f0dcc6;
  --corail: #c2451e;          /* texte et boutons (contraste AA sur le fond) */
  --corail-vif: #ff7a4d;      /* décor seulement */
  --corail-doux: #ffe0d1;
  --soleil: #f7b733;
  --soleil-doux: #fff0c7;
  --menthe: #24705f;
  --menthe-doux: #d8efe6;
  --lilas-doux: #ece3f7;
  --bande: #2b2033;           /* bandeaux foncés */
  --bande-encre: #fbf1e6;
  --sur-bouton: #ffffff;
  --ombre: 0 1px 2px rgb(28 23 32 / .06), 0 14px 34px -14px rgb(28 23 32 / .22);
  --rayon: 22px;
  --titre: ui-rounded, "SF Pro Rounded", "Nunito", "Varela Round", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --largeur: 1140px;
  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fond: #17131b;
    --fond-2: #1f1924;
    --surface: #261f2c;
    --encre: #fbf1e6;
    --encre-2: #e3d6cc;
    --discret: #bcaeb7;
    --trait: #3a3040;
    --corail: #ff8a5c;
    --corail-vif: #ff8a5c;
    --corail-doux: #3d2420;
    --soleil: #f7b733;
    --soleil-doux: #3a2f17;
    --menthe: #7fd3bb;
    --menthe-doux: #183129;
    --lilas-doux: #2c2338;
    --bande: #0f0c12;
    --bande-encre: #fbf1e6;
    --sur-bouton: #1c1720;
    --puce-bord: #6b5878;
    --ombre: 0 1px 2px rgb(0 0 0 / .4), 0 18px 40px -18px rgb(0 0 0 / .8);
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body {
  margin: 0;
  background: var(--fond);
  color: var(--encre);
  font: 17px/1.62 var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3 { font-family: var(--titre); font-weight: 800; line-height: 1.08; letter-spacing: -.02em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.4rem, 6vw, 4.4rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.9rem, 4vw, 3rem); letter-spacing: -.03em; }
h3 { font-size: 1.25rem; }
:focus-visible { outline: 3px solid var(--corail); outline-offset: 3px; border-radius: 8px; }

.evitement { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--encre); color: var(--fond); padding: .6em 1em; border-radius: 10px; }
.evitement:focus { left: 8px; }
.conteneur { width: min(100% - 32px, var(--largeur)); margin-inline: auto; }

/* Surlignage « feutre » */
.feutre { background: linear-gradient(transparent 58%, var(--soleil) 58%, var(--soleil) 90%, transparent 90%); padding-inline: .08em; }
@media (prefers-color-scheme: dark) { .feutre { background: linear-gradient(transparent 62%, rgb(247 183 51 / .45) 62%, rgb(247 183 51 / .45) 92%, transparent 92%); } }

/* ---------- Boutons ---------- */
.bouton {
  display: inline-flex; align-items: center; gap: .5em;
  font: 700 1rem/1 var(--titre);
  padding: .95em 1.4em; border-radius: 999px; text-decoration: none;
  border: 2px solid transparent; transition: transform .15s ease, background-color .15s ease;
}
.bouton:hover { transform: translateY(-2px); }
.bouton-plein { background: var(--corail); color: var(--sur-bouton); box-shadow: 0 10px 22px -12px var(--corail); }
.bouton-plein:hover { background: color-mix(in srgb, var(--corail) 88%, var(--encre)); }
.bouton-trait { border-color: var(--encre); color: var(--encre); }
.bouton-trait:hover { background: var(--encre); color: var(--fond); }
.bouton-petit { padding: .7em 1.1em; font-size: .92rem; }
.bouton svg { width: 1.15em; height: 1.15em; }

/* ---------- En-tête ---------- */
.entete {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--fond) 88%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid color-mix(in srgb, var(--trait) 70%, transparent);
}
.entete .conteneur { display: flex; align-items: center; gap: 1.5rem; min-height: 68px; }
.marque { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; line-height: 1; }
.marque svg { width: 38px; height: 38px; flex: none; }
.marque-texte { display: flex; flex-direction: column; gap: .2rem; }
.marque-nom { font: 800 1.2rem/1 var(--titre); letter-spacing: -.02em; }
.marque-sous { font: 700 .66rem/1 var(--titre); letter-spacing: .26em; color: var(--corail); text-transform: uppercase; }
.nav { display: flex; gap: 1.3rem; margin-left: auto; }
.nav a { text-decoration: none; font-weight: 600; font-size: .95rem; color: var(--encre-2); padding: .3em 0; border-bottom: 2px solid transparent; }
.nav a:hover { color: var(--encre); border-bottom-color: var(--corail-vif); }
@media (max-width: 960px) { .nav { display: none; } .entete .bouton { margin-left: auto; } }
@media (max-width: 420px) { .entete .bouton { padding: .65em .9em; font-size: .85rem; } .marque-sous { letter-spacing: .18em; } }

/* ---------- Héro ---------- */
.hero { position: relative; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 6rem); overflow: hidden; }
.hero::before {
  content: ""; position: absolute; inset: -20% -10% auto auto; width: 60vw; height: 60vw; max-width: 760px; max-height: 760px;
  background: radial-gradient(circle, var(--corail-doux), transparent 65%); z-index: -1;
}
.hero .conteneur { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.surtitre {
  display: inline-flex; align-items: center; gap: .5em; margin-bottom: 1.2rem;
  font: 700 .85rem/1.2 var(--titre); letter-spacing: .04em; color: var(--corail);
  background: var(--surface); border: 1px solid var(--trait); padding: .5em .9em; border-radius: 999px;
}
.surtitre svg { width: 1.1em; height: 1.1em; }
.chapo { font-size: clamp(1.08rem, 1.7vw, 1.24rem); color: var(--encre-2); max-width: 36em; }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0 1.6rem; }
.pastilles { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; list-style: none; }
.pastilles li { font: 700 .86rem/1 var(--titre); padding: .6em .95em; border-radius: 999px; }
.pastilles li:nth-child(4n+1) { background: var(--corail-doux); }
.pastilles li:nth-child(4n+2) { background: var(--soleil-doux); }
.pastilles li:nth-child(4n+3) { background: var(--menthe-doux); }
.pastilles li:nth-child(4n+4) { background: var(--lilas-doux); }
.hero .conteneur > * { min-width: 0; }
.hero-illu { position: relative; }
.hero-illu svg { width: 100%; height: auto; filter: drop-shadow(0 24px 40px rgb(28 23 32 / .16)); }
.hero-illu .bulle {
  position: absolute; font: 800 .95rem/1.2 var(--titre); background: var(--surface); color: var(--encre);
  padding: .7em 1em; border-radius: 16px; box-shadow: var(--ombre); border: 1px solid var(--trait);
}
.hero-illu .bulle-1 { left: -4%; top: 14%; transform: rotate(-4deg); }
.hero-illu .bulle-2 { right: -2%; bottom: 16%; transform: rotate(3deg); }
@media (max-width: 900px) { .hero .conteneur { grid-template-columns: 1fr; } .hero-illu { max-width: 520px; margin-inline: auto; width: 100%; } }
@media (max-width: 480px) { .hero-illu .bulle { font-size: .8rem; } .hero-illu .bulle-1 { left: 0; } .hero-illu .bulle-2 { right: 0; } }

/* ---------- Sections ---------- */
.section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.section-alt { background: var(--fond-2); }
.entete-section { max-width: 44rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.etiquette { display: inline-block; font: 800 .8rem/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--corail); margin-bottom: 1rem; }
.entete-section p { color: var(--encre-2); font-size: 1.1rem; }

.cartes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.carte {
  background: var(--surface); border: 1px solid var(--trait); border-radius: var(--rayon);
  padding: 1.6rem 1.4rem 1.4rem; box-shadow: var(--ombre);
}
.carte p { color: var(--encre-2); margin: 0; }
.picto { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; margin-bottom: 1.1rem; color: var(--encre); }
.picto svg { width: 28px; height: 28px; }
.p-corail { background: var(--corail-doux); } .p-soleil { background: var(--soleil-doux); }
.p-menthe { background: var(--menthe-doux); } .p-lilas { background: var(--lilas-doux); }
@media (max-width: 980px) { .cartes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cartes { grid-template-columns: 1fr; } }

.deux { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
@media (max-width: 860px) { .deux { grid-template-columns: 1fr; } }
.liste-coches { list-style: none; padding: 0; margin: 1.2rem 0 1.6rem; display: grid; gap: .7rem; }
.liste-coches li { display: flex; gap: .7rem; align-items: flex-start; }
.liste-coches svg { width: 22px; height: 22px; flex: none; margin-top: .15rem; color: var(--menthe); }
.encadre {
  background: var(--surface); border: 2px dashed var(--trait); border-radius: var(--rayon); padding: 1.6rem;
}
.encadre h3 { display: flex; align-items: center; gap: .5rem; }
.encadre p:last-child { margin-bottom: 0; }
.sur-demande { display: inline-block; font: 700 .78rem/1 var(--titre); letter-spacing: .06em; text-transform: uppercase; background: var(--soleil-doux); color: var(--encre); padding: .5em .8em; border-radius: 999px; }

.illu-carte { background: var(--surface); border: 1px solid var(--trait); border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); }
.illu-carte svg { width: 100%; height: auto; }
.illu-carte .corps { padding: 1.5rem 1.5rem 1.6rem; }
.illu-carte .corps p { color: var(--encre-2); }
.illu-carte .corps p:last-child { margin-bottom: 0; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
@media (max-width: 760px) { .duo { grid-template-columns: 1fr; } }

/* ---------- Étapes ---------- */
.etapes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; counter-reset: etape; }
.etapes li { position: relative; background: var(--surface); border: 1px solid var(--trait); border-radius: var(--rayon); padding: 1.8rem 1.5rem 1.5rem; box-shadow: var(--ombre); }
.etapes .num {
  display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  font: 800 1.3rem/1 var(--titre); background: var(--encre); color: var(--fond); margin-bottom: 1rem;
}
.etapes li:nth-child(2) .num { background: var(--corail); color: var(--sur-bouton); }
.etapes li:nth-child(3) .num { background: var(--menthe); color: var(--fond); }
.etapes p { color: var(--encre-2); margin: 0; }
@media (max-width: 820px) { .etapes { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.faq { max-width: 50rem; display: grid; gap: .8rem; }
.faq details { background: var(--surface); border: 1px solid var(--trait); border-radius: 18px; padding: 0 1.3rem; }
.faq summary {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  font: 700 1.06rem/1.35 var(--titre); padding: 1.1rem 0;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font: 800 1.5rem/1 var(--titre); color: var(--corail); transition: transform .2s ease; flex: none; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq summary:focus-visible { outline-offset: 0; }
.faq details p { color: var(--encre-2); margin: 0 0 1.2rem; }

/* ---------- Contact ---------- */
.contact { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.contact-boite {
  position: relative; overflow: hidden; background: var(--bande); color: var(--bande-encre);
  border-radius: 32px; padding: clamp(2rem, 6vw, 4rem); display: grid; grid-template-columns: 1.3fr .7fr; gap: 2rem; align-items: center;
}
.contact-boite::after {
  content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%;
  background: radial-gradient(circle, rgb(255 122 77 / .55), transparent 70%);
}
.contact-boite h2 { color: var(--bande-encre); }
.contact-boite p { color: #e6d8ea; font-size: 1.1rem; }
.contact-boite .bouton-plein { background: #ff8a5c; color: #1c1720; }
.contact-boite .bouton-plein:hover { background: #ffa47f; }
.contact-boite .adresse { font-weight: 700; color: var(--bande-encre); text-underline-offset: 4px; }
.contact-actions { position: relative; z-index: 1; display: grid; gap: 1rem; justify-items: start; }
@media (max-width: 820px) { .contact-boite { grid-template-columns: 1fr; } }

/* ---------- Pied ---------- */
.pied { border-top: 1px solid var(--trait); padding: 2.2rem 0 2.6rem; color: var(--discret); font-size: .94rem; }
.pied .conteneur { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.pied .marque { color: var(--encre); }
.pied-liens { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin-left: auto; }
.pied a { text-underline-offset: 3px; }
.pied a:hover { color: var(--encre); }

/* ---------- Pages simples ---------- */
.page-simple { padding: clamp(2.5rem, 6vw, 4.5rem) 0 5rem; }
.page-simple .conteneur { max-width: 50rem; }
.page-simple h2 { font-size: 1.5rem; margin-top: 2.2rem; }
.page-simple ul { padding-left: 1.2rem; }
.page-simple li { margin-bottom: .35rem; }
.page-simple a { color: var(--corail); text-underline-offset: 3px; }
.erreur { text-align: center; }
.erreur .conteneur { display: grid; justify-items: center; }
