@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --maroon:#7A1F3D; --maroon-dark:#5C1730; --maroon-light:#B7577A;
  --cream:#F8F4EE; --sand:#EFE7DA; --line:#E2D6C4;
  --ink:#221C19; --mute:#6B6058;
  --good-bg:#EEF3EC;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--cream); color:var(--ink);
  font-family:"Inter",-apple-system,sans-serif; line-height:1.55;
}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif; font-weight:600; line-height:1.15; margin:0 0 12px;}
p{margin:0 0 14px;}
a{color:var(--maroon);}
img{display:block; max-width:100%;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

.demo-banner{
  background:var(--ink); color:#F1ECE4; font-size:12.5px; text-align:center;
  padding:8px 16px;
}
.demo-banner strong{color:#fff;}

header.site{display:flex; align-items:center; justify-content:space-between; padding:20px 0;}
.logo-row{display:flex; align-items:center; gap:10px;}
.logo-row img{height:40px; width:auto;}
.logo-row span{font-family:"Fraunces",serif; font-size:19px; font-weight:600;}
.phone-cta{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14.5px;
  color:var(--ink); text-decoration:none; border:1px solid var(--line); border-radius:999px;
  padding:9px 16px;
}
.phone-cta:hover{border-color:var(--maroon); color:var(--maroon);}

/* — hero — */
.hero{position:relative; overflow:hidden; border-radius:20px; margin:8px 0 40px; min-height:520px; display:flex; align-items:flex-end;}
.hero img.hero-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%;}
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(20,14,12,.86) 0%, rgba(20,14,12,.35) 55%, rgba(20,14,12,.05) 100%);
}
.hero-inner{position:relative; z-index:2; padding:44px 40px; max-width:640px; color:#fff;}
.hero-tag{
  display:inline-flex; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35); border-radius:999px;
  padding:5px 14px; margin-bottom:16px; backdrop-filter:blur(2px);
}
.hero h1{color:#fff; font-size:clamp(30px,4.4vw,46px); margin-bottom:14px; text-wrap:balance;}
.hero p.lead{color:rgba(255,255,255,.86); font-size:16.5px; max-width:52ch; margin-bottom:22px;}
.hero .badges{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px;}
.hero .badge{font-size:12.5px; color:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.35); border-radius:999px; padding:6px 13px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:"Inter",sans-serif; font-weight:600; font-size:15px;
  border-radius:12px; padding:14px 24px; text-decoration:none; cursor:pointer; border:1px solid transparent;
}
.btn-primary{background:var(--maroon); color:#fff;}
.btn-primary:hover{background:var(--maroon-dark);}
.btn-outline{background:transparent; color:#fff; border-color:rgba(255,255,255,.55);}
.btn-outline:hover{border-color:#fff;}
.btn-block{width:100%;}
.btn:disabled{opacity:.55; cursor:not-allowed;}

/* — sections — */
section{margin:56px 0;}
.section-head{max-width:640px; margin-bottom:28px;}
.eyebrow{font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--maroon);}
.section-head h2{font-size:clamp(24px,3vw,32px); margin:8px 0 8px;}
.section-head p{color:var(--mute); font-size:15.5px;}

.services-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px;}
.service-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px;}
.service-mark{font-family:"Fraunces",serif; font-size:22px; color:var(--maroon); margin-bottom:10px;}
.service-card h3{font-size:16.5px; margin-bottom:6px;}
.service-card p{font-size:13.5px; color:var(--mute); margin:0;}

.urgence-block{
  display:grid; grid-template-columns:1.1fr 1fr; gap:32px; align-items:center;
  background:var(--sand); border-radius:20px; padding:32px; overflow:hidden;
}
.urgence-block img{border-radius:14px; width:100%; height:280px; object-fit:cover;}
.urgence-copy .eyebrow{color:var(--maroon-dark);}
.urgence-copy h2{margin:8px 0 12px;}
.urgence-list{list-style:none; padding:0; margin:16px 0 0; display:flex; flex-direction:column; gap:8px;}
.urgence-list li{font-size:14px; padding-left:22px; position:relative;}
.urgence-list li::before{content:"—"; position:absolute; left:0; color:var(--maroon);}
@media (max-width:760px){.urgence-block{grid-template-columns:1fr;} .urgence-block img{height:220px;}}

.founder-block{display:grid; grid-template-columns:220px 1fr; gap:28px; align-items:center;}
.founder-block img{border-radius:16px; width:100%; aspect-ratio:1; object-fit:cover;}
.founder-block blockquote{margin:0; font-family:"Fraunces",serif; font-size:19px; font-style:italic; line-height:1.4; color:var(--ink);}
.founder-block cite{display:block; margin-top:12px; font-style:normal; font-size:13px; color:var(--mute);}
@media (max-width:640px){.founder-block{grid-template-columns:1fr;} .founder-block img{max-width:160px;}}

