/* =========================================================
   ATELIER NUMÉRIQUE — thème vitrine
   Porté depuis le panel admin : même palette, mêmes polices,
   mêmes cartes vitrées — en version plus sobre / professionnelle
   (pas de rubalise ni de vocabulaire "sécurité", juste le fond
   technique, le verre dépoli et les couleurs de chambre).
   ========================================================= */

:root{
  /* base facility — identique au panel admin */
  --void:#04060a;
  --bg-a:#0a0f18;
  --bg-b:#0d1420;
  --ink:#eef2fb;
  --ink-dim:rgba(238,242,251,.64);
  --ink-faint:rgba(238,242,251,.36);
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.22);
  --glass-lo:rgba(255,255,255,.03);

  /* identité par domaine — même mapping que les onglets admin */
  --c-produits:#4285F4;   /* catalogue */
  --c-services:#FBBC05;   /* services web */
  --c-reparation:#EA4335; /* réparations */
  --c-site:#34A853;       /* contenu du site (carrousel, actus, à propos, contact) */

  /* accent universel (CTA / prix) */
  --aperture:#ff7a1a;
  --aperture-2:#ffb066;
  --ok:#34A853;

  --r-xl:30px; --r-lg:20px; --r-md:14px; --r-sm:10px;
  --shadow:0 30px 80px -18px rgba(0,0,0,.65);

  --f-display:'Big Shoulders Stencil Text','Arial Narrow',sans-serif;
  --f-body:'Titillium Web',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  /* alias pratiques pour le CSS existant du site */
  --muted: var(--ink-dim);
  --muted-2: var(--ink-faint);
  --paper: var(--ink);
  --bg: var(--void);
  --bg-raised: var(--bg-b);
  --bg-card: var(--bg-b);
  --accent: var(--aperture);
  --accent-ink:#2a1200;
  --teal: var(--c-site);
  --danger: var(--c-reparation);
  --radius: var(--r-xl);
  --radius-sm: var(--r-md);
  --container: 1180px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0; min-height:100%;
  color: var(--ink);
  font-family: var(--f-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  background:
    radial-gradient(1100px 700px at 12% 0%, rgba(66,133,244,.14), transparent 55%),
    radial-gradient(900px 650px at 88% 8%, rgba(234,67,53,.10), transparent 55%),
    radial-gradient(1000px 800px at 50% 100%, rgba(52,168,83,.09), transparent 60%),
    linear-gradient(180deg, var(--bg-b), var(--void));
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(circle at 50% 0%, black, transparent 72%);
  mask-image:radial-gradient(circle at 50% 0%, black, transparent 72%);
}
img{ max-width:100%; display:block; }
a{ color: inherit; }
h1,h2,h3,h4{ font-family: var(--f-display); font-weight:700; text-transform:uppercase; margin: 0 0 .4em; letter-spacing:.2px; line-height:1.08; }
p{ margin: 0 0 1em; }
.container{ max-width: var(--container); margin: 0 auto; padding: 0 20px; position:relative; z-index:1; }
:focus-visible{ outline: 2px solid var(--aperture); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce){ *{ animation: none !important; transition: none !important; } }

.eyebrow{
  font-family: var(--f-mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--aperture-2); display:flex; align-items:center; gap:8px; margin-bottom: 10px; font-weight:600;
}
.eyebrow::before{ content:""; width: 18px; height: 1px; background: currentColor; display:inline-block; opacity:.7; }
.eyebrow-produits{ color: var(--c-produits); }
.eyebrow-services{ color: var(--c-services); }
.eyebrow-reparation{ color: var(--c-reparation); }
.eyebrow-site{ color: var(--c-site); }

/* ---------- carte vitrée générique (porté du panel admin) ---------- */
.glass-card{
  border-radius: var(--r-xl);
  background:
    radial-gradient(circle at 16px 16px, rgba(255,255,255,.35) 0 2px, transparent 2.6px),
    radial-gradient(circle at calc(100% - 16px) 16px, rgba(255,255,255,.35) 0 2px, transparent 2.6px),
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.015));
  border:1px solid var(--line); box-shadow: var(--shadow);
  backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%);
  position:relative; overflow:hidden;
}
.glass-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:40%; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.07), transparent);
}

