/*
Theme Name: Art'yss
Theme URI: https://artyss.fr
Author: Art'yss
Description: Thème vitrine Art'yss — AMO et réalisation de travaux sur le Bassin d'Arcachon et Bordeaux Métropole. Pages services, pages communes, réalisations, conseils et formulaire de demande de devis.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: artyss
*/
:root{
  --indigo:#4A12A0; --blue:#1E3FB5; --teal:#1591C9; --sand:#8FD6F5;
  --bg:#FFFFFF; --surface:#FFFFFF; --ink:#1B1A2E; --muted:#5B5F78; --line:#DCE0EC;
  --water:#CFE9EC; --land:#E7EAF3;
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  box-sizing:border-box;
}
html,body{background:#FFFFFF;color-scheme:light}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0;letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:800}
h3{font-size:1.3rem;font-weight:700}
p{margin:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}
.skip-link:focus{position:fixed;top:10px;left:10px;z-index:100;background:var(--surface);padding:.6rem 1rem;width:auto;height:auto;clip:auto}
.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}
.section{padding-block:clamp(4rem,8vw,6.5rem)}
.section.alt{background:var(--surface);border-block:1px solid var(--line)}
.section.tight-top{padding-top:0}
.lead{color:var(--muted);max-width:62ch;margin-top:1rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;font:600 1rem/1 var(--body);padding:.95rem 1.4rem;border-radius:999px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.btn-primary{background:var(--indigo);color:#fff}
.btn-primary:hover{background:var(--blue);color:#fff}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:var(--bg)}
.btn-sand{background:var(--sand);color:#1B1A2E}

/* Header */
header.site{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
body.admin-bar header.site{top:32px}
@media (max-width:782px){body.admin-bar header.site{top:0}}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:72px}
.logo img{max-height:48px;width:auto}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink)}
.logo-mark{width:44px;height:auto;flex:none}
.logo-text{display:flex;flex-direction:column;gap:.2rem}
.wordmark{font:500 1.75rem/1 "Montserrat",var(--body);letter-spacing:-.01em}
.w-a{color:#2A2A36}.w-c{color:#1591C9}.w-p{color:#5B16A6}
footer.site .w-a{color:#E6E6EE}footer.site .w-c{color:#4DB6E8}footer.site .w-p{color:#A77BEA}
.logo small{display:block;font:500 .72rem/1.2 var(--body);color:var(--muted)}
nav.main>ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
nav.main>ul>li{position:relative}
nav.main>ul>li>a,nav.main>ul>li>button{display:block;padding:.6rem .8rem;font:500 .98rem var(--body);color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer;border-radius:8px}
nav.main>ul>li>a:hover,nav.main>ul>li>button:hover,nav.main>ul>li.current>a{background:var(--land)}
nav.main>ul>li.nav-rdv>a{border:1.5px solid var(--indigo);color:var(--indigo);font-weight:600}
nav.main>ul>li.nav-rdv>a:hover{background:var(--indigo);color:#fff}
.mega{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem;display:none;grid-template-columns:repeat(3,minmax(170px,1fr));gap:1.4rem;box-shadow:0 18px 40px -18px rgba(27,26,46,.35);width:max-content;max-width:min(680px,90vw)}
li.open>.mega{display:grid}
.mega h4{margin:0 0 .5rem;font:700 .9rem var(--display);color:var(--teal)}
.mega ul{list-style:none;margin:0;padding:0}
.mega a{display:block;padding:.25rem 0;color:var(--ink);text-decoration:none;font-size:.95rem}
.mega a:hover{color:var(--blue)}
.mega .all{grid-column:1/-1;border-top:1px solid var(--line);padding-top:.8rem;font-weight:600;color:var(--blue)}
.bar-cta{display:flex;gap:.6rem;align-items:center}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;color:var(--ink);cursor:pointer;font-size:1.1rem}
@media (max-width:1240px){
  nav.main{position:fixed;left:0;right:0;bottom:0;top:72px;background:var(--bg);overflow-y:auto;display:none;padding:1rem 1.25rem 3rem}
  nav.main.show{display:block}
  nav.main>ul{flex-direction:column}
  .mega{position:static;transform:none;box-shadow:none;border:0;padding:.5rem 0 1rem 1rem;grid-template-columns:1fr;width:auto}
  .menu-toggle{display:block}
  .bar-cta .btn{padding:.75rem 1rem;font-size:.92rem}
}

/* Hero accueil */
.hero{padding-block:clamp(3rem,6vw,5rem) clamp(3rem,6vw,4.5rem)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center}
.hero h1{font-size:clamp(2.6rem,6.2vw,5rem);font-weight:800;letter-spacing:-.025em;color:var(--indigo)}
.hero .lead{font-size:1.18rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:1.8rem;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.hero-facts div{font-size:.95rem;color:var(--muted);max-width:15ch}
.hero-facts strong{display:block;font:700 1.05rem var(--display);color:var(--ink)}
.map{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:1rem;position:relative;margin:0}
.map svg{display:block;width:100%}
.map figcaption{position:absolute;left:1.4rem;bottom:1.2rem;font-size:.85rem;color:var(--muted)}
.pin .pulse{transform-origin:center;transform-box:fill-box;animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.7}100%{transform:scale(2.4);opacity:0}}
.route{stroke-dasharray:6 7;animation:draw 1.8s ease-out both .3s}
@keyframes draw{from{stroke-dashoffset:200;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr}}

/* En-tête des pages internes */
.page-hero{padding-block:clamp(2.5rem,5vw,4rem) clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:800;letter-spacing:-.02em;color:var(--indigo);max-width:22ch}
.page-hero .lead{font-size:1.12rem}
.page-hero .hero-actions{margin-top:1.6rem}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:1.2rem}
.crumbs a{color:var(--muted)}
.jump{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.8rem}
.jump a{font-size:.9rem;padding:.4rem .9rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--surface)}
.jump a:hover{border-color:var(--blue)}

/* Métiers */
.trio{display:grid;grid-template-columns:repeat(2,1fr);margin-top:3rem;border-top:3px solid var(--indigo)}
.trio article{padding:2rem 1.8rem 2rem 0;border-right:1px solid var(--line)}
.trio article+article{padding-left:1.8rem}
.trio article:last-child{border-right:0}
.trio .tag{font:700 .95rem var(--display);color:var(--teal);margin-bottom:.8rem;display:block}
.trio p{color:var(--muted);margin-top:.7rem}
.trio ul{margin:1rem 0 0;padding-left:1.1rem}
.trio li{margin:.25rem 0}
@media (max-width:820px){.trio{grid-template-columns:1fr}.trio article,.trio article+article{padding:1.8rem 0;border-right:0;border-bottom:1px solid var(--line)}}

/* Étapes */
.band{background:linear-gradient(135deg,#3B0E86 0%,#1E3FB5 60%,#146FB0 100%);color:#fff}
.band h2{color:#fff}
.band .lead{color:#C9C5EC}
.steps{list-style:none;margin:3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;counter-reset:s}
.steps li{counter-increment:s;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.3)}
.steps li::before{content:counter(s);display:block;font:800 2.6rem/1 var(--display);color:var(--sand);margin-bottom:.8rem}
.steps h3{color:#fff;font-size:1.15rem}
.steps p{color:#C9C5EC;margin-top:.5rem;font-size:.98rem}
.also{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.6rem}
.also span{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.45rem 1rem;font-size:.92rem;color:#E6E3FA}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Onglets et cartes */
.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.2rem}
.tabs button{font:600 .95rem var(--body);padding:.6rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.panel{display:none;margin-top:1.8rem}
.panel.active{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.6rem}
.chip{display:block;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem;text-decoration:none;color:var(--ink)}
a.chip:hover{border-color:var(--blue)}
.chip strong,.chip h3{display:block;font:700 1.08rem var(--display)}
.chip span,.chip p{display:block;color:var(--muted);font-size:.95rem;margin-top:.35rem}
.group+.group{margin-top:3.5rem}
.group h2{font-size:clamp(1.5rem,2.6vw,2rem)}

/* Réalisations */
.real-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap}
.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.5rem}
.real-grid.feature{grid-template-columns:2fr 1fr 1fr}
.real-grid.feature .real:first-child{grid-row:span 2}
.real-grid.feature .real:first-child .ph{aspect-ratio:auto;flex:1;min-height:320px}
.real{background:var(--surface);border-radius:18px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.real .ph{aspect-ratio:4/3;background:var(--land);position:relative;display:grid;place-items:center;color:var(--muted);font-size:.85rem;overflow:hidden}
.real .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.real .ph svg{position:absolute;inset:0;width:100%;height:100%}
.real .ph em{position:relative;background:var(--surface);padding:.3rem .7rem;border-radius:999px;font-style:normal}
.real .txt{padding:1.1rem 1.3rem 1.3rem}
.real .cat{font-size:.85rem;color:var(--teal);font-weight:600}
.real h3{font-size:1.12rem;margin-top:.25rem}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.8rem}
.filters a{font:600 .92rem var(--body);padding:.55rem 1rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none}
.filters a.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
@media (max-width:860px){.real-grid,.real-grid.feature{grid-template-columns:1fr 1fr}.real-grid.feature .real:first-child{grid-column:span 2;grid-row:auto}}
@media (max-width:520px){.real-grid,.real-grid.feature{grid-template-columns:1fr}.real-grid.feature .real:first-child{grid-column:auto}}

/* Zone */
.zone{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start}
.zone-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.zone-cols h3{font-size:1.1rem;color:var(--indigo);margin-bottom:.6rem}
.zone-cols ul{list-style:none;margin:0;padding:0}
.zone-cols li{border-bottom:1px solid var(--line)}
.zone-cols li a{display:block;padding:.45rem 0;color:var(--ink);text-decoration:none}
.zone-cols li a:hover{color:var(--blue)}
@media (max-width:820px){.zone{grid-template-columns:1fr}}

/* Avis */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
.review{background:var(--surface);border:1px dashed var(--line);border-radius:16px;padding:1.5rem}
.stars{color:#E0A526;letter-spacing:.1em}
.review p{margin-top:.7rem;color:var(--muted)}
.review footer{margin-top:1rem;font-size:.9rem;font-weight:600}
@media (max-width:820px){.reviews{grid-template-columns:1fr}}

/* Articles */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;margin-top:2.4rem}
.post{border-top:3px solid var(--teal);padding-top:1.1rem}
.post .thumb{display:block;margin-bottom:1rem;border-radius:12px;overflow:hidden;aspect-ratio:16/10;background:var(--land)}
.post .thumb img{width:100%;height:100%;object-fit:cover}
.post .meta{font-size:.85rem;color:var(--muted)}
.post h3{font-size:1.2rem;margin:.4rem 0 .5rem}
.post h3 a{color:var(--ink);text-decoration:none}
.post p{color:var(--muted);font-size:.97rem}
.post .more{font-weight:600;display:inline-block;margin-top:.7rem}
@media (max-width:820px){.posts{grid-template-columns:1fr}}
.pagination{margin-top:3rem;display:flex;gap:.4rem;flex-wrap:wrap}
.pagination .page-numbers{padding:.5rem .9rem;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}
.pagination .current{background:var(--ink);color:var(--bg)}

/* Contenu éditeur */
.prose{max-width:72ch}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-top:2em}
.prose h3{margin-top:1.6em}
.prose img{border-radius:12px}
.prose ul,.prose ol{padding-left:1.3rem}
.prose blockquote{margin:1.5em 0;padding-left:1.2rem;border-left:3px solid var(--teal);color:var(--muted)}
.alignwide{width:min(1180px,100vw - 2.5rem);max-width:none}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:2rem}

/* FAQ */
.faq{max-width:820px;margin-top:2rem}
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{cursor:pointer;font:700 1.1rem var(--display);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:500;color:var(--teal);font-size:1.5rem;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{margin-top:.7rem;color:var(--muted);max-width:68ch}

/* Contact */
.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:3rem}
form.devis{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(1.3rem,3vw,2.2rem);display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
form.devis .full{grid-column:1/-1}
form.devis label{display:block;font-weight:600;font-size:.93rem;margin-bottom:.35rem}
form.devis input,form.devis select,form.devis textarea{width:100%;font:inherit;font-size:1rem;padding:.8rem .9rem;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
form.devis textarea{min-height:120px;resize:vertical}
form.devis .check{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--muted);font-weight:400}
form.devis .check input{width:auto;margin-top:.25rem}
.hp{position:absolute;left:-9999px}
.form-msg{padding:1rem;border-radius:12px;background:var(--water);margin-bottom:1rem}
.form-msg.err{background:#FBE3E3;color:#7A1F1F}
.contact-side p{color:var(--muted);margin-top:1rem}
.coords{margin-top:2rem;display:grid}
.coords div{padding:1rem 0;border-top:1px solid var(--line)}
.coords strong{display:block;font-family:var(--display)}
.coords a{color:var(--ink)}
@media (max-width:860px){.contact{grid-template-columns:1fr}form.devis{grid-template-columns:1fr}}

/* Bandeau CTA */
.cta-band{background:var(--teal);color:#fff;border-radius:24px;padding:clamp(2rem,4vw,3rem);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.cta-band h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);max-width:24ch}
.cta-band .btn{background:#fff;color:var(--indigo)}


/* Offre estimation */
.offer{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;border-radius:22px;padding:clamp(1.5rem,3vw,2.2rem);background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#5B16A6,#1E3FB5,#1591C9) border-box;border:2px solid transparent}
.offer .price{font:800 clamp(2.2rem,4vw,3rem)/1 var(--display);color:var(--indigo);white-space:nowrap}
.offer .price small{display:block;font:600 .85rem var(--body);color:var(--muted);margin-bottom:.35rem}
.offer .price span{font-size:.45em;font-weight:700;margin-left:.2rem}
.offer h2{font-size:clamp(1.4rem,2.4vw,1.8rem)}
.offer p{color:var(--muted);margin-top:.5rem;max-width:58ch}
@media (max-width:820px){.offer{grid-template-columns:1fr;gap:1.2rem}}

/* Domaines */
.domains{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;margin-top:2.4rem}
.domain{border-top:3px solid var(--teal);padding-top:1.1rem}
.domain h3 a{color:var(--indigo);text-decoration:none}
.domain ul{list-style:none;margin:.8rem 0 0;padding:0}
.domain li{padding:.35rem 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.97rem}
.domain .more{display:inline-block;margin-top:.9rem;font-weight:600;text-decoration:none}
.mega h4 a{color:inherit;text-decoration:none}
@media (max-width:980px){.domains{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.domains{grid-template-columns:1fr}}

/* Services */
.svcs{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.4rem}
.svc{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:12px;padding:1.3rem 1.4rem}
.svc h3{font-size:1.12rem;color:var(--indigo)}
.svc p{color:var(--muted);margin-top:.4rem;font-size:.97rem}
@media (max-width:900px){.svcs{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.svcs{grid-template-columns:1fr}}


/* Correctif en-tête : tout sur une ligne */
header.site .wrap{width:min(1400px,100% - 2.5rem)}
nav.main>ul>li>a,nav.main>ul>li>button{white-space:nowrap;padding:.55rem .6rem;font-size:.95rem}
.bar-cta .btn,.logo small{white-space:nowrap}
.hero h1{font-size:clamp(2.4rem,5vw,4.2rem)}


/* Mobile */
.mbar{display:none}
@media (max-width:760px){
  header.site{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}
  .bar{height:64px;gap:.75rem}
  nav.main{bottom:0;padding-bottom:6rem}
  .logo{gap:.5rem;min-width:0}
  .logo-mark{width:34px}
  .wordmark{font-size:1.4rem}
  .logo small{font-size:.66rem}
  .bar-cta .btn{display:none}
  .menu-toggle{font-size:1.3rem;padding:.45rem .7rem}
  nav.main{top:64px}
  .hero h1{font-size:clamp(2rem,9vw,2.6rem)}
  .hero .lead,.hero p.lead{font-size:1.05rem}
  .hero-actions .btn{width:100%;justify-content:center}
  .section{padding-block:3.2rem}
  .mbar{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:70;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px -10px rgba(27,26,46,.35)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.8rem .5rem;border-radius:999px;font:600 .98rem var(--body);text-decoration:none;white-space:nowrap}
  .mbar .call{border:2px solid var(--indigo);color:var(--indigo)}
  .mbar .est{background:var(--indigo);color:#fff}
  body{padding-bottom:78px}
}


/* Adresses du formulaire */
form.devis .addr-client{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem;padding:1rem 1.1rem;border:1px dashed var(--line);border-radius:14px;background:var(--bg)}
form.devis .addr-client[hidden]{display:none}
form.devis .addr-client .full{grid-column:1/-1}
form.devis .sub{grid-column:1/-1;font:700 1rem var(--display);color:var(--indigo);margin-top:.4rem}
@media (max-width:860px){form.devis .addr-client{grid-template-columns:1fr}}


/* Onglets mobiles */
.mtabs{display:none}
@media (max-width:760px){
  .mtabs{display:flex;gap:.45rem;overflow-x:auto;padding:.5rem .8rem .6rem;border-top:1px solid var(--line);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .mtabs::-webkit-scrollbar{display:none}
  .mtabs a{flex:none;padding:.45rem .9rem;border:1px solid var(--line);border-radius:999px;font:600 .9rem var(--body);color:var(--ink);text-decoration:none;white-space:nowrap;background:#fff}
  .mtabs a.on{background:var(--indigo);border-color:var(--indigo);color:#fff}
  .mtabs a.rdv{border-color:var(--indigo);color:var(--indigo)}
  nav.main{top:113px}
  html{scroll-padding-top:120px}
}


/* Barre mobile 3 actions + icône RDV + photo d'accueil + note Google */
.hdr-rdv{display:none}
@media (max-width:760px){
  .mbar{grid-template-columns:1fr 1.25fr 1fr;gap:.4rem;padding:.45rem .5rem calc(.45rem + env(safe-area-inset-bottom,0px))}
  .mbar a{flex-direction:column;gap:.15rem;padding:.45rem .3rem;border-radius:14px;font:600 .78rem/1.1 var(--body);border:0}
  .mbar a.call,.mbar a.rdv{color:var(--indigo);background:#F1EEFB;border:0}
  .mbar a.est{background:linear-gradient(135deg,#4A12A0,#1E3FB5);color:#fff}
  .mbar a.est b{font:800 .95rem/1 var(--display)}
  body{padding-bottom:72px}
  .hdr-rdv{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#F1EEFB;color:var(--indigo)}
}
.hero.has-photo{position:relative;background:linear-gradient(100deg,rgba(27,14,70,.86) 0%,rgba(30,40,120,.62) 55%,rgba(20,60,110,.25) 100%),var(--hero-img) center/cover no-repeat;color:#fff}
.hero.has-photo h1,.hero.has-photo .hero-facts strong{color:#fff}
.hero.has-photo .lead,.hero.has-photo .hero-facts div{color:#E4E2F5}
.hero.has-photo .hero-facts{border-top-color:rgba(255,255,255,.3)}
.hero.has-photo .btn-ghost{border-color:#fff;color:#fff}
.hero.has-photo .btn-ghost:hover{background:#fff;color:var(--indigo)}
@media (max-width:760px){.hero.has-photo{min-height:78vh;display:flex;align-items:flex-end}.hero.has-photo .map{display:none}}
.rating{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.6rem;padding:.6rem 1rem;border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 8px 24px -12px rgba(27,26,46,.4)}
.rating .g{font:800 1.3rem/1 var(--display);background:conic-gradient(#EA4335 0 25%,#FBBC05 0 50%,#34A853 0 75%,#4285F4 0);-webkit-background-clip:text;background-clip:text;color:transparent}
.rating strong{font:800 1.15rem var(--display)}
.rating .st{color:#E0A526;letter-spacing:.05em}
.rating small{color:var(--muted);font-size:.85rem}


/* Formulaire en étapes */
form.devis fieldset.step{border:0;margin:0;padding:0;min-width:0;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
form.devis fieldset.step[hidden]{display:none}
form.devis .wz-title{grid-column:1/-1;font:800 clamp(1.4rem,3vw,1.8rem)/1.1 var(--display);color:var(--ink);margin:0 0 .2rem}
form.devis .wz-head,form.devis .wz-bar,form.devis .wz-nav [data-next],form.devis .wz-nav [data-prev]{display:none}
form.devis .wz-nav{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-top:.4rem}
form.devis.wz-on .wz-head{display:flex;justify-content:space-between;grid-column:1/-1;font:600 .85rem var(--body);color:var(--muted)}
form.devis.wz-on .wz-bar{display:block;grid-column:1/-1;height:6px;border-radius:9px;background:var(--line);overflow:hidden;margin-top:-.5rem}
form.devis .wz-bar i{display:block;height:100%;width:25%;background:linear-gradient(90deg,#4A12A0,#1591C9);transition:width .3s}
form.devis.wz-on .wz-nav [data-next],form.devis.wz-on .wz-nav [data-prev]{display:inline-flex}
form.devis .tiles{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
form.devis .tile{position:relative;display:block;margin:0;font-weight:400}
form.devis .tile input{position:absolute;opacity:0;width:1px;height:1px}
form.devis .tile span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;min-height:132px;padding:1rem .6rem;border:1.5px solid var(--line);border-radius:16px;background:#fff;font:700 1rem/1.2 var(--display);color:var(--indigo);text-align:center;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
form.devis .tile svg{width:46px;height:46px;color:var(--teal)}
form.devis .tile span:hover{border-color:var(--blue)}
form.devis .tile input:checked+span{border-color:var(--indigo);background:#F1EEFB;box-shadow:0 0 0 3px rgba(74,18,160,.14)}
form.devis .tile input:focus-visible+span{outline:3px solid var(--teal);outline-offset:2px}
form.devis .tiles-sm .tile span{min-height:0;padding:.9rem .6rem;font-size:.95rem}
form.devis .q-only{display:none}
form.devis.is-question .q-only{display:inline}
@media (max-width:860px){form.devis fieldset.step{grid-template-columns:1fr}form.devis .tiles{grid-template-columns:1fr 1fr}}


@media (max-width:860px){.contact .contact-side{order:2}.contact>div:not(.contact-side),.contact form.devis{order:1}}

.hero-grid.solo{grid-template-columns:1fr}
.hero-grid.solo>div{max-width:760px}
/* Footer */
footer.site{background:var(--ink);color:var(--bg);padding-block:3.5rem 2rem;margin-top:0}
footer.site a{color:inherit;opacity:.8;text-decoration:none}
footer.site a:hover{opacity:1;text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.foot-grid h4{font:700 1rem var(--display);margin:0 0 .8rem}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.95rem}
.foot-bottom{margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.2);font-size:.85rem;opacity:.75;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.foot-bottom ul{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}

