/* ============================================================
   STUDIO AM MEDIA — feuille de style unique
   Polices auto-hébergées (aucune requête vers un tiers).
   ============================================================ */

/* ---------- Polices (variable, sous-ensemble latin) ---------- */
@font-face{
  font-family:'Outfit';font-style:normal;font-weight:400 900;font-display:swap;
  src:url('/fonts/outfit-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Outfit';font-style:normal;font-weight:400 900;font-display:swap;
  src:url('/fonts/outfit-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;
  src:url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;
  src:url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- Variables ---------- */
:root{
  --sam-bg:#FBFBFD;
  --sam-bg2:#F2F3F7;
  --sam-surface:#FFFFFF;
  --sam-surface2:#F5F6FA;
  --sam-line:rgba(16,18,27,.10);
  --sam-line2:rgba(16,18,27,.22);
  --sam-ink:#0D0E12;
  --sam-ink2:#55596B;
  --sam-accent:#3B5BFF;
  --sam-accent2:#2F4BE0;
  --sam-r:20px;
  --sam-wrap:1180px;
  --sam-ease:cubic-bezier(.22,1,.36,1);
  color-scheme:light;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{overflow-x:hidden;scroll-behavior:auto;}
html{background:var(--sam-bg);}
body{
  margin:0;
  background:transparent;
  color:var(--sam-ink);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.62;font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,p,ul,li,figure,form,fieldset{margin:0;padding:0;border:0;}
ul{list-style:none;}
a{color:inherit;text-decoration:none;}
img,svg,canvas{display:block;max-width:100%;}
button,input,select,textarea{font:inherit;color:inherit;background:none;border:0;border-radius:0;-webkit-appearance:none;appearance:none;}
:focus-visible{outline:2px solid var(--sam-accent2);outline-offset:3px;border-radius:6px;}

.sam-skip{
  position:absolute;left:-9999px;top:0;z-index:99;
  padding:12px 18px;border-radius:0 0 10px 0;
  background:var(--sam-accent);color:#fff;font-weight:600;
}
.sam-skip:focus{left:0;}

.sam-wrap{width:min(100% - 44px,var(--sam-wrap));margin-inline:auto;position:relative;z-index:2;}
.sam-sec{position:relative;padding:clamp(76px,10vw,144px) 0;}
.sam-mt{margin-top:20px;}

/* ---------- Typo ---------- */
.sam-h1{
  font-family:'Outfit',sans-serif;font-weight:900;
  font-size:clamp(2.45rem,7.1vw,5.1rem);
  line-height:.99;letter-spacing:-.035em;
  max-width:15ch;
}
.sam-h2{
  font-family:'Outfit',sans-serif;font-weight:900;
  font-size:clamp(1.95rem,4.6vw,3.3rem);
  line-height:1.05;letter-spacing:-.03em;
  max-width:20ch;
}
.sam-h3{
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(1.35rem,2.7vw,1.95rem);
  line-height:1.12;letter-spacing:-.02em;
}
.sam-lead{
  font-size:clamp(1.03rem,1.55vw,1.22rem);
  color:var(--sam-ink2);line-height:1.65;max-width:56ch;
}
.sam-kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sam-accent2);
}
.sam-kicker::before{content:'';width:26px;height:1px;background:currentColor;opacity:.55;flex:none;}

/* ---------- Logo ---------- */
.sam-logo{display:inline-block;line-height:1;}
.sam-logo-mark{
  display:block;font-family:'Outfit',sans-serif;font-weight:900;
  font-size:clamp(1.55rem,3vw,2.1rem);letter-spacing:-.045em;color:var(--sam-ink);
}
.sam-logo-mark i{font-style:normal;color:var(--sam-accent2);}
.sam-logo-sub{
  display:block;margin-top:.42em;font-size:.62rem;font-weight:600;
  letter-spacing:.46em;text-transform:uppercase;color:var(--sam-ink2);text-indent:.2em;
}

/* ---------- CTA (élément le plus contrasté de la page) ---------- */
.sam-cta{
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:19px 30px;border-radius:999px;
  background:var(--sam-accent);color:#fff;
  font-family:'Outfit',sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:-.01em;
  cursor:pointer;overflow:hidden;isolation:isolate;
  box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 10px 30px -8px rgba(59,91,255,.55);
  transition:transform .45s var(--sam-ease),box-shadow .45s var(--sam-ease),background .3s ease;
}
.sam-cta span{position:relative;z-index:2;}
.sam-cta svg{position:relative;z-index:2;width:17px;height:17px;flex:none;transition:transform .45s var(--sam-ease);}
.sam-cta::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.42) 50%,transparent 80%);
  transform:translateX(-130%);transition:transform .75s var(--sam-ease);
}
.sam-cta::after{
  content:'';position:absolute;inset:-2px;z-index:0;border-radius:999px;
  box-shadow:0 0 0 2px rgba(59,91,255,.55);opacity:0;transform:scale(.94);
  transition:opacity .5s ease,transform .5s var(--sam-ease);
}
@media (hover:hover){
  .sam-cta:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(255,255,255,.28) inset,0 16px 40px -10px rgba(59,91,255,.70);}
  .sam-cta:hover::before{transform:translateX(130%);}
  .sam-cta:hover::after{opacity:1;transform:scale(1.06);}
  .sam-cta:hover svg{transform:translateX(5px);}
}
.sam-cta:active{transform:translateY(-1px) scale(.985);}
.sam-cta-note{margin-top:16px;font-size:.86rem;color:var(--sam-ink2);}
.sam-cta-note b{color:var(--sam-ink);font-weight:500;}

