/* ============================================================
   Guillaume Payant · Conseiller en sécurité financière
   Design « charpente » : papier, sauge, épinette, ambre
   ============================================================ */
:root{
  --papier:#FAF7F1; --carte:#FFFFFF; --sauge:#EDF0E7;
  --encre:#1D231E; --encre-2:#4A5248;
  --epinette:#24382C; --epinette-h:#33503F;
  --ambre:#A5711E; --ambre-h:#8A5D16; --ambre-clair:#D9A65A;
  --filet:#DAD6CA; --grille:rgba(36,56,44,.07);
  --sec:var(--papier);
  --r:2px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--papier); color:var(--encre);
  font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Besley",Georgia,"Times New Roman",serif; line-height:1.12; letter-spacing:-.01em; margin:0}
h1{font-weight:700; font-size:clamp(2.3rem,5.2vw,3.9rem)}
h2{font-weight:600; font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-weight:600; font-size:1.28rem}
p{margin:0 0 1rem}
a{color:var(--epinette); text-decoration:none}
a:hover{color:var(--epinette-h)}
:focus-visible{outline:3px solid var(--ambre); outline-offset:3px; border-radius:var(--r)}
.wrap{width:min(1120px,92vw); margin-inline:auto}
.skip{position:absolute; left:-999px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex; align-items:center; gap:.5rem; font-family:"Public Sans"; font-weight:600;
  padding:.85em 1.5em; border-radius:var(--r); border:2px solid transparent; cursor:pointer; font-size:1rem;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.btn-primary{background:var(--epinette); color:#fff}
.btn-primary:hover{background:var(--epinette-h); color:#fff; transform:translateY(-1px)}
.btn-amber{background:var(--ambre); color:#fff}
.btn-amber:hover{background:var(--ambre-h); color:#fff; transform:translateY(-1px)}
.btn-ghost{background:transparent; color:var(--epinette); border-color:var(--filet)}
.btn-ghost:hover{border-color:var(--epinette); color:var(--epinette-h)}
.link-under{font-weight:600; border-bottom:1.5px solid var(--ambre); padding-bottom:1px}
.link-under:hover{color:var(--ambre-h); border-color:var(--ambre-h)}

/* ---------- Navigation ---------- */
header.nav{position:sticky; top:0; z-index:50; background:rgba(250,247,241,.86);
  backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--filet)}
.nav-in{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0}
.brand{display:flex; flex-direction:column; line-height:1.1}
.brand .n{font-family:"Besley"; font-weight:700; font-size:1.15rem; color:var(--encre)}
.brand .s{font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--encre-2)}
.nav-links{display:flex; align-items:center; gap:1.6rem}
.nav-links a.n-link{font-weight:600; color:var(--encre-2); font-size:.98rem}
.nav-links a.n-link:hover{color:var(--epinette)}
.nav-links a.n-link[aria-current="page"]{color:var(--epinette); border-bottom:2px solid var(--ambre); padding-bottom:2px}
.menu-toggle{display:none; align-items:center; justify-content:center; width:44px; height:40px; padding:0;
  background:transparent; border:1.5px solid var(--filet); border-radius:var(--r); color:var(--epinette); cursor:pointer}
.menu-toggle:hover{border-color:var(--epinette)}
.menu-toggle svg{width:22px; height:22px}

/* ---------- Charpente (rail + noeud) ---------- */
.section{position:relative; padding:clamp(3.5rem,8vw,6rem) 0}
.bg-papier{background:var(--papier); --sec:var(--papier)}
.bg-sauge{background:var(--sauge); --sec:var(--sauge)}
.charpente{position:relative}
@media(min-width:980px){
  .charpente{padding-left:2.4rem}
  .charpente::before{content:""; position:absolute; left:0; top:.2rem; bottom:.2rem; width:1px;
    background:linear-gradient(to bottom,transparent,var(--epinette) 8%,var(--epinette) 92%,transparent); opacity:.28}
  .charpente::after{content:""; position:absolute; left:-5px; top:.2rem; width:12px; height:12px; border-radius:50%;
    background:var(--ambre); border:2px solid var(--epinette); box-shadow:0 0 0 4px var(--sec)}
}
.label{display:inline-block; font-weight:700; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ambre); margin-bottom:.9rem}
.lead{font-size:1.16rem; color:var(--encre-2); max-width:52ch}

/* ---------- Héros accueil ---------- */
.hero{position:relative; overflow:hidden; background:var(--papier); --sec:var(--papier)}
.hero::before{content:""; position:absolute; inset:0; z-index:0;
  background-image:linear-gradient(var(--grille) 1px,transparent 1px),linear-gradient(90deg,var(--grille) 1px,transparent 1px);
  background-size:56px 56px; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 45%,transparent 92%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 45%,transparent 92%)}
.hero .wrap{position:relative; z-index:1}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:2.5rem; align-items:center; padding:clamp(3rem,7vw,5.5rem) 0}
.eyebrow{font-weight:600; font-size:.86rem; letter-spacing:.04em; color:var(--epinette); text-transform:uppercase; margin-bottom:1.1rem}
.hero h1{margin-bottom:1.4rem}
.roofword{position:relative; display:inline-block; white-space:nowrap; color:var(--epinette); padding-bottom:.18em}
.roofword svg{position:absolute; left:2%; right:2%; bottom:.03em; width:96%; height:.2em; overflow:visible}
.hero-sub{font-size:1.18rem; color:var(--encre-2); max-width:52ch; margin-bottom:1.8rem}
.hero-cta{display:flex; align-items:center; gap:1.3rem; flex-wrap:wrap}
.micro{margin-top:1.9rem; padding-top:1.1rem; border-top:1px solid var(--filet); font-size:.86rem; color:var(--encre-2); max-width:56ch}
.hero-card{background:var(--carte); border:1px solid var(--filet); border-radius:var(--r); padding:1.6rem;
  box-shadow:0 20px 50px -34px rgba(36,56,44,.4)}
