:root {
  --navy: #062d6a;
  --navy-deep: #032356;
  --green: #49b82e;
  --yellow: #ffd936;
  --pale-yellow: #fff7cf;
  --sky: #eaf5fd;
  --ink: #102443;
  --body: #44536b;
  --paper: #fffefd;
  --line: #dfe6ef;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --shadow: 0 22px 48px rgba(6,45,106,.14);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.6 var(--sans); }
a { color: inherit; text-underline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { color: var(--ink); line-height: 1.08; letter-spacing: -.035em; }
h1,h2 { font-family: var(--serif); font-weight: 700; }
h1 { font-size: clamp(2.9rem, 5.9vw, 5.1rem); }
h2 { font-size: clamp(2.2rem, 4.1vw, 3.7rem); }
h3 { font-size: 1.19rem; }
.site-shell { width: min(1190px, calc(100% - 56px)); margin-inline: auto; }
.screen-reader-text, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link:focus { position: fixed; z-index: 99; top: 10px; left: 10px; padding: 10px 14px; background: #fff; color: var(--navy); }
.site-header { position: sticky; z-index: 20; top: 0; background: rgba(255,254,253,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.header-inner { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--navy); }
.brand-logo { width: 55px; height: 55px; object-fit: contain; border-radius: 50%; }
.brand-copy { display: grid; gap: 1px; line-height: 1.08; }
.brand-copy strong { font-family: var(--serif); font-size: 1.12rem; letter-spacing: -.04em; }
.brand-copy small { color: #5a708d; font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 24px; }
.nav-list,.footer-menu { display: flex; gap: 23px; padding: 0; margin: 0; list-style: none; }
.nav-list a { color: #40526d; font-size: .9rem; font-weight: 600; text-decoration: none; }
.nav-list a:hover,.nav-list .current-menu-item a { color: var(--navy); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 51px; padding: 13px 22px; border: 1px solid var(--navy); border-radius: 4px; background: var(--navy); color: #fff; font-size: .9rem; font-weight: 800; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: var(--navy-deep); text-decoration: none; }
.button-small { min-height: 41px; padding: 8px 14px; font-size: .79rem; }
.button-yellow { border-color: var(--yellow); background: var(--yellow); color: var(--navy); }
.button-yellow:hover { background: #ffe66a; color: var(--navy-deep); }
.button-outline { margin-top: 18px; background: transparent; color: var(--navy); }
.button-outline:hover { background: var(--navy); color: #fff; }
.button-light { flex: 0 0 auto; border-color: #fff; background: #fff; color: var(--navy); }
.button-light:hover { background: var(--yellow); border-color: var(--yellow); color: var(--navy); }
.menu-toggle { display: none; border: 0; background: transparent; cursor: pointer; }
.menu-toggle-lines { display: grid; gap: 4px; }.menu-toggle-lines i { width: 23px; height: 2px; background: var(--navy); }
.hero-section { overflow: hidden; padding: 70px 0 66px; background: linear-gradient(110deg,#f8fbff 0%,#fffefb 60%,#edf8ff 100%); }
.hero-layout { display: grid; grid-template-columns: .96fr 1.04fr; gap: clamp(44px,7vw,108px); align-items: center; }
.hero-copy { max-width: 610px; }.hero-copy h1 { margin-bottom: 24px; color: var(--navy); }.hero-lede { max-width: 530px; color: var(--body); font-size: 1.12rem; line-height: 1.72; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; color: #247e39; font-size: .71rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }.eyebrow span { width: 28px; height: 2px; background: currentColor; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 32px; }.text-link { color: var(--navy); border-bottom: 2px solid var(--green); padding-bottom: 2px; font-size: .91rem; font-weight: 800; text-decoration: none; }
.hero-proof { display: flex; gap: 35px; margin-top: 37px; padding-top: 31px; border-top: 1px solid #dce5ed; }.hero-proof div { display: grid; gap: 2px; }.hero-proof strong { color: var(--navy); font: 700 1.42rem/1 var(--serif); }.hero-proof span { color: #64728a; font-size: .75rem; }
.hero-visual { position: relative; padding: 0 0 30px 25px; }.hero-image-wrap { overflow: hidden; border: 7px solid #fff; border-radius: 95px 8px 8px 8px; box-shadow: var(--shadow); }.hero-image-wrap img { width: 100%; height: 500px; object-fit: cover; object-position: center; }.hero-note { position: absolute; bottom: 0; left: 0; display: flex; gap: 10px; width: min(285px,85%); padding: 15px 17px; background: #fff; box-shadow: 0 12px 30px rgba(6,45,106,.16); }.hero-note p { display: grid; margin: 0; color: #67758b; font-size: .75rem; line-height: 1.35; }.hero-note strong { color: var(--navy); }.note-icon { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border-radius: 50%; background: var(--green); color: #fff; font-weight: 900; }
.confidence-strip { background: var(--navy); color: #fff; }.confidence-grid { display: grid; grid-template-columns: repeat(3,1fr); }.confidence-grid p { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 75px; margin: 0; border-right: 1px solid rgba(255,255,255,.18); font-size: .86rem; font-weight: 700; }.confidence-grid p:last-child { border: 0; }.confidence-grid span { color: #73dc60; }
.section { padding: 110px 0; }.split-heading { display: grid; grid-template-columns: 1.1fr .7fr; gap: 62px; align-items: end; margin-bottom: 50px; }.split-heading h2 { margin-bottom: 0; max-width: 620px; }.split-heading > p { margin: 0; color: var(--body); }
.subjects-section { background: #fff; }.subject-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }.subject-card { min-height: 260px; padding: 28px; border: 1px solid #e3eaf2; border-radius: 3px; background: #f8fbfe; }.subject-icon { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 28px; border-radius: 50%; color: #fff; font-size: 1.4rem; font-weight: 800; }.subject-card h3 { margin-bottom: 10px; color: var(--navy); }.subject-card p { margin: 0; color: var(--body); font-size: .88rem; }.card-red .subject-icon { background: #df3843; }.card-blue .subject-icon { background: #2777cf; }.card-green .subject-icon { background: #42a849; }.card-purple .subject-icon { background: #8350bf; }
.approach-section { background: linear-gradient(120deg,#edf7f1,#f7fbf9); }.approach-layout { display: grid; grid-template-columns: .2fr .82fr 1fr; gap: 52px; align-items: start; }.approach-number { color: #b9dbbd; font: 700 clamp(4.3rem,8vw,7rem)/.8 var(--serif); letter-spacing: -.08em; }.approach-copy h2 { margin-bottom: 24px; color: var(--navy); }.approach-copy > p:not(.eyebrow) { color: var(--body); line-height: 1.75; }.steps-list { margin: 18px 0 0; padding: 0; list-style: none; }.steps-list li { display: grid; grid-template-columns: 47px 1fr; gap: 18px; padding: 0 0 25px; margin-bottom: 21px; border-bottom: 1px solid #cdded1; }.steps-list li:last-child { border: 0; }.steps-list > li > span { padding-top: 4px; color: #318943; font-size: .73rem; font-weight: 900; }.steps-list h3 { margin: 0 0 7px; color: var(--navy); }.steps-list p { margin: 0; color: var(--body); font-size: .88rem; }
.local-section { padding-block: 88px; background: var(--sky); }.local-layout { display: grid; grid-template-columns: 1fr .9fr; gap: 70px; align-items: center; }.local-layout h2 { margin-bottom: 20px; color: var(--navy); }.local-layout p:not(.eyebrow) { max-width: 560px; margin: 0; color: var(--body); }.area-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }.area-list span { display: flex; align-items: center; gap: 8px; padding: 16px; border-left: 4px solid var(--green); background: #fff; color: var(--navy); font-weight: 800; }.area-list span:before { content: '●'; color: var(--green); font-size: .7rem; }
.cta-section { padding-top: 0; }.cta-card { display: flex; align-items: center; justify-content: space-between; gap: 45px; padding: 62px 69px; background: var(--navy); color: #dce8f8; }.cta-card h2 { max-width: 650px; margin-bottom: 15px; color: #fff; }.cta-card > div > p:not(.eyebrow) { max-width: 570px; margin-bottom: 0; }.eyebrow-light { color: #a5e59d; }
.site-footer { padding-top: 70px; background: var(--navy-deep); color: #d9e6f4; }.footer-grid { display: grid; grid-template-columns: 1.35fr .75fr .9fr; gap: 80px; padding-bottom: 58px; }.footer-brand { color: #fff; }.footer-brand .brand-logo { background: #fff; }.footer-brand .brand-copy small { color: #b1c8e3; }.footer-intro { max-width: 355px; margin: 23px 0 0; color: #c2d0df; font-size: .88rem; }.site-footer h2 { margin: 4px 0 18px; color: #fff; font: 800 .75rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }.footer-menu { display: grid; gap: 8px; }.footer-menu a,.footer-contact a { color: #c9d8eb; font-size: .86rem; text-decoration: none; }.footer-contact { display: grid; align-content: start; gap: 7px; }.footer-contact p { margin: 8px 0 0; color: #a4bbd4; font-size: .86rem; }.footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding: 23px 0; border-top: 1px solid rgba(255,255,255,.14); color: #91a8c0; font-size: .69rem; }.footer-bottom p { margin: 0; }
.page-hero { padding: 102px 0 68px; background: var(--sky); }.page-hero h1 { margin-bottom: 0; color: var(--navy); }.page-content { min-height: 42vh; padding-top: 78px; }.content-narrow { width: min(760px,calc(100% - 56px)); }.content-narrow h2 { margin-bottom: 19px; font-size: clamp(2rem,3.5vw,3rem); }.content-narrow h3 { margin: 39px 0 10px; }.content-narrow p,.content-narrow li { color: var(--body); }.content-narrow li { margin-bottom: 8px; }.contact-panel { margin-top: 46px; padding: 32px; border-left: 5px solid var(--green); background: #f2f8fc; }.contact-panel h2 { font-size: 1.7rem; }.contact-panel a { color: var(--navy); font-weight: 800; }.price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 30px 0; }.price-card { padding: 21px; border-top: 4px solid var(--yellow); background: #f4f8fc; }.price-card h3 { margin-bottom: 11px; }.price { margin: 0; color: var(--navy)!important; font-weight: 900; font-size: 1.1rem; }.price small { color: var(--body); font-weight: 500; }
@media (max-width: 960px) { .site-shell { width: min(100% - 42px,760px); }.header-cta { display: none; }.nav-list { gap: 15px; }.hero-layout { grid-template-columns: 1fr; }.hero-visual { width: min(680px,100%); margin-left: auto; }.hero-image-wrap img { height: auto; aspect-ratio: 16/10; }.split-heading { grid-template-columns: 1fr; gap: 20px; }.subject-grid { grid-template-columns: repeat(2,1fr); }.approach-layout { grid-template-columns: 100px 1fr; gap: 28px; }.approach-number { grid-row: span 2; }.steps-list { grid-column: 2; }.local-layout { grid-template-columns: 1fr; gap: 32px; }.footer-grid { gap: 40px; } }
@media (max-width: 680px) { body { font-size: 15px; }.site-shell,.content-narrow { width: calc(100% - 36px); }.header-inner { min-height: 70px; }.brand-logo { width: 42px; height: 42px; }.brand-copy strong { font-size: 1rem; }.brand-copy small { display: none; }.menu-toggle { display: block; }.main-nav { position: absolute; top: 100%; right: 0; left: 0; display: none; padding: 18px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 12px 25px rgba(6,45,106,.1); }.main-nav.is-open { display: block; }.nav-list { display: grid; gap: 0; }.nav-list li { border-bottom: 1px solid #e7edf4; }.nav-list a { display: block; padding: 12px 5px; }.hero-section { padding: 50px 0 43px; }.hero-copy h1 { font-size: clamp(2.65rem,13vw,3.7rem); }.hero-lede { font-size: 1rem; }.hero-proof { gap: 20px; margin-top: 28px; padding-top: 27px; }.hero-visual { padding-left: 12px; padding-bottom: 20px; }.hero-image-wrap { border-radius: 70px 6px 6px 6px; }.hero-note { padding: 12px; }.confidence-grid { grid-template-columns: 1fr; padding: 10px 0; }.confidence-grid p { min-height: 38px; justify-content: flex-start; border: 0; }.section { padding: 70px 0; }.subject-grid,.price-grid { grid-template-columns: 1fr; }.subject-card { min-height: 210px; }.approach-layout { grid-template-columns: 1fr; gap: 19px; }.approach-number { grid-row: auto; font-size: 4rem; }.steps-list { grid-column: auto; }.local-section { padding-block: 70px; }.cta-card { display: block; padding: 40px 26px; }.cta-card .button { margin-top: 25px; }.footer-grid { grid-template-columns: 1fr; gap: 33px; }.footer-bottom { display: grid; gap: 8px; }.page-hero { padding: 72px 0 51px; }.page-content { padding-top: 55px; } }

/* Blog et articles */
.archive-intro { max-width: 650px; margin: 22px 0 0; color: var(--body); font-size: 1.08rem; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.blog-card { overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: 0 12px 30px rgba(6,45,106,.07); }
.blog-card-image { display: block; overflow: hidden; aspect-ratio: 16/10; background: #eaf5fd; text-decoration: none; }
.blog-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.blog-card:hover .blog-card-image img { transform: scale(1.04); }
.blog-card-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--green); font-size: 3rem; }
.blog-card-body { padding: 25px 25px 29px; }
.blog-meta { margin-bottom: 12px; color: #71829a; font-size: .74rem; font-weight: 700; }
.blog-meta a { color: #318943; text-decoration: none; }
.blog-card h2 { margin-bottom: 13px; font-size: 1.6rem; }
.blog-card h2 a { color: var(--navy); text-decoration: none; }
.blog-excerpt { min-height: 76px; margin-bottom: 20px; color: var(--body); font-size: .9rem; }
.blog-card .text-link { display: inline-block; color: var(--navy); font-size: .84rem; font-weight: 800; text-decoration: none; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 45px; }
.nav-links a, .nav-links span { padding: 8px 12px; border: 1px solid var(--line); color: var(--navy); text-decoration: none; }
.nav-links .current { background: var(--navy); color: #fff; }
.single-header { padding: 94px 0 50px; background: var(--sky); }
.single-header h1 { margin: 0; color: var(--navy); }
.single-featured-image { max-height: 560px; margin-top: -1px; overflow: hidden; }
.single-featured-image img { width: 100%; max-height: 560px; object-fit: cover; }
.single-content-section { padding-top: 62px; }
.entry-content { color: var(--body); font-size: 1.06rem; line-height: 1.82; }
.entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 42px; margin-bottom: 15px; color: var(--navy); }
.entry-content h2 { font-size: 2.1rem; }.entry-content h3 { font-size: 1.5rem; }
.entry-content p, .entry-content ul, .entry-content ol, .entry-content blockquote, .entry-content figure { margin-bottom: 24px; }
.entry-content ul, .entry-content ol { padding-left: 1.35rem; }.entry-content li { margin-bottom: 8px; }
.entry-content a { color: var(--navy); font-weight: 700; }.entry-content blockquote { padding: 18px 24px; border-left: 5px solid var(--green); background: #f2f8fc; font-family: var(--serif); font-size: 1.22rem; }
.entry-content img { margin: 30px auto; }.entry-content .alignleft { float: left; margin: 8px 28px 20px 0; }.entry-content .alignright { float: right; margin: 8px 0 20px 28px; }
.article-back { margin-top: 52px; padding-top: 30px; border-top: 1px solid var(--line); }
@media (max-width: 960px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .blog-grid { grid-template-columns: 1fr; }.single-header { padding: 65px 0 35px; }.entry-content { font-size: 1rem; }.entry-content .alignleft, .entry-content .alignright { float: none; margin: 25px auto; } }