/* ---------- HERO ---------- */
.sam-hero{
  position:relative;overflow:hidden;
  min-height:min(100svh,920px);
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(96px,13vw,140px) 0 clamp(72px,9vw,110px);
  background:
    radial-gradient(120% 78% at 78% 8%,rgba(59,91,255,.13),transparent 62%),
    radial-gradient(90% 60% at 6% 96%,rgba(99,80,255,.09),transparent 60%),
    var(--sam-bg);
}
.sam-net{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9;}
.sam-grid-bg{
  position:absolute;inset:-10% -10% 0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(13,14,18,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(13,14,18,.055) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(85% 70% at 50% 34%,#000 22%,transparent 78%);
  mask-image:radial-gradient(85% 70% at 50% 34%,#000 22%,transparent 78%);
}
.sam-hero-top{position:absolute;top:clamp(28px,5vw,52px);left:0;right:0;z-index:3;}
.sam-hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;}
.sam-hero .sam-h1{max-width:18ch;margin-inline:auto;}
.sam-hero .sam-lead{margin-inline:auto;}
.sam-badge{
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 15px 8px 11px;margin-bottom:26px;border-radius:999px;
  background:rgba(255,255,255,.72);border:1px solid var(--sam-line);
  font-size:.78rem;font-weight:500;color:var(--sam-ink2);letter-spacing:.01em;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.sam-pulse{position:relative;width:7px;height:7px;border-radius:50%;background:var(--sam-accent2);flex:none;}
.sam-pulse::after{content:'';position:absolute;inset:0;border-radius:50%;background:var(--sam-accent2);animation:sam-ping 2.4s ease-out infinite;}
@keyframes sam-ping{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(3.4);opacity:0}}
.sam-hero .sam-lead{margin-top:clamp(22px,3vw,30px);max-width:52ch;}
.sam-hero-cta{margin-top:clamp(34px,4.5vw,46px);}
.sam-scrollcue{
  position:absolute;left:0;right:0;bottom:clamp(22px,4vw,38px);z-index:3;
  display:flex;justify-content:center;pointer-events:none;
}
.sam-scrollcue i{
  display:block;width:1px;height:56px;
  background:linear-gradient(180deg,transparent,var(--sam-accent2),transparent);
  animation:sam-cue 2.6s ease-in-out infinite;transform-origin:top;
}
@keyframes sam-cue{0%,100%{transform:scaleY(.25);opacity:.35}50%{transform:scaleY(1);opacity:1}}

/* ---------- Bandeau technologies ---------- */
.sam-stack{
  padding:clamp(42px,5vw,62px) 0;
  background:var(--sam-bg2);
  border-top:1px solid var(--sam-line);border-bottom:1px solid var(--sam-line);
  overflow:hidden;
}
.sam-stack-lead{
  text-align:center;color:var(--sam-ink2);
  font-size:clamp(.88rem,1.3vw,.98rem);
  margin-bottom:clamp(26px,3.2vw,36px);
}
.sam-marquee{
  position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
.sam-marquee-track{display:flex;width:max-content;animation:sam-slide 46s linear infinite;}
.sam-marquee-half{display:flex;align-items:center;gap:clamp(32px,4vw,58px);padding-right:clamp(32px,4vw,58px);}
@keyframes sam-slide{to{transform:translateX(-50%);}}
@media (hover:hover){.sam-marquee:hover .sam-marquee-track{animation-play-state:paused;}}
.sam-tech{
  display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  color:var(--sam-ink2);transition:color .35s ease,transform .35s var(--sam-ease);
}
.sam-tech svg{width:21px;height:21px;flex:none;fill:currentColor;}
.sam-tech b{font-family:'Outfit',sans-serif;font-weight:600;font-size:.95rem;letter-spacing:-.012em;}
@media (hover:hover){.sam-tech:hover{color:var(--sam-accent);transform:translateY(-2px);}}

/* ---------- Pôles ---------- */
.sam-poles{background:linear-gradient(180deg,var(--sam-bg) 0%,var(--sam-bg2) 100%);}
.sam-sec-head{margin-bottom:clamp(42px,5.5vw,66px);text-align:center;max-width:none;}
.sam-sec-head .sam-h2{margin-inline:auto;}
.sam-sec-head .sam-lead{margin-inline:auto;}
.sam-sec-head .sam-kicker{justify-content:center;}
.sam-sec-head .sam-h2{margin-top:20px;}
.sam-sec-head .sam-lead{margin-top:20px;}

.sam-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.2vw,26px);}
.sam-pole{
  position:relative;display:flex;flex-direction:column;
  padding:clamp(28px,3.4vw,44px);border-radius:var(--sam-r);
  background:linear-gradient(180deg,#FFFFFF 0%,#FAFAFC 100%);
  border:1px solid var(--sam-line);overflow:hidden;box-shadow:0 1px 2px rgba(16,18,27,.04);
  transition:transform .6s var(--sam-ease),border-color .5s ease,box-shadow .6s var(--sam-ease);
  transform-style:preserve-3d;
}
.sam-pole::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(59,91,255,.10),transparent 62%);
}
.sam-pole::after{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(59,91,255,.9),transparent);
  opacity:0;transition:opacity .5s ease;
}
@media (hover:hover){
  .sam-pole:hover{border-color:var(--sam-line2);box-shadow:0 18px 40px -22px rgba(16,18,27,.28);}
  .sam-pole:hover::before,.sam-pole:hover::after{opacity:1;}
}
.sam-pole-num{
  display:inline-block;font-family:'Outfit',sans-serif;font-weight:700;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sam-accent2);
}
.sam-pole .sam-h3{margin:16px 0 14px;}
.sam-pole-lead{color:var(--sam-ink2);font-size:1rem;max-width:34ch;}
.sam-rule{height:1px;background:var(--sam-line);margin:clamp(24px,3vw,32px) 0;}
.sam-list{display:flex;flex-direction:column;gap:2px;}
.sam-item{
  position:relative;padding:15px 12px 15px 26px;border-radius:12px;
  transition:background .35s ease,transform .45s var(--sam-ease);
}
.sam-item::before{
  content:'';position:absolute;left:6px;top:24px;width:6px;height:6px;border-radius:50%;
  background:var(--sam-ink2);transition:background .35s ease,transform .45s var(--sam-ease),box-shadow .35s ease;
}
.sam-item b{display:block;font-family:'Outfit',sans-serif;font-weight:700;font-size:1.02rem;letter-spacing:-.012em;color:var(--sam-ink);}
.sam-item span{display:block;margin-top:5px;font-size:.94rem;color:var(--sam-ink2);line-height:1.55;}
@media (hover:hover){
  .sam-item:hover{background:rgba(16,18,27,.035);transform:translateX(4px);}
  .sam-item:hover::before{background:var(--sam-accent);transform:scale(1.35);box-shadow:0 0 12px 2px rgba(59,91,255,.45);}
}

