@font-face {
  font-family:'Exo 2';
  src:url('assets/fonts/Exo2-Variable.woff2') format('woff2-variations'),url('assets/fonts/Exo2-Variable.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
}
@font-face {
  font-family:'Exo 2';
  src:url('assets/fonts/Exo2-Variable-Italic.woff2') format('woff2-variations'),url('assets/fonts/Exo2-Variable-Italic.woff2') format('woff2');
  font-weight:100 900;font-style:italic;font-display:swap;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue-dark:#0C3B6E;
  --blue-mid:#185FA5;
  --blue-light:#378ADD;
  --cyan:#1dbfff;
  --ink:#152235;
  --muted:#5d6d80;
  --white:#fff;
  --soft:#F5F8FC;
  --soft-2:#EAF2FB;
  --border:#DCE6F1;
  --max:1200px;
  --copy:760px;
  --gutter:clamp(22px,5vw,72px);
  --section:clamp(76px,8vw,108px);
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:'Exo 2',sans-serif;
  background:var(--white);
  color:var(--ink);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
p{color:var(--muted)}
strong{color:inherit}
::selection{background:var(--blue-mid);color:#fff}

/* ---------- Intro logo / animation TEST ---------- */
#splash{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;align-items:center;justify-content:center;transition:background .6s ease}
#splash.fade-bg{background:rgba(255,255,255,0);pointer-events:none}
#splash-logo{width:min(220px,42vw);height:min(220px,42vw);opacity:0;transform:scale(.85);transition:opacity .6s ease,transform .6s ease;will-change:transform,opacity}
#splash-logo.show{opacity:1;transform:scale(1)}
#splash-logo.fly{transition:transform .82s cubic-bezier(.22,.75,.2,1),opacity .18s ease .66s}
#splash-logo.land{opacity:0}
#nav-logo-img{opacity:0;transition:opacity .22s ease}
body.intro-done #nav-logo-img{opacity:1}

/* ---------- Navigation ---------- */
.main-nav{
  position:fixed;z-index:100;top:0;left:0;right:0;height:76px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--gutter);background:rgba(255,255,255,.95);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(220,230,241,.95);
}
.nav-logo{display:flex;align-items:center;text-decoration:none;min-width:190px}
.nav-logo img{height:40px;width:auto;max-width:210px}
.nav-logo.logo-fallback::after,.footer-logo.logo-fallback::after{content:'SYNECTECH';font-size:1.15rem;font-weight:800;color:var(--blue-dark);letter-spacing:.4px}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{position:relative;text-decoration:none;font-size:.86rem;font-weight:650;color:#526276;letter-spacing:.15px;padding:8px 0;transition:color .2s ease}
.nav-links a:hover,.nav-links a.active-page{color:var(--blue-dark)}
.nav-links a.active-page::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:2px;background:var(--blue-mid)}
.nav-phone{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0!important;border:1px solid var(--border);border-radius:8px;color:var(--blue-dark)!important}
.nav-phone::after{display:none!important}
.nav-contact{padding:9px 15px!important;border:1px solid rgba(24,95,165,.38);border-radius:7px;color:var(--blue-dark)!important}
.nav-contact.active-page{background:var(--blue-dark);color:#fff!important;border-color:var(--blue-dark)}
.nav-contact::after{display:none!important}
.mobile-menu-toggle,.mobile-menu{display:none}

/* ---------- Buttons / links ---------- */
.btn-primary,.btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 22px;border-radius:7px;text-decoration:none;font-size:.94rem;font-weight:700;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.btn-primary{background:var(--blue-mid);color:#fff;border:1px solid var(--blue-mid)}
.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-1px)}
.btn-secondary{background:#fff;color:var(--blue-dark);border:1px solid #b9cbe0}
.btn-secondary:hover{border-color:var(--blue-mid);color:var(--blue-mid)}
.text-link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:46px;padding:10px 17px;border:1px solid rgba(24,95,165,.30);border-radius:7px;
  background:var(--soft-2);color:var(--blue-dark);font-weight:750;text-decoration:none;font-size:.93rem;
  box-shadow:0 2px 8px rgba(12,59,110,.035);
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.text-link:hover{
  background:#fff;border-color:var(--blue-mid);color:var(--blue-mid);text-decoration:none;
  transform:translateY(-1px);box-shadow:0 7px 18px rgba(12,59,110,.08);
}

/* ---------- Shared ---------- */
.shell{width:100%;max-width:var(--max);margin:0 auto}
.copy{max-width:var(--copy)}
.section{padding:var(--section) var(--gutter)}
.section-soft{background:var(--soft)}
.section-blue{background:var(--blue-dark);color:#fff}
.section-head{max-width:760px;margin-bottom:46px}
.section-head.centered{margin-left:auto;margin-right:auto;text-align:center}
.eyebrow{display:block;margin-bottom:13px;color:var(--blue-mid);font-size:.73rem;font-weight:800;letter-spacing:1.35px;text-transform:uppercase}
.section-blue .eyebrow{color:rgba(255,255,255,.68)}
h1,h2,h3,h4{color:var(--blue-dark);line-height:1.17;text-wrap:balance}
h2{font-size:clamp(1.85rem,3vw,2.55rem);font-weight:800;letter-spacing:-.35px;margin-bottom:16px}
h3{font-size:1.2rem;font-weight:780}
.section-head p{font-size:1.04rem;line-height:1.72}
.section-blue h2,.section-blue h3{color:#fff}
.section-blue p{color:rgba(255,255,255,.78)}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}

/* ---------- Home hero — identité TEST, contenu épuré ---------- */
.hero{
  position:relative;isolation:isolate;overflow:hidden;min-height:720px;
  display:flex;align-items:center;padding:135px var(--gutter) 82px;
  background:linear-gradient(180deg,#fff 0%,var(--soft) 58%,var(--soft-2) 100%);
}
.hero-hexpattern{position:absolute;z-index:0;top:0;left:-5%;width:42%;height:100%;opacity:.48;pointer-events:none}
.hero-chevron{position:absolute;z-index:0;top:0;right:0;width:clamp(430px,44vw,720px);height:100%;pointer-events:none}
.hero-curve{position:absolute;z-index:0;bottom:0;left:0;width:58%;height:38%;opacity:.45;pointer-events:none}
.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto}
.hero-copy{width:min(100%,650px)}
.hero h1{font-size:clamp(2.55rem,4.5vw,3.75rem);font-weight:820;letter-spacing:-.75px;margin-bottom:22px}
.hero-highlight{background:linear-gradient(90deg,var(--blue-mid),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero-subtitle{display:flex;align-items:center;gap:12px;color:var(--blue-mid);font-size:1.17rem;font-weight:750;margin-bottom:24px}
.hero-subtitle-bar{width:28px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue-mid),var(--cyan));flex:0 0 auto}
.hero-subtitle em{color:var(--cyan);font-style:normal}
.hero .lead{max-width:590px;font-size:1.08rem;line-height:1.75;margin-bottom:31px;color:#526477}
.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}

/* ---------- Home intro / service preview ---------- */
.home-intro{padding:62px var(--gutter);border-bottom:1px solid var(--border)}
.home-intro .shell{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:70px;align-items:start}
.home-intro h2{font-size:clamp(1.55rem,2.3vw,2rem);margin:0}
.home-intro p{font-size:1.02rem;line-height:1.75}
.service-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}
.service-preview{padding:31px 30px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;min-height:190px}
.service-preview-icon{width:42px;height:42px;color:var(--blue-mid);margin-bottom:20px}
.service-preview-icon svg{width:100%;height:100%}
.service-preview h3{margin-bottom:10px;font-size:1.1rem}
.service-preview p{font-size:1rem;line-height:1.7}
.section-after{margin-top:34px}

/* ---------- Change provider teaser ---------- */
.problem-teaser .shell{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.72fr);gap:82px;align-items:center}
.problem-teaser .shell > .section-after{grid-column:1/-1}
.switch-list{list-style:none;display:grid;gap:15px;margin:26px 0 28px}
.switch-list li{position:relative;padding-left:22px;color:#43566e;font-size:.98rem}
.switch-list li::before{content:'';position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--blue-mid)}
.result-aside{border-left:1px solid #b7c9dc;padding:8px 0 8px 36px}
.result-aside strong{display:block;color:var(--blue-dark);font-size:1.28rem;line-height:1.35;margin-bottom:12px}
.result-aside p{font-size:1rem;line-height:1.78}

/* ---------- Differentiation preview ---------- */
.principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.principle{padding-top:20px;border-top:3px solid var(--blue-mid)}
.principle:nth-child(2){border-color:var(--cyan)}
.principle:nth-child(3){border-color:var(--blue-light)}
.principle h3{margin-bottom:10px}
.principle p{font-size:1rem;line-height:1.75}

/* ---------- Founder preview ---------- */
.founder-preview .shell{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:70px;align-items:center}
.founder-photo-wrap{aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,var(--soft-2),var(--soft));border:1px solid var(--border);position:relative}
.founder-photo-wrap::after{content:'GT';position:absolute;inset:0;display:none;place-items:center;color:var(--blue-mid);font-size:3rem;font-weight:800}
.founder-photo-wrap.photo-missing::after{display:grid}.founder-photo-wrap.photo-missing .founder-photo{display:none}
.founder-photo{width:100%;height:100%;object-fit:cover}
.founder-copy{max-width:710px}
.founder-name{color:var(--blue-mid);font-weight:800;margin:4px 0 20px}
.founder-copy p{font-size:1rem;line-height:1.75;margin-bottom:18px}

/* ---------- Home pricing teaser ---------- */
.pricing-teaser{background:#fff}
.pricing-teaser .shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.85fr);gap:82px;align-items:center}
.pricing-teaser .shell > .section-after{grid-column:1/-1}
.pricing-copy{max-width:700px}
.pricing-copy p{font-size:1.04rem;line-height:1.78;margin-bottom:16px}
.pricing-visual{border:1px solid var(--border);background:var(--soft);padding:32px;border-radius:10px}
.pricing-line{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:center}
.pricing-line span{display:flex;align-items:center;justify-content:center;min-height:64px;padding:10px;border:1px solid var(--border);background:#fff;color:var(--blue-dark);font-size:.92rem;font-weight:700;text-align:center}
.pricing-line strong{color:#8ea6be;font-size:1.25rem}
.pricing-equals{text-align:center;color:#8ea6be;font-size:1.45rem;font-weight:800;line-height:1;margin:14px 0}
.pricing-result{padding:21px 22px;background:var(--blue-dark);color:#fff;text-align:center;border-radius:7px}
.pricing-result span{display:block;font-size:1.12rem;font-weight:800}
.pricing-result small{display:block;margin-top:5px;color:rgba(255,255,255,.7);font-size:.78rem}

/* ---------- Final contact band ---------- */
.contact-band{padding:56px var(--gutter);background:var(--blue-dark)}
.contact-band .shell{display:flex;align-items:center;justify-content:space-between;gap:40px}
.contact-band h2{color:#fff;font-size:clamp(1.55rem,2.3vw,2rem);margin:0 0 7px}
.contact-band p{color:rgba(255,255,255,.72);font-size:.96rem}
.contact-band .btn-secondary{background:transparent;border-color:rgba(255,255,255,.45);color:#fff;white-space:nowrap}
.contact-band .btn-secondary:hover{border-color:#fff;color:#fff}

/* ---------- Subpage intro ---------- */
.page-hero{position:relative;overflow:hidden;padding:150px var(--gutter) 78px;background:linear-gradient(180deg,#fff 0%,var(--soft) 100%);border-bottom:1px solid var(--border)}
.page-hero::after{content:'';position:absolute;width:360px;height:360px;border:1px solid rgba(24,95,165,.08);border-radius:50%;right:-145px;top:40px}
.page-hero .shell{position:relative;z-index:1}
.page-hero-copy{max-width:780px}
.page-hero h1{font-size:clamp(2.35rem,4vw,3.45rem);margin-bottom:20px}
.page-hero p{max-width:700px;font-size:1.08rem;line-height:1.75}

/* ---------- Services detailed ---------- */
.service-detail{padding:var(--section) var(--gutter);border-bottom:1px solid var(--border)}
.service-detail:nth-of-type(even){background:var(--soft)}
.service-detail .shell{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);gap:78px;align-items:start}
.service-label{position:sticky;top:120px}
.service-number{display:block;color:#9ab0c8;font-size:.78rem;font-weight:800;letter-spacing:1.1px;margin-bottom:14px}
.service-label-icon{width:54px;height:54px;color:var(--blue-mid);margin-bottom:18px}
.service-label-icon svg{width:100%;height:100%}
.service-label h2{font-size:clamp(1.65rem,2.5vw,2.15rem);margin:0}
.service-body{max-width:780px}
.service-body .intro{font-size:1.22rem;line-height:1.78;color:#3f536b;margin-bottom:32px}
.service-body p{font-size:1.07rem;line-height:1.82;margin-bottom:24px}
.service-body h3{margin:38px 0 17px;font-size:1.18rem}
.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 30px;list-style:none}
.service-list li{position:relative;padding:11px 0 11px 22px;border-bottom:1px solid var(--border);color:#3d526a;font-size:1rem;line-height:1.55}
.service-list li::before{content:'';position:absolute;left:0;top:18px;width:6px;height:6px;border-radius:50%;background:var(--blue-mid)}
.service-note{margin-top:28px;padding:18px 20px;border-left:3px solid var(--blue-mid);background:var(--soft);font-size:.94rem;color:#40556d}
.section-soft .service-note,.service-detail:nth-of-type(even) .service-note{background:#fff}

/* ---------- About ---------- */
.about-founder{padding-bottom:calc(var(--section) - 10px)}
.about-founder .founder-copy p{font-size:1.03rem}
.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px}
.model-card{padding:28px 26px;border:1px solid var(--border);background:#fff;border-radius:10px}
.model-card h3{margin-bottom:10px;font-size:1.08rem}
.model-card p{font-size:1rem;line-height:1.75}
.model-visual{max-width:930px;margin:48px auto 0}
.model-line{padding:24px;border:1px solid var(--border);border-radius:10px;background:#fff}
.model-line+.model-line{margin-top:16px}
.model-line-head{display:flex;justify-content:space-between;gap:25px;align-items:baseline;margin-bottom:14px}
.model-line-head strong{color:var(--blue-dark)}
.model-line-head span{font-size:.82rem;color:var(--muted)}
.model-bar{display:flex;height:54px;overflow:hidden;border-radius:6px;border:1px solid var(--border);background:#fff}
.model-bar span{display:flex;align-items:center;justify-content:center;padding:6px;text-align:center;font-size:.72rem;font-weight:700}
.traditional-bar .bar-base{width:48%;background:var(--blue-dark);color:#fff}
.traditional-bar .bar-add{flex:1;background:var(--soft-2);color:var(--blue-dark);border-left:1px solid #fff}
.synectech-cost-saving{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(190px,.8fr);gap:12px}
.synectech-cost-block,.synectech-saving-block{min-height:68px;border-radius:6px;padding:10px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.synectech-cost-block{background:var(--blue-mid);color:#fff}
.synectech-saving-block{background:#e4f3e8;color:#215f38;border:1px solid #cbe7d3}
.synectech-cost-block span,.synectech-saving-block span{font-size:.78rem;font-weight:800}.synectech-cost-block small,.synectech-saving-block small{font-size:.66rem;margin-top:3px;opacity:.78}
.model-quote{max-width:930px;margin:24px auto 0;padding:28px 30px;background:var(--blue-dark);border-radius:10px;text-align:center}
.model-quote strong{display:block;color:#fff;font-size:clamp(1.2rem,2vw,1.55rem);margin-bottom:5px}
.model-quote span{color:var(--cyan);font-weight:700}

.guarantee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}
.guarantee-item{padding:30px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}
.guarantee-item h3{font-size:1.05rem;margin-bottom:9px}
.guarantee-item p{font-size:1rem;line-height:1.75}

.transition-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;margin-top:42px}
.transition-step{padding-top:22px;border-top:1px solid #9fb5cc}
.transition-step .num{display:block;color:var(--blue-mid);font-size:.78rem;font-weight:800;letter-spacing:1px;margin-bottom:12px}
.transition-step h3{margin-bottom:9px}
.transition-step p{font-size:.94rem;line-height:1.7}

/* ---------- FAQ ---------- */
.faq-section{padding:var(--section) var(--gutter);background:var(--soft)}
.faq-wrap{max-width:900px;margin:0 auto}
.faq-list{display:grid;gap:12px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;position:relative;padding:24px 62px 24px 26px;color:var(--blue-dark);font-size:1.1rem;font-weight:750;line-height:1.45}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:24px;top:50%;transform:translateY(-50%);color:var(--blue-mid);font-size:1.4rem;font-weight:400}
.faq-item[open] summary::after{content:'−'}
.faq-answer{padding:0 24px 23px}
.faq-answer p{font-size:1.04rem;line-height:1.82}
.faq-contact-note{margin-top:34px;padding-top:26px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:25px}
.faq-contact-note p{font-size:.96rem}

/* ---------- Contact ---------- */
.contact-section{padding:var(--section) var(--gutter)}
.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(380px,1.2fr);gap:80px;align-items:start}
.contact-copy p{font-size:1.02rem;line-height:1.76;margin-bottom:24px}
.contact-details{border-top:1px solid var(--border)}
.contact-row{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--border)}
.contact-row dt{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.7px}
.contact-row dd{margin:0;color:var(--blue-dark);font-size:1.06rem;font-weight:700}
.contact-row dd a{text-decoration:none;color:var(--blue-dark)}
.contact-row dd a:hover{text-decoration:underline;text-underline-offset:4px}
.contact-panel{padding:34px;background:var(--soft);border:1px solid var(--border);border-radius:10px}
.contact-panel h2{font-size:1.55rem;margin-bottom:14px}
.contact-panel p{font-size:.97rem;line-height:1.72;margin-bottom:24px}
.contact-panel .btn-primary{width:auto}

/* ---------- Devis ---------- */
.devis-page{background:var(--soft)}
.devis-wrap{max-width:1120px;margin:0 auto;padding:132px var(--gutter) 100px}
.devis-intro{max-width:760px}
.devis-intro h1{font-size:clamp(2.2rem,3.7vw,3rem);margin-bottom:17px}
.devis-intro>p{font-size:1.06rem;line-height:1.75}
.devis-disclaimer{margin-top:22px;padding:17px 19px;border-left:3px solid var(--blue-mid);background:#fff;color:#4e6177;font-size:.91rem;line-height:1.65}
.devis-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:34px;margin-top:46px;align-items:start}
.devis-form{display:flex;flex-direction:column;gap:18px}
.devis-group{background:#fff;border:1px solid var(--border);border-radius:10px;padding:28px}
.devis-group h2{font-size:1.2rem;margin-bottom:6px}
.devis-group p.help{font-size:.92rem;line-height:1.6;margin-bottom:22px}
.devis-field{margin-bottom:20px}.devis-field:last-child{margin-bottom:0}
.devis-field label{display:block;font-size:.98rem;font-weight:700;color:var(--ink);margin-bottom:9px;line-height:1.45}
.devis-field .sub{display:block;margin-top:4px;color:var(--muted);font-size:.84rem;font-weight:400}
.devis-number{width:100%;max-width:190px;padding:12px 14px;border:1px solid #bfd0e1;border-radius:7px;background:#fff;font:inherit;color:var(--ink)}
.devis-number:focus{outline:2px solid rgba(24,95,165,.25);border-color:var(--blue-mid)}
.devis-toggle{display:inline-flex;border:1px solid #bfd0e1;border-radius:7px;overflow:hidden}
.devis-toggle button,.devis-radio-row button{font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.devis-toggle button{border:0;background:#fff;color:var(--muted);padding:10px 19px}
.devis-toggle button.active{background:var(--blue-mid);color:#fff}
.devis-radio-row{display:flex;flex-wrap:wrap;gap:8px}
.devis-radio-row button{border:1px solid #bfd0e1;background:#fff;color:var(--muted);padding:10px 15px;border-radius:7px}
.devis-radio-row button.active{background:var(--blue-mid);border-color:var(--blue-mid);color:#fff}
.devis-note{font-size:.82rem;color:var(--muted);margin-top:6px}
.devis-result{position:sticky;top:100px;background:var(--blue-dark);border-radius:10px;padding:30px 28px;color:#fff;box-shadow:0 12px 32px rgba(12,59,110,.16)}
.devis-result h3{font-size:.76rem;letter-spacing:.8px;color:rgba(255,255,255,.68);margin-bottom:9px}
.devis-result .price{font-size:2.45rem;font-weight:800;line-height:1.1;margin-bottom:3px}.devis-result .price small{font-size:.95rem;color:rgba(255,255,255,.72)}
.devis-result .price-note{font-size:.84rem;color:rgba(255,255,255,.68);margin-bottom:18px}
.devis-result-breakdown{border-top:1px solid rgba(255,255,255,.18);padding-top:14px}
.devis-result-breakdown div{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;padding:6px 0;color:rgba(255,255,255,.82)}
.devis-result-breakdown div span:last-child{font-weight:700;color:#fff;text-align:right}
.devis-cta{display:block;text-align:center;margin-top:22px;background:#fff;color:var(--blue-dark);font-weight:800;padding:12px;border-radius:7px;text-decoration:none;font-size:.91rem}
.devis-result-disclaimer{font-size:.75rem;color:rgba(255,255,255,.57);line-height:1.5;margin-top:15px}

/* ---------- Footer ---------- */
footer{padding:38px var(--gutter);border-top:1px solid var(--border);background:#fff}
.footer-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center}
.footer-logo{text-decoration:none}.footer-logo img{height:34px;width:auto;max-width:190px}
.footer-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:22px}
.footer-nav a{font-size:.8rem;color:#627286;text-decoration:none}.footer-nav a:hover{color:var(--blue-dark)}
footer p{font-size:.76rem;color:#7a899a;text-align:right}

/* ---------- Responsive ---------- */
@media(max-width:1080px){
  .nav-links{gap:18px}.nav-links a{font-size:.81rem}
  .hero-chevron{width:48vw;opacity:.8}
  .service-detail .shell{grid-template-columns:220px 1fr;gap:48px}
  .contact-layout{gap:50px}
  .devis-grid{grid-template-columns:1fr}.devis-result{position:static}
}
@media(max-width:900px){
  body{font-size:17.5px}
  .nav-links{display:none}.mobile-menu-toggle{display:flex;width:42px;height:42px;border:1px solid var(--border);border-radius:7px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}
  .mobile-menu-toggle span{display:block;width:18px;height:1.5px;background:var(--blue-dark);transition:transform .2s,opacity .2s}
  .main-nav.menu-open .mobile-menu-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .main-nav.menu-open .mobile-menu-toggle span:nth-child(2){opacity:0}
  .main-nav.menu-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .mobile-menu{position:absolute;display:none;top:76px;left:0;right:0;padding:12px var(--gutter) 20px;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 16px 30px rgba(12,59,110,.08)}
  .main-nav.menu-open .mobile-menu{display:grid}
  .mobile-menu a{padding:13px 0;border-bottom:1px solid var(--border);text-decoration:none;color:#526276;font-weight:650}
  .mobile-menu a.active-page{color:var(--blue-dark)}
  .home-intro .shell,.problem-teaser .shell,.pricing-teaser .shell,.founder-preview .shell,.contact-layout{grid-template-columns:1fr;gap:38px}
  .service-detail .shell{grid-template-columns:1fr;gap:28px}.service-label{position:static;max-width:650px}.service-label-icon{width:48px;height:48px}
  .model-grid{grid-template-columns:1fr}.guarantee-list{grid-template-columns:1fr}.transition-steps{grid-template-columns:1fr;gap:24px}
  .contact-panel{max-width:650px}
  .footer-inner{grid-template-columns:1fr;text-align:center;gap:20px}.footer-logo{justify-self:center}.footer-nav{justify-content:center}footer p{text-align:center}
}
@media(max-width:640px){
  :root{--gutter:22px;--section:68px}
  body{font-size:17px}
  .main-nav{height:68px}.nav-logo img{height:35px}.mobile-menu{top:68px}
  .hero{min-height:610px;padding:108px var(--gutter) 64px;text-align:center}
  .hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.91) 62%,rgba(255,255,255,.48) 100%);pointer-events:none}
  .hero-inner{z-index:2}.hero-copy{margin:0 auto}.hero h1{font-size:clamp(2.15rem,10.4vw,2.85rem)}
  .hero-subtitle{justify-content:center;font-size:1rem}.hero .lead{font-size:.98rem;line-height:1.68;margin-left:auto;margin-right:auto}
  .hero-actions{justify-content:center;gap:15px}.hero .btn-primary{width:min(100%,320px)}
  .hero-chevron{width:54vw;opacity:.38}.hero-hexpattern{display:none}.hero-curve{opacity:.28}
  .home-intro{padding:48px var(--gutter)}.home-intro .shell{gap:20px;text-align:center}.home-intro p{text-align:center}
  .section-head{text-align:center;margin-left:auto;margin-right:auto;margin-bottom:34px}.section-head p{text-align:center}
  .service-preview-grid{grid-template-columns:1fr}.service-preview{text-align:center;min-height:0;padding:27px 24px}.service-preview-icon{margin-left:auto;margin-right:auto}
  .section-after{text-align:center}
  .problem-teaser .shell{text-align:center}.switch-list{max-width:520px;margin-left:auto;margin-right:auto;text-align:left}.result-aside{border-left:0;border-top:1px solid #b7c9dc;padding:28px 0 0;text-align:center}.pricing-teaser .shell{text-align:center}.pricing-copy{margin:0 auto}.pricing-visual{max-width:620px;margin:0 auto;width:100%}
  .principle-grid{grid-template-columns:1fr;gap:25px}.principle{text-align:center}
  .founder-preview .shell{text-align:center}.founder-photo-wrap{width:min(100%,310px);margin:0 auto}.founder-copy{margin:0 auto}.founder-copy p{text-align:left}
  .contact-band{padding:45px var(--gutter)}.contact-band .shell{display:block;text-align:center}.contact-band p{text-align:center;margin-bottom:22px}
  .page-hero{padding:110px var(--gutter) 58px;text-align:center}.page-hero-copy{margin:0 auto}.page-hero h1{font-size:clamp(2rem,9vw,2.7rem)}.page-hero p{text-align:center;font-size:1rem}
  .service-detail{text-align:center}.service-label{margin:0 auto}.service-label-icon{margin-left:auto;margin-right:auto}.service-body{margin:0 auto}.service-body .intro{text-align:center;font-size:1.1rem}.service-body p{text-align:left}.service-body h3{text-align:center}.service-list{grid-template-columns:1fr;text-align:left}.service-note{text-align:left}
  .about-founder .founder-copy p{text-align:left}
  .model-card{text-align:center}.model-line{padding:18px}.model-line-head{display:block;text-align:center}.model-line-head span{display:block;margin-top:5px}.traditional-bar .bar-add:nth-last-child(-n+2){display:none}.traditional-bar .bar-base{width:58%}.synectech-cost-saving{grid-template-columns:1fr 1fr;gap:8px}.model-quote{padding:25px 20px}
  .guarantee-item{text-align:center;padding:26px 22px}.transition-step{text-align:center}
  .faq-item summary{padding:21px 52px 21px 20px;font-size:1.02rem}.faq-answer{padding:0 20px 20px}.faq-contact-note{display:block;text-align:center}.faq-contact-note p{text-align:center;margin-bottom:18px}
  .contact-layout{text-align:center}.contact-copy p{text-align:center}.contact-row{grid-template-columns:1fr;gap:5px;text-align:center}.contact-panel{padding:28px 22px}.contact-panel p{text-align:center}
  .devis-wrap{padding:105px var(--gutter) 70px}.devis-intro{text-align:center}.devis-intro>p{text-align:center}.devis-disclaimer{text-align:left}.devis-group{padding:24px 20px}.devis-field label{font-size:.94rem}.devis-result{padding:26px 22px}
}
@media(prefers-reduced-motion:reduce){
  #splash{display:none!important}#nav-logo-img{opacity:1!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}*{scroll-behavior:auto!important}
}

@media(max-width:560px){
  .pricing-visual{padding:22px 18px}
  .pricing-line{grid-template-columns:1fr;gap:7px}
  .pricing-line strong{transform:rotate(90deg);line-height:1}
  .pricing-line span{min-height:48px}
}

/* V6 — secondary actions are easier to find without becoming primary CTAs */
.hero-actions .text-link{background:rgba(255,255,255,.82);border-color:#b9cbe0;}
.section-after .text-link,.pricing-copy .text-link,.faq-contact-note .text-link{margin-top:2px;}
@media(max-width:640px){.text-link{min-height:48px;padding:11px 18px}.section-after .text-link{width:min(100%,360px)}}

/* ===== V7 — demande de rappel par e-mail ===== */
.contact-callback{background:#fff;border:1px solid #c9d8e8;box-shadow:0 14px 34px rgba(12,59,110,.07)}
.contact-callback .callback-cta{display:flex;width:100%;min-height:56px;align-items:center;justify-content:center;margin-top:4px;font-size:1rem}
.contact-callback .callback-help{margin:16px 0 0;font-size:.84rem;line-height:1.58;color:var(--muted)}
.contact-plain-link{display:inline-block;margin-top:16px;color:var(--blue-mid);font-size:.9rem;font-weight:700;text-decoration:none;text-underline-offset:4px}
.contact-plain-link:hover{text-decoration:underline}
@media(max-width:640px){.contact-callback .callback-cta{min-height:54px}.contact-callback .callback-help{text-align:center!important}}

/* V8 — présence géographique, sobre et lisible */
.home-intro-copy{display:flex;flex-direction:column;gap:14px}
.home-intro-copy p{margin:0}
.service-area-line{font-size:.9rem!important;line-height:1.55!important;color:var(--blue-dark)!important;font-weight:650}
@media(max-width:640px){.service-area-line{text-align:center!important;font-size:.87rem!important}}

/* ===== V9 — téléphone desktop, actions mobiles et logo responsive ===== */
.nav-phone-number{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  color:var(--blue-dark);
  font-size:.88rem;
  font-weight:750;
  letter-spacing:.1px;
  font-variant-numeric:tabular-nums;
}
.nav-mobile-actions{display:none;align-items:center;gap:9px;flex:0 0 auto}
.mobile-call-button{
  display:none;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--blue-dark);
  color:#fff;
  text-decoration:none;
}
.contact-phone-mobile{display:none}
.contact-phone-desktop{color:var(--blue-dark);font-weight:700;font-variant-numeric:tabular-nums}

@media(max-width:900px){
  /* Le logo reste présent sur toutes les pages, indépendamment de l’animation d’introduction. */
  #nav-logo-img{opacity:1!important}
  .nav-logo{min-width:0;flex:1 1 auto;overflow:hidden}
  .nav-logo img{width:auto;max-width:min(210px,46vw);object-fit:contain}
  .nav-phone-number{display:none}
  .nav-mobile-actions{display:flex}
  .mobile-call-button{display:inline-flex}
  .mobile-menu-toggle{display:flex}
  .contact-phone-desktop{display:none}
  .contact-phone-mobile{display:inline;color:var(--blue-dark);font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums}
}

@media(max-width:640px){
  .nav-mobile-actions{gap:7px}
  .mobile-call-button,.mobile-menu-toggle{width:40px;height:40px}
  .nav-logo img{height:34px;max-width:calc(100vw - 130px)}
}

/* ==========================================================================
   V10 — RESPONSIVE CONSISTENCY PASS
   One mobile/tablet logic across every page.
   ========================================================================== */

/* Defensive layout rules.
   overflow-x lives on html only (see the top of this file) — adding it to
   body as well turns body into its own scrolling box in most engines, which
   breaks position:sticky for every descendant (e.g. the devis estimate panel
   stopped following the scroll after one screen height). */
html,body{max-width:100%}
.shell,.copy,.page-hero-copy,.service-body,.contact-copy,.contact-panel,.pricing-copy,.devis-intro{min-width:0}
p,li,dd,a,span,strong{max-width:100%}
.contact-row dd,.contact-row dd a{overflow-wrap:anywhere}
button,a{touch-action:manipulation}

/* Tablet: keep the desktop hierarchy, only collapse what actually needs it. */
@media (max-width:900px){
  :root{--gutter:clamp(24px,5vw,44px);--section:76px}

  /* Header */
  .main-nav{padding-left:var(--gutter);padding-right:var(--gutter)}
  .nav-logo{flex:1 1 auto;min-width:0;overflow:visible}
  .nav-logo img{display:block!important;opacity:1!important;height:36px;max-width:min(210px,48vw)}
  .nav-mobile-actions{display:flex;align-items:center;gap:9px}
  .mobile-call-button,.mobile-menu-toggle{width:42px;height:42px;flex:0 0 42px}

  /* Subpage headers */
  .page-hero{padding:126px var(--gutter) 64px;text-align:left}
  .page-hero-copy{margin:0;max-width:720px}
  .page-hero h1{font-size:clamp(2.2rem,6.5vw,3.15rem);margin-bottom:18px}
  .page-hero p{font-size:1.04rem;line-height:1.7;text-align:left;max-width:680px}

  /* Home */
  .home-intro .shell,.problem-teaser .shell,.pricing-teaser .shell,.founder-preview .shell,.contact-layout{grid-template-columns:1fr;gap:34px}
  .service-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .principle-grid{grid-template-columns:1fr;gap:24px}
  .principle{max-width:720px}
  .pricing-visual{max-width:720px}
  .founder-preview .shell{max-width:760px}

  /* Services: one coherent vertical reading flow. */
  .service-detail{padding:70px var(--gutter);text-align:left}
  .service-detail .shell{display:block;max-width:760px}
  .service-label{position:static;max-width:none;margin:0 0 24px;text-align:left}
  .service-number{margin-bottom:10px}
  .service-label-icon{width:46px;height:46px;margin:0 0 14px}
  .service-label h2{font-size:clamp(1.75rem,4.6vw,2.15rem);margin:0;max-width:620px}
  .service-body{max-width:none;margin:0}
  .service-body .intro{font-size:1.12rem;line-height:1.68;margin:0 0 20px;text-align:left}
  .service-body p{font-size:1.02rem;line-height:1.72;margin:0 0 20px;text-align:left}
  .service-body h3{font-size:1.12rem;margin:30px 0 12px;text-align:left}
  .service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;text-align:left}
  .service-list li{padding:10px 0 10px 20px;font-size:.98rem;line-height:1.5}
  .service-list li::before{top:17px}
  .service-note{margin-top:24px;text-align:left}

  /* About */
  .model-grid{grid-template-columns:1fr;gap:16px}
  .model-card{text-align:left}
  .guarantee-list{grid-template-columns:1fr}
  .guarantee-item{text-align:left}
  .transition-steps{grid-template-columns:1fr;gap:22px}
  .transition-step{text-align:left}

  /* FAQ / contact */
  .faq-wrap{max-width:760px}
  .contact-layout{max-width:760px;margin:0 auto}
  .contact-panel{max-width:none}

  /* Estimate */
  .devis-wrap{padding-top:118px}
  .devis-grid{grid-template-columns:1fr;gap:28px}
  .devis-result{position:static}
}

/* Phones: same visual language everywhere — left aligned, roomy, no narrow cards. */
@media (max-width:640px){
  :root{--gutter:20px;--section:58px}
  body{font-size:16.5px;line-height:1.6}

  /* Header */
  .main-nav{height:66px;padding:0 var(--gutter)}
  .nav-logo{display:flex!important;align-items:center!important;overflow:visible!important}
  .nav-logo img{display:block!important;opacity:1!important;height:32px!important;width:auto!important;max-width:calc(100vw - 128px)!important}
  .nav-mobile-actions{gap:7px}
  .mobile-call-button,.mobile-menu-toggle{width:40px;height:40px;flex-basis:40px}
  .mobile-menu{top:66px;padding:10px var(--gutter) 16px}
  .mobile-menu a{padding:12px 0;font-size:.96rem}

  /* Home hero */
  .hero{min-height:0;padding:102px var(--gutter) 58px;text-align:left}
  .hero::after{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 72%,rgba(255,255,255,.55) 100%)}
  .hero-copy{margin:0;max-width:520px}
  .hero h1{font-size:clamp(2rem,10vw,2.65rem);line-height:1.08;margin-bottom:18px}
  .hero-subtitle{justify-content:flex-start;font-size:.98rem;margin-bottom:20px}
  .hero .lead{font-size:.98rem;line-height:1.65;margin:0 0 26px;text-align:left}
  .hero-actions{justify-content:flex-start;gap:12px}
  .hero .btn-primary,.hero .text-link{width:auto;max-width:100%}
  .hero-chevron{width:50vw;opacity:.24}

  /* Shared sections */
  .section{padding:var(--section) var(--gutter)}
  .section-head,.section-head.centered{margin:0 0 28px;text-align:left;max-width:100%}
  .section-head h2,.section-head p,.section-head.centered h2,.section-head.centered p{text-align:left}
  .section-head p{font-size:1rem;line-height:1.68}
  h2{font-size:clamp(1.7rem,8vw,2.15rem)}

  /* Home content */
  .home-intro{padding:42px var(--gutter)}
  .home-intro .shell{gap:16px;text-align:left}
  .home-intro h2,.home-intro p,.service-area-line{text-align:left!important}
  .service-preview-grid{grid-template-columns:1fr;border-left:0;border-top:0;gap:0}
  .service-preview{padding:25px 0;min-height:0;text-align:left;border-left:0;border-right:0;border-bottom:1px solid var(--border)}
  .service-preview:first-child{border-top:1px solid var(--border)}
  .service-preview-icon{margin:0 0 14px}
  .service-preview h3,.service-preview p{text-align:left}
  .section-after{text-align:left;margin-top:26px}
  .section-after .text-link{width:auto;max-width:100%}

  .problem-teaser .shell,.pricing-teaser .shell{text-align:left}
  .switch-list{margin:20px 0 24px;max-width:none;text-align:left}
  .result-aside{border-left:0;border-top:1px solid #b7c9dc;padding:24px 0 0;text-align:left}
  .principle{text-align:left}
  .pricing-copy{margin:0;text-align:left}
  .pricing-copy p{text-align:left}
  .pricing-visual{margin:0;width:100%;padding:22px 18px}
  .contact-band{padding:40px var(--gutter)}
  .contact-band .shell{display:block;text-align:left}
  .contact-band h2,.contact-band p{text-align:left}
  .contact-band p{margin-bottom:20px}

  /* Subpage hero */
  .page-hero{padding:100px var(--gutter) 48px;text-align:left}
  .page-hero-copy{margin:0;max-width:none}
  .page-hero h1{font-size:clamp(1.95rem,9vw,2.55rem);line-height:1.1;margin-bottom:16px;text-align:left}
  .page-hero p{font-size:.98rem;line-height:1.66;text-align:left}
  .page-hero::after{width:250px;height:250px;right:-150px;top:44px}

  /* Services — fixes the oversized blank gaps shown in the mobile screenshot. */
  .service-detail{padding:54px var(--gutter);text-align:left}
  .service-detail .shell{width:100%;max-width:none;margin:0}
  .service-label{margin:0 0 20px;text-align:left}
  .service-number{font-size:.72rem;margin-bottom:9px}
  .service-label-icon{width:40px;height:40px;margin:0 0 12px}
  .service-label h2{font-size:1.62rem;line-height:1.18;text-align:left;max-width:none}
  .service-body{width:100%;margin:0;text-align:left}
  .service-body .intro{font-size:1.03rem;line-height:1.62;margin:0 0 16px;text-align:left}
  .service-body p{font-size:.98rem;line-height:1.66;margin:0 0 17px;text-align:left}
  .service-body h3{font-size:1.08rem;margin:26px 0 9px;text-align:left}
  .service-list{grid-template-columns:1fr;gap:0;text-align:left}
  .service-list li{padding:9px 0 9px 19px;font-size:.95rem;line-height:1.45}
  .service-list li::before{top:15px;width:5px;height:5px}
  .service-note{margin:20px 0 0;padding:15px 16px;font-size:.9rem;line-height:1.55;text-align:left}

  /* About */
  .founder-preview .shell,.about-founder .shell{text-align:left}
  .founder-photo-wrap{width:min(100%,280px);margin:0 auto 6px}
  .founder-copy{margin:0;text-align:left}
  .founder-copy h2,.founder-name,.founder-copy p{text-align:left!important}
  .founder-copy p{font-size:.98rem;line-height:1.68}
  .model-card,.guarantee-item,.transition-step{text-align:left}
  .model-line{padding:16px}
  .model-line-head,.model-line-head strong,.model-line-head span{text-align:left}
  .synectech-cost-saving{grid-template-columns:1fr;gap:8px}
  .model-quote{text-align:left;padding:22px 18px}
  .model-quote strong,.model-quote span{text-align:left}
  .guarantee-item{padding:24px 20px}

  /* FAQ */
  .faq-section{padding:var(--section) var(--gutter)}
  .faq-item summary{padding:19px 50px 19px 18px;font-size:1rem;line-height:1.4;text-align:left}
  .faq-item summary::after{right:18px}
  .faq-answer{padding:0 18px 18px}
  .faq-answer p{font-size:.97rem;line-height:1.68;text-align:left}
  .faq-contact-note{display:block;text-align:left;margin-top:28px;padding-top:22px}
  .faq-contact-note p{text-align:left;margin-bottom:16px}

  /* Contact */
  .contact-section{padding:var(--section) var(--gutter)}
  .contact-layout{text-align:left;gap:30px}
  .contact-copy,.contact-copy p{text-align:left}
  .contact-copy p{font-size:.98rem;line-height:1.68;margin-bottom:20px}
  .contact-row{grid-template-columns:1fr;gap:4px;padding:18px 0;text-align:left}
  .contact-row dt,.contact-row dd{text-align:left}
  .contact-panel{padding:24px 20px;text-align:left}
  .contact-panel h2,.contact-panel p{text-align:left}
  .contact-callback .callback-help{text-align:left!important}
  .contact-callback .callback-cta{width:100%}

  /* Estimate */
  .devis-wrap{padding:96px var(--gutter) 58px}
  .devis-intro{text-align:left}
  .devis-intro h1{font-size:clamp(1.95rem,9vw,2.45rem);line-height:1.12}
  .devis-intro>p{text-align:left;font-size:.98rem;line-height:1.66}
  .devis-disclaimer{text-align:left;margin-top:18px;padding:15px 16px}
  .devis-grid{margin-top:30px;gap:20px}
  .devis-group{padding:21px 18px}
  .devis-group h2{font-size:1.12rem}
  .devis-group p.help{font-size:.9rem;margin-bottom:18px}
  .devis-field{margin-bottom:17px}
  .devis-field label{font-size:.94rem;line-height:1.42}
  .devis-number{max-width:100%}
  .devis-toggle{max-width:100%}
  .devis-toggle button{padding:10px 17px}
  .devis-radio-row{display:grid;grid-template-columns:1fr;width:100%}
  .devis-radio-row button{text-align:left;width:100%}
  .devis-result{padding:24px 20px}
  .devis-result .price{font-size:2.15rem}

  /* Footer */
  footer{padding:30px var(--gutter)}
  .footer-inner{grid-template-columns:1fr;gap:17px;text-align:center}
  .footer-logo{justify-self:center}
  .footer-logo img{height:31px;max-width:175px}
  .footer-nav{gap:10px 18px}
  .footer-nav a{font-size:.78rem}
  footer p{text-align:center;font-size:.73rem}
}

@media (max-width:420px){
  :root{--gutter:18px}
  .nav-logo img{height:30px!important;max-width:calc(100vw - 120px)!important}
  .mobile-call-button,.mobile-menu-toggle{width:38px;height:38px;flex-basis:38px}
  .hero{padding-top:96px}
  .hero h1{font-size:2rem}
  .hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .hero .btn-primary,.hero .text-link{width:100%}
  .pricing-line{grid-template-columns:1fr;gap:6px}
  .pricing-line strong{transform:rotate(90deg);line-height:1}
  .pricing-line span{min-height:46px}
  .service-label h2{font-size:1.5rem}
}

/* ==========================================================================
   V11 — MOBILE UX SYSTEM PASS
   Relecture globale du responsive : rythme, alignements, zones tactiles et
   densité de lecture cohérents sur Accueil, Services, À propos, FAQ, Contact
   et Estimateur.
   ========================================================================== */

/* Tablet / small laptop: one consistent navigation and section rhythm. */
@media (max-width:900px){
  :root{--gutter:clamp(24px,5vw,40px);--section:70px}

  .main-nav{height:72px;padding:0 var(--gutter)}
  .mobile-menu{top:72px}
  .nav-logo img{height:34px!important;max-width:min(210px,48vw)!important}
  .mobile-call-button,.mobile-menu-toggle{width:44px;height:44px;flex:0 0 44px}
  .mobile-menu a{min-height:48px;display:flex;align-items:center;padding:10px 0}

  .page-hero{padding:120px var(--gutter) 60px}
  .section-head{margin-bottom:38px}
  .home-intro .shell,.problem-teaser .shell,.pricing-teaser .shell,.contact-layout{gap:38px}

  .service-detail{padding:66px var(--gutter)}
  .service-detail .shell{max-width:740px}
  .service-body{max-width:700px}

  .contact-layout,.faq-wrap{max-width:740px}
  .devis-grid{gap:26px}
}

/* Phones: simple one-column reading, clear spacing, comfortable touch areas. */
@media (max-width:640px){
  :root{--gutter:22px;--section:56px}
  body{font-size:16.5px;line-height:1.62}

  /* Header */
  .main-nav{height:70px;padding:0 16px;gap:10px}
  .mobile-menu{top:70px;padding:10px 22px 16px}
  .nav-logo{min-width:0;flex:1 1 auto}
  .nav-logo img{height:32px!important;max-width:calc(100vw - 132px)!important}
  .nav-mobile-actions{gap:8px}
  .mobile-call-button,.mobile-menu-toggle{width:44px;height:44px;flex-basis:44px;border-radius:8px}
  .mobile-menu a{min-height:49px;font-size:.98rem;padding:10px 0}

  /* Global reading rhythm */
  .section,.faq-section,.contact-section{padding-top:var(--section);padding-bottom:var(--section)}
  .section-head,.section-head.centered{margin:0 0 32px!important;text-align:left!important}
  .section-head h2,.section-head p,.section-head.centered h2,.section-head.centered p{text-align:left!important}
  .section-head h2{margin-bottom:13px}
  .section-head p{font-size:.98rem;line-height:1.66}
  .eyebrow{margin-bottom:10px}
  h2{font-size:clamp(1.72rem,7.8vw,2.08rem);line-height:1.16}
  h3{line-height:1.25}
  .text-link,.btn-primary,.btn-secondary{min-height:48px}

  /* Home hero */
  .hero{padding:102px var(--gutter) 54px}
  .hero h1{font-size:clamp(2rem,9.5vw,2.55rem);line-height:1.08;margin-bottom:17px}
  .hero-subtitle{font-size:.97rem;line-height:1.35;margin-bottom:18px;gap:10px}
  .hero .lead{font-size:.97rem;line-height:1.62;margin-bottom:25px}
  .hero-actions{gap:11px}
  .hero-chevron{opacity:.20}

  /* Home intro */
  .home-intro{padding:44px var(--gutter)}
  .home-intro .shell{gap:18px}
  .home-intro h2{font-size:1.55rem;line-height:1.2}
  .home-intro p{font-size:.98rem;line-height:1.68}
  .home-intro-copy{gap:13px}
  .service-area-line{font-size:.86rem!important;line-height:1.5!important}

  /* Home service overview: compact, independent rows instead of one boxed table. */
  .service-preview-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    border:0!important;
  }
  .service-preview{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    grid-template-areas:"icon title" "icon copy";
    column-gap:15px!important;
    row-gap:5px!important;
    align-items:start!important;
    min-height:0!important;
    padding:20px!important;
    border:1px solid var(--border)!important;
    border-radius:10px!important;
    background:#fff!important;
    text-align:left!important;
  }
  .service-preview:first-child{border-top:1px solid var(--border)!important}
  .service-preview-icon{grid-area:icon;width:38px;height:38px;margin:1px 0 0!important}
  .service-preview h3{grid-area:title;margin:0!important;font-size:1.05rem!important;line-height:1.28;text-align:left!important}
  .service-preview p{grid-area:copy;margin:0!important;font-size:.94rem!important;line-height:1.52!important;text-align:left!important}
  .section-after{margin-top:24px;text-align:left!important}

  /* Problem / commitment teaser */
  .problem-teaser .shell,.pricing-teaser .shell{gap:30px!important;text-align:left!important}
  .problem-teaser h2,.problem-teaser p,.pricing-copy h2,.pricing-copy p{text-align:left!important}
  .switch-list{gap:12px;margin:18px 0 23px}
  .switch-list li{padding-left:20px;font-size:.96rem;line-height:1.48}
  .result-aside{margin-top:2px;padding-top:24px}
  .result-aside strong{font-size:1.18rem;margin-bottom:10px}
  .result-aside p{font-size:.96rem;line-height:1.66}

  /* Principles */
  .principle-grid{gap:28px!important}
  .principle{padding-top:17px;text-align:left!important}
  .principle h3{margin-bottom:8px}
  .principle p{font-size:.96rem;line-height:1.66;text-align:left!important}

  /* Pricing */
  .pricing-copy p{font-size:.98rem;line-height:1.68;margin-bottom:14px}
  .pricing-visual{padding:20px 16px!important;border-radius:9px}
  .pricing-line span{min-height:48px;font-size:.88rem}
  .pricing-result{padding:18px 16px}
  .pricing-result span{font-size:1.05rem}

  /* Final contact strip */
  .contact-band{padding:38px var(--gutter)}
  .contact-band h2{font-size:1.5rem;line-height:1.18;margin-bottom:9px}
  .contact-band p{font-size:.93rem;line-height:1.6;margin-bottom:20px}
  .contact-band .btn-secondary{width:100%;max-width:360px}

  /* Subpage hero */
  .page-hero{padding:102px var(--gutter) 48px}
  .page-hero h1{font-size:clamp(1.95rem,8.7vw,2.45rem);line-height:1.1;margin-bottom:15px}
  .page-hero p{font-size:.97rem;line-height:1.64}
  .page-hero::after{opacity:.7}

  /* Services page: number, icon and title form one compact visual unit. */
  .service-detail{padding:50px var(--gutter)!important}
  .service-detail .shell{max-width:none!important}
  .service-label{
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr)!important;
    grid-template-areas:"num num" "icon title";
    column-gap:14px!important;
    row-gap:8px!important;
    align-items:center!important;
    margin:0 0 20px!important;
    text-align:left!important;
  }
  .service-number{grid-area:num;margin:0!important;font-size:.71rem}
  .service-label-icon{grid-area:icon;width:38px;height:38px;margin:0!important}
  .service-label h2{grid-area:title;margin:0!important;font-size:1.52rem!important;line-height:1.16!important;text-align:left!important}
  .service-label h2 br{display:none}
  .service-body{max-width:none!important}
  .service-body .intro{font-size:1.02rem!important;line-height:1.62!important;margin-bottom:16px!important}
  .service-body p{font-size:.97rem!important;line-height:1.66!important;margin-bottom:17px!important}
  .service-body h3{font-size:1.08rem!important;margin:25px 0 9px!important}
  .service-list li{font-size:.95rem!important;line-height:1.46!important;padding:9px 0 9px 19px!important}
  .service-note{margin-top:20px!important;padding:15px 16px!important;font-size:.89rem!important;line-height:1.55!important}

  /* About */
  .about-founder .founder-photo-wrap{width:min(68vw,245px);margin:0 auto 18px}
  .founder-copy h2{font-size:1.75rem}
  .founder-name{margin-bottom:16px}
  .founder-copy p{font-size:.97rem!important;line-height:1.66!important;margin-bottom:16px}
  .model-grid{gap:12px!important;margin-top:30px}
  .model-card{padding:21px 19px!important;border-radius:8px;text-align:left!important}
  .model-card h3{font-size:1.04rem;margin-bottom:8px}
  .model-card p{font-size:.95rem;line-height:1.62}
  .model-visual{margin-top:30px}
  .model-line{padding:16px!important}
  .model-line-head{margin-bottom:11px!important}
  .model-quote{margin-top:16px;padding:21px 18px!important}
  .model-quote strong{font-size:1.15rem}
  .guarantee-list{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;border:0!important}
  .guarantee-item{padding:20px 19px!important;border:1px solid var(--border)!important;border-radius:8px!important;text-align:left!important}
  .guarantee-item h3{margin-bottom:7px}
  .guarantee-item p{font-size:.95rem;line-height:1.62}
  .transition-steps{gap:22px!important;margin-top:30px}
  .transition-step{padding-top:17px;text-align:left!important}

  /* FAQ */
  .faq-list{gap:10px}
  .faq-item{border-radius:8px}
  .faq-item summary{min-height:58px;display:flex;align-items:center;padding:17px 48px 17px 17px!important;font-size:.98rem!important;line-height:1.38}
  .faq-item summary::after{right:17px!important}
  .faq-answer{padding:0 17px 17px!important}
  .faq-answer p{font-size:.95rem!important;line-height:1.64!important}
  .faq-contact-note{margin-top:26px!important;padding-top:20px!important}

  /* Contact */
  .contact-layout{gap:28px!important}
  .contact-copy h2{font-size:1.65rem;margin-bottom:12px}
  .contact-copy p{font-size:.97rem!important;line-height:1.65!important;margin-bottom:17px!important}
  .contact-row{padding:16px 0!important;gap:3px!important}
  .contact-row dt{font-size:.75rem}
  .contact-row dd{font-size:1rem}
  .contact-panel{padding:22px 19px!important;border-radius:9px}
  .contact-panel h2{font-size:1.4rem;margin-bottom:11px}
  .contact-panel p{font-size:.95rem;line-height:1.62;margin-bottom:20px}
  .contact-callback .callback-cta{min-height:52px!important}
  .contact-callback .callback-help{font-size:.81rem!important;line-height:1.5!important;margin-top:13px!important}

  /* Estimate */
  .devis-wrap{padding:100px var(--gutter) 54px!important}
  .devis-intro h1{font-size:2rem!important;line-height:1.12;margin-bottom:13px}
  .devis-intro>p{font-size:.97rem!important;line-height:1.64!important}
  .devis-disclaimer{margin-top:17px!important;padding:14px 15px!important;font-size:.88rem!important;line-height:1.55!important}
  .devis-grid{margin-top:26px!important;gap:18px!important}
  .devis-form{gap:14px!important}
  .devis-group{padding:20px 17px!important;border-radius:10px}
  .devis-group h2{font-size:1.08rem!important;margin-bottom:5px}
  .devis-group p.help{font-size:.87rem!important;line-height:1.48!important;margin-bottom:16px!important}
  .devis-field{margin-bottom:15px!important}
  .devis-field label{font-size:.92rem!important;line-height:1.4!important;margin-bottom:7px!important}
  .devis-number{min-height:46px!important;width:100%!important;max-width:100%!important}
  .devis-toggle{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;border-radius:8px!important}
  .devis-toggle button{min-height:44px!important;padding:9px 12px!important}
  .devis-radio-row{gap:8px!important}
  .devis-radio-row button{min-height:46px!important;padding:10px 12px!important;border-radius:8px!important}
  .devis-result{padding:22px 18px!important;border-radius:10px}
  .devis-result .price{font-size:2.05rem!important}
  .devis-cta{min-height:48px;display:flex;align-items:center;justify-content:center}

  /* Footer: links become easy-to-tap instead of a tiny dense row. */
  footer{padding:28px var(--gutter)!important}
  .footer-inner{gap:16px!important}
  .footer-nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2px 16px!important;width:min(100%,360px);margin:0 auto}
  .footer-nav a{min-height:38px;display:flex;align-items:center;justify-content:center;font-size:.8rem!important}
  footer p{font-size:.72rem!important;line-height:1.5}
}

@media (max-width:420px){
  :root{--gutter:20px}
  .main-nav{padding-left:14px;padding-right:14px}
  .nav-logo img{height:30px!important;max-width:calc(100vw - 128px)!important}
  .mobile-call-button,.mobile-menu-toggle{width:42px;height:42px;flex-basis:42px}
  .hero{padding-top:98px}
  .hero-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .hero .btn-primary,.hero .text-link{width:100%!important}
  .service-preview{padding:18px!important;grid-template-columns:36px minmax(0,1fr)!important;column-gap:13px!important}
  .service-preview-icon{width:34px;height:34px}
  .service-preview h3{font-size:1.01rem!important}
  .service-preview p{font-size:.92rem!important}
  .service-label{grid-template-columns:38px minmax(0,1fr)!important;column-gap:12px!important}
  .service-label-icon{width:35px;height:35px}
  .service-label h2{font-size:1.42rem!important}
  .footer-nav{grid-template-columns:1fr 1fr!important}
}

/* ==========================================================================
   RESPONSIVE UX FIX — tarification, bande contact et footer
   ========================================================================== */

/* .text-link garde un fond/bordure et une ombre légèrement plus sobres que sa
   définition d'origine plus haut. Le gabarit (hauteur, padding, largeur) des
   boutons est défini une seule fois, plus bas, dans "CTA CONSISTENCY FIX". */
.text-link{
  border-color:#adc5df;
  background:#f4f8fd;
  box-shadow:none;
}

/* Tarification : les opérateurs sont de vrais séparateurs, jamais dans les cases. */
.pricing-line strong{
  display:flex;
  align-items:center;
  justify-content:center;
  width:24px;
  min-width:24px;
  height:24px;
  margin:0;
  color:#7894b0;
  font-size:1.05rem;
  line-height:1;
  transform:none!important;
}

/* Coordonnées de la bande finale : information scannable au lieu d'une phrase compacte. */
.contact-band-copy{min-width:0}
.contact-band-details{
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
  margin-top:13px;
}
.contact-band-detail{
  display:flex;
  align-items:baseline;
  gap:9px;
  min-width:0;
  color:rgba(255,255,255,.82);
  font-size:.94rem;
}
.contact-band-detail>span:first-child{
  color:rgba(255,255,255,.58);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.55px;
  text-transform:uppercase;
}
.contact-band-detail a,
.contact-band-detail .contact-phone-desktop,
.contact-band-detail .contact-phone-mobile{
  color:#fff;
  font-weight:700;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.contact-band-detail a:hover{text-decoration:underline;text-underline-offset:3px}

@media (max-width:640px){
  /* Le gabarit mobile des boutons/liens est défini une seule fois, plus bas,
     dans "CTA CONSISTENCY FIX". */

  /* Le calcul tarifaire se lit verticalement : case, +, case, +, case. */
  .pricing-visual{
    padding:18px!important;
  }
  .pricing-line{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
  }
  .pricing-line span{
    width:100%!important;
    min-height:54px!important;
    padding:12px 14px!important;
    border-radius:0!important;
    font-size:.92rem!important;
  }
  .pricing-line strong{
    width:100%!important;
    min-width:0!important;
    height:28px!important;
    font-size:1rem!important;
    transform:none!important;
  }
  .pricing-equals{
    margin:14px 0!important;
    font-size:1.2rem!important;
  }
  .pricing-result{
    border-radius:7px!important;
  }

  /* Bande contact : deux coordonnées séparées, puis un CTA pleine largeur. */
  .contact-band .shell{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .contact-band h2{
    margin-bottom:0!important;
  }
  .contact-band-details{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin-top:20px;
    border-top:1px solid rgba(255,255,255,.18);
  }
  .contact-band-detail{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:12px;
    align-items:center;
    min-height:48px;
    padding:10px 0;
    border-bottom:1px solid rgba(255,255,255,.18);
    font-size:.94rem;
  }
  .contact-band-detail>span:first-child{
    font-size:.72rem;
  }
  .contact-band .btn-secondary{
    width:100%!important;
    max-width:none!important;
    background:#fff!important;
    border-color:#fff!important;
    color:var(--blue-dark)!important;
  }

  /* Footer mobile : une vraie liste de navigation, simple à lire et à toucher. */
  footer{
    padding:32px var(--gutter) 28px!important;
  }
  .footer-inner{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:22px!important;
    width:100%!important;
  }
  .footer-logo img{
    height:32px!important;
    max-width:180px!important;
  }
  .footer-nav{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    width:100%!important;
    max-width:300px!important;
    margin:0 auto!important;
    border-top:1px solid var(--border);
  }
  .footer-nav a{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-height:44px!important;
    padding:9px 2px!important;
    border-bottom:1px solid var(--border);
    font-size:.84rem!important;
    font-weight:600;
    color:#536579;
    text-align:left!important;
  }
  footer p{
    margin:0!important;
    font-size:.73rem!important;
    line-height:1.5!important;
    text-align:center!important;
  }
}

@media (max-width:420px){
  .pricing-visual{padding:16px!important}
  .contact-band-detail{grid-template-columns:80px minmax(0,1fr);gap:10px}
  .footer-nav{max-width:280px!important}
}

/* Le gabarit du bouton du calculateur (devis-cta) est défini une seule fois,
   juste en dessous, dans "CTA CONSISTENCY FIX", avec les autres CTA du site. */

/* ==========================================================================
   CTA CONSISTENCY FIX — dimensions identiques sur desktop et mobile
   Ne modifie volontairement PAS le composant du modèle économique
   (.synectech-cost-saving) afin de conserver son rendu précédent.
   ========================================================================== */
:root{
  --site-action-width: 292px;
  --site-action-height: 52px;
}

/* Tous les CTA de contenu partagent désormais exactement la même empreinte.
   Les éléments de navigation et les contrôles de formulaire ne sont pas concernés. */
main .btn-primary,
main .btn-secondary,
main .text-link,
.devis-cta{
  width:var(--site-action-width);
  min-width:var(--site-action-width);
  max-width:var(--site-action-width);
  min-height:var(--site-action-height);
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 18px;
  border-radius:8px;
  text-align:center;
  line-height:1.2;
  font-size:.94rem;
  font-weight:760;
  white-space:normal;
}

/* Le CTA du panneau de rappel conserve la largeur du panneau : il reste
   volontairement pleine largeur car il constitue l'action principale de cette carte. */
.contact-callback .callback-cta{
  width:100%;
  min-width:0;
  max-width:none;
}

/* Les zones qui contiennent un CTA gardent un alignement net sans largeur implicite. */
.hero-actions,
.section-after,
.faq-contact-note,
.pricing-copy,
.contact-band .shell{
  min-width:0;
}
.section-after{
  display:flex;
  align-items:center;
}

/* Mobile : un seul standard simple à toucher, pleine largeur du contenu. */
@media (max-width:640px){
  main .btn-primary,
  main .btn-secondary,
  main .text-link,
  .devis-cta,
  .contact-callback .callback-cta{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:52px!important;
    padding:13px 16px!important;
  }

  .hero-actions,
  .section-after,
  .faq-contact-note,
  .pricing-copy,
  .contact-band .shell{
    width:100%;
  }

  .section-after{
    display:block;
  }
}

/* ==========================================================================
   V16 — ajustements demandés : services, technologies, estimation, contact
   (le point CTA de cette passe a été remplacé par V17, plus bas)
   ========================================================================== */

/* 2) Services : le titre de chaque service est centré verticalement par rapport au contenu. */
@media (min-width:901px){
  body[data-page="services"] .service-detail .shell{
    align-items:stretch !important;
  }
  body[data-page="services"] .service-label{
    position:static !important;
    align-self:stretch !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    min-height:100% !important;
  }
}

/* 3) À propos : bande d'outils, dans le même esprit que le site historique. */
.tools-section{background:#fff}
.tools-section .section-head{margin-bottom:34px}
.tech-strip{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  width:100%;
}
.tech-chip{
  min-width:0;
  min-height:92px;
  padding:16px 14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--soft);
  color:var(--blue-dark);
  text-align:center;
  font-size:.80rem;
  font-weight:700;
}
.tech-logo{
  display:block;
  width:auto;
  max-width:116px;
  max-height:34px;
  object-fit:contain;
}
@media (max-width:900px){
  .tech-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .tools-section .section-head{text-align:left;margin-left:0;margin-right:0}
  .tech-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tech-chip{min-height:82px;padding:13px 10px}
  .tech-logo{max-width:102px;max-height:30px}
}

/* 4) Estimation : le comportement sticky définitif est défini plus bas (V18) —
   voir la note dans ce bloc pour l'historique. */

/* 5) Contact : le bloc de rappel commence au niveau des coordonnées, pas du titre introductif. */
@media (min-width:901px){
  body[data-page="contact"] .contact-callback{
    margin-top:108px !important;
  }
}
@media (max-width:900px){
  body[data-page="contact"] .contact-callback{margin-top:0 !important}
}

/* ========================================================================== 
   V17 — CTA accueil, ordre technologies et sticky estimation
   ========================================================================== */

/* Accueil — boutons plus visibles et suffisamment larges pour garder les libellés sur une ligne. */
@media (min-width:641px){
  body[data-page="home"] main .btn-primary,
  body[data-page="home"] main .btn-secondary,
  body[data-page="home"] main .text-link{
    width:340px !important;
    min-width:340px !important;
    max-width:340px !important;
    height:56px !important;
    min-height:56px !important;
    padding:0 22px !important;
    border-radius:9px !important;
    font-size:1rem !important;
    font-weight:800 !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
  }

  body[data-page="home"] main .text-link{
    background:#fff !important;
    border:1.5px solid #91afd0 !important;
    color:var(--blue-dark) !important;
    box-shadow:0 5px 14px rgba(12,59,110,.07) !important;
  }
  body[data-page="home"] main .text-link:hover{
    background:var(--soft-2) !important;
    border-color:var(--blue-mid) !important;
    color:var(--blue-mid) !important;
    box-shadow:0 8px 20px rgba(12,59,110,.10) !important;
  }

  body[data-page="home"] main .btn-secondary{
    border-width:1.5px !important;
    border-color:#91afd0 !important;
    box-shadow:0 5px 14px rgba(12,59,110,.07) !important;
  }

  /* Le bouton blanc sur fond bleu garde le même gabarit, avec un contraste plus net. */
  body[data-page="home"] .contact-band .btn-secondary{
    border-color:rgba(255,255,255,.68) !important;
    box-shadow:none !important;
  }
}

/* Mobile — même hiérarchie, pleine largeur et lisibilité tactile. */
@media (max-width:640px){
  body[data-page="home"] main .btn-primary,
  body[data-page="home"] main .btn-secondary,
  body[data-page="home"] main .text-link{
    min-height:54px !important;
    padding:14px 18px !important;
    font-size:.98rem !important;
    font-weight:800 !important;
    border-radius:9px !important;
  }
  body[data-page="home"] main .text-link{
    background:#fff !important;
    border:1.5px solid #91afd0 !important;
    box-shadow:0 4px 12px rgba(12,59,110,.06) !important;
  }
}

/* Le comportement sticky de l'estimation est défini une seule fois, dans V18
   ci-dessous (les passes précédentes empilaient plusieurs règles sticky/static
   contradictoires sur les mêmes points de rupture — la cause du bug où le
   panneau cessait de suivre le défilement était en fait overflow-x sur
   html/body, corrigé plus haut dans "Defensive layout rules"). */

/* ========================================================================== 
   V18 — alignement CTA accueil + panneau d'estimation réellement persistant
   ========================================================================== */

/* Accueil : les CTA placés en fin de section se lisent comme une sortie de section
   et sont alignés à droite, pleine largeur de la section (même logique partout :
   "Voir le détail des services", "Comprendre le modèle SYNECTECH", "Voir le
   fonctionnement du modèle", "Estimer un forfait" utilisent tous .section-after).
   Le Hero garde ses boutons alignés à gauche, sous le texte. */
@media (min-width:641px){
  body[data-page="home"] .section-after{
    justify-content:flex-end !important;
  }
}

/* Estimation : la colonne de droite s'étire sur toute la hauteur de la grille.
   Le panneau sticky dispose ainsi d'un vrai contenant haut et reste à l'écran
   pendant tout le parcours du formulaire. */
body[data-page="devis"] .devis-result-column{
  min-width:0;
  align-self:stretch;
  position:relative;
}

@media (min-width:901px){
  body[data-page="devis"] .devis-grid{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 370px !important;
    gap:34px !important;
    align-items:stretch !important;
  }
  body[data-page="devis"] .devis-result-column{
    display:block !important;
    height:100% !important;
  }
  body[data-page="devis"] .devis-result{
    position:-webkit-sticky !important;
    position:sticky !important;
    top:96px !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    align-self:auto !important;
  }
}

@media (max-width:900px){
  body[data-page="devis"] .devis-grid{
    grid-template-columns:1fr !important;
    align-items:start !important;
  }
  body[data-page="devis"] .devis-result-column{
    height:auto !important;
  }
  body[data-page="devis"] .devis-result{
    position:static !important;
    top:auto !important;
  }
}