/* ---------- HEADER ---------- */
.site-header{
  position: sticky; top: 0; z-index: 50;
  background: rgba(6,10,16,.78); backdrop-filter: blur(16px) saturate(150%); -webkit-backdrop-filter: blur(16px) saturate(150%);
  border-bottom: 1px solid var(--line);
}
.site-header .bar{ display:flex; align-items:center; justify-content:space-between; padding: 16px 0; gap: 16px; }
.brand{ display:flex; align-items:center; gap:10px; font-family: var(--f-display); font-weight:700; font-size:18px; text-transform:uppercase; text-decoration:none; color:var(--ink); }
.brand .mark{
  width: 32px; height:32px; border-radius:9px; border:1px solid var(--aperture);
  display:flex; align-items:center; justify-content:center; font-family:var(--f-mono); font-size:13px; color:var(--aperture-2);
  background:linear-gradient(155deg, rgba(255,122,26,.18), transparent);
}
.nav{ display:flex; gap: 3px; align-items:center; flex-wrap: wrap; }
.nav a{
  text-decoration:none; font-size: 13.5px; font-weight:600; padding: 9px 13px; border-radius: 999px; color: var(--ink-dim);
  transition: color .15s ease, background .15s ease, border-color .15s ease; border:1px solid transparent;
}
.nav a:hover{ color: var(--ink); background: rgba(255,255,255,.06); }
.nav a.active{ color: var(--ink); background: rgba(255,122,26,.12); border-color: rgba(255,122,26,.35); }
.navToggle{ display:none; }
@media (max-width: 900px){
  .nav{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; background: var(--bg-b); padding: 10px 20px 16px; border-bottom: 1px solid var(--line); gap:4px; }
  .nav.open{ display:flex; }
  .nav a{ width:100%; }
  .navToggle{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--ink); padding:9px 14px; border-radius:999px; cursor:pointer; font-size:13px; font-weight:600; }
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px; font-family: var(--f-body); font-weight:700; font-size:13.5px;
  padding: 12px 22px; border-radius: 999px; border:1px solid var(--line); text-decoration:none; cursor:pointer;
  background: rgba(255,255,255,.04); color: var(--ink); transition: transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.btn:hover{ transform: translateY(-1px); border-color: var(--line-strong); }
.btn-accent{
  border-color:rgba(255,122,26,.5); background:linear-gradient(180deg, rgba(255,122,26,.9), rgba(224,120,20,.85));
  color:#2a1200; font-weight:800;
}
.btn-accent:hover{ box-shadow:0 12px 28px -10px rgba(255,122,26,.55); border-color:var(--aperture); }
.btn-ghost{ background: transparent; }

/* ---------- HERO ---------- */
.hero{ padding: 60px 0 50px; position: relative; z-index:1; }
.hero-card{
  border-radius: var(--r-xl);
  background:
    radial-gradient(circle at 16px 16px, rgba(255,255,255,.35) 0 2px, transparent 2.6px),
    radial-gradient(circle at calc(100% - 16px) 16px, rgba(255,255,255,.35) 0 2px, transparent 2.6px),
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.015));
  border:1px solid var(--line); box-shadow: var(--shadow);
  backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%);
  overflow:hidden; position:relative;
  display:grid; grid-template-columns: 1.1fr .9fr; min-height: 380px;
}
.hero-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:40%; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,.07), transparent); }
@media (max-width: 860px){ .hero-card{ grid-template-columns: 1fr; } }
.hero-copy{ padding: 46px 44px; display:flex; flex-direction:column; justify-content:center; position:relative; z-index:1; }
.hero-ref{ font-family: var(--f-mono); font-size: 11px; color: var(--ink-faint); margin-bottom: 14px; letter-spacing: .16em; text-transform:uppercase; }
.hero-copy h1{ font-size: clamp(26px, 4.2vw, 42px); }
.hero-copy .lead{ color: var(--ink-dim); font-size: 15.5px; max-width: 46ch; }
.hero-actions{ display:flex; gap:12px; margin-top: 10px; flex-wrap: wrap; }
.hero-media{ position:relative; background: linear-gradient(160deg, rgba(66,133,244,.14), rgba(52,168,83,.10)); }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-media:empty::after{ content:"📷"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:32px; opacity:.35; }

