:root{
  --yellow:#f6c400;
  --yellow-dark:#d8a800;
  --black:#151515;
  --dark:#222326;
  --dark-2:#2d2f32;
  --grey:#6b7077;
  --light:#f4f4f2;
  --line:#ddddda;
  --red:#c62d29;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  color:var(--black);
  background:#fff;
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none}
img{max-width:100%}
.section-pad{padding:100px 0}

.eyebrow{
  display:inline-block;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.18em;
  color:#666;
  margin-bottom:15px;
}
.eyebrow-dark{color:#4e4e4e}
.eyebrow-yellow{color:var(--yellow)}
.btn-yellow{
  background:var(--yellow);
  color:#161616;
  border:1px solid var(--yellow);
  border-radius:3px;
  font-weight:900;
  padding:13px 21px;
}
.btn-yellow:hover{background:#fff1a7;color:#111;border-color:#fff1a7}
.btn-outline-yellow{
  border:1px solid var(--yellow);
  color:var(--yellow);
  border-radius:3px;
  font-weight:800;
  padding:12px 19px;
}
.btn-outline-yellow:hover{background:var(--yellow);color:#111}

/* header */
.site-header{z-index:1000}
.topbar{
  background:#0e0e0f;
  color:#bfc1c4;
  font-size:.82rem;
  padding:7px 0;
}
.topbar a{color:#fff}
.topbar i{color:var(--yellow);margin-right:6px}
.navbar{
  background:#242629!important;
  border-bottom:3px solid var(--yellow);
  padding:12px 0;
}
.brand-mark{display:flex;flex-direction:column;line-height:1}
.brand-dfh{
  color:#fff;
  font-size:2rem;
  font-weight:1000;
  letter-spacing:.05em;
  position:relative;
}
.brand-dfh:after{
  content:"";
  width:24px;
  height:6px;
  background:var(--yellow);
  display:inline-block;
  margin-left:8px;
  vertical-align:middle;
}
.brand-sub{
  color:#aaa;
  font-size:.62rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  margin-top:5px;
}
.nav-link{
  color:#e4e4e4!important;
  font-weight:700;
  font-size:.91rem;
  padding:.8rem .72rem!important;
}
.nav-link:hover,.nav-link.active{color:var(--yellow)!important}

/* hero */
.hero{
  min-height:740px;
  position:relative;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
}
.hero-bg{
  position:absolute;
  inset:0;
  background-image:url("https://www.dfh-dhc.fr/public/images/content1_DFH-DHC.jpg");
  background-size:cover;
  background-position:center;
  transform:scale(1.02);
}
.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(12,12,13,.97) 0%,rgba(12,12,13,.89) 47%,rgba(12,12,13,.52) 74%,rgba(12,12,13,.32) 100%);
}
.hero-inner{position:relative;z-index:2;padding-top:80px;padding-bottom:80px}
.hero-kicker{
  color:var(--yellow);
  font-weight:900;
  letter-spacing:.2em;
  font-size:.76rem;
}
.hero h1{
  font-size:clamp(4rem,7vw,7rem);
  line-height:.89;
  letter-spacing:-.055em;
  text-transform:uppercase;
  font-weight:1000;
  max-width:970px;
  margin:18px 0 0;
}
.hero h1 span{color:var(--yellow)}
.hero-lead{
  max-width:720px;
  color:#d8d8da;
  line-height:1.75;
  font-size:1.12rem;
  margin-top:28px;
}
.btn-ghost{
  border:1px solid rgba(255,255,255,.48);
  color:#fff;
  border-radius:3px;
  font-weight:800;
}
.btn-ghost:hover{background:#fff;color:#111}
.hero-stats{
  display:flex;
  flex-wrap:wrap;
  margin-top:45px;
}
.hero-stats>div{
  display:flex;
  flex-direction:column;
  padding:0 28px;
  border-left:1px solid rgba(255,255,255,.22);
}
.hero-stats>div:first-child{padding-left:0;border-left:0}
.hero-stats strong{font-size:1.25rem}
.hero-stats span{color:#aaa;font-size:.85rem;margin-top:4px}
.urgent-card{
  background:rgba(246,196,0,.97);
  color:#131313;
  padding:38px;
  border-radius:5px;
  box-shadow:0 25px 65px rgba(0,0,0,.35);
  border-top:7px solid #fff;
}
.urgent-icon{
  width:62px;
  height:62px;
  border-radius:50%;
  background:#111;
  color:var(--yellow);
  display:grid;
  place-items:center;
  font-size:1.75rem;
  margin-bottom:20px;
}
.mini-title{font-size:.73rem;letter-spacing:.18em;font-weight:900}
.urgent-card h2{
  font-size:2.35rem;
  font-weight:1000;
  text-transform:uppercase;
  line-height:.95;
  margin:10px 0 18px;
}
.urgent-card p{line-height:1.65;color:#363636}
.urgent-phone{
  display:block;
  font-size:2rem;
  font-weight:1000;
  color:#111;
  margin-top:20px;
}
.urgent-note{font-size:.8rem;color:#555}

/* services */
.services-section{background:#f3f3f1}
.section-head{max-width:850px}
.section-head h2{
  font-size:clamp(2.8rem,5vw,5rem);
  font-weight:1000;
  text-transform:uppercase;
  line-height:.96;
  letter-spacing:-.04em;
}
.section-head p{color:#666;line-height:1.75}
.service-card{
  background:#fff;
  border:1px solid #ddd;
  padding:30px;
  position:relative;
  transition:.28s ease;
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 42px rgba(0,0,0,.09);
}
.icon-wrap{
  width:60px;height:60px;
  background:var(--yellow);
  color:#111;
  display:grid;place-items:center;
  font-size:1.5rem;
  margin-bottom:28px;
}
.num{
  position:absolute;
  top:25px;
  right:28px;
  font-size:.72rem;
  font-weight:900;
  color:#bbb;
  letter-spacing:.1em;
}
.service-card h3{
  font-size:1.35rem;
  text-transform:uppercase;
  font-weight:1000;
}
.service-card p{color:#6e6e6e;line-height:1.7;font-size:.94rem}
.service-card a{color:#111;font-weight:900;font-size:.9rem}
.dark-card{background:#25272a;color:#fff;border-color:#25272a}
.dark-card p{color:#b9b9b9}
.dark-card a{color:var(--yellow)}

/* urgence */
.urgence-section{background:var(--yellow)}
.urgence-photo{
  min-height:680px;
  background:url("https://www.dfh-dhc.fr/public/images/tool_DFH.png") center/55% no-repeat, #1b1d20;
}
.urgence-content{display:flex;align-items:center}
.urgence-inner{padding:75px 9vw}
.urgence-inner h2{
  font-size:clamp(3rem,5vw,5.2rem);
  text-transform:uppercase;
  line-height:.95;
  font-weight:1000;
  letter-spacing:-.045em;
}
.urgence-inner>p{line-height:1.75;color:#3d3d3d;font-size:1.06rem}
.check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-top:28px;
}
.check-grid div{font-weight:800;display:flex;gap:9px;align-items:center}
.check-grid i{color:#111}
.region-grid{
  display:flex;
  gap:10px;
  margin-top:30px;
  flex-wrap:wrap;
}
.region-grid span{
  background:#151515;
  color:var(--yellow);
  width:52px;height:52px;
  display:grid;place-items:center;
  font-weight:1000;
  font-size:1.1rem;
}
.btn-dark-call{
  background:#151515;
  color:#fff;
  border:1px solid #151515;
  border-radius:3px;
  font-weight:900;
}
.btn-dark-call:hover{background:#333;color:#fff}

/* certification */
.certification-section{background:#fff}
.certification-section h2{
  font-size:clamp(3rem,5vw,5.2rem);
  text-transform:uppercase;
  font-weight:1000;
  line-height:.95;
  letter-spacing:-.045em;
}
.lead-copy{font-size:1.2rem;line-height:1.7;color:#444}
.cert-points{margin-top:30px;display:grid;gap:0}
.cert-points>div{
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding:18px 0;
}
.cert-points>div:last-child{border-bottom:1px solid var(--line)}
.cert-points strong{text-transform:uppercase}
.cert-points span{color:#777;text-align:right}
.cert-photo{
  min-height:520px;
  background:url("https://www.dfh-dhc.fr/public/images/tool_DFH.png") center/70% no-repeat,#232528;
  border-left:12px solid var(--yellow);
}

/* magasin */
.magasin-section{background:#222427;color:#fff}
.magasin-section h2{
  font-size:clamp(3rem,5vw,5rem);
  font-weight:1000;
  text-transform:uppercase;
  line-height:.95;
}
.magasin-section p{color:#c1c1c1;line-height:1.75}
.magasin-photo{
  min-height:520px;
  background:url("https://www.dfh-dhc.fr/public/images/content1_DFH-DHC.jpg") center/cover no-repeat;
  border-bottom:12px solid var(--yellow);
}
.brand-list{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:30px;
}
.brand-list span{
  border:1px solid #555;
  padding:9px 13px;
  color:#ddd;
  font-size:.78rem;
  font-weight:800;
}

/* implantation */
.implantation-section{background:#f4f4f2}
.implantation-section h2{
  font-size:clamp(2.8rem,5vw,4.8rem);
  text-transform:uppercase;
  font-weight:1000;
  line-height:.97;
}
.implantation-section p{color:#666;line-height:1.75}
.address-card{
  display:flex;
  gap:15px;
  background:#fff;
  padding:20px;
  border-left:5px solid var(--yellow);
  margin-top:28px;
}
.address-card i{color:#111;font-size:1.4rem}
.address-card strong{display:block}
.address-card span{color:#666;font-size:.9rem}
.hours{display:grid;gap:4px;margin-top:24px;color:#666}
.hours strong{color:#111;margin-bottom:4px}
.map-wrap{height:440px;overflow:hidden;border:1px solid #ccc}
.map-wrap iframe{width:100%;height:100%;border:0}

/* contact */
.contact-section{padding:100px 0;background:#fff}
.contact-panel{
  background:var(--yellow);
  padding:60px;
}
.contact-panel h2{
  font-size:clamp(2.8rem,5vw,4.8rem);
  text-transform:uppercase;
  font-weight:1000;
  line-height:.95;
}
.contact-panel p{color:#444;line-height:1.7}
.contact-details{display:grid;gap:12px;margin-top:30px}
.contact-details a{color:#111;font-weight:900}
.contact-details i{margin-right:7px}
.contact-panel .form-control,
.contact-panel .form-select{
  border:1px solid rgba(0,0,0,.16);
  background:rgba(255,255,255,.55);
  border-radius:2px;
  min-height:54px;
}
.contact-panel textarea.form-control{min-height:145px}

/* footer */
.site-footer{background:#111;color:#bdbdbd;padding:55px 0 18px}
.footer-brand strong{
  display:block;
  color:#fff;
  font-size:2.3rem;
  letter-spacing:.06em;
}
.footer-brand span{
  color:var(--yellow);
  text-transform:uppercase;
  font-size:.7rem;
  letter-spacing:.12em;
}
.site-footer p{max-width:390px;color:#777;margin-top:18px}
.footer-links,.footer-contact{display:flex;flex-direction:column;gap:8px}
.footer-links strong,.footer-contact strong{color:#fff;margin-bottom:6px}
.footer-links a,.footer-contact a{color:#bbb}
.footer-bottom{
  border-top:1px solid #2b2b2b;
  margin-top:35px;
  padding-top:17px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:.8rem;
  color:#666;
}

@media (max-width:1199.98px){
  .navbar-collapse{padding:15px 0}
  .navbar .btn{margin:6px 0!important;display:inline-flex}
}
@media (max-width:991.98px){
  .section-pad{padding:75px 0}
  .hero{min-height:650px}
  .hero-overlay{background:rgba(12,12,13,.88)}
  .urgence-photo{min-height:430px}
  .urgence-inner{padding:60px 7vw}
  .contact-panel{padding:45px 35px}
}
@media (max-width:767.98px){
  .topbar{font-size:.74rem}
  .hero{min-height:620px}
  .hero h1{font-size:3.8rem}
  .hero-stats>div{padding:0 13px}
  .check-grid{grid-template-columns:1fr}
  .cert-points>div{flex-direction:column;gap:4px}
  .cert-points span{text-align:left}
  .contact-panel{padding:38px 24px}
}


/* ===== V2 corrections ===== */
html, body{
  max-width:100%;
  overflow-x:hidden;
}
.row, [class*="col-"]{
  min-width:0;
}

/* HERO V2 */
.hero{
  min-height:0;
  display:block;
  background:#151515;
  color:#fff;
  overflow:hidden;
}
.hero-row{min-height:650px}
.hero-copy{
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 100% 20%,rgba(246,196,0,.08),transparent 35%),
    linear-gradient(135deg,#111,#242424);
}
.hero-copy-inner{
  width:100%;
  padding:72px clamp(28px,5vw,78px);
}
.hero h1{
  font-size:clamp(3.1rem,5.3vw,5.7rem);
  line-height:.9;
  max-width:760px;
  overflow-wrap:anywhere;
}
.hero-lead{
  max-width:650px;
  font-size:1.06rem;
}
.hero-photo-wrap{
  position:relative;
  min-height:650px;
  overflow:hidden;
  background:#222;
}
.hero-photo{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.18)),
    url("https://www.dfh-dhc.fr/public/Thumbs/Medias/dfh/slider/photo_dfh_1ai_et_1bi_facade_w1200_h675_fillfill_1634899405.jpg") center/cover no-repeat;
}
.hero-photo-badge{
  position:absolute;
  left:28px;
  right:28px;
  bottom:28px;
  background:rgba(246,196,0,.96);
  color:#111;
  padding:22px 24px;
  border-left:6px solid #111;
  box-shadow:0 12px 35px rgba(0,0,0,.25);
}
.hero-photo-badge span{
  display:block;
  font-size:.72rem;
  letter-spacing:.16em;
  font-weight:900;
  margin-bottom:5px;
}
.hero-photo-badge strong{
  display:block;
  font-size:1.75rem;
  line-height:1.1;
}
.hero-photo-badge small{
  display:block;
  margin-top:5px;
  color:#444;
}
.hero-stats{
  margin-top:36px;
}

/* DÉPANNAGE : vraie photo plein cadre */
.urgence-photo{
  min-height:650px;
  background:
    linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08)),
    url("https://www.dfh-dhc.fr/public/Thumbs/Medias/dfh/slider/photo_dfh_1ai_et_2a_et_2d_et_3a_et_4a_client_tp_2_w1200_h675_fillfill_1624450596.jpeg") center/cover no-repeat;
}
.urgence-inner{
  padding:64px clamp(34px,6vw,90px);
}
.urgence-inner h2{
  font-size:clamp(2.8rem,4.5vw,4.7rem);
}

/* certification : photo flexible */
.cert-photo{
  min-height:500px;
  background:
    url("https://www.dfh-dhc.fr/public/Thumbs/Medias/dfh/slider/photo_dfh_1ai_et_4a_flexibles_1_w1200_h675_fillfill_1624450596.jpg") center/cover no-repeat;
  border-left:12px solid var(--yellow);
}

/* MAGASIN : vraie photo et moins d'espace mort */
.magasin-section{
  padding-top:85px;
  padding-bottom:85px;
}
.magasin-photo{
  min-height:520px;
  background:
    url("https://www.dfh-dhc.fr/public/Thumbs/Medias/dfh/slider/photo_dfh_1ai_et_2a_et_2c_et_2e_et_5i_et_5l_magasin_ls_2_w1200_h675_fillfill_1624450595.jpg") center/cover no-repeat;
  border-bottom:12px solid var(--yellow);
}
.magasin-section .row{
  align-items:center;
}
.magasin-section h2{
  font-size:clamp(2.8rem,4.5vw,4.6rem);
}

/* sécurité anti débordement */
.site-header,
.hero,
.services-section,
.urgence-section,
.certification-section,
.magasin-section,
.implantation-section,
.contact-section,
.site-footer{
  width:100%;
  overflow-x:hidden;
}
.hero h1,
.urgence-inner h2,
.magasin-section h2,
.certification-section h2{
  word-break:normal;
  overflow-wrap:break-word;
}

@media (max-width:991.98px){
  .hero-row{min-height:0}
  .hero-photo-wrap{min-height:420px}
  .hero-copy-inner{padding:58px 28px}
  .urgence-photo{min-height:430px}
  .magasin-photo{min-height:420px}
}
@media (max-width:767.98px){
  .hero h1{font-size:3.2rem}
  .hero-photo-wrap{min-height:360px}
  .hero-photo-badge{left:16px;right:16px;bottom:16px}
  .hero-stats{gap:18px}
  .hero-stats>div{
    border-left:0;
    padding:0;
    width:100%;
  }
}
