/* =========================================================
   RAMONAGE EXPRESS CORRÈZE — feuille de style
   Palette dérivée du logo : noir charbon, orange braise, acier.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Work+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
  --black:      #0a0a0b;
  --black-2:    #141416;
  --black-3:    #1c1c1f;
  --orange:     #f5791a;
  --orange-deep:#c8420b;
  --orange-soft:#ffb066;
  --smoke:      #f4efe6;
  --steel:      #c7ccd2;
  --steel-dim:  #8b9096;
  --line:       rgba(244,239,230,0.10);
  --line-strong:rgba(244,239,230,0.18);

  --font-display: 'Anton', 'Arial Narrow', sans-serif;
  --font-body: 'Work Sans', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --container: 1180px;
  --radius: 6px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

body{
  background:var(--black);
  color:var(--smoke);
  font-family:var(--font-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

.wrap{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}

:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
}

/* ---------- utilitaires ---------- */
.eyebrow{
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.72rem;
  color:var(--orange);
  display:inline-flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{
  content:"";
  width:22px; height:2px;
  background:var(--orange);
  display:inline-block;
}

h1,h2,h3{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:.95;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55em;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.95rem;
  padding:.95em 1.6em;
  border-radius:3px;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--orange) 0%, var(--orange-deep) 100%);
  color:var(--black);
  box-shadow:0 6px 18px rgba(245,121,26,.28);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(245,121,26,.4); }
.btn-ghost{
  background:transparent;
  border-color:var(--line-strong);
  color:var(--smoke);
}
.btn-ghost:hover{ border-color:var(--orange); color:var(--orange); }

/* ---------- header ---------- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  background:rgba(10,10,11,.72);
  backdrop-filter:blur(10px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:1.05rem;
  letter-spacing:.02em;
}
.brand img{ height:48px; width:48px; object-fit:contain; }
.brand span{ color:var(--orange); }

.main-nav{
  display:flex;
  align-items:center;
  gap:32px;
}
.main-nav a{
  font-size:.88rem;
  font-weight:600;
  color:var(--steel);
  transition:color .15s ease;
  position:relative;
}
.main-nav a:hover{ color:var(--orange); }

.header-actions{ display:flex; align-items:center; gap:14px; }
.header-phone{
  font-family:var(--font-mono);
  font-weight:700;
  color:var(--smoke);
  font-size:.92rem;
  display:flex;
  align-items:center;
  gap:.5em;
}
.header-phone svg{ width:16px; height:16px; stroke:var(--orange); flex:none; }

.nav-toggle{
  display:none;
  background:none; border:none; color:var(--smoke);
  width:40px; height:40px;
  cursor:pointer;
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding-top:76px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 90% 60% at 30% 0%, rgba(245,121,26,.16), transparent 60%),
    linear-gradient(180deg, #0a0a0b 0%, #0a0a0b 65%, #0e0e10 100%);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><polygon points="0,200 40,120 80,160 120,60 160,110 200,40 200,200" fill="%23141416"/></svg>');
  background-repeat:repeat-x;
  background-position:bottom;
  background-size:400px 200px;
  opacity:.5;
  pointer-events:none;
}
.hero .wrap{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:48px;
  align-items:center;
  padding-block:64px;
}
.hero-copy .eyebrow{ margin-bottom:22px; }
.hero-title{
  font-size:clamp(2.9rem, 6.2vw, 5.4rem);
  color:var(--smoke);
}
.hero-title .accent{
  color:var(--orange);
  display:block;
  -webkit-text-stroke:0;
}
.hero-lede{
  margin-top:22px;
  max-width:46ch;
  color:var(--steel);
  font-size:1.08rem;
}
.hero-cta{
  margin-top:34px;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.hero-stats{
  margin-top:46px;
  display:flex;
  gap:36px;
  flex-wrap:wrap;
}
.hero-stats div{ min-width:100px; }
.hero-stats b{
  display:block;
  font-family:var(--font-mono);
  font-size:1.6rem;
  color:var(--smoke);
}
.hero-stats span{
  font-size:.78rem;
  color:var(--steel-dim);
  text-transform:uppercase;
  letter-spacing:.08em;
}

.hero-badge{
  position:relative;
  justify-self:center;
}
.hero-badge img{
  width:min(420px, 100%);
  filter:drop-shadow(0 20px 50px rgba(0,0,0,.55));
}

/* jagged divider mimicking the badge banner from the logo */
.jag-divider{
  position:relative;
  height:64px;
  background:var(--orange);
  clip-path:polygon(0 30%, 4% 65%, 8% 20%, 12% 70%, 16% 10%, 20% 60%, 24% 25%, 28% 75%, 32% 15%, 36% 55%, 40% 20%, 44% 70%, 48% 10%, 52% 60%, 56% 30%, 60% 75%, 64% 15%, 68% 65%, 72% 20%, 76% 70%, 80% 10%, 84% 60%, 88% 25%, 92% 75%, 96% 15%, 100% 55%, 100% 100%, 0 100%);
}