.hero-card .rc{display:flex; gap:.8rem; padding:.7rem 0; border-bottom:1px solid var(--filet); align-items:flex-start}
.hero-card .rc:last-child{border-bottom:0}
.hero-card .tick{color:var(--ambre); font-weight:700; flex:0 0 auto}
.hero-card .rc b{font-family:"Besley"; font-weight:600}
.hero-media{display:flex; flex-direction:column; gap:1rem}
.hero-photo{aspect-ratio:1/1; border:1px solid var(--filet); border-radius:var(--r); overflow:hidden; box-shadow:0 24px 60px -38px rgba(36,56,44,.5)}
.hero-photo img{width:100%; height:100%; object-fit:cover; object-position:center 16%; display:block}
.cta-photo{border:1px solid var(--filet); border-radius:var(--r); overflow:hidden; aspect-ratio:16/9; background:var(--carte)}
.cta-photo img{width:100%; height:100%; object-fit:cover; object-position:center 28%; display:block}

/* ---------- En-tête de page intérieure ---------- */
.page-hero{position:relative; overflow:hidden; background:var(--papier); padding:clamp(3rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem)}
.page-hero::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(var(--grille) 1px,transparent 1px),linear-gradient(90deg,var(--grille) 1px,transparent 1px);
  background-size:56px 56px; -webkit-mask-image:linear-gradient(to bottom,#000,transparent 96%);
  mask-image:linear-gradient(to bottom,#000,transparent 96%)}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(2rem,4.4vw,3.1rem); max-width:22ch}
.page-hero .lead{margin-top:1.1rem}
.crumb{font-size:.85rem; color:var(--encre-2); margin-bottom:1.2rem}
.crumb a{font-weight:600}

/* ---------- Cartes / grilles ---------- */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2.2rem}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.2rem}
.card{background:var(--carte); border:1px solid var(--filet); border-radius:var(--r); padding:1.8rem}
.card.top-rule{border-top:3px solid var(--epinette)}
.card .sub-i{font-style:italic; color:var(--encre-2); margin:.2rem 0 1rem}
.quote-i{font-family:"Besley"; font-style:italic; font-size:1.12rem; color:var(--epinette); margin:0 0 1.1rem; line-height:1.4}
ul.ticks{list-style:none; margin:0 0 1.2rem; padding:0}
ul.ticks li{position:relative; padding-left:1.4rem; margin-bottom:.6rem; color:var(--encre-2)}
ul.ticks li::before{content:""; position:absolute; left:0; top:.62em; width:.7rem; height:2px; background:var(--ambre)}
.note{background:var(--sauge); border-left:3px solid var(--epinette); border-radius:var(--r); padding:.9rem 1.1rem;
  font-size:.94rem; color:var(--encre-2)}
