@charset "UTF-8";

/* ============================================================
   CECADI — Direction éditoriale, Marseille
   Design system  ·  v2.0
   ============================================================ */

/* ---------- 1. Fondations ---------- */
:root{
  color-scheme:light;

  --red-900:#65080f;
  --red-800:#810c15;
  --red-700:#9d111c;
  --red-600:#b71623;
  --red-500:#cf2130;
  --red-400:#e14854;
  --red-100:#f1cfd2;
  --red-050:#faecec;

  --ink-900:#181816;
  --ink-800:#24231f;
  --ink-700:#393833;
  --ink-500:#69665f;
  --ink-400:#8d887f;
  --ink-300:#b7b1a7;
  --line:#d9d2c7;
  --line-soft:#e9e3da;
  --cream:#f3efe7;
  --cream-2:#eae3d8;
  --paper:#faf7f1;
  --white:#fffdfa;

  --f-display:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Manrope","Segoe UI",Arial,sans-serif;

  --step--1:clamp(.76rem,.73rem + .14vw,.84rem);
  --step-0:clamp(.96rem,.92rem + .18vw,1.05rem);
  --step-1:clamp(1.08rem,1rem + .38vw,1.28rem);
  --step-2:clamp(1.34rem,1.2rem + .68vw,1.72rem);
  --step-3:clamp(1.8rem,1.5rem + 1.35vw,2.55rem);
  --step-4:clamp(2.4rem,1.8rem + 2.55vw,3.9rem);
  --step-5:clamp(3.35rem,2rem + 5.7vw,7.1rem);

  --gut:clamp(1.25rem,4.4vw,4.5rem);
  --sec:clamp(5rem,9.5vw,9.5rem);
  --maxw:1420px;
  --textw:760px;

  --r-xs:2px;
  --r-s:4px;
  --r-m:8px;
  --r-l:14px;

  --sh-1:0 1px 0 rgba(24,24,22,.04),0 10px 32px rgba(24,24,22,.06);
  --sh-2:0 24px 70px -30px rgba(24,24,22,.28);
  --sh-nav:0 28px 80px -24px rgba(24,24,22,.32);

  --ease:cubic-bezier(.25,.8,.25,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:110px;
  background:var(--cream);
}
body{
  min-width:320px;
  font-family:var(--f-body);
  font-size:var(--step-0);
  line-height:1.72;
  color:var(--ink-700);
  background:
    linear-gradient(90deg,transparent calc(var(--gut) - 1px),rgba(157,17,28,.08) var(--gut),transparent calc(var(--gut) + 1px)),
    var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{touch-action:manipulation}
ul,ol{list-style:none;padding:0}
h1,h2{
  font-family:var(--f-display);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.045em;
  color:var(--ink-900);
  text-wrap:balance;
}
h3,h4{
  font-family:var(--f-body);
  font-weight:650;
  line-height:1.3;
  letter-spacing:-.025em;
  color:var(--ink-900);
  text-wrap:balance;
}
strong,b{font-weight:650;color:var(--ink-900)}
::selection{background:var(--red-700);color:#fff}
:focus-visible{
  outline:2px solid var(--red-600);
  outline-offset:4px;
  border-radius:var(--r-xs);
}

/* ---------- 2. Structure & type ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.wrap-narrow{max-width:900px}
.section{position:relative;padding-block:var(--sec)}
.section--tight{padding-block:clamp(3.8rem,6.5vw,6.5rem)}
.section--surface{background:var(--white);border-block:1px solid var(--line)}
.section--tint{background:var(--cream-2)}
.center{text-align:center}
.sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}
.skip{
  position:fixed;left:var(--gut);top:.75rem;z-index:1000;
  transform:translateY(-160%);
  background:var(--ink-900);color:#fff;padding:.72rem 1rem;
  border-radius:var(--r-s);font-size:.82rem;font-weight:700;
  transition:transform .2s var(--ease)
}
.skip:focus{transform:none}

.eyebrow{
  display:inline-flex;align-items:center;gap:.65rem;
  margin-bottom:1.35rem;
  font-size:.69rem;font-weight:700;line-height:1.2;
  letter-spacing:.19em;text-transform:uppercase;color:var(--red-700)
}
.eyebrow::before{
  content:"";width:7px;height:7px;flex:none;
  background:var(--red-600);transform:rotate(45deg)
}
.eyebrow--center::after{display:none}
.h-xl{font-size:var(--step-5)}
.h-l{font-size:var(--step-4)}
.h-m{font-size:var(--step-3)}
.h-s{font-size:var(--step-2)}
.lead{
  max-width:62ch;
  font-size:var(--step-1);
  line-height:1.64;
  color:var(--ink-500)
}
.muted{color:var(--ink-500)}
.accent{color:var(--red-700)}
.serif-i{font-family:var(--f-display);font-style:italic;font-weight:400}
.title-gap{margin-bottom:1.15rem}
.lead-gap{margin-bottom:2rem}
.sec-head{max-width:850px;margin-bottom:clamp(2.8rem,5vw,5.4rem)}
.sec-head.center{margin-inline:auto}
.sec-head h2{margin-bottom:1.15rem}
.split{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2.8rem,7vw,7.5rem);align-items:center
}
.split--top{align-items:start}

/* ---------- 3. Identité ---------- */
.brand{
  display:inline-flex;align-items:center;gap:.8rem;flex:none;
  color:var(--ink-900);line-height:1
}
.brand:hover .logo{opacity:.88}
.brand__monogram{
  display:grid;place-items:center;
  width:42px;height:46px;
  border-right:1px solid var(--red-600);
  font-family:var(--f-display);font-size:2.55rem;font-weight:500;
  letter-spacing:-.12em;color:var(--red-700)
}
.brand__text{display:grid;gap:.28rem}
.brand__text strong{
  font-family:var(--f-display);font-size:1.42rem;font-weight:600;
  letter-spacing:.08em;line-height:.8;color:var(--ink-900)
}
.brand__text small{
  font-size:.54rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-500);white-space:nowrap
}
.brand:hover .brand__monogram{color:var(--red-500)}
.brand--footer{color:#fff}
.brand--footer .brand__monogram{color:var(--red-400);border-right-color:rgba(255,255,255,.22)}
.brand--footer .brand__text strong{color:#fff}
.brand--footer .brand__text small{color:rgba(255,255,255,.5)}
.logo{
  display:block;width:auto;height:52px;max-width:min(220px,46vw);
  object-fit:contain;transition:height .28s var(--ease),opacity .2s var(--ease)
}
.hdr.is-stuck .logo{height:44px}
.logo--footer{height:62px;max-width:min(260px,80vw)}

/* ---------- 4. Boutons & liens ---------- */
.btn{
  --bg:var(--ink-900);
  --fg:#fff;
  --bd:var(--ink-900);
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:.68rem;
  min-height:48px;padding:.86rem 1.45rem;
  border:1px solid var(--bd);border-radius:var(--r-s);
  background:var(--bg);color:var(--fg);
  font-size:.79rem;font-weight:700;line-height:1.1;
  letter-spacing:.055em;text-transform:uppercase;text-align:center;
  cursor:pointer;overflow:hidden;isolation:isolate;
  transition:
    transform .32s var(--ease-out),
    box-shadow .32s var(--ease-out),
    background .22s var(--ease),
    color .22s var(--ease),
    border-color .22s var(--ease)
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(255,255,255,.11);
  transform:translateX(-102%);
  transition:transform .45s var(--ease-out)
}
.btn:hover::before{transform:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -16px rgba(24,24,22,.55)}
.btn:active{transform:translateY(0)}
.btn svg{flex:none;transition:transform .3s var(--ease-out)}
.btn:hover svg{transform:translateX(2px)}
.btn--red{--bg:var(--red-700);--bd:var(--red-700)}
.btn--red:hover{--bg:var(--red-800);--bd:var(--red-800)}
.btn--ghost{--bg:transparent;--fg:var(--ink-900);--bd:var(--ink-300)}
.btn--ghost:hover{--bg:var(--ink-900);--fg:#fff;--bd:var(--ink-900)}
.btn--light{--bg:#fff;--fg:var(--ink-900);--bd:#fff}
.btn--light:hover{--bg:var(--cream);--bd:var(--cream)}
.btn--outline-light{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.42)}
.btn--outline-light:hover{--bg:#fff;--fg:var(--ink-900);--bd:#fff}
.btn--lg{min-height:54px;padding:1rem 1.75rem;font-size:.8rem}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.arrow-link{
  display:inline-flex;align-items:center;gap:.55rem;
  width:max-content;padding-bottom:.18rem;
  border-bottom:1px solid var(--ink-300);
  color:var(--ink-900);font-size:.77rem;font-weight:700;
  letter-spacing:.055em;text-transform:uppercase;
  transition:color .2s var(--ease),border-color .2s var(--ease)
}
.arrow-link svg{transition:transform .3s var(--ease-out)}
.arrow-link:hover{color:var(--red-700);border-color:var(--red-600)}
.arrow-link:hover svg{transform:translateX(4px)}

/* ---------- 5. Header & navigation ---------- */
.hdr{
  position:sticky;top:0;z-index:100;
  background:rgba(243,239,231,.94);
  border-bottom:1px solid transparent;
  transition:background .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)
}
@supports ((backdrop-filter:blur(14px)) or (-webkit-backdrop-filter:blur(14px))){
  .hdr{
    background:rgba(243,239,231,.82);
    backdrop-filter:blur(18px) saturate(120%);
    -webkit-backdrop-filter:blur(18px) saturate(120%)
  }
}
.hdr.is-stuck{border-bottom-color:var(--line);box-shadow:0 8px 32px rgba(24,24,22,.04)}
.hdr__bar{
  display:flex;align-items:center;justify-content:space-between;
  min-height:92px;gap:clamp(1rem,3vw,3rem);
  transition:min-height .28s var(--ease)
}
.hdr.is-stuck .hdr__bar{min-height:76px}
.hdr__prog{
  position:absolute;left:0;bottom:-1px;z-index:2;
  width:100%;height:2px;
  transform:scaleX(0);transform-origin:0 50%;
  background:var(--red-600)
}
.nav{display:flex;align-items:center;justify-content:center;gap:.05rem;margin-left:auto}
.nav a,.nav button{
  position:relative;
  display:inline-flex;align-items:center;gap:.38rem;
  min-height:44px;padding:.65rem .77rem;
  border:0;border-radius:0;background:none;
  color:var(--ink-700);
  font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  cursor:pointer;white-space:nowrap;
  transition:color .2s var(--ease)
}
.nav a::after{
  content:"";position:absolute;left:.77rem;right:.77rem;bottom:.42rem;
  height:1px;background:var(--red-600);
  transform:scaleX(0);transform-origin:100% 50%;
  transition:transform .3s var(--ease-out)
}
.nav a:hover,.nav button:hover,.nav a[aria-current="page"]{color:var(--red-700)}
.nav a:hover::after,.nav a[aria-current="page"]::after{
  transform:scaleX(1);transform-origin:0 50%
}
.has-drop{position:relative}
.has-drop::before{
  content:"";position:absolute;left:-.8rem;right:-.8rem;top:100%;
  height:20px
}
.has-drop>button svg{transition:transform .25s var(--ease-out)}
.has-drop:hover>button svg,
.has-drop.is-open>button svg{transform:rotate(180deg)}
.drop{
  position:absolute;top:calc(100% + 12px);left:50%;z-index:20;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  width:min(710px,88vw);padding:1.1rem;
  transform:translate(-44%,-6px);
  background:var(--white);border:1px solid var(--line);border-top:3px solid var(--red-700);
  border-radius:var(--r-s);box-shadow:var(--sh-nav);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:
    opacity .18s var(--ease),
    transform .28s var(--ease-out),
    visibility 0s linear .22s
}
.has-drop:hover .drop,
.has-drop.is-open .drop,
.drop.is-open{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translate(-44%,0);
  transition-delay:0s
}
.drop a{
  display:grid;grid-template-columns:32px 1fr;align-items:start;gap:.75rem;
  min-height:76px;padding:.88rem .95rem;
  border-bottom:1px solid var(--line-soft);
  border-radius:0;
  transition:background .2s var(--ease),color .2s var(--ease)
}
.drop a:nth-last-child(-n+2){border-bottom:0}
.drop a::after{display:none}
.drop a:hover,.drop a:focus-visible{background:var(--cream);color:var(--red-700)}
.drop__ico{
  display:grid;place-items:center;
  width:28px;height:28px;margin-top:.06rem;
  border:1px solid var(--line);border-radius:50%;
  color:var(--red-700);background:transparent
}
.drop__ico svg{width:14px;height:14px}
.drop__t{display:block;color:var(--ink-900);font-size:.8rem;font-weight:700;line-height:1.35}
.drop__d{
  display:block;margin-top:.18rem;
  color:var(--ink-500);font-size:.7rem;font-weight:500;
  line-height:1.45;letter-spacing:0;text-transform:none
}
.hdr__cta{display:flex;align-items:center;gap:.75rem;flex:none}
.phone-link{
  display:inline-flex;align-items:center;gap:.55rem;
  min-height:44px;color:var(--ink-900);
  font-size:.78rem;font-weight:700;transition:color .2s var(--ease)
}
.phone-link:hover{color:var(--red-700)}
.phone-link .dot,.btn .dot{
  position:relative;flex:none;width:7px;height:7px;margin-right:.1rem;
  border-radius:50%;background:currentColor
}
.btn--red .dot{background:#fff}
.phone-link .dot::after,.btn .dot::after{display:none}
.burger{
  display:none;position:relative;
  width:48px;height:48px;padding:0;
  border:1px solid var(--line);border-radius:var(--r-s);
  background:var(--paper);cursor:pointer
}
.burger span{
  position:absolute;left:13px;width:21px;height:1.5px;
  background:var(--ink-900);
  transition:transform .35s var(--ease-out),opacity .2s var(--ease)
}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:23px}
.burger span:nth-child(3){top:30px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{
  position:fixed;inset:var(--hdr-h,92px) 0 0;z-index:99;
  display:block;padding:1.2rem var(--gut) 3rem;
  overflow-y:auto;overscroll-behavior:contain;
  background:var(--cream);
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .22s var(--ease),transform .3s var(--ease-out),visibility 0s linear .3s
}
.mnav.is-open{
  opacity:1;visibility:visible;transform:none;transition-delay:0s
}
.mnav a{
  position:relative;display:block;
  min-height:64px;padding:.8rem 2rem .8rem 0;border-bottom:1px solid var(--line);
  color:var(--ink-900);font-family:var(--f-display);
  font-size:clamp(1.35rem,5vw,2rem);font-weight:500;line-height:1.1
}
.mnav a::after{
  content:"↗";position:absolute;right:.1rem;top:1.05rem;
  color:var(--red-700);font-family:var(--f-body);font-size:.8rem
}
.mnav a small{
  display:block;margin-top:.42rem;
  color:var(--ink-500);font-family:var(--f-body);
  font-size:.7rem;font-weight:600;line-height:1.45;letter-spacing:.02em
}
.mnav .mnav__grp{
  margin:1.8rem 0 .45rem;color:var(--red-700);
  font-size:.65rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase
}
.mnav .mnav__grp:first-child{margin-top:.5rem}
.mnav .btn{
  display:flex;margin-top:1.5rem;color:#fff;
  font-family:var(--f-body);font-size:.74rem
}
.mnav .btn::after{display:none}
.mnav a[aria-current="page"]{color:var(--red-700)}

/* ---------- 6. Accueil : hero ---------- */
.hero{
  position:relative;display:flex;align-items:center;overflow:hidden;
  min-height:calc(100svh - 92px);
  padding-block:clamp(4.5rem,8vw,8rem);
  background:var(--paper);border-bottom:1px solid var(--line)
}
.hero::before{
  content:"CECADI  /  MARSEILLE  /  DEPUIS 2012";
  position:absolute;right:clamp(.55rem,1.8vw,1.5rem);top:50%;
  writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);
  color:var(--ink-400);font-size:.58rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase
}
.hero::after{
  content:"";position:absolute;left:var(--gut);top:0;bottom:0;
  width:1px;background:rgba(157,17,28,.17)
}
.hero__bg{display:none}
.hero__inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.58fr);
  gap:clamp(3rem,8vw,8.5rem);align-items:center
}
.hero h1{
  max-width:10.5ch;margin-bottom:1.65rem;
  font-size:var(--step-5);line-height:.86;letter-spacing:-.062em
}
.hero h1 .ln{display:block}
.hero h1 .ln>span{display:block;opacity:1;transform:none}
.hero__lead{max-width:58ch;margin-bottom:2rem}
.fade-up-1,.fade-up-2,.fade-up-3{opacity:1;transform:none}
.trust-row{
  display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;
  margin-top:2.5rem;padding-top:1.45rem;border-top:1px solid var(--line)
}
.trust{
  display:inline-flex;align-items:center;gap:.5rem;
  color:var(--ink-500);font-size:.72rem;font-weight:600;line-height:1.35
}
.trust svg{flex:none;color:var(--red-700)}
.hero__card{
  position:relative;padding:clamp(1.6rem,3vw,2.6rem);
  background:var(--ink-900);color:#fff;
  border:0;border-top:4px solid var(--red-600);border-radius:var(--r-s);
  box-shadow:var(--sh-2)
}
.hero__card::before{
  content:"13";position:absolute;right:1.2rem;bottom:-.25rem;
  color:rgba(255,255,255,.045);
  font-family:var(--f-display);font-size:9rem;font-weight:500;line-height:1;
  pointer-events:none
}
.card__head{
  position:relative;z-index:1;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;
  padding-bottom:1.15rem;margin-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,.15)
}
.card__title{
  color:#fff;font-family:var(--f-display);font-size:1.35rem;
  font-weight:500;letter-spacing:-.03em
}
.badge-open{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.34rem .55rem;border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r-xs);background:transparent;color:rgba(255,255,255,.75);
  font-size:.54rem;font-weight:700;line-height:1.1;letter-spacing:.1em;text-transform:uppercase
}
.badge-open i{display:block;width:5px;height:5px;border-radius:50%;background:var(--red-400)}
.hours{position:relative;z-index:1;display:grid;margin-bottom:1.25rem}
.hours li{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.48rem 0;border-bottom:1px solid rgba(255,255,255,.09);
  font-size:.72rem;line-height:1.4
}
.hours li span:first-child{color:rgba(255,255,255,.5)}
.hours li span:last-child{color:#fff;font-weight:650;font-variant-numeric:tabular-nums}
.hours li.is-closed span:last-child{color:rgba(255,255,255,.36);font-weight:500}
.hours li.is-today{
  margin-inline:-.55rem;padding-inline:.55rem;
  background:rgba(183,22,35,.22);border-color:transparent
}
.card__addr{
  position:relative;z-index:1;
  display:flex;gap:.65rem;margin-bottom:1.2rem;
  color:rgba(255,255,255,.58);font-size:.72rem;line-height:1.55
}
.card__addr svg{flex:none;margin-top:2px;color:var(--red-400)}
.hero__card>.btn{position:relative;z-index:1}
.hero__card>p:last-child{position:relative;z-index:1}
.card-note{
  margin-top:.85rem;color:rgba(255,255,255,.45);
  font-size:.62rem;line-height:1.5;text-align:center
}

/* ---------- 7. Ruban & chiffres ---------- */
.marquee{
  position:relative;overflow:hidden;
  padding-block:0;background:var(--ink-900);color:#fff;
  border:0
}
.marquee::before,.marquee::after{display:none}
.marquee__track{
  display:flex;width:100%;overflow-x:auto;scrollbar-width:none;
  animation:none
}
.marquee__track::-webkit-scrollbar{display:none}
.marquee__track span{
  display:inline-flex;align-items:center;gap:1.1rem;flex:none;
  min-height:54px;padding-inline:1.25rem;
  border-right:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.72);
  font-family:var(--f-body);font-size:.62rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;white-space:nowrap
}
.marquee__track span::before{
  content:"";width:4px;height:4px;background:var(--red-400);transform:rotate(45deg)
}
.marquee__track span::after{display:none}
.marquee__track span:nth-child(n+11){display:none}
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-block:1px solid var(--ink-900)
}
.stat{
  min-width:0;padding:clamp(1.6rem,3vw,2.8rem) clamp(.8rem,2.5vw,2.3rem);
  border-right:1px solid var(--line)
}
.stat:first-child{padding-left:0}
.stat:last-child{padding-right:0;border-right:0}
.stat__n{
  display:flex;align-items:baseline;gap:.08em;
  color:var(--ink-900);font-family:var(--f-display);
  font-size:clamp(2.7rem,5vw,5.2rem);font-weight:500;line-height:.9;
  letter-spacing:-.055em;font-variant-numeric:tabular-nums
}
.stat__l{
  display:block;max-width:24ch;margin-top:.9rem;
  color:var(--ink-500);font-size:.68rem;font-weight:600;line-height:1.55
}