/* ---------- section shell ---------- */
section{ padding-block:104px; position:relative; }
.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head h2{
  margin-top:16px;
  font-size:clamp(2rem, 4vw, 3rem);
  color:var(--smoke);
}
.section-head h2 em{
  font-style:normal;
  color:var(--orange);
}
.section-head p{
  margin-top:16px;
  color:var(--steel);
  max-width:52ch;
}

.alt-bg{ background:var(--black-2); }

/* ---------- services ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.service-card{
  background:var(--black-3);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px 28px;
  transition:border-color .2s ease, transform .2s ease;
}
.service-card:hover{ border-color:var(--orange); transform:translateY(-4px); }
.service-icon{
  width:52px; height:52px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--orange), var(--orange-deep));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
}
.service-icon svg{ width:26px; height:26px; stroke:var(--black); fill:none; stroke-width:2; }
.service-card h3{
  font-family:var(--font-body);
  text-transform:none;
  font-size:1.18rem;
  font-weight:700;
  letter-spacing:0;
}
.service-card p{
  margin-top:10px;
  color:var(--steel);
  font-size:.94rem;
}
.service-card .tag{
  display:inline-block;
  margin-top:18px;
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--orange);
  letter-spacing:.06em;
}

/* ---------- zone ---------- */
.zone-layout{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:56px;
  align-items:center;
}
.zone-chips{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:26px;
}
.zone-chips span{
  border:1px solid var(--line-strong);
  padding:.5em 1em;
  border-radius:999px;
  font-size:.82rem;
  color:var(--steel);
}
.zone-map{
  max-width:420px;
  margin-inline:auto;
  border-radius:var(--radius);
  border:1px solid var(--line-strong);
  overflow:hidden;
  background:var(--smoke);
  padding:12px;
}
.zone-map img{
  width:100%;
  height:auto;
  display:block;
}

/* ---------- avis ---------- */
.reviews-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:24px;
  margin-bottom:48px;
}
.rating-summary{
  text-align:right;
  font-family:var(--font-mono);
}
.rating-summary .score{
  font-size:2.4rem;
  color:var(--smoke);
  font-weight:700;
}
.stars{ color:var(--orange); letter-spacing:.1em; font-size:1.05rem; }
.rating-summary .count{ color:var(--steel-dim); font-size:.78rem; margin-top:4px; }

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}
.review-card{
  background:var(--black-3);
  border:1px solid var(--line);
  border-left:3px solid var(--orange);
  border-radius:var(--radius);
  padding:26px 26px 22px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.review-card .stars{ font-size:.92rem; }
.review-card p{
  color:var(--steel);
  font-size:.94rem;
  flex-grow:1;
}
.review-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:14px;
}
.review-author{ font-weight:700; font-size:.9rem; color:var(--smoke); }
.review-meta{ font-size:.74rem; color:var(--steel-dim); font-family:var(--font-mono); }

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(120deg, var(--orange-deep), var(--orange));
  color:var(--black);
  padding-block:56px;
}
.cta-band .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:24px;
}
.cta-band h2{ font-size:clamp(1.6rem,3vw,2.3rem); }
.cta-band .btn-ghost{ border-color:var(--black); color:var(--black); }
.cta-band .btn-ghost:hover{ background:var(--black); color:var(--orange); }

/* ---------- contact / footer ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
}
.contact-list{ margin-top:24px; display:flex; flex-direction:column; gap:18px; }
.contact-list li{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:.98rem;
}
.contact-list svg{ width:20px; height:20px; stroke:var(--orange); flex:none; }
.contact-list a:hover{ color:var(--orange); }

.hours-table{ margin-top:24px; width:100%; border-collapse:collapse; font-size:.9rem; }
.hours-table td{ padding:8px 0; border-bottom:1px solid var(--line); color:var(--steel); }
.hours-table td:last-child{ text-align:right; font-family:var(--font-mono); color:var(--smoke); }

.site-footer{
  border-top:1px solid var(--line);
  padding-block:32px;
  font-size:.82rem;
  color:var(--steel-dim);
}
.site-footer .wrap{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .main-nav{
    display:none;
    position:absolute;
    top:76px; left:0; right:0;
    background:var(--black-2);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:8px 24px 20px;
  }
  .main-nav.nav-open{ display:flex; }
  .main-nav a{ padding:14px 0; width:100%; border-bottom:1px solid var(--line); }
  .nav-toggle{ display:block; }
  .hero .wrap{ grid-template-columns:1fr; text-align:left; padding-block:48px; }
  .hero-badge{ order:-1; max-width:220px; margin-bottom:8px; }
  .hero-badge img{ width:100%; }
  .services-grid{ grid-template-columns:1fr 1fr; }
  .zone-layout{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .reviews-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .wrap{ padding-inline:18px; }
  section{ padding-block:72px; }
  .services-grid{ grid-template-columns:1fr; }
  .reviews-grid{ grid-template-columns:1fr; }
  .header-phone span.hide-mobile{ display:none; }
  .cta-band .wrap{ flex-direction:column; align-items:flex-start; }
}