.bg-sauge .note{background:var(--carte)}
.q-num{font-weight:700; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ambre); margin-bottom:.7rem}
.q-title{font-family:"Besley"; font-weight:600; font-size:1.2rem; color:var(--encre); margin-bottom:.7rem; line-height:1.28}
.chute{font-family:"Besley"; font-style:italic; font-size:1.16rem; color:var(--epinette); border-left:3px solid var(--ambre);
  padding:.4rem 0 .4rem 1.2rem; margin-top:2.2rem; max-width:60ch}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.2rem}
.step .num{display:inline-grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:50%;
  background:var(--epinette); color:#fff; font-family:"Besley"; font-weight:600; margin-bottom:.9rem}
.coord{margin-top:2rem; border-left:4px solid var(--ambre); padding:.4rem 0 .4rem 1.3rem; color:var(--encre-2); max-width:66ch}
.coord b{color:var(--encre)}

/* ---------- Panneau épinette ---------- */
.panel{position:relative; overflow:hidden; background:var(--epinette); color:#F4F1E9; border-radius:var(--r)}
.panel::before{content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px}
.panel-in{position:relative; padding:clamp(2.4rem,5vw,3.4rem); display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:center}
.panel .label{color:var(--ambre-clair)}
.panel h2{color:#FBF9F3}
.panel p{color:#DDE3D8}
.guide-form{display:flex; flex-direction:column; gap:.6rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r); padding:1.3rem}
.guide-form label{font-weight:600; font-size:.95rem; color:#F4F1E9}
.guide-form input{padding:.85em 1em; border-radius:var(--r); border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.95); color:var(--encre); font-size:1rem; font-family:"Public Sans"}
.guide-form .fine{font-size:.8rem; color:#C4CDBF; margin:0}

/* ---------- Qui je suis / à propos ---------- */
.about{display:grid; grid-template-columns:.8fr 1.2fr; gap:2.5rem; align-items:center}
.photo{aspect-ratio:4/5; background:var(--carte); border:1px solid var(--filet); border-radius:var(--r);
  position:relative; overflow:hidden}
.photo img{width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block}
.badges{display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.4rem}
.pill{border:1.5px solid var(--epinette); color:var(--epinette); border-radius:var(--r); padding:.35em .85em; font-size:.86rem; font-weight:600}

/* ---------- Prochaine étape ---------- */
.next{display:grid; grid-template-columns:1.1fr .9fr; gap:2.2rem; align-items:start}
.cal{border:2px dashed var(--epinette); border-radius:var(--r); padding:1.6rem; color:var(--encre-2); background:var(--carte)}
.cal h3{color:var(--epinette); margin-bottom:.5rem}

/* ---------- FAQ / accordéons ---------- */
details{background:var(--carte); border:1px solid var(--filet); border-radius:var(--r); margin-bottom:.8rem; overflow:hidden}
summary{cursor:pointer; list-style:none; padding:1.1rem 1.3rem; font-family:"Besley"; font-weight:600; font-size:1.08rem;
  display:flex; justify-content:space-between; gap:1rem; align-items:center; color:var(--encre)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; color:var(--ambre); font-family:"Public Sans"; font-weight:700; font-size:1.4rem; line-height:1}
details[open] summary::after{content:"–"}
details .ans{padding:0 1.3rem 1.2rem; color:var(--encre-2)}

/* ---------- Blogue : hub + cartes ---------- */
.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.2rem}
.post-card{background:var(--carte); border:1px solid var(--filet); border-radius:var(--r); padding:1.6rem;
  display:flex; flex-direction:column; gap:.6rem; transition:transform .18s ease, box-shadow .18s ease}
.post-card:hover{transform:translateY(-3px); box-shadow:0 18px 40px -30px rgba(36,56,44,.45)}
.post-card .cat{font-weight:700; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ambre)}
.post-card h3{font-size:1.14rem; line-height:1.3}
.post-card h3 a{color:var(--encre)}
.post-card h3 a:hover{color:var(--epinette)}
.post-card p{color:var(--encre-2); font-size:.95rem; margin:0}
.post-card .more{margin-top:auto; font-weight:600; color:var(--epinette); font-size:.92rem}

/* ---------- Article ---------- */
.article-head{background:var(--papier); padding:clamp(2.6rem,5vw,4rem) 0 1rem}
.article-head h1{font-size:clamp(1.9rem,4vw,2.7rem); max-width:26ch}
.post-meta{display:flex; align-items:center; gap:.9rem; margin-top:1.3rem; color:var(--encre-2); font-size:.92rem}
.post-meta img{width:44px; height:44px; border-radius:50%; object-fit:cover; object-position:center 20%; border:2px solid var(--epinette)}
.post-meta b{color:var(--encre)}
.prose{max-width:72ch; margin-inline:auto}
.prose h2{font-size:clamp(1.35rem,2.6vw,1.7rem); margin:2.2rem 0 .9rem; color:var(--epinette)}
.prose p{color:var(--encre-2)}
.prose strong{color:var(--encre)}
.prose ul{color:var(--encre-2); padding-left:1.3rem; margin:0 0 1rem}
.prose ul li{margin-bottom:.45rem}
.prose .disclaimer{background:var(--sauge); border-left:3px solid var(--epinette); border-radius:var(--r);
  padding:1rem 1.2rem; font-size:.92rem; color:var(--encre-2); margin-top:2rem}
.article-cta{background:var(--epinette); color:#F4F1E9; border-radius:var(--r); padding:2rem; margin-top:2.6rem;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem}
.article-cta .t{font-family:"Besley"; font-weight:600; font-size:1.25rem; max-width:34ch}
.back-blog{display:inline-block; margin-top:2.2rem; font-weight:600}

/* ---------- Footer ---------- */
footer{background:#161B17; color:#CFD6CB; padding:clamp(3rem,6vw,4.5rem) 0 2rem}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:2.5rem}
footer .n{font-family:"Besley"; font-weight:700; font-size:1.3rem; color:#F4F1E9}
footer .s{font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:#9AA593; margin-bottom:1rem}
footer p{color:#B9C1B2; max-width:52ch}
footer a{color:var(--ambre-clair)}
footer a:hover{color:#EBC98A}
.foot-links{display:flex; flex-direction:column; gap:.55rem}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:2.4rem; padding-top:1.4rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:#8B9484}

/* ---------- Animations ---------- */
.reveal{opacity:0; transform:translateY(16px); animation:rise .8s ease .05s both}
.reveal.in{opacity:1; transform:none}
.rise{opacity:0; transform:translateY(18px); animation:rise .8s ease forwards}
@keyframes rise{to{opacity:1; transform:none}}
.d1{animation-delay:.05s}.d2{animation-delay:.18s}.d3{animation-delay:.31s}.d4{animation-delay:.44s}.d5{animation-delay:.57s}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .hero-grid,.grid-2,.grid-3,.steps,.panel-in,.about,.next,.foot-grid,.post-grid{grid-template-columns:1fr}
  .hero-media{order:-1}
}
@media(max-width:840px){
  .nav-in{position:relative}
  .menu-toggle{display:inline-flex}
  .nav-links{position:absolute; top:calc(100% + 1px); left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
    background:var(--papier); border-bottom:1px solid var(--filet); box-shadow:0 18px 34px -26px rgba(36,56,44,.55);
    padding:.4rem 0 .8rem; display:none; z-index:60}
  .nav-links.open{display:flex}
  .nav-links a.n-link{display:block; padding:.9rem 6vw; font-size:1.06rem; color:var(--encre); border-bottom:1px solid var(--filet)}
  .nav-links a.n-link[aria-current="page"]{border-bottom:1px solid var(--filet); border-left:3px solid var(--ambre); padding-left:calc(6vw - 3px)}
  .nav-links a.btn{margin:.8rem 6vw 0; justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1!important; transform:none!important; transition:none!important}
  .rise{opacity:1!important; transform:none!important; animation:none!important}
}


/* Affiliation iA (integration subtile) */
:root{--ia-bleu:#064DD9}
footer{border-top:4px solid var(--ia-bleu)}
.ia-affil{margin:1.1rem 0 0}
.ia-affil img{display:block;width:150px;height:auto}
.ia-affil-about{margin:1.2rem 0 0;display:flex;align-items:center;gap:.6rem}
.ia-affil-about img{display:block;width:168px;height:auto}
