:root{
    --rouge:#D71920; --rouge-deep:#B11116; --ink:#414042;
    --grey:#5A5A5C; --line:#E4E5E6; --page:#F6F6F7; --white:#fff;
    --bar:64px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
  body{
    font-family:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--white); color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block}
  a{color:inherit}
  .t-en{display:none}
  body.lang-en .t-fr{display:none}
  body.lang-en .t-en{display:inline}
  body.lang-en .blk.t-fr{display:none}
  .blk.t-en{display:none}
  body.lang-en .blk.t-en{display:block}
  .blk.t-fr{display:block}

  .wrap{width:100%;max-width:1180px;margin:0 auto;padding-inline:20px}
  .kicker{font-weight:900;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge)}
  h2.sec{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(30px,6vw,44px);line-height:1;letter-spacing:.02em;text-transform:uppercase;margin-top:8px}
  .lead{font-size:clamp(15px,2.4vw,17px);color:var(--grey);margin-top:12px;max-width:62ch}

  /* ---------- header ---------- */
  header.bar{
    position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);
    border-bottom:1px solid var(--line);
  }
  .bar .wrap{display:flex;align-items:center;gap:14px;height:var(--bar)}
  .brand{display:flex;flex-direction:column;line-height:1;text-decoration:none;margin-right:auto}
  .brand b{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:21px;letter-spacing:.03em;text-transform:uppercase}
  .brand small{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rouge);margin-top:3px}
  nav.menu{display:none}
  nav.menu a{
    text-decoration:none;font-weight:700;font-size:14px;padding:9px 11px;border-radius:9px;
    color:var(--ink);transition:background .12s ease,color .12s ease;white-space:nowrap;
  }
  .langswitch{display:flex;gap:2px;padding:3px;border-radius:999px;background:#F0F0F1;border:1px solid var(--line)}
  .langswitch button,.langswitch a{
    font-family:"Lato",sans-serif;font-weight:900;font-size:11.5px;letter-spacing:.06em;
    color:var(--grey);background:transparent;border:0;cursor:pointer;padding:5px 10px;border-radius:999px;line-height:1;
  }
  .langswitch button.on,.langswitch a.on{background:var(--rouge);color:#fff}
  .langswitch a{text-decoration:none}
  .burger{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}
  .burger i{display:block;width:17px;height:2px;background:var(--ink);border-radius:2px}
  .drawer{display:none;border-top:1px solid var(--line);background:#fff}
  .drawer.open{display:block}
  .drawer a{display:block;text-decoration:none;font-weight:700;font-size:16px;padding:14px 20px;border-bottom:1px solid var(--line)}

  /* ---------- hero ---------- */
  /* Eric cut out on the Liberal red, one ground for the whole section: text then photo on phones,
     text beside him on wider screens; his shoulders run off the bottom edge of the section. */
  .hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;display:flex;flex-direction:column;background-color:#8E0D12}
  .hero .bg{position:absolute;inset:0;z-index:-2;background-color:#8E0D12;
    background-image:linear-gradient(to bottom,rgba(58,4,7,.58) 0%,rgba(58,4,7,.34) 30%,rgba(58,4,7,0) 46%),url(hero/flag-mobile.webp?v=d8195b17);
    background-size:100% 100%,auto 122%;background-position:0 0,50% 100%;background-repeat:no-repeat}
  .hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
  .hero .wrap{order:0;position:relative;padding-block:34px 0}
  .hero .photo{order:1;position:relative;z-index:0;width:112vw;margin:22px 0 0 -6vw;aspect-ratio:1/1}
  /* key light on the backdrop, behind his head and shoulders */
  .hero .photo::before{content:"";position:absolute;left:6%;right:6%;top:-6%;bottom:16%;z-index:-1;filter:blur(30px);
    background:radial-gradient(closest-side,rgba(255,156,146,.62),rgba(255,112,106,.24) 58%,rgba(255,90,90,0) 100%)}
  .hero .photo img{position:relative;width:100%;height:100%;object-fit:contain;object-position:50% 100%}
  .hero .wrap{z-index:1}
  .hero .copy{text-align:center}
  .hero .nw{white-space:nowrap}
  .hero h1{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(40px,11vw,68px);line-height:.96;letter-spacing:.02em;text-transform:uppercase}
  .hero .role{font-weight:900;font-size:clamp(15px,3.4vw,19px);margin-top:10px}
  .hero .claim{font-size:clamp(15px,3vw,18px);margin-top:14px;color:rgba(255,255,255,.92);max-width:46ch;margin-inline:auto}
  .cta{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;margin-top:22px}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:13px;
    text-decoration:none;font-weight:900;font-size:15px;letter-spacing:.01em;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease;
  }
  .btn.solid{background:#fff;color:var(--rouge)}
  .btn.ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.6)}
  .btn:active{transform:scale(.985)}
  @media(hover:hover){
    .btn.solid:hover{box-shadow:0 12px 28px rgba(0,0,0,.24)}
    .btn.ghost:hover{background:#fff;color:var(--rouge);border-color:#fff}
    nav.menu a:hover{background:#F0F0F1;color:var(--rouge)}
  }

  /* ---------- about, under the picture (Anand reference) ---------- */
  .about{background:var(--white)}
  .about .wrap{padding-block:44px}
  .about .txt{min-width:0}
  .aboutshot{margin-top:26px;border-radius:18px;overflow:hidden;aspect-ratio:16/10}
  .band{margin-top:26px;border-radius:18px;overflow:hidden;aspect-ratio:16/7}
  .about p{font-size:clamp(15px,2.5vw,17.5px);max-width:70ch}
  .about p + p{margin-top:14px}
  .more{display:inline-flex;align-items:center;gap:7px;margin-top:20px;font-weight:900;font-size:14px;color:var(--rouge);text-decoration:none}
  .more:after{content:"\203A";font-size:20px;line-height:1}

  /* ---------- priorities ---------- */
  .prio{background:var(--page);border-block:1px solid var(--line)}
  .svc{background:var(--white);border-bottom:1px solid var(--line)}
  .svc .wrap{padding-block:48px}
  .prio .wrap{padding-block:48px}
  .cards{display:grid;grid-template-columns:1fr;gap:14px;margin-top:26px}
  .card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:22px 20px;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
  .card .n{font-family:"Bebas Neue",Impact,sans-serif;font-size:22px;color:var(--rouge);line-height:1}
  .card h3{font-size:18px;font-weight:900;margin-top:8px}
  .card p{font-size:14.5px;color:var(--grey);margin-top:8px}
  @media(hover:hover){.card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,.09);border-color:#D6D7D8}}

  /* ---------- accomplishments ---------- */
  .acc{background:linear-gradient(158deg,var(--rouge),var(--rouge-deep));color:#fff}
  .acc .wrap{padding-block:48px}
  .acc h2.sec{color:#fff}
  .acc .kicker{color:rgba(255,255,255,.85)}
  .stats{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
  .stat{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);border-radius:16px;padding:20px}
  .stat b{display:block;font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(34px,9vw,46px);line-height:1}
  .stat > span{display:block;font-size:13.5px;font-weight:700;margin-top:6px;color:rgba(255,255,255,.92)}
  .asof{margin-top:18px;font-size:12px;color:rgba(255,255,255,.8);font-weight:700;letter-spacing:.04em}

  /* ---------- news ---------- */
  .news .wrap{padding-block:48px}
  .posts{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
  .post{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff;text-decoration:none;display:block}
  .post .ph{aspect-ratio:16/10}
  .post .tx{padding:16px 18px 20px}
  .post .tx time{font-size:11.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--rouge)}
  .post .tx h3{font-size:17px;font-weight:900;margin-top:7px;line-height:1.3}
  .post .tx p{font-size:14px;color:var(--grey);margin-top:7px}

  /* image slots to be filled by the office */
  .ph{
    background:repeating-linear-gradient(135deg,#EDEDEE,#EDEDEE 12px,#E5E5E7 12px,#E5E5E7 24px);
    display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;
    color:#8A8A8D;font-size:11.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;line-height:1.5;
  }

  /* ---------- follow (Parm Bains reference) ---------- */
  .follow{background:var(--page);border-block:1px solid var(--line)}
  .follow .wrap{padding-block:48px}
  .socrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
  .soc{
    display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border-radius:13px;background:#fff;
    border:1px solid var(--line);text-decoration:none;font-weight:900;font-size:14px;transition:all .12s ease;
  }
  .soc svg{width:19px;height:19px;fill:var(--rouge);transition:fill .12s ease}
  @media(hover:hover){.soc:hover{background:var(--rouge);color:#fff;border-color:var(--rouge)}.soc:hover svg{fill:#fff}}
  .wall{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
  .wall .ph{aspect-ratio:1;border-radius:11px;font-size:10px}

  /* ---------- newsletter ---------- */
  .news2{background:var(--ink);color:#fff}
  .news2 .wrap{padding-block:48px}
  .news2 h2.sec{color:#fff}
  .news2 .kicker{color:#fff;opacity:.72}
  .news2 .lead{color:rgba(255,255,255,.8)}
  .form{display:grid;grid-template-columns:1fr;gap:10px;margin-top:24px;max-width:640px}
  .form input{
    width:100%;height:52px;border-radius:13px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);
    color:#fff;padding:0 16px;font-family:inherit;font-size:15px;
  }
  .form input::placeholder{color:rgba(255,255,255,.6)}
  .form button{
    height:52px;border-radius:13px;border:0;background:var(--rouge);color:#fff;font-family:inherit;font-weight:900;
    font-size:15px;cursor:pointer;transition:background .12s ease;
  }
  @media(hover:hover){.form button:hover{background:#fff;color:var(--rouge)}}
  .fineprint{margin-top:12px;font-size:12px;color:rgba(255,255,255,.6)}

  /* ---------- footer ---------- */
  footer.end{background:#fff;border-top:1px solid var(--line)}
  footer.end .wrap{padding-block:40px 34px;display:grid;grid-template-columns:1fr;gap:26px}
  footer.end h4{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:19px;letter-spacing:.03em;text-transform:uppercase;color:var(--rouge)}
  footer.end p,footer.end li{font-size:13.5px;color:var(--grey);line-height:1.7}
  footer.end ul{list-style:none;margin-top:8px}
  footer.end a{text-decoration:none;font-weight:700}
  @media(hover:hover){footer.end a:hover{color:var(--rouge)}}
  /* the credit row spans the whole footer width, never one grid column */
  footer.end .wrap.foot-legal{display:block;padding-block:0}
  .legal{border-top:1px solid var(--line);margin-top:6px;padding-block:18px 26px;text-align:center;font-size:11.5px;color:#9A9A9D;line-height:1.8}
  .legal a{color:var(--grey);font-weight:700;border-bottom:1px solid var(--line);text-decoration:none}

  /* ---------- newsletter slide-in ---------- */
  .popin{
    position:fixed;left:16px;right:16px;bottom:16px;z-index:60;background:#fff;border:1px solid var(--line);
    border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.24);padding:20px 18px;
    transform:translateY(140%);transition:transform .38s cubic-bezier(.2,.8,.2,1);
  }
  .popin.show{transform:translateY(0)}
  .popin h5{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:23px;letter-spacing:.02em;text-transform:uppercase;color:var(--rouge);padding-right:28px}
  .popin p{font-size:13.5px;color:var(--grey);margin-top:6px}
  .popin .row{display:flex;flex-direction:column;gap:9px;margin-top:14px}
  .popin input{height:48px;border-radius:12px;border:1px solid var(--line);padding:0 14px;font-family:inherit;font-size:15px}
  .popin button.go{height:48px;border-radius:12px;border:0;background:var(--rouge);color:#fff;font-family:inherit;font-weight:900;font-size:15px;cursor:pointer}
  .popin .x{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--grey);font-size:17px;line-height:1;cursor:pointer}

  /* ---------- cinematic layer (home): entrance, scroll reveals, film still; none of it runs with reduced motion ---------- */
  @media(prefers-reduced-motion:no-preference){
    .hero .bg{animation:cinePush 16s cubic-bezier(.2,.7,.2,1) both}
    .hero .photo img{animation:cineRise 1.1s cubic-bezier(.2,.8,.2,1) .12s both}
    .hero .copy>*{animation:cineUp .8s cubic-bezier(.2,.8,.2,1) both}
    .hero .copy>:nth-child(1){animation-delay:.2s}
    .hero .copy>:nth-child(2){animation-delay:.32s}
    .hero .copy>:nth-child(3){animation-delay:.44s}
    .hero .copy>:nth-child(4){animation-delay:.56s}
    .rv [data-reveal]{transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
    .rv [data-reveal]:not(.in){opacity:0;transform:translateY(22px)}
    .rv .cards>[data-reveal]:nth-child(2),.rv .posts>[data-reveal]:nth-child(2),.rv .stats>[data-reveal]:nth-child(2){transition-delay:.08s}
    .rv .cards>[data-reveal]:nth-child(3),.rv .posts>[data-reveal]:nth-child(3),.rv .stats>[data-reveal]:nth-child(3){transition-delay:.16s}
    .rv .cards>[data-reveal]:nth-child(4){transition-delay:.24s}
    .rv [data-reveal=zoom]:not(.in){opacity:1;transform:none}
    .rv [data-reveal=zoom] img{transform:scale(1.07);transition:transform 2.6s cubic-bezier(.2,.7,.2,1)}
    .rv [data-reveal=zoom].in img{transform:none}
  }
  @media print{.rv [data-reveal]{opacity:1 !important;transform:none !important}.hero .bg,.hero .photo img,.hero .copy>*{animation:none !important}}
  @keyframes cinePush{from{transform:scale(1.09)}to{transform:none}}
  @keyframes cineRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
  @keyframes cineUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  .band{background:#0B0B0C;color:#fff;padding-block:clamp(18px,3vw,38px)}
  .band .still{margin:0}
  .band .frame{aspect-ratio:4/3;overflow:hidden;background:#151517}
  .band .frame img{width:100%;height:100%;object-fit:cover;object-position:50% 76%;display:block}
  .band figcaption{margin:14px auto 0;padding-inline:20px;max-width:60ch;text-align:center;font-size:clamp(14px,1.4vw,17px);letter-spacing:.02em;color:rgba(255,255,255,.88)}
  /* keyboard focus is always visible */
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--rouge);outline-offset:3px}
  .hero :focus-visible,.band :focus-visible{outline-color:#fff}

  /* ---------- breakpoints ---------- */
  @media(min-width:700px){
    .wrap{padding-inline:32px}
    .band .frame{aspect-ratio:16/9}
    .hero{flex-direction:row;align-items:center;min-height:clamp(520px,46vw,760px)}
    .hero .bg{background-image:linear-gradient(90deg,rgba(58,4,7,.62) 0%,rgba(58,4,7,.38) 34%,rgba(58,4,7,0) 52%),url(hero/flag-desktop.webp?v=03b85982);
      background-size:100% 100%,cover;background-position:0 0,50% 45%}
    .hero .photo{position:absolute;bottom:0;right:max(0px,calc((100vw - 1500px) / 2));height:calc(100% - 26px);width:auto;margin:0}
    .hero h1{font-size:clamp(52px,6.6vw,92px);white-space:nowrap}
    .hero .wrap{padding-block:56px}
    .hero .copy{text-align:left;max-width:min(560px,44vw)}
    .hero .claim{margin-inline:0}
    .hero .cta{justify-content:flex-start}
    .cards{grid-template-columns:repeat(2,1fr);gap:16px}
    .stats{grid-template-columns:repeat(3,1fr)}
    .posts{grid-template-columns:repeat(3,1fr)}
    .form{grid-template-columns:1fr 1fr;align-items:center}
    .form button{grid-column:1 / -1}
    .popin{left:auto;right:22px;bottom:22px;width:370px}
    .popin .row{flex-direction:row}
    .popin input{flex:1 1 auto;min-width:0}
    footer.end .wrap{grid-template-columns:repeat(3,1fr);gap:30px}
  }
  @media(min-width:700px) and (max-width:999px){
    .hero .photo{right:-9vw}
    .hero .copy{max-width:40vw}
  }
  @media(min-width:1000px){
    :root{--bar:74px}
    nav.menu{display:flex;align-items:center;gap:2px;margin-right:6px}
    .burger{display:none}
    .drawer{display:none !important}
    .brand b{font-size:24px}
    .hero .wrap{padding-block:72px}
    .home h2.sec{font-size:clamp(44px,4.2vw,62px)}
    .cta{justify-content:flex-start}
    .about .wrap,.svc .wrap,.prio .wrap,.acc .wrap,.news .wrap,.follow .wrap,.news2 .wrap{padding-block:72px}
    .cards{grid-template-columns:repeat(4,1fr)}
    .about .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
    .aboutshot{margin-top:0;aspect-ratio:4/5}
    .form{grid-template-columns:1fr 1fr 1fr auto;max-width:900px}
    .wall{grid-template-columns:repeat(6,1fr);gap:10px}
    .form button{grid-column:auto;padding-inline:26px}
  }

  /* language visibility, declared last so no element selector above can beat it */
  .t-en{display:none}
  body.lang-en .t-fr{display:none}
  body.lang-en .t-en{display:inline}
  .blk.t-fr{display:block}
  .blk.t-en{display:none}
  body.lang-en .blk.t-fr{display:none}
  body.lang-en .blk.t-en{display:block}

  /* ================= inside pages ================= */
  .pagehead{background:linear-gradient(158deg,var(--rouge),var(--rouge-deep));color:#fff}
  .pagehead .wrap{padding-block:34px 38px}
  .pagehead .kicker{color:rgba(255,255,255,.82)}
  .pagehead h1{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(32px,7.4vw,54px);line-height:1;letter-spacing:.02em;text-transform:uppercase;margin-top:8px}
  .pagehead .lead{color:rgba(255,255,255,.92);margin-top:12px}
  .crumb{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72)}
  .crumb a{text-decoration:none}
  @media(hover:hover){.crumb a:hover{color:#fff}}

  nav.menu a.on{background:#FBEAEB;color:var(--rouge)}
  .drawer a.on{color:var(--rouge)}

  section.page{padding-block:34px 42px}
  section.page+section.page{padding-top:0}
  section.alt{background:var(--page)}
  .rule{width:46px;height:3px;background:var(--rouge);border-radius:2px;margin:26px 0}

  .prose{max-width:68ch}
  .prose h3{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(22px,4.4vw,30px);letter-spacing:.02em;text-transform:uppercase;margin-top:28px}
  .prose p{margin-top:12px;font-size:clamp(15px,2.3vw,16.5px)}
  .prose p.first{font-size:clamp(16px,2.6vw,18.5px);color:var(--ink)}
  .prose ul{margin-top:12px;padding-left:18px}
  .prose li{margin-top:7px;font-size:clamp(15px,2.3vw,16.5px)}

  .split{display:grid;gap:26px}
  .draft{display:inline-block;font-size:10.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge);background:#FBEAEB;border:1px solid #F3CFD1;border-radius:999px;padding:5px 11px;margin-bottom:14px}

  .steps{display:grid;gap:14px;margin-top:22px}
  .step{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
  .step b{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:26px;color:var(--rouge);line-height:1;min-width:26px}
  .step h4{font-size:15.5px}
  .step p{font-size:14.5px;color:var(--grey);margin-top:4px}

  .svcitem{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 20px 22px;margin-top:14px}
  .svcitem h3{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:clamp(20px,4vw,26px);letter-spacing:.02em;text-transform:uppercase}
  .svcitem p{margin-top:8px;font-size:15px;color:var(--grey)}
  .svcitem ul{margin-top:10px;padding-left:18px}
  .svcitem li{font-size:14.5px;margin-top:5px}

  .note{background:#FBEAEB;border:1px solid #F3CFD1;border-radius:14px;padding:16px 18px;margin-top:22px}
  .note h4{font-size:15px;color:var(--rouge)}
  .note p{font-size:14.5px;margin-top:6px}

  .rec{border-top:1px solid var(--line);padding-block:16px;display:grid;gap:4px}
  .rec time{font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--rouge)}
  .rec h4{font-size:16.5px}
  .rec p{font-size:14.5px;color:var(--grey)}

  .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
  .chip{font-size:13px;font-weight:700;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--grey)}
  .chip.on{background:var(--rouge);border-color:var(--rouge);color:#fff}

  .offices{display:grid;gap:16px;margin-top:22px}
  .office{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}
  .office h3{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:24px;letter-spacing:.02em;text-transform:uppercase}
  .office p{margin-top:10px;font-size:15px}
  .office a{color:var(--rouge);text-decoration:none;font-weight:700}
  .office ul{margin-top:12px;list-style:none;border-top:1px solid var(--line);padding-top:12px}
  .office li{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;padding:4px 0}
  .office li span:last-child{color:var(--grey)}

  .cform{display:grid;gap:12px;margin-top:20px;max-width:640px}
  .cform input,.cform textarea,.cform select{
    font-family:"Lato",sans-serif;font-size:15px;color:var(--ink);background:#fff;
    border:1px solid var(--line);border-radius:12px;padding:13px 14px;width:100%;
  }
  .cform textarea{min-height:130px;resize:vertical}
  .cform button{
    font-family:"Lato",sans-serif;font-weight:900;font-size:14px;letter-spacing:.04em;text-transform:uppercase;
    background:var(--rouge);color:#fff;border:0;border-radius:12px;padding:14px 22px;cursor:pointer;justify-self:start;
  }
  @media(hover:hover){.cform button:hover{background:var(--rouge-deep)}}
  /* the select's own inner offset is 4 px: its text starts where the inputs' text starts */
  .cform select{padding-left:10px}
  .cform input,.cform select{height:48px}
  .cform + .fineprint{color:var(--grey)}
  /* wide screens: the form spans the page width, two fields per row, message and button on full rows */
  @media(min-width:700px){
    .cform{max-width:none;grid-template-columns:1fr 1fr;column-gap:16px}
    .cform textarea,.cform button{grid-column:1 / -1}
  }

  @media(min-width:700px){
    .pagehead .wrap{padding-block:44px 50px}
    .steps{grid-template-columns:repeat(3,1fr)}
    .offices{grid-template-columns:1fr 1fr}
    .split{grid-template-columns:1.1fr .9fr;align-items:start}
  }
  @media(min-width:1000px){
    .pagehead .wrap{padding-block:54px 60px}
    section.page{padding-block:52px 60px}
  }

  /* 3:4 centre = the crop Instagram itself uses on his grid, so reel cover titles stay whole */
  /* ---------- 2026-09-23: real news cards, Instagram wall, newsletter link, office maps ---------- */
  .post[hidden]{display:none}
  .post .pic{position:relative;aspect-ratio:3/4;overflow:hidden;background:#EDEDEE}
  .post .pic img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .25s ease}
  .post .pic .kind{position:absolute;left:10px;top:10px;background:rgba(18,18,20,.66);color:#fff;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
  .post .tx h3{color:var(--ink)}
  @media(hover:hover){.post:hover .pic img{transform:scale(1.03)}}
  .chip{font-family:inherit;cursor:pointer}
  .wall .tile{display:block;aspect-ratio:3/4;border-radius:11px;overflow:hidden;background:#EDEDEE}
  .wall .tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
  @media(hover:hover){.wall .tile:hover img{transform:scale(1.05)}}
  .nlgo{display:inline-flex;align-items:center;justify-content:center;min-height:52px;margin-top:24px;padding:0 28px;border-radius:13px;background:var(--rouge);color:#fff;font-weight:900;font-size:15px;text-decoration:none;transition:background .12s ease,color .12s ease}
  @media(hover:hover){.nlgo:hover{background:#fff;color:var(--rouge)}}
  .popin a.go{display:flex;align-items:center;justify-content:center;height:48px;margin-top:14px;border-radius:12px;background:var(--rouge);color:#fff;font-weight:900;font-size:15px;text-decoration:none}
  .map{margin-top:16px;border-radius:12px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:#EDEDEE}
  .map iframe{width:100%;height:100%;border:0;display:block}
  .office p.dir{margin-top:10px;font-size:14.5px}

  /* ---------- 2026-10-01: Eric's own photos (email 30 Sep), credit Daniel Pereira ---------- */
  .shot{margin:26px 0 0}
  .shot .frame{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/2;background:#EDEDEE}
  .shot .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
  /* the laugh: framed on Eric and the PM, the man walking past on the right stays out */
  .shot-rire .frame img{transform:scale(1.4035);transform-origin:43.5% 75%}
  .shot-bureau .frame img{object-position:50% 54%}
  .shot figcaption{margin-top:10px;font-size:13.5px;color:var(--grey);line-height:1.5}
  .shot figcaption .credit{display:block;margin-top:3px;font-size:11.5px;color:#9A9A9D;letter-spacing:.02em}
  @media(min-width:700px){.shot-bureau .frame{aspect-ratio:16/7}}
  @media(min-width:1000px){.about .shot{margin-top:0}}

  /* ---------- 2026-10-13: a grey .alt section keeps its own top padding (the stacked-section rule
     above set it to 0, so the kicker touched the top edge of the grey band: Contact, Services) ---------- */
  section.page+section.alt{padding-top:34px}
  @media(min-width:1000px){section.page+section.alt{padding-top:52px}}

  /* ---------- 2026-10-13: office archive photos (Manon) ---------- */
  .shot-ligne .frame img{object-position:50% 33%}
  .shot-equipe .frame img{object-position:50% 70%}
  .shot-chambre .frame img{object-position:50% 40%}
  @media(min-width:700px){.shot-ligne .frame{aspect-ratio:16/7}.shot-equipe .frame{aspect-ratio:2/1}}
/* contact form: result notes shown by :target, hidden honeypot field (layout only) */
.envoi:not(:target){display:none}
.envoi{scroll-margin-top:100px}
.envoi:focus{outline:none}
.cform .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
