/* =========================================================================
   Lucie Marcel - Version B « chaleureux / humain »  (aperçu /newdesign/)
   Self-contained modern stylesheet. No Bootstrap, no jQuery.
   ========================================================================= */

/* ----- Fonts (self-hosted woff2, latin subset) ----- */
@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('../fonts/inter-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('../fonts/inter-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('../fonts/inter-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}

/* ----- Design tokens ----- */
:root{
    --bg:#FBF6EF;            /* warm lin background */
    --surface:#FFFFFF;
    --surface-warm:#FFFDF9;
    --ink:#322C38;           /* warm plum-ink body text (~11:1 on --bg) */
    --muted:#5E5766;         /* secondary text (>=4.5:1 on --bg) */
    --plum:#6E2F63;          /* brand primary */
    --plum-strong:#56264D;   /* hover / strong */
    --clay:#A8512E;          /* warm accent (AA as text on light, >=4.5:1) */
    --clay-soft:#F1E0D4;     /* warm tint surfaces */
    --sage:#6F8268;          /* calm accent */
    --line:#EBE0D3;          /* hairlines */
    --ring:#6E2F63;          /* focus */
    --shadow:0 10px 30px -12px rgba(50,30,55,.25);
    --shadow-sm:0 4px 14px -8px rgba(50,30,55,.22);
    --radius:16px;
    --radius-sm:10px;
    --maxw:1120px;
    --gutter:clamp(1rem,4vw,2rem);
    color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}

body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    font-size:clamp(1rem,0.95rem+0.2vw,1.0625rem);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{font-family:'Fraunces',Georgia,'Times New Roman',serif;color:var(--plum-strong);line-height:1.15;margin:0 0 .5em;font-weight:600;}
h1{font-size:clamp(2rem,1.4rem+2.8vw,3.1rem);letter-spacing:-.01em;}
h2{font-size:clamp(1.5rem,1.2rem+1.4vw,2.1rem);}
h3{font-size:clamp(1.15rem,1.05rem+.5vw,1.35rem);color:var(--plum);}
p{margin:0 0 1rem;}
a{color:var(--plum);text-decoration-thickness:1px;text-underline-offset:2px;transition:color .2s ease;}
a:hover{color:var(--clay);}
img{max-width:100%;height:auto;display:block;}
strong{font-weight:600;color:var(--ink);}

/* ----- A11y: skip link + focus ----- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;padding:10px 16px;background:var(--plum);color:#fff;border-radius:0 0 var(--radius-sm) 0;text-decoration:none;}
.skip-link:focus{left:0;}
:where(a,button,[tabindex]):focus-visible{outline:3px solid var(--ring);outline-offset:3px;border-radius:4px;}

/* ----- Layout helpers ----- */
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(2.5rem,6vw,4.5rem);}
.eyebrow{font-family:'Inter',sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin:0 0 .75rem;}
.lead{font-size:clamp(1.05rem,1rem+.4vw,1.25rem);color:var(--muted);line-height:1.6;}
.center{text-align:center;}
.measure-narrow{max-width:54ch;}

/* ----- Buttons ----- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem;line-height:1;padding:.85rem 1.4rem;border-radius:999px;border:2px solid transparent;cursor:pointer;text-decoration:none;transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease;}
.btn svg{width:1.1em;height:1.1em;flex:0 0 auto;}
.btn-primary{background:var(--plum);color:#fff;box-shadow:0 8px 20px -10px rgba(86,38,77,.7);}
.btn-primary:hover{background:var(--plum-strong);color:#fff;transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(86,38,77,.78);}
.btn-outline{background:transparent;color:var(--plum);border-color:var(--plum);}
.btn-outline:hover{background:var(--plum);color:#fff;transform:translateY(-1px);}

/* ----- Header ----- */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(251,246,239,.86);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line);}
.site-header .container{display:flex;align-items:center;gap:1rem;min-height:74px;}
.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.1;}
.brand .brand-name{font-family:'Fraunces',serif;font-weight:700;font-size:1.4rem;color:var(--plum-strong);}
.brand .brand-sub{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;}
.brand-logo{display:block;height:50px;width:auto;}
@media (max-width:860px){.brand-logo{height:42px;}}
.nav{margin-left:auto;display:flex;align-items:center;gap:.35rem;}
.nav a:not(.btn){font-weight:500;color:var(--ink);text-decoration:none;padding:.5rem .8rem;border-radius:999px;font-size:.97rem;}
.nav a:not(.btn):hover{color:var(--plum);background:var(--clay-soft);}
.nav a:not(.btn)[aria-current="page"]{color:var(--plum);background:#F4E9E0;}
.nav a.btn-primary,.nav a.btn-primary:hover{color:#fff;}
.nav .btn{margin-left:.85rem;padding:.62rem 1.25rem;font-size:.95rem;}
.nav-toggle{display:none;margin-left:auto;width:46px;height:46px;border:1px solid var(--line);background:var(--surface);border-radius:12px;cursor:pointer;align-items:center;justify-content:center;color:var(--plum);}
.nav-toggle svg{width:24px;height:24px;}

@media (max-width:860px){
    .nav-toggle{display:inline-flex;}
    .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:.15rem;
        background:var(--surface);border-bottom:1px solid var(--line);padding:.6rem var(--gutter) 1rem;
        box-shadow:var(--shadow);display:none;}
    .nav.is-open{display:flex;}
    .nav a{padding:.8rem .6rem;border-radius:10px;}
    .nav .btn{margin:.4rem 0 0;justify-content:center;}
}

/* ----- Hero ----- */
.hero{position:relative;overflow:hidden;}
.hero::before{content:"";position:absolute;inset:0;background:
    radial-gradient(60% 70% at 85% 10%,rgba(182,95,57,.10),transparent 60%),
    radial-gradient(50% 60% at 5% 90%,rgba(110,47,99,.10),transparent 60%);pointer-events:none;}
.hero .container{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding-block:clamp(2.5rem,6vw,5rem);}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem;}
.hero-trust{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:1.75rem;font-size:.9rem;color:var(--muted);}
.hero-trust span{display:inline-flex;align-items:center;gap:.4rem;}
.hero-trust svg{width:1.05em;height:1.05em;color:var(--sage);}
.hero-figure{position:relative;}
.hero-figure img{width:100%;border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow);border:6px solid #fff;}
.hero-figure::after{content:"";position:absolute;inset:auto -14px -14px auto;width:60%;height:60%;border-radius:var(--radius);background:var(--clay-soft);z-index:-1;}