/* ---------- Bande CTA ---------- */
.sam-band{position:relative;padding:clamp(54px,7vw,86px) 0;background:var(--sam-bg2);}
.sam-band-in{
  display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  padding:clamp(28px,3.6vw,44px);border-radius:var(--sam-r);
  background:
    radial-gradient(120% 180% at 100% 0%,rgba(59,91,255,.14),transparent 58%),
    var(--sam-surface);
  border:1px solid var(--sam-line);
}
.sam-band-txt{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(1.3rem,2.6vw,1.85rem);letter-spacing:-.025em;line-height:1.18;max-width:22ch;}

/* ---------- Approche ---------- */
.sam-approach{background:linear-gradient(180deg,var(--sam-bg2) 0%,var(--sam-bg) 100%);}
.sam-steps{position:relative;display:flex;flex-direction:column;gap:clamp(30px,4vw,52px);padding-left:clamp(34px,5vw,64px);}
.sam-steps::before{
  content:'';position:absolute;left:clamp(9px,1.4vw,17px);top:6px;bottom:6px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--sam-accent),rgba(59,91,255,.10));
  transform-origin:top;transition:transform 1.5s var(--sam-ease) .15s;
}
.js .sam-steps::before{transform:scaleY(0);}
.js .sam-steps.sam-in::before{transform:scaleY(1);}
.sam-step{position:relative;}
.sam-step::before{
  content:'';position:absolute;left:calc(-1 * clamp(34px,5vw,64px) + clamp(4px,1vw,12px));top:9px;
  width:12px;height:12px;border-radius:50%;background:var(--sam-bg);
  border:2px solid var(--sam-accent);box-shadow:0 0 0 5px rgba(59,91,255,.14);
}
.sam-step h3{font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(1.18rem,2.3vw,1.55rem);letter-spacing:-.022em;line-height:1.22;}
.sam-step p{margin-top:10px;color:var(--sam-ink2);max-width:58ch;font-size:1rem;}

/* ---------- FAQ ---------- */
.sam-faq-sec{background:var(--sam-bg);}
.sam-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,3.4vw,44px) clamp(28px,4vw,56px);}
.sam-faq-item h3{
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(1.08rem,1.9vw,1.28rem);line-height:1.3;letter-spacing:-.018em;
  color:var(--sam-ink);
}
.sam-faq-item p{margin-top:10px;color:var(--sam-ink2);font-size:.97rem;line-height:1.62;}

