/* Accueilo — the site (2026-11-03). One stylesheet for every page. */
:root{
  --blue:#1F4E9E; --blue-deep:#173B78; --ink:#14213D; --soft:#4A5672; --snow:#F6F8FB; --white:#FFFFFF;
  --sun:#F5C542; --sun-ink:#2B2100; --ok:#2E8B57; --line:#DCE2EC; --warn:#B0412E;
  --r-lg:22px; --r-md:12px; --r-sm:8px;
  --display:"Bricolage Grotesque", "Atkinson Hyperlegible", system-ui, sans-serif;
  --text:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--snow);color:var(--ink);font:18px/1.55 var(--text);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:4px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--white);padding:8px 12px;z-index:9}

/* top bar */
.top{position:sticky;top:0;z-index:5;background:rgba(246,248,251,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:20px;height:64px}
.brand{font:700 24px/1 var(--display);color:var(--ink);text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}
.brand i{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--blue);box-shadow:5px 0 0 var(--sun)}
.top nav{display:flex;gap:18px;margin-left:auto;font-size:16px}
.top nav a{color:var(--ink);text-decoration:none}
.top nav a:hover{color:var(--blue);text-decoration:underline}
.lang{font-size:15px;color:var(--soft)!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 17px/1 var(--text);padding:15px 22px;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none}
.btn-sun{background:var(--sun);color:var(--sun-ink)}
.btn-sun:hover{background:#f8d364}
.btn-line{border-color:var(--blue);color:var(--blue);background:transparent}
.btn-line:hover{background:var(--white)}
.btn-blue{background:var(--blue);color:var(--white)}
.btn-blue:hover{background:var(--blue-deep)}
@media(max-width:820px){.top nav a:not(.lang):not(.btn){display:none}.top .btn{padding:11px 16px;font-size:15px}}

/* hero */
.hero{padding:56px 0 64px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font:800 clamp(40px,6vw,68px)/1.02 var(--display);letter-spacing:-.035em;margin:0 0 20px;max-width:13ch}
.hero p.lead{font-size:21px;color:var(--soft);max-width:34ch;margin:0 0 28px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .fine{margin-top:16px;font-size:15px;color:var(--soft)}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:36px}.hero{padding:36px 0 48px}}

/* the call: the one memorable object */
.call{background:var(--blue);color:var(--white);border-radius:var(--r-lg);padding:20px 20px 22px;box-shadow:0 30px 60px -30px rgba(23,59,120,.55)}
.call-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.18);margin-bottom:14px}
.dot{width:10px;height:10px;border-radius:50%;background:#5BE38F;box-shadow:0 0 0 4px rgba(91,227,143,.18)}
.call-head b{font:700 17px var(--display)}
.call-head span{margin-left:auto;font-size:15px;opacity:.8;font-variant-numeric:tabular-nums}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.tabs button{font:600 14px var(--text);color:var(--white);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);padding:7px 12px;border-radius:999px;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--white);color:var(--blue);border-color:var(--white)}
.lines{display:flex;flex-direction:column;gap:10px;min-height:330px}
.line{max-width:88%;padding:11px 14px;border-radius:16px;font-size:16.5px;line-height:1.4}
.line.them{align-self:flex-start;background:rgba(255,255,255,.12);border-bottom-left-radius:4px}
.line.lea{align-self:flex-end;background:var(--white);color:var(--ink);border-bottom-right-radius:4px}
.line small{display:block;font-size:12.5px;opacity:.7;margin-bottom:2px}
.line.lea small{color:var(--blue);opacity:1;font-weight:700}
.line.note{align-self:center;background:transparent;border:1px dashed rgba(255,255,255,.45);font-size:14.5px;text-align:center}
.reveal .line{opacity:0;transform:translateY(6px);animation:in .4s ease forwards}
@keyframes in{to{opacity:1;transform:none}}

/* sections */
section.band{padding:72px 0;border-top:1px solid var(--line)}
section.band.alt{background:var(--white)}
.band h2{font:800 clamp(30px,4vw,44px)/1.08 var(--display);letter-spacing:-.025em;margin:0 0 14px;max-width:22ch}
.band p.intro{color:var(--soft);font-size:19px;max-width:60ch;margin:0 0 36px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;padding-top:58px;position:relative}
.steps li::before{content:counter(s);position:absolute;top:0;left:0;width:42px;height:42px;border-radius:50%;background:var(--blue);color:var(--white);font:800 20px/42px var(--display);text-align:center}
.steps h3{font:700 21px/1.25 var(--display);margin:0 0 6px}
.steps p{margin:0;color:var(--soft)}
@media(max-width:820px){.steps{grid-template-columns:1fr}}

