/* BT2D Solutions — styles du site public */
:root{--ink:#0c2340;--ink2:#173b63;--gold:#c3a35b;--gold-light:#dfc98f;--paper:#f7f8fb;--white:#fff;--muted:#667084;--line:#dce1e9;--ok:#0d7b5d;--err:#b42318}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.6}
a{color:inherit}
.wrap{width:min(1160px,calc(100% - 36px));margin:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Header */
header{position:sticky;top:0;z-index:10;background:rgba(10,32,64,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(195,163,91,.42)}
nav{height:76px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:900;letter-spacing:-.04em;font-size:1.45rem;color:#fff}
.brand-logo{display:block;width:130px;height:48px;object-fit:contain}
.brand small{display:block;font-size:.68rem;letter-spacing:.18em;color:var(--gold-light);line-height:1;text-transform:uppercase}
.nav-cta,.btn{border:1px solid #a88743;border-radius:999px;background:linear-gradient(135deg,#a7843d 0%,#d0b874 48%,#ad8b45 100%);color:var(--ink);padding:13px 21px;font-weight:800;text-decoration:none;cursor:pointer;font-size:.95rem;box-shadow:0 8px 24px rgba(130,99,39,.18);font-family:inherit}
.nav-cta{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.btn[disabled]{opacity:.6;cursor:wait}

/* Hero */
.hero{min-height:670px;display:grid;align-items:center;padding:75px 0 86px;position:relative;overflow:hidden;background:radial-gradient(circle at 88% 15%,rgba(195,163,91,.13),transparent 30%),linear-gradient(145deg,#fff 0%,var(--paper) 72%)}
.hero:after{content:"BT2D";position:absolute;right:-45px;bottom:-85px;font-weight:900;font-size:clamp(9rem,25vw,22rem);letter-spacing:-.1em;color:rgba(7,19,39,.045);line-height:1;pointer-events:none}
.eyebrow{display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:800;color:var(--ink2)}
.eyebrow:before{content:"";width:32px;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:5px}
.hero h1{font-size:clamp(3.1rem,7vw,6.7rem);line-height:.94;letter-spacing:-.065em;margin:24px 0 25px;max-width:950px}
.hero h1 span{color:var(--gold);text-shadow:0 1px 0 #7f642e}
.hero p{max-width:710px;color:#4f5a70;font-size:clamp(1.05rem,2vw,1.35rem);margin:0 0 34px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn-dark{background:var(--ink);color:#fff;border:1px solid rgba(195,163,91,.55)}
.proof{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:42px;font-weight:700;color:var(--ink2)}
.proof span:before{content:"✓";color:var(--gold);margin-right:8px}

/* Sections */
section{padding:94px 0}
.section-head{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;align-items:end;margin-bottom:42px}
.section-head h2{font-size:clamp(2.2rem,5vw,4.4rem);line-height:1;letter-spacing:-.055em;margin:12px 0 0}
.section-head p{color:var(--muted);max-width:620px;margin:0;font-size:1.08rem}

/* Prestations */
.services{background:linear-gradient(150deg,#0c2340 0%,#173b63 100%);color:#fff}
.services .eyebrow{color:#fff}
.services .section-head p{color:#c7d4e4}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{background:#fff;color:var(--ink);border:1px solid rgba(195,163,91,.32);border-radius:25px;padding:29px;min-height:310px;display:flex;flex-direction:column;box-shadow:0 15px 50px rgba(0,0,0,.14)}
.card .num{font-weight:900;color:#947332;font-size:.88rem;letter-spacing:.14em;text-transform:uppercase}
.card h3{font-size:1.65rem;line-height:1.12;letter-spacing:-.035em;margin:17px 0 10px}
.card p{color:var(--muted);margin:0 0 15px}
.card ul{padding:0;margin:auto 0 0;list-style:none;display:grid;gap:5px;color:#354159}
.card li:before{content:"—";color:var(--gold);font-weight:bold;margin-right:8px}
.card.featured{background:linear-gradient(145deg,#214b76 0%,#0c2340 100%);color:#fff;border-color:var(--gold);box-shadow:0 18px 55px rgba(8,29,54,.28)}
.card.featured .num,.card.featured li:before{color:var(--gold-light)}
.card.featured p,.card.featured ul{color:#e2e9f2}

/* Approche */
.custom{background:radial-gradient(circle at 10% 15%,rgba(195,163,91,.16),transparent 28%),linear-gradient(135deg,#0c2340 0%,#1b4672 100%);color:#fff;border-top:1px solid rgba(195,163,91,.35);border-bottom:1px solid rgba(195,163,91,.35)}
.custom-panel{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.custom h2{font-size:clamp(2.6rem,6vw,5.6rem);letter-spacing:-.065em;line-height:.93;margin:15px 0}
.custom .eyebrow{color:var(--gold-light)}
.custom-copy{font-size:1.12rem;color:#d4deea}
.steps{display:grid;gap:12px}
.step{background:rgba(255,255,255,.09);border:1px solid rgba(195,163,91,.48);border-radius:18px;padding:18px 20px;display:flex;gap:16px;align-items:center;font-weight:700;color:#fff;box-shadow:0 10px 30px rgba(8,29,54,.18);backdrop-filter:blur(8px)}
.step b{display:grid;place-items:center;min-width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#a7843d,#d0b874);color:var(--ink)}

/* Formulaire de demande */
.request{background:#fff}
.request-shell{border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 22px 70px rgba(9,23,47,.09)}
.request-top{padding:35px;background:var(--ink);color:#fff}
.request-top h2{font-size:clamp(2rem,5vw,3.7rem);line-height:1;letter-spacing:-.05em;margin:8px 0 12px}
.request-top p{color:#c5ccda;margin:0}
.request-body{padding:34px}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.choice{font:inherit;text-align:left;border:1px solid var(--line);background:#fff;padding:18px;border-radius:15px;cursor:pointer;font-weight:800;color:var(--ink);transition:.2s}
.choice:hover,.choice.active{border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold);transform:translateY(-2px)}
.details{display:none;margin-top:30px;border-top:1px solid var(--line);padding-top:28px;scroll-margin-top:96px}
.details.show{display:block}
.details h3{font-size:1.45rem;margin:0 0 18px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-grid+.form-grid{margin-top:15px}
.form-sep{grid-column:1/-1;margin:14px 0 0;padding-top:18px;border-top:1px dashed var(--line);font-weight:800;color:var(--ink2);font-size:.95rem}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-weight:700;font-size:.92rem}
.field input,.field select,.field textarea{width:100%;border:1px solid #cdd4df;border-radius:12px;padding:14px;font:inherit;color:var(--ink);background:#fff}
.field textarea{min-height:125px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(195,163,91,.25);border-color:var(--gold)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--err)}
.field .err{color:var(--err);font-size:.85rem;display:none}
.field.invalid .err{display:block}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:#354159}
.consent input{margin-top:4px;width:18px;height:18px;flex:none}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden;opacity:0}
.submit-row{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:20px}
.privacy{font-size:.85rem;color:var(--muted);max-width:520px}
.notice{display:none;border-radius:14px;padding:18px;margin-top:18px;font-weight:700}
.notice.show{display:block}
.notice.success{background:#e7f6ef;color:#075b44}
.notice.error{background:#fdecec;color:#8a1c1c}
.turnstile-box{margin-top:16px;min-height:0}

/* Footer */
footer{background:var(--ink);color:#fff;padding:40px 0}
.foot{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap}
.foot p{margin:0;color:#aeb9ca}
.foot strong{font-size:1.3rem}
.foot span{color:var(--gold)}
.foot-links{display:flex;gap:18px;font-size:.88rem;color:#aeb9ca}
.foot-links a{text-decoration:none}
.foot-links a:hover{color:var(--gold-light)}

/* Pages légales */
.legal{padding:60px 0 90px;max-width:820px}
.legal h1{font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.05em;line-height:1.05;margin:0 0 30px}
.legal h2{font-size:1.35rem;margin:36px 0 10px}
.legal p,.legal li{color:#354159}

@media(max-width:800px){
  nav{height:68px}.brand{font-size:1.2rem}.brand-logo{width:100px;height:40px}
  .nav-cta{max-width:128px;padding:8px 12px;font-size:.82rem}
  .hero{min-height:auto;padding:62px 0 75px}
  .section-head,.custom-panel{grid-template-columns:1fr;gap:20px}
  .grid,.choices,.form-grid{grid-template-columns:1fr}
  .card{min-height:0}.field.full{grid-column:auto}
  .submit-row,.foot{align-items:flex-start;flex-direction:column}
  .request-body,.request-top{padding:24px}section{padding:72px 0}
  .details{scroll-margin-top:84px}
}