/* ---------- Contact ---------- */
.sam-contact{position:relative;background:var(--sam-bg);overflow:hidden;}
.sam-contact{padding-bottom:clamp(44px,4.5vw,68px);}
.sam-contact::before{
  content:'';position:absolute;inset:auto -20% -55% -20%;height:80%;pointer-events:none;z-index:0;
  background:radial-gradient(60% 100% at 50% 100%,rgba(59,91,255,.13),transparent 70%);
}
.sam-contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:start;}
.sam-mail{
  display:inline-flex;align-items:center;gap:10px;margin-top:26px;
  font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(1rem,1.9vw,1.2rem);
  letter-spacing:-.02em;color:var(--sam-ink);
  border-bottom:1px solid var(--sam-line2);padding-bottom:5px;
  transition:color .3s ease,border-color .3s ease;
}
.sam-mail svg{width:16px;height:16px;transition:transform .45s var(--sam-ease);}
@media (hover:hover){
  .sam-mail:hover{color:var(--sam-accent2);border-color:var(--sam-accent);}
  .sam-mail:hover svg{transform:translate(3px,-3px);}
}
.sam-form{
  position:relative;padding:clamp(24px,3.2vw,38px);border-radius:var(--sam-r);
  background:var(--sam-surface);border:1px solid var(--sam-line);
  box-shadow:0 24px 60px -40px rgba(16,18,27,.35);
}
.sam-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.sam-field{position:relative;display:flex;flex-direction:column;gap:8px;}
.sam-field.sam-full{grid-column:1 / -1;}
.sam-field label{font-size:.8rem;font-weight:500;letter-spacing:.04em;color:var(--sam-ink2);}
.sam-field input,.sam-field select,.sam-field textarea{
  width:100%;padding:14px 16px;border-radius:12px;
  background:var(--sam-surface2);border:1px solid var(--sam-line);
  color:var(--sam-ink);font-size:.97rem;line-height:1.5;
  transition:border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.sam-field textarea{min-height:130px;resize:vertical;}
.sam-field select{
  cursor:pointer;padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%2355596B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;
}
.sam-field select option{background:#FFFFFF;color:#0D0E12;}
.sam-field input::placeholder,.sam-field textarea::placeholder{color:#5F6376;}
.sam-field input:focus,.sam-field select:focus,.sam-field textarea:focus{
  outline:none;border-color:var(--sam-accent);background:#FFFFFF;
  box-shadow:0 0 0 3px rgba(59,91,255,.22);
}
.sam-field.sam-err input,.sam-field.sam-err textarea{border-color:#D93A3A;box-shadow:0 0 0 3px rgba(217,58,58,.14);}
.sam-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;}
.sam-form-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:24px;}
.sam-status{font-size:.88rem;color:var(--sam-ink2);min-height:1.4em;flex:1 1 200px;}
.sam-status.sam-ok{color:var(--sam-accent2);}
.sam-status.sam-ko{color:#C42B2B;}
.sam-legal{margin-top:18px;font-size:.79rem;color:#5F6376;line-height:1.55;}

/* ---------- Footer ---------- */
.sam-foot{padding:34px 0 44px;border-top:1px solid var(--sam-line);background:var(--sam-bg2);}
.sam-foot-in{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.sam-foot small{font-size:.82rem;color:#5F6376;}
.sam-foot-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;}
.sam-foot-links a{font-size:.82rem;color:#5F6376;border-bottom:1px solid transparent;transition:color .3s ease,border-color .3s ease;}
@media (hover:hover){.sam-foot-links a:hover{color:var(--sam-accent);border-color:var(--sam-accent);}}

/* ---------- Réalisations (accueil) ---------- */
.sam-work{background:var(--sam-bg);}
.sam-workcard{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:clamp(28px,4vw,56px);align-items:center;
  padding:clamp(28px,3.4vw,44px);border-radius:var(--sam-r);
  background:var(--sam-surface);border:1px solid var(--sam-line);
  box-shadow:0 1px 2px rgba(16,18,27,.04);
  transition:transform .6s var(--sam-ease),border-color .5s ease,box-shadow .6s var(--sam-ease);
  transform-style:preserve-3d;position:relative;overflow:hidden;
}
.sam-workcard::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s ease;
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,0%),rgba(59,91,255,.10),transparent 62%);
}
@media (hover:hover){
  .sam-workcard:hover{border-color:var(--sam-line2);box-shadow:0 22px 46px -26px rgba(16,18,27,.30);}
  .sam-workcard:hover::before{opacity:1;}
  .sam-workcard:hover .sam-worklink svg{transform:translateX(5px);}
}
.sam-workcard-txt h3{
  margin:10px 0 12px;font-family:'Outfit',sans-serif;font-weight:900;
  font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:1;letter-spacing:-.03em;color:var(--sam-ink);
}
.sam-workcard-txt p{font-size:1rem;line-height:1.65;color:var(--sam-ink2);max-width:52ch;}
.sam-worktags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
.sam-worktags li{
  font-size:.76rem;font-weight:500;color:var(--sam-ink2);
  border:1px solid var(--sam-line);border-radius:999px;padding:5px 11px;background:var(--sam-bg2);
}
.sam-worklink{
  display:inline-flex;align-items:center;gap:9px;margin-top:24px;
  font-family:'Outfit',sans-serif;font-weight:700;font-size:1rem;color:var(--sam-accent2);
}
.sam-worklink svg{width:16px;height:16px;transition:transform .45s var(--sam-ease);}
.sam-workcard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--sam-line);border:1px solid var(--sam-line);border-radius:16px;overflow:hidden;}
.sam-workcard-stats div{background:var(--sam-bg2);padding:clamp(18px,2.2vw,26px);}
.sam-workcard-stats b{display:block;font-family:'Outfit',sans-serif;font-weight:900;font-size:clamp(1.5rem,2.8vw,2rem);line-height:1;letter-spacing:-.03em;color:var(--sam-ink);}
.sam-workcard-stats span{display:block;margin-top:7px;font-size:.82rem;color:var(--sam-ink2);}
@media (max-width:900px){.sam-workcard{grid-template-columns:minmax(0,1fr);}}

/* ---------- Bande garanties ---------- */
.sam-trust{padding:clamp(56px,7vw,86px) 0;background:var(--sam-bg2);border-top:1px solid var(--sam-line);border-bottom:1px solid var(--sam-line);}
.sam-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2vw,22px);}
.sam-trust-item{
  padding:clamp(26px,2.4vw,28px);border-radius:16px;
  background:var(--sam-surface);border:1px solid var(--sam-line);
  box-shadow:0 1px 2px rgba(16,18,27,.04);
  transition:transform .45s var(--sam-ease),box-shadow .45s var(--sam-ease),border-color .35s ease;
}
@media (hover:hover){.sam-trust-item:hover{transform:translateY(-3px);border-color:var(--sam-line2);box-shadow:0 14px 30px -18px rgba(16,18,27,.25);}}
.sam-trust-item svg{width:22px;height:22px;stroke:var(--sam-accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.sam-trust-item b{display:block;margin:14px 0 6px;font-family:'Outfit',sans-serif;font-weight:700;font-size:1rem;letter-spacing:-.015em;color:var(--sam-ink);}
.sam-trust-item span{display:block;font-size:.92rem;line-height:1.55;color:var(--sam-ink2);}
@media (max-width:900px){.sam-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.sam-trust-grid{grid-template-columns:minmax(0,1fr);}}

/* ---------- Pages légales ---------- */
.sam-doc-top{padding:clamp(28px,4vw,44px) 0;border-bottom:1px solid var(--sam-line);background:var(--sam-bg);}
.sam-doc{padding:clamp(56px,7vw,88px) 0 clamp(72px,9vw,120px);}
.sam-doc .sam-wrap{max-width:880px;}
.sam-doc-date{margin-top:20px;font-size:.95rem;color:#5F6376;}
.sam-doc h2{
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(1.42rem,2.6vw,1.78rem);line-height:1.28;letter-spacing:-.02em;
  color:var(--sam-ink);margin:clamp(46px,5vw,66px) 0 16px;
}
.sam-doc h3{
  font-family:'Outfit',sans-serif;font-weight:600;
  font-size:1.14rem;line-height:1.38;color:var(--sam-ink);margin:32px 0 10px;
}
.sam-doc p,.sam-doc li{color:var(--sam-ink2);font-size:1.06rem;line-height:1.78;}
.sam-doc p{margin-bottom:17px;}
.sam-doc ul{margin:0 0 20px;padding-left:22px;list-style:disc;}
.sam-doc li{margin-bottom:9px;}
.sam-doc a{color:var(--sam-accent2);border-bottom:1px solid currentColor;}
.sam-doc strong{color:var(--sam-ink);font-weight:600;}
.sam-doc-note{
  margin:26px 0;padding:18px 20px;border-radius:14px;
  background:var(--sam-surface);border:1px solid var(--sam-line);
  border-left:3px solid var(--sam-accent);
}
.sam-doc-note p{margin:0;font-size:.98rem;}
.sam-doc-back{display:inline-flex;align-items:center;gap:8px;margin-top:44px;font-weight:600;color:var(--sam-accent2);}

/* ---------- Animations d'apparition ----------
   Les états masqués ne s'appliquent que si <html class="js"> est présent.
   Filet de sécurité : si app.js ne démarre jamais (erreur réseau, blocage),
   l'animation sam-failsafe rend tout visible au bout de 6 s. Dès que le JS
   démarre il pose .sam-ready, ce qui annule ce filet. */
.js [data-reveal]{
  opacity:0;transform:translate3d(0,28px,0);
  transition:opacity .85s var(--sam-ease),transform .85s var(--sam-ease);
  transition-delay:var(--d,0ms);
  animation:sam-failsafe .01s linear 6s forwards;
}
.js.sam-ready [data-reveal]{animation:none;}
[data-reveal].sam-in{opacity:1;transform:none;}
@keyframes sam-failsafe{to{opacity:1;transform:none;}}

.sam-w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.1em .04em .14em 0;margin:-.1em 0 -.14em;}
.sam-wi{
  display:inline-block;transform:translate3d(0,112%,0) rotate(4deg);opacity:0;
  transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .55s ease;
  transition-delay:var(--d,0ms);
}
.sam-split-in .sam-wi{transform:none;opacity:1;}

/* Décalages d'apparition (remplacent les styles en ligne, incompatibles CSP) */
.sam-d1{--d:110ms;}
.sam-d2{--d:220ms;}
.sam-d3{--d:330ms;}
.sam-d4{--d:520ms;}
.sam-hero .sam-d3{--d:520ms;}
.sam-hero .sam-d4{--d:660ms;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .sam-grid2{grid-template-columns:minmax(0,1fr);}
  .sam-contact-grid{grid-template-columns:minmax(0,1fr);gap:36px;}
  .sam-band-in{flex-direction:column;align-items:flex-start;}
  .sam-faq{grid-template-columns:minmax(0,1fr);gap:30px;}
}
@media (max-width:640px){
  body{font-size:15.5px;}
  .sam-wrap{width:min(100% - 36px,var(--sam-wrap));}
  .sam-h1{font-size:clamp(2.15rem,10vw,3.1rem);letter-spacing:-.03em;max-width:none;}
  .sam-hero{min-height:auto;padding:clamp(104px,26vw,132px) 0 76px;}
  .sam-hero .sam-lead{font-size:1.02rem;}
  .sam-cta{width:100%;justify-content:center;padding:18px 24px;font-size:1rem;}
  .sam-cta-note{text-align:center;}
  .sam-scrollcue{display:none;}
  .sam-grid-bg{background-size:48px 48px;}
  .sam-fields{grid-template-columns:minmax(0,1fr);}
  .sam-sec{padding:72px 0;}
  .sam-steps{padding-left:30px;}
  .sam-step::before{left:-30px;top:7px;width:10px;height:10px;}
  .sam-steps::before{left:7px;}
  .sam-form-foot{flex-direction:column-reverse;align-items:stretch;}
  /* En colonne, flex-basis:200px devient une HAUTEUR : le message de statut,
     vide au chargement, creusait un trou de 200 px sous le bouton. */
  .sam-status{text-align:center;flex:0 0 auto;}
  /* Pied de page centre en mobile : le logo seul, cale a gauche sous une
     page dont tous les titres sont centres, tombait de travers. */
  .sam-foot-in{flex-direction:column;align-items:center;text-align:center;gap:20px;}
  .sam-foot-links{justify-content:center;}
  /* .sam-logo-sub porte un letter-spacing de .46em : la derniere lettre
     traine un blanc qui decale le mot vers la gauche une fois centre. */
  .sam-foot-in .sam-logo-sub{margin-left:.46em;}
  /* Zones tactiles : WCAG 2.2 (2.5.8) demande 24 px minimum sur la plus
     petite dimension. Ces liens de navigation faisaient 22 px de haut. */
  .sam-foot-links{gap:2px 20px;}
  .sam-foot-links a{display:inline-block;padding:11px 0;}
  .sam-back-link{display:inline-block;padding:11px 0;}
  .sam-doc-back{padding:11px 0;margin-top:33px;}
  .sam-mail{padding-block:6px;}
  .js [data-reveal]{transform:translate3d(0,18px,0);transition-duration:.7s;}
  [data-reveal].sam-in{transform:none;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;transition-delay:0ms!important;
  }
  [data-reveal]{opacity:1!important;transform:none!important;}
  .sam-wi{opacity:1!important;transform:none!important;}
  .sam-steps::before{transform:scaleY(1)!important;}
  /* Le bandeau cesse de défiler et se replie sur plusieurs lignes */
  .sam-marquee{-webkit-mask-image:none;mask-image:none;}
  .sam-marquee-track{animation:none!important;width:auto;}
  .sam-marquee-half{flex-wrap:wrap;justify-content:center;padding-right:0;}
  .sam-dup{display:none;}
  /* Fond, reflet, halo et barre de lecture : entierement desactives */
  body::before{animation:none!important;transform:none!important;}
  .sam-band-in::after{display:none!important;}
  .sam-progress{animation:none!important;transform:scaleX(0)!important;opacity:0!important;}
}

/* ============================================================
   ÉTUDE DE CAS (percale.html)
   ============================================================ */
.sam-doc-top-in{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.sam-back-link{font-size:.9rem;font-weight:600;color:var(--sam-accent2);border-bottom:1px solid transparent;transition:border-color .3s ease;}
@media (hover:hover){.sam-back-link:hover{border-color:currentColor;}}

.sam-case-hero{
  position:relative;overflow:hidden;
  padding:clamp(92px,9vw,104px) 0 clamp(74px,7.5vw,88px);
  background:
    radial-gradient(120% 100% at 82% -10%,rgba(59,91,255,.13),transparent 58%),
    var(--sam-bg);
}
.sam-case-tags{display:flex;flex-wrap:wrap;gap:8px;}
.sam-chip{
  font-size:.76rem;font-weight:500;letter-spacing:.02em;color:var(--sam-ink2);
  border:1px solid var(--sam-line);border-radius:999px;padding:6px 13px;background:var(--sam-surface);
}
.sam-case-title{font-size:clamp(3.2rem,10vw,6.4rem);margin-top:14px;max-width:none;}
.sam-case-thesis{
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(1.3rem,3vw,2rem);line-height:1.24;letter-spacing:-.025em;
  color:var(--sam-ink);max-width:24ch;margin-top:22px;
}
.sam-case-hero .sam-lead{margin-top:20px;}

/* Chiffres clés */
.sam-stats{background:var(--sam-bg2);border-top:1px solid var(--sam-line);border-bottom:1px solid var(--sam-line);}
.sam-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.sam-stat{padding:clamp(28px,3vw,32px) clamp(18px,2vw,26px);border-left:1px solid var(--sam-line);}
.sam-stat:first-child{border-left:0;padding-left:0;}
.sam-stat b{
  display:block;font-family:'Outfit',sans-serif;font-weight:900;
  font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1;letter-spacing:-.03em;color:var(--sam-ink);
}
.sam-stat span{display:block;margin-top:10px;font-size:.86rem;line-height:1.45;color:var(--sam-ink2);}

/* Parcours */
.sam-steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,1.8vw,20px);list-style:none;padding:0;}
.sam-stepcard{
  padding:clamp(26px,2.4vw,28px);border-radius:16px;
  background:var(--sam-surface);border:1px solid var(--sam-line);
  box-shadow:0 1px 2px rgba(16,18,27,.04);
}
.sam-stepnum{font-family:'Outfit',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.16em;color:var(--sam-accent2);}
.sam-stepcard h3{margin:14px 0 8px;font-family:'Outfit',sans-serif;font-weight:700;font-size:1.06rem;letter-spacing:-.015em;color:var(--sam-ink);}
.sam-stepcard p{font-size:.93rem;line-height:1.6;color:var(--sam-ink2);}

/* Deux applications */
.sam-apps{background:var(--sam-bg2);border-top:1px solid var(--sam-line);border-bottom:1px solid var(--sam-line);}
.sam-apps-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,4vw,56px);}
.sam-appcard{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center;}
.sam-appcap{max-width:36ch;}
.sam-appk{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sam-accent2);}
.sam-appcap h3{margin:8px 0 8px;font-family:'Outfit',sans-serif;font-weight:700;font-size:1.28rem;letter-spacing:-.02em;color:var(--sam-ink);}
.sam-appcap p{font-size:.95rem;line-height:1.6;color:var(--sam-ink2);}

