:root{--ink:#202b35;--muted:#5b6875;--blue:#216fa5;--pale:#eaf1f8;--cream:#f7f9fc;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0}a{color:inherit}header{max-width:1180px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{text-decoration:none;font-size:25px;font-weight:700;display:flex;align-items:center;gap:11px}.mark{width:40px;height:43px;background:var(--blue);color:white;border-radius:11px;font-size:28px;padding:5px 8px;position:relative}.mark span{position:absolute;right:4px;top:2px;font-size:15px;color:#d5e8f8}nav{display:flex;align-items:center;gap:25px;font-size:14px}nav a{text-decoration:none}.teamlink{border:1px solid #cbd5df;border-radius:30px;padding:11px 17px}.hero{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:32px;padding:45px 32px 75px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--blue);margin:0 0 24px}h1{font-size:clamp(45px,5.7vw,73px);letter-spacing:-3px;line-height:1.07;margin:0 0 24px}h2{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-1.3px;margin:0 0 20px}.lead{font-size:18px;line-height:1.7;max-width:440px;color:var(--muted)}.actions{display:flex;gap:20px;align-items:center;margin:29px 0 25px;flex-wrap:wrap}.button{border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:22px;text-decoration:none;padding:18px 23px;border-radius:10px;background:var(--blue);color:white;font:inherit;font-size:15px;font-weight:700;cursor:pointer}.button:hover{background:#185781}.button:disabled{opacity:.6;cursor:wait}.call{font-size:16px;font-weight:700;text-underline-offset:5px}.quiet{color:var(--muted);font-size:13px;line-height:1.7}.windowArt{height:470px;background:linear-gradient(155deg,#b9cfe1,#e7eef6 70%);border-radius:140px 140px 22px 22px;position:relative;overflow:hidden;padding:45px 60px;box-shadow:0 20px 50px #17324a08}.glass{height:325px;display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#f8fbff;padding:14px;border-radius:12px;transform:rotate(-5deg);box-shadow:10px 20px 30px #32697625;position:relative}.glass div{background:linear-gradient(135deg,#7fb0d4,#d0e3f2 45%,#f1f6fb 46%,#c6d9e9);border-radius:2px}.sun{position:absolute;width:140px;height:140px;background:#dae9f7;border-radius:100%;top:30px;right:20px}.spark{color:#fff;font-size:55px;position:absolute}.one{top:120px;right:30px}.two{font-size:32px;left:24px;top:275px}.artCaption{position:absolute;bottom:25px;left:35px;display:flex;flex-direction:column;gap:7px;font-size:14px}.artCaption strong{font-size:18px}.services{background:white;border-top:1px solid #dce3eb;padding:65px 32px}.sectionTitle,.serviceGrid{max-width:1116px;margin:auto}.sectionTitle p:last-child{color:var(--muted);line-height:1.7}.serviceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.serviceGrid article{border:1px solid #d6e0eb;background:#fbfcfe;border-radius:14px;padding:28px}.number{font-size:12px;color:var(--blue);letter-spacing:2px}.serviceGrid h3{font-size:23px;margin:24px 0 15px}.serviceGrid p{line-height:1.7;color:var(--muted);font-size:15px;margin:0}.contact{padding:65px 32px;max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.contact p{color:var(--muted);line-height:1.7}.contactLinks{display:grid;gap:16px}.contactLinks a{display:flex;flex-direction:column;gap:12px;text-decoration:none;background:var(--pale);padding:24px;border-radius:12px}.contactLinks small{letter-spacing:2px;font-size:10px;color:var(--muted)}.contactLinks strong{font-size:23px;overflow-wrap:anywhere}.contactLinks span{font-size:13px;color:var(--blue)}.quoteSection{background:#edf2f8;padding:70px max(32px,calc((100vw - 1116px)/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:55px}.quoteIntro p{line-height:1.8;color:var(--muted);max-width:330px}.quoteIntro ol{padding-left:20px;font-size:15px;line-height:2.5}.quoteSection form{background:white;border-radius:18px;padding:32px;box-shadow:0 15px 35px #17324a08}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:13px;font-weight:700;margin-bottom:20px}label span{font-weight:400;color:var(--muted)}input,select,textarea{font:inherit;display:block;width:100%;border:1px solid #c7d4e2;padding:13px;border-radius:7px;background:#fcfdff;margin-top:8px;font-size:15px;color:var(--ink)}textarea{resize:vertical}.consent{display:flex;gap:12px;align-items:flex-start;font-weight:400;line-height:1.5}.consent input{width:19px;height:19px;flex-shrink:0;margin:1px 0}.privacy{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:24px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#formStatus{font-size:14px;line-height:1.6;color:var(--ink)}#formStatus.error{color:#a93232}footer{display:flex;max-width:1180px;margin:auto;gap:20px;align-items:center;justify-content:space-between;padding:35px 32px;font-size:13px;color:var(--muted)}:focus-visible{outline:3px solid #f2ab32;outline-offset:4px}@media(max-width:800px){header{padding:20px}.brand{font-size:22px}nav{gap:12px}nav>a:not(.teamlink):not(.clientlink){display:none}header{flex-wrap:wrap}nav{flex-wrap:wrap}.clientlink{border:1px solid #cbd5df;border-radius:30px;padding:11px 17px}.hero{grid-template-columns:1fr;padding:25px 20px 40px}.windowArt{height:370px;max-width:500px;width:100%;margin:auto}.glass{height:260px}.hero h1{letter-spacing:-2px}.serviceGrid{grid-template-columns:1fr}.services,.contact{padding:40px 20px}.contact{grid-template-columns:1fr}.quoteSection{grid-template-columns:1fr;padding:40px 20px;gap:24px}.quoteSection form{padding:22px}.fields{grid-template-columns:1fr;gap:0}footer{flex-wrap:wrap;padding:25px 20px}h2{font-size:34px}}

[hidden]{display:none!important}

.photoPreviews{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.photoPreviews figure{margin:0;max-width:140px}.photoPreviews img{width:140px;height:100px;object-fit:cover;border-radius:8px}.photoPreviews button{margin-top:6px;padding:6px;cursor:pointer}#photoStatus{font-size:13px;line-height:1.5}

#faq details{border-bottom:1px solid #c7d4e2;padding:18px 0;line-height:1.7}#faq summary{font-weight:700;cursor:pointer}#faq details p{color:var(--muted);max-width:750px}

/* Logo officiel fourni par Lumivitres. */
.brandLogo{display:block;width:230px;max-width:100%;height:auto;border-radius:8px}.brand{flex-shrink:0}footer .brandLogo{width:180px}@media(max-width:800px){.brandLogo{width:180px}header nav{row-gap:12px}}

.brandSymbol{display:inline-block;position:relative;overflow:hidden;background:#000;width:90px;height:64px;border-radius:8px;flex-shrink:0;vertical-align:middle}.brandSymbol img{position:absolute;display:block;width:230px;max-width:none;height:auto;left:50%;top:-7px;transform:translateX(-50%)}.brandName{font-size:25px;font-weight:700;vertical-align:middle}

/* Nom de marque lisible, sans recadrage d’image. */
.wordmark{display:inline-flex;align-items:baseline;font-family:Arial,Helvetica,sans-serif;font-size:clamp(24px,4vw,32px);font-weight:900;letter-spacing:-1px;line-height:1.2;white-space:nowrap}.wordLumi{color:#26343f}.wordVitres{color:#216fa5}footer .wordmark{font-size:25px}.brand{gap:0}

/* Le cadre se termine avant le nom situé dans l’image source. */
.brandSymbol{display:inline-block;position:relative;overflow:hidden;background:#000;width:94px;height:58px;border-radius:8px;flex-shrink:0;vertical-align:middle}.brandSymbol img{position:absolute;display:block;width:230px;max-width:none;height:auto;left:50%;top:-7px;transform:translateX(-50%)}
