:root{--cyan:#009fe3;--ink:#101e30;--blue:#071c38;--muted:#536273;--line:#dce3e9;--paper:#f5f7f9;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--white);font-family:Aptos,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:5px}a:hover{color:#006e9e}button,input,select,textarea{font:inherit}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.09;letter-spacing:-.045em}h2{font-size:clamp(30px,3.4vw,46px);font-weight:750}h3{font-size:25px}p{margin-bottom:1.3em}.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}.site-header{background:var(--blue);color:white;border-bottom:1px solid #ffffff22;position:relative;z-index:10}.header-inner{min-height:110px;display:flex;align-items:center;gap:32px}.brand{display:block;flex:0 0 248px;line-height:0}.brand img{width:248px;display:block}.site-nav{margin-left:auto;display:flex;align-items:center;gap:23px}.site-nav a{font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}.site-nav a:hover,.site-nav a[aria-current=page]{color:#6ad0ff}.site-nav .nav-contact{border:1px solid #52728e;padding:10px 16px}.menu-toggle{display:none;color:white;background:transparent;border:1px solid #52728e;padding:9px 15px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:700;line-height:1.6;margin-bottom:22px;color:#087caf}.hero{background:var(--blue);color:white;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;padding-block:83px 67px;align-items:center}.hero h1{font-size:clamp(44px,5.3vw,78px);font-weight:800;line-height:1.03;margin-bottom:30px;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:var(--cyan)}.hero .eyebrow{color:#7bcdf2}.hero-lead{color:#bac9db;max-width:510px;font-size:18px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:35px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:15px 22px;background:var(--cyan);color:#041a2a;text-decoration:none;font-weight:700;font-size:14px;line-height:1.4;border:1px solid transparent;transition:background .18s}.button:hover{background:#4bc2f5;color:#041a2a}.quiet-link{font-size:13px;color:#d0deec;text-decoration:none}.quiet-link:hover{color:white}.hero-foot{display:flex;gap:30px;justify-content:space-between;padding-block:24px;border-top:1px solid #ffffff22;color:#bccbda;font-size:12px}.hero-foot span:last-child{color:#6f90ae}.hero-object{height:400px;position:relative;display:grid;place-items:center;background:radial-gradient(ellipse at center,#009fe323,transparent 65%)}.orbit{position:absolute;width:310px;height:310px;border:1px solid #009fe35c;transform:rotate(30deg);border-radius:48px}.orbit-two{transform:rotate(60deg);width:360px;height:360px;border-color:#78c5ff22;border-radius:65px}.object-core{position:relative;width:235px;height:235px;background:#0b2648;border:1px solid #21739c;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 25px 90px #0005;border-radius:5px}.object-core:before,.object-core:after{content:'';position:absolute;width:60px;height:60px;border:3px solid var(--cyan)}.object-core:before{left:-12px;top:-12px;border-right:0;border-bottom:0}.object-core:after{right:-12px;bottom:-12px;border-left:0;border-top:0}.object-core span{font-size:74px;font-weight:900;letter-spacing:-5px;line-height:1.3}.object-core small{font-size:10px;letter-spacing:.25em;line-height:1.8;color:#a9c4dd}.object-note{position:absolute;font:10px/1.5 monospace;letter-spacing:.13em;color:#92b4d2;background:var(--blue);padding:5px 10px}.n1{left:8px;top:65px}.n2{right:-5px;top:108px}.n3{left:0;bottom:85px}.n4{right:0;bottom:35px}.domains{padding-block:90px 70px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:365px;color:var(--muted);margin:0}.domain-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.domain-card{padding:26px 25px 25px;border:1px solid var(--line);background:var(--paper);text-decoration:none;position:relative;min-height:300px;display:flex;flex-direction:column;transition:transform .18s,border-color .18s}.domain-card:hover{transform:translateY(-5px);border-color:var(--cyan);color:var(--ink)}.card-number{font:12px monospace;color:#688093;margin-bottom:50px}.card-arrow{position:absolute;right:24px;top:21px;font-size:24px;color:#057cb1}.domain-card h3{font-size:clamp(19px,1.65vw,25px);letter-spacing:-.035em;overflow-wrap:normal}.domain-card p{font-size:14px;color:var(--muted);line-height:1.7}.card-cta{font-size:11px;font-weight:700;margin-top:auto;padding-top:16px}.parts-banner{background:#006c9c;color:white;padding:50px 54px;display:flex;align-items:center;justify-content:space-between;gap:40px;position:relative;overflow:hidden}.parts-banner .eyebrow{color:#c5ebfc}.parts-banner h2{font-size:39px}.parts-banner p:last-child{margin-bottom:0;max-width:570px;color:#d5edf8}.button-light{background:white;color:var(--ink);flex-shrink:0}.philosophy{padding-block:100px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.philosophy h2{font-size:39px}.philosophy>div>p:not(.eyebrow){color:var(--muted)}.text-link{display:inline-block;font-weight:700;font-size:14px;color:#0077aa;padding-block:7px}.formation{background:var(--paper);padding-block:60px}.formation-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.formation h2{font-size:33px;margin-bottom:0}.formation p{color:var(--muted)}.site-footer{background:#051427;color:#afc0d2;padding-block:58px 22px;font-size:13px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px}.footer-grid img{width:240px;margin-bottom:22px}.footer-grid h2{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#fff;margin-bottom:22px}.footer-grid a{display:inline-block;text-decoration:none;margin-bottom:5px}.footer-grid a:hover{color:#6ad0ff}.footer-bottom{border-top:1px solid #ffffff22;margin-top:35px;padding-top:22px;display:flex;justify-content:space-between;gap:25px;font-size:11px}.footer-legal{display:flex;gap:20px;flex-wrap:wrap}.page-intro{background:var(--blue);color:white;padding:65px 0 68px}.page-intro .eyebrow{color:#7bcdf2}.page-intro h1{font-size:clamp(38px,4.8vw,67px);max-width:960px;margin-bottom:27px}.lead{color:#becddd;font-size:20px;max-width:800px;margin-bottom:0}.reading{width:min(1280px,calc(100% - 96px));max-width:none;margin-inline:auto;padding-block:55px 80px}.reading p,.reading li{max-width:850px}.reading>h2{font-size:25px;letter-spacing:-.025em;margin-top:38px;line-height:1.3}.text-section{padding:22px 0 28px;border-bottom:1px solid var(--line)}.text-section h2{font-size:30px;letter-spacing:-.025em}.text-section p,.text-section li{color:#405268}.text-section ul,.reading ul{padding-left:22px}.reading li{margin-bottom:10px}.related{display:flex;gap:35px;flex-wrap:wrap}.article-cta{background:var(--paper);padding:40px;margin-top:48px;border-left:4px solid var(--cyan)}.article-cta h2{font-size:34px}.article-cta p:not(.eyebrow){color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-bottom:40px}.contact-grid h2{font-size:28px}.contact-card{background:var(--paper);padding:32px}.contact-big{font-size:24px;font-weight:700;white-space:nowrap}.contact-card a{overflow-wrap:anywhere}.com-content-article__body{margin:0}.com-content-article.item-page{margin:0}.content-wrapper>.page-header{display:none}.system-messages{max-width:1200px;margin:auto}joomla-alert{display:block;padding:20px;background:#eef6ff;color:#10283d}input,textarea,select{max-width:100%;padding:10px;border:1px solid #b5c2cd}table{border-collapse:collapse;max-width:100%}td,th{padding:10px;border:1px solid var(--line)}.component-fallback{padding:40px}.error-page{min-height:70vh;background:var(--blue);color:white;padding:12vh 8vw}.error-page h1{font-size:50px}body.contentpane{padding:30px}.module-slot:empty{display:none}

@media(min-width:1600px){.hero-grid{padding-top:100px;padding-bottom:85px}}

@media(max-width:1150px){.wrap{width:calc(100% - 56px)}.header-inner{gap:20px}.brand{flex-basis:205px}.brand img{width:205px}.site-nav{gap:15px}.site-nav a{font-size:12px}.hero-grid{gap:25px}.hero-object{transform:scale(.85)}.domain-card{padding:24px 18px}.domain-grid{gap:12px}.domain-card h3{font-size:19px}}

@media(max-width:900px){.header-inner{min-height:92px;flex-wrap:wrap;padding-block:19px}.menu-toggle{display:block;margin-left:auto}.site-nav{width:100%;margin:0;flex-wrap:wrap;gap:18px;padding:15px 0}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.site-nav a{font-size:15px}.hero-grid{grid-template-columns:1fr;padding-block:60px}.hero h1{font-size:64px}.hero-object{display:none}.hero-foot{flex-wrap:wrap;gap:12px 25px}.hero-foot span:last-child{display:none}.domain-grid{grid-template-columns:repeat(2,1fr)}.domain-card h3{font-size:26px}.section-heading{gap:30px;align-items:flex-start}.section-heading>p{max-width:290px}.philosophy,.formation-inner{gap:40px}.parts-banner{padding:38px}.parts-banner h2{font-size:34px}.contact-grid{gap:28px}.footer-grid{gap:28px}.footer-grid img{width:190px}}

@media(max-width:600px){.wrap{width:calc(100% - 40px)}.brand{flex-basis:210px}.brand img{width:210px}.hero-grid{padding-top:45px;padding-bottom:42px}.hero h1{font-size:clamp(42px,11vw,59px)}.hero-lead{font-size:16px}.hero-actions{gap:22px}.hero-foot{font-size:11px}.section-heading{display:block}.section-heading>p{max-width:none;margin-top:23px}.domains{padding-block:55px 40px}.domain-grid{grid-template-columns:1fr}.domain-card{min-height:225px;padding:25px}.card-number{margin-bottom:22px}.domain-card h3{font-size:27px}.domain-card p{max-width:290px}.parts-banner{display:block;padding:30px 25px}.parts-banner h2{font-size:32px}.parts-banner .button{margin-top:26px}.philosophy,.formation-inner,.contact-grid{grid-template-columns:1fr;gap:25px}.philosophy{padding-block:55px}.philosophy h2{font-size:33px}.formation{padding-block:45px}.footer-grid{grid-template-columns:1fr;gap:24px}.footer-bottom{display:block}.footer-legal{margin-top:16px;gap:12px 22px}.page-intro{padding-block:40px}.page-intro h1{font-size:40px}.lead{font-size:18px}.reading{padding-block:30px 50px}.text-section h2{font-size:26px}.article-cta{padding:25px}.article-cta h2{font-size:29px}.contact-card{padding:23px}.contact-big{font-size:23px}.related{display:block}.related a{display:block}.footer-grid h2{margin-bottom:12px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.site-header,.site-footer,.hero-object,.hero-actions,.article-cta,.menu-toggle{display:none}.wrap{width:100%}.hero,.page-intro{background:white;color:black;padding:20px 0}.hero h1 em,.lead,.eyebrow{color:black!important}.reading{padding:0}.domain-grid{display:block}.domain-card{break-inside:avoid}.text-section{break-inside:avoid}}

/* Explicit centering keeps the technical motif stable across layout engines. */

.header-inner{justify-content:space-between}.site-nav{margin-left:0}.hero-object{display:flex;align-items:center;justify-content:center}.orbit{top:50%;left:50%;transform:translate(-50%,-50%) rotate(30deg)}.orbit-two{transform:translate(-50%,-50%) rotate(60deg)}.button{white-space:nowrap}.object-core{flex-shrink:0}

@media(max-width:900px){.hero-object{display:none}.menu-toggle{margin-left:auto}}

@media(min-width:901px){.header-inner{display:grid;grid-template-columns:248px minmax(0,1fr)}.site-nav{justify-content:flex-end;min-width:0}.section-heading{display:grid;grid-template-columns:1fr .7fr;align-items:end}}

@media(min-width:901px) and (max-width:1150px){.header-inner{grid-template-columns:205px minmax(0,1fr)}}

@media(min-width:901px){.header-inner{padding-block:24px}}

.domain-logo{display:block;width:100%;height:72px;object-fit:contain;object-position:left center;margin:0 30px 28px 0}

.parts-logo{display:block;width:min(250px,75%);height:58px;object-fit:contain;object-position:left center;margin-bottom:18px}.parts-banner .eyebrow{margin-bottom:12px}

.history{padding:18px 0 34px}.history-line{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}.history-line:before{content:'';position:absolute;left:0;right:0;top:8px;border-top:2px solid var(--cyan)}.history-item{position:relative;padding:32px 20px 0 0}.history-item:before{content:'';position:absolute;top:0;left:0;width:16px;height:16px;background:var(--cyan);border:4px solid var(--white);box-shadow:0 0 0 1px var(--cyan);border-radius:50%}.history-item time{display:block;color:#0077aa;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.history-item h3{font-size:20px;line-height:1.2;margin-bottom:12px}.history-item p{font-size:14px;color:var(--muted);line-height:1.6}.history-item:last-child:before{background:var(--ink);box-shadow:0 0 0 1px var(--ink)}

.history-line{position:relative}.history-item{min-width:0}@media(max-width:900px){.history-line{grid-template-columns:1fr 1fr;row-gap:20px}.history-line:before{left:8px;right:8px;top:8px}.history-item{padding-right:10px}}@media(max-width:560px){.history-line{display:block;padding-left:18px}.history-line:before{left:6px;right:auto;top:8px;bottom:8px;border-top:0;border-left:2px solid var(--cyan)}.history-item{padding:30px 0 18px}.history-item:before{left:-18px}}

.history-v2{margin-block:8px 42px;padding:34px 28px 22px;background:linear-gradient(180deg,#f5f7f9 0%,#fff 100%);border:1px solid var(--line)}.history-v2 .history-line{gap:22px;margin-top:28px}.history-v2 .history-line:before{top:10px;border-top:3px solid #b9dff0}.history-v2 .history-item{padding:39px 10px 5px 0}.history-v2 .history-item:before{top:1px;width:20px;height:20px;background:var(--white);border:5px solid var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.history-v2 .history-item time{font-size:26px;line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--ink);text-transform:none}.history-v2 .history-item h3{font-size:18px;margin-bottom:10px}.history-v2 .history-item p{font-size:13px}.history-v2 .history-current{background:var(--blue);color:#fff;padding:39px 18px 18px;margin-top:-10px;margin-bottom:-10px}.history-v2 .history-current:before{top:11px;left:18px;background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 0 4px #ffffff22}.history-v2 .history-current time,.history-v2 .history-current h3{color:#fff}.history-v2 .history-current p{color:#c1d2e2}.history-badge{display:inline-block;margin-top:9px;padding:6px 10px;background:var(--cyan);color:#052039;font-size:12px;font-weight:800}.history-v2 .history-current:after{content:'';position:absolute;right:-28px;top:9px;width:28px;height:3px;background:var(--cyan)}

.history-v2 .history-current:after{content:'';position:absolute;right:-39px;top:1px;width:39px;height:3px;background:var(--cyan)}.history-v2 .history-line:after{content:'➜';position:absolute;right:-12px;top:-15px;color:var(--cyan);font-size:28px;line-height:1;font-weight:800;background:var(--white);padding-left:5px}.history-badge{display:none}



/* ================================================================
   TST 1.2.4 — GLOBAL LAYOUT GRID
   One horizontal grid for header, heroes, content and footer.
   ================================================================ */
:root{--tst-layout-max:1280px;--tst-layout-side:48px}

/* Canonical grid. */
.wrap,
.reading,
.tst-legal-body,
.system-messages{
  width:min(var(--tst-layout-max),calc(100% - 96px))!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}

/* A reading page may be narrower typographically inside the grid,
   but its OUTER left/right edges never move. */
.reading{max-width:none!important}

/* Legal content inherits the exact site grid; neutralize legacy plugins. */
.tst-legal-body{
  position:static!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  max-width:none!important;
}
.reading .tst-legal-body{
  width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}
.tst-legal-viewport,.tst-legal-shell{display:contents!important}

/* Keep readable line lengths without moving the page column. */
.reading>p,.reading>ul,.reading>ol,
.reading>.text-section,
.tst-legal-body>p,.tst-legal-body>ul,.tst-legal-body>ol,
.tst-legal-body>h2,.tst-legal-body>h3{max-width:1000px}

/* Joomla component wrappers must not add an extra lateral offset. */
.com-content-article__body,
.com-content-article.item-page{margin-left:0!important;margin-right:0!important}

@media(max-width:1150px){
  :root{--tst-layout-side:28px}
  .wrap,.reading,.tst-legal-body,.system-messages{width:calc(100% - 56px)!important}
  .reading .tst-legal-body{width:100%!important}
}
@media(max-width:600px){
  :root{--tst-layout-side:20px}
  .wrap,.reading,.tst-legal-body,.system-messages{width:calc(100% - 40px)!important}
  .reading .tst-legal-body{width:100%!important}
}


/* TST 1.2.5 — heroes juridiques, ligne téléphone et cohérence du template */
.has-template-legal-hero .com-content-article .page-intro,
.has-template-legal-hero article .page-intro{display:none!important}
.phone-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px}
.contact-icon{width:22px;height:22px;display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;color:inherit;text-decoration:none!important;flex:0 0 22px}
.contact-icon svg{width:18px;height:18px;display:block;fill:currentColor}
.contact-icon.whatsapp{color:#25d366}
.phone-number{display:inline-block!important;margin:0!important;font-weight:700;text-decoration:none}
.contact-card .phone-line{margin:4px 0 14px}
.contact-card .phone-number{font-size:24px;font-weight:700;white-space:nowrap}
.contact-card .contact-icon{width:28px;height:28px;flex-basis:28px}
.contact-card .contact-icon svg{width:22px;height:22px}
@media(max-width:600px){.contact-card .phone-number{font-size:22px}}


/* TST 1.3.0 — réseaux sociaux footer */
.footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-top:16px;
}
.footer-social a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  color:#d5e0eb;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}
.footer-social .social-badge{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid #52728e;
  border-radius:50%;
  color:#6ad0ff;
  font-size:11px;
  line-height:1;
}
.footer-social a:hover{color:#6ad0ff}
@media(max-width:600px){.footer-social{gap:10px 16px}}


/* TST 1.3.6 — mise en avant nLPD sur l'accueil */
.nlpd-home-cta{
  margin:48px 0;
  padding:28px 30px;
  border:1px solid rgba(0,159,227,.32);
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  background:linear-gradient(135deg,rgba(0,159,227,.08),rgba(255,255,255,.02));
}
.nlpd-home-cta__copy{max-width:760px}
.nlpd-home-cta h2{margin:.2em 0 .45em}
.nlpd-home-cta p:last-child{margin-bottom:0}
.nlpd-home-cta .button{flex:0 0 auto}
@media(max-width:800px){
  .nlpd-home-cta{align-items:flex-start;flex-direction:column}
}


/* TST 1.3.7 — accessibilité */
.skip-link{
  position:fixed;
  left:16px;
  top:16px;
  z-index:99999;
  padding:10px 14px;
  border-radius:8px;
  background:#ffffff;
  color:#111111;
  font-weight:700;
  text-decoration:none;
  transform:translateY(-180%);
  transition:transform .15s ease;
}
.skip-link:focus{
  transform:translateY(0);
}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}

a,
button,
input,
select,
textarea{
  -webkit-tap-highlight-color:transparent;
}

button,
input,
select,
textarea{
  font:inherit;
}

a[aria-current="page"]{
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* TST 1.3.8 — page 404 */
.error-page{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.error-main{
  flex:1;
  display:flex;
  align-items:center;
  padding:64px 0;
}
.error-card{
  max-width:820px;
  margin:0 auto;
  padding:40px;
  border:1px solid rgba(0,159,227,.28);
  border-radius:20px;
  background:rgba(255,255,255,.025);
}
.error-card h1{
  margin:.2em 0 .45em;
}
.error-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
  margin-top:28px;
}
.error-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.12);
}
.error-links a{
  text-decoration:none;
}
@media(max-width:600px){
  .error-main{padding:36px 0}
  .error-card{padding:26px 22px}
  .error-actions{align-items:flex-start;flex-direction:column}
}


/* TST 1.4.2 — performance */
@supports (content-visibility:auto){
  .text-section,
  .article-cta,
  .nlpd-home-cta{
    content-visibility:auto;
    contain-intrinsic-size:auto 360px;
  }
}

/* Prevent layout shifts on template images. */
img{
  max-width:100%;
  height:auto;
}


/* TST 1.4.6 — articles à la une */
.home-featured{padding:20px 0 64px}
.home-featured__head{margin-bottom:22px}
.home-featured__head h2{margin:.15em 0 0}
.home-featured__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.home-featured__card{padding:24px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.025)}
.home-featured__card h3{margin:0 0 12px;font-size:1.15rem}
.home-featured__card h3 a{color:inherit;text-decoration:none}
.home-featured__card p{margin:0 0 16px}
@media(max-width:900px){.home-featured__grid{grid-template-columns:1fr}}


/* TST 1.4.7 — vrai menu hamburger mobile */
.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.menu-toggle{
  display:none;
}

.menu-toggle__icon{
  display:grid;
  gap:5px;
  width:28px;
}

.menu-toggle__icon span{
  display:block;
  width:100%;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transition:transform .2s ease, opacity .2s ease;
}

@media(max-width:900px){
  .header-inner{
    position:relative;
  }

  .menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:52px;
    height:52px;
    padding:0;
    border:1px solid rgba(255,255,255,.32);
    background:transparent;
    color:#fff;
    cursor:pointer;
  }

  .site-nav{
    display:none !important;
    position:absolute;
    z-index:1000;
    top:calc(100% + 12px);
    left:0;
    right:0;
    width:100%;
    padding:18px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:14px;
    background:#071f3b;
    box-shadow:0 18px 40px rgba(0,0,0,.28);
  }

  .site-nav.is-open{
    display:flex !important;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }

  .site-nav a{
    display:block;
    width:100%;
    padding:12px 10px;
    margin:0;
  }

  .site-nav .nav-contact{
    margin-top:4px;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(2){
    opacity:0;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }
}

@media(min-width:901px){
  .site-nav{
    display:flex !important;
  }
}


/* TST 1.5.0 — Speedating */
.speedating-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:22px;
}
.speedating-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:20px;
  border:1px solid rgba(0,159,227,.24);
  border-radius:14px;
  text-decoration:none;
  background:rgba(0,159,227,.04);
}
.speedating-card strong{
  color:inherit;
  font-size:1.05rem;
}
.speedating-card span{
  color:inherit;
  opacity:.82;
}
.speedating-card:hover{
  border-color:rgba(0,159,227,.55);
}
.speedating-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px;
}
@media(max-width:720px){
  .speedating-grid{grid-template-columns:1fr}
  .speedating-actions{align-items:flex-start;flex-direction:column}
}