/* ---------- 8. Cartes & listes ---------- */
.cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;border-top:1px solid var(--ink-900)
}
.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{
  position:relative;display:flex;flex-direction:column;min-width:0;
  padding:clamp(1.5rem,2.8vw,2.7rem);
  background:transparent;border:0;border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);border-radius:0;overflow:hidden;
  transition:background .25s var(--ease),color .25s var(--ease)
}
.card:nth-child(3n){border-right:0}
.card::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--red-600);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .45s var(--ease-out)
}
.card:hover{background:var(--paper);transform:none;box-shadow:none}
.card:hover::after{transform:scaleX(1)}
.card__num{
  position:absolute;right:1.4rem;top:1.25rem;
  color:var(--ink-300);font-family:var(--f-display);
  font-size:2rem;font-weight:500;line-height:1
}
.card__ico{
  display:grid;place-items:center;
  width:38px;height:38px;margin-bottom:1.25rem;
  border:1px solid var(--line);border-radius:50%;
  background:transparent;color:var(--red-700);
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)
}
.card:hover .card__ico{
  background:var(--red-700);border-color:var(--red-700);color:#fff;
  transform:none
}
.card h3{margin-bottom:.7rem;font-size:1.03rem}
.card p{margin-bottom:1.3rem;color:var(--ink-500);font-size:.82rem;line-height:1.7}
.card ul{display:grid;gap:.45rem;margin-bottom:1.4rem}
.card ul li{
  position:relative;padding-left:1rem;color:var(--ink-500);
  font-size:.78rem;line-height:1.55
}
.card ul li::before{
  content:"";position:absolute;left:0;top:.66em;width:4px;height:4px;
  background:var(--red-600);transform:rotate(45deg)
}
.card .arrow-link{margin-top:auto}

