@import url('https://fonts.googleapis.com/css?family=Josefin+Sans:300,400,600,700|Open+Sans:300,400,600,700&display=swap');

/* ---------- Compléments DIAGHONETE : boutons de calcul du prix, illustrations, listes, villes ---------- */
.content .contenu h3{ font-family:'Josefin Sans',sans-serif; font-weight:700; font-size:17px; color:#0f375b; margin:18px 0 8px; }
.content .contenu h2{ margin-top:28px; }
.content .contenu p a, .content .contenu li a{ color:#1e73be; text-decoration:underline; }
.content .contenu .dh-liste{ list-style:none; padding:0; margin:0 0 14px; overflow:visible; text-align:left; }
.content .contenu .dh-liste li{ position:relative; padding:4px 0 4px 24px; }
.content .contenu .dh-liste li::before{ content:""; position:absolute; left:4px; top:12px; width:9px; height:9px; border-radius:50%; background:#acd374; }

.dh-illus{ float:right; width:42%; max-width:360px; margin:4px 0 16px 26px; }
.dh-illus img{ display:block; width:100%; height:auto; border-radius:8px; border:1px solid #d5dbe3; }

.dh-cta{ clear:both; display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap; margin:24px 0; padding:18px 22px; background:#0f375b; border-left:6px solid #acd374; border-radius:0 8px 8px 0; }
.content .contenu .dh-cta .dh-cta-texte{ margin:0; font-family:'Josefin Sans',sans-serif; font-weight:600; font-size:19px; line-height:1.3; color:#fff; text-align:left; }
.dh-cta-bouton{ display:inline-block; font-family:'Josefin Sans',sans-serif; font-weight:700; font-size:15px; letter-spacing:.03em; text-transform:uppercase; color:#0f375b; background:#acd374; padding:14px 24px 11px; border-radius:4px; text-decoration:none; white-space:nowrap; }
.dh-cta-bouton:hover, .dh-cta-bouton:focus{ background:#fff; color:#0f375b; text-decoration:none; }
.dh-cta-lien{ font-family:'Josefin Sans',sans-serif; font-size:15px; color:#fff; text-decoration:underline; }
.dh-cta-lien:hover, .dh-cta-lien:focus{ color:#acd374; }
.dh-cta-final{ background:#1e73be; border-left-color:#0f375b; margin-top:34px; }

.content .contenu .dh-cartes{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; padding:0; margin:14px 0 6px; overflow:visible; text-align:left; }
.content .contenu .dh-cartes li{ border:1px solid #d5dbe3; border-top:4px solid #acd374; border-radius:0 0 8px 8px; padding:14px 16px; background:#f4f8fb; }
.content .contenu .dh-cartes li a{ display:block; font-weight:700; font-size:17px; color:#0f375b; text-decoration:none; }
.content .contenu .dh-cartes li a:hover{ color:#1e73be; text-decoration:underline; }
.content .contenu .dh-cartes li span{ display:block; margin-top:4px; font-size:14px; color:#5b6672; }

/* Menu : bouton « Calculer mon prix » et sous-menus */
.nav.navbar-nav li.dh-menu-prix{ margin-left:auto; }
.nav.navbar-nav li.dh-menu-prix a{ background:#acd374; color:#0f375b; font-weight:700; padding:11px 15px 9px; }
.nav.navbar-nav li.dh-menu-prix a:hover, .nav.navbar-nav li.dh-menu-prix a:focus{ background:#0f375b; color:#fff; }
.navbar-nav .dropdown-menu li{ padding-right:0; align-self:stretch; }
.navbar-nav .dropdown-menu .dh-sous-titre{ padding:8px 20px 2px; font-family:'Josefin Sans',sans-serif; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#5b6672; }

/* Bandeau avant le pied de page */
.dh-bandeau-prix{ background:#0f375b; padding:26px 0; }
.dh-bandeau-prix .container{ display:flex; align-items:center; justify-content:space-between; gap:16px 30px; flex-wrap:wrap; }
.dh-bandeau-prix p{ margin:0; font-family:'Josefin Sans',sans-serif; font-weight:600; font-size:22px; color:#fff; }
.dh-autres-prestations{ margin:18px 0 0; font-family:'Josefin Sans',sans-serif; font-size:15px; text-align:center; }
.dh-autres-prestations a{ color:#1e73be; font-weight:600; white-space:nowrap; }

/* Villes d'intervention par département */
.footerlinks .dh-villes{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px 26px; text-align:left; }
.footerlinks .dh-villes h3{ margin:0 0 8px; padding-bottom:6px; border-bottom:2px solid #fff; font-family:'Josefin Sans',sans-serif; font-size:17px; font-weight:700; color:#0f375b; }
.footerlinks .dh-villes ul{ list-style:none; margin:0; padding:0; }
.footerlinks .dh-villes li{ padding:2px 0; }
.footerlinks .dh-villes a{ font-family:'Josefin Sans',sans-serif; font-size:14.5px; font-weight:600; color:#0f375b; text-decoration:none; }
.footerlinks .dh-villes a::after{ content:none; }
.footerlinks .dh-villes a:hover, .footerlinks .dh-villes a:focus{ color:#fff; text-decoration:underline; }
.footerlinks .dh-villes-autres{ margin-top:18px; }

/* =====================================================================
   LISIBILITÉ ET ACCESSIBILITÉ
   Textes plus grands, caractères plus épais, contrastes renforcés,
   repère visible au clavier. Ces règles complètent la feuille d'origine.
   ===================================================================== */
body{ font-size:17px; line-height:1.6; color:#1a1a1a; }

/* Texte courant : police plus lisible, 17 px, noir franc, aligné à gauche */
.content .contenu p, .content .contenu li, .contenu ul{ font-family:'Open Sans',Arial,sans-serif; font-weight:400; font-size:17px; line-height:1.7; color:#1a1a1a; text-align:left; }
.content .contenu h1{ font-size:32px; line-height:1.25; color:#0f375b; }
.content .contenu h2{ font-size:25px; line-height:1.3; font-style:normal; font-weight:700; color:#175a95; margin:34px 0 12px; }
.content .contenu h3{ font-size:20px; line-height:1.35; margin:24px 0 8px; }
.content .contenu p a, .content .contenu li a{ color:#175a95; text-decoration:underline; text-underline-offset:3px; }
.content .contenu .dh-liste li::before{ top:14px; background:#5d8a22; }

/* En-tête */
.top-p{ font-size:17px; color:#1a1a1a; line-height:1.3; }
.span-horr{ font-size:16px; }
.toptlfn, .toptlfn:hover, .toptlfn:focus, .toptlfn:active, .toptlfn:visited, .toptlfn:focus-within{ color:#3f6b12; font-size:30px; }
.esp-cli{ font-size:16px; background:#175a95; }

/* Menu */
.navbar-default .navbar-nav > li > a{ font-family:'Josefin Sans',sans-serif; font-size:17px; font-weight:600; color:#1a1a1a; }
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus{ color:#175a95; }
.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus{ color:#0f375b; }
.nav.navbar-nav li:first-of-type a{ background:#175a95; }
.navbar-nav .dropdown-menu > li > a{ font-size:16.5px; line-height:1.4; color:#1a1a1a; padding:9px 20px; white-space:normal; }
.navbar-nav .dropdown-menu > li > a:hover, .navbar-nav .dropdown-menu > li > a:focus{ background:#0f375b; color:#fff; }
.navbar-nav .dropdown-menu{ min-width:290px; }
.navbar-nav .dropdown-menu .dh-sous-titre{ font-size:14px; color:#4a5560; padding-top:12px; }

/* Bandeau avec le formulaire rapide : texte foncé sur fond vert, champs plus grands */
.dvex-title{ color:#0f375b; font-size:27px; line-height:1.25; }
#devisform2 .form-control{ height:46px; font-size:16.5px; color:#1a1a1a; border:1px solid #0f375b; }
#devisform2 .form-control::placeholder{ color:#4a5560; opacity:1; }
.btn.btn-success{ font-size:16px; background:#175a95; padding:14px 0 11px; letter-spacing:.03em; }
.btn.btn-success:hover, .btn.btn-success:focus{ background:#0f375b; }

/* Formulaires des pages (contact) */
.formsite label{ font-size:17px; color:#0f375b; }
.formsite .form-control{ height:48px; font-size:17px; color:#1a1a1a; border:1px solid #5d8a22; }
.formsite textarea.form-control{ height:auto; }
.alert{ font-size:17px; }

/* Bloc « Nos prestations » */
.pres-title{ font-size:28px; color:#0f375b; }
.pres-titre{ font-size:20px; color:#1a1a1a; }
.dh-autres-prestations{ font-size:17px; line-height:2; }
.dh-autres-prestations a{ color:#175a95; text-decoration:underline; text-underline-offset:3px; }

/* Boutons de calcul du prix */
.content .contenu .dh-cta .dh-cta-texte{ font-family:'Josefin Sans',sans-serif; font-size:22px; font-weight:600; line-height:1.3; color:#fff; }
.dh-cta-bouton{ font-size:16.5px; padding:16px 26px 13px; }
.dh-cta-lien{ font-size:17px; }
.dh-bandeau-prix p{ font-size:24px; line-height:1.3; }

/* Bandeau vert des villes : texte bleu marine, plus contrasté que le blanc */
.footerlinks .h2, .footerlinks .h2 a{ color:#0f375b; font-size:23px; }
.footerlinks .dh-villes h3{ font-size:20px; }
.footerlinks .dh-villes li{ padding:4px 0; }
.footerlinks .dh-villes a{ font-family:'Open Sans',Arial,sans-serif; font-size:16px; line-height:1.45; }
.links a, .link{ font-family:'Open Sans',Arial,sans-serif; font-size:16px; line-height:1.9; color:#0f375b; }
.links a::after{ color:#0f375b; }
.links a:hover, .links a:focus{ text-decoration:underline; }

/* Pied de page */
.footer-email, .adresse2, .adresse1, .footer-tlfn{ font-size:17px; font-weight:400; }
.ul-title{ font-size:20px; }
.servlinks a{ font-size:16.5px; }
.servlinks a:hover, .servlinks a:focus{ text-decoration:underline; }
.footer-bottom p, .footer-bottom a{ font-family:'Open Sans',Arial,sans-serif; font-size:15px; color:#dcdcdc; }
.footer-bottom a{ text-decoration:underline; }
.footer-bottom a:hover, .footer-bottom a:focus, .footer-bottom a:active, .footer-bottom a:visited{ color:#fff; text-decoration:underline; }

/* Repère visible lors de la navigation au clavier */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{ outline:3px solid #0f375b; outline-offset:2px; }
.bigfooter a:focus-visible, .footer-bottom a:focus-visible, .dh-cta a:focus-visible, .dh-bandeau-prix a:focus-visible, .imgleft input:focus-visible, .imgleft select:focus-visible{ outline-color:#fff; }

/* Lien « Aller au contenu », visible uniquement au clavier */
.dh-evitement{ position:absolute; left:-9999px; top:0; }
.dh-evitement:focus{ left:10px; top:10px; z-index:9999; padding:12px 18px; background:#fff; color:#0f375b; font-size:17px; font-weight:700; border:3px solid #0f375b; border-radius:4px; }
#contenu:focus{ outline:none; }

/* Photos des pages */
.dh-illus.dh-photo{ max-width:400px; }
.dh-illus.dh-photo img{ border:0; border-radius:8px; box-shadow:0 8px 22px rgba(15,55,91,.2); }
.dh-illus.dh-photo-2{ float:left; margin:6px 28px 16px 0; }
.dh-illus figcaption{ margin-top:6px; font-size:14.5px; color:#4a5560; text-align:center; }

@media (max-width:991px){
  .footerlinks .dh-villes{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nav.navbar-nav li.dh-menu-prix{ margin-left:0; }
}
@media (max-width:768px){
  .dh-illus, .dh-illus.dh-photo, .dh-illus.dh-photo-2{ float:none; width:100%; max-width:none; margin:0 0 18px; }
  .content .contenu h1{ font-size:27px; }
  .content .contenu h2{ font-size:23px; }
  .dvex-title{ font-size:24px; }
  .toptlfn{ font-size:28px; }
  .navbar-nav .dropdown-menu > li > a{ padding:11px 20px; }
  .dh-cta{ flex-direction:column; align-items:stretch; text-align:center; border-left:0; border-top:6px solid #acd374; border-radius:0 0 8px 8px; }
  .content .contenu .dh-cta .dh-cta-texte{ text-align:center; font-size:18px; }
  .dh-cta-bouton{ white-space:normal; }
  .dh-bandeau-prix .container{ flex-direction:column; text-align:center; }
  .nav.navbar-nav li.dh-menu-prix a{ display:block; }
}
@media (max-width:520px){
  .footerlinks .dh-villes{ grid-template-columns:1fr; }
}
