:root { --dap-ink: #112726; --dap-green: #165c4c; --dap-muted: #445854; --dap-line: #d7e4df; --dap-paper: #f4f7f0; --dap-mint: #e5f0e9; --dap-accent: #f4cd70; --dap-radius: 1.25rem; }

/* Base et boutons */
.home-page { --bs-body-color: var(--dap-ink); --bs-body-line-height: 1.65; --bs-link-color-rgb: 22, 92, 76; --bs-link-hover-color-rgb: 17, 39, 38; background: #fff; }

.home-page h1, .home-page h2, .home-page h3 { font-weight: 800; line-height: 1.15; }

.home-page a { text-underline-offset: .18em; }

.home-page :focus-visible, .site-nav :focus-visible { outline: 3px solid #287f66; outline-offset: 3px; }

.home-page .skip-link:focus { position: absolute; z-index: 1100; inset: .5rem auto auto .5rem; padding: .55rem 1rem; color: var(--dap-ink); background: #fff; }

.home-page .btn-assistance, .home-page .btn-home-outline { min-height: 2.8rem; padding: .65rem 1rem; border-radius: .7rem; font-weight: 750; }

.home-page .btn-assistance { --bs-btn-color: var(--dap-ink); --bs-btn-bg: var(--dap-accent); --bs-btn-border-color: var(--dap-accent); --bs-btn-hover-color: var(--dap-ink); --bs-btn-hover-bg: #ffdc91; --bs-btn-hover-border-color: #ffdc91; --bs-btn-active-color: var(--dap-ink); --bs-btn-active-bg: #e8b94e; --bs-btn-active-border-color: #e8b94e; --bs-btn-focus-shadow-rgb: 244, 205, 112; }

.home-page .btn-home-outline { --bs-btn-color: var(--dap-ink); --bs-btn-border-color: #6b8179; --bs-btn-hover-color: var(--dap-ink); --bs-btn-hover-bg: var(--dap-mint); --bs-btn-hover-border-color: var(--dap-green); --bs-btn-active-color: white; --bs-btn-active-bg: var(--dap-green); --bs-btn-active-border-color: var(--dap-green); }

/* Navigation partagée */
.site-header { position: relative; z-index: 20; background: #fff; border-bottom: 1px solid var(--dap-line); }

.site-nav { --bs-navbar-padding-y: .75rem; --bs-navbar-color: var(--dap-muted); --bs-navbar-hover-color: var(--dap-green); --bs-navbar-active-color: var(--dap-ink); }

.site-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--dap-ink); font-size: clamp(.95rem, .85rem + .45vw, 1.15rem); font-weight: 800; line-height: 1.15; text-decoration: none; white-space: normal; }

.site-brand img { flex: none; object-fit: contain; background: #fff; border-radius: .55rem; }

.site-brand small { display: block; margin-top: .25rem; color: var(--dap-muted); font-size: .72rem; font-weight: 600; }

.site-nav .navbar-brand { margin-right: .45rem; }

.site-nav .navbar-toggler { padding: .35rem .5rem; }

.site-nav .nav-link { font-weight: 650; }

.site-nav .dropdown-menu { --bs-dropdown-border-color: var(--dap-line); --bs-dropdown-border-radius: .85rem; --bs-dropdown-link-color: var(--dap-ink); --bs-dropdown-link-hover-bg: var(--dap-mint); max-height: min(55vh, 28rem); overflow-y: auto; }

.site-nav .dropdown-item, .site-nav .dropdown-header { white-space: normal; }

.site-nav .caret { display: none; }

.site-nav .btn-nav-phone { --bs-btn-color: white; --bs-btn-bg: var(--dap-green); --bs-btn-border-color: var(--dap-green); --bs-btn-hover-color: white; --bs-btn-hover-bg: var(--dap-ink); --bs-btn-hover-border-color: var(--dap-ink); --bs-btn-active-color: white; --bs-btn-active-bg: var(--dap-ink); --bs-btn-active-border-color: var(--dap-ink); border-radius: .65rem; font-weight: 750; white-space: nowrap; }

/* Bandeaux */
.hero { padding-block: clamp(2.5rem, 6vw, 5.5rem); background: var(--dap-ink); color: #fff; }

.hero-label { display: inline-flex; align-items: center; gap: .55rem; padding: .35rem .7rem; margin-bottom: 1rem; border: 1px solid #adcec1; border-radius: 2rem; color: var(--dap-green); background: #fff; font-size: .88rem; font-weight: 750; }

.hero-label span { width: .55rem; height: .55rem; border-radius: 50%; background: var(--dap-green); }

.hero h1 { color: var(--dap-accent); margin-bottom: 1rem; max-width: 14ch; font-size: clamp(2.2rem, 1.45rem + 3.1vw, 4.65rem); letter-spacing: -.055em; text-wrap: balance; }
.hero.service-hero h1 { max-width: none; font-size: clamp(1.85rem, 1.25rem + 1.6vw, 3rem); line-height: 1.12; letter-spacing: -.035em; white-space: normal; text-wrap: wrap; overflow-wrap: normal; word-break: normal; hyphens: none; }
.hero .lead { color: #fff; }

.hero-intro { max-width: 44ch; margin-bottom: 0; color: #fff; font-size: clamp(1.05rem, .94rem + .4vw, 1.24rem); }

.hero-actions { margin-top: 1.5rem; }

.home-page .hero .btn-home-outline { --bs-btn-color: #fff; --bs-btn-border-color: #cfdbd8; --bs-btn-hover-color: var(--dap-ink); --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff; --bs-btn-active-color: var(--dap-ink); --bs-btn-active-bg: var(--dap-mint); --bs-btn-active-border-color: var(--dap-mint); }
.hero .hero-actions .btn:focus-visible { outline-color: var(--dap-accent); }

/* Images et légendes */
.hero-photo, .content-photo { overflow: hidden; margin-bottom: 0; border-radius: var(--dap-radius); }

.hero-photo { position: relative; background: var(--dap-ink); box-shadow: 0 1rem 2.5rem rgb(17 39 38 / 19%); }

.hero-photo img, .content-photo img { display: block; width: 100%; height: auto; }

.hero-photo img { aspect-ratio: 8 / 5; object-fit: cover; }

.hero-photo.hero-photo-16x9 img { aspect-ratio: 16 / 9; }

.hero-photo figcaption { padding: .65rem .95rem; color: var(--dap-ink); background: #f6efe1; font-size: 1rem; font-weight: 750; }

.hero-photo figcaption span { display: block; color: #594b35; font-size: .75rem; font-weight: 600; }

.content-photo { border: 1px solid var(--dap-line); background: #fff; box-shadow: 0 .5rem 1.5rem rgb(17 39 38 / 8%); }

.content-photo figcaption { padding: .65rem 1rem; color: var(--dap-muted); font-size: .86rem; }
.content-photo.content-photo-natural { width: fit-content; max-width: 100%; }

.content-photo.content-photo-natural img { width: auto; max-width: 100%; height: auto; }

/* Résumé et sections */
.home-summary { color: var(--dap-ink); background: var(--dap-mint); }

.home-summary li { padding: .85rem 1rem; border-bottom: 1px solid rgb(17 39 38 / 18%); }

.home-summary li:last-child { border-bottom: 0; }

.home-summary strong, .home-summary span { display: block; }

.home-summary span { color: var(--dap-muted); font-size: .87rem; }

.home-summary a { color: var(--dap-green); }

/* Sections, cartes et photos */
.home-section { padding-block: clamp(2.75rem, 6vw, 5.25rem); }

.home-section h2 { margin-bottom: 1rem; font-size: clamp(1.65rem, 1.2rem + 1.5vw, 2.65rem); letter-spacing: -.035em; text-wrap: balance; }

.section-tint { background: var(--dap-paper); }

.copy-width { max-width: 76ch; }

.eyebrow { margin-bottom: .45rem; color: var(--dap-green); font-size: .78rem; font-weight: 800; letter-spacing: .095em; text-transform: uppercase; }

.section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: .65rem 2rem; margin-bottom: 1.65rem; }

.section-heading h2, .section-intro { margin-bottom: 0; }

.section-intro { max-width: 37ch; color: var(--dap-muted); }

.service-grid { display: grid; gap: 1rem; }

.service-card, .step-card, .callback-card, .faq-entry { background: #fff; border: 1px solid var(--dap-line); border-radius: var(--dap-radius); }

.service-card { overflow: hidden; box-shadow: 0 .35rem 1.2rem rgb(17 39 38 / 7%); }

.service-card .card-img-top { display: block; width: 100%; height: clamp(10rem, 15vw, 14rem); object-fit: cover; background: var(--dap-mint); }

.service-featured .card-body { background: var(--dap-paper); }

.service-card .card-body { padding: 1.15rem 1.2rem; }

.service-card .card-body > p, .step-card p { color: var(--dap-muted); font-size: .96rem; }

.service-link { align-self: flex-start; font-weight: 750; }

/* Cartes de rappel et étapes */
.step-card, .callback-card { padding: clamp(1.1rem, 2.5vw, 1.75rem); }

.step-card p { margin-bottom: 0; }

.step-number { display: inline-grid; width: 2.65rem; height: 2.65rem; margin-bottom: 1rem; place-items: center; border-radius: .7rem; color: var(--dap-green); background: var(--dap-mint); font-weight: 800; }

.callback-card { scroll-margin-top: 1rem; border-top: .3rem solid var(--dap-green); box-shadow: 0 .65rem 2rem rgb(17 39 38 / 10%); }

.callback-phone { font-size: 1.4rem; font-weight: 800; }

.callback-card .form-label { font-weight: 700; }

.callback-card .form-control { min-height: 2.75rem; border-color: #a9bdb6; }

/* Listes */
.home-page .depannage li + li { margin-top: .45rem; }

ul.ok { list-style:none; padding-left:0; margin:0 5px 10px 0; }

.ok li:before { content:"\2713"; position:relative; font-weight:700; font-size:120%; margin-right:10px; top:3px; color:#015100; list-style:none; padding-left:0; margin-left:0; }

ol.ok-1 { padding-left:0; margin-left:10px; }

.ok-1 li:before { padding-left:0; margin-left:0; font-weight:700; font-size:120%; color:#015100; }

/* Formulaire de contact */
.form-control:focus { box-shadow:none; outline:0 none; }

#contact-page { padding-top:0; background:#fff; margin-bottom:50px; }

#contact-page .contact-form .form-group label { color:#4E4E4E; font-size:14px; font-weight:300; }

.form-group .form-control { padding:7px 12px; border-color:#f2f2f2; box-shadow:none; }

.validation { color:red; display:none; margin:0 0 20px; font-weight:400; font-size:13px; }

#sendmessage { color:green; border:1px solid green; display:none; text-align:center; padding:15px; font-weight:600; margin-bottom:15px; }

#errormessage { color:red; display:none; border:1px solid red; text-align:left; padding:15px; font-weight:600; margin-bottom:15px; }

#formulaire.cacher { display:none; }

#sendmessage.show,#errormessage.show,.show { display:block; }

/* Tarif et FAQ */
.rate-panel { padding: clamp(1.2rem, 4vw, 3.5rem); border-radius: var(--dap-radius); color: #edf6f0; background: linear-gradient(115deg, var(--dap-ink), #1a5146); }

.rate-panel .eyebrow, .footer-call .eyebrow { color: #f9dfa0; }

.rate-box { padding: 1.25rem; text-align: center; border: 1px solid rgb(255 255 255 / 32%); border-radius: 1rem; background: rgb(255 255 255 / 7%); }

.rate-amount { margin-bottom: 1rem; color: #f9dfa0; font-size: clamp(2.5rem, 1.8rem + 2vw, 4rem); font-weight: 800; line-height: 1.1; }

.faq-list { display: grid; align-content: start; gap: .65rem; }

.faq-entry > summary { padding: .9rem 1.15rem; font-weight: 750; cursor: pointer; }

.faq-entry > summary::marker { color: var(--dap-green); }

.faq-answer { padding: 0 1.15rem 1rem; }

.faq-answer > :last-child { margin-bottom: 0; }

/* Pied de page */
.site-footer { padding-block: clamp(2rem, 5vw, 4rem) 1.2rem; color: #dceae3; background: var(--dap-ink); }

.site-footer a, .site-footer h2 { color: #F9D900; }

.site-footer .btn-assistance { color: var(--dap-ink); }

.footer-call { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 2rem; padding: 1rem 0 1.6rem; border-bottom: 1px solid rgb(255 255 255 / 23%); }

.footer-call h2 { margin: 0; font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.4rem); letter-spacing: -.03em; }

.footer-links li + li { margin-top: .3rem; }

.footer-copyright { padding-top: 1rem; margin-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / 23%); font-size: .875rem; }

/* Adaptations selon la largeur de l’écran */
@media (max-width: 991.98px) {
  .home-page .site-header,  .home-page .site-header .navbar { position: static !important; }
}
@media (min-width: 576px) {
  .home-summary li { padding: 1rem; border-bottom: 0; }

  .home-summary li:not(:last-child) { border-right: 1px solid rgb(17 39 38 / 18%); }


  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .service-featured { grid-column: span 2; }
}

@media (min-width: 992px) {
  .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  html:has(.home-page) { scroll-padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)); }

  .site-footer { padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)); }

  .mobile-call { position: fixed; z-index: 15; inset: auto 0 0; padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom, 0px)); background: var(--dap-ink); border-top: 1px solid rgb(255 255 255 / 20%); }
}

@media (min-width: 1200px) {
  .site-nav .dropdown-menu { width: 17rem; }
}