#expertises .cards{
  grid-template-columns:repeat(12,minmax(0,1fr));
  border-top-color:var(--ink-900)
}
#expertises .card{grid-column:span 4}
#expertises .card:first-child{
  grid-column:span 8;background:var(--ink-900);color:#fff;
  border-right-color:rgba(255,255,255,.12);border-bottom-color:rgba(255,255,255,.12)
}
#expertises .card:first-child h3{color:#fff;font-family:var(--f-display);font-size:var(--step-3);font-weight:500}
#expertises .card:first-child p{max-width:52ch;color:rgba(255,255,255,.62);font-size:.92rem}
#expertises .card:first-child .card__ico{border-color:rgba(255,255,255,.22);color:var(--red-400)}
#expertises .card:first-child .arrow-link{color:#fff;border-color:rgba(255,255,255,.36)}
#expertises .card:last-child{grid-column:span 8}

.why{display:grid;counter-reset:why}
.why li{
  display:grid;grid-template-columns:50px 1fr;gap:1.35rem;align-items:start;
  padding:1.55rem 0;border-bottom:1px solid var(--line);
  counter-increment:why
}
.why li:first-child{border-top:1px solid var(--ink-900)}
.why__i{
  display:block;width:auto;height:auto;padding-top:.1rem;
  border:0;border-radius:0;background:none;color:var(--red-700);
  font-family:var(--f-display);font-size:1.25rem;line-height:1
}
.why__i svg{display:none}
.why__i::before{content:counter(why,decimal-leading-zero)}
.why li:hover .why__i{background:none;color:var(--red-500)}
.why h3{margin-bottom:.35rem;font-size:1rem}
.why p{color:var(--ink-500);font-size:.82rem;line-height:1.65}

