/* ViteSite 2.5.0 — finition production, formulaire, offres et contacts rapides. */
:root{
  --vs-ink:#352b38;
  --vs-plum:#70566d;
  --vs-plum-deep:#493949;
  --vs-rose:#ad7779;
  --vs-rose-soft:#f3e4e1;
  --vs-sage:#8fa297;
  --vs-sage-soft:#e8efea;
  --vs-champagne:#c6a878;
  --vs-cream:#fbf7f1;
  --vs-paper:#fffdfa;
  --vs-mist:#f4eeea;
  --vs-text:#413941;
  --vs-muted:#6d626c;
  --vs-line:#ddd2cf;
  --vs-shadow:0 22px 64px rgba(65,46,62,.10)
}

html,body{max-width:100%}
body{background:linear-gradient(180deg,#fbf7f1 0,#f7f1ed 48%,#fbf7f1 100%)!important;color:var(--vs-text)!important}
.topbar{display:none!important}
.header.premiumHeader.v12Header{contain:layout style;isolation:isolate}
main{min-width:0}
section[id]{scroll-margin-top:108px}

/* Accueil : souplesse, finesse et quatre offres. */
.vsHero{position:relative;background:radial-gradient(circle at 15% 18%,rgba(143,162,151,.22),transparent 27rem),radial-gradient(circle at 88% 20%,rgba(198,168,120,.22),transparent 24rem),linear-gradient(145deg,#fffdfa,#f4e8e5)!important}
.vsHero:after,.vsDomainSearch:after,.vsSection:after{content:"";position:absolute;z-index:0;width:280px;height:110px;border:1px solid rgba(112,86,109,.14);border-radius:50%;pointer-events:none;transform:rotate(-12deg)}
.vsHero:after{right:-90px;bottom:24px}.vsDomainSearch:after{left:-110px;bottom:20px}.vsSection:after{right:-130px;top:60px}
.vsHero>.wrap,.vsDomainSearch>.wrap,.vsSection>.wrap{position:relative;z-index:1}
.vsFounderProof{padding:0 0 30px;background:transparent}
.vsFounderProof>div{display:flex;gap:22px;align-items:center;justify-content:space-between;padding:20px 26px;border:1px solid var(--vs-line);border-radius:18px 42px 18px 18px;background:rgba(255,253,250,.88);box-shadow:0 12px 34px rgba(65,46,62,.055)}
.vsFounderProof p{max-width:900px;margin:0;color:var(--vs-muted)}
.vsFounderProof strong{color:var(--vs-ink)}
.vsFounderProof a{flex:0 0 auto;color:var(--vs-plum);font-weight:800;text-underline-offset:5px}
.vsHomeDomainForm input:focus,.vsHomeDomainForm input:focus-visible{
  outline:none!important;
  border-color:var(--vs-plum)!important;
  box-shadow:0 0 0 4px rgba(112,86,109,.18)!important
}
.vsPlans{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;gap:16px!important}
.vsPlan{display:flex!important;min-width:0;flex-direction:column;border:1px solid var(--vs-line)!important;border-radius:24px 54px 24px 24px!important;background:rgba(255,253,250,.96)!important;box-shadow:0 16px 42px rgba(65,46,62,.065)!important}
.vsPlan.recommended{background:linear-gradient(145deg,#fffdfa,#f1e2df)!important}
.vsPlan.custom{background:linear-gradient(145deg,#fffdfa,#e8efea)!important}
.vsPlan p,.vsPlan li{color:var(--vs-text)!important}
.vsPlan ul{margin-bottom:24px!important}
.vsPlan li{position:relative;padding-left:1.65rem!important}
.vsPlan li:before{content:"✓"!important;position:absolute!important;left:0!important;top:0!important;color:#876b43!important;font-weight:950!important}
.vsPlan .button{width:100%;margin-top:auto!important}
.vsPlanPrice{display:flex!important;align-items:baseline!important;gap:4px!important;flex-wrap:wrap}
.vsPlanPrice>small{flex:0 0 100%;color:var(--vs-muted)!important;font-size:.72rem!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.08em}

/* Galerie et modèles : cartes réellement centrées. */
.gallery-grid,.projectGrid,.demoCards{margin-right:auto!important;margin-left:auto!important;justify-content:center!important}
.gallery-card{min-width:0!important;margin-inline:auto!important}
.gallery-card>a:first-child{display:block!important;width:100%!important}
.gallery-card img{display:block!important;width:100%!important;margin-inline:auto!important;object-position:center!important}
.gallery-card .gallery-logo{width:auto!important;max-width:150px!important;height:52px!important;margin:0 auto 14px!important;object-fit:contain!important}

/* Formulaire de commande : aucun élément ne sort de l'écran. */
.vsOrder,.vsWizard,.vsOrderStep,.vsOrderPlans,.vsExtraChoice,.vsOptions,.vsOptions>details,.vsOptions>details>div{min-width:0!important;max-width:100%!important}
.vsWizard{overflow:visible!important}
.vsOrderPlans{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.vsOrderPlan,.vsExtraChoice>label,.vsOption{box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important}
.vsOrderPlan{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;grid-template-areas:"radio copy" ". price"!important;column-gap:16px!important;row-gap:12px!important;align-items:start!important;padding:21px!important}
.vsOrderPlan>input{grid-area:radio!important;width:21px!important;height:21px!important;margin:4px 0 0!important}
.vsOrderPlan>span{grid-area:copy!important;min-width:0!important;padding-left:3px!important}
.vsOrderPlan>span b{display:block;color:var(--vs-ink)!important}
.vsOrderPlan>span small{display:block;color:var(--vs-muted)!important;line-height:1.45!important}
.vsOrderPlan>strong{grid-area:price!important;justify-self:start!important;color:var(--vs-plum-deep)!important;white-space:normal!important;text-align:left!important}
.vsOrderPlan.isCustom{background:linear-gradient(145deg,#fffdfa,var(--vs-sage-soft))!important}
.vsExtraChoice{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.vsExtraChoice>label{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:16px!important;align-items:start!important;padding:21px!important}
.vsExtraChoice input{width:21px!important;height:21px!important;margin:4px 0 0!important}
.vsExtraChoice span{min-width:0!important;padding-left:3px!important}
.vsExtraChoice b,.vsExtraChoice small{display:block!important;overflow-wrap:anywhere!important}
.vsExtraChoice b{color:var(--vs-ink)!important}.vsExtraChoice small{color:var(--vs-muted)!important}
.vsOptions>details{overflow:hidden!important;margin:12px 0!important;border:1px solid var(--vs-line)!important;border-radius:18px 38px 18px 18px!important;background:var(--vs-paper)!important}
.vsOptions>details>summary{padding:18px 20px!important;color:var(--vs-ink)!important;font-weight:850!important;cursor:pointer!important}
.vsOptions>details>div{display:grid!important;gap:10px!important;padding:0 14px 14px!important}
.vsOption{display:grid!important;grid-template-columns:22px minmax(0,1fr) auto!important;gap:13px!important;align-items:start!important;padding:16px!important;border-radius:15px 30px 15px 15px!important}
.vsOption>input{width:19px!important;height:19px!important;margin:3px 0 0!important}
.vsOption>span{min-width:0!important}.vsOption b,.vsOption small{display:block!important;overflow-wrap:anywhere!important}.vsOption b{color:var(--vs-ink)!important}.vsOption small{color:var(--vs-muted)!important}.vsOption>strong{color:var(--vs-plum-deep)!important;white-space:nowrap!important}
.vsOption.conditional{grid-template-columns:minmax(0,1fr) auto!important}
.vsOption.conditional>span,.vsOption.conditional>strong{min-width:0!important}
.vsOption.conditional b,.vsOption.conditional small{overflow-wrap:normal!important;word-break:normal!important}
.vsSocialConsent,.vsConsent{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;gap:13px!important;align-items:start!important;color:var(--vs-text)!important}
.vsSocialConsent input,.vsConsent input{width:20px!important;height:20px!important;margin-top:3px!important}
.vsUploadDestination{padding:12px 14px;border-left:3px solid var(--vs-sage);border-radius:0 12px 12px 0;background:var(--vs-sage-soft);color:var(--vs-text)!important}
.vsOrderActions{position:static!important;bottom:auto!important;z-index:auto!important;margin-top:20px!important;border:1px solid var(--vs-line)!important;border-radius:18px 38px 18px 18px!important;background:#fffdfa!important;box-shadow:0 12px 34px rgba(65,46,62,.07)!important}

/* Boutons flottants téléphone et WhatsApp. */
.vsFloatingContacts{position:fixed;z-index:145;inset:0;display:block;pointer-events:none}
.vsFloatingContact{display:grid;width:57px;height:57px;place-items:center;border:1px solid rgba(53,43,56,.13);border-radius:50%;background:#fff;color:#111;box-shadow:0 11px 28px rgba(53,43,56,.19),inset 0 1px 0 rgba(255,255,255,.95);transition:transform .18s ease,box-shadow .18s ease}
.vsFloatingContact{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));pointer-events:auto}
.vsFloatingPhone{left:max(15px,env(safe-area-inset-left))}
.vsFloatingWhatsapp{right:max(15px,env(safe-area-inset-right))}
.vsFloatingContact:hover,.vsFloatingContact:focus-visible{transform:translateY(-2px);box-shadow:0 15px 34px rgba(53,43,56,.24),inset 0 1px 0 #fff}
.vsFloatingPhone svg{fill:#111}.vsFloatingWhatsapp img{filter:none!important}
.mobileActions{display:none!important}

/* Expérience et finitions. */
.vsExperience{background:linear-gradient(145deg,#fffdfa,var(--vs-sage-soft))!important}
.v12Footer{padding-bottom:82px!important}
.v12Footer .footerBottom{padding-top:22px!important;padding-bottom:30px!important;border-top:1px solid rgba(255,255,255,.15)!important}

@media(max-width:1180px){
  .vsPlans{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:780px){
  section[id]{scroll-margin-top:94px}
  .vsFounderProof>div{display:grid;gap:10px;padding:18px 20px}
  .vsOrderPlans,.vsExtraChoice{grid-template-columns:1fr!important}
  .vsOption{grid-template-columns:22px minmax(0,1fr)!important}
  .vsOption>strong{grid-column:2!important;white-space:normal!important}
  .vsOption.conditional{grid-template-columns:minmax(0,1fr)!important}
  .vsOption.conditional>span,.vsOption.conditional>strong{grid-column:1!important;min-width:0!important}
  .vsOption.conditional b,.vsOption.conditional small{overflow-wrap:normal!important;word-break:normal!important}
  .vsOrderActions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:14px!important}
  .vsOrderActions>*{grid-column:1!important;width:100%!important}
  .vsRunningTotal{order:-1!important;text-align:left!important}
  .vsFloatingContact{bottom:max(14px,env(safe-area-inset-bottom));width:53px;height:53px}
  .vsFloatingPhone{left:max(12px,env(safe-area-inset-left))}
  .vsFloatingWhatsapp{right:max(12px,env(safe-area-inset-right))}
}

/* ViteSite 2.6.2 — panneau mobile monté hors du header pour Safari iOS. */
.vsMobileMenuPanel[hidden]{display:none!important}

@media(max-width:1080px){
  body>.vsMobileMenuPanel:not([hidden]){
    position:fixed!important;
    z-index:2000!important;
    top:82px!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    display:grid!important;
    width:100%!important;
    height:calc(100dvh - 82px)!important;
    min-height:calc(100dvh - 82px)!important;
    max-width:none!important;
    max-height:none!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-content:start!important;
    gap:0!important;
    margin:0!important;
    padding:16px 18px calc(32px + env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    border:0!important;
    border-top:1px solid var(--vs-line)!important;
    border-radius:0!important;
    background:#fffdfa!important;
    color:var(--vs-ink)!important;
    box-shadow:0 22px 55px rgba(53,43,56,.18)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    touch-action:pan-y!important
  }
  body>.vsMobileMenuPanel .menuGroup{
    display:grid!important;
    min-width:0!important;
    align-content:start!important;
    gap:4px!important;
    padding:10px!important
  }
  body>.vsMobileMenuPanel .menuGroup strong{
    display:block!important;
    margin:0 0 4px!important;
    padding:2px 8px 8px!important;
    border-bottom:1px solid var(--vs-line)!important;
    color:var(--vs-plum)!important;
    font-size:.72rem!important;
    font-weight:900!important;
    letter-spacing:.1em!important;
    text-transform:uppercase!important
  }
  body>.vsMobileMenuPanel .menuGroup a{
    display:flex!important;
    width:100%!important;
    min-height:46px!important;
    align-items:center!important;
    padding:11px 10px!important;
    border-bottom:1px solid rgba(73,58,75,.09)!important;
    color:var(--vs-ink)!important;
    font-size:1rem!important;
    font-weight:750!important;
    line-height:1.35!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important
  }
  body>.vsMobileMenuPanel .menuGroup a.menuPrimary{
    border:0!important;
    border-radius:12px!important;
    background:var(--vs-rose-soft)!important;
    color:var(--vs-plum-deep)!important
  }
  body>.vsMobileMenuPanel .menuContact{
    grid-column:1/-1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important
  }
  body>.vsMobileMenuPanel .menuContact strong{grid-column:1/-1!important}
}

@media(max-width:780px){
  body>.vsMobileMenuPanel:not([hidden]){
    grid-template-columns:1fr!important;
    padding:12px 14px calc(28px + env(safe-area-inset-bottom))!important
  }
  body>.vsMobileMenuPanel .menuGroup,
  body>.vsMobileMenuPanel .menuContact{
    grid-column:auto!important;
    grid-template-columns:1fr!important;
    padding:8px 4px!important
  }
  body>.vsMobileMenuPanel .menuContact strong{grid-column:auto!important}
}

@media(max-width:560px){
  .vsPlans{grid-template-columns:1fr!important}
  .vsOrderPlan,.vsExtraChoice>label{padding:18px 15px!important;column-gap:14px!important}
  .vsOptions>details>summary{padding:16px!important}
  .vsOptions>details>div{padding:0 9px 9px!important}
  .vsOption{padding:14px 12px!important}
}

@media print{
  .vsFloatingContacts{display:none!important}
}

/* ViteSite 2.6.3 — tiroir mobile élégant et calage fiable des ancres. */
#offres{scroll-margin-top:92px!important}
.vsMenuBackdrop[hidden]{display:none!important}

@media(max-width:1080px){
  body>.vsMenuBackdrop:not([hidden]){
    position:fixed!important;
    z-index:1989!important;
    inset:82px 0 0!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:rgba(51,39,52,.18)!important;
    -webkit-backdrop-filter:blur(2px)!important;
    backdrop-filter:blur(2px)!important;
    cursor:pointer!important
  }
  body>.vsMobileMenuPanel:not([hidden]){
    top:82px!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    display:block!important;
    width:min(370px,86vw)!important;
    height:calc(100dvh - 82px)!important;
    min-height:0!important;
    padding:20px 20px calc(30px + env(safe-area-inset-bottom))!important;
    border:0!important;
    border-left:1px solid rgba(100,73,91,.16)!important;
    border-radius:0!important;
    background:rgba(255,253,249,.98)!important;
    box-shadow:-22px 0 60px rgba(53,43,56,.16)!important;
    -webkit-backdrop-filter:blur(20px)!important;
    backdrop-filter:blur(20px)!important
  }
  body>.vsMobileMenuPanel .menuGroup,
  body>.vsMobileMenuPanel .menuContact{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:12px 0 16px!important;
    border-bottom:1px solid rgba(100,73,91,.13)!important
  }
  body>.vsMobileMenuPanel .menuGroup:last-child{
    border-bottom:0!important
  }
  body>.vsMobileMenuPanel .menuGroup strong,
  body>.vsMobileMenuPanel .menuContact strong{
    grid-column:auto!important;
    margin:0 0 7px!important;
    padding:0 10px 8px!important;
    border:0!important;
    color:#79566f!important;
    font-family:var(--vs-sans)!important;
    font-size:.66rem!important;
    font-weight:700!important;
    letter-spacing:.16em!important;
    text-transform:uppercase!important
  }
  body>.vsMobileMenuPanel .menuGroup a{
    display:flex!important;
    min-height:43px!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:9px 10px!important;
    border:0!important;
    border-radius:11px!important;
    color:#342a35!important;
    font-family:var(--vs-sans)!important;
    font-size:.98rem!important;
    font-weight:520!important;
    letter-spacing:-.01em!important;
    line-height:1.3!important;
    transition:background-color .18s ease,color .18s ease!important
  }
  body>.vsMobileMenuPanel .menuGroup a:not(.menuPrimary)::after{
    content:"›"!important;
    color:#b89aa9!important;
    font-family:Georgia,serif!important;
    font-size:1.25rem!important;
    font-weight:400!important;
    line-height:1!important
  }
  body>.vsMobileMenuPanel .menuGroup a:hover,
  body>.vsMobileMenuPanel .menuGroup a:focus-visible{
    background:#f6eeeb!important;
    color:#5f4056!important;
    outline:0!important
  }
  body>.vsMobileMenuPanel .menuGroup a.menuPrimary{
    min-height:48px!important;
    justify-content:center!important;
    margin:5px 0 4px!important;
    border:1px solid rgba(113,78,101,.14)!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#ead8d4,#f2e6e2)!important;
    color:#54384d!important;
    box-shadow:0 9px 22px rgba(92,62,82,.09)!important;
    font-weight:650!important
  }
  body.vsMenuOpen{overflow:hidden!important}
}

@media(max-width:560px){
  #offres{scroll-margin-top:86px!important}
  body>.vsMobileMenuPanel:not([hidden]){
    width:min(350px,88vw)!important;
    padding-inline:18px!important
  }
}

@media(prefers-reduced-motion:reduce){
  body>.vsMobileMenuPanel .menuGroup a{transition:none!important}
}

/* La photo de la méthode doit rester entièrement visible sur tous les écrans. */
.infoHeroMedia img[src$="/images/process-collaboration.webp"]{
  object-fit:contain!important;
  object-position:center!important;
  background:#fffdfa!important
}

/* ViteSite 2.6.0 — correctif mobile, contrastes, menu et contacts. */
.button,.button.coral,.button.compact,.homeDomainOrder,.vsHomeDomainForm button,.vsDomainForm button,.contactForm button{
  background:linear-gradient(135deg,#493949,#80565e)!important;
  color:#fff!important
}
.vsHeroActions .button.glass{
  border:1px solid var(--vs-line)!important;
  background:#fff!important;
  color:var(--vs-ink)!important;
  box-shadow:0 10px 26px rgba(65,46,62,.08)!important
}
.vsBrowserBody small,.vsBrowserBody strong,.vsBrowserBody span{position:relative;z-index:1;color:#fff!important}
.vsBrowserBody small{opacity:.92!important}.vsBrowserBody span{color:#f1eaf0!important}
.vsAboutBrand{display:grid!important;place-items:center!important;padding:clamp(28px,5vw,58px)!important;background:radial-gradient(circle at 78% 18%,rgba(143,162,151,.24),transparent 38%),linear-gradient(145deg,#fffdfa,#f2e5e2)!important}
.vsAboutBrand img{width:min(100%,520px)!important;height:auto!important;object-fit:contain!important;border-radius:0!important}
.pageFaq details{overflow:hidden!important}.pageFaq details p{max-width:100%!important;overflow-wrap:anywhere!important}

.vsHomeDomainForm>div{overflow:hidden!important;border:1px solid #cfc3cb!important;border-radius:16px!important;background:#fff!important}
.vsHomeDomainForm input{border:0!important;border-radius:0!important;box-shadow:none!important}
.vsHomeDomainForm button{min-width:130px!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:#fff!important}

.vsPlan,.vsPlan.recommended,.vsPlan.custom{color:var(--vs-text)!important}
.vsPlan h3,.vsPlan.recommended h3,.vsPlan.custom h3,.vsPlanPrice,.vsPlan.recommended .vsPlanPrice,.vsPlan.custom .vsPlanPrice,.vsPlanPrice b,.vsPlanPrice sup{color:var(--vs-ink)!important}
.vsPlan.recommended .button{border-color:transparent!important;background:linear-gradient(135deg,#493949,#80565e)!important;color:#fff!important;box-shadow:0 12px 30px rgba(83,52,71,.18)!important}
.vsPlan .button.ghost{border-color:var(--vs-line)!important;background:#fff!important;color:var(--vs-ink)!important}

.vsFloatingContacts{display:block!important}
.vsFloatingContact,.vsFloatingContact:visited{
  display:grid!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;
  padding:0!important;place-items:center!important;border:1px solid rgba(53,43,56,.14)!important;border-radius:50%!important;
  background:#fff!important;color:#111!important;box-shadow:0 12px 30px rgba(53,43,56,.22),inset 0 1px 0 #fff!important
}
.vsFloatingContact svg,.vsFloatingContact img{display:block!important;width:28px!important;height:28px!important;object-fit:contain!important}
.vsFloatingWhatsapp img{filter:grayscale(1) brightness(0)!important}

@media(max-width:1080px){
  .mobileMenu.v12Menu:not([open])>nav{display:none!important}
  .mobileMenu.v12Menu[open]>nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-content:start!important;z-index:160!important}
  .mobileMenu.v12Menu nav,.mobileMenu.v12Menu nav *{visibility:visible!important;opacity:1!important}
  .mobileMenu .menuGroup{display:grid!important;align-content:start!important;gap:4px!important;padding:12px!important}
  .mobileMenu .menuGroup strong{display:block!important;margin-bottom:4px!important;color:var(--vs-plum)!important;font-size:.72rem!important}
  .mobileMenu .menuGroup a{display:block!important;min-height:44px!important;padding:11px 10px!important;border-bottom:1px solid rgba(73,58,75,.09)!important;color:var(--vs-ink)!important;font-size:1rem!important;font-weight:700!important;line-height:1.35!important}
  .mobileMenu .menuGroup a.menuPrimary{border-radius:12px!important;background:var(--vs-rose-soft)!important;color:var(--vs-plum-deep)!important}
  .mobileMenu .menuContact{grid-column:1/-1!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mobileMenu .menuContact strong{grid-column:1/-1!important}
}

@media(max-width:780px){
  .mobileMenu.v12Menu[open]>nav,.vsHome .mobileMenu.v12Menu[open]>nav{
    position:fixed!important;top:82px!important;right:0!important;bottom:0!important;left:0!important;
    display:grid!important;width:100%!important;max-width:none!important;max-height:calc(100dvh - 82px)!important;
    grid-template-columns:1fr!important;gap:0!important;padding:12px 14px calc(28px + env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;overflow-y:auto!important;border:0!important;border-top:1px solid var(--vs-line)!important;
    border-radius:0!important;background:#fffdfa!important;color:var(--vs-ink)!important;box-shadow:0 22px 55px rgba(53,43,56,.18)!important
  }
  .mobileMenu .menuGroup,.mobileMenu .menuContact{grid-column:auto!important;grid-template-columns:1fr!important;padding:8px 4px!important}
  .mobileMenu .menuContact strong{grid-column:auto!important}
  .vsHomeDomainForm>div{display:grid!important;grid-template-columns:1fr!important;overflow:visible!important;border:0!important;background:transparent!important}
  .vsHomeDomainForm input{height:56px!important;border:1px solid #cfc3cb!important;border-radius:14px 14px 0 0!important;background:#fff!important}
  .vsHomeDomainForm button{width:100%!important;min-height:56px!important;border-radius:0 0 14px 14px!important}
  .vsFloatingContact,.vsFloatingContact:visited{width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important}
  .tariffsHero>div:first-child{min-width:0!important;padding:27px 22px 30px!important}
  .tariffsHero h1{max-width:100%!important;font-size:clamp(2.65rem,11.2vw,3.55rem)!important;line-height:.98!important;overflow-wrap:normal!important;word-break:normal!important}
  .tariffsHero .lead{max-width:100%!important;font-size:1rem!important;line-height:1.58!important}
  .tariffsHero .actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  .tariffsHero .actions .button{width:100%!important}
}

/* ViteSite 2.6.0 — respiration des pages intérieures et FAQ. */
.pageFaq{
  padding:clamp(26px,4vw,48px)!important
}
.pageFaq details{
  padding:19px 2px!important
}
.pageFaq summary,.pageFaq details p{
  max-width:100%!important;
  overflow-wrap:anywhere!important
}

/* ViteSite 2.6.1 — menu mobile pleinement navigable. */
.header.premiumHeader.v12Header{
  contain:none!important;
  overflow:visible!important
}
.vsPriceMedallion .vsMedallionTime{
  color:inherit!important;
  font-family:var(--vs-sans)!important;
  font-size:1.35rem!important;
  font-weight:900!important;
  line-height:1!important
}
.vsPriceMedallion small{
  line-height:1.12!important
}

@media(max-width:1080px){
  .mobileMenu.v12Menu{
    position:static!important;
    z-index:1000!important
  }
  .mobileMenu.v12Menu>summary{
    position:relative!important;
    z-index:1002!important;
    touch-action:manipulation!important
  }
  .mobileMenu.v12Menu[open]>nav{
    z-index:1001!important;
    pointer-events:auto!important;
    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important
  }
  body.vsMenuOpen{
    overflow:hidden!important
  }
}

@media(max-width:780px){
  .mobileMenu.v12Menu[open]>nav,
  .vsHome .mobileMenu.v12Menu[open]>nav{
    top:82px!important;
    bottom:auto!important;
    height:calc(100dvh - 82px)!important;
    max-height:calc(100dvh - 82px)!important
  }
  .mobileMenu .menuGroup a{
    position:relative!important;
    z-index:1!important;
    width:100%!important;
    pointer-events:auto!important
  }
  .vsPriceMedallion small{
    font-size:.72rem!important;
    line-height:1.22!important
  }
  .vsPriceMedallion .vsMedallionTime{
    font-size:1.05rem!important
  }
}

@media(max-width:780px){
  .infoPage.wrap{
    width:calc(100% - 36px)!important
  }
  .breadcrumbs{
    padding-inline:3px!important;
    overflow-wrap:anywhere!important
  }
  .infoHero>div:first-child{
    min-width:0!important;
    padding:28px 22px 30px!important
  }
  .infoHero h1,.infoHero .lead{
    max-width:100%!important;
    overflow-wrap:break-word!important;
    word-break:normal!important
  }
  .infoHeroMedia{
    height:auto!important;
    min-height:0!important;
    padding:12px!important;
    background:#fffdfa!important
  }
  .infoHeroMedia img{
    width:100%!important;
    height:auto!important;
    object-fit:contain!important;
    object-position:center!important
  }
  .pageFaq{
    margin-block:44px!important;
    padding:26px 20px!important
  }
  .pageFaq details{
    padding:18px 0!important
  }
  .pageFaq summary{
    padding-right:24px!important;
    line-height:1.35!important
  }
  .pageFaq details p{
    margin:12px 0 2px!important;
    line-height:1.58!important
  }
}

/* ViteSite 2.7.0 — recette visuelle exhaustive des pages intérieures. */
.header.premiumHeader.v12Header{
  box-sizing:border-box!important;
  grid-template-columns:minmax(190px,250px) minmax(0,1fr) auto!important;
  gap:clamp(12px,1.45vw,24px)!important
}
.infoNav.v12DesktopNav{
  min-width:0!important;
  justify-content:flex-end!important
}
.headerActions{
  min-width:max-content!important
}
.headerActions .button.compact{
  white-space:nowrap!important
}
.infoHero:not(.v12InfoHero){
  box-sizing:border-box!important;
  grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr)!important;
  align-items:center!important;
  gap:clamp(28px,4vw,58px)!important;
  padding:clamp(34px,4.2vw,58px)!important
}
.infoHero:not(.v12InfoHero)>div:first-child{
  min-width:0!important;
  padding:0!important
}
.infoHero h1{
  max-width:100%!important;
  margin-top:.25rem!important;
  font-size:clamp(3rem,4.15vw,4.55rem)!important;
  line-height:1.01!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance
}
.infoHero .lead{
  max-width:44rem!important;
  font-size:clamp(1rem,1.22vw,1.16rem)!important;
  line-height:1.62!important
}
.infoHeroMedia{
  box-sizing:border-box!important;
  min-width:0!important;
  height:auto!important;
  overflow:visible!important;
  border-radius:24px 60px 24px 24px!important;
  background:#fffdfa!important
}
.infoHeroMedia img{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  border-radius:24px 60px 24px 24px!important
}
.simplePicture{
  box-sizing:border-box!important;
  padding:clamp(16px,2vw,26px)!important
}
.simplePicture img{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important
}
.simplePicture figcaption{
  margin:18px 4px 2px!important;
  color:#3f4b55!important;
  line-height:1.62!important
}
.emailContactPanel>div:first-child{
  min-width:0!important;
  align-self:start!important;
  padding:clamp(4px,1vw,12px)!important
}
.emailContactPanel>div:first-child h3{
  color:var(--vs-ink)!important;
  text-wrap:balance
}
.emailContactPanel>div:first-child>p:last-child{
  color:#514653!important;
  font-size:1rem!important;
  line-height:1.62!important
}
.emailContactPanel .kicker{
  color:#70566d!important
}

@media(max-width:1380px){
  .header.premiumHeader.v12Header{
    grid-template-columns:minmax(210px,1fr) auto 50px!important
  }
  .infoNav.v12DesktopNav{
    display:none!important
  }
  .mobileMenu.v12Menu{
    display:block!important;
    justify-self:end!important;
    margin:0!important
  }
  .headerActions{
    margin-left:auto!important
  }
}

@media(max-width:1024px){
  .infoHero:not(.v12InfoHero){
    grid-template-columns:minmax(0,1fr) minmax(280px,.86fr)!important;
    gap:clamp(24px,3vw,38px)!important;
    padding:clamp(30px,4vw,42px)!important
  }
  .infoHero h1{
    font-size:clamp(2.75rem,5vw,3.7rem)!important
  }
}

@media(max-width:900px){
  .infoHero:not(.v12InfoHero){
    grid-template-columns:1fr!important;
    gap:0!important;
    padding:0!important
  }
  .infoHero:not(.v12InfoHero)>div:first-child{
    padding:clamp(28px,6vw,44px)!important
  }
  .infoHero:not(.v12InfoHero)>.infoHeroMedia{
    margin:0 clamp(18px,5vw,36px) clamp(18px,5vw,36px)!important;
    padding:0!important
  }
  .infoHero h1{
    font-size:clamp(2.65rem,8.4vw,4.05rem)!important
  }
  .emailContactPanel{
    grid-template-columns:1fr!important
  }
}

@media(max-width:430px){
  .infoHero:not(.v12InfoHero)>div:first-child{
    padding:27px 20px 30px!important
  }
  .infoHero:not(.v12InfoHero)>.infoHeroMedia{
    margin:0 14px 14px!important
  }
  .infoHero h1{
    font-size:clamp(2.45rem,12.2vw,3.25rem)!important;
    line-height:1.02!important
  }
  .simplePicture{
    padding:11px!important
  }
  .simplePicture figcaption{
    margin:13px 3px 2px!important;
    font-size:.94rem!important
  }
  .emailContactPanel>div:first-child{
    padding:3px!important
  }
}

/* ViteSite 2.8.0 — médias métier et grille tarifs équilibrée. */
.tariffsPage .v12Plans{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:22px!important
}
.tariffsPage .v12Plans article,
.tariffsPage .v12Plans article.featured{
  min-width:0!important;
  height:100%!important;
  transform:none!important
}
@media(max-width:900px){
  .tariffsPage .v12Plans{
    grid-template-columns:1fr!important
  }
}

/* ViteSite 2.9.0 — portrait et parcours de Philippe Debref. */
.vsFounderHero.infoHero.v12InfoHero{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(310px,.72fr)!important;
  align-items:center!important;
  gap:clamp(30px,4vw,64px)!important;
  padding:clamp(34px,4.5vw,62px)!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 88% 10%,rgba(198,168,120,.24),transparent 19rem),
    radial-gradient(circle at 7% 88%,rgba(143,162,151,.16),transparent 22rem),
    linear-gradient(140deg,#fffdfa 8%,#f2e9e6 100%)!important
}
.vsFounderHeroCopy{max-width:720px!important;min-width:0!important}
.vsFounderHero h1{
  max-width:690px!important;
  font-size:clamp(3rem,4.6vw,4.7rem)!important;
  text-wrap:balance
}
.vsFounderHero .lead{max-width:680px!important}
.vsFounderFacts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:25px 0 0;
  padding:0
}
.vsFounderFacts li{
  min-width:0;
  padding:13px 14px;
  border:1px solid rgba(112,86,109,.17);
  border-radius:16px 34px 16px 16px;
  background:rgba(255,253,250,.78)
}
.vsFounderFacts strong{display:block;color:var(--vs-plum-deep);font-family:var(--vs-serif);font-size:1.55rem;line-height:1}
.vsFounderFacts span{display:block;margin-top:6px;color:var(--vs-muted);font-size:.76rem;font-weight:750;line-height:1.3}
.vsFounderPortrait.infoHeroMedia{
  position:relative;
  align-self:stretch;
  min-width:0;
  margin:0!important;
  padding:14px 14px 16px!important;
  overflow:visible!important;
  border:1px solid rgba(112,86,109,.19)!important;
  border-radius:34px 92px 34px 34px!important;
  background:rgba(255,253,250,.82)!important;
  box-shadow:0 24px 52px rgba(73,57,73,.16)!important
}
.vsFounderPortrait:before,
.vsFounderPortrait:after{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none
}
.vsFounderPortrait:before{
  width:122px;height:122px;right:-28px;top:-30px;
  border:1px solid rgba(198,168,120,.66);border-radius:50%;
  box-shadow:0 0 0 12px rgba(198,168,120,.10)
}
.vsFounderPortrait:after{
  width:90px;height:90px;left:-24px;bottom:54px;
  border-radius:26px 58px 26px 26px;
  background:rgba(143,162,151,.22);transform:rotate(12deg)
}
.vsFounderPortraitFrame{position:relative;z-index:1;overflow:hidden;border-radius:26px 78px 26px 26px;background:var(--vs-mist)}
.vsFounderPortrait .vsFounderPortraitFrame img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/5;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:0!important
}
.vsFounderPortrait figcaption{
  position:relative;z-index:2;display:grid;gap:2px;
  padding:15px 8px 2px;color:var(--vs-ink);line-height:1.35
}
.vsFounderPortrait figcaption strong{font-family:var(--vs-serif);font-size:1.35rem;font-weight:600}
.vsFounderPortrait figcaption span{color:var(--vs-muted);font-size:.78rem;font-weight:700}

.vsFounderManifesto{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:16px clamp(30px,5vw,70px);align-items:start}
.vsFounderManifesto .kicker{grid-column:1/-1;margin-bottom:0}
.vsFounderManifesto h2{margin:0!important;font-size:clamp(2.2rem,4.1vw,4rem)!important}
.vsFounderManifesto>p:not(.kicker){margin:4px 0 0;max-width:none!important;font-size:1.05rem;line-height:1.72;color:var(--vs-muted)}
.vsFounderManifesto blockquote{
  grid-column:1/-1;margin:12px 0 0;padding:24px clamp(20px,3vw,34px);
  border-left:4px solid var(--vs-champagne);border-radius:0 30px 30px 0;
  background:linear-gradient(100deg,var(--vs-sage-soft),rgba(255,253,250,.55));
  color:var(--vs-ink);font-family:var(--vs-serif);font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.42
}
.vsSectionHeading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.65fr);gap:18px 46px;align-items:end;margin-bottom:34px}
.vsSectionHeading .kicker{grid-column:1/-1;margin:0}
.vsSectionHeading h2{margin:0;font-size:clamp(2.25rem,4vw,3.8rem);line-height:1.04}
.vsSectionHeading>p{margin:0;color:var(--vs-muted);line-height:1.65}
.vsFounderTimelineSection{scroll-margin-top:112px}
.vsFounderTimeline{position:relative;display:grid;gap:0;margin:0;padding:0}
.vsFounderTimeline:before{content:"";position:absolute;top:19px;bottom:24px;left:94px;width:1px;background:linear-gradient(var(--vs-champagne),var(--vs-rose),var(--vs-sage))}
.vsFounderTimeline li{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:30px;padding:0 0 32px}
.vsFounderTimeline li:last-child{padding-bottom:0}
.vsTimelineYear{position:relative;z-index:1;align-self:start;width:max-content;max-width:96px;padding:9px 11px;border:1px solid rgba(112,86,109,.17);border-radius:999px;background:var(--vs-paper);color:var(--vs-plum-deep);font-size:.75rem;font-weight:900;letter-spacing:.035em;line-height:1.2;white-space:nowrap}
.vsFounderTimeline li>div:last-child{min-width:0;padding:2px 0 0}
.vsFounderTimeline h3{margin:0 0 8px;font-size:clamp(1.35rem,2vw,1.75rem);letter-spacing:-.025em}
.vsFounderTimeline p{max-width:880px;margin:0 0 8px;color:var(--vs-muted);line-height:1.7}
.vsFounderTimeline a{color:var(--vs-plum);font-weight:850;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.vsTimelineLinks{display:flex;flex-wrap:wrap;gap:10px 18px!important;margin-top:12px!important}
.vsFounderExpertise .v12SeoGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.vsFounderExpertise .v12SeoGrid article:nth-child(2),.vsFounderExpertise .v12SeoGrid article:nth-child(3){background:linear-gradient(145deg,#fffdfa,var(--vs-sage-soft))}
.vsFounderExpertise .v12SeoGrid h3{font-family:var(--vs-serif);font-weight:600;color:var(--vs-ink)}
.vsFounderVitesite{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(28px,5vw,68px);background:linear-gradient(140deg,#fffdfa,var(--vs-rose-soft))!important}
.vsFounderVitesite h2{margin:0!important;font-size:clamp(2.2rem,4vw,3.8rem)!important}
.vsFounderVitesite>div:last-child p{margin:0 0 15px;color:var(--vs-muted);line-height:1.72}
.vsFounderVitesite .actions{margin-bottom:0}

@media(max-width:900px){
  .vsFounderHero.infoHero.v12InfoHero{grid-template-columns:1fr!important;gap:28px!important;padding:clamp(26px,6vw,42px)!important}
  .vsFounderPortrait.infoHeroMedia{order:initial!important;width:min(100%,520px);justify-self:center;padding:10px 10px 14px!important}
  .vsFounderManifesto,.vsFounderVitesite{grid-template-columns:1fr}
  .vsSectionHeading{grid-template-columns:1fr}
  .vsFounderExpertise .v12SeoGrid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .vsFounderHero.infoHero.v12InfoHero{padding:24px 18px 22px!important;border-radius:22px 46px 22px 22px!important}
  .vsFounderHero h1{font-size:clamp(2.55rem,12.5vw,3.45rem)!important}
  .vsFounderFacts{grid-template-columns:1fr 1fr}
  .vsFounderFacts li:last-child{grid-column:1/-1}
  .vsFounderHero .actions,.vsFounderVitesite .actions{display:grid;grid-template-columns:1fr;width:100%}
  .vsFounderHero .actions .button,.vsFounderVitesite .actions .button{width:100%}
  .vsFounderPortrait.infoHeroMedia{margin-top:2px!important}
  .vsFounderManifesto blockquote{padding:20px 18px;font-size:1.2rem}
  .vsFounderTimeline:before{left:0}
  .vsFounderTimeline li{grid-template-columns:1fr;gap:12px;padding-left:20px;padding-bottom:31px}
  .vsTimelineYear{margin-left:-20px}
  .vsFounderTimeline h3{font-size:1.4rem}
  .vsFounderTimeline p{font-size:.96rem}
}

/* ViteSite 2.9.1 — réalisations : preuve visuelle ordinateur + mobile. */
.projectCard .projectVisual{
  position:relative;display:block;min-height:0;padding:0!important;overflow:hidden;
  aspect-ratio:16/10;background:#f3efec
}
.projectCard .projectVisual:after{
  content:"Vue mobile";position:absolute;right:16px;bottom:12px;z-index:3;
  padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.94);
  color:var(--vs-ink);font-size:.64rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:0 5px 18px rgba(53,43,57,.12)
}
.projectCard .projectVisual .projectDesktop{
  display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:contain!important;object-position:center top;
  background:#fff
}
.projectCard .projectVisual .projectMobile{
  position:absolute;right:18px;bottom:16px;z-index:2;display:block;width:auto;height:84%;
  aspect-ratio:auto;object-fit:contain!important;border:5px solid #fff;border-radius:20px;
  background:#fff;box-shadow:0 17px 36px rgba(28,22,31,.28)
}
.projectCard .projectCopy{display:block;min-height:100px;padding:20px!important;background:#fff!important;color:var(--vs-ink)!important}
.projectCard .projectCopy small{color:var(--vs-muted)!important}
.projectCard.featuredProject .projectVisual{aspect-ratio:21/8}
.projectCard.featuredProject .projectVisual .projectMobile{right:4%;height:89%}

@media(max-width:780px){
  .projectCard.featuredProject{min-height:0!important}
  .projectCard .projectVisual,.projectCard.featuredProject .projectVisual{aspect-ratio:4/5;background:#f5f2ef}
  .projectCard .projectVisual .projectDesktop{display:none}
  .projectCard .projectVisual .projectMobile{
    position:static;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;
    object-fit:cover!important;object-position:center top
  }
  .projectCard .projectVisual:after{right:12px;bottom:12px}
  .projectCard .projectCopy{min-height:0}
}