.testimonial-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px; max-width:640px;}
.testimonial-card blockquote{margin:0 0 14px; font-family:"Fraunces",serif; font-size:18px; font-style:italic;}
.testimonial-card cite{font-style:normal; font-size:13.5px; color:var(--mute);}

/* — wizard (identique en logique au moteur cavalotrans, reskinne clair) — */
.wizard-shell{background:#fff; border:1px solid var(--line); border-radius:20px; padding:0; overflow:hidden; box-shadow:0 10px 30px rgba(60,40,30,.06);}
.wizard-head{display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border-bottom:1px solid var(--line);}
.wizard-head-title{font-family:"Fraunces",serif; font-size:16px;}
.wizard-progress-track{flex:1; height:4px; border-radius:2px; background:var(--sand); margin:0 16px; overflow:hidden;}
.wizard-progress-fill{height:100%; background:var(--maroon); transition:width .35s ease;}
.wizard-progress-label{font-size:12px; color:var(--mute); white-space:nowrap;}

.wz-messages{display:flex; flex-direction:column; gap:12px; padding:22px 24px; min-height:220px;}
.wz-row{display:flex;}
.wz-row.bot{justify-content:flex-start;}
.wz-row.user{justify-content:flex-end;}
.wz-bubble{max-width:80%; padding:11px 15px; border-radius:14px; font-size:14.5px;}
.wz-bubble.bot{background:var(--sand); border-radius:14px 14px 14px 4px;}
.wz-bubble.user{background:var(--maroon); color:#fff; border-radius:14px 14px 4px 14px;}
.wz-typing{display:flex; gap:5px; padding:12px 15px; background:var(--sand); border-radius:14px 14px 14px 4px; width:fit-content;}
.wz-dot{width:6px; height:6px; border-radius:50%; background:var(--maroon); animation:wz-blink 1.3s infinite;}
.wz-dot:nth-child(2){animation-delay:.18s;} .wz-dot:nth-child(3){animation-delay:.36s;}
@keyframes wz-blink{0%,80%,100%{opacity:.25;}40%{opacity:1;}}

.wz-composer{padding:16px 24px 22px; border-top:1px solid var(--line); background:var(--cream);}
.wz-chips{display:flex; flex-wrap:wrap; gap:9px;}
.wz-chip{padding:10px 16px; font-size:13.5px; border-radius:999px; border:1px solid var(--line); background:#fff; cursor:pointer; font:inherit;}
.wz-chip.selected{border-color:var(--maroon); color:var(--maroon-dark); background:color-mix(in srgb, var(--maroon) 10%, white);}
.wz-box{display:flex; flex-direction:column; gap:10px;}
.wz-fields{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px;}
.wz-field label{display:block; font-size:12px; color:var(--mute); margin-bottom:5px;}
.wz-input{width:100%; min-height:44px; padding:10px 12px; font:inherit; font-size:14.5px; border:1px solid var(--line); border-radius:10px; background:#fff;}
.wz-input:focus-visible{outline:2px solid var(--maroon); outline-offset:1px;}
.wz-counter-row{display:flex; align-items:center; gap:14px;}
.wz-counter-btn{width:44px; height:44px; border-radius:10px; border:1px solid var(--line); background:#fff; font-size:20px; cursor:pointer;}
.wz-counter-mid{min-width:60px; text-align:center;}
.wz-counter-value{font-family:"Fraunces",serif; font-size:24px;}
.wz-counter-label{font-size:11px; color:var(--mute);}
.wz-counter-next{margin-left:auto;}
.wz-text-row{display:flex; gap:9px; align-items:flex-end;}

.wz-summary{padding:24px;}
.wz-fact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:1px; background:var(--line); border-radius:12px; overflow:hidden; margin-bottom:18px;}
.wz-fact{background:#fff; padding:13px 15px;}
.wz-fact-k{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--maroon);}
.wz-fact-v{font-size:14px; margin-top:3px;}
.wz-email-error{font-size:12px; color:var(--maroon-dark); margin-top:6px;}
.wz-privacy{font-size:11.5px; color:var(--mute); margin-top:10px;}

.wz-done{padding:40px 24px; text-align:center;}
.wz-done-check{width:56px; height:56px; margin:0 auto 16px; border-radius:50%; border:1px solid var(--maroon); display:grid; place-items:center; color:var(--maroon); font-size:22px;}

.hp{position:absolute; left:-9999px; opacity:0;}

footer.site{border-top:1px solid var(--line); margin-top:60px; padding:26px 0; font-size:13px; color:var(--mute); display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between;}

@media (max-width:640px){
  .hero-inner{padding:28px 22px;}
  section{margin:40px 0;}
}