@media (max-width:820px){
    .hero .container{grid-template-columns:1fr;}
    .hero-figure{order:-1;max-width:520px;margin-inline:auto;}
}

/* ----- Section title block ----- */
.section-head{margin-bottom:2rem;}
.section.alt{background:var(--surface-warm);border-block:1px solid var(--line);}

/* ----- Prose ----- */
.prose p{margin:0 0 1.1rem;}
.prose .highlight{color:var(--plum);font-weight:600;}

/* ----- Cards grid (trust / info) ----- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1.25rem;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);}
.card .card-ico{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--clay-soft);color:var(--plum);margin-bottom:1rem;}
.card .card-ico svg{width:24px;height:24px;}
.card h3{margin:0 0 .4rem;}
.card p{margin:0;color:var(--muted);font-size:.97rem;}
.card p + p{margin-top:.7rem;}
.card.accent{border-top:4px solid var(--plum);}

/* ----- Definition list (Repères) ----- */
.defs{display:grid;gap:1rem;}
.defs .def{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--clay);border-radius:var(--radius-sm);padding:1.1rem 1.3rem;}
.defs .def h2{margin:0 0 .25rem;color:var(--plum);font-size:1.2rem;line-height:1.25;}
.defs .def p{margin:0;color:var(--ink);}

/* ----- CTA band ----- */
.cta{background:linear-gradient(135deg,var(--plum),var(--plum-strong));color:#fff;border-radius:var(--radius);padding:clamp(1.75rem,4vw,2.75rem);text-align:center;box-shadow:var(--shadow);}
.cta h2{color:#fff;}
.cta p{color:rgba(255,255,255,.85);max-width:48ch;margin-inline:auto;}
.cta .btn-primary{background:#fff;color:var(--plum-strong);margin-top:1.25rem;}
.cta .btn-primary:hover{background:var(--clay-soft);color:var(--plum-strong);}

/* ----- Contact ----- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.info-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);}
.info-row{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem;}
.info-row svg{width:1.25rem;height:1.25rem;color:var(--plum);flex:0 0 auto;margin-top:.2rem;}
.info-row .label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.info-row a{font-weight:500;}
.alert{margin-top:1.25rem;background:#FBECE9;border:1px solid #E7C3BB;border-left:4px solid var(--clay);border-radius:var(--radius-sm);padding:1.1rem 1.25rem;}
.alert h2{color:var(--clay);margin:0 0 .5rem;font-size:1.05rem;line-height:1.25;}
.alert p{margin:0 0 .5rem;color:var(--ink);font-size:.95rem;}
.alert p:last-child{margin:0;}
.map-frame{border-radius:var(--radius);overflow:hidden;border:6px solid #fff;box-shadow:var(--shadow-sm);background:var(--clay-soft);min-height:340px;}
.map-frame iframe{display:block;width:100%;height:100%;min-height:340px;border:0;}

/* ----- Page banner (interior pages) ----- */
.page-banner{background:var(--surface-warm);border-bottom:1px solid var(--line);}
.page-banner .container{padding-block:clamp(2rem,5vw,3.25rem);}
.page-banner h1{margin:0;}
.page-banner .lead{margin-top:.5rem;}

/* ----- Footer ----- */
.site-footer{background:#2B2530;color:#E9E2EC;}
.site-footer a{color:#F0D9E9;}
.site-footer a:hover{color:#fff;}
.site-footer .container{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;padding-block:clamp(2.5rem,5vw,3.5rem);}
.site-footer h2{font-family:'Fraunces',serif;color:#fff;font-size:1.1rem;margin:0 0 .8rem;}
.site-footer .brand-name{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:700;color:#fff;}
.site-footer p{color:#C9BFD0;margin:.2rem 0;font-size:.95rem;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin:.35rem 0;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);}
.footer-bottom .container{display:block;text-align:center;padding-block:1.1rem;}
.footer-bottom p{color:#A99FB1;font-size:.85rem;margin:0;}
@media (max-width:760px){.site-footer .container{grid-template-columns:1fr;gap:1.5rem;}}

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;}
}
