/* Retraite Maurice — thème « Lagon cristal », commun à tous les gabarits de pages */
:root{--navy:#0f3a6b;--navy-d:#0a2547;--blue:#1c7db3;--sky:#28a3e6;--lagoon:#3fd0d4;--ice:#e8f4fd;--sun1:#fbb52a;--sun2:#f48a1f;--sun3:#e2531b;--sand:#fdf3e1;--green:#159753;--red:#b11c1d;--muted:#41607f;--line:rgba(15,58,107,.1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{font-family:Outfit,sans-serif;background:#fff;color:var(--navy-d);overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.serif{font-family:Fraunces,serif;font-style:italic;font-weight:400}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.kicker{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sky)}
.h2{font-size:clamp(32px,3.8vw,54px);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin:12px 0 18px}
.h2 .serif{color:var(--blue)}
.lead{font-size:19px;line-height:1.65;color:var(--muted)}

/* aurore de fond */
.aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(180deg,#f4fbff,#fff 60%)}
.aurora i{position:absolute;border-radius:50%;opacity:.8;will-change:transform}
.aurora i:nth-child(1){width:600px;height:600px;background:radial-gradient(circle,#bfe9fb,transparent 68%);top:-200px;left:-150px;animation:a1 18s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:520px;height:520px;background:radial-gradient(circle,#c9f4f1,transparent 68%);top:20%;right:-180px;animation:a1 22s ease-in-out infinite alternate-reverse}
.aurora i:nth-child(3){width:380px;height:380px;background:radial-gradient(circle,#fde9c4,transparent 68%);bottom:-120px;left:30%;animation:a1 16s ease-in-out infinite alternate}
@keyframes a1{to{transform:translate(120px,80px) scale(1.2)}}

/* barre de lecture */
.readbar{position:fixed;top:0;left:0;height:3px;width:100%;z-index:60;transform-origin:0 50%;transform:scaleX(var(--read,0));background:linear-gradient(90deg,var(--lagoon),var(--sky),var(--sun1))}

/* navigation */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 40px;transition:padding .4s,background .4s,box-shadow .4s}
.nav.scrolled{background:rgba(255,255,255,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 1px 0 var(--line);padding:10px 40px}
.brand{display:flex;align-items:center;gap:10px;color:var(--navy);transition:color .4s}
.brand svg{width:52px;height:42px}
.brand b{display:block;font-weight:800;letter-spacing:.05em;font-size:15px;line-height:1.05}
.brand i{font-size:11px;color:var(--sky);font-style:italic}
.nav ul{display:flex;gap:4px;list-style:none;font-size:15px;padding:6px;border-radius:999px;background:rgba(255,255,255,.75);border:1px solid rgba(28,125,179,.12)}
.nav ul a{display:block;padding:8px 16px;border-radius:999px;transition:background .3s,color .3s}
.nav ul a:hover{background:var(--ice)}
.nav ul a.on{background:var(--navy);color:#fff}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:0;background:#fff;box-shadow:0 8px 20px -10px rgba(15,58,107,.5);cursor:pointer;place-items:center}
.burger span,.burger span::before,.burger span::after{display:block;width:18px;height:2px;background:var(--navy);border-radius:2px;position:relative;transition:transform .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}.burger span::before{top:-6px}.burger span::after{top:6px}
/* sur une photo plein écran, la marque passe en blanc tant qu'on n'a pas défilé */
body.on-photo .nav:not(.scrolled) .brand{color:#fff}
body.on-photo .nav:not(.scrolled) .brand i{color:#fff3cf}

/* boutons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:999px;font-weight:600;font-size:15.5px;overflow:hidden;isolation:isolate;transition:transform .3s,box-shadow .3s;border:0;cursor:pointer;font-family:inherit}
.btn-sun{background:linear-gradient(120deg,var(--sun1),var(--sun2));color:#fff;box-shadow:0 14px 30px -12px rgba(244,138,31,.9)}
.btn-sun::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.7) 50%,transparent 65%);transform:translateX(-120%);animation:shine 3.5s infinite;z-index:-1}
@keyframes shine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.btn-line{border:1.5px solid rgba(15,58,107,.2);background:rgba(255,255,255,.6);color:var(--navy-d)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);background:rgba(255,255,255,.12);color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn:hover{transform:translateY(-3px)}
.btn .arrow{display:inline-block;transition:transform .3s}.btn:hover .arrow{transform:translateX(5px)}
.btn-sm{padding:11px 20px;font-size:14.5px}

/* apparition au défilement */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}

/* fil d'Ariane */
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:#6d86a0}
.crumbs a:hover{color:var(--blue)}
.crumbs span::before{content:"›";margin-right:8px;color:#a9bccf}

/* ===== EN-TÊTES DE PAGE ===== */
/* 1. photo plein écran */
.ph-full{position:relative;height:100vh;min-height:640px;overflow:hidden;color:#fff;display:flex;align-items:flex-end}
.ph-full>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.14) translate(-1.5%,1%)}}
.ph-full::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,37,71,.55),rgba(10,37,71,0) 60%),linear-gradient(180deg,rgba(10,37,71,.45),rgba(10,37,71,0) 30%,rgba(10,37,71,.15) 55%,rgba(10,37,71,.82))}
.ph-full .in{position:relative;z-index:2;width:100%;max-width:1240px;margin:0 auto;padding:0 40px 70px}
.ph-full .crumbs{color:rgba(255,255,255,.8);margin-bottom:18px}.ph-full .crumbs span::before{color:rgba(255,255,255,.5)}
.ph-full h1{font-size:clamp(46px,7vw,104px);font-weight:700;letter-spacing:-.04em;line-height:.98;max-width:900px}
.ph-full h1 .serif{color:#fff3cf}
.ph-full p{font-size:19px;line-height:1.6;max-width:560px;margin:22px 0 30px;color:rgba(255,255,255,.88)}
.ph-full .ctas{display:flex;gap:14px;flex-wrap:wrap}
.ph-full .kicker{color:#9be8ea}
.hero-up>*{opacity:0;transform:translateY(30px);animation:up 1s cubic-bezier(.2,.8,.2,1) forwards}
.hero-up>*:nth-child(2){animation-delay:.12s}.hero-up>*:nth-child(3){animation-delay:.24s}.hero-up>*:nth-child(4){animation-delay:.36s}.hero-up>*:nth-child(5){animation-delay:.48s}
@keyframes up{to{opacity:1;transform:none}}
.scrollhint{position:absolute;right:40px;bottom:70px;z-index:2;width:28px;height:46px;border:2px solid rgba(255,255,255,.6);border-radius:20px}
.scrollhint::after{content:"";position:absolute;left:50%;top:9px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:wheel 1.8s infinite}
@keyframes wheel{to{transform:translateY(14px);opacity:0}}

/* 2. bandeau photo + carte titre qui chevauche */
.ph-band{position:relative;height:52vh;min-height:380px;margin:0 16px;border-radius:0 0 40px 40px;overflow:hidden}
.ph-band img{width:100%;height:100%;object-fit:cover;transform:translateY(calc(var(--py,0)*1px)) scale(1.12)}
.ph-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,37,71,.35),transparent 40%)}
.ph-card{position:relative;z-index:3;max-width:1100px;margin:-150px auto 0;padding:40px 50px;border-radius:32px;background:#fff;box-shadow:0 40px 80px -40px rgba(15,58,107,.45)}
.ph-card h1{font-size:clamp(34px,4.4vw,60px);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin:14px 0}
.ph-card h1 .serif{color:var(--blue)}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;font-size:14px;color:#6d86a0;margin-top:18px}
.meta img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.meta b{color:var(--navy-d);font-weight:600}
.tag{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--ice);color:var(--blue);font-size:12.5px;font-weight:600}

/* 3. en-tête clair, sans photo */
.ph-soft{padding:150px 0 50px;text-align:center}
.ph-soft h1{font-size:clamp(44px,6vw,84px);font-weight:700;letter-spacing:-.04em;line-height:1;margin:16px 0}
.ph-soft h1 .serif{background:linear-gradient(100deg,var(--blue),var(--lagoon),var(--sky),var(--blue));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:flow 7s linear infinite;padding-right:.1em}
@keyframes flow{to{background-position:-300% 0}}
.ph-soft .lead{max-width:620px;margin:0 auto}
.ph-soft .crumbs{justify-content:center}

/* ===== MISES EN PAGE AVEC BARRE LATÉRALE ===== */
.with-side{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:70px;max-width:1240px;margin:0 auto;padding:70px 40px 40px;align-items:start}
.with-side.left{grid-template-columns:290px minmax(0,1fr);gap:60px}
.side{position:sticky;top:96px;display:grid;gap:22px}
.widget{padding:26px;border-radius:26px;background:rgba(255,255,255,.85);border:1px solid var(--line);box-shadow:0 20px 50px -34px rgba(15,58,107,.5)}
.widget h4{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:#6d86a0;margin-bottom:14px;font-weight:600}

/* sommaire automatique */
.toc{list-style:none;display:grid;gap:2px;position:relative}
.toc a{display:block;padding:8px 12px 8px 16px;border-radius:12px;font-size:15px;color:#557391;border-left:2px solid #dbe7f2;transition:all .3s}
.toc a:hover{color:var(--navy-d)}
.toc a.on{color:var(--navy-d);font-weight:600;background:var(--ice);border-left-color:var(--sky)}
.toc-prog{height:6px;border-radius:6px;background:#e3eef8;margin-top:16px;overflow:hidden}
.toc-prog i{display:block;height:100%;width:calc(var(--read,0)*100%);background:linear-gradient(90deg,var(--lagoon),var(--sky));border-radius:6px}
.toc-pct{font-size:12.5px;color:#6d86a0;margin-top:8px}

/* carte conseiller */
.advisor{background:linear-gradient(160deg,var(--navy),var(--navy-d));color:#fff;border:0;overflow:hidden;position:relative}
.advisor::after{content:"";position:absolute;width:300px;height:300px;right:-120px;top:-140px;border-radius:50%;background:radial-gradient(circle,rgba(63,208,212,.35),transparent 65%)}
.advisor h4{color:#9be8ea}
.advisor .who{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.advisor .who img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.3)}
.advisor p{font-size:15px;line-height:1.55;color:#cfe0f0;margin-bottom:18px}
.advisor .btn{width:100%;position:relative;z-index:1}
.dot-on{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#9be8ea}
.dot-on::before{content:"";width:8px;height:8px;border-radius:50%;background:#3ee08f;box-shadow:0 0 0 0 rgba(62,224,143,.6);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(62,224,143,0)}100%{box-shadow:0 0 0 0 rgba(62,224,143,0)}}

/* liste d'articles avec vignette */
.minis{display:grid;gap:14px}
.minis a{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center}
.minis img{width:72px;height:56px;border-radius:12px;object-fit:cover;transition:transform .4s}
.minis a:hover img{transform:scale(1.06)}
.minis b{font-size:14.5px;font-weight:600;line-height:1.3;display:block}
.minis small{font-size:12.5px;color:#6d86a0}

.nl input{width:100%;padding:13px 16px;border-radius:14px;border:1.5px solid #d5e3ef;font:inherit;font-size:15px;margin-bottom:10px;background:#fff}
.nl input:focus{outline:0;border-color:var(--sky)}
.nl .btn{width:100%}
.nl p{font-size:14px;color:var(--muted);line-height:1.5;margin-bottom:14px}

/* ===== CONTENU RÉDACTIONNEL ===== */
.prose{font-size:18px;line-height:1.75;color:#2a4766}
.prose>*+*{margin-top:22px}
.prose h2{font-size:clamp(28px,2.8vw,38px);font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--navy-d);margin-top:64px}
.prose h2 .serif{color:var(--blue)}
.prose h3{font-size:22px;font-weight:700;color:var(--navy-d);margin-top:38px}
.prose a{color:var(--blue);text-decoration:underline;text-decoration-color:rgba(28,125,179,.3);text-underline-offset:3px}
.prose ul{list-style:none;display:grid;gap:10px}
.prose ul li{padding-left:30px;position:relative}
.prose ul li::before{content:"";position:absolute;left:4px;top:.6em;width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--lagoon),var(--sky))}
.prose .intro{font-size:21px;line-height:1.65;color:var(--navy-d)}
.prose figure{margin:40px 0}
.prose figure img{width:100%;border-radius:26px;aspect-ratio:16/9;object-fit:cover}
.prose figcaption{font-size:14px;color:#6d86a0;margin-top:10px;text-align:center}
.prose blockquote{position:relative;padding:34px 40px 30px 40px;border-radius:26px;background:var(--sand);font-family:Fraunces,serif;font-style:italic;font-size:23px;line-height:1.5;color:var(--navy-d)}
.prose blockquote::before{content:"“";position:absolute;top:-24px;left:26px;font-size:90px;line-height:1;color:var(--sun2)}
.prose blockquote cite{display:block;margin-top:14px;font-family:Outfit,sans-serif;font-style:normal;font-size:14.5px;color:#8a6a3c}
.note{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:22px 24px;border-radius:20px;background:var(--ice);font-size:16.5px;line-height:1.6}
.note .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff;font-weight:800;color:var(--blue);font-size:20px}
.note b{display:block;color:var(--navy-d);margin-bottom:2px}
.note.warn{background:#fff6e5}.note.warn .ic{color:var(--sun2)}
.note.ok{background:#e8f7ef}.note.ok .ic{color:var(--green)}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:16px;border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.tbl th{background:var(--navy);color:#fff;text-align:left;padding:14px 18px;font-weight:600;font-size:14.5px}
.tbl td{padding:14px 18px;border-top:1px solid var(--line)}
.tbl tr:nth-child(even) td{background:#f6fafd}
.tbl td:last-child{font-weight:600;color:var(--navy-d);white-space:nowrap}

/* budget en barres animées */
.bars{display:grid;gap:14px;padding:28px;border-radius:26px;background:#fff;border:1px solid var(--line)}
.bar{display:grid;grid-template-columns:150px 1fr 90px;gap:14px;align-items:center;font-size:15.5px}
.bar i{display:block;height:12px;border-radius:8px;background:#e3eef8;overflow:hidden}
.bar i::after{content:"";display:block;height:100%;width:0;border-radius:8px;background:linear-gradient(90deg,var(--lagoon),var(--sky));transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.bars.in .bar i::after{width:var(--w)}
.bar b{text-align:right}
.bars .tot{display:flex;justify-content:space-between;border-top:1px dashed #cddbe8;padding-top:14px;font-weight:700;font-size:18px}

/* encart d'appel dans le texte */
.inline-cta{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:30px 34px;border-radius:26px;background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;position:relative;overflow:hidden}
.inline-cta::after{content:"";position:absolute;width:260px;height:260px;right:-60px;bottom:-140px;border-radius:50%;background:radial-gradient(circle,rgba(251,181,42,.5),transparent 65%)}
.inline-cta h3{color:#fff;margin:0 0 6px;font-size:22px}
.inline-cta p{color:#cfe0f0;font-size:16px;line-height:1.5}
.inline-cta .btn{position:relative;z-index:1}

/* auteur + partage */
.author{display:grid;grid-template-columns:80px 1fr;gap:20px;align-items:center;margin-top:60px;padding:28px;border-radius:26px;background:#f6fafd}
.author img{width:80px;height:80px;border-radius:50%;object-fit:cover}
.author b{font-size:18px}.author p{font-size:15.5px;color:var(--muted);line-height:1.55;margin-top:4px}

/* cartes d'articles */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.card{display:flex;flex-direction:column;border-radius:26px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 24px 50px -40px rgba(15,58,107,.6);transition:transform .4s,box-shadow .4s}
.card:hover{transform:translateY(-6px);box-shadow:0 34px 60px -36px rgba(15,58,107,.6)}
.card .ci{position:relative;aspect-ratio:16/10;overflow:hidden}
.card .ci img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.card:hover .ci img{transform:scale(1.07)}
.card .ci .tag{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.92)}
.card .cb{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-size:21px;font-weight:700;letter-spacing:-.015em;line-height:1.25}
.card p{font-size:15.5px;color:var(--muted);line-height:1.55}
.card small{margin-top:auto;font-size:13px;color:#6d86a0}

/* FAQ */
.faq{display:grid;gap:12px}
.faq details{border-radius:20px;background:#fff;border:1px solid var(--line);padding:4px 24px;transition:box-shadow .3s}
.faq details[open]{box-shadow:0 20px 40px -30px rgba(15,58,107,.6)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 0;font-weight:600;font-size:17.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:0 0 34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ice);color:var(--blue);font-size:22px;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;color:var(--muted);line-height:1.65;font-size:16.5px}

/* pied de page */
.foot{background:var(--navy-d);color:#cfe0f0;margin-top:100px;padding:70px 0 0}
.fcols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
.foot .brand{color:#fff}.foot .brand i{color:var(--sun1)}
.foot p{line-height:1.7;margin-top:18px;max-width:320px;font-size:15px;color:#9fb6cf}
.foot h5{color:#fff;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.foot .fcols a:not(.brand){display:block;padding:6px 0;color:#9fb6cf;font-size:15px;transition:color .2s}
.foot .fcols a:not(.brand):hover{color:#fff}
.legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:56px;padding:22px 40px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:#7f98b5}

/* étiquette « gabarit » pour la présentation */
.tpl{position:fixed;left:16px;bottom:16px;z-index:70;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border-radius:999px;background:var(--navy-d);color:#fff;font-size:13px;box-shadow:0 14px 30px -12px rgba(10,37,71,.7)}
.tpl b{background:var(--sun1);color:var(--navy-d);border-radius:999px;padding:2px 9px;font-size:12px}
.tpl a{color:#9be8ea;text-decoration:underline}

@media(max-width:1260px){.nav ul a{padding:8px 12px;font-size:14px}}
@media(max-width:1080px){
  .with-side,.with-side.left{grid-template-columns:1fr;gap:40px}
  .side{position:static}
}
@media(max-width:980px){
  .nav,.nav.scrolled{padding:12px 20px}
  .nav ul{position:fixed;top:74px;left:16px;right:16px;flex-direction:column;border-radius:24px;padding:10px;background:#fff;box-shadow:0 30px 60px -30px rgba(15,58,107,.6);opacity:0;pointer-events:none;transform:translateY(-10px);transition:all .3s}
  .nav.open ul{opacity:1;pointer-events:auto;transform:none}
  .nav ul a{padding:13px 18px;font-size:17px}
  .nav>.btn{display:none}
  .burger{display:grid}
  .wrap{padding:0 20px}
  .with-side,.with-side.left{padding:40px 20px 20px}
  .ph-full .in{padding:0 20px 50px}.scrollhint{display:none}
  .ph-band{margin:0;border-radius:0 0 28px 28px;height:42vh}
  .ph-card{margin:-90px 14px 0;padding:28px 22px;border-radius:26px}
  .fcols{grid-template-columns:1fr 1fr}.fcols>div:first-child{grid-column:1/-1}.legal{padding:22px 20px}
  .cards{grid-template-columns:1fr}
  .inline-cta{grid-template-columns:1fr}
  .bar{grid-template-columns:100px 1fr 70px;font-size:14px}
  .prose{font-size:17px}.prose blockquote{padding:30px 24px 24px;font-size:20px}
  .tbl{font-size:14px}.tbl th,.tbl td{padding:11px 12px}
  .tpl{left:auto;right:12px;bottom:12px;font-size:12px}
}
