/* Présentation commune aux pages Desneux. */
:root { --desneux-ink:#09243c; --desneux-line:#dce4eb; --desneux-orange:#ff7a20; }
body { background:#f5f7f9; }
html { scroll-padding-top:90px; }
.main-nav { background:#06233e; box-shadow:0 4px 20px #001b3a12; }
.main-nav .nav-link { font-family:Manrope,Arial,sans-serif; font-size:.9rem; letter-spacing:0; border-radius:10px; font-weight:600; }
.main-nav .nav-logo a { padding-block:.3rem; }
.main-nav a.nav-link.nav-cta { padding-inline:1.15rem; }
.nav-dropdown { background:#092b49; border:1px solid #31516b; padding:.5rem; border-radius:14px; box-shadow:0 14px 35px #00152e44; }
.bouton-contact, .contact-submit, .home-inline-cta a, .coords-actions a, .main-nav a.nav-link.nav-cta, .filter-btn { font-family:Manrope,Arial,sans-serif; text-transform:none; letter-spacing:0; font-size:.95rem; font-weight:700; border-radius:10px; }
.bouton-contact, .contact-submit, .home-inline-cta a, .coords-actions a { min-height:52px; padding:.85rem 1.25rem; display:inline-flex; align-items:center; justify-content:center; gap:.65rem; line-height:1.4; }
.bouton-contact.primary, .bouton-contact.phone-btn, .contact-submit, .home-inline-cta a, .coords-actions .coords-call, .main-nav a.nav-link.nav-cta { background:#ff7a20; color:#09243c; border:1px solid #ff963e; box-shadow:0 4px 12px #001b3a12; }
.bouton-contact.primary:hover, .bouton-contact.phone-btn:hover, .contact-submit:hover, .home-inline-cta a:hover, .coords-actions .coords-call:hover, .main-nav a.nav-link.nav-cta:hover { background:#ff963e; color:#09243c; box-shadow:0 6px 18px #001b3a24; transform:none; }
.bouton-contact.ghost { background:#ffffff0d; color:#fff; border:1px solid #adc0d3; box-shadow:none; }
.bouton-contact.ghost:hover { background:#ffffff1f; color:#fff; border-color:#fff; }
.about-team-actions .bouton-contact.ghost { color:#09243c; background:#edf2f6; border-color:#c5d3df; }
.about-team-actions .bouton-contact.ghost:hover { background:#dfe8f0; color:#09243c; }
.coords-actions .coords-email { background:#edf2f6; color:#09243c; border:1px solid #c5d3df; box-shadow:none; }
.coords-actions a:hover { transform:none; }
.bouton-contact::before, .home-inline-cta a::before { width:1.1rem; height:1.1rem; flex-basis:1.1rem; }
.hero.hero-with-photo { background:radial-gradient(ellipse at 100% 0%,#164466,#06233e 65%); border-bottom:0; padding:clamp(2.5rem,5vw,4.5rem) max(1.25rem,4vw); }
.hero.hero-with-photo::before, .hero.hero-with-photo::after { content:none; }
.hero-with-photo .hero-inner { max-width:1200px; display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(2rem,4vw,4rem); align-items:center; text-align:left; }
.hero-copy { min-width:0; }
.hero-with-photo .hero-eyebrow { display:inline-flex; padding:.4rem .7rem; background:#ffffff0c; border:1px solid #ffffff26; border-radius:6px; font-family:Manrope,Arial,sans-serif; font-size:.75rem; letter-spacing:.1em; color:#ffab6d; margin-bottom:1.4rem; }
.hero-with-photo h1 { font-size:clamp(2.7rem,4.5vw,4.2rem); line-height:1.05; text-wrap:balance; margin-bottom:1.4rem; }
.hero-with-photo .hero-subtitle { font-size:1.02rem; line-height:1.8; color:#d6e2ee; margin:0; max-width:560px; }
.hero-with-photo .hero-cta { justify-content:flex-start; margin-top:1.75rem; flex-wrap:wrap; gap:.75rem; }
.hero-with-photo .hero-cta .bouton-contact { min-width:0; }
.hero-with-photo .hero-badges { justify-content:flex-start; margin-top:1.4rem; gap:.5rem; flex-wrap:wrap; }
.hero-with-photo .hero-badges span { background:none; border:0; padding:0; font-size:.8rem; color:#c7d8e7; margin-right:.8rem; }
.hero-project { position:relative; min-width:0; margin:0; overflow:hidden; border-radius:20px; border:1px solid #ffffff2e; box-shadow:0 20px 45px #00132344; }
.hero-project > img { display:block; width:100%; height:430px; object-fit:cover; object-position:center; }
.hero-project figcaption { display:flex; flex-direction:column; gap:.35rem; padding:1.1rem 1.35rem; background:#fff; color:#09243c; }
.hero-project figcaption > span { color:#566879; text-transform:uppercase; font-size:.7rem; letter-spacing:.12em; font-weight:700; }
.hero-project strong { font-size:1.05rem; }
.hero-project figcaption a { display:inline-flex; align-items:center; justify-content:space-between; min-height:44px; color:#09243c; border-top:1px solid #e2e9ef; margin-top:.3rem; padding-top:.5rem; font-size:.85rem; text-decoration:none; font-weight:700; }
.hero-project figcaption a:hover { color:#a84200; }
.hero-project figcaption a:focus-visible { outline:3px solid #b64700; outline-offset:3px; }
.promise-bar { background:#fff; padding:1.65rem max(1rem,4vw); border-bottom:1px solid #e3e9ef; }
.promise-item strong { font-size:1.1rem; }
.promise-item > span:last-child { font-size:.85rem; color:#566879; }
.promise-item .promise-icon { background:#fff4eb; box-shadow:none; }
.section-header { margin-bottom:2.5rem; }
.section-header h2 { line-height:1.1; font-size:clamp(2.1rem,3.5vw,3rem); margin-bottom:.9rem; }
.section-header p { color:#526477; font-size:1rem; line-height:1.8; max-width:720px; margin-inline:auto; }
.section-header .section-label { color:#a84200; font-size:.8rem; letter-spacing:.13em; }
.services-compact,.gallery-section,.faq-section { background:#f5f7f9; }
.services-cards { gap:1.25rem; }
.service-compact-card,.proof-card,.process-card,.contact-form-card,.contact-coords,.contact-card,.realisation-card,.blog-card,.about-team-profile { border-radius:16px; border:1px solid #dce4eb; box-shadow:0 5px 20px #09243c07; }
.service-compact-card { padding:1.75rem; display:flex; flex-direction:column; }
.service-compact-card::before { width:42px; height:3px; top:0; left:1.75rem; }
.service-compact-card h3 { font-size:1.55rem; line-height:1.2; margin-bottom:.8rem; }
.service-compact-card p { color:#526477; font-size:.94rem; line-height:1.75; }
.service-compact-card li { font-size:.88rem; line-height:1.65; color:#3e5266; }
.service-compact-card .service-link { margin-top:auto; padding-top:1rem; min-height:48px; color:#09243c; font-size:.9rem; }
.service-compact-card ul { margin-bottom:1.25rem; }
.service-link::after { background:#fff0e4; color:#09243c; border-radius:8px; }
.service-compact-card:hover,.proof-card:hover,.realisation-card:hover,.blog-card:hover { transform:none; border-color:#c2d0dc; box-shadow:0 10px 28px #09243c12; }
.service-icon { width:52px; height:52px; border-radius:12px; box-shadow:none; }
.service-compact-card:hover .service-icon { transform:none; }
.process-card { text-align:left; padding:1.5rem; border-top:1px solid #dce4eb; background:#fff; }
.process-card .step-number { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; color:#09243c; background:#fff0e4; font-family:Manrope,Arial,sans-serif; font-size:1rem; font-weight:800; margin:0 0 1.25rem; }
.process-card h3 { font-size:1.4rem; line-height:1.25; }
.process-card p { color:#526477; line-height:1.75; font-size:.9rem; }
.home-inline-cta { max-width:1200px; border:1px solid #dce4eb; border-left:4px solid #ff7a20; border-radius:14px; background:#fff; color:#09243c; box-shadow:none; margin:0 auto; }
.home-inline-cta span { color:#526477; }
.gallery figure { border-radius:14px; border:1px solid #dce4eb; overflow:hidden; background:#fff; }
.gallery figcaption { padding:1rem; }
.filter-bar { background:#e8eef3; border-color:#d2dce5; border-radius:12px; }
.filter-btn { min-height:44px; border-radius:8px; padding:.65rem 1rem; }
.filter-btn.active { background:#09243c; color:#fff; box-shadow:0 3px 8px #09243c16; }
.cta-section { clip-path:none; background:#06233e; border-bottom:0; padding-block:3.5rem; }
.cta-section h2 { font-size:clamp(2.1rem,3.5vw,3rem); line-height:1.15; }
.contact-form-section { background:#f5f7f9; }
.contact-inner { max-width:1200px; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:1.5rem; }
.contact-form-card,.contact-coords { padding:clamp(1.25rem,3vw,2rem); }
.contact-field label { text-transform:none; font-size:.9rem; color:#233e55; letter-spacing:0; }
.contact-field input,.contact-field select,.contact-field textarea { border:1px solid #bbcbd8; border-radius:10px; background:#fff; font-family:Manrope,Arial,sans-serif; font-size:1rem; }
.contact-field input,.contact-field select { min-height:50px; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { border-color:#365e7e; outline:2px solid #365e7e; outline-offset:2px; box-shadow:none; }
.contact-card-title { font-family:Manrope,Arial,sans-serif; font-size:1.15rem; }
.contact-rgpd-label { color:#526477; line-height:1.7; }
.coords-list a { min-height:44px; display:flex; align-items:center; overflow-wrap:anywhere; font-size:.95rem; }
.coords-actions { gap:.65rem; }
.contact-success,.contact-error { border-radius:10px; line-height:1.65; }
.site-footer { border-top:3px solid #ff7a20; }
@media(max-width:1000px) { .hero-with-photo .hero-inner { gap:2rem; } .hero-project > img { height:360px; } .hero-with-photo .hero-cta { display:grid; grid-template-columns:1fr; } }
@media(max-width:768px) { .hero-with-photo .hero-inner { grid-template-columns:minmax(0,1fr); gap:2rem; } .hero.hero-with-photo { padding:2rem 1.25rem; } .hero-with-photo h1 { font-size:clamp(2.5rem,10vw,3.7rem); } .hero-with-photo .hero-eyebrow { font-size:.65rem; letter-spacing:.06em; } .hero-project > img { height:220px; } .hero-with-photo .hero-cta { margin-top:1.5rem; width:100%; } .hero-project { border-radius:14px; } .hero-with-photo .hero-badges { row-gap:.8rem; } .contact-inner { grid-template-columns:minmax(0,1fr); } .service-compact-card { padding:1.5rem; } .home-inline-cta { margin-inline:1.25rem; } .section-header { margin-bottom:1.75rem; } .process-card { padding:1.25rem; } }
@media(prefers-reduced-motion:reduce) { .hero-project *, .realisation-card *, .blog-card * { transition:none !important; animation:none !important; } }
.main-nav a.nav-link.nav-cta.active { color:#09243c; box-shadow:0 4px 12px #001b3a12; }
.service-hero:not(.service-hero-visual), .realisations-hero, .blog-hero { background:linear-gradient(120deg,#06233e,#154263); border-bottom:1px solid #315671; }
.service-hero h1 { font-size:clamp(2.1rem,3.5vw,3.1rem); line-height:1.15; }
.service-hero .breadcrumb { font-size:.85rem; }
.service-hero .service-hero-sub { color:#d0dfec; line-height:1.8; }