/* TST 1.5.2 — Speeddating / Bookings */
.speeddating-shell{
  min-height:calc(100vh - 160px);
  display:grid;
  place-items:center;
  padding:34px 20px 58px;
}
.speeddating-cardbox{
  width:min(620px,100%);
  padding:30px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  background:rgba(5,27,52,.88);
  box-shadow:0 24px 70px rgba(0,0,0,.30);
  text-align:center;
}
.speeddating-logo{
  display:block;
  width:min(260px,72%);
  height:auto;
  margin:0 auto 20px;
}
.speeddating-cardbox h1{
  margin:0 0 8px;
}
.speeddating-lead{
  max-width:500px;
  margin:0 auto 26px;
  opacity:.85;
}
.speeddating-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.speeddating-action{
  min-height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 10px;
  border:1px solid rgba(0,159,227,.30);
  border-radius:15px;
  background:rgba(0,159,227,.06);
  color:inherit;
  text-decoration:none;
  font-weight:700;
  line-height:1.2;
}
.speeddating-action:hover,
.speeddating-action:focus-visible{
  border-color:rgba(0,159,227,.75);
  background:rgba(0,159,227,.12);
}
.speeddating-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
}
.speeddating-icon svg{
  width:30px;
  height:30px;
  fill:currentColor;
}
.speeddating-social{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.speeddating-social-link{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.20);
  border-radius:50%;
  text-decoration:none;
  color:inherit;
  font-weight:800;
}
.speeddating-identity{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-top:22px;
  font-size:.92rem;
  opacity:.78;
}
.speeddating-redirect-note{
  margin:16px 0 0;
  font-size:.8rem;
  opacity:.55;
}
.booking-shell{
  padding:44px 0 70px;
}
.booking-head{
  max-width:900px;
  margin-bottom:26px;
}
.booking-frame-card{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:#fff;
  box-shadow:0 20px 55px rgba(0,0,0,.18);
}
.booking-frame{
  display:block;
  width:100%;
  height:var(--booking-frame-height,1180px);
  border:0;
  background:#fff;
}
.booking-external{
  margin-top:16px;
  text-align:right;
}
.booking-unavailable{
  padding:30px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
}
@media(max-width:620px){
  .speeddating-shell{padding:22px 14px 40px}
  .speeddating-cardbox{padding:24px 16px;border-radius:18px}
  .speeddating-actions{grid-template-columns:1fr 1fr;gap:9px}
  .speeddating-action{min-height:94px;font-size:.93rem}
  .booking-shell{padding:26px 0 50px}
  .booking-frame{height:max(1100px,var(--booking-frame-height,1180px))}
}


