:root { --ink:#04182a; --navy:#061e35; --cream:#edf3f7; --yellow:#1677d2; --blue-light:#68b7ff; --muted:#61717f; --line:rgba(4,24,42,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:'DM Sans',Arial,sans-serif; }
.header { height:88px; padding:0 5.6vw; position:absolute; z-index:10; top:0; width:100%; display:flex; align-items:center; justify-content:space-between; color:white; border-bottom:1px solid rgba(255,255,255,.25); }
.brand { color:inherit; font:700 2rem/1 'Barlow Condensed',sans-serif; letter-spacing:.03em; text-decoration:none; }.brand span { color:var(--yellow); }.brand-logo { width:143px; height:68px; overflow:hidden; display:block; }.brand-logo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; mix-blend-mode:screen; }
.nav { display:flex; align-items:center; height:100%; gap:2.1rem; }.nav a { color:inherit; font-size:.83rem; font-weight:600; text-decoration:none; }.nav-cta { margin-left:1.2rem; border-left:1px solid rgba(255,255,255,.35); padding-left:2rem; }.nav-cta b { color:var(--yellow); font-size:1.2rem; margin-left:.25rem; }
.menu-toggle { display:none; }
.hero { min-height:750px; height:100vh; max-height:930px; position:relative; color:white; background:#292a26 url('https://images.unsplash.com/photo-1504917595217-d4dc5ebe6122?auto=format&fit=crop&w=2100&q=85') center/cover; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,15,13,.83),rgba(14,15,13,.43) 58%,rgba(14,15,13,.1)),linear-gradient(0deg,rgba(0,0,0,.35),transparent 38%); }.hero-content,.hero-bottom { z-index:1; position:relative; margin-left:10.8vw; }.hero-content { margin-top:4rem; max-width:850px; }.eyebrow { text-transform:uppercase; letter-spacing:.13em; font-size:.67rem; font-weight:700; display:flex; align-items:center; gap:.75rem; margin:0 0 1.7rem; }.eyebrow span { display:inline-block; background:var(--yellow); height:2px; width:32px; }.eyebrow.dark { color:#5c5d58; }.hero h1,h2 { margin:0; font:700 clamp(4.2rem,8.1vw,8.6rem)/.86 'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:-.025em; }.hero h1 em,h2 em { font-style:normal; color:var(--yellow); }.hero-text { max-width:410px; font-size:1rem; line-height:1.65; margin:2rem 0 2.35rem; color:rgba(255,255,255,.85); }.button { display:inline-flex; align-items:center; gap:2.8rem; text-decoration:none; text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; font-weight:700; padding:1.05rem 1.25rem; }.button-primary { color:var(--ink); background:var(--yellow); }.button b { font-size:1.35rem; }.hero-bottom { position:absolute; bottom:2.7rem; right:5.6vw; display:flex; align-items:end; justify-content:space-between; }.hero-bottom p { margin:0; max-width:280px; font-size:.72rem; line-height:1.55; color:rgba(255,255,255,.73); }.scroll { text-decoration:none; color:white; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }.scroll span { color:var(--yellow); margin-left:.7rem; font-size:1.3rem; }
.section { padding:9.5rem 10.8vw; }.section-intro h2,.about h2,.method h2,.contact h2 { font-size:clamp(3.7rem,6.2vw,6.5rem); }.services { background:var(--cream); }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:4.8rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.service-card { min-height:360px; padding:1.6rem 2rem 2rem; border-right:1px solid var(--line); position:relative; transition:.25s ease; }.service-card:last-child { border:0; }.service-card:hover,.service-card.feature { background:var(--ink); color:white; }.number { font-size:.67rem; margin:0; color:#8a8b85; font-weight:700; }.service-icon { font-size:2.2rem; color:var(--yellow); margin:4rem 0 1.2rem; }.service-card h3 { font:600 2rem 'Barlow Condensed',sans-serif; text-transform:uppercase; margin:0 0 .5rem; }.service-card > p:not(.number) { color:inherit; opacity:.7; font-size:.83rem; line-height:1.6; max-width:230px; }.card-arrow { position:absolute; bottom:1.6rem; right:2rem; color:var(--yellow); font-size:1.5rem; }
.method { background:var(--ink); color:white; display:grid; grid-template-columns:1fr 1fr; }.method-image { min-height:680px; background:url('https://images.unsplash.com/photo-1581092795360-fd1ca04f0952?auto=format&fit=crop&w=1500&q=85') center/cover; }.method-content { padding:9.5rem 8vw 7rem; }.method-content p:not(.eyebrow) { color:rgba(255,255,255,.7); line-height:1.7; font-size:.9rem; max-width:430px; margin:2rem 0 3rem; }.method ol { padding:0; margin:0; list-style:none; border-top:1px solid rgba(255,255,255,.2); }.method li { display:flex; gap:1.3rem; align-items:center; padding:1.1rem 0; border-bottom:1px solid rgba(255,255,255,.2); font-size:.82rem; font-weight:600; }.method li b { font:600 1rem 'Barlow Condensed',sans-serif; color:var(--yellow); }
.partners { min-height:490px; position:relative; overflow:hidden; color:white; padding:5.5rem 0 4.3rem; background:#151715 url('https://images.unsplash.com/photo-1508459855340-fb63ac591728?auto=format&fit=crop&w=2200&q=85') center/cover; }.partners-overlay { position:absolute; inset:0; background:rgba(12,14,12,.73); }.partners-heading { text-align:center; position:relative; z-index:1; }.partners-heading .eyebrow { justify-content:center; color:#e9e9e4; margin-bottom:1rem; }.partners h2 { font-size:clamp(3.6rem,6.4vw,6.3rem); }.partner-marquee { position:relative; z-index:1; margin-top:3.5rem; overflow:hidden; width:100%; }.partner-track { display:flex; width:max-content; gap:2.2rem; animation:partners 28s linear infinite; }.partner-marquee:hover .partner-track { animation-play-state:paused; }.partner-card { width:250px; height:105px; flex:none; background:#f6f6f3; color:#20211f; border-radius:18px; display:flex; align-items:center; justify-content:center; flex-direction:column; box-shadow:0 8px 18px rgba(0,0,0,.25); }.partner-card span { color:#777872; font-size:.55rem; text-transform:uppercase; letter-spacing:.22em; margin-bottom:.25rem; }.partner-card strong { font:700 1.65rem/1 'Barlow Condensed',sans-serif; letter-spacing:.05em; }.partner-card:nth-child(3n+2) strong { color:#0756a2; }.partner-card:nth-child(3n) strong { color:#d68100; }@keyframes partners { to { transform:translateX(calc(-50% - 1.1rem)); } }
.about { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; }.about-copy { padding-top:3.7rem; }.lead { font:600 1.3rem/1.45 'DM Sans',sans-serif!important; }.about-copy > p { color:#60615c; font-size:.9rem; line-height:1.7; }.stats { display:flex; gap:1.5rem; margin-top:3.4rem; }.stats div { min-width:105px; }.stats strong { display:block; font:600 2.15rem 'Barlow Condensed',sans-serif; }.stats span { display:block; margin-top:.35rem; font-size:.65rem; line-height:1.4; color:#777872; text-transform:uppercase; letter-spacing:.08em; }
.contact { background:var(--yellow); min-height:650px; padding:8.5rem 10.8vw 3rem; display:flex; flex-direction:column; justify-content:space-between; }.contact h2 em { color:var(--ink); -webkit-text-stroke:1.3px var(--ink); }.contact h2 { color:var(--ink); }.contact-inner > p:not(.eyebrow) { font-size:.95rem; max-width:430px; line-height:1.65; margin:1.8rem 0 2.2rem; }.contact .button-primary { background:var(--ink); color:white; }.contact-details { padding-top:3rem; display:flex; gap:5.8rem; }.contact-details span { display:block; text-transform:uppercase; font-size:.62rem; letter-spacing:.12em; font-weight:700; margin-bottom:.6rem; }.contact-details p { margin:0; font-size:.75rem; line-height:1.65; }
footer { display:flex; align-items:center; justify-content:space-between; padding:1.8rem 5.6vw; background:var(--ink); color:white; }footer .brand { font-size:1.45rem; } footer p,footer a:not(.brand) { margin:0; color:rgba(255,255,255,.55); font-size:.64rem; text-decoration:none; }
@media (max-width:800px) { .header { height:72px; padding:0 6vw; }.brand-logo { width:118px; height:62px; }.nav { position:absolute; display:none; top:72px; left:0; right:0; height:auto; padding:1rem 6vw 1.5rem; background:var(--ink); flex-direction:column; align-items:flex-start; gap:1.2rem; }.nav.open { display:flex; }.nav-cta { border:0; padding:0; margin:0; }.menu-toggle { display:grid; gap:5px; border:0; background:none; padding:8px 0; }.menu-toggle i { display:block; width:24px; height:2px; background:white; }.hero { min-height:670px; }.hero-content,.hero-bottom { margin-left:6vw; }.hero-content { margin-top:2rem; }.hero-bottom { right:6vw; }.hero-bottom p { display:none; }.section { padding:5.8rem 6vw; }.service-grid { grid-template-columns:1fr; margin-top:3rem; }.service-card { min-height:250px; border-right:0; border-bottom:1px solid var(--line); }.service-icon { margin-top:2.2rem; }.method { grid-template-columns:1fr; }.method-image { min-height:360px; }.method-content { padding:5.8rem 6vw; }.partners { min-height:410px; padding-top:4.7rem; }.partner-marquee { margin-top:2.6rem; }.partner-card { width:205px; height:88px; }.about { grid-template-columns:1fr; gap:0; }.about-copy { padding-top:1rem; }.contact { min-height:590px; padding:5.8rem 6vw 2rem; }.contact-details { gap:1.7rem; flex-direction:column; }.stats { gap:1.3rem; } footer { padding:1.5rem 6vw; flex-wrap:wrap; gap:1rem; } }
@media (max-width:430px) { .hero h1 { font-size:3.9rem; }.hero-text { font-size:.9rem; }.stats { gap:.8rem; }.stats div { min-width:90px; }.stats strong { font-size:1.8rem; } footer p { order:3; width:100%; } }

/* Palette officielle MAKTOR — bleu marine et bleu électrique */
.hero { background-color:var(--navy); }
.hero-shade { background:linear-gradient(90deg,rgba(2,15,29,.91),rgba(2,18,34,.57) 58%,rgba(2,14,27,.16)),linear-gradient(0deg,rgba(2,15,29,.48),transparent 38%); }
.hero h1 em,h2 em { color:var(--blue-light); }
.button-primary { color:white; }
.scroll span { color:var(--blue-light); }
.service-card:hover,.service-card.feature { background:var(--navy); }
.number { color:#6f899a; }
.card-arrow { color:var(--blue-light); }
.partners { background-color:var(--navy); }
.partners-overlay { background:rgba(2,18,34,.82); }
.partners-heading .eyebrow { color:#dbeeff; }
.partner-card { background:#f6faff; color:var(--navy); border:1px solid rgba(104,183,255,.36); }
.partner-card img { display:block; max-width:76%; max-height:56px; object-fit:contain; }
.partner-card span { color:#60798d; }
.partner-card:nth-child(3n) strong { color:var(--yellow); }
.contact { background:linear-gradient(135deg,#0756a2,#1677d2); color:white; }
.contact .eyebrow span { background:white; }
.contact h2,.contact h2 em { color:white; -webkit-text-stroke:1.3px white; }
.contact .button-primary { background:var(--navy); color:white; }

/* Sections sombres : meilleur confort visuel et esprit BTP */
.services { background:#10283c; color:white; }
.services .eyebrow.dark { color:#a9c3d4; }
.services .service-grid { border-color:rgba(183,218,240,.22); }
.services .service-card { background:#17364d; border-color:rgba(183,218,240,.22); }
.services .service-card.feature,.services .service-card:hover { background:#061e35; }
.services .service-card > p:not(.number) { color:#d3e1ea; opacity:.86; }
.services .number { color:#78b9ec; }
.about { background:#0d263a; color:white; }
.about .eyebrow.dark { color:#a9c3d4; }
.about-copy > p { color:#d5e2ea; }
.about .stats { border-top:1px solid rgba(183,218,240,.24); padding-top:1.8rem; }
.about .stats span { color:#acc7d8; }

.linkedin-feed { background:#061e35; color:white; display:grid; grid-template-columns:1fr 1fr; min-height:570px; }
.linkedin-content { padding:8rem 8vw 7rem 10.8vw; }
.linkedin-content > p:not(.eyebrow) { color:#c9dae5; line-height:1.7; max-width:390px; font-size:.92rem; margin:2rem 0 2.35rem; }
.linkedin-visual { position:relative; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; padding:2.6rem 3rem; color:white; text-decoration:none; font-size:.82rem; line-height:1.45; background:#061e35; }.linkedin-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,20,36,.88),rgba(3,20,36,.05)); }.linkedin-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.linkedin-visual > span { position:relative; z-index:1; }
.linkedin-visual:hover { filter:brightness(1.12); }
.linkedin-mark { width:72px; height:72px; display:grid; place-items:center; font:700 3.1rem/1 'DM Sans',sans-serif; background:#0a66c2; border-radius:8px; }
.footer-links { display:flex; align-items:center; gap:1.3rem; }.footer-links a { margin:0; color:rgba(255,255,255,.55); font-size:.64rem; text-decoration:none; }
@media (max-width:800px) { .linkedin-feed { grid-template-columns:1fr; }.linkedin-content { padding:5.8rem 6vw; }.linkedin-visual { min-height:320px; padding:2rem 6vw; }.footer-links { gap:1rem; } }

.realisations { background:#d7e4ec; }.realisations-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:4rem; align-items:end; margin-bottom:4rem; }.realisations-intro > p:not(.eyebrow) { margin:0; color:#37536a; font-size:.93rem; line-height:1.7; max-width:430px; }.gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }.gallery figure { position:relative; height:285px; overflow:hidden; margin:0; background:var(--navy); }.gallery figure.gallery-wide { grid-column:span 2; }.gallery img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }.gallery figure:hover img { transform:scale(1.05); }.gallery figcaption { position:absolute; z-index:1; bottom:0; left:0; right:0; padding:2.2rem 1.25rem 1.1rem; color:white; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.11em; background:linear-gradient(transparent,rgba(3,20,36,.85)); }
@media (max-width:800px) { .realisations-intro { grid-template-columns:1fr; gap:1.8rem; margin-bottom:2.8rem; }.gallery { grid-template-columns:1fr 1fr; gap:.8rem; }.gallery figure,.gallery figure.gallery-wide { height:230px; grid-column:auto; }.gallery figure:first-child,.gallery figure:last-child { grid-column:span 2; } }

/* Logos partenaires intégrés : aucun chargement externe nécessaire */
.partner-card { background:#e7f0f6; }
.partner-card { width:250px; height:105px; }
.partner-logo { display:inline-flex; align-items:center; justify-content:center; gap:.72rem; color:#092a44!important; font:800 2.55rem/1 'DM Sans',sans-serif; letter-spacing:-.07em; white-space:nowrap; }
.partner-logo i { display:inline-block; flex:none; }
.partner-logo small { display:block; font:700 .6rem/1.15 'DM Sans',sans-serif; letter-spacing:.04em; margin-top:.22rem; }
.vinci { color:#142b4d!important; }.vinci i { width:24px; height:24px; transform:rotate(45deg); background:#ef4536; border-radius:5px; box-shadow:12px -12px 0 #ef4536; margin-right:10px; }
.eiffage { color:#222!important; }.eiffage i { width:31px; height:25px; background:linear-gradient(#e7352b 0 21%,transparent 21% 39%,#e7352b 39% 61%,transparent 61% 79%,#e7352b 79%); }
.colas { color:#202d3c!important; }.colas i { width:28px; height:28px; border-radius:50%; background:#f8c400; box-shadow:inset -9px 0 0 #202d3c; }
.bouygues { color:#0070ba!important; align-items:flex-start; }.bouygues i { width:12px; height:36px; margin-top:0; background:#e6332a; }.bouygues small,.spie small { color:#36576d; }
.spie { color:#e64b35!important; }.spie i { width:28px; height:28px; border:6px solid #e64b35; border-radius:50%; }

/* Galerie de réalisations : structure fixe, titre lisible et fond chantier */
.realisations { background:#0a2235; color:white; }
.realisations .eyebrow.dark { color:#a9c7db; }
.realisations-intro { grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); column-gap:6vw; }
.realisations-intro .eyebrow,.realisations-intro h2 { grid-column:1; }
.realisations-intro h2 { font-size:clamp(3.7rem,6vw,6.4rem); max-width:730px; }
.realisations-intro > p:not(.eyebrow) { grid-column:2; grid-row:1 / span 2; align-self:end; color:#c8dbe7; padding-bottom:.55rem; }
.gallery { gap:1.1rem; }
.gallery figure { height:300px; border:1px solid rgba(125,190,235,.24); }
.gallery figure { cursor:zoom-in; }
.gallery figure.gallery-wide { height:350px; }
.gallery figcaption { color:#eaf6ff; }
@media (max-width:800px) { .realisations-intro .eyebrow,.realisations-intro h2,.realisations-intro > p:not(.eyebrow) { grid-column:auto; grid-row:auto; }.realisations-intro > p:not(.eyebrow) { padding:0; }.gallery figure { height:210px; }.gallery figure.gallery-wide { height:280px; } }

.lightbox { width:min(1100px,92vw); max-width:none; max-height:90vh; padding:0; border:1px solid rgba(104,183,255,.45); background:#061e35; color:white; box-shadow:0 24px 80px rgba(0,0,0,.7); }.lightbox::backdrop { background:rgba(0,10,20,.87); backdrop-filter:blur(4px); }.lightbox img { display:block; width:100%; max-height:80vh; object-fit:contain; }.lightbox p { padding:.85rem 1.15rem 1rem; margin:0; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.lightbox-close { position:absolute; z-index:1; top:.8rem; right:.8rem; display:grid; place-items:center; width:38px; height:38px; padding:0; border:0; border-radius:50%; color:white; background:rgba(4,24,42,.85); font-size:2rem; line-height:1; cursor:pointer; }

/* Photo LinkedIn complète, sans recadrage */
.linkedin-visual img { object-fit:contain; object-position:center; background:#061e35; transform:scale(1.35); }

/* Contact et pied de page : plus présents, bleu nuit plus sobre */
.method-image { background-image:url('assets/realisations/mini-pelle-demolition.png'); }
.contact { min-height:735px; background:radial-gradient(circle at 82% 18%,#1d5d88 0,transparent 38%),linear-gradient(135deg,#031526 0%,#0a2c47 58%,#071c30 100%); }
.contact h2 { font-size:clamp(4.6rem,7.5vw,8rem); }
.contact-inner > p:not(.eyebrow) { max-width:500px; font-size:1.08rem; }
.contact .button { padding:1.22rem 1.5rem; font-size:.75rem; }
.contact-details { padding-top:4rem; gap:7rem; }
.contact-details span { font-size:.72rem; }.contact-details p { font-size:.88rem; }
footer { min-height:96px; padding:2.3rem 5.6vw; }footer .brand { font-size:2rem; }footer p,footer a:not(.brand),.footer-links a { font-size:.76rem; }
@media (max-width:800px) { .contact { min-height:620px; }.contact h2 { font-size:clamp(4rem,15vw,5.3rem); }.contact-details { padding-top:3rem; gap:1.7rem; }footer { min-height:0; padding:2rem 6vw; } }
@media (max-width:800px) { .partner-card { width:205px; height:88px; }.partner-logo { font-size:1.95rem; } }