/* ---------- SECTIONS ---------- */
.section{ padding: 52px 0; position:relative; z-index:1; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom: 26px; flex-wrap: wrap; }
.section-head h2{ font-size: clamp(21px, 3vw, 28px); }
.section-head p{ color: var(--ink-dim); margin:0; max-width: 50ch; }
.about-text{ color:var(--ink-dim); max-width:64ch; font-size:15px; }

/* ---------- CATEGORY TILES (accueil) ---------- */
.cat-grid{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
@media (max-width: 1040px){ .cat-grid{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 640px){ .cat-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 420px){ .cat-grid{ grid-template-columns: 1fr; } }
.cat-tile{
  border-radius: var(--r-lg); border:1px solid var(--line); background: linear-gradient(155deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  padding: 20px; text-decoration:none; color: var(--ink); transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
  display:flex; flex-direction: column; gap: 9px; position:relative; overflow:hidden;
}
.cat-tile::before{ content:""; position:absolute; inset:0 0 auto 0; height:2px; background:var(--c-produits); box-shadow:0 0 12px 1px var(--c-produits); opacity:.85; }
.cat-tile:hover{ border-color: rgba(66,133,244,.5); transform: translateY(-2px); box-shadow:0 16px 34px -18px var(--c-produits); }
.cat-tile .ic{ font-size: 24px; }
.cat-tile .name{ font-family: var(--f-display); font-weight:700; font-size: 15px; text-transform:uppercase; }
.cat-tile .count{ font-family: var(--f-mono); font-size: 11.5px; color: var(--ink-faint); }
.cat-tile-repair::before{ background:var(--c-reparation); box-shadow:0 0 12px 1px var(--c-reparation); }
.cat-tile-repair:hover{ border-color: rgba(234,67,53,.5); box-shadow:0 16px 34px -18px var(--c-reparation); }

/* ---------- CARROUSEL (accueil) ---------- */
.carrousel{ position:relative; }
.carrousel-viewport{ border-radius: var(--r-xl); overflow:hidden; border:1px solid var(--line); box-shadow: var(--shadow); }
.carrousel-track{ display:flex; transition: transform .45s cubic-bezier(.4,0,.2,1); }
.carrousel-slide{
  flex: 0 0 100%; position:relative; min-height: 320px; display:flex; align-items:flex-end;
  background: linear-gradient(160deg, rgba(52,168,83,.14), rgba(10,15,24,.4));
}
.carrousel-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.carrousel-caption{
  position:relative; z-index:1; padding: 30px 34px; width:100%;
  background:linear-gradient(0deg, rgba(4,6,10,.92) 10%, rgba(4,6,10,.55) 60%, transparent 100%);
}
.carr-tag{
  display:inline-block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--c-site); border:1px solid var(--c-site); border-radius:999px; padding:4px 10px; margin-bottom:10px;
}
.carrousel-caption h3{ font-size: clamp(18px,2.6vw,26px); margin-bottom:.25em; }
.carrousel-caption p{ color:var(--ink-dim); font-size:14px; max-width:56ch; margin-bottom:14px; }
.carrousel-controls{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:16px; }
.carr-btn{
  width:38px; height:38px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.05);
  color:var(--ink); font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.15s ease;
}
.carr-btn:hover{ border-color:var(--c-site); color:var(--c-site); }
.carrousel-dots{ display:flex; gap:8px; }
.carr-dot{ width:8px; height:8px; border-radius:999px; border:none; background:rgba(255,255,255,.2); cursor:pointer; padding:0; transition:.15s ease; }
.carr-dot.active{ background:var(--c-site); box-shadow:0 0 10px rgba(52,168,83,.6); width:22px; border-radius:999px; }

/* ---------- NEWS (actualités) ---------- */
.news-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
@media (max-width: 900px){ .news-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .news-grid{ grid-template-columns: 1fr; } }
.news-card{
  border-radius: var(--r-lg); overflow:hidden; border:1px solid var(--line); background: rgba(255,255,255,.02);
  display:flex; flex-direction:column; transition: transform .15s ease, border-color .15s ease;
}
.news-card:hover{ transform: translateY(-3px); border-color: rgba(52,168,83,.4); }
.news-thumb{ aspect-ratio: 16/9; overflow:hidden; background:rgba(255,255,255,.03); }
.news-thumb img{ width:100%; height:100%; object-fit:cover; }
.news-body{ padding:18px; display:flex; flex-direction:column; gap:6px; }
.news-pin{
  align-self:flex-start; font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--void); background:var(--c-site); padding:3px 9px; border-radius:999px; font-weight:700; margin-bottom:2px;
}
.news-date{ font-family:var(--f-mono); font-size:11.5px; color:var(--ink-faint); }
.news-body h3{ font-size:16px; margin:2px 0 2px; text-transform:none; }
.news-body p{ font-size:13.5px; color:var(--ink-dim); margin:0; }