.steps{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3.5rem);counter-reset:s
}
.steps::before,.steps::after{display:none}
.step{position:relative;padding-top:1.4rem;border-top:1px solid var(--ink-900)}
.step__n{
  display:block;width:auto;height:auto;margin-bottom:2.2rem;
  border:0;border-radius:0;background:none;color:var(--red-700);
  font-family:var(--f-display);font-size:2.4rem;font-weight:500;line-height:1;
  transition:transform .25s var(--ease-out)
}
.step:hover .step__n{background:none;color:var(--red-500);transform:translateX(4px)}
.step h3{margin-bottom:.55rem;font-size:.96rem}
.step p{color:var(--ink-500);font-size:.8rem;line-height:1.65}

.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.chip{
  display:flex;align-items:center;gap:.6rem;
  min-height:52px;padding:.65rem .8rem;
  border:0;border-bottom:1px solid var(--line);border-radius:0;
  background:transparent;color:var(--ink-700);
  font-size:.75rem;font-weight:650;line-height:1.35;
  transition:color .2s var(--ease),padding-left .25s var(--ease-out)
}
.chip:nth-child(odd){border-right:1px solid var(--line)}
.chip:hover{padding-left:1rem;background:transparent;color:var(--red-700);transform:none}
.chip svg{width:11px;height:11px;flex:none;color:var(--red-700)}