.sam-phone{
  width:262px;max-width:74vw;flex:none;
  border-radius:38px;padding:11px;
  background:linear-gradient(160deg,#20283a,#0d1119);
  box-shadow:0 40px 70px -40px rgba(16,18,27,.55);
  transition:transform .5s var(--sam-ease);
}
@media (hover:hover){.sam-appcard:hover .sam-phone{transform:translateY(-6px);}}
.sam-screen{
  border-radius:28px;overflow:hidden;background:var(--sam-surface);
  aspect-ratio:9/19;padding:16px 14px;text-align:left;
  display:flex;flex-direction:column;gap:11px;
}
.sam-scr-top{display:flex;justify-content:space-between;font-size:.6rem;color:var(--sam-ink2);letter-spacing:.04em;}
.sam-scr-label{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sam-ink2);}
.sam-order{background:var(--sam-accent);color:#fff;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px;}
.sam-order-id{font-size:.58rem;letter-spacing:.05em;opacity:.85;}
.sam-order-price{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.45rem;line-height:1;}
.sam-order-eta{font-size:.62rem;opacity:.92;}
.sam-track{background:var(--sam-surface2);border:1px solid var(--sam-line);border-radius:14px;padding:12px;}
.sam-tstep{position:relative;padding:0 0 12px 20px;}
.sam-tstep:last-child{padding-bottom:0;}
.sam-tstep i{position:absolute;left:0;top:2px;width:11px;height:11px;border-radius:50%;border:2px solid var(--sam-line);background:var(--sam-surface);}
.sam-tstep.sam-done i{background:var(--sam-accent);border-color:var(--sam-accent);}
.sam-tstep.sam-now i{border-color:var(--sam-accent);box-shadow:0 0 0 3px rgba(59,91,255,.18);}
.sam-tstep::before{content:'';position:absolute;left:5px;top:13px;bottom:0;width:1.5px;background:var(--sam-line);}
.sam-tstep:last-child::before{display:none;}
.sam-tstep b{display:block;font-size:.7rem;color:var(--sam-ink);}
.sam-tstep small{font-size:.6rem;color:var(--sam-ink2);}
.sam-minis{display:flex;gap:6px;}
.sam-mini{flex:1;background:var(--sam-surface2);border:1px solid var(--sam-line);border-radius:12px;padding:10px 8px;}
.sam-mini b{display:block;font-family:'Outfit',sans-serif;font-weight:900;font-size:1.15rem;line-height:1;color:var(--sam-ink);}
.sam-mini b.sam-eur{color:var(--sam-accent);}
.sam-mini span{display:block;margin-top:4px;font-size:.55rem;color:var(--sam-ink2);}
.sam-row{display:flex;align-items:center;gap:8px;background:var(--sam-surface2);border:1px solid var(--sam-line);border-radius:12px;padding:9px 10px;}
.sam-row i{width:26px;height:26px;border-radius:8px;background:rgba(59,91,255,.12);flex:none;}
.sam-row b{font-size:.68rem;color:var(--sam-ink);}
.sam-row small{font-size:.57rem;color:var(--sam-ink2);}
.sam-row em{margin-left:auto;font-style:normal;font-size:.53rem;color:var(--sam-accent2);border:1px solid var(--sam-line);border-radius:999px;padding:3px 7px;white-space:nowrap;}
.sam-scr-cta{margin-top:auto;background:var(--sam-ink);color:#fff;border-radius:12px;padding:10px;text-align:center;font-size:.72rem;font-weight:600;}

/* Fonctionnalités */
.sam-feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,1.8vw,20px);}
.sam-feat{padding:clamp(26px,2.4vw,28px);border-radius:16px;background:var(--sam-surface);border:1px solid var(--sam-line);box-shadow:0 1px 2px rgba(16,18,27,.04);}
.sam-feat h3{margin-bottom:8px;font-family:'Outfit',sans-serif;font-weight:700;font-size:1.04rem;letter-spacing:-.015em;color:var(--sam-ink);}
.sam-feat p{font-size:.93rem;line-height:1.6;color:var(--sam-ink2);}