/* ---------- FILTERS ---------- */
.filters{ display:flex; gap: 10px; flex-wrap: wrap; margin-bottom: 24px; align-items:center; }
.filters input, .filters select{
  padding: 11px 15px; border-radius: 999px; border:1px solid var(--line); background: rgba(0,0,0,.22);
  color: var(--ink); font-family: var(--f-body); font-size: 14px; outline: none; transition:.15s ease;
}
.filters input{ flex: 1; min-width: 180px; }
.filters input:focus, .filters select:focus{ border-color: var(--aperture); box-shadow:0 0 0 3px rgba(255,122,26,.15); }

/* ---------- PRODUCT GRID / CARD ---------- */
.product-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 960px){ .product-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .product-grid{ grid-template-columns: 1fr; } }
.product-card{
  border-radius: var(--r-lg); overflow:hidden; background: rgba(255,255,255,.02); border:1px solid var(--line);
  text-decoration:none; color: var(--ink); display:flex; flex-direction:column; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.product-card:hover{ transform: translateY(-3px); border-color: rgba(66,133,244,.45); box-shadow:0 18px 40px -22px var(--c-produits); }
.product-card .thumb{ aspect-ratio: 4/3; background: rgba(255,255,255,.03); overflow:hidden; position:relative; }
.product-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.product-card .thumb:empty::after{ content:"—"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color: var(--ink-faint); font-family: var(--f-mono); }
.badge-promo{
  position:absolute; top:10px; left:10px; background: var(--c-reparation); color:#2b0410; font-family: var(--f-mono);
  font-size: 10.5px; font-weight:700; padding: 4px 9px; border-radius: 6px; letter-spacing:.04em;
}
.badge-stock{
  position:absolute; top:10px; right:10px; font-family: var(--f-mono); font-size: 10.5px; padding: 4px 9px; border-radius: 6px;
  background: rgba(4,6,10,.72); border: 1px solid var(--line);
}
.badge-stock.out{ color: var(--c-reparation); }
.badge-stock.in{ color: var(--c-site); }
.product-card .body{ padding: 16px; display:flex; flex-direction:column; gap: 6px; flex:1; }
.product-card .sku{ font-family: var(--f-mono); font-size: 10.5px; color: var(--c-produits); text-transform: uppercase; letter-spacing: .08em; }
.product-card h3{ font-size: 15.5px; margin: 0; text-transform:none; font-family:var(--f-body); font-weight:700; }
.product-card .desc{ font-size: 13px; color: var(--ink-dim); margin:0; flex:1; }
.price-row{ display:flex; align-items:baseline; gap:8px; margin-top: 4px; font-family: var(--f-mono); }
.price{ font-size: 18px; font-weight:700; color: var(--aperture-2); }
.price-old{ font-size: 12.5px; color: var(--ink-faint); text-decoration: line-through; }
.empty-state{ padding: 50px 20px; text-align:center; color: var(--ink-dim); border: 1px dashed var(--line-strong); border-radius: var(--r-lg); }

/* ---------- PRODUCT DETAIL ---------- */
.breadcrumb{ font-size: 12.5px; color: var(--ink-faint); margin-bottom: 20px; font-family:var(--f-mono); }
.breadcrumb a{ text-decoration:none; color: var(--ink-dim); }
.breadcrumb a:hover{ color: var(--ink); }
.detail-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 860px){ .detail-grid{ grid-template-columns: 1fr; } }
.gallery-main{ border-radius: var(--r-xl); overflow:hidden; background: rgba(255,255,255,.02); border:1px solid var(--line); aspect-ratio: 1/1; }
.gallery-main img{ width:100%; height:100%; object-fit:cover; }
.gallery-thumbs{ display:flex; gap:8px; margin-top: 10px; flex-wrap: wrap; }
.gallery-thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:var(--r-sm); border:1px solid var(--line); cursor:pointer; opacity:.6; transition:.15s ease; }
.gallery-thumbs img.active{ opacity:1; border-color: var(--c-produits); }
.detail-info .sku{ font-family: var(--f-mono); font-size: 11px; color: var(--c-produits); text-transform:uppercase; letter-spacing:.08em; margin-bottom: 8px;}
.detail-info h1{ font-size: clamp(22px,3.4vw,30px); }
.detail-price{ font-family: var(--f-mono); font-size: 28px; font-weight:700; color: var(--aperture-2); margin: 14px 0 4px; }
.detail-price .old{ font-size: 15px; color: var(--ink-faint); text-decoration: line-through; margin-left: 10px; }
.stock-line{ font-family: var(--f-mono); font-size: 12.5px; margin-bottom: 18px; }
.stock-line.in{ color: var(--c-site); }
.stock-line.out{ color: var(--c-reparation); }
.spec-table{ width:100%; border-collapse: collapse; margin-top: 8px; font-family: var(--f-mono); font-size: 13px; }
.spec-table tr{ border-bottom: 1px solid var(--line); }
.spec-table td{ padding: 10px 0; }
.spec-table td:first-child{ color: var(--ink-dim); width: 40%; }
.spec-table td:last-child{ color: var(--ink); }