.who{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.who div{padding:26px 26px 26px 0;border-bottom:1px solid var(--line)}
.who div:nth-child(odd){border-right:1px solid var(--line)}
.who div:nth-child(even){padding-left:26px}
.who h3{font:700 22px/1.2 var(--display);margin:0 0 6px}
.who p{margin:0;color:var(--soft)}
@media(max-width:760px){.who{grid-template-columns:1fr}.who div{border-right:0!important;padding-left:0!important}}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.plan{background:var(--snow);border:1px solid var(--line);border-radius:var(--r-md);padding:26px;display:flex;flex-direction:column}
.plan.main{background:var(--blue);color:var(--white);border-color:var(--blue)}
.plan h3{font:700 22px var(--display);margin:0}
.plan .for{margin:4px 0 16px;color:var(--soft);font-size:16px}
.plan.main .for{color:#D6E1F5}
.price{font:800 46px/1 var(--display);letter-spacing:-.03em}
.price small{font:500 16px var(--text);letter-spacing:0}
.plan ul{padding-left:20px;margin:18px 0 0;font-size:16.5px}
.plan li{margin:6px 0}
.plan .soon{margin-top:auto;padding-top:16px;font-size:14.5px;color:var(--soft)}
.plans-fine{margin-top:18px;font-size:15.5px;color:var(--soft)}
@media(max-width:900px){.plans{grid-template-columns:1fr}}

.qc{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.qc ul{list-style:none;padding:0;margin:0}
.qc li{padding:14px 0 14px 34px;border-bottom:1px solid var(--line);position:relative}
.qc li::before{content:"";position:absolute;left:0;top:19px;width:18px;height:10px;border-left:3px solid var(--ok);border-bottom:3px solid var(--ok);transform:rotate(-45deg)}
@media(max-width:820px){.qc{grid-template-columns:1fr}}

.demo{background:var(--ink);color:var(--white);border-radius:var(--r-lg);padding:36px;display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center}
.demo h2{color:var(--white)}
.demo p{color:#C9D3E6;margin:0 0 6px}
.demo .num{font:800 clamp(28px,4vw,40px)/1 var(--display);color:var(--sun);text-decoration:none;letter-spacing:-.01em}
@media(max-width:820px){.demo{grid-template-columns:1fr;padding:26px}}

details.q{border-bottom:1px solid var(--line);padding:4px 0}
details.q summary{cursor:pointer;font:700 19px/1.35 var(--display);padding:16px 30px 16px 0;list-style:none;position:relative}
details.q summary::-webkit-details-marker{display:none}
details.q summary::after{content:"+";position:absolute;right:4px;top:12px;font:400 28px var(--text);color:var(--blue)}
details.q[open] summary::after{content:"–"}
details.q p{margin:0 0 18px;color:var(--soft);max-width:70ch}

/* form */
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px}
form.lead{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:26px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:640px){.f2{grid-template-columns:1fr}}
@media(max-width:900px){.contact{grid-template-columns:1fr;gap:24px}}
label{display:block;font-weight:700;font-size:15.5px;margin:14px 0 6px}
label span{font-weight:400;color:var(--soft)}
input,select,textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--snow);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px 13px}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px rgba(31,78,158,.18)}
textarea{min-height:110px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:15.5px;margin-top:18px}
.check input{width:20px;height:20px;margin-top:2px;flex:none}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.form-msg{margin-top:14px;font-size:16px}
.form-msg.ok{color:var(--ok);font-weight:700}
.form-msg.err{color:var(--warn);font-weight:700}
form.lead .btn{margin-top:20px;width:100%}

/* the seal (2026-11-07): hosted in Québec, data in Canada; drawn in SVG, the fleur-de-lys is heraldic, not a brand mark */
.seal-wrap{display:flex;align-items:center;gap:18px;margin:22px 0 0;max-width:560px}
.seal{flex:none;width:124px;height:124px;filter:drop-shadow(0 2px 4px rgba(19,26,46,.18))}
.seal-wrap p{margin:0;font-size:15.5px;line-height:1.45;color:var(--soft)}
.seal-wrap p b{display:block;color:var(--ink);font-size:16px}
.stamp-foot{display:inline-flex;align-items:center;gap:8px}
.seal-sm{width:34px;height:34px;filter:none}
@media (max-width:560px){.seal{width:96px;height:96px}}
.stamp-foot{display:inline-flex;align-items:center;gap:8px}
.stamp-foot i{width:18px;height:18px;background-size:13px}
.nl{border-top:1px solid var(--line)}
.nl-wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:28px 48px;align-items:center}
.nl-form{display:flex;flex-wrap:wrap;gap:10px}
.nl-form input{flex:1 1 220px;min-width:0;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.nl-form .form-msg{flex-basis:100%}
.btn-sm{font-size:14px;padding:8px 14px;margin-left:6px}
.sr{position:absolute;left:-9999px}
@media (max-width:760px){.nl-wrap{grid-template-columns:1fr}}
footer{padding:40px 0 56px;color:var(--soft);font-size:15.5px;border-top:1px solid var(--line)}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
footer a{color:var(--soft)}
footer .brand{font-size:20px}

/* plain pages (privacy, legal) */
.page{padding:48px 0 72px}
.page h1{font:800 clamp(32px,4.5vw,48px)/1.08 var(--display);letter-spacing:-.025em;margin:0 0 10px}
.page h2{font:700 24px/1.25 var(--display);margin:36px 0 8px}
.page p,.page li{max-width:72ch}
.page .upd{color:var(--soft)}

/* fonts served from our own server (no Google Fonts call: the visitor's address stays with us) */
@font-face{font-family:"Bricolage Grotesque";src:url(fonts/bricolage-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Bricolage Grotesque";src:url(fonts/bricolage-800.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(fonts/atkinson-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(fonts/atkinson-700.woff2) format("woff2");font-weight:700;font-display:swap}
