:root{
  --ink:#12233a;
  --ink-soft:#20334d;
  --muted:#667085;
  --paper:#f6f2e9;
  --white:#ffffff;
  --line:#e4ded3;
  --line-strong:#d6cfc3;
  --radius:18px;
  --radius-lg:28px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.container{width:min(1180px,calc(100% - 56px));margin-inline:auto}
header{position:sticky;top:0;z-index:30;background:rgba(246,242,233,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{min-height:104px;display:flex;align-items:center;gap:34px}
.brand{display:flex;align-items:center;margin-right:auto;line-height:0}
.brand img{width:190px;height:95px;object-fit:contain;display:block}
.menu{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:650}
.menu a{position:relative;padding:8px 0}
.menu a:after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--ink);transition:right .2s ease}
.menu a:hover:after,.menu a:focus-visible:after{right:0}
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease,border-color .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.primary:hover{background:var(--ink-soft);border-color:var(--ink-soft)}
.hero{padding:78px 0 76px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.58fr);gap:72px;align-items:center}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#556274}
.hero h1,.display{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-weight:600;letter-spacing:-.04em}
.hero h1{font-size:clamp(46px,4.75vw,66px);line-height:1.055;margin:17px 0 24px;max-width:800px;letter-spacing:-.035em}
.hero .lead{font-size:18px;line-height:1.7;color:var(--muted);max-width:690px;margin:0}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.panel{background:var(--ink);color:white;border-radius:22px;padding:32px 34px;box-shadow:0 16px 42px rgba(18,35,58,.06)}
.panel .kicker{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#c9d2de}
.panel h2{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:29px;line-height:1.18;font-weight:600;margin:12px 0 19px;letter-spacing:-.025em}
.panel ul{margin:0;padding-left:19px;color:#e5eaf0;font-size:14px;line-height:1.6}
.panel li+li{margin-top:7px}
.strip{background:rgba(255,255,255,.76);border-block:1px solid var(--line)}
.stripgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.stripitem{padding:27px 26px;border-right:1px solid var(--line)}
.stripitem:last-child{border-right:0}
.stripitem strong{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px}
.stripitem span{font-size:13px;color:var(--muted)}
section.block{padding:86px 0;scroll-margin-top:104px}
#contact{scroll-margin-top:104px}
.sectionhead{max-width:780px;margin-bottom:44px}
.sectionhead h2{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:clamp(36px,3.6vw,48px);line-height:1.08;font-weight:600;letter-spacing:-.035em;margin:12px 0 18px}
.sectionhead p{color:var(--muted);font-size:18px;margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:var(--radius);padding:29px 28px;min-height:245px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 14px 36px rgba(18,35,58,.05)}
.num{color:#677384;font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.card h3{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:26px;line-height:1.18;font-weight:600;letter-spacing:-.025em;margin:15px 0 14px}
.card p{color:var(--muted);margin:0}
.approach{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.quote{background:var(--ink);color:white;border-radius:var(--radius-lg);padding:40px 42px;min-height:100%;display:flex;align-items:center}
.quote p{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:27px;line-height:1.38;font-weight:500;letter-spacing:-.02em;margin:0}
.contact{background:#fff;border-block:1px solid var(--line)}
form{display:grid;gap:14px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
input,textarea{width:100%;padding:15px 16px;border:1px solid #d7dce2;border-radius:12px;font:inherit;color:var(--ink);background:#fff;outline:none;transition:border-color .18s ease,box-shadow .18s ease}
input:focus,textarea:focus{border-color:#8d98a6;box-shadow:0 0 0 3px rgba(18,35,58,.06)}
textarea{min-height:140px;resize:vertical}
.hp{position:absolute;left:-9999px}
.status{display:none;padding:12px 14px;border-radius:10px;font-size:14px}
.status.ok{display:block;background:#eff6f1;color:#234b31}
.status.err{display:block;background:#fff1f1;color:#7d2b2b}
footer{background:var(--ink);color:#e5eaf0;padding:64px 0 28px}
.foot{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,.65fr) minmax(150px,.65fr);gap:64px;align-items:start}
.foot-brand{max-width:420px}
.foot-name{display:inline-block;color:#fff;font-size:24px;font-weight:700;letter-spacing:-.02em;margin-bottom:14px}
.foot-name:after{content:"";display:block;width:34px;height:1px;background:#627086;margin-top:10px}
.foot p{color:#b9c3cf;margin:0;font-size:14px;line-height:1.75}
.foot strong{display:block;color:#fff;margin-bottom:14px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.foot a{color:#dce3eb}
.foot a:hover{color:#fff}
.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:46px;padding-top:22px;font-size:12px;color:#9faaba}
/* legal / secondary pages */
.page-hero{padding:80px 0 30px}
.page-hero h1{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:clamp(44px,5vw,64px);line-height:1.05;font-weight:600;letter-spacing:-.04em;margin:14px 0 18px}
.page-hero p{max-width:720px;color:var(--muted);font-size:18px;margin:0}
.prose-wrap{padding:24px 0 92px}
.prose{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:24px;padding:48px 52px;max-width:900px}
.prose h2{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:25px;line-height:1.25;font-weight:600;letter-spacing:-.02em;margin:32px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:#505d70}
.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose ul{padding-left:22px}
.note{font-size:13px;color:#7b8796;margin-top:34px}
@media(max-width:900px){
  .container{width:min(100% - 36px,1180px)}
  .menu{display:none}
  .hero,.approach{grid-template-columns:1fr}
  .brand img{width:165px;height:82px}
  .hero{gap:42px;padding-top:58px}
  .panel{max-width:620px}
  .cards{grid-template-columns:1fr}
  .card{min-height:0}
  .stripgrid{grid-template-columns:1fr 1fr}
  .stripitem:nth-child(2){border-right:0}
  .stripitem:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:580px){
  .container{width:min(100% - 28px,1180px)}
  .nav{min-height:88px}
  .brand img{width:140px;height:70px}
  .nav>.btn{display:none}
  .hero{padding:46px 0 58px}
  .hero h1{font-size:42px}
  .hero .lead{font-size:17px}
  .panel{padding:30px 28px;border-radius:22px}
  .stripgrid,.foot{grid-template-columns:1fr}
  .stripitem{border-right:0!important;border-bottom:1px solid var(--line)}
  .stripitem:last-child{border-bottom:0}
  section.block{padding:72px 0}
  .sectionhead h2{font-size:40px}
  .approach{gap:34px}
  .quote{padding:34px 30px}
  .quote p{font-size:26px}
  .row{grid-template-columns:1fr}
  .prose{padding:30px 24px;border-radius:18px}
  .page-hero{padding-top:56px}
}

/* V2.4.5 - mobile responsive hardening */
@media (max-width: 900px){
  .hero,
  .approach{
    grid-template-columns:minmax(0,1fr)!important;
    width:100%;
  }
  .hero > *,
  .approach > *{
    min-width:0;
    width:100%;
  }
  .panel{
    width:100%;
    max-width:none;
  }
}

@media (max-width: 580px){
  .container{
    width:calc(100% - 32px);
    max-width:none;
  }
  .nav{
    min-height:96px;
  }
  .brand img{
    width:150px;
    height:74px;
  }
  .hero{
    display:grid;
    grid-template-columns:minmax(0,1fr)!important;
    gap:34px;
    padding:44px 0 54px;
  }
  .hero h1{
    font-size:clamp(38px,11vw,46px);
    line-height:1.03;
    letter-spacing:-.035em;
    max-width:none;
    overflow-wrap:normal;
    word-break:normal;
  }
  .hero .lead{
    font-size:17px;
    line-height:1.65;
    max-width:none;
    overflow-wrap:normal;
    word-break:normal;
  }
  .eyebrow{
    font-size:10px;
    letter-spacing:.15em;
    line-height:1.6;
  }
  .actions{
    gap:10px;
  }
  .actions .btn{
    width:100%;
  }
  .panel{
    width:100%;
    max-width:none;
    padding:28px 24px;
  }
  .panel h2{
    font-size:28px;
  }
  .panel ul{
    font-size:14px;
  }
  .sectionhead,
  .sectionhead p{
    max-width:none;
  }
  .sectionhead h2{
    font-size:36px;
  }
  .quote{
    width:100%;
  }
}


/* V2.4.6 - formulaire et securite */
.approach-note{margin-top:18px}
.turnstile-wrap{min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}
.cf-turnstile{min-height:65px;max-width:100%;overflow:hidden}
.turnstile-help{margin:0;font-size:12px;color:#6b7685}
.turnstile-help:empty{display:none}
.turnstile-help.error{color:#7d2b2b}
form button:disabled{opacity:.65;cursor:wait;transform:none}
@media(max-width:580px){
  .cf-turnstile{width:100%}
}

/* V2.5 - SEO pages */
.seo-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.seo-links a,.text-link{font-weight:700;text-decoration:none;color:var(--navy,#102640)}.seo-links a{border:1px solid #d8dee6;border-radius:999px;padding:10px 14px;background:#fff}.page-hero{padding-bottom:72px}.page-hero h1{max-width:900px}.page-hero .lead{max-width:780px}.seo-copy{max-width:900px}.seo-copy h2{font-family:Georgia,serif;font-size:clamp(30px,4vw,44px);line-height:1.08;margin-bottom:18px}.seo-copy p{font-size:17px;line-height:1.7;color:#59677a}@media(max-width:580px){.seo-links{display:grid}.seo-links a{text-align:center}}