/* ---------- SERVICES ---------- */
.service-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
@media (max-width: 900px){ .service-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .service-grid{ grid-template-columns: 1fr; } }
.service-card{
  border-radius: var(--r-lg); border:1px solid var(--line); background: rgba(255,255,255,.02); padding: 24px;
  display:flex; flex-direction:column; gap: 12px; position:relative; overflow:hidden; transition:.15s ease;
}
.service-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:2px; background:var(--c-services); box-shadow:0 0 12px 1px var(--c-services); opacity:.85; }
.service-card:hover{ border-color:rgba(251,188,5,.4); transform:translateY(-2px); }
.service-card .cat{ font-family: var(--f-mono); font-size: 10.5px; color: var(--c-services); text-transform:uppercase; letter-spacing:.1em; }
.service-card h3{ font-size: 18px; margin:0; text-transform:none; font-family:var(--f-body); font-weight:700; }
.service-card .tagline{ color: var(--ink-dim); font-size: 13px; margin: 0; }
.service-price{ font-family: var(--f-mono); font-size: 24px; font-weight:700; color: var(--aperture-2); }
.service-price .type{ font-size: 11px; color: var(--ink-faint); font-weight: 400; display:block; text-transform: uppercase; letter-spacing:.06em; }
.service-features{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; flex:1; }
.service-features li{ font-size: 13px; color: var(--ink-dim); display:flex; gap:8px; }
.service-features li::before{ content:"—"; color: var(--c-services); flex:0 0 auto; }

/* ---------- RÉPARATIONS ---------- */
.repair-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
@media (max-width: 900px){ .repair-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .repair-grid{ grid-template-columns: 1fr; } }
.repair-card{
  border-radius: var(--r-lg); border:1px solid var(--line); background: rgba(255,255,255,.02); padding: 22px;
  display:flex; flex-direction:column; gap: 10px; position:relative; overflow:hidden; transition:.15s ease;
}
.repair-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:2px; background:var(--c-reparation); box-shadow:0 0 12px 1px var(--c-reparation); opacity:.85; }
.repair-card:hover{ border-color:rgba(234,67,53,.4); transform:translateY(-2px); }
.repair-card .cat{ font-family: var(--f-mono); font-size: 10.5px; color: var(--c-reparation); text-transform:uppercase; letter-spacing:.1em; }
.repair-card h3{ font-size: 17px; margin:0; text-transform:none; font-family:var(--f-body); font-weight:700; }
.repair-card .desc{ font-size: 13px; color: var(--ink-dim); margin:0; flex:1; }
.repair-meta{ display:flex; gap:8px; flex-wrap:wrap; }
.repair-tag{
  font-family:var(--f-mono); font-size:11px; padding:4px 9px; border-radius:6px; border:1px solid var(--line);
  background:rgba(0,0,0,.2); color:var(--ink-dim);
}
.repair-price{ font-family: var(--f-mono); font-size: 21px; font-weight:700; color: var(--aperture-2); margin-top:4px; }
.repair-price .type{ font-size: 11px; color: var(--ink-faint); font-weight: 400; margin-left:6px; text-transform:uppercase; letter-spacing:.04em; }

