:root{
  --bleu:#0A2E4D; --cyan:#16B8E0; --bleu-clair:#CFEFF7;
  --gris-clair:#F5F8FA; --bois:#C9A77C; --gris-fonce:#1C2630; --blanc:#fff;
  --maxw:1180px; --radius:14px; --shadow:0 8px 30px rgba(10,46,77,.08);
  --font-titre:'Poppins',system-ui,sans-serif; --font-texte:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--font-texte);color:var(--bleu);line-height:1.6;background:var(--blanc)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-titre);line-height:1.15;color:var(--bleu)}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section--alt{background:var(--gris-clair)}
.section h2{font-size:clamp(1.6rem,3vw,2.3rem);text-align:center;margin-bottom:8px}
.section .lead{text-align:center;max-width:680px;margin:0 auto 40px;color:#3b5d77}
.btn{display:inline-block;padding:13px 26px;border-radius:999px;font-weight:600;font-family:var(--font-titre);transition:.2s;cursor:pointer;border:2px solid transparent}
.btn-primary{background:var(--cyan);color:var(--blanc)}
.btn-primary:hover{background:#0fa3c9}
.btn-ghost{background:transparent;color:var(--blanc);border-color:var(--blanc)}
.btn-ghost:hover{background:rgba(255,255,255,.15)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(225,242,250,.92);backdrop-filter:blur(6px);box-shadow:0 2px 12px rgba(10,46,77,.06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.brand img{height:46px;width:auto}
.nav-links{display:flex;align-items:center;gap:26px;font-family:var(--font-titre);font-weight:600}
.nav-links a:not(.btn):hover{color:var(--cyan)}
.nav-phone{color:var(--bleu);font-weight:700}
.nav-phone:hover{color:var(--cyan)}
.nav-cta{padding:9px 18px}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer}
.nav-toggle span{width:26px;height:3px;background:var(--bleu);border-radius:2px}
.hero{position:relative;padding:26px 0 0;background:linear-gradient(180deg,#d6eef9 0%,#e8f6fc 100%)}
.hero-wave{display:block;width:100%;height:clamp(46px,6vw,92px);margin-top:18px}
.hero-wave path{fill:#fff}
.hero-banner{position:relative;display:flex;align-items:center;min-height:clamp(340px,42vw,500px);border-radius:22px;overflow:hidden;background:url('../assets/img/hero-ia.jpg') center/cover no-repeat;box-shadow:var(--shadow)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,46,77,.85) 0%,rgba(10,46,77,.5) 45%,rgba(10,46,77,.12) 100%)}
.hero-content{position:relative;color:#fff;max-width:560px;padding:0 clamp(26px,5%,60px)}
.hero-content h1{color:#fff;font-size:clamp(2rem,5vw,3.4rem);text-wrap:balance}
.hero-content p{font-size:1.15rem;margin:18px 0 30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
@media(max-width:820px){
  .nav-toggle{display:flex}
  .nav-links{position:absolute;top:72px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:18px 20px;gap:14px;box-shadow:var(--shadow);transform:translateY(-150%);transition:.3s;z-index:40}
  .nav-links.open{transform:translateY(0)}
}
.confiance{padding:34px 0 8px}
.confiance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.info-card{background:#fff;border-radius:14px;box-shadow:0 14px 34px rgba(10,46,77,.16);border:1px solid #dceaf2;border-top:3px solid var(--cyan);padding:22px 20px;text-align:center;display:flex;flex-direction:column;gap:6px}
.info-card strong{font-family:var(--font-titre);color:var(--bleu);font-size:1.05rem}
.info-card span{font-size:.9rem;color:#3b5d77}
.cards{display:grid;gap:26px}
.cards-4{grid-template-columns:repeat(4,1fr)}
.cards-3{grid-template-columns:repeat(3,1fr)}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s}
.card:hover{transform:translateY(-5px)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card-body{padding:18px 20px}
.card-body h3{font-size:1.2rem;margin-bottom:6px}
.card-body p{font-size:.95rem;color:#3b5d77}
@media(max-width:900px){.confiance-grid,.cards-4,.cards-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.confiance-grid,.cards-4,.cards-3{grid-template-columns:1fr}}
.card--service{border-top:4px solid var(--cyan)}
.card--service .card-body{padding:26px 22px}
.cta-band{background:linear-gradient(120deg,var(--bleu),#0f6fa0);color:#fff;text-align:center;padding:56px 0}
.cta-band h2{color:#fff}
.cta-band p{margin:12px auto 24px;max-width:560px;opacity:.92}
.cta-band-btn{background:#fff;color:var(--bleu)}
.cta-band-btn:hover{background:var(--bleu-clair)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery a{border-radius:var(--radius);overflow:hidden}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .3s}
.gallery a:hover img{transform:scale(1.05)}
.gallery figure{margin:0}
.gallery figure a{display:block;border-radius:var(--radius) var(--radius) 0 0}
.gallery figcaption{padding:8px 4px 0;font-size:.86rem;line-height:1.35;color:#3b5d77}
.lb{position:fixed;inset:0;background:rgba(10,46,77,.92);display:none;align-items:center;justify-content:center;z-index:100;padding:30px}
.lb.open{display:flex}
.lb img{max-width:92%;max-height:88%;border-radius:8px}
.lb-close{position:absolute;top:20px;right:28px;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}
@media(max-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}}
.brands{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.brands li{background:#fff;border-radius:10px;padding:16px 34px;font-family:var(--font-titre);font-weight:700;font-size:1.2rem;box-shadow:var(--shadow);color:var(--bleu)}
.brands li.todo{color:#9bb3c4;font-weight:500;font-size:.95rem}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about-text p{margin-bottom:14px;color:#3b5d77}
.about-text .btn{margin-top:10px}
.about-img img{border-radius:var(--radius);box-shadow:var(--shadow)}
@media(max-width:820px){.about-grid{grid-template-columns:1fr}}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px}
.contact-info h3{margin:0 0 8px}.hours-title{margin-top:26px}
.contact-info p{margin-bottom:12px;color:#3b5d77}
.contact-tel{font-family:var(--font-titre);font-weight:700;font-size:1.4rem;color:var(--cyan)}
.contact-info .btn{margin:6px 0 8px}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:7px 0;border-bottom:1px solid #e1e9ef;font-size:.95rem}
.hours td:last-child{text-align:right;color:var(--bleu);font-weight:500}
.contact-map{margin-top:36px;min-height:380px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.contact-map iframe{height:100%;min-height:380px}
.contact-form-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}
.contact-form-wrap h3{margin-bottom:16px}
.contact-form .field{margin-bottom:14px;display:flex;flex-direction:column;gap:5px}
.contact-form .field-row{display:flex;gap:14px}
.contact-form .field-row .field{flex:1}
.contact-form label{font-size:.85rem;font-weight:600;color:var(--bleu);font-family:var(--font-titre)}
.contact-form input,.contact-form select,.contact-form textarea{font-family:var(--font-texte);font-size:.95rem;padding:11px 13px;border:1px solid #cfdde7;border-radius:10px;background:#fff;color:var(--bleu);width:100%}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(22,184,224,.15)}
.contact-form textarea{resize:vertical}
.contact-form button{margin-top:4px;width:100%;border:0}
.form-note{margin-top:10px;font-size:.82rem;color:#7f97a8;font-style:italic}
.form-success{margin-top:14px;padding:12px 14px;border-radius:10px;background:#e4f7ec;color:#1c7a45;font-weight:500;font-size:.92rem}
@media(max-width:560px){.contact-form .field-row{flex-direction:column;gap:14px}}
.todo{color:#9bb3c4;font-style:italic}
.site-footer{background:var(--gris-fonce);color:#cdd8e0;padding:50px 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
.footer-logo{height:48px;margin-bottom:10px}
.site-footer h4{color:#fff;font-family:var(--font-titre);margin-bottom:10px}
.site-footer a:hover{color:var(--cyan)}
.social-link{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.social-link svg{flex:none}
.footer-bottom{border-top:1px solid #33414d;margin-top:36px;padding:16px 0;font-size:.85rem}
.legal-page{padding:54px 0 70px}
.legal{max-width:820px}
.legal h1{font-family:var(--font-titre);color:var(--bleu);margin-bottom:26px}
.legal h2{font-family:var(--font-titre);color:var(--bleu);font-size:1.25rem;margin:32px 0 10px}
.legal p{line-height:1.7;color:#33414d}
.legal a{color:var(--bleu);font-weight:600}
.legal-back{margin-top:40px;font-weight:600}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