/* Technique */
.sam-tech-sec{background:var(--sam-bg2);border-top:1px solid var(--sam-line);}
.sam-tech-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,5vw,64px);align-items:start;}
.sam-checklist{margin-top:26px;display:flex;flex-direction:column;gap:12px;}
.sam-checklist li{position:relative;padding-left:28px;font-size:.98rem;line-height:1.6;color:var(--sam-ink2);}
.sam-checklist li::before{
  content:'';position:absolute;left:0;top:.42em;width:14px;height:8px;
  border-left:2px solid var(--sam-accent);border-bottom:2px solid var(--sam-accent);
  transform:rotate(-45deg);
}
.sam-techlist{background:var(--sam-surface);border:1px solid var(--sam-line);border-radius:16px;overflow:hidden;box-shadow:0 1px 2px rgba(16,18,27,.04);}
.sam-trow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 20px;border-top:1px solid var(--sam-line);}
.sam-trow:first-child{border-top:0;}
.sam-trow span{font-size:.88rem;color:var(--sam-ink2);}
.sam-trow b{font-size:.88rem;font-weight:600;color:var(--sam-ink);text-align:right;}

@media (max-width:900px){
  .sam-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sam-stat:nth-child(3){border-left:0;padding-left:0;}
  .sam-stat:nth-child(3),.sam-stat:nth-child(4){border-top:1px solid var(--sam-line);padding-top:24px;margin-top:8px;}
  .sam-steps-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sam-feat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sam-apps-grid{grid-template-columns:minmax(0,1fr);}
  .sam-tech-grid{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:560px){
  .sam-stats-grid,.sam-steps-grid,.sam-feat-grid{grid-template-columns:minmax(0,1fr);}
  .sam-stat{border-left:0;padding-left:0;}
  .sam-stat+.sam-stat{border-top:1px solid var(--sam-line);}
  /* Une seule colonne : les cartes peuvent occuper la largeur sans etouffer. */
  .sam-stepcard,.sam-feat,.sam-trust-item{padding:28px 26px;}
  .sam-steps-grid,.sam-feat-grid,.sam-trust-grid{gap:16px;}
  .sam-case-thesis{margin-top:26px;}
  .sam-case-tags{gap:9px;}
  /* Ce kicker passe sur deux lignes en mobile : le trait de fin se retrouvait
     seul en bout de seconde ligne. On ne garde que celui de gauche. */
  .sam-case-hero .sam-kicker::after{display:none;}
}

/* ---------- Méthode : grille 2 x 2 ---------- */
.sam-msteps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.2vw,26px);list-style:none;padding:0;}
.sam-mstep{
  position:relative;padding:clamp(26px,3vw,38px);border-radius:var(--sam-r);
  background:var(--sam-surface);border:1px solid var(--sam-line);
  box-shadow:0 1px 2px rgba(16,18,27,.04);
  transition:transform .5s var(--sam-ease),border-color .4s ease,box-shadow .5s var(--sam-ease);
}
@media (hover:hover){.sam-mstep:hover{transform:translateY(-3px);border-color:var(--sam-line2);box-shadow:0 16px 34px -20px rgba(16,18,27,.26);}}
.sam-mnum{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:10px;
  background:rgba(59,91,255,.10);color:var(--sam-accent2);
  font-family:'Outfit',sans-serif;font-weight:700;font-size:.86rem;
}
.sam-mstep h3{margin:16px 0 10px;font-family:'Outfit',sans-serif;font-weight:700;font-size:clamp(1.1rem,2vw,1.32rem);line-height:1.25;letter-spacing:-.02em;color:var(--sam-ink);}
.sam-mstep p{font-size:.98rem;line-height:1.68;color:var(--sam-ink2);}
@media (max-width:760px){.sam-msteps{grid-template-columns:minmax(0,1fr);}}


