/* Coldbuild — sections communes : pages de spécialités, blog, et blocs ajoutés à l'accueil */

  /* ---------- petit hero (pages intérieures) ---------- */
  .hero.hero-sm{padding-block:clamp(128px,16vw,168px) clamp(64px,9vw,104px);}
  .hero-sm .hero-inner{max-width:800px;}
  .hero-sm h1{font-size:clamp(32px,6.4vw,58px);line-height:1.03;letter-spacing:-.04em;margin-bottom:20px;}
  .hero-sm p.lede{max-width:58ch;margin-bottom:28px;}

  /* ---------- cartes "ce que nous faisons" ---------- */
  .do-section{background:var(--bg);}
  .do-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;padding:7px;}
  @media (max-width:760px){.do-grid{grid-template-columns:1fr;}}
  .do-card{
    position:relative;background:var(--card);border-radius:22px;padding:28px;
    box-shadow:inset 0 1px 0 #fff,0 0 0 6px var(--shell),0 0 0 7px var(--shell-edge),var(--shadow-soft);
  }
  .do-card .n{
    display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;margin-bottom:18px;
    background:var(--primary);color:var(--accent-bright);font-size:12px;font-weight:800;letter-spacing:.04em;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 18px -8px rgba(15,23,42,.6);
  }
  .do-card h3{font-size:19px;color:var(--fg);margin-bottom:8px;letter-spacing:-.025em;}
  .do-card p{color:var(--fg-secondary);font-size:14.5px;}

  /* ---------- signes / quand nous appeler ---------- */
  .signs{background:var(--muted);}
  .signs-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,6vw,72px);align-items:start;}
  @media (max-width:860px){.signs-inner{grid-template-columns:1fr;}}
  .signs .section-head{margin-bottom:0;}
  .sign-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
  .sign-list li{
    display:flex;gap:14px;align-items:center;background:var(--card);border-radius:18px;padding:16px 20px;
    font-size:15px;font-weight:600;color:var(--fg);
    box-shadow:0 0 0 1px rgba(15,23,42,.06),0 10px 22px -16px rgba(15,23,42,.25);
  }
  .sign-list svg{flex:none;width:30px;height:30px;padding:7px;border-radius:50%;background:rgba(29,78,216,.1);fill:none;stroke:var(--accent);stroke-width:2.6;}

  /* ---------- FAQ des pages ---------- */
  .q-section{background:var(--bg);}
  .q-list{max-width:780px;display:flex;flex-direction:column;gap:12px;}
  .q-item{
    background:var(--card);border-radius:20px;overflow:hidden;
    box-shadow:0 0 0 1px rgba(15,23,42,.06),0 10px 22px -16px rgba(15,23,42,.25);transition:box-shadow .5s var(--ease);
  }
  .q-item[open]{box-shadow:0 0 0 1px rgba(29,78,216,.22),0 18px 32px -18px rgba(15,23,42,.3);}
  .q-item summary{
    list-style:none;cursor:pointer;padding:20px 22px 20px 26px;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--fg);
    display:flex;align-items:center;justify-content:space-between;gap:16px;transition:color .4s var(--ease);
  }
  .q-item summary::-webkit-details-marker{display:none;}
  .q-item summary .chev{
    flex:none;width:34px;height:34px;padding:8px;border-radius:50%;background:var(--shell);stroke:var(--accent);fill:none;stroke-width:2.25;
    transition:transform .6s var(--ease),background-color .4s var(--ease),stroke .4s var(--ease);
  }
  .q-item[open] summary .chev{transform:rotate(180deg);background:var(--accent);stroke:#fff;}
  .q-item summary:focus-visible{color:var(--accent);}@media (hover:hover) and (pointer:fine){.q-item summary:hover{color:var(--accent);}}
  .q-item .q-answer{padding:0 26px 24px;color:var(--fg-secondary);font-size:15px;max-width:62ch;}

  /* ---------- liens vers les autres spécialités ---------- */
  .more{background:var(--muted);padding-block:clamp(48px,6vw,72px);}
  .more h2{font-size:clamp(20px,2.6vw,26px);margin-bottom:20px;}
  .chips{display:flex;flex-wrap:wrap;gap:10px;}
  .chip{
    display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:9999px;background:var(--card);color:var(--fg);
    font-size:14px;font-weight:700;text-decoration:none;
    box-shadow:0 0 0 1px rgba(15,23,42,.07),0 8px 18px -10px rgba(15,23,42,.2);
    transition:transform .5s var(--ease),box-shadow .5s var(--ease),color .4s var(--ease);
  }
  .chip:focus-visible{transform:translateY(-2px);color:var(--accent);box-shadow:0 0 0 1px rgba(29,78,216,.3),0 14px 24px -12px rgba(15,23,42,.3);}@media (hover:hover) and (pointer:fine){.chip:hover{transform:translateY(-2px);color:var(--accent);box-shadow:0 0 0 1px rgba(29,78,216,.3),0 14px 24px -12px rgba(15,23,42,.3);}}
  .chip[aria-current]{background:var(--primary);color:var(--on-primary);box-shadow:none;}

  /* ---------- bandeau d'appel à l'action ---------- */
  .cta-band{background:var(--bg);padding-block:clamp(56px,7vw,96px) 0;}
  .cta-panel{
    position:relative;overflow:hidden;isolation:isolate;width:min(1080px,calc(100% - 32px));margin-inline:auto;
    padding:clamp(32px,6vw,60px);border-radius:36px;display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;
    background:radial-gradient(70% 120% at 100% 0%,rgba(29,78,216,.45),transparent 65%),var(--primary);color:var(--on-primary);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 40px 80px -40px rgba(15,23,42,.6);
  }
  .cta-panel h2{font-size:clamp(24px,3.6vw,34px);line-height:1.1;margin-bottom:10px;color:var(--on-primary);}
  .cta-panel p{color:var(--on-primary-muted);max-width:50ch;}
  .cta-panel :focus-visible{outline-color:var(--accent-bright);}
  .cta-actions{display:flex;flex-wrap:wrap;gap:12px;}
  @media (max-width:560px){.cta-panel{border-radius:28px;}}

  /* ---------- liens du pied de page ---------- */
  .footer-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px;font-size:13px;}
  .footer-links a{color:var(--on-primary-muted);text-decoration:none;transition:color .4s var(--ease);}
  .footer-links a:focus-visible{color:var(--on-primary);}@media (hover:hover) and (pointer:fine){.footer-links a:hover{color:var(--on-primary);}}
  .footer-links .fl-title{color:var(--on-primary);font-weight:700;margin-right:4px;}

  /* ---------- accueil : grille de spécialités ---------- */
  .spec{background:var(--bg);}
  .spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:7px;}
  @media (max-width:960px){.spec-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.spec-grid{grid-template-columns:1fr;}}
  .spec-card{
    position:relative;display:flex;flex-direction:column;gap:10px;background:var(--card);border-radius:22px;padding:26px;
    text-decoration:none;color:inherit;
    box-shadow:inset 0 1px 0 #fff,0 0 0 6px var(--shell),0 0 0 7px var(--shell-edge),var(--shadow-soft);
    transition:transform .6s var(--ease),box-shadow .6s var(--ease);
  }
  .spec-card:focus-visible{transform:translateY(-4px);}@media (hover:hover) and (pointer:fine){.spec-card:hover{transform:translateY(-4px);}}
  .spec-card h3{font-size:19px;color:var(--fg);letter-spacing:-.025em;}
  .spec-card p{color:var(--fg-secondary);font-size:14.5px;flex:1;}
  .spec-card .more-link{
    display:inline-flex;align-items:center;gap:10px;margin-top:8px;font-size:13.5px;font-weight:700;color:var(--accent);
  }
  .spec-card .more-link .btn-ic{background:rgba(29,78,216,.1);width:30px;height:30px;}
  .spec-card:focus-visible .more-link .btn-ic{transform:translate(2px,-1px) scale(1.08);background:rgba(29,78,216,.18);}@media (hover:hover) and (pointer:fine){.spec-card:hover .more-link .btn-ic{transform:translate(2px,-1px) scale(1.08);background:rgba(29,78,216,.18);}}
  .spec-card .more-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.5;}

  /* ---------- accueil : engagements ---------- */
  .eng{background:var(--bg);padding-block:0 clamp(56px,7vw,88px);}
  .eng-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;padding:7px;}
  @media (max-width:860px){.eng-grid{grid-template-columns:1fr;}}
  .eng-item{
    background:var(--card);border-radius:22px;padding:26px;
    box-shadow:inset 0 1px 0 #fff,0 0 0 6px var(--shell),0 0 0 7px var(--shell-edge),var(--shadow-soft);
  }
  .eng-item[hidden]{display:none;}
  .eng-item .ic{
    width:40px;height:40px;border-radius:13px;background:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:18px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 18px -8px rgba(15,23,42,.6);
  }
  .eng-item .ic svg{width:20px;height:20px;fill:none;stroke:var(--accent-bright);stroke-width:1.9;}
  .eng-item h3{font-size:17px;color:var(--fg);margin-bottom:6px;letter-spacing:-.02em;}
  .eng-item p{color:var(--fg-secondary);font-size:14.5px;}
  .eng-item strong{color:var(--fg);}

  /* ---------- accueil : avis clients (affiché une fois renseigné) ---------- */
  .reviews{background:var(--muted);}
  .reviews[hidden]{display:none;}
  .review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;}
  @media (max-width:860px){.review-grid{grid-template-columns:1fr;}}
  .review{background:var(--card);border-radius:22px;padding:26px;box-shadow:0 0 0 1px rgba(15,23,42,.06),0 14px 28px -18px rgba(15,23,42,.3);}
  .review blockquote{margin:0 0 16px;color:var(--fg);font-size:15.5px;line-height:1.6;}
  .review .who{font-size:13px;font-weight:700;color:var(--fg-secondary);}

  /* ---------- blog : cartes ---------- */
  .posts{background:var(--bg);}
  .post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;padding:7px;}
  .post-grid.three{grid-template-columns:repeat(3,1fr);}
  @media (max-width:960px){.post-grid.three{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:700px){.post-grid,.post-grid.three{grid-template-columns:1fr;}}
  .post-card{
    display:flex;flex-direction:column;gap:12px;background:var(--card);border-radius:22px;padding:28px;text-decoration:none;color:inherit;
    box-shadow:inset 0 1px 0 #fff,0 0 0 6px var(--shell),0 0 0 7px var(--shell-edge),var(--shadow-soft);
    transition:transform .6s var(--ease);
  }
  .post-card:focus-visible{transform:translateY(-4px);}@media (hover:hover) and (pointer:fine){.post-card:hover{transform:translateY(-4px);}}
  .post-tag{
    align-self:flex-start;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
    padding:6px 11px;border-radius:9999px;background:rgba(29,78,216,.08);border:1px solid rgba(29,78,216,.2);
  }
  .post-card h3{font-size:20px;line-height:1.2;color:var(--fg);letter-spacing:-.03em;}
  .post-card p{color:var(--fg-secondary);font-size:14.5px;flex:1;}
  .post-card .more-link{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--accent);margin-top:4px;}
  .post-card .more-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.5;transition:transform .5s var(--ease);}
  .post-card:focus-visible .more-link svg{transform:translateX(4px);}@media (hover:hover) and (pointer:fine){.post-card:hover .more-link svg{transform:translateX(4px);}}
  .posts-foot{margin-top:34px;}

  /* ---------- blog : article ---------- */
  .article{background:var(--bg);padding-block:clamp(56px,7vw,96px);}
  .prose{max-width:68ch;margin-inline:auto;padding-inline:20px;}
  .prose h2{font-size:clamp(21px,2.8vw,27px);line-height:1.15;color:var(--fg);margin:44px 0 14px;letter-spacing:-.03em;}
  .prose h2:first-child{margin-top:0;}
  .prose p{color:var(--fg-secondary);font-size:16.5px;line-height:1.75;margin:0 0 6px;}
  .prose a{color:var(--accent);font-weight:700;text-underline-offset:3px;}
  .back-pill{
    display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-weight:700;font-size:13.5px;text-decoration:none;
    padding:9px 16px;border-radius:9999px;background:var(--card);margin-bottom:36px;
    box-shadow:0 0 0 1px rgba(15,23,42,.07),0 8px 18px -12px rgba(15,23,42,.25);
    transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  }
  .back-pill:focus-visible{transform:translateX(-3px);}@media (hover:hover) and (pointer:fine){.back-pill:hover{transform:translateX(-3px);}}