/* TST 1.5.3 — Speeddating lisibilité + Bookings immersif */
.speeddating-cardbox{
  background:#0c3155;
  color:#ffffff;
  border-color:rgba(0,159,227,.58);
}
.speeddating-cardbox .speeddating-lead{
  color:#dbeaf6;
  opacity:1;
  font-size:1rem;
}
.speeddating-action{
  color:#ffffff;
  background:rgba(255,255,255,.065);
  border-color:rgba(0,159,227,.58);
}
.speeddating-action:hover,
.speeddating-action:focus-visible{
  color:#ffffff;
  background:rgba(0,159,227,.20);
  border-color:#35c6ff;
}
.speeddating-icon{
  color:#5bd1ff;
}
.speeddating-social-link{
  color:#ffffff;
  border-color:rgba(91,209,255,.55);
  background:rgba(255,255,255,.05);
}
.speeddating-social-link:hover,
.speeddating-social-link:focus-visible{
  color:#5bd1ff;
  border-color:#5bd1ff;
}
.speeddating-identity,
.speeddating-redirect-note{
  color:#dbeaf6;
}
.speeddating-redirect-note{
  opacity:.72;
}

.booking-shell > .wrap{
  width:min(var(--booking-max-width,1320px),calc(100% - 56px));
}
.booking-frame-card{
  width:min(var(--booking-max-width,1320px),100%);
  margin-inline:auto;
  overflow:hidden;
  border:0;
  border-radius:8px;
  background:#fff;
  box-shadow:none;
}
.booking-frame{
  width:100%;
  min-height:calc(100vh - 140px);
  height:max(var(--booking-frame-height,1600px),calc(100vh - 140px));
}
.booking-head{
  width:min(980px,100%);
  margin:0 auto 22px;
}
@media(max-width:600px){
  .booking-shell > .wrap{width:100%}
  .booking-head{padding-inline:20px}
  .booking-frame-card{border-radius:0}
  .booking-frame{height:max(var(--booking-frame-height,1600px),1350px)}
}