/* ============================================================
   FOND ANIMÉ + ÉLÉMENTS DÉCORATIFS
   Tout est décoratif, en pseudo-éléments ou en aria-hidden :
   aucun impact sur le contenu lu par un lecteur d'écran.
   Le bloc prefers-reduced-motion en fin de fichier neutralise
   l'ensemble des animations ci-dessous.
   ============================================================ */

/* ---------- Halo de fond (aurore) ----------
   Calque fixe placé sous le contenu. Les sections opaques
   (.sam-stack, .sam-poles, .sam-band) le masquent : c'est voulu,
   cela crée le rythme entre les blocs. */
body::before{
  content:'';
  position:fixed;inset:-18%;
  z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 30% at 14% 16%,rgba(59,91,255,.055),transparent 68%),
    radial-gradient(34% 28% at 86% 38%,rgba(124,92,255,.045),transparent 68%),
    radial-gradient(42% 32% at 46% 88%,rgba(59,91,255,.038),transparent 70%);
  animation:sam-aurora 34s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes sam-aurora{
  0%  {transform:translate3d(0,0,0) scale(1);}
  50% {transform:translate3d(-2.2%,1.6%,0) scale(1.07);}
  100%{transform:translate3d(1.8%,-1.4%,0) scale(1.03);}
}

