/* Pages secondaires uniquement : palette héritée, sans recoloration des composants. */
body.vbt-secondary{--sec-line:#dce4ec;--sec-accent:#2585da}
body.vbt-secondary .vbt-page-hero{gap:0!important;position:relative;margin-bottom:30px!important}
body.vbt-secondary .vbt-page-hero-copy{padding-top:96px;padding-bottom:80px;position:relative}
body.vbt-secondary .vbt-page-hero-copy:before{content:"";position:absolute;left:40px;top:38px;width:74px;height:3px;background:var(--sec-accent)}
body.vbt-secondary .vbt-page-hero-copy h1{font-size:clamp(42px,4.7vw,74px)!important;line-height:1.1!important;letter-spacing:-.05em;overflow:visible}
body.vbt-secondary .vbt-page-hero-copy>p{line-height:1.8}
body.vbt-secondary .vbt-page-hero-visual{position:relative;overflow:hidden;align-self:stretch;margin:32px 32px 32px 0;box-shadow:0 20px 42px #0b193012}
body.vbt-secondary .vbt-page-hero-visual img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease,clip-path .8s ease}
body.vbt-secondary .vbt-page-hero-visual:after{content:"";position:absolute;inset:16px;border:1px solid #ffffff70;pointer-events:none}
body.vbt-secondary .vbt-page-hero-actions .wp-element-button{border-radius:3px;min-height:56px;padding-left:26px;padding-right:26px}
body.vbt-secondary .vbt-process-feature-inner{gap:56px}
body.vbt-secondary .vbt-process-feature-copy h2,body.vbt-secondary .vbt-service-attention-copy h2{font-size:clamp(32px,3.4vw,48px);line-height:1.12;letter-spacing:-.04em}
body.vbt-secondary .vbt-audience-grid{gap:12px;background:none}
body.vbt-secondary .vbt-audience-grid li{border-left:3px solid var(--sec-accent);min-height:76px;padding:24px}
body.vbt-secondary .vbt-process-steps{position:relative;gap:22px;border:0}
body.vbt-secondary .vbt-process-step{position:relative;min-width:0;border:1px solid var(--sec-line);box-shadow:0 12px 25px #0b193007;padding:34px;min-height:275px;transition:box-shadow .3s,transform .3s}
body.vbt-secondary .vbt-process-step .vbt-card-number{font-size:40px;letter-spacing:-.06em;margin:0}
body.vbt-secondary .vbt-process-step h2{font-size:27px;line-height:1.2;margin-top:36px}
body.vbt-secondary .vbt-service-attention-inner{grid-template-columns:.8fr 1.2fr;gap:72px}
body.vbt-secondary .vbt-service-attention-copy{align-self:start;position:sticky;top:120px}
body.vbt-secondary .vbt-service-points{gap:24px}
body.vbt-secondary .vbt-service-point{position:relative;border-top:0;border-left:1px solid var(--sec-line);padding:36px 26px 28px;min-width:0;box-shadow:0 12px 30px #0b193006;transition:transform .3s,box-shadow .3s}
body.vbt-secondary .vbt-service-point:before{content:"";position:absolute;top:0;left:0;width:48px;height:3px;background:var(--sec-accent)}
body.vbt-secondary .vbt-service-point h3{font-size:24px;line-height:1.2;letter-spacing:-.025em}
body.vbt-secondary .vbt-service-point p{line-height:1.75}
body.vbt-secondary .vbt-contact-copy h2{font-size:clamp(34px,3.6vw,54px);line-height:1.12}
body.vbt-secondary .vbt-title .vbt-word-inner{animation:none!important;transform:none!important;opacity:1!important}
body.vbt-secondary .vbt-title.vbt-pending{opacity:0;transform:translateY(12px)}
body.vbt-secondary .vbt-reveal.vbt-entering{animation:sec-lift .55s cubic-bezier(.22,1,.36,1) both!important}
body.vbt-secondary .vbt-shutter,body.vbt-secondary .vbt-scroll-track{display:none}
body.vbt-secondary .wp-element-button:after{display:none}
body.vbt-secondary .wp-element-button:hover{transform:translateY(-2px)}
/* Installation : parcours vertical à jalons. */
body.sec-installation .vbt-process-steps{display:grid;grid-template-columns:1fr;gap:0;border-left:1px solid var(--sec-line);margin-left:26px}
body.sec-installation .vbt-process-step{display:grid;grid-template-columns:90px minmax(0,1fr);column-gap:34px;min-height:0;border:0;border-bottom:1px solid var(--sec-line);box-shadow:none;padding:36px 28px 36px 42px;margin-left:0!important}
body.sec-installation .vbt-process-step:before{content:"";position:absolute;left:-7px;top:44px;width:12px;height:12px;border-radius:50%;background:var(--sec-accent);box-shadow:0 0 0 7px #2585da0a}
body.sec-installation .vbt-process-step .vbt-card-number{grid-row:1/3;align-self:start;font-size:58px}
body.sec-installation .vbt-process-step h2{grid-column:2;margin:0 0 10px}
body.sec-installation .vbt-process-step>p:last-child{grid-column:2;margin:0;max-width:720px}
body.sec-installation .vbt-page-hero-visual{margin-top:64px;margin-bottom:0;border-radius:0 0 0 52px}
/* Maintenance : entrée inversée, suivi échelonné. */
body.sec-maintenance .vbt-page-hero-visual{order:-1;margin:32px 0 32px 32px;border-radius:0 42px 0 0}
body.sec-maintenance .vbt-page-hero-copy{padding-left:64px}
body.sec-maintenance .vbt-process-step:nth-child(2){margin-top:28px!important}
body.sec-maintenance .vbt-process-step:nth-child(3){margin-top:56px!important}
body.sec-maintenance .vbt-process-steps:before{content:"";position:absolute;left:34px;right:34px;top:0;height:1px;background:var(--sec-line)}
body.sec-maintenance .vbt-audience-grid{grid-template-columns:1fr}
/* Dépannage : actions immédiates, diagnostic compact, tarifs encadrés. */
body.sec-depannage .vbt-page-hero-copy{padding-top:80px;padding-bottom:64px}
body.sec-depannage .vbt-page-hero-actions{padding:22px 0;border-top:1px solid var(--sec-line);border-bottom:1px solid var(--sec-line)}
body.sec-depannage .vbt-process-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--sec-line)}
body.sec-depannage .vbt-process-step{box-shadow:none;border:0;border-right:1px solid var(--sec-line);padding-top:30px}
body.sec-depannage .vbt-pricing-head{grid-template-columns:1fr;gap:36px;align-items:center}
body.sec-depannage .vbt-pricing-copy{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px 64px}
body.sec-depannage .vbt-pricing-copy .vbt-section-eyebrow{grid-column:1/-1}
body.sec-depannage .vbt-pricing-copy h2{grid-column:1;grid-row:2/4;max-width:580px}
body.sec-depannage .vbt-pricing-copy>p:not(.vbt-section-eyebrow){grid-column:2;margin:0!important}
body.sec-depannage .vbt-pricing-downloads{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;padding:24px;border:1px solid #ffffff30}
body.sec-depannage .vbt-pricing-downloads .wp-block-button{flex:1 1 260px;margin:0!important}
body.sec-depannage .vbt-pricing-downloads>p{width:100%;margin:0!important}
body.sec-depannage .vbt-price-cards{gap:24px;background:none}
body.sec-depannage .vbt-price-card{border:1px solid #ffffff28;padding:32px}
/* Prestations : familles de compositions adaptées au contenu. */
body.sec-detail .vbt-page-hero-visual{min-height:480px}
body.sec-portes-de-garage .vbt-service-points,body.sec-rideaux-metalliques .vbt-service-points,body.sec-controle-acces .vbt-service-points{grid-template-columns:1fr;gap:0}
body.sec-portes-de-garage .vbt-service-point,body.sec-rideaux-metalliques .vbt-service-point,body.sec-controle-acces .vbt-service-point{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:24px;box-shadow:none;border-left:0;border-bottom:1px solid var(--sec-line);padding:28px 0}
body.sec-portes-de-garage .vbt-service-point p,body.sec-rideaux-metalliques .vbt-service-point p,body.sec-controle-acces .vbt-service-point p{margin:0}
body.sec-portes-de-garage .vbt-service-point:before,body.sec-rideaux-metalliques .vbt-service-point:before,body.sec-controle-acces .vbt-service-point:before{width:30px;height:2px}
body.sec-portes-industrielles .vbt-page-hero-visual,body.sec-barrieres-levantes .vbt-page-hero-visual,body.sec-interphonie .vbt-page-hero-visual{order:-1;margin:32px 0 32px 32px}
body.sec-portes-industrielles .vbt-service-attention-inner{grid-template-columns:1fr}
body.sec-portes-industrielles .vbt-service-attention-copy{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px;position:static}
body.sec-portes-industrielles .vbt-service-attention-copy .vbt-section-eyebrow{grid-column:1/-1}
body.sec-portes-industrielles .vbt-service-attention-copy>p:last-child{margin:0}
body.sec-portes-industrielles .vbt-service-points{grid-template-columns:repeat(3,minmax(0,1fr))}
body.sec-portes-pietonnes-automatiques .vbt-service-point:nth-child(even),body.sec-interphonie .vbt-service-point:nth-child(even){margin-top:30px!important}
body.sec-barrieres-levantes .vbt-service-points{gap:0;border-top:1px solid var(--sec-line)}
body.sec-barrieres-levantes .vbt-service-point{border-left:0;border-bottom:1px solid var(--sec-line);box-shadow:none}
body.sec-portails-automatises .vbt-page-hero-visual{border-radius:0 0 0 52px}
body.sec-controle-acces .vbt-service-attention-copy{padding-left:26px;border-left:3px solid var(--sec-accent)}
body.sec-rideaux-metalliques .vbt-page-hero-visual{margin-top:64px;margin-bottom:64px}
/* Contact : coordonnées fixes et formulaire rythmé sans modifier les champs. */
body.vbt-secondary .vbt-contact-page .entry-content>section>div{gap:56px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:first-child{position:sticky;top:124px;border-left:3px solid var(--sec-accent);padding-left:30px}
body.vbt-secondary .vbt-contact-page h1{font-size:clamp(40px,4vw,64px);line-height:1.1;letter-spacing:-.045em}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:first-child>div{display:flex;flex-direction:column;gap:14px}
body.vbt-secondary .vbt-contact-page a[href^="tel:"]{display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:4px}
body.vbt-secondary .vbt-contact-page a[href^="tel:"] span{font-size:11px;text-transform:uppercase;letter-spacing:.1em}
body.vbt-secondary .vbt-contact-page a[href^="tel:"] strong{font-size:27px;white-space:nowrap}
body.vbt-secondary .vbt-contact-page a[href^="mailto:"]{padding:20px 24px;border-radius:4px;overflow-wrap:anywhere}
body.vbt-secondary .vbt-contact-page form{position:relative;border-radius:4px;box-shadow:0 20px 50px #0b19300d;padding:38px 40px}
body.vbt-secondary .vbt-contact-page form:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#2585da 0 88px,#dce4ec 88px)}
body.vbt-secondary .vbt-contact-page form h2{font-size:32px;line-height:1.15;letter-spacing:-.03em}
body.vbt-secondary .vbt-contact-page form>div:not(:first-child){padding-top:22px;border-top:1px solid #dce4ec}
body.vbt-secondary .vbt-contact-page form label{line-height:1.6}
body.vbt-secondary .vbt-contact-page form :is(input:not([type=checkbox]),select,textarea){font:inherit;font-size:16px;min-height:54px;transition:border-color .2s,box-shadow .2s}
body.vbt-secondary .vbt-contact-page form :is(input:not([type=checkbox]),select,textarea):focus{outline:2px solid #2585da;outline-offset:3px;box-shadow:0 0 0 6px #2585da0a}
body.vbt-secondary .vbt-contact-page form input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
body.vbt-secondary .vbt-contact-page form button{min-height:56px;border-radius:4px;transition:transform .25s,box-shadow .25s}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:last-child{border-top:1px solid var(--sec-line);padding-top:28px}
/* Réalisations : alternance photo / légende au lieu de cartes uniformes. */
body.sec-realisations .vbt-realisations-hero{position:relative;overflow:hidden;padding-top:90px;padding-bottom:90px}
body.sec-realisations .vbt-realisations-hero:after{content:"";position:absolute;right:8%;top:25%;width:110px;height:110px;border-top:1px solid #ffffff55;border-right:1px solid #ffffff55;pointer-events:none}
body.sec-realisations .vbt-realisations-hero h1{font-size:clamp(44px,5vw,76px);letter-spacing:-.045em;line-height:1.1}
body.sec-realisations .vbt-realisations-grid{display:flex!important;flex-direction:column;gap:34px!important;padding-top:64px;padding-bottom:64px}
body.sec-realisations .vbt-realisations-grid>.wp-block-column{width:100%;flex-basis:auto!important}
body.sec-realisations .vbt-realisation-card{display:grid;grid-template-columns:1.3fr 1fr;column-gap:44px;align-content:center;align-items:center;padding:0!important;border:1px solid #dce4ec;overflow:hidden;box-shadow:0 16px 30px #0b193008}
body.sec-realisations .vbt-realisation-card figure{grid-column:1;grid-row:1/8;margin:0!important;height:360px}
body.sec-realisations .vbt-realisation-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body.sec-realisations .vbt-realisation-card>:not(figure){grid-column:2;margin-right:36px!important}
body.sec-realisations .vbt-realisations-grid>.wp-block-column:nth-child(even) .vbt-realisation-card{grid-template-columns:1fr 1.3fr}
body.sec-realisations .vbt-realisations-grid>.wp-block-column:nth-child(even) figure{grid-column:2}
body.sec-realisations .vbt-realisations-grid>.wp-block-column:nth-child(even) .vbt-realisation-card>:not(figure){grid-column:1;margin-left:36px!important;margin-right:0!important}
/* Documents : sommaire latéral dérivé des titres existants. */
body.sec-document main section>div{max-width:1360px!important}
body.sec-document .sec-document-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:50px;max-width:1360px;margin:auto}
body.sec-realisations main>.entry-content{max-width:none!important;width:100%}
body.sec-realisations .vbt-realisations-grid{width:100%;max-width:1360px!important;margin-left:auto!important;margin-right:auto!important}
body.sec-realisations .vbt-realisations-grid>.wp-block-column{max-width:none!important}
body.sec-realisations .vbt-realisation-card{max-width:none!important;width:100%;border-radius:4px!important}
body.sec-document .sec-document-nav{align-self:start;position:sticky;top:110px;border-left:2px solid #dce4ec;padding-left:18px;display:flex;flex-direction:column;gap:14px;font-size:12px;line-height:1.5}
body.sec-document .sec-document-nav a{color:inherit;text-decoration:none;border-bottom:1px solid #dce4ec;padding-bottom:12px}
body.sec-document :is(h2,h3)[id]{scroll-margin-top:116px}
body.sec-document .sec-document-shell>article{min-width:0;max-width:100%}
@media(prefers-reduced-motion:no-preference){body.vbt-secondary .sec-observed.sec-wait{opacity:0;transform:translateY(14px)}body.vbt-secondary .sec-observed.sec-shown{animation:sec-lift .6s cubic-bezier(.22,1,.36,1) both}body.vbt-secondary .vbt-page-hero-visual.sec-observed{opacity:1;transform:none}body.vbt-secondary .vbt-page-hero-visual.sec-wait img{clip-path:inset(0 0 0 12%);transform:scale(1.045)}body.vbt-secondary .vbt-page-hero-visual.sec-shown{animation:none}body.vbt-secondary .vbt-page-hero-visual.sec-shown img{clip-path:inset(0);transform:scale(1)}}
@keyframes sec-lift{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:781px){body.sec-depannage .vbt-pricing-copy{grid-template-columns:1fr;gap:20px}body.sec-depannage .vbt-pricing-copy h2{grid-column:1;grid-row:auto}body.sec-depannage .vbt-pricing-copy>p:not(.vbt-section-eyebrow){grid-column:1}body.sec-depannage .vbt-pricing-downloads{flex-direction:column}body.sec-depannage .vbt-pricing-downloads .wp-block-button{flex:auto}}
@media(prefers-reduced-motion:no-preference){body.sec-detail .vbt-service-point.vbt-entering{animation-delay:var(--vbt-delay,0ms)!important}body.sec-installation .vbt-process-step.vbt-entering:before{animation:sec-jalon .65s ease-out both}@keyframes sec-jalon{from{transform:scale(.4);opacity:.3}to{transform:scale(1);opacity:1}}}
@media(hover:hover) and (pointer:fine){body.vbt-secondary .vbt-process-step:hover,body.vbt-secondary .vbt-service-point:hover{transform:translateY(-3px);box-shadow:0 15px 30px #0b19300c}body.vbt-secondary .vbt-page-hero-visual:hover img,body.sec-realisations .vbt-realisation-card:hover img{transform:scale(1.025)}body.vbt-secondary .vbt-contact-page form button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0b19301a}body.sec-document .sec-document-nav a:hover{color:#2585da}}
@media(max-width:1023px){body.vbt-secondary .vbt-service-attention-inner{gap:38px}body.sec-portes-industrielles .vbt-service-points{grid-template-columns:repeat(2,minmax(0,1fr))}body.vbt-secondary .vbt-contact-page .entry-content>section>div{grid-template-columns:1fr;gap:36px}body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:first-child{position:static}body.sec-document .sec-document-shell{grid-template-columns:1fr}body.sec-document .sec-document-nav{position:static;display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:781px){body.vbt-secondary .vbt-page-hero-copy{padding:64px 20px 42px}body.vbt-secondary .vbt-page-hero-copy:before{left:20px;top:26px;width:48px}body.vbt-secondary .vbt-page-hero-copy h1{font-size:40px!important}body.vbt-secondary .vbt-page-hero-visual,body.sec-maintenance .vbt-page-hero-visual,body.sec-detail .vbt-page-hero-visual{order:initial;margin:0 20px 24px;min-height:300px;border-radius:0 0 0 26px}body.vbt-secondary .vbt-process-steps,body.sec-depannage .vbt-process-steps{grid-template-columns:1fr}body.vbt-secondary .vbt-process-step{min-height:0;padding:26px}body.sec-maintenance .vbt-process-step:nth-child(n){margin-top:0!important}body.vbt-secondary .vbt-service-attention-copy{position:static}body.vbt-secondary .vbt-service-attention-inner,body.sec-portes-industrielles .vbt-service-attention-copy{grid-template-columns:1fr}body.sec-portes-pietonnes-automatiques .vbt-service-point:nth-child(n),body.sec-interphonie .vbt-service-point:nth-child(n){margin-top:0!important}body.sec-installation .vbt-process-steps{margin-left:10px}body.sec-installation .vbt-process-step{grid-template-columns:44px minmax(0,1fr);gap:20px;padding:26px 18px}body.sec-installation .vbt-process-step .vbt-card-number{font-size:36px}body.sec-installation .vbt-process-step h2{font-size:24px}body.vbt-secondary .vbt-service-points,body.sec-portes-industrielles .vbt-service-points{grid-template-columns:1fr}body.sec-portes-de-garage .vbt-service-point,body.sec-rideaux-metalliques .vbt-service-point,body.sec-controle-acces .vbt-service-point{grid-template-columns:1fr;gap:14px}body.sec-depannage .vbt-pricing-head{gap:30px}body.sec-depannage .vbt-pricing-downloads{padding:20px}body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:first-child{padding-left:18px}body.vbt-secondary .vbt-contact-page h1{font-size:38px}body.vbt-secondary .vbt-contact-page form{padding:28px 22px}body.vbt-secondary .vbt-contact-page form h2{font-size:28px}body.vbt-secondary .vbt-contact-page a[href^="tel:"] strong{font-size:25px}body.sec-realisations .vbt-realisation-card,body.sec-realisations .vbt-realisations-grid>.wp-block-column:nth-child(even) .vbt-realisation-card{display:flex;flex-direction:column;align-items:stretch;gap:0}body.sec-realisations .vbt-realisation-card figure{width:100%;height:260px}body.sec-realisations .vbt-realisation-card>:not(figure),body.sec-realisations .vbt-realisations-grid>.wp-block-column:nth-child(even) .vbt-realisation-card>:not(figure){margin-left:24px!important;margin-right:24px!important}body.sec-realisations .vbt-realisation-card>:last-child{margin-bottom:28px!important}body.sec-document .sec-document-shell{gap:26px}body.sec-document .sec-document-nav{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){body.vbt-secondary *,body.vbt-secondary *:before,body.vbt-secondary *:after{animation:none!important;transition:none!important}body.vbt-secondary .sec-observed,body.vbt-secondary .sec-wait,body.vbt-secondary .vbt-reveal,body.vbt-secondary .vbt-title{opacity:1!important;transform:none!important}body.vbt-secondary .vbt-page-hero-visual img{clip-path:none!important;transform:none!important}}
/* Contact : zones explicites et flux naturel, y compris aux ruptures et au zoom.
   La règle d'origine du formulaire (colonne 2, deux rangées) ne doit jamais
   recréer une colonne implicite lorsque la page passe en une seule colonne. */
body.vbt-secondary .vbt-contact-page .entry-content>section>div{
 display:grid!important;
 grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;
 grid-template-areas:"intro form" "location form";
 grid-template-rows:auto auto!important;
 align-items:start;align-content:start;
 height:auto!important;min-height:0!important;max-height:none!important;
 overflow:visible;
}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:first-child{
 grid-area:intro!important;position:static!important;inset:auto!important;
 min-width:0;min-height:0!important;height:auto!important;max-height:none!important;
 transform:none!important;z-index:auto;align-self:start;
}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>form{
 grid-area:form!important;position:relative;inset:auto;
 min-width:0;min-height:0!important;height:auto!important;max-height:none!important;
 align-self:start;transform:none!important;z-index:auto;
}
body.vbt-secondary .vbt-contact-page .entry-content>section>div>div:last-child{
 grid-area:location!important;position:static!important;inset:auto!important;
 min-width:0;min-height:0!important;height:auto!important;max-height:none!important;
 transform:none!important;z-index:auto;align-self:start;
}
body.vbt-secondary .vbt-contact-page form>div{min-width:0;height:auto;min-height:0}
body.vbt-secondary .vbt-contact-page form :is(label,input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
body.vbt-secondary .vbt-contact-page .entry-content>section{height:auto;min-height:0;overflow:visible}
@media(max-width:1023px){
 body.vbt-secondary .vbt-contact-page .entry-content>section>div{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:"intro" "form" "location";
  grid-template-rows:auto auto auto!important;
 }
}