/* TST 1.5.4 — Speeddating Maps / Partage */
.speeddating-share{
  font-family:inherit;
  font-size:inherit;
  font-style:inherit;
  line-height:inherit;
  font-weight:700;
  cursor:pointer;
  color:inherit;
}
.speeddating-share[disabled]{
  opacity:.72;
  cursor:default;
}


/* TST 1.5.9 — CTA Rendez-vous */
.contact-booking-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  margin-top:36px;
  padding:24px 26px;
  border:1px solid rgba(0,159,227,.28);
  border-radius:16px;
  background:rgba(0,159,227,.05);
}
.contact-booking-cta h2{
  margin:.2em 0 .4em;
}
.contact-booking-cta p:last-child{
  margin-bottom:0;
}
.contact-booking-cta .button{
  flex:0 0 auto;
}
@media(max-width:760px){
  .contact-booking-cta{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* TST 1.6.18 — Avis Google : footer + Speeddating */
.footer-review{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin:0 0 38px;
  padding:22px 24px;
  border:1px solid rgba(91,209,255,.72);
  border-left:5px solid var(--cyan);
  background:linear-gradient(110deg,rgba(0,159,227,.16),rgba(255,255,255,.035));
  box-shadow:0 14px 36px rgba(0,0,0,.16);
}
.footer-review-copy{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}
.footer-review-stars{
  flex:0 0 auto;
  color:#65d3ff;
  font-size:20px;
  letter-spacing:.08em;
  line-height:1;
}
.footer-review-copy strong{
  display:block;
  color:#fff;
  font-size:17px;
  line-height:1.25;
  margin-bottom:4px;
}
.footer-review-copy div>span{
  display:block;
  color:#c7d6e5;
  line-height:1.45;
}
.footer-review-button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 18px;
  border:1px solid var(--cyan);
  background:var(--cyan);
  color:#041a2a!important;
  text-decoration:none;
  font-weight:800;
  line-height:1.25;
  margin:0!important;
  transition:transform .18s,background .18s,border-color .18s;
}
.footer-review-button:hover,
.footer-review-button:focus-visible{
  transform:translateY(-2px);
  background:#59cbfb;
  border-color:#59cbfb;
  color:#041a2a!important;
}

.speeddating-review{
  grid-column:1 / -1;
  min-height:88px;
  flex-direction:row;
  gap:16px;
  text-align:left;
  padding:16px 20px;
  background:linear-gradient(100deg,rgba(0,159,227,.26),rgba(255,255,255,.07));
  border-color:#5bd1ff;
}
.speeddating-review .speeddating-icon{
  flex:0 0 38px;
  width:38px;
  height:38px;
  color:#7cddff;
}
.speeddating-review .speeddating-icon svg{
  width:34px;
  height:34px;
}
.speeddating-review-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.speeddating-review-copy strong{
  font-size:1.03rem;
  line-height:1.2;
}
.speeddating-review-copy small{
  color:#dbeaf6;
  font-size:.82rem;
  font-weight:500;
  line-height:1.3;
}
.speeddating-review:hover,
.speeddating-review:focus-visible{
  background:linear-gradient(100deg,rgba(0,159,227,.38),rgba(255,255,255,.10));
  border-color:#83e3ff;
}

@media(max-width:720px){
  .footer-review{
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
    padding:20px;
  }
  .footer-review-button{
    width:100%;
  }
}
@media(max-width:620px){
  .speeddating-review{
    grid-column:1 / -1;
    min-height:92px;
  }
}


/* TST 1.6.22 — pages juridiques : structure et densité */
.legal-page{
  padding-top:38px;
  padding-bottom:58px;
}
.legal-page>h2{
  max-width:1000px;
  margin:28px 0 9px;
  padding-top:0;
  font-size:24px;
  line-height:1.25;
  letter-spacing:-.025em;
}
.legal-page>h2:first-child{
  margin-top:0;
}
.legal-page>p{
  max-width:1000px;
  margin:0 0 9px;
  line-height:1.5;
}
.legal-page>ul,
.legal-page>ol{
  max-width:1000px;
  margin:6px 0 12px;
}
.legal-page>li,
.legal-page ul li,
.legal-page ol li{
  margin-bottom:4px;
  line-height:1.48;
}
.legal-address{
  line-height:1.48!important;
  margin-bottom:12px!important;
}
@media(max-width:600px){
  .legal-page{
    padding-top:28px;
    padding-bottom:42px;
  }
  .legal-page>h2{
    margin-top:24px;
    font-size:22px;
  }
}


/* TST 1.6.23 — article conseil Pièces */
.editorial-article{padding-top:42px;padding-bottom:72px}
.editorial-article .article-intro{font-size:1.12rem;line-height:1.65;max-width:920px;margin-bottom:30px}
.editorial-article>h2{max-width:960px;margin:34px 0 10px;font-size:clamp(22px,2.2vw,28px);line-height:1.25;letter-spacing:-.025em}
.editorial-article>p,.editorial-article>ul{max-width:920px}
.editorial-article>p{line-height:1.65;margin:0 0 14px}
.editorial-article>ul{margin:8px 0 20px;padding-left:24px}
.editorial-article>ul li{margin:0 0 7px;line-height:1.55}
.editorial-article .article-cta{max-width:1000px;margin-top:42px}
@media(max-width:600px){.editorial-article{padding-top:28px;padding-bottom:48px}.editorial-article .article-intro{font-size:1.04rem}.editorial-article>h2{margin-top:28px}}


/* ================================================================
   TST 1.6.31 — UI refresh léger
   ================================================================ */

/* Hero accueil : publics et signature plus présents */
.hero-foot{
  align-items:center;
  font-size:12px;
  font-weight:800;
  letter-spacing:.085em;
  text-transform:uppercase;
  color:#e3eef8;
}
.hero-foot span{
  position:relative;
}
.hero-foot span:not(:last-child)::after{
  content:"";
  position:absolute;
  right:-17px;
  top:50%;
  width:3px;
  height:3px;
  margin-top:-1px;
  border-radius:50%;
  background:var(--cyan);
  opacity:.8;
}
.hero-foot span:last-child{
  color:#6ad0ff;
  font-weight:900;
}

/* Un peu de mouvement dans l'objet technique du hero, uniquement en transform */
.orbit-one{
  animation:tstOrbitOne 16s ease-in-out infinite alternate;
  will-change:transform;
}
.orbit-two{
  animation:tstOrbitTwo 20s ease-in-out infinite alternate;
  will-change:transform;
}
.object-core{
  animation:tstCoreFloat 7s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes tstOrbitOne{
  from{transform:translate(-50%,-50%) rotate(27deg) scale(.99)}
  to{transform:translate(-50%,-50%) rotate(34deg) scale(1.015)}
}
@keyframes tstOrbitTwo{
  from{transform:translate(-50%,-50%) rotate(63deg) scale(1.01)}
  to{transform:translate(-50%,-50%) rotate(56deg) scale(.99)}
}
@keyframes tstCoreFloat{
  from{transform:translateY(-4px)}
  to{transform:translateY(5px)}
}

/* À la une : bande courte + carrousel horizontal natif */
.home-featured{
  padding:34px 0 38px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 82% 0%,rgba(0,159,227,.10),transparent 32%),
    linear-gradient(180deg,#f7fafc 0%,#fff 100%);
}
.home-featured__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:16px;
}
.home-featured__head .eyebrow{
  margin-bottom:7px;
}
.home-featured__head h2{
  margin:0;
  font-size:clamp(27px,3vw,38px);
}
.home-featured__controls{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}
.home-featured__controls button{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #b9cbd8;
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  font-size:20px;
  line-height:1;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.home-featured__controls button:hover,
.home-featured__controls button:focus-visible{
  transform:translateY(-2px);
  border-color:var(--cyan);
  background:#f4fbff;
}
.home-featured__viewport{
  overflow:hidden;
}
.home-featured__grid{
  display:flex;
  grid-template-columns:none;
  gap:16px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:3px 2px 12px;
}
.home-featured__grid::-webkit-scrollbar{
  display:none;
}
.home-featured__card{
  position:relative;
  flex:0 0 min(500px,42vw);
  min-height:205px;
  display:flex;
  flex-direction:column;
  padding:25px 27px 23px;
  overflow:hidden;
  scroll-snap-align:start;
  border:1px solid var(--line);
  border-radius:17px;
  background:#fff;
  box-shadow:0 10px 32px rgba(7,28,56,.055);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.home-featured__card::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:72px;
  height:3px;
  background:var(--cyan);
}
.home-featured__card:hover{
  transform:translateY(-3px);
  border-color:#b9dcea;
  box-shadow:0 15px 38px rgba(7,28,56,.085);
}
.home-featured__kicker{
  margin:0 0 12px!important;
  color:#087caf;
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.home-featured__card h3{
  margin:0 0 12px;
  font-size:clamp(18px,1.65vw,23px);
  line-height:1.16;
  letter-spacing:-.025em;
}
.home-featured__card h3 a{
  color:inherit;
  text-decoration:none;
}
.home-featured__card>p:not(.home-featured__kicker){
  max-width:440px;
  margin:0 0 15px;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.home-featured__card .text-link{
  margin-top:auto;
}

/* Pages métiers : le logo de la tuile devient un repère de page */
.page-intro{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 80% 15%,rgba(0,159,227,.12),transparent 30%),
    var(--blue);
}
.page-intro::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:
    linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(90deg,transparent 20%,#000 72%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 20%,#000 72%,transparent 100%);
}
.page-intro>.wrap{
  position:relative;
  z-index:1;
}
.page-intro--domain>.wrap{
  min-height:250px;
  padding-right:min(38vw,430px);
}
.page-intro__mark{
  position:absolute;
  top:50%;
  right:0;
  width:min(350px,31vw);
  min-height:165px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:18px 24px 14px;
  transform:translateY(-50%);
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  background:rgba(255,255,255,.96);
  box-shadow:0 24px 65px rgba(0,0,0,.19);
}
.page-intro__mark::before,
.page-intro__mark::after{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  border:2px solid var(--cyan);
}
.page-intro__mark::before{
  left:12px;
  top:12px;
  border-right:0;
  border-bottom:0;
}
.page-intro__mark::after{
  right:12px;
  bottom:12px;
  border-left:0;
  border-top:0;
}
.page-intro__mark img{
  width:min(260px,100%);
  height:112px;
  object-fit:contain;
}
.page-intro__mark span{
  margin-top:-10px;
  color:#506276;
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

/* Interactions : juste assez pour casser l'impression "figée" */
.button,
.domain-card,
.parts-banner,
.article-cta,
.text-link{
  transition:
    transform .2s ease,
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease,
    color .2s ease;
}
.button:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,159,227,.18);
}
.domain-card{
  overflow:hidden;
}
.domain-card::after{
  content:"";
  position:absolute;
  width:145px;
  height:145px;
  right:-80px;
  bottom:-90px;
  border:1px solid rgba(0,159,227,.16);
  border-radius:50%;
  transition:transform .28s ease,border-color .28s ease;
}
.domain-card:hover::after{
  transform:scale(1.2);
  border-color:rgba(0,159,227,.35);
}
.domain-logo{
  transition:transform .22s ease;
}
.domain-card:hover .domain-logo{
  transform:translateY(-2px) scale(1.018);
}
.parts-banner::after{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:-85px;
  top:-115px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:50%;
  pointer-events:none;
}
.article-cta:hover{
  box-shadow:0 14px 38px rgba(7,28,56,.07);
}

/* Tablet / mobile */
@media(max-width:900px){
  .hero-foot{
    justify-content:flex-start;
    gap:12px 25px;
  }
  .hero-foot span:last-child{
    display:inline-flex;
    width:100%;
    margin-top:2px;
  }
  .hero-foot span:nth-last-child(2)::after{
    display:none;
  }
  .home-featured__card{
    flex-basis:min(610px,72vw);
  }
  .page-intro--domain>.wrap{
    min-height:0;
    padding-right:0;
  }
  .page-intro__mark{
    position:relative;
    top:auto;
    right:auto;
    width:min(330px,100%);
    min-height:135px;
    margin-top:30px;
    transform:none;
  }
  .page-intro__mark img{
    height:90px;
  }
}
@media(max-width:600px){
  .hero-foot{
    font-size:10px;
    letter-spacing:.07em;
  }
  .hero-foot span:not(:last-child)::after{
    right:-14px;
  }
  .home-featured{
    padding:28px 0 32px;
  }
  .home-featured__head{
    align-items:center;
  }
  .home-featured__head h2{
    font-size:29px;
  }
  .home-featured__controls button{
    width:39px;
    height:39px;
  }
  .home-featured__card{
    flex-basis:86vw;
    min-height:215px;
    padding:23px 23px 21px;
  }
  .page-intro__mark{
    width:100%;
  }
}

@media(prefers-reduced-motion:reduce){
  .orbit-one,
  .orbit-two,
  .object-core{
    animation:none!important;
  }
  .home-featured__grid{
    scroll-behavior:auto;
  }
}


/* ================================================================
   TST 1.6.32 — logos métiers blancs + signature footer
   ================================================================ */

/* Les logos métier fournis par TST restent strictement inchangés.
   Ils sont affichés sur un support sombre/translucide pour préserver le blanc. */
.page-intro__mark{
  min-height:170px;
  padding:18px 24px;
  gap:0;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(4,24,46,.22);
  box-shadow:0 24px 65px rgba(0,0,0,.12);
  backdrop-filter:blur(2px);
}
.page-intro__mark img{
  width:min(285px,100%);
  height:135px;
  object-fit:contain;
}
.page-intro__mark span{
  display:none;
}

/* Pièces bénéficie du même traitement que les quatre autres domaines. */
.page-intro--domain .page-intro__mark{
  isolation:isolate;
}

/* Footer : « by TST | S. Tinguely » UNIQUEMENT à droite du logo TST Solutions. */
.footer-brand-lockup{
  display:flex;
  align-items:center;
  gap:18px;
  max-width:430px;
  margin-bottom:22px;
}
.footer-grid .footer-brand-lockup img{
  display:block;
  margin:0;
  height:auto;
  object-fit:contain;
}
.footer-grid .footer-brand-main{
  width:240px;
  flex:0 1 240px;
}
.footer-grid .footer-brand-by{
  width:132px;
  flex:0 0 132px;
  opacity:.94;
}
.footer-grid>div:first-child>p{
  margin-top:0;
}

@media(max-width:900px){
  .page-intro__mark{
    min-height:145px;
  }
  .page-intro__mark img{
    height:108px;
  }
  .footer-brand-lockup{
    gap:14px;
    max-width:390px;
  }
  .footer-grid .footer-brand-main{
    width:220px;
    flex-basis:220px;
  }
  .footer-grid .footer-brand-by{
    width:118px;
    flex-basis:118px;
  }
}

@media(max-width:480px){
  .footer-brand-lockup{
    gap:12px;
    max-width:100%;
  }
  .footer-grid .footer-brand-main{
    width:205px;
    flex:1 1 auto;
    min-width:0;
  }
  .footer-grid .footer-brand-by{
    width:105px;
    flex:0 0 105px;
  }
}


/* ================================================================
   TST 1.6.33 — bouton retour en haut
   ================================================================ */
.back-to-top{
  position:fixed;
  right:max(20px,env(safe-area-inset-right));
  bottom:max(20px,env(safe-area-inset-bottom));
  z-index:1200;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  background:rgba(8,32,57,.58);
  color:#fff;
  box-shadow:0 8px 26px rgba(0,0,0,.18);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px) scale(.96);
  transition:
    opacity .2s ease,
    visibility .2s ease,
    transform .2s ease,
    background .2s ease,
    border-color .2s ease;
}
.back-to-top.is-visible{
  opacity:.88;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
.back-to-top:hover,
.back-to-top:focus-visible{
  opacity:1;
  background:rgba(0,159,227,.82);
  border-color:rgba(255,255,255,.7);
  transform:translateY(-2px) scale(1.02);
}
.back-to-top:focus-visible{
  outline:3px solid rgba(106,208,255,.45);
  outline-offset:3px;
}
.back-to-top svg{
  width:23px;
  height:23px;
  fill:currentColor;
}
@media(max-width:600px){
  .back-to-top{
    right:max(14px,env(safe-area-inset-right));
    bottom:max(14px,env(safe-area-inset-bottom));
    width:43px;
    height:43px;
  }
}
@media(prefers-reduced-motion:reduce){
  .back-to-top{
    transition:none;
  }
}


/* ================================================================
   TST 1.6.35 - accueil : preuves + pourquoi TST
   ================================================================ */
.visually-hidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.home-proof{
  position:relative;
  z-index:2;
  padding:0 0 8px;
  background:#fff;
}
.home-proof__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);
  border-radius:15px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 12px 34px rgba(7,28,56,.055);
}
.home-proof__item{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:92px;
  padding:18px 22px;
  border-right:1px solid var(--line);
  color:inherit;
  text-decoration:none;
  transition:background .18s ease,transform .18s ease;
}
.home-proof__item:last-child{border-right:0}
a.home-proof__item:hover,
a.home-proof__item:focus-visible{background:#f5fbfe}
.home-proof__item strong{
  display:block;
  margin-bottom:4px;
  color:var(--blue);
  font-size:18px;
  line-height:1.05;
  letter-spacing:-.025em;
}
.home-proof__item span{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.home-why{
  padding:8px 0 42px;
}
.home-why__inner{
  display:grid;
  grid-template-columns:minmax(270px,.8fr) minmax(0,1.65fr);
  gap:56px;
  align-items:start;
  padding:38px 0 6px;
  border-top:1px solid var(--line);
}
.home-why__intro h2{
  margin:8px 0 16px;
  font-size:clamp(30px,3.2vw,45px);
  line-height:1.04;
  letter-spacing:-.045em;
}
.home-why__intro>p:last-child{
  max-width:430px;
  margin-bottom:0;
  color:var(--muted);
}
.home-why__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.home-why__grid article{
  position:relative;
  min-height:175px;
  padding:24px 24px 22px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(145deg,#fff 0%,#fbfdff 100%);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.home-why__grid article:hover{
  transform:translateY(-2px);
  border-color:#bfdde9;
  box-shadow:0 12px 30px rgba(7,28,56,.055);
}
.home-why__grid article>span{
  display:block;
  margin-bottom:18px;
  color:var(--cyan);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.home-why__grid h3{
  margin:0 0 9px;
  font-size:18px;
  line-height:1.18;
}
.home-why__grid p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
@media(max-width:900px){
  .home-proof__grid{grid-template-columns:repeat(2,1fr)}
  .home-proof__item:nth-child(2){border-right:0}
  .home-proof__item:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .home-why__inner{grid-template-columns:1fr;gap:28px}
}
@media(max-width:600px){
  .home-proof__item{min-height:82px;padding:16px 17px}
  .home-proof__item strong{font-size:16px}
  .home-proof__item span{font-size:10px}
  .home-why{padding-bottom:28px}
  .home-why__inner{padding-top:30px}
  .home-why__grid{grid-template-columns:1fr}
  .home-why__grid article{min-height:0}
}


/* ================================================================
   TST 1.6.37 - accueil : plus de respiration
   ================================================================ */
.home-featured{
  padding:44px 0 56px;
}
.home-featured__head{
  margin-bottom:24px;
}
.home-featured__viewport{
  padding-bottom:5px;
}
.home-featured__grid{
  gap:20px;
  padding-bottom:15px;
}
.home-featured__card{
  flex-basis:min(525px,44vw);
  min-height:235px;
  padding:30px 31px 27px;
}
.home-featured__card h3{
  margin-bottom:15px;
}
.home-featured__card>p:not(.home-featured__kicker){
  margin-bottom:19px;
  line-height:1.62;
}

.home-proof{
  padding:24px 0 38px;
}
.home-proof__grid{
  box-shadow:0 14px 38px rgba(7,28,56,.06);
}
.home-proof__item{
  min-height:104px;
  padding:21px 24px;
}
.home-proof__item strong{
  margin-bottom:7px;
}
.home-proof__item span{
  line-height:1.35;
}

.domains{
  padding-top:96px;
}
.section-heading{
  margin-bottom:48px;
}

@media(max-width:900px){
  .home-featured{
    padding:36px 0 46px;
  }
  .home-featured__card{
    flex-basis:min(620px,76vw);
    min-height:225px;
  }
  .home-proof{
    padding:20px 0 32px;
  }
  .home-proof__item{
    min-height:94px;
  }
  .domains{
    padding-top:78px;
  }
}
@media(max-width:600px){
  .home-featured{
    padding:30px 0 38px;
  }
  .home-featured__card{
    flex-basis:87vw;
    min-height:220px;
    padding:25px 24px 23px;
  }
  .home-proof{
    padding:16px 0 27px;
  }
  .home-proof__item{
    min-height:88px;
  }
  .domains{
    padding-top:65px;
  }
}


/* ================================================================
   TST 1.6.38 - accueil : repères en cartes distinctes
   ================================================================ */
.home-featured{
  border-bottom:0;
}

.home-proof{
  padding:8px 0 44px;
  background:#fff;
}
.home-proof__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  border:0;
  border-radius:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.home-proof__item{
  min-width:0;
  min-height:118px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px 18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
  box-shadow:0 12px 30px rgba(7,28,56,.05);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.home-proof__item:last-child{
  border-right:1px solid var(--line);
}
a.home-proof__item:hover,
.home-proof__item:hover,
a.home-proof__item:focus-visible{
  transform:translateY(-2px);
  border-color:#b9dcea;
  background:#f6fbff;
  box-shadow:0 16px 34px rgba(7,28,56,.08);
}
.home-proof__item strong{
  margin-bottom:8px;
  font-size:22px;
  line-height:1.05;
}
.home-proof__item span{
  max-width:17ch;
  line-height:1.45;
}

@media(max-width:900px){
  .home-proof__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .home-proof__item,
  .home-proof__item:last-child,
  .home-proof__item:nth-child(2),
  .home-proof__item:nth-child(-n+2){
    border:1px solid var(--line);
  }
}
@media(max-width:600px){
  .home-proof{
    padding:4px 0 32px;
  }
  .home-proof__grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .home-proof__item{
    min-height:102px;
    padding:22px 16px;
  }
  .home-proof__item strong{
    font-size:19px;
  }
  .home-proof__item span{
    max-width:22ch;
    font-size:11px;
  }
}


/* ================================================================
   TST 1.6.39 - repères éditoriaux, sans cartes
   ================================================================ */
.home-featured{
  border-bottom:0;
}
.home-proof{
  padding:14px 0 54px;
  background:#fff;
}
.home-proof__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  border:0;
  border-radius:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.home-proof__item,
.home-proof__item:last-child,
.home-proof__item:nth-child(2),
.home-proof__item:nth-child(-n+2){
  position:relative;
  min-width:0;
  min-height:118px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px 26px;
  border:0;
  border-right:1px solid rgba(12,47,76,.10);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:inherit;
  text-align:center;
  text-decoration:none;
}
.home-proof__item:last-child{border-right:0}
.home-proof__item:hover,
a.home-proof__item:hover,
a.home-proof__item:focus-visible{
  transform:none;
  background:transparent;
  box-shadow:none;
}
.home-proof__dot{
  display:block;
  width:7px;
  height:7px;
  margin-bottom:15px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 5px rgba(0,159,227,.09);
}
.home-proof__item strong{
  display:block;
  margin:0 0 7px;
  color:var(--blue);
  font-size:21px;
  line-height:1.08;
  letter-spacing:-.025em;
}
.home-proof__item span:not(.home-proof__dot){
  max-width:20ch;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:1.45;
  letter-spacing:.055em;
  text-transform:uppercase;
}
a.home-proof__item strong,
a.home-proof__item span:not(.home-proof__dot){transition:color .18s ease}
a.home-proof__item:hover strong,
a.home-proof__item:focus-visible strong{color:#087caf}
@media(max-width:900px){
  .home-proof{padding:10px 0 42px}
  .home-proof__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-proof__item,
  .home-proof__item:last-child,
  .home-proof__item:nth-child(2),
  .home-proof__item:nth-child(-n+2){
    min-height:110px;
    border:0;
    border-right:1px solid rgba(12,47,76,.10);
    border-bottom:1px solid rgba(12,47,76,.10);
  }
  .home-proof__item:nth-child(2),
  .home-proof__item:nth-child(4){border-right:0}
  .home-proof__item:nth-child(3),
  .home-proof__item:nth-child(4){border-bottom:0}
}
@media(max-width:600px){
  .home-proof{padding:4px 0 34px}
  .home-proof__grid{grid-template-columns:1fr}
  .home-proof__item,
  .home-proof__item:last-child,
  .home-proof__item:nth-child(2),
  .home-proof__item:nth-child(-n+2){
    min-height:96px;
    padding:18px 12px;
    border:0;
    border-bottom:1px solid rgba(12,47,76,.10);
  }
  .home-proof__item:last-child{border-bottom:0}
  .home-proof__dot{margin-bottom:11px}
  .home-proof__item strong{font-size:19px}
}