/* ---------- Barre de progression de lecture ----------
   Animation pilotée par le défilement, sans JavaScript.
   @supports : les navigateurs qui ne gèrent pas scroll() ne
   reçoivent aucune règle, la barre reste invisible. */
@supports (animation-timeline:scroll()){
  .sam-progress{
    position:fixed;top:0;left:0;right:0;height:2px;z-index:60;
    pointer-events:none;
    transform-origin:0 50%;transform:scaleX(0);
    background:linear-gradient(90deg,var(--sam-accent),#7C5CFF 62%,var(--sam-accent));
    animation:sam-prog linear both;
    animation-timeline:scroll(root block);
  }
  @keyframes sam-prog{to{transform:scaleX(1);}}
}

/* ---------- Bandeau de logos : seconde ligne ---------- */
.sam-marquee+.sam-marquee{margin-top:clamp(14px,1.8vw,22px);}
.sam-marquee--rev .sam-marquee-track{animation-direction:reverse;animation-duration:59s;}
.sam-marquee--rev .sam-tech{opacity:.82;}
@media (hover:hover){.sam-marquee--rev .sam-tech:hover{opacity:1;}}

/* ---------- Bandeau CTA : reflet qui balaie la carte ---------- */
.sam-band-in{position:relative;overflow:hidden;isolation:isolate;}
.sam-band-in::after{
  content:'';position:absolute;top:0;bottom:0;left:-60%;width:38%;
  z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(59,91,255,.10),transparent);
  animation:sam-sheen 7.5s ease-in-out infinite;
}
@keyframes sam-sheen{
  0%,58%{transform:translateX(0);}
  100%  {transform:translateX(430%);}
}

/* ---------- Kicker de section : trait animé ---------- */
.sam-kicker::after{
  content:'';width:26px;height:1px;flex:none;
  background:linear-gradient(90deg,currentColor,transparent);opacity:.55;
}

/* ---------- Cartes : relief au survol ---------- */
@media (hover:hover){
  .sam-mstep,.sam-trust-item,.sam-feat{
    transition:transform .42s var(--sam-ease),box-shadow .42s var(--sam-ease),border-color .42s var(--sam-ease);
  }
  .sam-mstep:hover,.sam-trust-item:hover,.sam-feat:hover{
    transform:translateY(-3px);
    border-color:var(--sam-line2);
    box-shadow:0 14px 34px -18px rgba(16,18,27,.28);
  }
}


/* ============================================================
   CALENDRIER CAL.COM
   Les dimensions du conteneur sont ici et non en attribut
   style= dans la page : la CSP interdit les styles en ligne.
   L'extrait fourni par Cal.com utilise height:100%, qui vaut 0
   quand le parent n'a pas de hauteur ; on fixe donc une hauteur
   minimale, ajustee aux petits ecrans.
   ============================================================ */
.sam-cal{
  margin-top:clamp(48px,6vw,76px);
  padding:clamp(26px,3vw,38px);
  border-radius:var(--sam-r);
  background:var(--sam-surface);
  border:1px solid var(--sam-line);
  box-shadow:0 1px 2px rgba(16,18,27,.04);
}
.sam-cal-txt{text-align:center;max-width:56ch;margin-inline:auto;}
.sam-cal-txt h3{
  font-family:'Outfit',sans-serif;font-weight:700;
  font-size:clamp(1.25rem,2.4vw,1.62rem);line-height:1.2;
  letter-spacing:-.022em;color:var(--sam-ink);
}
.sam-cal-txt p{margin-top:12px;font-size:1rem;line-height:1.62;color:var(--sam-ink2);}

.sam-cal-embed{
  width:100%;
  min-height:560px;
  margin-top:clamp(22px,2.6vw,32px);
  overflow:auto;
  border-radius:14px;
}
.sam-cal-embed iframe{display:block;width:100%;border:0;}
.sam-cal-note{
  margin-top:18px;text-align:center;
  font-size:.82rem;line-height:1.6;color:#5F6376;
}
.sam-cal-note a{color:var(--sam-accent2);border-bottom:1px solid transparent;transition:border-color .3s ease;}
@media (hover:hover){.sam-cal-note a:hover{border-color:currentColor;}}

@media (max-width:900px){
  .sam-cal-embed{min-height:600px;}
}
@media (max-width:560px){
  .sam-cal{padding:24px 18px;}
  .sam-cal-embed{min-height:640px;}
  .sam-cal-note{text-align:left;}
}