/* ---------- 9. CTA, FAQ & contenu ---------- */
.cta-band{
  position:relative;overflow:hidden;
  padding:clamp(2.8rem,6vw,6.5rem);
  border-radius:var(--r-s);background:var(--ink-900);color:#fff
}
.cta-band::before{
  content:"CECADI";position:absolute;right:-.02em;bottom:-.28em;
  width:auto;height:auto;aspect-ratio:auto;
  background:none;filter:none;
  color:rgba(255,255,255,.035);
  font-family:var(--f-display);font-size:clamp(6rem,18vw,17rem);
  font-weight:500;line-height:1;letter-spacing:-.08em
}
.cta-band::after{
  content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--red-600);-webkit-mask-image:none;mask-image:none
}
.cta-band>*{position:relative;z-index:1}
.cta-band h2{max-width:14ch;margin-bottom:1.1rem;color:#fff}
.cta-band p{max-width:52ch;margin-bottom:1.8rem;color:rgba(255,255,255,.64);font-size:var(--step-1)}
.cta-band .tel{
  display:inline-flex;align-items:center;gap:.65rem;
  color:#fff;font-family:var(--f-display);
  font-size:clamp(1.9rem,4vw,3.5rem);font-weight:500;line-height:1;
  letter-spacing:-.045em;font-variant-numeric:tabular-nums;
  transition:color .2s var(--ease)
}
.cta-band .tel:hover{color:var(--red-400)}
.cta-kicker{
  margin-bottom:.6rem!important;color:rgba(255,255,255,.45)!important;
  font-size:.66rem!important;font-weight:700;letter-spacing:.17em;text-transform:uppercase
}
.cta-actions{margin-top:2rem}
.cta-meta{
  margin:1.35rem 0 0!important;color:rgba(255,255,255,.5)!important;
  font-size:.72rem!important
}
.eyebrow--light{color:var(--red-400)}

.faq{display:grid;border-top:1px solid var(--ink-900)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  position:relative;display:block;list-style:none;cursor:pointer;
  padding:1.45rem 4rem 1.45rem 0;
  color:var(--ink-900);font-family:var(--f-display);
  font-size:clamp(1.2rem,2vw,1.65rem);font-weight:500;line-height:1.25;
  letter-spacing:-.025em;transition:color .2s var(--ease)
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red-700)}
.faq summary::after{
  content:"+";position:absolute;right:.2rem;top:50%;transform:translateY(-50%);
  color:var(--red-700);font-family:var(--f-body);font-size:1.2rem;font-weight:400;
  transition:transform .25s var(--ease-out)
}
.faq summary::before{display:none}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq__a{
  max-width:76ch;padding:0 clamp(1rem,7vw,6rem) 1.65rem 0;
  color:var(--ink-500);font-size:.88rem;line-height:1.75
}
.faq__a p+p{margin-top:.8rem}

.callout{
  margin-block:2rem;padding:1.45rem 1.6rem;
  border:1px solid var(--line);border-left:4px solid var(--red-700);
  border-radius:0;background:var(--paper);box-shadow:none
}
.callout strong{
  display:block;margin-bottom:.35rem;
  font-family:var(--f-display);font-size:1.18rem;font-weight:600
}
.callout p{color:var(--ink-500);font-size:.84rem;line-height:1.65}
.location-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem
}