/* ---------- À PROPOS / CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top:22px; }
@media (max-width: 900px){ .contact-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .contact-grid{ grid-template-columns: 1fr; } }
.contact-tile{
  border-radius: var(--r-lg); border:1px solid var(--line); background: rgba(255,255,255,.02);
  padding: 18px; display:flex; gap:12px; align-items:flex-start; transition:.15s ease;
}
.contact-tile:hover{ border-color: rgba(52,168,83,.4); }
.contact-tile .ic{ font-size:20px; flex:0 0 auto; }
.contact-tile .k{ font-family: var(--f-mono); font-size:10.5px; color: var(--c-site); text-transform:uppercase; letter-spacing:.08em; margin-bottom:3px; }
.contact-tile .v{ font-size:14px; color:var(--ink); }

/* ---------- FOOTER ---------- */
.site-footer{ border-top:1px solid var(--line); padding: 44px 0 28px; margin-top: 20px; position:relative; z-index:1; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 30px; }
@media (max-width: 720px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-grid h4{ font-size: 12px; text-transform: uppercase; letter-spacing:.08em; color: var(--ink-dim); font-family: var(--f-mono); margin-bottom:12px; }
.footer-grid ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.footer-grid a{ text-decoration:none; color: var(--ink-dim); font-size: 13.5px; transition:.15s ease; }
.footer-grid a:hover{ color: var(--ink); }
.footer-bottom{ margin-top: 32px; padding-top: 18px; border-top:1px solid var(--line); font-size:11.5px; font-family:var(--f-mono); color: var(--ink-faint); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }

/* ---------- POPUP D'ACCUEIL ---------- */
.site-popup-overlay{
  position:fixed; inset:0; z-index:999; display:flex; align-items:center; justify-content:center; padding:20px;
  background:rgba(4,6,10,.72); backdrop-filter:blur(6px); opacity:0; transition:opacity .25s ease; pointer-events:none;
}
.site-popup-overlay.show{ opacity:1; pointer-events:auto; }
.site-popup-card{
  width:100%; max-width:420px; border-radius: var(--r-xl); overflow:hidden; position:relative;
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(13,20,32,.98));
  border:1px solid var(--line-strong); box-shadow: var(--shadow);
  transform: translateY(10px) scale(.98); transition: transform .25s ease;
}
.site-popup-overlay.show .site-popup-card{ transform: translateY(0) scale(1); }
.site-popup-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:3px; background:var(--c-site); box-shadow:0 0 14px 1px var(--c-site); }
.site-popup-media{ aspect-ratio: 16/9; overflow:hidden; background:rgba(255,255,255,.03); }
.site-popup-media img{ width:100%; height:100%; object-fit:cover; }
.site-popup-body{ padding:24px 26px 26px; }
.site-popup-body h3{ font-size:19px; margin-bottom:.3em; text-transform:none; }
.site-popup-body p{ color:var(--ink-dim); font-size:14px; margin-bottom:16px; }
.site-popup-close{
  position:absolute; top:12px; right:12px; z-index:2; width:30px; height:30px; border-radius:999px; border:1px solid var(--line-strong);
  background:rgba(4,6,10,.6); color:#fff; cursor:pointer; font-size:14px; display:flex; align-items:center; justify-content:center;
}
.site-popup-close:hover{ border-color:var(--aperture); color:var(--aperture-2); }

/* ---------- MISC ---------- */
.skeleton{ background: linear-gradient(90deg, rgba(255,255,255,.03) 25%, rgba(255,255,255,.07) 37%, rgba(255,255,255,.03) 63%); background-size: 400% 100%; animation: shine 1.4s infinite; border-radius: var(--r-lg); }
@keyframes shine{ 0%{background-position:100% 0} 100%{background-position:0 0} }
