@import "tailwindcss";

:root { --ink:#102a43; --navy:#0b2942; --blue:#0f5f8f; --copper:#df7f39; --cream:#f7f4ed; --line:#d9e0e5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:104px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:92px; max-width:1240px; margin:0 auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(16,42,67,.12); }
.brand { display:flex; align-items:center; gap:12px; }
.brand-mark { width:44px; height:44px; border-radius:50% 50% 46% 54%; display:grid; place-items:center; background:var(--navy); color:white; font-size:13px; font-weight:800; letter-spacing:-.04em; transform:rotate(-5deg); }
.brand>span:last-child { display:flex; flex-direction:column; }
.brand strong { font-size:20px; letter-spacing:-.04em; }
.brand small { color:#6b7b89; font-size:10px; letter-spacing:.12em; text-transform:uppercase; margin-top:2px; }
nav { display:flex; align-items:center; gap:34px; font-size:14px; font-weight:700; }
nav a { transition:color .2s ease; }
nav a:hover { color:var(--copper); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:50px; padding:0 22px; border-radius:7px; font-size:14px; font-weight:800; transition:transform .2s ease,box-shadow .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-header { min-height:44px; background:var(--navy); color:white; }
.hero { max-width:1240px; min-height:calc(100vh - 92px); margin:0 auto; padding:72px 28px 82px; display:grid; grid-template-columns:1.45fr .75fr; gap:90px; align-items:center; position:relative; }
.hero:before { content:""; position:absolute; width:340px; height:340px; border:1px solid rgba(15,95,143,.1); border-radius:50%; left:-190px; bottom:2px; box-shadow:0 0 0 55px rgba(15,95,143,.035),0 0 0 110px rgba(15,95,143,.02); }
.hero-copy { position:relative; z-index:1; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; padding:9px 13px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.6); color:#506677; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.eyebrow i { width:7px; height:7px; border-radius:50%; background:#4e9a67; box-shadow:0 0 0 4px #e2efe6; }
h1 { margin:28px 0 24px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(56px,6.7vw,94px); line-height:.96; letter-spacing:-.055em; font-weight:500; }
h1 em { color:var(--blue); font-weight:400; }
.hero-lead { max-width:610px; margin:0; color:#526878; font-size:19px; line-height:1.7; }
.hero-actions { display:flex; gap:12px; margin-top:34px; }
.button-primary { background:var(--copper); color:#fff; box-shadow:0 10px 24px rgba(223,127,57,.22); }
.button-secondary { border:1px solid #bac6ce; background:rgba(255,255,255,.5); }
.trust-row { margin-top:52px; padding-top:25px; border-top:1px solid var(--line); display:flex; color:#71808c; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.trust-row span { padding:0 30px; border-right:1px solid var(--line); }
.trust-row span:first-child { padding-left:0; }
.trust-row span:last-child { border:0; }
.trust-row b { display:block; color:var(--navy); font-family:Georgia,serif; font-size:21px; letter-spacing:0; text-transform:none; margin-bottom:4px; }
.hero-panel { min-height:500px; padding:28px 34px 34px; color:white; background:var(--navy); border-radius:140px 12px 12px 12px; display:flex; flex-direction:column; position:relative; overflow:hidden; box-shadow:0 22px 60px rgba(11,41,66,.18); }
.hero-panel:after { content:""; position:absolute; width:280px; height:280px; right:-130px; bottom:-145px; border:1px solid rgba(255,255,255,.12); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.035),0 0 0 68px rgba(255,255,255,.025); }
.panel-top { display:flex; justify-content:flex-end; align-items:center; gap:8px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.panel-top b { color:#67d08b; }
.panel-icon { margin-top:88px; color:var(--copper); font-size:60px; line-height:1; }
.panel-kicker { margin:20px 0 9px; color:#a9becd; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.hero-panel h2 { margin:0; font-family:Georgia,serif; font-size:42px; line-height:1.02; font-weight:400; }
.hero-panel>p:last-of-type { color:#afc0cc; line-height:1.55; font-size:14px; }
.hero-panel>a { margin-top:auto; border-top:1px solid rgba(255,255,255,.16); padding-top:22px; display:flex; justify-content:space-between; color:#fff; font-weight:800; font-size:14px; position:relative; z-index:1; }
@media (max-width:900px) { nav{display:none}.hero{grid-template-columns:1fr;gap:50px;padding-top:48px}.hero-panel{min-height:430px;border-radius:90px 12px 12px} }
@media (max-width:560px) { .site-header{height:78px;padding:0 18px}.brand-mark{width:38px;height:38px}.brand strong{font-size:18px}.button-header{min-height:40px;padding:0 13px;font-size:12px}.hero{padding:38px 18px 60px;min-height:auto}h1{font-size:54px}.hero-lead{font-size:17px}.hero-actions{flex-direction:column;align-items:stretch}.trust-row{display:grid;grid-template-columns:repeat(3,1fr)}.trust-row span{padding:0 10px;font-size:9px}.trust-row b{font-size:18px}.hero-panel{min-height:400px;padding:24px 28px 30px}.panel-icon{margin-top:60px} }

.section { max-width:1240px; margin:0 auto; padding:110px 28px; }
.overline { color:var(--copper); font-size:12px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:48px; }
.section-heading h2,.about h2,.contact h2,.review-intro h2 { margin:13px 0 0; font:500 52px/1.06 Georgia,serif; letter-spacing:-.035em; }
.section-heading>p { max-width:420px; margin:0 0 5px; color:#667987; font-size:16px; line-height:1.7; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:12px; overflow:hidden; background:white; }
.service-card { min-height:365px; padding:26px; border-right:1px solid var(--line); display:flex; flex-direction:column; position:relative; }
.service-card:last-child { border-right:0; }
.service-card.featured { background:#f0f6f8; }
.service-number { color:#9aabb6; font:italic 14px Georgia,serif; }
.service-symbol { width:68px; height:68px; display:grid; place-items:center; margin:50px 0 27px; border-radius:50%; background:#eef3f5; color:var(--blue); font-size:32px; }
.service-symbol.water { background:#dcecf3; }.service-symbol.heat { background:#fae7d8; color:var(--copper); }.service-symbol.cool { background:#e8eff2; }
.service-card h3 { margin:0 0 12px; font:500 26px Georgia,serif; }
.service-card p { margin:0; color:#6c7c88; font-size:14px; line-height:1.65; }
.service-card a { margin-top:auto; padding-top:18px; display:flex; justify-content:space-between; border-top:1px solid var(--line); font-size:13px; font-weight:800; }
.dark-card { background:var(--navy); color:white; }.dark-card p{color:#a9bbc8}.dark-card a{border-color:rgba(255,255,255,.18)}.dark-card .service-symbol{background:rgba(255,255,255,.08);color:var(--copper)}
.about { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.about-art { min-height:570px; background:#dce7e7; border-radius:10px 140px 10px 10px; position:relative; overflow:hidden; display:grid; place-items:center; }
.about-circle { width:280px; height:280px; border:1px solid rgba(15,95,143,.22); border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; background:rgba(255,255,255,.25); position:relative; z-index:1; }
.about-circle strong { font:500 104px/.8 Georgia,serif; color:var(--blue); }.about-circle span{text-transform:uppercase;letter-spacing:.12em;font-size:11px;text-align:center;margin-top:20px;line-height:1.5}
.about-lines { position:absolute; width:390px; height:390px; border:1px solid rgba(15,95,143,.1); border-radius:50%; box-shadow:0 0 0 46px rgba(15,95,143,.055),0 0 0 92px rgba(15,95,143,.035); }
.about-badge { position:absolute; right:28px; bottom:30px; width:96px; height:96px; border-radius:50%; background:var(--copper); color:white; display:grid; place-content:center; text-align:center; font:bold 18px/1.1 Arial; transform:rotate(7deg); }.about-badge small{font-size:10px}
.about-copy>p { color:#667987; font-size:15px; line-height:1.75; }.about-copy .big-copy{color:var(--ink);font-size:19px;line-height:1.6;margin-top:28px}
.checks { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; padding:24px 0; margin:20px 0 28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); list-style:none; font-size:13px; font-weight:700; }.checks span{display:inline-grid;place-items:center;width:21px;height:21px;margin-right:7px;border-radius:50%;background:#e2efe6;color:#438258}
.text-link { display:inline-flex; gap:28px; color:var(--blue); font-size:14px; font-weight:900; }
.projects { max-width:none; background:var(--navy); color:white; padding-left:max(28px,calc((100vw - 1184px)/2)); padding-right:max(28px,calc((100vw - 1184px)/2)); }
.light-heading>p { color:#9fb1bd; }.projects .overline{color:#f19a5a}
.project-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:16px; }
.project-card { min-height:430px; padding:28px; border-radius:9px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; background:#365d68; isolation:isolate; }
.project-card:before,.project-card:after { content:""; position:absolute; inset:auto; z-index:-1; border-radius:50%; }
.project-one:before{width:340px;height:340px;background:#c4d5d1;top:-30px;right:-100px}.project-one:after{width:180px;height:260px;border:36px solid #5b8587;transform:rotate(38deg);top:90px;left:40px}
.project-two{background:#b8a999}.project-two:before{width:260px;height:340px;background:#eee6db;top:0;right:-20px;border-radius:0 0 130px 130px}.project-two:after{width:100px;height:190px;background:#26708d;top:45px;right:60px;border-radius:55px 55px 8px 8px}
.project-three{background:#a8b7bc}.project-three:before{width:330px;height:250px;border:40px solid #e7e0d5;top:15px;left:-80px}.project-three:after{width:190px;height:190px;background:var(--copper);top:80px;right:-80px}
.project-card>span { width:max-content; padding:7px 10px; border-radius:99px; background:rgba(11,41,66,.75); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.project-card h3{margin:13px 0 9px;font:500 28px/1.05 Georgia,serif;text-shadow:0 2px 15px rgba(0,0,0,.35)}.project-card small{text-transform:uppercase;letter-spacing:.09em;font-size:9px}
.reviews { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }.review-intro h2 em{color:var(--blue);font-weight:400}.rating{display:flex;align-items:center;gap:18px;margin-top:35px}.rating>strong{font:500 50px Georgia,serif}.rating>span{color:var(--copper);letter-spacing:.08em}.rating small{display:block;color:#84939e;font-size:10px;letter-spacing:.06em;margin-top:5px;text-transform:uppercase}
.review-list { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.review-list blockquote{margin:0;padding:30px;border:1px solid var(--line);border-radius:10px;background:white;display:flex;flex-direction:column}.stars{color:var(--copper);font-size:12px;letter-spacing:.12em}.review-list blockquote>p{font:400 19px/1.55 Georgia,serif;flex:1}.review-list footer{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid var(--line)}.review-list footer>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e7eff2;color:var(--blue);font-size:11px;font-weight:900}.review-list footer div{display:flex;flex-direction:column;gap:3px}.review-list footer strong{font-size:12px}.review-list footer small{color:#8a98a2;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.contact { max-width:1184px; margin:0 auto 80px; padding:65px; border-radius:12px; background:#e2eceb; display:grid; grid-template-columns:1fr 1fr; gap:75px; }.contact-copy>p{color:#617683;line-height:1.7}.contact-lines{display:grid;gap:13px;margin-top:28px}.contact-lines a{display:flex;align-items:center;gap:13px}.contact-lines a>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:white;color:var(--blue);font-weight:bold}.contact-lines div{display:flex;flex-direction:column;gap:3px}.contact-lines small{text-transform:uppercase;letter-spacing:.09em;color:#7d8f99;font-size:9px}.contact-lines strong{font-size:14px}
.contact-form { padding:30px; border-radius:9px; background:white; box-shadow:0 16px 45px rgba(11,41,66,.09); display:grid; gap:17px; }.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.contact-form label{font-size:11px;font-weight:800;display:grid;gap:8px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:13px 14px;border:1px solid #d6dfe4;border-radius:6px;background:#fbfcfc;color:var(--ink);font:14px Arial;outline:none}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(15,95,143,.1)}.contact-form textarea{resize:vertical}.contact-form button{border:0;cursor:pointer}.contact-form>small{color:#89969e;text-align:center;font-size:9px;line-height:1.4}
.footer { max-width:1240px; margin:0 auto; padding:45px 28px; border-top:1px solid var(--line); display:grid; grid-template-columns:1.3fr 1fr 1fr auto; align-items:center; gap:30px;color:#70818d}.footer p{font-size:11px;line-height:1.7}.footer>div{display:flex;gap:18px;font-size:11px;font-weight:800}.footer>small{font-size:9px}.footer-brand{color:var(--ink)}
@media(max-width:900px){.section-heading{align-items:flex-start;flex-direction:column}.service-grid{grid-template-columns:1fr 1fr}.service-card:nth-child(2){border-right:0}.service-card{border-bottom:1px solid var(--line)}.about{grid-template-columns:1fr;gap:55px}.project-grid{grid-template-columns:1fr}.project-card{min-height:380px}.reviews{grid-template-columns:1fr;gap:45px}.contact{margin:0 20px 60px;grid-template-columns:1fr}.footer{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.section{padding:75px 18px}.section-heading h2,.about h2,.contact h2,.review-intro h2{font-size:40px}.service-grid{grid-template-columns:1fr}.service-card{border-right:0;min-height:330px}.about-art{min-height:430px}.about-circle{width:230px;height:230px}.about-circle strong{font-size:84px}.checks{grid-template-columns:1fr}.reviews{padding-bottom:80px}.review-list{grid-template-columns:1fr}.contact{margin:0 12px 50px;padding:42px 22px}.field-row{grid-template-columns:1fr}.footer{padding:40px 20px;grid-template-columns:1fr}.footer>div{flex-wrap:wrap}}

/* Direction 02 — sombre, technique, sans effets “template” */
:root { --ink:#f1f0e9; --navy:#0d1012; --blue:#b7e52f; --copper:#d7ff3f; --cream:#0d1012; --line:#30363a; }
body { background:#0d1012; color:#f1f0e9; }
.site-header { max-width:none; padding:0 max(28px,calc((100vw - 1184px)/2)); border-color:#2c3134; background:#0d1012; }
.brand-mark { border-radius:2px; background:#d7ff3f; color:#0d1012; transform:none; }
.brand small,.hero-lead,.section-heading>p,.about-copy>p,.contact-copy>p,.footer { color:#929a9d; }
nav a:hover { color:#d7ff3f; }
.button { border-radius:2px; text-transform:uppercase; letter-spacing:.06em; font-size:11px; }
.button-header { background:transparent; border:1px solid #424a4e; }
.button-primary { background:#d7ff3f; color:#0d1012; box-shadow:none; }
.button-secondary { border-color:#454d51; background:transparent; }
.hero { max-width:none; padding-left:max(28px,calc((100vw - 1184px)/2)); padding-right:max(28px,calc((100vw - 1184px)/2)); background:linear-gradient(90deg,#0d1012 0 68%,#111619 68%); }
.hero:before { width:1px; height:100%; left:calc(50% - 160px); top:0; border:0; border-left:1px solid #202629; border-radius:0; box-shadow:none; }
.eyebrow { border:0; border-radius:0; padding:0 0 0 17px; background:transparent; color:#9ba3a6; }
.eyebrow i { width:6px; height:6px; background:#d7ff3f; box-shadow:none; }
h1 { font-family:Arial,Helvetica,sans-serif; font-size:clamp(64px,7.6vw,112px); font-weight:800; line-height:.84; letter-spacing:-.07em; text-transform:uppercase; }
h1 em { color:#d7ff3f; font-style:normal; font-weight:800; }
.hero-lead { max-width:540px; font-size:17px; }
.trust-row { border-color:#30363a; color:#7d8589; }
.trust-row span { border-color:#30363a; }
.trust-row b { color:#d7ff3f; font-family:'Courier New',monospace; font-size:13px; }
.hero-panel { min-height:520px; border-radius:2px; background:#181e21; box-shadow:none; border:1px solid #343b3f; }
.hero-panel:after { width:420px; height:110px; right:-150px; bottom:40px; border:16px solid #252c30; border-radius:60px; box-shadow:none; transform:rotate(-38deg); }
.panel-icon { width:70px; height:70px; display:grid; place-items:center; border:1px solid #424b50; color:#d7ff3f; font-family:'Courier New',monospace; font-size:40px; }
.panel-kicker { color:#818b90; }
.hero-panel h2 { font-family:Arial,sans-serif; font-size:43px; font-weight:700; letter-spacing:-.05em; text-transform:uppercase; }
.hero-panel>a { border-color:#3b4347; color:#d7ff3f; text-transform:uppercase; letter-spacing:.05em; font-size:11px; }
.section { border-top:1px solid #23292c; }
.overline { color:#d7ff3f; font-family:'Courier New',monospace; }
.section-heading h2,.about h2,.contact h2 { font-family:Arial,sans-serif; font-weight:700; letter-spacing:-.05em; text-transform:uppercase; }
.service-grid { border-radius:2px; border-color:#30363a; background:#121719; }
.service-card,.service-card.featured { background:#121719; border-color:#30363a; }
.service-card:hover { background:#1a2023; }
.service-number { color:#d7ff3f; font-family:'Courier New',monospace; font-style:normal; }
.service-symbol,.service-symbol.water,.service-symbol.heat,.service-symbol.cool { border-radius:2px; border:1px solid #3a4246; background:transparent; color:#d7ff3f; }
.service-card h3 { font-family:Arial,sans-serif; font-weight:700; text-transform:uppercase; }
.service-card p { color:#8c969a; }
.service-card a { border-color:#30363a; color:#d7ff3f; text-transform:uppercase; letter-spacing:.05em; }
.dark-card { background:#d7ff3f; color:#0d1012; }.dark-card p{color:#303638}.dark-card a{border-color:#98b628;color:#0d1012}.dark-card .service-symbol{border-color:#8fa927;color:#0d1012;background:transparent}
.about-art { border-radius:2px; background:#151a1d; border:1px solid #30373b; }
.about-circle { border-color:#3c4549; border-radius:0; background:transparent; transform:rotate(-4deg); }
.about-circle strong { color:#d7ff3f; font-family:Arial,sans-serif; font-weight:900; font-size:78px; letter-spacing:-.08em; }
.about-lines { border-radius:0; border-color:#252c30; box-shadow:0 0 0 46px rgba(255,255,255,.018),0 0 0 92px rgba(255,255,255,.012); transform:rotate(12deg); }
.about-badge { border-radius:2px; background:#d7ff3f; color:#0d1012; transform:rotate(3deg); }
.about-copy .big-copy { color:#e5e5df; }
.checks { border-color:#30363a; }.checks span{width:auto;height:auto;border-radius:0;background:transparent;color:#d7ff3f;font-family:'Courier New',monospace}
.projects { background:#151a1d; }
.project-card { border-radius:2px; border:1px solid #373f43; filter:saturate(.35) contrast(1.1); }
.project-card>span { border-radius:2px; background:#d7ff3f; color:#0d1012; font-family:'Courier New',monospace; }
.project-card h3 { font-family:Arial,sans-serif; text-transform:uppercase; font-weight:800; letter-spacing:-.04em; }
.project-card small { font-family:'Courier New',monospace; }
.contact { border-radius:2px; background:#171d20; border:1px solid #343c40; }
.contact-lines a>span { border-radius:2px; background:#d7ff3f; color:#0d1012; }
.contact-form { border-radius:2px; background:#0f1315; box-shadow:none; border:1px solid #343c40; }
.contact-form input,.contact-form select,.contact-form textarea { border-radius:2px; border-color:#343c40; background:#171c1f; color:#f1f0e9; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:#d7ff3f; box-shadow:none; }
.footer { border-color:#2d3336; }
@media(max-width:900px){.hero{background:#0d1012}.hero:before{display:none}}

/* Direction 03 — blanc chaud & orange brûlé */
:root { --ink:#251a14; --navy:#251a14; --blue:#c45c1b; --copper:#c45c1b; --cream:#fbfaf7; --line:#e6ded7; }
body { background:#fbfaf7; color:#251a14; }
.site-header { background:rgba(251,250,247,.94); border-color:#e6ded7; }
.brand-mark { border-radius:50% 42% 55% 45%; background:#c45c1b; color:white; transform:rotate(-5deg); }
.brand small,.hero-lead,.section-heading>p,.about-copy>p,.contact-copy>p,.footer { color:#766a63; }
nav a:hover { color:#c45c1b; }
.button { border-radius:999px; }
.button-header { background:#251a14; color:white; border-color:#251a14; }
.button-primary { background:#c45c1b; color:white; box-shadow:0 12px 32px rgba(196,92,27,.2); }
.button-secondary { border-color:#d8cec7; background:white; }
.hero { background:radial-gradient(circle at 76% 38%,#f4e5d9 0 16%,transparent 16.2%),#fbfaf7; }
.hero:before { width:420px; height:420px; left:auto; right:7%; top:18%; border:1px solid rgba(196,92,27,.13); border-radius:50%; box-shadow:0 0 0 55px rgba(196,92,27,.035); }
.eyebrow { color:#8a7569; }
.eyebrow i { background:#c45c1b; }
h1 { font-family:Georgia,'Times New Roman',serif; font-weight:500; text-transform:none; line-height:.9; letter-spacing:-.065em; }
h1 em { color:#c45c1b; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-style:italic; }
.trust-row { border-color:#e6ded7; color:#877c75; }
.trust-row span { border-color:#e6ded7; }
.trust-row b { color:#c45c1b; }
.hero-panel { border:0; border-radius:48% 48% 20px 20px; background:#251a14; box-shadow:0 25px 60px rgba(53,35,24,.15); }
.hero-panel:after { border-color:#38271d; }
.panel-icon { border-color:#604534; color:#e98a4f; }
.hero-panel h2 { font-family:Georgia,serif; font-weight:400; text-transform:none; letter-spacing:-.04em; }
.hero-panel>a { color:#f09a62; }
.section { border-color:#eee7e1; }
.overline { color:#c45c1b; }
.section-heading h2,.about h2,.contact h2,.gallery-head h2 { font-family:Georgia,serif; font-weight:400; text-transform:none; letter-spacing:-.045em; }
.service-grid { border:0; border-radius:0; background:transparent; gap:15px; overflow:visible; }
.service-card,.service-card.featured { border:1px solid #e7dfd9; border-radius:26px 26px 70px 26px; background:white; }
.service-card:nth-child(2) { border-radius:70px 26px 26px 26px; }
.service-card:nth-child(3) { border-radius:26px 70px 26px 26px; }
.service-card:hover { background:#fff7f1; transform:translateY(-5px); transition:.25s ease; }
.service-symbol,.service-symbol.water,.service-symbol.heat,.service-symbol.cool { border:0; border-radius:50%; background:#faebe0; color:#c45c1b; }
.service-card h3 { font-family:Georgia,serif; font-weight:400; text-transform:none; }
.service-card p { color:#776b64; }
.service-card a { border-color:#e8dfd9; color:#b64f13; }
.dark-card { background:#c45c1b; color:white; border-color:#c45c1b; border-radius:26px 26px 26px 70px; }.dark-card:hover{background:#af4d14}.dark-card p{color:#f6d9c8}.dark-card a{border-color:#da7a40;color:white}.dark-card .service-symbol{border:0;color:white;background:rgba(255,255,255,.15)}
.about-art { border:0; border-radius:20px 160px 20px 80px; background:#f3e4da; }
.about-circle { border-color:#dfbba4; border-radius:50%; background:rgba(255,255,255,.35); }
.about-circle strong { color:#c45c1b; font-family:Georgia,serif; }
.about-lines { border-radius:50%; border-color:#e3c6b4; box-shadow:0 0 0 46px rgba(196,92,27,.045),0 0 0 92px rgba(196,92,27,.025); }
.about-badge { border-radius:50%; background:#251a14; color:white; }
.about-copy .big-copy { color:#38271e; }
.checks { border-color:#e6ded7; }.checks span{color:#c45c1b}
.contact { border:0; border-radius:80px 20px 80px 20px; background:#f3e4da; }
.contact-lines a>span { border-radius:50%; background:#c45c1b; color:white; }
.contact-form { border:0; border-radius:24px; background:white; box-shadow:0 18px 50px rgba(81,49,30,.09); }
.contact-form input,.contact-form select,.contact-form textarea { border-color:#dfd6d0; background:#fcfaf8; color:#251a14; border-radius:10px; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:#c45c1b; box-shadow:0 0 0 3px rgba(196,92,27,.09); }
.footer { border-color:#e4dcd6; }

.work-gallery { padding:110px max(28px,calc((100vw - 1184px)/2)) 170px; background:#251a14; color:white; }
.gallery-head { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:40px; }
.gallery-head h2 { margin:13px 0 0; font-size:56px; line-height:.98; }
.gallery-head>p { max-width:390px; color:#b9aaa0; line-height:1.7; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px; }
.gallery-filters button { padding:10px 16px; border:1px solid #594338; border-radius:999px; background:transparent; color:#c8b9b0; font:700 11px Arial; cursor:pointer; transition:.2s ease; }
.gallery-filters button:hover,.gallery-filters button.active { background:#c45c1b; border-color:#c45c1b; color:white; }
.gallery-grid { display:grid; grid-template-columns:1.2fr .8fr 1fr; grid-auto-rows:230px; gap:14px; }
.gallery-item { min-height:0; position:relative; overflow:hidden; border-radius:22px; background:#453429; }
.gallery-item { cursor:zoom-in; outline:none; }
.gallery-item:focus-visible { box-shadow:0 0 0 4px #c45c1b; }
.gallery-item:nth-child(1),.gallery-item:nth-child(5) { grid-row:span 2; border-radius:90px 22px 22px 22px; }
.gallery-item:nth-child(3) { border-radius:22px 90px 22px 22px; }
.gallery-item img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.7) contrast(1.05); transition:transform .55s ease,filter .3s ease; }
.gallery-item:hover img { transform:scale(1.04); filter:saturate(1); }
.watermark-grid { position:absolute; z-index:2; inset:-20%; display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; align-items:center; justify-items:center; transform:rotate(-27deg) scale(1.15); color:rgba(255,255,255,.42); text-shadow:0 1px 3px rgba(0,0,0,.28); pointer-events:none; user-select:none; overflow:hidden; }
.watermark-grid span { font:800 clamp(8px,1vw,13px)/1 Arial; letter-spacing:.14em; white-space:nowrap; }
.gallery-open { position:absolute; z-index:2; top:18px; right:18px; color:white; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; opacity:0; transform:translateY(-5px); transition:.25s ease; }
.gallery-item:hover .gallery-open,.gallery-item:focus-visible .gallery-open { opacity:1; transform:none; }
.gallery-overlay { position:absolute; inset:auto 0 0; padding:70px 22px 22px; background:linear-gradient(transparent,rgba(26,16,11,.9)); }
.gallery-overlay>span { display:inline-block; padding:6px 9px; border-radius:999px; background:#c45c1b; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.gallery-overlay h3 { margin:10px 0 5px; font:400 23px Georgia,serif; }
.gallery-overlay small { color:#d0c3bb; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.gallery-note { margin:16px 0 0; color:#8f7d72; font-size:10px; }
.lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:40px 100px; background:rgba(24,15,10,.92); backdrop-filter:blur(18px); animation:lightbox-in .25s ease both; }
.lightbox figure { width:min(1050px,88vw); max-height:88vh; margin:0; display:grid; grid-template-rows:minmax(0,1fr) auto; }
.lightbox-image { min-height:0; position:relative; overflow:hidden; border-radius:22px 80px 22px 22px; background:#1b120d; }
.lightbox-image img { width:100%; height:min(68vh,720px); display:block; object-fit:contain; user-select:none; }
.lightbox-image .watermark-grid { inset:-18%; grid-template-columns:repeat(4,1fr); color:rgba(255,255,255,.38); }
.lightbox-image .watermark-grid span { font-size:clamp(10px,1.35vw,18px); }
.lightbox figcaption { padding:18px 4px 0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; }
.lightbox figcaption span { color:#e8894f; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.lightbox figcaption strong { font:400 24px Georgia,serif; }
.lightbox figcaption small { color:#a8968c; text-transform:uppercase; letter-spacing:.08em; }
.lightbox-close,.lightbox-arrow { position:absolute; display:grid; place-items:center; border:1px solid rgba(255,255,255,.22); border-radius:50%; background:rgba(255,255,255,.08); color:white; cursor:pointer; transition:.2s ease; }
.lightbox-close:hover,.lightbox-arrow:hover { background:#c45c1b; border-color:#c45c1b; }
.lightbox-close { top:25px; right:28px; width:46px; height:46px; font-size:28px; }
.lightbox-arrow { top:50%; width:54px; height:54px; font-size:22px; transform:translateY(-50%); }.lightbox-arrow.prev{left:28px}.lightbox-arrow.next{right:28px}
@keyframes lightbox-in { from{opacity:0} to{opacity:1} }
@media(max-width:900px){.hero{background:#fbfaf7}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-head{align-items:flex-start;flex-direction:column}.gallery-item:nth-child(1),.gallery-item:nth-child(5){grid-row:span 1}}
@media(max-width:560px){.service-grid{gap:12px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:300px}.gallery-head h2{font-size:44px}.work-gallery{padding:75px 18px}.gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(3),.gallery-item:nth-child(5){border-radius:28px}.contact{border-radius:40px 14px}}

.contact {
  position:relative;
  z-index:3;
  margin:-72px auto 105px;
  box-shadow:0 28px 70px rgba(66,39,23,.14);
}
.contact:before {
  content:"";
  position:absolute;
  top:-13px;
  left:74px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#c45c1b;
  box-shadow:0 0 0 9px #251a14;
}
@media(max-width:900px){.contact{margin:-58px 20px 85px}}
@media(max-width:560px){.work-gallery{padding-bottom:120px}.contact{margin:-45px 12px 70px}.contact:before{left:42px}}
@media(max-width:700px){.lightbox{padding:75px 15px 100px}.lightbox figure{width:100%}.lightbox-image{border-radius:18px 55px 18px 18px}.lightbox-image img{height:60vh}.lightbox-arrow{top:auto;bottom:25px;transform:none}.lightbox-arrow.prev{left:calc(50% - 64px)}.lightbox-arrow.next{right:calc(50% - 64px)}.lightbox figcaption{grid-template-columns:1fr}.lightbox figcaption small{display:none}}

.hero-panel .panel-kicker { margin-top:181px; }
@media(max-width:560px){.hero-panel .panel-kicker{margin-top:140px}}

/* Barre de titre flottante */
.site-header {
  position:fixed;
  z-index:50;
  top:18px;
  left:50%;
  width:min(calc(100% - 36px),1184px);
  height:68px;
  padding:0 14px 0 16px;
  transform:translateX(-50%);
  border:1px solid rgba(78,54,40,.14);
  border-radius:18px;
  background:rgba(255,253,250,.82);
  box-shadow:0 18px 50px rgba(60,39,25,.11),inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter:blur(18px) saturate(1.35);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
}
.window-controls { display:flex; align-items:center; gap:7px; padding-right:17px; margin-right:1px; border-right:1px solid #e8dfd9; }
.window-controls span { width:10px; height:10px; border-radius:50%; display:block; box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.window-controls span:nth-child(1) { background:#ff5f57; }
.window-controls span:nth-child(2) { background:#febc2e; }
.window-controls span:nth-child(3) { background:#28c840; }
.site-header .brand-mark { width:36px; height:36px; font-size:10px; }
.site-header .brand strong { font-size:16px; }
.site-header .brand small { display:none; }
.titlebar-label { position:absolute; left:50%; transform:translateX(-50%); color:#8b7c73; font-size:11px; font-weight:700; letter-spacing:.02em; pointer-events:none; }
.site-header nav { margin-left:auto; gap:25px; font-size:12px; }
.site-header .button-header { min-height:40px; margin-left:20px; padding:0 17px; }
.hero { padding-top:150px; min-height:100vh; }
@media(max-width:1050px){.titlebar-label{display:none}}
@media(max-width:800px){.site-header{top:10px;width:calc(100% - 20px);height:60px;border-radius:16px}.site-header nav{display:none}.site-header .brand{margin-right:auto}.window-controls{padding-right:12px}.hero{padding-top:115px}.site-header .button-header{margin-left:10px}}
@media(max-width:460px){.site-header{padding:0 9px 0 13px}.window-controls span{width:8px;height:8px}.site-header .brand-mark{display:none}.site-header .brand strong{font-size:14px}.site-header .button-header{padding:0 12px;font-size:10px}}
