:root {
    --color-bg: #ffffff; --color-surface: #f4f4f5; --color-text: #15171a;
    --color-accent: #c8102e; --color-accent-2: #c8102e;
    --color-divider: color-mix(in srgb, #15171a 18%, transparent);
    --color-accent-100: #fdeff1; --color-accent-200: #fbd5da; --color-accent-300: #f4aeb7;
    --color-accent-400: #e8808e; --color-accent-500: #d94f63; --color-accent-600: #c8102e;
    --color-accent-700: #a30f27; --color-accent-800: #74111f; --color-accent-900: #101315;
    --color-accent-2-100: #fdeff1; --color-accent-2-200: #fbd5da; --color-accent-2-300: #f4aeb7;
    --color-accent-2-400: #e8808e; --color-accent-2-500: #d94f63; --color-accent-2-600: #c8102e;
    --color-accent-2-700: #a30f27; --color-accent-2-800: #74111f; --color-accent-2-900: #101315;
  }
  body { margin: 0; }
  a { color: var(--color-accent-700); }
  a:hover { color: var(--color-accent); }
  .mcnav a[aria-current='page'] { color: #fff; border-bottom-color: var(--color-accent); }
  .mcdrop:hover .mcdrop-menu, .mcdrop:focus-within .mcdrop-menu { opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important; }
  @media (max-width: 760px) { .mcdrop-menu { display: none; } }
  .mcfaq summary { list-style: none; cursor: pointer; }
  .mcfaq summary::-webkit-details-marker { display: none; }
  .mcfaq details[open] .mcplus { transform: rotate(45deg); }
  .mcfaq details > summary h2 { transition: color .25s ease; }
  .mcfaq details:hover > summary h2 { color: var(--color-accent); }

  @keyframes mcReveal { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
  [data-reveal] { animation: mcReveal .8s cubic-bezier(.22,.7,.2,1) both; animation-timeline: view(); animation-range: entry 2% cover 20%; }
  @keyframes mcRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
  @keyframes mcDrift { from { transform: scale(1.04); } to { transform: scale(1.14); } }
  @keyframes mcSweep { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  /* ── Motion premium : lent, feutré, une seule courbe ── */
  @keyframes mcVeil { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
  @keyframes mcWipe { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
  @keyframes mcZoomOut { from { transform: scale(1.09); } to { transform: scale(1); } }

  /* Titres et paragraphes : voile qui se lève */
  [data-reveal] { animation: mcVeil 1.15s cubic-bezier(.16,1,.3,1) both; animation-timeline: view(); animation-range: entry 4% cover 22%; }
  main section h2, main section > div > p, main section h3 { animation: mcVeil 1.15s cubic-bezier(.16,1,.3,1) both; animation-timeline: view(); animation-range: entry 2% cover 26%; }

  /* Photographies : révélation par volet + décompression lente */
  .mcfig { animation: mcWipe 1.4s cubic-bezier(.16,1,.3,1) both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
  .mcfig .mcfig img { animation: mcZoomOut 1.8s cubic-bezier(.16,1,.3,1) both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
  .mcfig:hover img, .mcfig:hover 

  /* Filets qui se tracent */
  main section [style*="border-bottom:1px solid var(--color-divider)"] { background-image: linear-gradient(to right, var(--color-accent), var(--color-accent)); background-repeat: no-repeat; background-position: left bottom; background-size: 0 1px; transition: background-size 1.2s cubic-bezier(.16,1,.3,1); }
  main section:hover [style*="border-bottom:1px solid var(--color-divider)"] { background-size: 100% 1px; }

  /* Boutons : remplissage qui balaie, pas de saut */
  .btn { position: relative; isolation: isolate; overflow: hidden; transition: color .45s ease, border-color .45s ease; }
  .btn::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--color-accent); transform: translateX(-101%); transition: transform .55s cubic-bezier(.16,1,.3,1); }
  .btn:hover::before { transform: none; }
  .btn:hover { color: #fff !important; border-color: var(--color-accent) !important; transform: none; }
  .btn.btn-primary::before { background: #101315; }

  /* Cellules : liseré d'accent plutôt qu'un aplat */
  .mccell { transition: background .55s ease, box-shadow .55s ease; }
  .mccell:hover { background: var(--color-bg) !important; transform: none; box-shadow: inset 3px 0 0 var(--color-accent); }
  .mcdark:hover { background: #14181b !important; box-shadow: inset 3px 0 0 var(--color-accent); }

  /* Bandeau de navigation : se densifie au défilement */
  .mcstatic, .mcstatic * { animation: none !important; }
  .mcstatic [style*="border-bottom:1px solid var(--color-divider)"] { background-image: none !important; }
  header.mcnav { transition: background .5s ease, backdrop-filter .5s ease, padding .5s ease, box-shadow .5s ease; }
  header.mcnav[data-stuck] { position: fixed; background: rgba(10,12,13,.82); backdrop-filter: saturate(140%) blur(14px); padding-top: 8px !important; padding-bottom: 8px !important; box-shadow: 0 1px 0 rgba(255,255,255,.12); }
  header.mcnav[data-stuck] img { height: 64px !important; transition: height .5s ease; }
  .mchero > * { animation: mcRise .9s cubic-bezier(.22,.7,.2,1) both; }
  .mchero > *:nth-child(2) { animation-delay: .08s; }
  .mchero > *:nth-child(3) { animation-delay: .16s; }
  .mchero > *:nth-child(4) { animation-delay: .24s; }
  .mchero-photo { animation: mcDrift 26s ease-in-out infinite alternate; }
  .mcrule { transform-origin: left; animation: mcSweep 1s cubic-bezier(.22,.7,.2,1) both; animation-delay: .3s; }
  .mccell { transition: background .3s ease, transform .3s ease; }
  .mccell:hover { background: var(--color-accent-100) !important; transform: translateY(-3px); }
  .mccell .mcnum { transition: color .3s ease, letter-spacing .3s ease; }
  .mccell:hover .mcnum { letter-spacing: .3em; }
  .mcrow { transition: padding-left .35s cubic-bezier(.22,.7,.2,1), background .35s ease; }
  .mcrow:last-child { border-bottom: 1px solid var(--color-divider); }
  .mcrow .mctitle { transition: color .3s ease; }
  .mcrow .mcarrow { transition: opacity .3s ease, transform .35s cubic-bezier(.22,.7,.2,1); transform: translateX(-8px); }
  .mcrow:hover { padding-left: 14px !important; }
  .mcrow:hover .mctitle { color: var(--color-accent); }
  .mcrow:hover .mcarrow { opacity: 1; transform: none; }
  .mcdark { transition: background .3s ease; }
  .mcdark:hover { background: #16191c !important; }
  .mcfig { overflow: visible; }
  .mcfig > div { overflow: hidden; }
  .mcfig img, .mcfig 
  .mcfig:hover img, .mcfig:hover 
  .btn { transition: background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease; }
  .btn:hover { transform: translateY(-2px); }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

  /* ── Tablette ── */
  @media (max-width: 1080px) {
    section { padding-left: 28px !important; padding-right: 28px !important; }
    header.mcnav { padding-left: 28px !important; padding-right: 28px !important; }
    header.mcnav img { height: 78px !important; }
    header.mcnav nav { gap: 18px !important; font-size: 13px !important; }
    [style*="grid-template-columns:repeat(4"], [style*="grid-template-columns:repeat(5"] { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
    [style*="grid-template-columns:90px"] { grid-template-columns: 64px minmax(0,1fr) !important; }
    [style*="grid-template-columns:90px"] ul { grid-column: 2; }
  }

  /* Menu mobile */
  .mcburger { display: none; }
  .mcmobnav { display: none; }
  .mcscrim { display: none; }

  /* ── Mobile ── */
  @media (max-width: 760px) {
    section { padding-left: 20px !important; padding-right: 20px !important;
      padding-top: 46px !important; padding-bottom: 46px !important; }
    section > div { max-width: 100% !important; }
    [style*="grid-template-columns"] { grid-template-columns: minmax(0,1fr) !important; }
    [style*="grid-row:span 2"] { grid-row: auto !important; min-height: 300px !important; }

    /* Bandeau : logo + burger seulement */
    header.mcnav { padding: 10px 18px !important; gap: 10px !important; }
    header.mcnav img { height: 74px !important; }
    header.mcnav nav[aria-label] { display: none !important; }
    header.mcnav > a.btn { display: none !important; }
    .mcburger { display: flex !important; flex-direction: column; justify-content: center; gap: 5px;
      width: 44px; height: 44px; padding: 0; margin-left: auto; background: none; border: 0; cursor: pointer; }
    .mcburger i { display: block; height: 1px; width: 22px; margin-left: auto; background: #fff;
      transition: transform .25s ease, opacity .2s ease; }
    .mcburger[aria-expanded="true"] i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .mcburger[aria-expanded="true"] i:nth-child(2) { opacity: 0; }
    .mcburger[aria-expanded="true"] i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    .mcmobnav { display: block !important; position: fixed; top: 0; left: 0; right: 0; z-index: 40;
      background: rgba(10,12,13,.97); backdrop-filter: blur(14px); padding: 76px 24px 28px;
      transform: translateY(-102%); transition: transform .34s cubic-bezier(.3,.8,.25,1);
      border-bottom: 1px solid rgba(255,255,255,.14); max-height: 100vh; overflow-y: auto; }
    .mcmobnav[data-open="true"] { transform: translateY(0); }
    .mcmobnav a { display: block; padding: 12px 0; font-family: var(--font-heading); font-size: 17px;
      font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.82);
      text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.09); }
    .mcmobnav a.sub { font-size: 13px; letter-spacing: .07em; padding-left: 14px; color: rgba(255,255,255,.6); }
    .mcmobnav a.devis { border-bottom: 0; margin-top: 18px; color: #fff;
      background: var(--color-accent); text-align: center; padding: 15px 0; }
    .mcmobclose { position: absolute; top: 16px; right: 18px; width: 44px; height: 44px;
      background: none; border: 0; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
    .mcscrim { display: block !important; position: fixed; inset: 0; z-index: 35;
      background: rgba(10,12,13,.55); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
    .mcscrim[data-open="true"] { opacity: 1; pointer-events: auto; }
    body.mcnoscroll { overflow: hidden; }

    .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
      font-size: 13px !important; letter-spacing: .1em !important; }
    .input, input.input, select.input, textarea.input { min-height: 46px; font-size: 16px !important; }
    [style*="font-size:11px"], [style*="font-size: 11px"] { font-size: 11px !important; letter-spacing: .2em !important; }

    /* Bannière : photo lisible, type plus fine */
    .mchero { padding-top: 118px !important; padding-bottom: 40px !important; }
    .mchero-photo, section > img[style*="position:absolute"], section > img[style*="position: absolute"] {
      width: 100% !important; opacity: .78 !important; object-position: 50% 25% !important; }
    section > div[style*="linear-gradient"] { background: linear-gradient(to bottom,
      rgba(10,12,13,.42) 0%, rgba(10,12,13,.52) 38%, rgba(10,12,13,.88) 78%, #0a0c0d 100%) !important; }
    h1 { font-size: clamp(26px, 7.4vw, 34px) !important; font-weight: 400 !important;
      line-height: 1.06 !important; letter-spacing: .005em !important; }
    h2 { font-size: clamp(20px, 5.6vw, 26px) !important; font-weight: 400 !important;
      line-height: 1.14 !important; margin-bottom: 18px !important; }
    h3 { font-size: 17px !important; font-weight: 400 !important; }
    p, li, span { text-wrap: pretty; }
    p[style*="font-size:19px"], p[style*="font-size: 19px"],
    p[style*="font-size:18px"], p[style*="font-size: 18px"],
    p[style*="font-size:20px"], p[style*="font-size: 20px"],
    p[style*="font-size:17px"], p[style*="font-size: 17px"] { font-size: 15px !important; line-height: 1.65 !important; }
    p[style*="font-size:16px"], p[style*="font-size: 16px"] { font-size: 14.5px !important; }

    /* Déroulé : cubes deux par ligne */
    .mcsteps { grid-template-columns: 1fr 1fr !important; }
    .mcsteps > div, .mcsteps > a { aspect-ratio: 1; padding: 14px 12px !important; display: flex !important;
      flex-direction: column; overflow: hidden; }
    .mcsteps > div > div:first-child, .mcsteps > a > div:first-child { font-size: 18px !important; margin-bottom: 6px !important; }
    .mcsteps > div h3, .mcsteps > a h3 { font-size: 13.5px !important; margin: 6px 0 5px !important; line-height: 1.15 !important; }
    .mcsteps > div p, .mcsteps > a p { font-size: 11px !important; line-height: 1.4 !important; overflow: hidden; }
    /* Une cellule seule sur sa dernière ligne prend la largeur entière */
    .mcsteps > *:nth-child(odd):last-child { grid-column: 1 / -1; aspect-ratio: 2 / 1; }

    /* Déroulé de l'intervention : carrés deux par ligne */
    .mcflow { grid-template-columns: 1fr 1fr !important; }
    .mcflow > div { display: flex !important; flex-direction: column;
      gap: 4px !important; aspect-ratio: 1;
      padding: 14px 12px !important; justify-content: flex-start !important; overflow: hidden; }
    .mcflow > div > span { font-size: 18px !important; }
    .mcflow > div h3 { font-size: 13.5px !important; line-height: 1.15 !important; }
    .mcflow > div p { font-size: 10.5px !important; line-height: 1.4 !important;
      display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
    .mcflow > div:nth-child(odd):last-child p { -webkit-line-clamp: 3; }
    .mcflow > div:nth-child(odd):last-child { grid-column: 1 / -1; aspect-ratio: 2 / 1; }

    /* Avis : deux par ligne */
    .mcavis { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
    .mcavis article { padding: 16px 14px !important; }
    .mcavis p { font-size: 12px !important; line-height: 1.5 !important; margin: 8px 0 12px !important; }
    .mcavis div[style*="font-size:18px"], .mcavis div[style*="font-size: 18px"] { font-size: 15px !important; }
    .mcavis div[style*="font-size:12px"], .mcavis div[style*="font-size: 12px"] { font-size: 10px !important; }

    /* Liste des spécialités : garde ses colonnes */
    a.mcrow { grid-template-columns: 26px minmax(0,1fr) 16px !important; gap: 12px !important;
      padding: 15px 2px !important; align-items: center !important; }
    a.mcrow .mctitle { font-size: 19px !important; }
    a.mcrow .mcnum { font-size: 11px !important; }
    [style*="margin-bottom:48px"], [style*="margin-bottom: 48px"] { margin-bottom: 16px !important; }
    [style*="padding-bottom:22px"], [style*="padding-bottom: 22px"] { padding-bottom: 12px !important; }

    /* Prestations : cases plus serrées */
    article[style*="padding:56px 0"], article[style*="padding: 56px 0"] {
      padding: 26px 0 !important; gap: 22px !important; }
    .mccell { padding: 16px 14px !important; }
    [style*="padding:34px 32px"], [style*="padding: 34px 32px"] { padding: 22px 18px !important; gap: 18px !important; }
    [style*="padding:30px 26px"], [style*="padding: 30px 26px"],
    [style*="padding:30px 28px"], [style*="padding: 30px 28px"],
    [style*="padding:28px 26px"], [style*="padding: 28px 26px"] { padding: 18px 16px !important; }
    [style*="padding:26px 28px"], [style*="padding: 26px 28px"] { padding: 18px 16px !important; }
    [style*="padding:24px 22px"], [style*="padding: 24px 22px"] { padding: 16px 14px !important; }
    [style*="gap:56px"], [style*="gap: 56px"] { gap: 22px !important; }
    [style*="gap:44px"], [style*="gap: 44px"] { gap: 20px !important; }
    [style*="gap:36px"], [style*="gap: 36px"], [style*="gap:32px"], [style*="gap: 32px"] { gap: 18px !important; }

    /* Bandeaux de titre : dégager la hauteur du bandeau de navigation */
    section[style*="padding:210px"], section[style*="padding: 210px"],
    section[style*="padding:200px"], section[style*="padding: 200px"] {
      padding-top: 122px !important; padding-bottom: 38px !important; }

    /* Contact : téléphone, mail et adresse sur une seule ligne */
    .mccontact { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
    .mccontact > div { padding: 14px 10px !important; }
    .mccontact h2 { font-size: 9px !important; letter-spacing: .14em !important; margin-bottom: 7px !important; }
    .mccontact a { font-size: 11px !important; line-height: 1.25 !important; word-break: break-word; }
    .mccontact a[href^="tel:"] { font-size: 12px !important; }
    .mccontact > div > p:first-of-type { font-size: 11px !important; line-height: 1.3 !important; }
    .mccontact > div > p:last-child { display: none; }

    /* Équipe : portrait compact à gauche (évite l'agrandissement flou) */
    article[style*="grid-template-columns:180px"], article[style*="grid-template-columns: 180px"] {
      grid-template-columns: 112px minmax(0,1fr) !important; gap: 14px !important; padding: 16px 14px !important; }
    article[style*="grid-template-columns:180px"] figure,
    article[style*="grid-template-columns: 180px"] figure { aspect-ratio: 3 / 4 !important; }

    /* Pied de page compact */
    footer { padding: 32px 20px 18px !important; }
    footer img { height: 78px !important; margin-bottom: 0 !important; }
    a[href^="tel:"] { white-space: nowrap; font-size: 21px !important; flex: none; }
    #mc-pro > div > div:first-child { flex-wrap: wrap; align-items: flex-start !important; gap: 10px !important; }
    footer > div:first-child { grid-template-columns: 1fr 1fr !important; gap: 22px 18px !important; }
    footer > div:first-child > div:first-child { grid-column: 1 / -1; }
    footer > div:first-child > div:first-child p { display: none; }
    footer > div:first-child > div:last-child { grid-column: 1 / -1; display: grid;
      grid-template-columns: 1fr 1fr !important; column-gap: 18px; align-items: start; }
    footer > div:first-child > div:last-child h2 { grid-column: 1 / -1; }
    footer > div:first-child > div:last-child > p:last-child { grid-column: 2; grid-row: 2 / span 3;
      margin: 0 !important; }
    footer h2 { font-size: 10px !important; letter-spacing: .18em !important; margin-bottom: 8px !important; }
    .mcfootlinks { display: grid !important; gap: 6px !important; }
    .mcfootlinks a { font-size: 12.5px !important; }
    footer p { font-size: 12.5px !important; line-height: 1.6 !important; }
    footer > div:last-child { margin-top: 22px !important; padding-top: 14px !important;
      flex-direction: column; gap: 5px !important; font-size: 10.5px !important; }
  }