.how{background:var(--bg);padding-bottom:24px;}
.how p{max-width:68ch;color:var(--fg-secondary);margin:0 0 16px;}

  .badge[hidden]{display:none;}
  .badge-agrement{margin:18px 0 0;}

/* "Nous contacter" : lien souligné, les trois canaux apparaissent à côté */
.contact-pop{display:flex;align-items:center;flex-wrap:wrap;gap:12px 36px}
.contact-pop>.btn{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;gap:14px;padding:12px 0;cursor:pointer;
  color:#fff;font:600 clamp(17px,1.6vw,20px)/1 var(--font-sans);letter-spacing:-.015em}
.contact-pop>.btn::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--ice);transform-origin:left;transform:scaleX(.28);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.contact-pop>.btn:focus-visible::after,.contact-pop>.btn[aria-expanded="true"]::after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.contact-pop>.btn:hover::after{transform:scaleX(1)}}
.contact-pop>.btn:focus-visible{outline:2px solid var(--ice);outline-offset:6px}
.contact-pop .btn-ic.plus{display:inline-flex;color:var(--ice);transition:transform .4s cubic-bezier(.16,1,.3,1)}
.contact-pop .btn-ic.plus svg{width:22px;height:22px}
@media (hover:hover) and (pointer:fine){.contact-pop>.btn:hover .btn-ic.plus{transform:translateX(5px)}}
.contact-pop>.btn[aria-expanded="true"] .btn-ic.plus{transform:rotate(90deg)}
.contact-menu{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0;padding:0;list-style:none}
.contact-menu[hidden]{display:none}
.contact-menu a{position:relative;display:inline-block;padding:12px 0;color:var(--on-dark-mut);text-decoration:none;font-weight:600;font-size:16px;transition:color .25s}
.contact-menu a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.contact-menu a:focus-visible{color:#fff}@media (hover:hover) and (pointer:fine){.contact-menu a:hover{color:#fff}}
.contact-menu a:focus-visible::after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.contact-menu a:hover::after{transform:scaleX(1)}}
@media (prefers-reduced-motion:no-preference){
  .contact-menu:not([hidden]) li{animation:chip-in .5s cubic-bezier(.16,1,.3,1) both}
  .contact-menu:not([hidden]) li:nth-child(2){animation-delay:.07s}
  .contact-menu:not([hidden]) li:nth-child(3){animation-delay:.14s}
}
@keyframes chip-in{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}