.prose{max-width:var(--textw)}
.prose h2{
  position:relative;margin:3.8rem 0 1.15rem;padding-top:1.1rem;
  font-size:var(--step-3)
}
.prose h2::before{
  content:"";position:absolute;left:0;top:0;width:42px;height:2px;background:var(--red-600)
}
.prose h3{margin:2.3rem 0 .8rem;font-size:1.18rem}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose p{margin-bottom:1.1rem;color:var(--ink-700)}
.prose a{
  color:var(--red-700);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px
}
.prose ul{display:grid;gap:.65rem;margin:0 0 1.5rem}
.prose ul li{position:relative;padding-left:1.55rem}
.prose ul li::before{
  content:"";position:absolute;left:.2rem;top:.72em;width:5px;height:5px;
  background:var(--red-600);transform:rotate(45deg)
}
.prose ol{counter-reset:o;display:grid;gap:.9rem;margin:0 0 1.5rem}
.prose ol li{counter-increment:o;position:relative;padding-left:2.5rem}
.prose ol li::before{
  content:counter(o,decimal-leading-zero);position:absolute;left:0;top:.03em;
  color:var(--red-700);font-family:var(--f-display);font-size:1rem;font-weight:600
}
.prose table{
  width:100%;margin:0 0 1.8rem;border-collapse:collapse;
  border-top:1px solid var(--ink-900);font-size:.82rem
}
.prose caption{
  padding-bottom:.75rem;color:var(--ink-500);
  font-size:.7rem;text-align:left
}
.prose th,.prose td{padding:1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prose thead th{
  background:transparent;color:var(--ink-900);
  font-size:.65rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase
}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- 10. Pages internes ---------- */
.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;
  padding-top:1rem;color:var(--ink-400);
  font-size:.64rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase
}
.crumbs a{transition:color .2s var(--ease)}
.crumbs a:hover{color:var(--red-700)}
.crumbs span[aria-current]{color:var(--ink-700)}
.phead{
  position:relative;overflow:hidden;
  padding-block:clamp(3rem,6.5vw,6.5rem) clamp(4.2rem,8vw,8rem);
  border-bottom:1px solid var(--line);background:var(--paper)
}
.phead::after{
  content:"";position:absolute;right:0;top:0;width:clamp(4px,.6vw,8px);height:100%;
  background:var(--red-700)
}
.phead__inner{position:relative;z-index:1;max-width:930px}
.phead h1{
  max-width:17ch;margin-bottom:1.35rem;
  font-size:clamp(3rem,5.8vw,6rem);line-height:.92
}
.phead__grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.72fr);
  gap:clamp(2.8rem,7vw,7rem);align-items:center
}
.phead__grid .phead__inner{max-width:none}
.phead--center{text-align:center}
.phead--center .phead__inner{margin-inline:auto}
.phead--center .eyebrow{justify-content:center}
.phead--center .lead{margin-inline:auto}
.phead--center .btn-row{justify-content:center}
.ill{display:block;width:100%;height:auto;overflow:visible}
.ill-wrap{
  position:relative;display:grid;place-items:center;
  min-height:390px;padding:clamp(1.2rem,3vw,2.6rem);
  overflow:hidden;background:var(--ink-900);border-top:4px solid var(--red-600)
}
.ill-wrap::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:linear-gradient(135deg,#000,transparent 72%);
  mask-image:linear-gradient(135deg,#000,transparent 72%)
}
.ill-wrap::after{
  content:"CECADI  /  DOSSIER";
  position:absolute;left:1rem;bottom:1rem;
  color:rgba(255,255,255,.42);font-size:.56rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase
}
.ill-wrap>svg{
  position:relative;z-index:1;
  max-height:390px;opacity:.88;
  filter:saturate(.55) contrast(1.03);
  transform:scale(1.04);
  transition:transform .8s var(--ease-out)
}
.ill-wrap:hover>svg{transform:scale(1.075)}
.page--expertise-comptable .ill-wrap::after{content:"CECADI  /  COMPTABILITÉ"}
.page--fiscalite-entreprise .ill-wrap::after{content:"CECADI  /  FISCALITÉ"}
.page--social-paie .ill-wrap::after{content:"CECADI  /  SOCIAL & PAIE"}
.page--commissariat-aux-comptes .ill-wrap::after{content:"CECADI  /  AUDIT"}
.page--creation-entreprise .ill-wrap::after{content:"CECADI  /  CRÉATION"}
.page--conseil-gestion .ill-wrap::after{content:"CECADI  /  PILOTAGE"}
.page--juridique .ill-wrap::after{content:"CECADI  /  JURIDIQUE"}
.page--honoraires .ill-wrap::after{content:"CECADI  /  HONORAIRES"}

.layout-aside{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  gap:clamp(3rem,7vw,7rem);align-items:start
}
.aside-card{position:sticky;top:105px;display:grid;gap:1rem}
.mini{
  padding:1.5rem;background:var(--paper);
  border:1px solid var(--line);border-radius:0;box-shadow:none
}
.mini--map{padding:0;overflow:hidden}
.cabinet-facts{display:grid!important;gap:.8rem!important;font-size:.82rem!important}
.cabinet-facts strong{display:block;color:var(--ink-900)}
.mini h3{
  margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--ink-900);
  font-family:var(--f-display);font-size:1.3rem;font-weight:500
}
.mini ul{display:grid}
.mini ul a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin:0;padding:.62rem 0;border-bottom:1px solid var(--line-soft);
  border-radius:0;color:var(--ink-500);font-size:.74rem;line-height:1.4;
  transition:color .2s var(--ease),padding-left .2s var(--ease-out)
}
.mini ul a::after{content:"↗";color:var(--red-700);font-size:.65rem}
.mini ul a:hover{padding-left:.25rem;background:none;color:var(--red-700)}
.mini--red{position:relative;overflow:hidden;background:var(--red-800);border-color:var(--red-800);color:#fff}
.mini--red::before{
  content:"C";position:absolute;right:-.08em;bottom:-.34em;
  width:auto;height:auto;background:none;
  color:rgba(255,255,255,.06);font-family:var(--f-display);font-size:13rem;line-height:1
}
.mini--red>*{position:relative;z-index:1}
.mini--red h3{color:#fff;border-bottom-color:rgba(255,255,255,.25)}
.mini--red p{margin-bottom:1.15rem;color:rgba(255,255,255,.68);font-size:.8rem}
.mini--red .tel-big{
  display:block;margin-bottom:1.1rem;color:#fff;
  font-family:var(--f-display);font-size:1.65rem;font-weight:500;
  letter-spacing:-.035em;font-variant-numeric:tabular-nums
}
.content-photo{margin:2.5rem 0}

/* ---------- 11. Photos ---------- */
.photo{
  position:relative;overflow:hidden;isolation:isolate;
  border-radius:0;background:var(--cream-2);box-shadow:none
}
.photo img{
  display:block;width:100%;height:100%;object-fit:cover;
  filter:saturate(.78) contrast(1.04);
  transition:transform .9s var(--ease-out),filter .5s var(--ease)
}
.photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(145deg,rgba(101,8,15,.08),transparent 48%,rgba(24,24,22,.2));
  mix-blend-mode:multiply
}
.photo:hover img{transform:scale(1.025);filter:saturate(.94) contrast(1.02)}
.photo--tall{aspect-ratio:4/5}
.photo--wide{aspect-ratio:16/10}
.photo--frame{border:1px solid var(--line)}
.photo__tag{
  position:absolute;left:1rem;bottom:1rem;z-index:2;
  display:inline-flex;align-items:center;gap:.48rem;
  padding:.5rem .72rem;border:1px solid rgba(255,255,255,.5);border-radius:var(--r-xs);
  background:rgba(24,24,22,.82);color:#fff;
  font-size:.61rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  backdrop-filter:blur(8px)
}
.photo__tag svg{color:var(--red-400)}
.photo-duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
.photo-duo>:last-child{margin-top:2.4rem}
.band{
  position:relative;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;
  min-height:clamp(430px,54vw,720px);border-block:1px solid var(--ink-900)
}
.band__img{
  position:absolute;inset:-7% 0;width:100%;height:114%;object-fit:cover;z-index:-2;
  filter:saturate(.68) contrast(1.08);will-change:transform
}
.band::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(24,24,22,.95) 0%,rgba(24,24,22,.82) 45%,rgba(24,24,22,.18) 100%)
}
.band::after{
  content:"MARSEILLE";position:absolute;right:-.02em;top:-.04em;z-index:-1;
  color:rgba(255,255,255,.065);font-family:var(--f-display);
  font-size:clamp(5rem,18vw,18rem);font-weight:500;line-height:1;letter-spacing:-.07em
}
.band__content{max-width:760px;padding-block:clamp(3.5rem,8vw,7rem);color:#fff}
.band__content h2{margin-bottom:1.15rem;color:#fff}
.band__content p{margin-bottom:1.7rem;color:rgba(255,255,255,.7);font-size:var(--step-1)}
.band__meta{display:flex;flex-wrap:wrap;gap:.7rem 1.7rem;color:rgba(255,255,255,.56);font-size:.68rem}
.band__meta span{display:inline-flex;align-items:center;gap:.45rem}
.band__meta svg{color:var(--red-400)}
.credits{display:grid;gap:.5rem;color:var(--ink-400);font-size:.76rem}
.credits a{text-decoration:underline;text-underline-offset:2px}

/* ---------- 12. Footer ---------- */
.ftr{
  position:relative;overflow:hidden;
  padding-block:clamp(4rem,8vw,7rem) 2rem;
  background:var(--ink-900);color:rgba(255,255,255,.6)
}
.ftr::before{
  content:"CECADI";position:absolute;right:-.05em;bottom:-.18em;
  width:auto;aspect-ratio:auto;background:none;filter:none;
  color:rgba(255,255,255,.025);font-family:var(--f-display);
  font-size:clamp(9rem,25vw,25rem);line-height:1;letter-spacing:-.08em
}
.ftr>*{position:relative;z-index:1}
.ftr__grid{
  display:grid;grid-template-columns:1.45fr 1fr 1fr 1.15fr;
  gap:clamp(2rem,4vw,4.5rem);
  padding-bottom:3.5rem;border-bottom:1px solid rgba(255,255,255,.13)
}
.ftr h4{
  margin-bottom:1.15rem;color:#fff;
  font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase
}
.ftr a{transition:color .2s var(--ease)}
.ftr a:hover{color:#fff}
.ftr ul{display:grid;gap:.62rem;font-size:.76rem}
.ftr__about p{max-width:40ch;margin:1.4rem 0 1.5rem;font-size:.78rem;line-height:1.75}
.ftr__nap{display:grid;gap:.82rem;font-size:.76rem;font-style:normal}
.ftr__nap div{display:flex;align-items:flex-start;gap:.65rem}
.ftr__nap svg{flex:none;margin-top:4px;color:var(--red-400)}
.ftr__nap a[href^="tel"]{color:#fff;font-size:.9rem;font-weight:650}
.ftr__bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;
  padding-top:1.8rem;color:rgba(255,255,255,.38);font-size:.65rem
}
.ftr__bottom nav{display:flex;flex-wrap:wrap;gap:1.3rem}
.socials{display:flex;gap:.55rem;margin-top:1.35rem}
.socials a{
  display:grid;place-items:center;width:40px;height:40px;
  border:1px solid rgba(255,255,255,.2);border-radius:50%;
  transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease-out)
}
.socials a:hover{background:var(--red-700);border-color:var(--red-700);transform:translateY(-2px)}
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;
  padding:.65rem var(--gut) calc(.65rem + env(safe-area-inset-bottom));
  background:rgba(250,247,241,.94);border-top:1px solid var(--line);
  backdrop-filter:blur(14px)
}

/* ---------- 13. Mouvement ---------- */
.rv,.rv-d1,.rv-d2,.rv-d3,.rv-d4,.rv-d5,.rv-d6{
  opacity:1;transform:none;transition:none
}

/* ---------- 14. Responsive ---------- */
@media (max-width:1180px){
  .hdr__bar{gap:1rem}
  .nav a,.nav button{padding-inline:.58rem;font-size:.64rem}
  .nav a::after{left:.58rem;right:.58rem}
  .hdr__cta .btn{padding-inline:1rem}
  .ftr__grid{grid-template-columns:1.35fr 1fr 1fr}
  .ftr__grid>div:last-child{grid-column:2 / -1}
}

@media (max-width:1040px){
  .nav,.hdr__cta>.btn{display:none}
  .burger{display:block}
  .hdr__bar,.hdr.is-stuck .hdr__bar{min-height:78px}
  .hero{min-height:auto}
  .hero__inner{grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);gap:3rem}
  .hero h1{font-size:clamp(3.5rem,7.7vw,5.7rem)}
  .layout-aside{grid-template-columns:1fr}
  .aside-card{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .aside-card .mini--red{grid-column:1 / -1}
  .phead__grid{grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:2.6rem}
  .ill-wrap{min-height:330px}
}

@media (max-width:820px){
  body{background:var(--cream)}
  .hero::before{display:none}
  .hero::after{left:var(--gut)}
  .hero__inner,.split,.phead__grid{grid-template-columns:1fr}
  .hero__inner{gap:3.5rem}
  .hero h1{max-width:11ch}
  .hero__card{max-width:580px}
  .phead__grid .ill-wrap{max-width:580px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:3rem}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card:nth-child(3n){border-right:1px solid var(--line)}
  .card:nth-child(2n){border-right:0}
  #expertises .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  #expertises .card,#expertises .card:first-child,#expertises .card:last-child{grid-column:span 1}
  #expertises .card:first-child{grid-column:1 / -1}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .stat:nth-child(3){padding-left:0}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .ftr__grid>div:last-child{grid-column:auto}
  .band::before{background:linear-gradient(90deg,rgba(24,24,22,.94),rgba(24,24,22,.58))}
  .location-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
  :root{--gut:1.15rem;--sec:4.8rem}
  html{scroll-padding-top:92px}
  body{padding-bottom:76px}
  .hdr__bar,.hdr.is-stuck .hdr__bar{min-height:72px}
  .logo{height:40px}
  .hdr.is-stuck .logo{height:40px}
  .logo--footer{height:52px}
  .burger{width:46px;height:46px}
  .burger span{left:12px}
  .mnav{padding-bottom:6rem}
  .mnav a{min-height:58px}
  .hero{padding-block:3.7rem 5rem}
  .hero::after{display:none}
  .hero h1{font-size:clamp(3.25rem,15.5vw,5rem);line-height:.88}
  .hero__lead{font-size:1rem}
  .hero__card{padding:1.35rem}
  .hero__card::before{font-size:7rem}
  .trust-row{display:grid;gap:.75rem}
  .section--tight{padding-block:3.8rem}
  .sec-head{margin-bottom:2.8rem}
  .phead{padding-block:3rem 4.4rem}
  .phead h1{font-size:clamp(2.8rem,13vw,4.35rem);line-height:.92}
  .phead__grid{gap:2.8rem}
  .ill-wrap{min-height:285px;padding:1rem}
  .ill-wrap>svg{max-height:300px}
  .btn{width:100%}
  .btn-row{display:grid;grid-template-columns:1fr;width:100%}
  .hdr .btn{width:auto}
  .cards,.cards--2{grid-template-columns:1fr}
  .card,.card:nth-child(2n),.card:nth-child(3n){border-right:0}
  #expertises .cards{grid-template-columns:1fr}
  #expertises .card,#expertises .card:first-child,#expertises .card:last-child{grid-column:auto}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:1.45rem .8rem}
  .stat:first-child,.stat:nth-child(3){padding-left:0}
  .stat:nth-child(2),.stat:nth-child(4){padding-right:0}
  .stat__n{font-size:clamp(2.5rem,12vw,3.8rem)}
  .steps{grid-template-columns:1fr;gap:2.5rem}
  .step__n{margin-bottom:1.2rem}
  .chips{grid-template-columns:1fr}
  .chip:nth-child(odd){border-right:0}
  .cta-band{padding:2.2rem 1.35rem}
  .cta-band .tel{font-size:clamp(1.8rem,9vw,2.5rem)}
  .faq summary{padding-right:2.5rem}
  .layout-aside{gap:3.5rem}
  .aside-card{grid-template-columns:1fr}
  .aside-card .mini--red{grid-column:auto}
  .prose h2{margin-top:3rem}
  .prose th,.prose td{min-width:150px;padding:.85rem}
  .photo-duo{grid-template-columns:1fr}
  .photo-duo>:last-child{margin-top:0}
  .band{min-height:560px}
  .band::before{background:linear-gradient(0deg,rgba(24,24,22,.96),rgba(24,24,22,.32))}
  .band__content{padding-block:3rem}
  .ftr__grid{grid-template-columns:1fr}
  .ftr__grid>div:last-child{grid-column:auto}
  .ftr__bottom{display:grid}
  .callbar{display:block}
}

@media (max-width:390px){
  .brand__text small{display:none}
  .stats{grid-template-columns:1fr}
  .stat,.stat:first-child,.stat:nth-child(2),.stat:nth-child(3),.stat:nth-child(4){
    padding:1.35rem 0;border-right:0;border-bottom:1px solid var(--line)
  }
  .stat:last-child{border-bottom:0}
}

@media (hover:none){
  .btn:hover{transform:none}
  .photo:hover img{transform:none}
}

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

@media print{
  .hdr,.mnav,.callbar,.cta-band,.marquee{display:none!important}
  body{padding:0;background:#fff;color:#000}
  .section,.section--tight{padding-block:2rem}
  a{text-decoration:underline}
}