/* Logo réactif : le losange (cristal de glace) suit le curseur, s'adapte à l'heure, givre au toucher */
.hero-mark path{transition:fill .6s,stroke .6s}
.hero-mark path:first-of-type{transform:translate(calc(var(--dx,0) * -.35px),calc(var(--dy,0) * -.35px))}
.hero-mark path:nth-of-type(2){transform:translate(calc(var(--dx,0) * 1px),calc(var(--dy,0) * 1px));filter:drop-shadow(0 0 calc(var(--glow,6) * 1px) color-mix(in srgb,var(--ice) 70%,transparent))}
.hero-mark .frost{fill:none;stroke:var(--ice);stroke-width:1.4;opacity:0;transform-box:fill-box;transform-origin:center;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  .hero-mark.is-breathing path:nth-of-type(2){animation:ice-breathe 5s ease-in-out infinite}
  .hero-mark .frost{animation:frost-ring 1.4s cubic-bezier(.16,1,.3,1) forwards}
}
@keyframes ice-breathe{50%{opacity:.82}}
@keyframes frost-ring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(7)}}

/* FAQ : liste à filets, sans ombre ; ouverture fluide */
.faq-item,.q-item,.faq-item[open],.q-item[open]{background:none;border-radius:0;box-shadow:none;overflow:visible}
.faq-item summary::after,.q-item summary::after{content:"+";transition:transform .35s var(--ease,cubic-bezier(.16,1,.3,1)),color .25s}
.faq-item[open] summary::after,.q-item[open] summary::after{content:"+";transform:rotate(45deg);color:var(--blue)}
.faq-item[open] summary,.q-item[open] summary{color:var(--blue)}
@media (prefers-reduced-motion:no-preference){
  .faq-item,.q-item{interpolate-size:allow-keywords}
  .faq-item::details-content,.q-item::details-content{height:0;overflow:clip;opacity:0;transition:height .4s cubic-bezier(.16,1,.3,1),opacity .3s,content-visibility .4s allow-discrete}
  .faq-item[open]::details-content,.q-item[open]::details-content{height:auto;opacity:1}
}
